ラベル LPC1549 の投稿を表示しています。 すべての投稿を表示
ラベル LPC1549 の投稿を表示しています。 すべての投稿を表示

2014年4月12日土曜日

python-on-a-chipオンラインコンパイラのLPC1549対応

1年くらい前に比べてmbedのSerialクラスのbaud,readable,writeableメソッドが
SerialBaseから派生するようになっていたのでネイティブ関数を修正する。

mbed.py
class Serial(object):
def baud(self, n):
def readable(self):
def writeable(self):

本来は、pmImgCreator.py で mbed.py から main_nat.cpp を自動作成するのだが、
Pythonのバイトコードの変更はないので、main_nat.cpp を直接修正する。

main_nat.cpp
nat_28_mbed_baud(pPmFrame_t *ppframe)
nat_29_mbed_readable(pPmFrame_t *ppframe)
nat_30_mbed_writeable(pPmFrame_t *ppframe)

PinNameTable.h に LPC1549 のピンの名前を追加する。
バイナリー検索をしたいので、pinname.py で
mbedリポジトリから PinNames.h を取得して名前は予めソートしておく。

ターゲットによってヒープ領域を設定する。
LPC1549 はRAM容量が比較的多いので 32Kバイト にしておく。

main.cpp
#define HEAP_SIZE 0x8000
uint8_t heap[HEAP_SIZE];

mbedオンラインIDEでビルド pymite_LPC1549.binを作成して、
pymbed のフォルダにコピーしておく。

pymbed にLPC1549のドロップメニュー等を追加する。
pymbed_bt_ace.html
pymbed.py


オンラインコンパイラサイト構築のソースコード:
https://bitbucket.org/va009039/pymbed
オンラインコンパイラ用のpython-on-a-chip:
http://mbed.org/users/va009039/code/pymite/
python-on-a-chip本家ソースコード:
https://code.google.com/p/python-on-a-chip/

(2014/4/12)
---

2014年4月7日月曜日

mbed LPC1549のオフライン環境(2)

オフライン環境でソースコードを変更した時にオンラインIDEにも反映させるための準備。

予めプライベートリポジトリを作っておく。


SourceTreeでリポジトリからソースコードをクローンする。


Clone repository to desktopのURLを元のパス/URLに入れる。
クローンするローカルフォルダを保存先のパスに入れる。


mbed.orgでのパスワードで認証する。


リポジトリのクローン。


ローカルフォルダにexportしたファイル・フォルダで重複しないものをコピーする。
プロジェクトファイルを開いてソフトウェアを作成する。

SourceTreeでプッシュする。


オンラインIDEにソースコードを反映させるためにUpdateする。


オンラインIDEで反映されたソースコードでビルド出来ます。

(2014/4/7)
---

2014年4月5日土曜日

mbed LPC1549のオフライン環境(1)

既にMDK-ARM v5でLPC1549がサポートされていたが、
MDK-ARM v4でもサポートされるようになったのでインストールしてみました。

https://www.keil.com/download/product/
https://www.keil.com/demo/eval/armv4.htm
からMDK-ARM ver4.74(MDK474.EXE)をダウンロード。

インストール。


mbedオンラインコンパイラからKeil uVision4形式でexportする。


書庫を展開してプロジェクトファイル(*.uvproj)を開く。

(2014/4/5)
---

2014年3月30日日曜日

LPCXpresso LPC1549ファームウェアの再ビルド・更新(2)

以前のバージョンではCMSIS-DAPが動かなかったが、修正されたようなので再ビルドしてみる。

http://mbed.org/media/uploads/va009039/lpc4322_lpc1549_if_mbed.bin

ファイルサイズ等:


CMSIS-DAPで認識するようになりました。


(2014/3/30)
---

2014年3月21日金曜日

LPCXpresso LPC1549ファームウェアの再ビルド・更新(1)

https://github.com/mbedmicro/CMSIS-DAP からソースコードを取得する。

プロジェクトファイル lpc4322_interface.uvproj を開く。

バイナリーサイズを32Kバイト以内に収めるために、
Optimize for Timeのチェックを外す。
One ELF Section per Function のチェックを入れる。
ビルドする。


ファームウェアを更新する。


***

ドラッグアンドドロップの不具合は修正されたが、
なぜか、CMSIS-DAPが動かなくなってしまった。



(2014/3/21)
---

2014年3月14日金曜日

mbed LPC1549のメモ(仮題)

ファームウェアlpc4322_lpc1549_if_mbed.binのサイズは36,476バイト。
DFUSec.exeのFile - Lock Link2 Function のチェックを外す。

RAMアドレスは0x02000000から開始。
ヒープとスタックは512バイトくらい。
※mbedライブラリrev81でRAMトップからスタックを開始するように修正済み。

mbedインターフェースで書き込めるのは4Kバイトくらいまで。
※LPC1549のフラッシュアルゴリズムは修正済み。

Serial(USBTX,USBRX)の代わりにRawSerial(USBTX,USBRX)を使う。
RawSerial::printfは使わない。puts,putcを使う。
snprintfの第2引数、バッファのサイズは使わない。
printf標準出力は使わない。

USBROMスタックAPIのアドレスはLPC11U35とは違う。
ユーザマニュアルとサンプルプログラムとはMSC_Write,MSC_Readの説明は違う。uint32_t high_offsetが追加。
MSCのパラメータ構造体のサイズは違う。uint64_t MemorySize64が追加。
以前は4Gバイトが上限だったが、少なくとも512Gバイトのファイルシステムは扱える。

USBROMスタックで作ったRAMディスクのサンプルプログラム:
USB Device ROM Stack API example program
http://mbed.org/users/va009039/code/lpc1549-USBROM_msc_example/

(2014/3/14)
---