« USB HOST | トップページ | 物資注文 »

2022年11月 2日 (水)

スタック?

あっ....
C言語/組み込みでは、スタティックとヒープ以外の変数はすべてスタックに積まれるよ(ぼそっ)
つまり、すべてのauto変数と呼び出し元情報とか、関数への値引き渡しもぜーんぶスタック上だし。

なので、割り込みハンドラで呼ばれるのもあるけど、
注目ポイントそこじゃないな....

たいていの組み込みプログラムでは、
ただの関数呼び出しのほうが大量にスタック使う印象。

割り込みなんて応答速度命のところもあるので
スタック大量に確保してるような時間は(普通)無いしね。
逆に割り込みハンドラのスタック使用量なんて、あまり心配してない。

標準ライブラリも大量にスタック使うよ。
printfとか気軽に使うと、数百バイトなんてすぐだよ....というか、
こういうの、どこで習えばいいんだろうね。


中級者クラスの話だと思うんだけど、
マイコン環境でタスク複数走っているときには、
複数から呼ばれる可能性のある関数で、
static使うと、たいてい破綻するんじゃないかなあ。
そのために(わざわざ)面倒でもスタック上に実体あるんだと思うし。

メカニズムは考えればわかるか(説明めんどい...)
これが嫌で、みんなちゃんとしたunixとかを
組み込みに持ち込もうとしてるんだと思うし。


知ってる人は当たり前に知っている感じだけど、
実は、組み込みやってても、みんな知らないのかな。
知ってる人って実はかなり少数派?なのか....

上級者?
コードからでは絶対にわからないバグを
あぶりだすスキル持ちのことだと...神は存在する...俺は見た....

| |

« USB HOST | トップページ | 物資注文 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« USB HOST | トップページ | 物資注文 »