【STM32連載 第12回】最適化とアセンブラ ― Cが機械語になる瞬間を見る ―
コンパイラは「意味を変えずに速くする」が、volatileを忘れると意味ごと変える。-O0と-O2でアセンブラがどう変わるかをobjdumpで実際に見て、12回分の学びを「つよつよの条件」として締めくくる最終回。
コンパイラは「意味を変えずに速くする」が、volatileを忘れると意味ごと変える。-O0と-O2でアセンブラがどう変わるかをobjdumpで実際に見て、12回分の学びを「つよつよの条件」として締めくくる最終回。
「RAMが足りない!」「変数が勝手に書き換わる…」その原因、mapファイルに書いてあります。.text/.data/.bssの正体・リンカスクリプトの読み方・スタックオーバーフローの防ぎ方、そして51万行のソースコード流出事件から学ぶmapファイルの取り扱い注意点まで徹底解説。
「CPUが1バイトずつ送る」をやめ、「DMAが全部やる」に変える。UART送信をDMA化することでCPUを解放し、スループット・レイテンシ・バス競合の直感を身につける第10回。
ISRでprintf・volatile忘れ・重い処理・フラグクリア忘れ——組み込みでよく踏む地雷を「わざと」やって壊します。STM32だけでなくArduino・ESP32・Renesas・PICにも共通する割り込み設計の鉄則を、壊れる瞬間から学ぶ。