ソフトウェアー・アップデートなど

syscalls API の実装も進み、何とか普通に使えるようになってきた。

シリアルコミュニケーションインターフェースの API は、雑誌の記事にあったソースコードをコピーしたものだったので、全面書き換え、元々ポーリングだった動作を、送信、受信割り込みに変更した。
これで、パフォーマンスはある程度期待できると思われる。

SH72620 では、シリアルインターフェースは16バイトの FIFO 付きなのだが、16バイトでは少なすぎるので、ソフト処理で FIFO を実現している為、バッファサイズはいくらでも大きくできる、パフォーマンスはハードで処理するFIFOよりは悪いと思うが、まぁそれでもポーリングよりはずっと良いと思っている。

暇になったら、DMAC を使ってみたい~

-----
AVR の RTC だが、低消費な V タイプでは無いが、結構電気食う。
やっぱ 4MHz で動作させてるのが悪いと思うが、クロックを落とすと、通信の速度が出ないと思うので、4MHzとしたのだが・・
※4時間くらいのバックアップで 0.1V も落ちてるし・・・(涙)
この感じでは、実用性に問題あるかも・・
少なくとも、6ヵ月くらいはバックアップ出来ないと・・
※まぁ色々試せるのが試作ならではだしね・・
※I/Oプロセッサーの考えは悪く無いしね・・
雰囲気としては、AVR にさらに RTC を接続するとゆー本末転倒な事になりそう(笑)まぁ でもI/O プロセッサなんでー

-----
インクルードガードの話:
インターフェース誌のサンプルプログラムとか、色々観たけど、サンプルとは言え、品質が良くないなぁと感じる。
※いいかげんな書き方や、厳密では無い書き方が、あちこちに観られる。
※FatFsは「ELM」さんの実装だが、これはプロダクトとしては非常に考えられていて良く出来てる~
http://elm-chan.org/fsw/ff/00index_j.html
素晴らしい~(ありがとう~)

さて、本題!、良くヘッダーを多重にインクルードしないように、インクルードガードを書くけど。

#ifndef XXX
#define XXX

・・・

#endif

この「XXX」で、みんな、こんな書き方をしてる、ファイル名が、「init.h」なら、「__INIT_H__」とか・・
このアンダースコアーをダブルで加える書き方は、システムライブラリーなどで予約された書式なので、アプリケーションレベルのソースコードには書いてはいけない。
この事実を知らない人が多いようだ・・・

あと、プロトタイプの宣言でも、C++ から呼べるように、数行加えておいて欲しいものだ・・

加えて、API の説明や引数、戻り値の説明も書いておいて欲しい。
※自分のソースコードでは、Doxygen で展開すると幸せになれるようになるべく記述してる。

基本の「const」も必要なら、ちゃんと書こう!
※それだけで、バグを減らせるのだから。