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月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)
---
予めプライベートリポジトリを作っておく。

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)
---
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)
---
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)
---
プロジェクトファイル 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)
---
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)
---
登録:
投稿 (Atom)