admin

C言語

volatile

組み込み機器向けのソースコードでとても重要になるキーワード、それがvolatileです。volatileとは必ずメモリアクセスをともなうコードを生成する、という意味です。コンパイラの仕事の一つに最適化があります。その名の通り、プログラムを...
C言語

あなたのintは何バイト?

C言語におけるint型というのは何バイトなのでしょうか? int i; C言語におけるint型というのは、言語上のサイズ規定はありません。そのCPUにおけるもっとも扱いやすいサイズがint型ということになります。 int...
ソフトウェア

同期式関数と非同期式関数

同期式関数とは、その関数を呼んで戻ってきたとき、目的の処理が完了している関数のこと。 非同期式関数とは、その関数を呼んで戻ってきても、その処理を行うという指示を出しただけで、処理そのものは終わっていない関数のこと。コールバック関数を...
ソフトウェア

テストに使う値の選び方

そのソフトウェアはちゃんと動きますか?どうやったら自信を持って動くと言えるのでしょうか?十分にテストをすれば、少なくともそのテストと同じ条件で動かした場合には動くと言えますね。テストに使う値の選び方について、適切に選べばテストケースを減ら...
ハードウェア

IO電圧

デジタルとアナログの違いは何か?アナログは連続している世界、デジタルは飛び飛びの世界です。例えば身長は160cmの次にとつぜん170cmになるわけではなく、160.00001cmになり、160.00002cmになり、ちょっとずつ伸びていき...
C言語

DebugビルドとReleaseビルド

親切な開発環境を使うと、DebugビルトとReleaseビルドが最初から用意されています。何が違うのでしょう? Debugビルドはデバッグしやすいようにできています。コンパイラの最適化は無しか最低レベルに設定されていて、1行ずつステ...
C言語

リンカ

PC上でのプログラミングではあまりリンカを意識することはありません。なぜなら、すべてのプログラムはHDD/SSDに保存され、実行時にはすべてRAM上に置かれるからです。組み込みソフトウェアの開発ではリンカの存在がとても大事です。 リ...
C言語

ROMとRAM

組込みソフトウェアの世界では、メモリにはROMとRAMが存在します。パソコンの場合、すべてのソフトウェアやファイルはHDDやSSDなどに保存されていて、必要になった時にはDRAMに持ってきて、そこからCPUで読み書きします。一方、小規模な...
未分類

OS X macOS Mojave 10.14対応 FTDI VCPドライバをインストールする方法

何もしなくていいんです! 声を大にして言いたい。何もしてはいけない!とりあえずUSBケーブルでMacに接続してみてください。そしてターミナルを開いて /dev の下をみてみましょう。(lsコマンド例を書きたいんですがなぜか書けない....
ハードウェア

その電池は何日持ちますか?

電子回路が動くためには電源が必ず必要です。無からエネルギーを生み出して動くことはできません。電源になるのはACアダプタを経由したDC電源、電源回路が作り出すDC電源、リチウムイオン電池、単三電池、コイン電池などの電池などがあります。ACア...