2017-01-01から1年間の記事一覧
開発環境はIARのEWARMです。 binファイルの生成 デフォルトではプロジェクトをビルドするとoutファイルが生成されます。outファイルからbinファイル(バイナリイメージ)を生成するには、プロジェクトの[オプション]の[出力コンバータ]にて、[追加出力ファイル…
この記事はMbed Advent Calendar 2017の23日目の記事です。 STM32のCubeMXの吐いたコードをmbedにコピペしても、ふつうにコンパイルできます。HALライブラリのAPIもふつうに使えます。そこで、Nucleo-F767ZIをmbedで使用しつつ、CubeMXで生成したコードをコ…
twitterの検索で、ユーザーや日付を指定することができるようだ。今ごろ知った。 (例) from:@lipoyang ←ユーザー名@lipoyang since:2017-01-01 ←2017年1月1日から until:2017-12-20 ←2017年12月20日まで UIとしてはtwilogのほうが便利だけど、twilogに登録…
WAVファイルは先頭44バイトを読み飛ばす。 BMPファイルは先頭54バイトを読み飛ばす。 ※ BMPファイルの画像データは「左下」から「BGR」の順なので要注意。
この記事はMbed Advent Calendar 2017の19日目の記事です。 目的 mbedベースでお手軽に開発しつつ、痒い所だけ本気出して底からコード書くようなスタイルが好みです。ただしそのとき問題になるのが、mbedライブラリがどういうリソースの使い方をしているかと…
自分用メモ。 毎回いろいろ設定が消えてしまうので、やり直す。 ディスプレイの色調整 自分のThinkPadは液晶が青っぽいので、主観で調整する。 デスクトップで右クリックして「グラフィックプロパティ」を選択して、「インテルグラフィック/メディアコントロ…
この記事はMbed Advent Calendar 2017の8日目の記事です。 BLEマイコンnRF52搭載のミニ基板「斑鳩」の試作について書きます。「斑鳩」はオープンソースハードウェアです。今はまだ試作段階ですが、そのうちイベント等で頒布するかも。12/16(土)・17(日)開催…
IAR C/C++コンパイラで、使われていない関数や変数についての警告を抑制するおまじない。 (あくまでデバッグ用。最終的にはそんなものは残さない。) #pragma diag_suppress=Pe177 // never referenced function #pragma diag_suppress=Pe550 // never used…
UART出力 STM32マイコンのCubeMX環境(HAL Driver使用)でprintfを使ってUARTに文字列を出力したい場合、下記のようなputchar関数を実装すればよい。この例では標準出力をUART2に出力している。もちろん、あらかじめCubeMXで対応するUARTの設定をおこなって初…
IAR Embedded Workbenchのプロジェクトでバージョン管理から除外するファイルは、以下の通り。(たぶん) 除外すべきファイル EWARM/プロジェクト.dep EWARM/settings/ EWARM/プロジェクト/Obj/ 除外するかどうかはお好みで(最終生成物) EWARM/プロジェクト/…
つらつらと思うことを書いてみる。長らく社会人やってて、現代語で文章を書くことにもずいぶん慣れたけれど、いまだに魂の言葉は漢文体になっちゃうね。 吾人、年少より俗を厭ふるの性有り。長じて洛陽に在ること四年、濃州に赴くこと三年、河州の塵網に囚は…
ホーザンのパーツケースをいくつも積んでると出し入れに難儀しますが、ダイソーのジョイントA4ラック(1段100円)を積んで収納すると出し入れかんたん!
がじぇっとるねさすコミュニティの記事よりメモメモ。 元記事 GR-SAKURA、GR-KURUMI、Arduino 等でのプログラムの共用 要点 ソースは .ino ではなく、ふつうに .cpp/.c と .h で 機種ごとにヘッダのインクルードを条件コンパイル ここで分かりやすい機種分け…
お嬢様聖水にブラックライトを当てると、光る。
PSoC Creatorで使われるCコンパイラは、PSoC3(コア:8051)はKeilのPK51ですが、PSoC4/5(コア:ARM Cortex-M)はGCCです。PSoC3のコンパイラに関しては、KeilがPSoC Creator用に無償でライセンスしてくれているようです。(CypressがKeilにライセンス料払ってる…
usb-serial-for-androidを使用する方法をメモ。 他にFTDriverというのもある。 (1) usb-serial-for-androidのソースを入手 下記サイトからプロジェクト一式をダウンロード(またはgitでclone)する。 usb-serial-for-android (2) Android Studioでプロジェクト…
※ 独断と偏見が混ざっています。 glibc 言わずと知れたGNUの標準Cライブラリ 主にLinuxで使われる POSIXなどUNIX系OSの標準機能を提供 組込み系で使うには重くてデカい、無用の機能が多い uClibc 組込みLinux向けのGNUの標準Cライブラリ uClinux向けに開発さ…
自責は心のリストカット。そんなことよりパターンカットしようぜ! パターンカットといえば、プリント基板の修正のために銅箔のパターンをカットすることですが、正しいパターンカットの方法というものを教わったことはないような… 下記はあくまで僕の我流で…
STM32マイコンの開発環境はいろいろあるいけど、ぶっちゃけ言って次の3パターンに絞られると思う。 (※個人の感想です。) 金があるなら IAR(EWARM) か Keil(uVision/MDK-ARM) 金がないなら SW4STM32 お手軽志向なら mbed IARやKeil(カイルと読む)は、ン十万円…
ARM Cortex-M4は、M3にDSP(SIMD,MAC)命令を追加したものだが、Cortex-M4Fと呼ばれるものは、さらに単精度のFPU(浮動小数点ユニット)を持っている。どれくらい効果があるものか、三角関数の計算で速さを比較してみた。 方法 Cortex-M4Fをコアに持つLPC4370を…
LPC4370は、282kBのRAMを内蔵するかわりFlashを内蔵しておらず、RAM上で実行することを前提としている。204MHzという高速な動作クロックのため、内蔵Flash上の動作では読み出しアクセスがボトルネックになるためである。(回路の特性上、SRAMはFlashより高速…
Nucleoボード種類多すぎて、どれがどれか分からないのでまとめ。 STM32のラインナップ まず、STM32マイコンのラインナップについて アルファベットの次が7ならM7、4ならM4、0ならM0、これは分かりやすい。 でも3ならM3かと思いきやM4。1か2ならM3。おおむね…
LPC-Link2をLPC4370ボードとして用い、コードを実行させてみると、なぜかLPCXpresso LPC1769と比べて10倍以上遅かった。LPC-Link2は Cortex-M4 @ 204MHz、LPCXpresso LPC1769は Cortex-M3 @ 120MHzである。ぜったいに何かおかしい。 調べてみると、どうやらL…
間抜けなバグにハマってしまった。 代入演算子と違って比較演算子は右辺の型にキャストされる。 何年C言語やってるねん? uint32_t T = 10; int32_t t = -10; if(t >= T){ printf("over!\n"); }
LPCマイコンのたとえばLPC1549は、合計36kバイトのSRAMを持っていますが、16kバイト/16kバイト/4kバイトの3つのブロックに分かれています。第一のブロック以外は、省電力のために個別にディセーブルすることが可能です。LPCXpressoでソフトウェアを開発する…
WindowsでESP32のArduino開発環境がセットアップされていること。 esptool.exeのあるディレクトリにパスを通しておきます。通常は、C:\Users\ユーザ名\Documents\Arduino\hardware\espressif\esp32\tools ESP32を書き込みモードで起動してシリアルポートをPC…
数年前、TWELITE (旧称 TWE-Lite、例のマッチ棒アンテナのやつ) ていう無線マイコンモジュールが流行ったことがあって、でも最近あんまり聞かないなと思ってたんですが、ちょっと縁があって触ってみることになりました。 やりたいこと PLC(シーケンサ)をコン…
Androidタブレットを展示用のディスプレイとして用い、展示を終了する毎日決まった時刻に自動で画面をオフする方法を検討しました。(画面オンは毎朝手動で。電源はUSBで常時給電。) 画面をオフするアプリ 「Screen Off and Lock」 指定の時刻にアプリを起…
Wordでドキュメント書くのクソかったるいし、もうMarkdownでええやろと思いつつ、客に読めないと言われたら面倒だからVSCodeの拡張機能でHTMLに変換してみたら見た目が気に入らなくてスタイルシートいじりだして、だんだん何やってるのか分からなくなってき…
Visual Studio 【昔】 *.suo bin/ obj/ 【今】 .vs Debug *.vcxproj.user Android Studio /.gradle/ /.idea/ /app/build/ /build/ /local.properties /*.iml