IT嫌いが、IT好きになるべく模索中。

電子機器はできるだけ触りたくないかんじです。仕事で触っておりますが、プライベートを削ってまでしたくないので現状です。現在模索中です。その過程でしたことの技術ログです。

C言語 リンカスクリプトを書いてみる

H8マイコンにて自作OSをつくっています。

その中で、よくわからないC言語備忘録をつけています。

 

しかも自作OSでブートローダも作成するので、普通にC言語でアプリケーションを作るのとはわけがちがうくて、自分でメモリ管理もしないとダメなわけです。

例えば静的変数をH8組み込みボードへ展開するとき、クロスコンパイルという手法で行うのですが、H8マイコン上のROM上へ自作OSのプログラムを展開するわけです。

 

そうなると静的変数とは、値が後で変わる可能性もあるのですが、ROMに展開するとなるとROMって、Read Only Memeory(今回使っているH8マイコンはフラッシュROMなので書き込みは事実上可)なので、変数が変わってはだめなわけです。

 

なのでROM上に展開できないので、プログラムをコンパイルする時点ではROM上の.dataが.bssに展開して、実行時にRAMに展開するという荒技をしなくちゃいけないわけです。

そのために、どうメモリを使うかをコンパイルリンカスクリプトで設定するなども必要になってくるわけです。

 

下記に詳しく組み込みC言語でのりんかスクリプトが詳しくのっていたので、メモメモ。。

 

初めてのC言語 - 第9回 リンカスクリプト