FreeRTOS on LPC1768 mbed Cloud IDE (Not yet finish)
目標と方針
プログラム変更のポイント
プログラム構成
動作例
未確認と今後の計画
変更履歴
2010年11月13日 新規作成開始しかし未完
2011年1月1日 未完のまま公開
Webのmbed Cloud IDE上で開発している様子
port_asm_mbed.sが新規に作成したファイルで、今回の開発のキーとなる部分並行してLPCXpresso上で同じファイル構成で開発を実施。既にこの環境でmbedのハードウェア上でシステムが動作していることが確認が出来ている
唯一、ファイル構成で違うのは、port_asm.c(LPCXpresso IDE)とport_asm_mbed.s(mbed Cloud IDE)の1つだけ
port_asm_mbed.sは、port_asm.cからアセンブラソースコードを生成し、ハンドで修正して使用している
現時点(2011年1月1日)では、目標に何ら達していません。
未だ、判らないことだらけですか、経緯を公開します。
<目標>
<方針>
現在、mbedのハードウェア上でFreeRTOSを動作させてデータロガーのアプリケーションを開発し、かなりの部分が動作しています。
この開発は、
の二つの開発環境で開発ができる状況になっています。
しかし、上記の開発環境とmbed Cloud IDEの違いは、下記のような差があります。
開発環境 コンパイラ . ..C++... .....C..... assembler embedded asm inline asm コメント mbed Cloud IDE RealView OK OK OK? OK NO mbedのスタッフであるSimon氏が、インラインアセンブラが
使えないことを、ここのコメント欄で述べています。
同様に、アセンブラでの記述も推奨していません。LPCXpresso IDE Sourcery G++ Lite ARM EABI NO OK OK ? OK . Eclipse GCC IDE OK OK OK ? OK .
インラインアセンブラが使えないことが、かなり致命的です。
何故使えないのでしょうか?
ここに、mbedのサポートメンバーの一人、Simon氏がコメントしています。
と言っているように思えます(意訳でなく私の受けた印象です)。
"embedded assembler"と純粋なアセンブラソースファイルのどちらが良いかは判りませんが、少なくても純粋なアセンブラの使用は推奨していません。
しかし、実際には使用することは出来ます。
従って、開発方針を下記のように決めました。
方針に基づき10月中旬より開発を始めましたが、その後が大変でした。
具体的には、下記の様な開発のステップを踏みました。
動作達成の為には問題点を明確にしないといけません。
動作しない要因を下記のように分析しました。
No. 要因 想定される問題点 進捗状況 1 割込み処理関連 割込みベクターへの登録が上手く出来ていない
もしくは割込みルーチンが動作しないこれからの作業 2 Cの関数とasmのルーチン間での引数渡し GCCでアセンブラソースファイルを作成したものをひな型にしているが
実際の引数受け渡しはRealView側で行われる
コンパイラ違いによる引数渡しの不整合これからの作業 3 asmルーチン内のBug アセンブラソースの修正ミス これからの作業 4 Start-upルーチンの違い mbedがどのようにシステムを立ち上げているのかが、一切不明 これからの作業 5 上記以外の要因 思いついたら追加します . 6 1から4の要因の組み合わせ 考えられる部分を一つ一つ修正していくしかないでしょう .
<トライアルの内容 / Trial result>
現時点でのソースファイルを公開します。どなたかアドバイスいただけると幸いです。
I saved following files for getting your advice. Thanks.
開発環境
IDE Environmentソースファイル(ZIP)
Zipped Source file動作状況
Current statusLPCXpresso IDE mbed_IDE_FreeRTOS_wrk2.zip
RTOS_lpc1768.binLEDの順次点灯を確認可能
解凍後に、RTOS_lpc1768.binをmbedにロードすれば、動作が確認可能
If you download RTOS_lpc1768.bin file into mbed board, you can see
LED on/off with under controled by FreeRTOS.mbed Cloud IDE FreeRTOS_on_mbed_v1.zip 動作せず!
Does NOT work until today