LPC1768

起動問題解決せず

TOPPERS/ASP for LPCには嫌な問題があります。デバッガを使用していないときには起動しないと言う問題です。 この問題、なかなか再現が難しいです。少なくとも私の手元では再現率は低いです。いったん再現すると同じコードでは高い確率で再現しますが、そこ…

カーネル1.7.0対応コードのリリース

表記の通り、TOPPERS/ASP for LPCプロジェクトは、LPC1768用カーネル・ソースをTOPPERS/ASPカーネル ターゲット非依存部1.7.0に対応させました。 ニュース 同時にサンプルプログラム集もアップデートしています。

カーネル1.7.0をtrunkにマージ

周到に準備をしたつもりだったけど、Subversiveによるマージ結果は結構がっかり。うまくマージできたては居るようだが、過去のバージョンとの差分がうまく働かないのはなぜだろう。そこが肝心なのに。

カーネル 1.7.0 ビルド成功

プライベート・ブランチ上で、TOPPERS/ASP for LPC1768 カーネル 1.7.0のビルドに成功しました。まだ成功しただけです。実行試験は来週以降かなぁ。 あらかじめ、カーネル1.7.0とLPC1768版の違いを洗い出していたのでさほど手間はかからないと思っていました…

カーネル1.7.0移植のためのスタディ

TOPPERS/ASP 1.7.0がリリースされてしばらく経ちます。現在TOPPERS/ASP for LPCプロジェクトではカーネル1.6.0を使っており、適当な時点*1でアップデートが必要です。 以下、カーネル1.6.0に対して、TOPPERS/ASP for LPCが施した変更を列挙しました。このう…

カーネル 1.6.2リリース

TOPPERS/ASPのカーネル1.6.2をリリースしました。 ニュース: TOPPERS/ASP for LPC 1.6.2 および LPCXpresso版サンプルをリリースしました - TOPPERS/ASP for LPC - OSDN 例によってリリースは1日作業です。今回はサンプルとドキュメントも同時リリースしまし…

シリアルのバグ

昨日書いたシリアルのバグですが、夜におっかけた段階ではまだ詰め切れていません。 uartc.の割込みサービス・ルーチンの中では「受信割り込み可能で、受信データがある」ことを認識しているようです。また、デバッガで追った限りでは、その後受信レジスタも…

リリース準備中

TOPPERSプロジェクトからASPカーネル 1.7.0がリリースされました。 これを受けて、1.6.xのバグフィックス集積リリースの準備中です。 今日、試験中にUART1-3でしか起きないバグを見つけたため、これがショー・ストッパーになっています。

NXPのCMSISにI2C割り込みハンドラのバグ

NXPのCMSIS 2.0のDriversにバグを見つけました。I2Cマスターを割り込みベースで処理する際、callbackを呼びません。 callbackは、CMSISのI2C_MasterHandler()関数が送受信処理を完了したときに呼ぶ関数であるとCMSISのドキュメントに書いていますが、実際に…

TOPPERS/ASP for LPCXpresso用 I2C サブシステム

スレッドセーフで使いやすい関数のセットを開発中です。とりあえず動き始めました。当然割り込みベースなのでポーリングなど一切ありません。 使用例を下に示します。これはI2C SRAMへの書き込みと読み込みを行った例です。最初はライト・オンリ、次はライト…

ブレッドボードの写真を撮ってみた

TOPPERS/ASP for LPCXperssoでSample1を動かす最低構成のハードウェアです。 写真クリックで部具画面表示後「オリジナルサイズを表示」で拡大できます。 配線を写真だけで説明できるようにと考えて撮影しましたが、手間がかかった割に問題が残ってしまいまし…

TalkThroughのオーバーヘッド

TalkThroughプログラムはPCMオーディオ信号入力をそのままPCMオーディオ信号として出力します。従って内部ではデータコピーしかしていません。 ここから考えを推し進めると、内部のデータコピー部だけ書き換えてオーディオ・アルゴリズムにすると、そのまま…

DMA割り込みの耐えられない重さ

LPC1768のGPDMAは、全部で8チャンネルあります。それぞれがTerminal Count割り込みとError割り込みを生成するので、全部で16の割り込みソースが存在します。 しかし、こともあろうかNXPはこれらを全部ORして、一系統の「DMA割り込み」に押し込んでしまってい…

I2Sからポーリングで出力する

いつもの飲み会の前に何とか動かそうと、11月の終わり頃「エイヤッ」と作ったDMA版I2S駆動プログラムは当然のように動きませんでした。俺のプログラムがそんなに動くわけがない。しかし未知のハードウェアですし、闇雲につつき回しても動くはずがありません…

RTOS移植のプレゼンを公開

飲み会向けに作ったものですが、なんだか表面をなぞっただけになったのでこちらで公開しておきます。 LPC1768へのTOPPERS/ASPの実装 Windows live IDを持っている人はオンラインでプレゼンを見ることができます。

LPCxpresso のIDEでTOPPERS/ASPアプリのソースコードデバッグ

いや、できたとまでは言いませんが、とりあえずソースコード上でステップ実行くらいはできるようになりました。 Linux上でLPCxpresso IDEを動かしています。デバッガはLPC-LINK

OpenOCDでFlashへ書き込む

OpenOCD 0.4.0でLPC1768のFlash ROMに書き込むことができました。これでいちいちkermitを終了してlpc21ispを使わなくても済む…のですが、 takemasa@euclid:~/workspace/sample$ telnet localhost 4444 Trying ::1... Trying 127.0.0.1... Connected to local…

LPC1768依存部をリリース

TOPPERS/ASP ターゲット非依存部 1.6 に対応した、LPC1768依存部1.6.0をリリースしました。リリースファイルはダウンロードページから入手できます。また、開発環境インストール用のパッケージもリリースしています。 ようやくリリースできました。上記リリ…

リリースまでわずか

ドキュメントを整備し直しました。 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上へ移した後、…

ようやく動いた

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

今日の進捗

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

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

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