[2410] Re:伸長方向?
投稿者:774RR
2024/11/06 09:55:22
> ヒープとスタックが同じ方向に伸びようが無問題、という気はしますが。
御意。
ヒープとスタックが逆向きに伸びる=残り RAM を最大限に利用可能、ってのはシングルタスクシングルスレッド限定の話。今どきはマイコンでもマルチスレッドマルチタスクを使う関係でスタック領域も事前に確保した固定長ですから。
----
世の中に x86 系が普及した(普及しすぎた)関係で x86 と違う仕様の CPU はみなゲテモノ扱いされちゃってるのが PC 業界の常識となっちゃっています。でもマイコン業界だとその辺のゲテモノがいっぱい残っていますし面白いですよ。
最近オイラが使った例だと TI 社の C2000 系マイコンなんかまさにゲテモノです。もともとが 16bit な DSP を無理くり 32bit CPU 化したという代物で、そのため
(1) char=16bit / short=16bit / int=16bit / long=32bit
C 言語仕様書 ISO/IEC 9899:1999 6.5.3.4 が sizeof(char)==1 を要求しているので
sizeof(char)==1 / sizeof(short)==1 / sizeof(int)==1 / sizeof(long)==2
(2) スタックは高いアドレスに進む
既存コードが char=8bit を前提に書かれていたりするので、移植の際にはアセンブラ出力の読解が必須だったりします。他人に任せられない(自分自身も信頼できない)という罠