FC2ブログ

FreeRTOSのビルド

先日見つけたFreeRTOSをLPC2388用にビルドしてみようと思う。

ググってみると、こことかここが参考になりそうだ。
しかも読んでいると、今使っているYAGARTOではビルドできたけど動作しなかった、との情報あり。Codesourceryが良いらしいので早速インストールする。このCodeSourcery、ダウンロードしてきてインストールするだけでARM用gcc環境ができる。cygwin上で何時間もかけてgccコンパイルした(しかも失敗した)のは何だったのか、という気分になる。

それはさておき、FreeRTOSである。最新バージョンの5.4.2をダウンロードし、展開した中にLPC2368用に移植された物があったのでこれをベースとしてMakefileをちょっと書き換え、ビルドしてみる。

(1)
error Please uncomment one of the two configPINSEL2_VALUE definitions above, depending on the revision of the LPC2000 device being used.

なるエラーが出た。

FreeRTOSConfig.h
/* Value to use on old rev '-' devices. */
//#define configPINSEL2_VALUE 0x50151105
/* Value to use on rev 'A' and newer devices. */
//#define configPINSEL2_VALUE 0x50150105

#ifndef configPINSEL2_VALUE
#error Please uncomment one of the two configPINSEL2_VALUE definitions above, depending on the revision of the LPC2000 device being used.
#endif

ふむふむ、どっちか選べ、と。下の0x50150105を有効にしてみた。

(2)
こんどは
no memory region specified for loadable section '.ARM.exidx'
とのエラー。前述の参考にしたサイトの”ねむいさんのブログ”に回避方法の情報あり。

.ldファイルに下記を追加
__exidx_start = .;
.ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } > flash

(3)
次は_sbrk,_write,_close,_fstat,_isatty,_lseek,_read
がundefinedでエラー

またも"ねむいさんのブログ"みてみると、この辺の関数を実装してあるようだ。ありがたくダウンロードさせてもらい、マージする。ついでにldファイルをLPC2388用に変える。
結果、無事ビルドが通った。

まずはLEDチカチカを組み込んでみて、動作確認。

P1050245_2.jpg

最初にこの基板の動作確認した際と見た目は変わらないが、今回のはFreeRTOS上のLED点滅タスクの上で動作しているので内容が大きく違う。

今後はファイルシステムやOLED表示処理などを組み込んでみようと思う。
スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
カレンダー(月別)
07 ≪│2019/08│≫ 09
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
RSSリンクの表示
リンク
QRコード
QRコード