2010-01-01から1年間の記事一覧

CORTEX-M4Fの識別はどうするのか

現在LPC1768への移植が大詰めですが、実はこの移植作業の真の目標はCORTEX-M4FマイコンにTOPPERS/ASPを移植することにあります。その際、現在整備しているコードの大半が再利用できるだろう、NXPから出るCORTEX-M4Fマイコンは、LPC17xxに酷似しているだろう…

リリースまでわずか

ドキュメントを整備し直しました。 TOPPERS/ASP for LPC のインストール方法 - TOPPERS/ASP for LPC - OSDN TOPPERS/ASP for LPC の使い方 - TOPPERS/ASP for LPC - OSDN Doxygenドキュメント、ソースツリー内のxxx_user.txtいずれも細かい粗があるとは思い…

ラスボスはC++か

今週末、力任せにいろんな作業を進めたおかげでまた少し前進しました。ただ、リリースが近づくにつれ、一歩進めるために投下しなければならない労力がだいぶ増えてきました。 Doxygenは、やはりすばらしい TOPPERS/ASPの移植指針は、asp/doc/porting.txtに記…

MakefileでROMとSRAMを切り分ける

lpc1768_generic_gcc依存部は、ROM化コードとSRAM実行コードの両方を生成できます。最終的に使うときには当然ROM化版を使いますが、デバッグ時にはGDBでSRAMにダウンロードする方が便利です。とはいえ、SRAM版はこんな感じでsample1がぎりぎり32kBに収まって…

現状と今後の方向

現在、TOPPERS/ASP for LPCは、コードに同梱されるドキュメントを書き終えた状態です。昨日一度まとめましたが、だいたいこんな感じ。 LPC1768の内蔵オシレーターで100MHzで動作している コンソールはUART0 開発環境はLinux上のクロスGCC http://sourceforge…

Full HD画面で快適開発

今回の開発では途中からPCの出力をFull HD画面の液晶モニタにアップグレードしたため、VMwareのスクリーンも一挙に大きくなって作業効率があがりました。見よ、この有り余る面積。

LPC1768の割り込み優先度の構成について

UM10360 rev 0.1のtable 655によると、AIRCRの初期値は0xFA050000。Table 660によると、PRIGROUPは[10:8]であり、つきあわせると同フィールドのリセット値は0。 PRIGROUPが0の時のPRIORITY/SUBPRIORITYの分割方法はTable 661によると未定義だが、おそらくは5…

ドキュメント付けも完了

ソースツリー内部の簡単なドキュメントも書き終わりました。ツリー構造に少し手を入れて、ターゲット依存部はずいぶんすっきりした印象です。 さて、そろそろちゃんとしたインストール・ドキュメントとターゲット依存部のドキュメントを書くか。

進捗

TOPPERS/ASP 1.6.0 対応 LPC1768依存部は、SVNのtrunkが現在次のような状態にあります。 ビルド可能 SRAMおよびROM上でsample1が動作可能 CPU依存部、チップ依存部、ターゲット依存部の3層構造 シリアルはasp/pdic/uart下に分離 E_PACKAGE、MANIFEST整備終…

ASP 1.6.0で動作確認

TOPPERS/ASP 1.6.0ターゲット非依存部を使って、LPC1768上でsample1を動作させることに成功しました。すでに書いたcfgの修正のほか、prc_config.cの中でCTX型をリネームする必要がありましたが、それだけで動作するようになりました。後はSVN上へ移した後、…

cfg 1.6.0をUbuntu 10.04でビルドする

TOPPERS/ASPのコンフィギュレータ(CFG)はソースツリーから分離されています。入手するには専用ページからダウンロードします*1。 しかし、このダウンロードしたパッケージはUbuntu 10.04でビルドしようとすると失敗します。これはcfgがg++ 4.4に対応していな…

ようやく動いた

先日いただいたコメントに従い例外スタックのアライメントをCORTEX-M3リビジョン1コアにあわせたところ、一発でsample1が動きました。 詳細は後日書きます。sirius506さん、ありがとうございました。

今日の進捗

今日は公式リリースのバグに引っかかったりしましたが、とりあえずシリアルポートは動作しているように思えます。main_task()の中で何らかの理由で例外が発生して即終了している模様です。

TOPPERS/ASP for CQ-STARMのバグ

TOPPERS/ASP 1.3.2 CQ-STARMの実装のバグを見つけました。結構致命的だと思いますが、これまで動いていたのは偶然でしょうか。あるいは、私の勘違いの可能性もあります。 TOPPERS/ASP 1.3.2 の簡易パッケージ版をダウンロードしてビルドしました。生成された…

4 充実しているLinux向けARMツール

ARM系の汎用マイコンの解説は、相当数の記事がKEILのIDEとICEを紹介しています。これらはWindowsで動作しますし、KEILはARMのツールであることもあって、広く使われています。 一方、Linuxで動作するARM系のフリーツールも充実しています。 まずはGCC, binut…

ポーリングによるテキスト出力成功

ようやくここまでこぎつきました。あと一歩で「動いてます」と言えるところに達しました。

あれ?INHNOが無い!

そろそろシリアルIOの実装にかからなければならないのであちこち文書やらコードを読み直しているところです。そこで、あっと驚く新事実に遭遇。 TOPPERS/ASP 1.3.2対応CQ-STARM依存部は、INHNOを2つしか宣言していません。INHNO_TIMERとINHNO_SIOだけです。 …

CORTEX-M3のリセットハンドラとTOPPERS/ASPの実装

先日、TOPPERS/ASP用CORTEX-M3のリセットハンドラの実装に関して 結局、プログラム自身での設定とベクトルでの設定を切り替える用にしなければなりません。TOPPERS/ASPのCORTEX-M3依存部は切り替え式ですが、その場合のスタック・ポインたは例外ベクトルから…

LEDチカチカ動いた

シリアルIOの実装なしでTOPPERS/ASPがLPC1768上で動き始めました。sample1を改造した空のアプリケーションのメインタスクにLED点滅とtslp_tsk()をおいて、点滅させることに成功しています。 点滅周期がおかしい気がしますが、クロック周りはこれから見るとこ…

そろそろ起動できそう

休みの日の短い時間でちんたらやっている移植ですが、ようやくシステム依存部に目鼻がついてきました。現状はだいたい以下のような感じです。 シリアルIOは空のスタブを使っている システム・タイマーはプロセッサ依存部のSYSTICKを使うものを流用 ターゲッ…

target_serialにドキュメント付け中

CORTEX-M3向けのTOPPERS/ASP実装のtarget_serialにDoxygenコメントを書いています。 例によって説明がおおざっぱなTOPPERS/ASPのporting.txtでは動作がよくわからず、コードと並べてコメントを追加していきました。途中、明らかに名前のおかしな変数なども見…

3. もともとUnixはプログラマ向き

LinuxはUnix互換OSですが、下敷きとなったUnixはATTベル研究所の研究者たちが、自分たちの仕事の環境として70年代からスクラッチから書いたものです。彼らはMulticsでの環境が心地よかったことから、Multicsの生産性に単純さを加えてUnixを作り上げました。 …

己の無知を知った

たった今、私は自分が可変抵抗器の足の名前を知らないことに気づきました。おいおい。しっかりしてくれ、ほとんど40年前に覚えた部品だというのに…。 可変抵抗器、いわゆるボリュームはこういう記号です。 この部品、機能と端子位置があまりにもわかりやすい…

UARTドライバの移植に着手

TOPPERS/ASPのCORTEX-M3公式リリースは、STマイクロのSTM32F103がベースになっています。このプロセッサのシリアルポートはUSARTと呼ばれ、古典的なUARTと異なります。一方、LPC1768はUARTを使っています。 従って、シリアル・ポートのドライバを移植しなけ…

2. スクラップ&ビルドは嫌

前回からだいぶ間が開きました。 さて、Microsoftに魂を売り払って得た金でWindowsを買っている私としては、当然はじめの頃はWindows上でARM組み込み開発を始めました。しかし、そこにはいくつか問題がありました。 Windowsで組み込み開発をするばあい、ツー…

スライドボリューム高い

10kOhmくらいのスライドボリュームを二掴みくらい買いたいのですが、Digikeyで見てびっくり。単価800円ですって奥さん。とても買えません。RSコンポーネントでも400円くらいします。 Chuckさんなら安いところ知ってるかなとおもってブログをたぐったのですが…

もうだめぽ

TOPPERSの文書は全部プレイン・テキストです。章番号はついていますが、それをインデックスとして能動的に文書をたぐれるようになっていません。 JSPカーネルの時にいくつかの文書をWORDに変換してプロジェクトで自由に使ってくれと提出したのですが、無視ぶ…

猫カメラ、さらに続き

あー、うー、なんでみんな動いているんだ?と思いつつサンプルのソースコードを読んでいて、 if(loop_count < 4){ // 4枚は捨てる if(WireExt.beginReception(cameraAddress) >= 0){ WireExt.endReception(); } loop_count++; return; } が、ループじゃない…

猫カメラつづき

泊まりの出張に行っていたため、全く進捗はありません。というか、今週進める時間があるとは思えません。 fenrirさんによるとブログの記述には間違いがあるらしく、コードを読む方がよいようです。「コードなんかもらったかなー」とzipをあさると、camera_ex…

mbed + 猫カメラで苦戦中

昨日、少人数ながら定例の組み込み系飲み会を開きました。 いろいろと盛り上がった会合でしたが、席上、fenrirさんから猫カメラのブレークアウト・モジュールを評価用に譲ってもらえましたので、mbedとの接続を試みているところです。 ブレークアウト・モジ…