Dies Aliquanti

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PICのCコンパイラ (2)

 k_comさんのところに、PIC用のフリーのコンパイラの話が載っていたので、昼休みにデータブックをダウンロードして、ちょっと読んでみました。
 懐かし(笑)のHiTech-Cですね。なんといっても16F648Aがたくさん余っているので、なんとか使い道を考えなくては...
 とりあえず、使えそう。PICはデータスタックなし、コードスタックも限られているのでc言語にははっきり言って向いてません。引数は、基本的にstaticでとられて、リンカでフロー解析をしたうえで、最終的にアロケーションされるようです。コードサイズ、コードスタックが限られていて、複雑な呼び出しができない環境ならではですな。
 どうせ、複雑なことをするのは向いてないので、いっその事、全部grobal(extern)でとってしまう方が効率がいいかもしれません。それでも、制御構造(if~else,for,while,caseなど)や構造化データが使えるのは便利です。
 気になるのは、デバッグですな...組み込みのマイコンの場合、デバッグの手段は限られます。ICEとかあるのでしょうが、シュミで買えるような値段ではないでしょう。
 いっその事、PIC自体を、Verilogで書いてしまうとか...

 PIC9801さんが、Wiz-Cを紹介されてますね。フリーではないようですが結構ちゃんとしたデバッガがあるようです。これも要チェックですね。
----
本日の御託
そいうえば、むか~し、(25年くらい前)6502Aの組み込みシステムの仕事をバイトでしたことがありました。アセンブラは、AppleIIのインラインアセンブラのみ、測定器はテスターとオシロのみ(笑)しかなくて、さすがにアセンブラはAppleIIのDOSの上で動くアセンブラ(でもいわゆるリンカがなくて、ソースコードのレベルでマージする)は買ってもらいましたが、ICEやロジアナは買ってもらえませんでした。
 仕方ないので、バスにLEDをぶら下げ、手でクロックを与えられるようにしてデバッグをしました。6502はダイナミック回路なのでクロックの周波数に下限があります。確か、定格上は数KHzだったと思いますが、0.5Hz(つまり2秒につき一回)位でもなんとか動作しました。トグルSWをパチパチやって何を実行しているかをLEDで見ながら判断するわけですが、考え込んで手を止めている(=クロックを何秒もとめる)とCPUは「死んで」しまいます。
 今思うといわゆる、「シングルステップ」実行でよかったはずですが、なぜ当時そうしなかったかは今となっては思い出せません。
 でも、PICはバスが外に出てないのでこの手は使えないな...



コメント

Re:PICのCコンパイラ(06/19)

>PICはデータスタックなし、コードスタックも限られているのでc言語にははっきり言って向いてません。
う~ん確かにそうかも知れません(^^;
でもPICのアセンブラは覚えられないし....6800とかZ80のアセンブラなら、おぼろげに覚えていますが(笑)
6502ですか?懐かしいです。ロックウエル社の開発ツールを思い出しました。

  • 2007/06/21(木) 23:49:21 |
  • URL |
  • PIC9801 #79D/WHSg
  • [ 編集 ]

Re[1]:PICのCコンパイラ(06/19)

PIC9801さん、こんばんわ。
>>PICはデータスタックなし、コードスタックも限られているのでc言語にははっきり言って向いてません。
>う~ん確かにそうかも知れません(^^;
>でもPICのアセンブラは覚えられないし....6800とかZ80のアセンブラなら、おぼろげに覚えていますが(笑)
>6502ですか?懐かしいです。ロックウエル社の開発ツールを思い出しました。
-----
 わたしも同様です。不思議なもので、高校生のころやった、Z-80や6800はかろうじて覚えているのですが、大学生になってからやった、6502は(コードを書いた量ははるかに多いにもかかわらず)思い出せません。

  • 2007/06/23(土) 20:06:58 |
  • URL |
  • 莫迦オヤジ #79D/WHSg
  • [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://diesaliquanti.blog.fc2.com/tb.php/333-4e87188f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

まとめ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。