マイコンの基礎固め

STM32F7をいじっていて、最適化をかけたりARTを有効にしたりキャッシュを有効にしたりするとプログラムが不安定になることが多々あった。詳しい原因が良く分からないまま全部無効にしたりして場当たり的な対応をしてきたが、結局これでは高額なマイコンの性能を全く生かせないのでじっくり腰を据えて取り組むことにした。

マイコンのメモリにどうプログラムが配置されるのか調べるところから始まって、リンカとは何か、セクションとは何か、オブジェクトファイルとは何か、オブジェクトファイルの中身はどうなっているのか、Cで書かれたコードがビルドされるときに何が起こっているのか、どんな規格があるのかと、どんどん低い層の話になっていく。

今まで統合開発環境によって隠されていた部分が少しずつ見えてきた気がするが、自分のプログラムの知識がいかにあやふやな土台の上に成り立っていたか痛感させられた。