C言語 volatile 組み込み機器向けのソースコードでとても重要になるキーワード、それがvolatileです。volatileとは必ずメモリアクセスをともなうコードを生成する、という意味です。コンパイラの仕事の一つに最適化があります。その名の通り、プログラムを... 2020.04.04 C言語ソフトウェア
C言語 あなたのintは何バイト? C言語におけるint型というのは何バイトなのでしょうか? int i; C言語におけるint型というのは、言語上のサイズ規定はありません。そのCPUにおけるもっとも扱いやすいサイズがint型ということになります。 int... 2020.03.30 C言語ソフトウェア
C言語 DebugビルドとReleaseビルド 親切な開発環境を使うと、DebugビルトとReleaseビルドが最初から用意されています。何が違うのでしょう? Debugビルドはデバッグしやすいようにできています。コンパイラの最適化は無しか最低レベルに設定されていて、1行ずつステ... 2019.04.06 C言語ソフトウェア
C言語 リンカ PC上でのプログラミングではあまりリンカを意識することはありません。なぜなら、すべてのプログラムはHDD/SSDに保存され、実行時にはすべてRAM上に置かれるからです。組み込みソフトウェアの開発ではリンカの存在がとても大事です。 リ... 2019.03.23 C言語ソフトウェア
C言語 ROMとRAM 組込みソフトウェアの世界では、メモリにはROMとRAMが存在します。パソコンの場合、すべてのソフトウェアやファイルはHDDやSSDなどに保存されていて、必要になった時にはDRAMに持ってきて、そこからCPUで読み書きします。一方、小規模な... 2019.02.13 C言語ソフトウェア
C言語 デバッグ手法 あなたの書いたソフトウェアは思った通りに動いていますか?何かがおかしいけど何がおかしいのかわからない。デバッグするにはどうしましょう。純粋なソフトウェア開発ではテストコードを書いたりデバッガーを使うという方法があります。もちろんそういった手... 2018.11.23 C言語ソフトウェア
C言語 コンパイラは何をするか C言語を勉強すると、コンパイラは何をしてリンカは何をして、みたいなことを学ぶけれど、組み込みシステム向けC言語の場合に特に注意しないといけないコンパイラの動作があります。それが最適化です。最適化というと、読んで字のごとく、最適な状態に変... 2018.11.11 C言語ソフトウェア
C言語 数字の大きさ 日常生活で考える数字とソフトウェアで考える数字で、気をつけないといけないことは、数字の大きさです。日常生活で数字を考えるとき、それはすべて可変長で考えられています。1なら1、1桁の数字です。100なら3桁、高い買い物をするときは100万... 2018.11.11 C言語ソフトウェア