c言語– tag –
-
組み込み
【組み込み】スタックとヒープの違いとは?マイコンでメモリ不足が起きる原因を解説
今回は、組み込み開発でよく登場するスタックとヒープの違いについて解説します。 C言語やC++でマイコン向けのプログラムを書いていると、動作不良やリセット、原因不明の暴走が起きることがあります。その原因のひとつがメモリ不足です。 特に、PCアプリ... -
組み込み
【組み込み】メモリマップトI/Oとは?レジスタ操作の基本とビット演算で詰まりやすいポイントを解説
今回は、組み込み開発で頻繁に登場するメモリマップトI/Oについて解説します。 マイコンを使った開発では、GPIOのON/OFF、UARTの設定、タイマ開始など、多くの操作をレジスタ経由で行います。このとき重要になるのが、メモリ空間上の特定アドレスを通じて... -
組み込み
【組み込み】リングバッファとは?UART受信でよく使う理由と実装時のハマりどころ
今回は、組み込み開発でよく使われるリングバッファについて解説します。 UART受信では、1文字ずつ非同期にデータが届きます。 そのため、受信したデータをいったん貯めておき、メイン処理側で順番に取り出せる仕組みが必要です。そこでよく使われるのがリ... -
組み込み
【C言語】組み込みで構造体を使うときの注意点|アラインメント・パディング・通信データとの対応
今回は、組み込み開発で構造体を使うときに気をつけたいポイントを紹介します。 構造体は、設定値やセンサデータ、通信フレームなどをまとめて扱えるため便利です。 一方で、アラインメントやパディングを意識せずに使うと、想定と異なるサイズになったり... -
組み込み
【組み込み】volatile はいつ必要?レジスタ・割り込み・ポーリング処理での使いどころを整理
組み込みC言語を学び始めると、volatile 修飾子を見かける場面が増えてきます。 マイコンのサンプルコードや周辺ドライバで頻繁に登場する一方で、「とりあえず付けるもの」と理解したまま使ってしまう人も少なくありません。 しかし、volatile は付ける場...
1