sh-3.2$ file * cmsis: directory makefile: ASCII English text, with CRLF line terminators prj: directory src: directory test_ram.elf: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linke d, not stripped test_ram.hex: ASCII text, with CRLF line terminators test_ram.map: ASCII assembler program text3.3Vのチップなので、ストロベリーリナックスの2232HのモジュールでMacにつないで みる。接続はここを 参考にした。ISPはPIOO_1(24)になります。後日追記:1.92のソースを確認したとこ ろLPC1114は入っていました。(2013/07/28)
sh-3.2$ lpc21isp -control test_ram.hex /dev/cu.usbserial-003014FDA 115200 12000 lpc21isp version 1.83 File test_ram.hex: loaded... Start Address = 0x10000000 converted to binary format... image size : 5208 Image size : 5208 Synchronizing (ESC to abort). OK Read bootcode version: 1 7 Read part ID: unknown (0x1A40902B) Internal error: wrong chip variant 0 (detected device 0)既にlpc21ispにパッチを充てた人の ページ が見つかったので同じ事をしてみて、リトライ。
sh-3.2$ lpc21isp -control test_ram.hex /dev/cu.usbserial-003014FDA 115200 12000 lpc21isp version 1.83 File test_ram.hex: loaded... Start Address = 0x10000000 converted to binary format... image size : 5208 Image size : 5208 Synchronizing (ESC to abort). OK Read bootcode version: 1 7 Read part ID: LPC1114FN.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B) Will start programming at Sector 1 if possible, and conclude with Sector 0 to en sure that checksum is written last. Erasing sector 0 first, to invalidate checksum. OK Program too large; running out of Flash sectors.と残念な結果だったので、上のページのコードをコンパイルして試してみる。 後日追記:1.92で実行したところ問題なく焼く事が出来ました。パッチのパラメータが 間違えていたのかもしれません。(2013/07/28)
sh-3.2$ lpc21isp -control out/lpc1114_blink_led.hex /dev/cu.usbserial-003014FDA 115200 12000 lpc21isp version 1.83 File out/lpc1114_blink_led.hex: loaded... Start Address = 0x000000C1 converted to binary format... image size : 940 Image size : 940 Synchronizing (ESC to abort). OK Read bootcode version: 1 7 Read part ID: LPC1114FN.../102, 32 kiB ROM / 4 kiB SRAM (0x1A40902B) Will start programming at Sector 1 if possible, and conclude with Sector 0 to en sure that checksum is written last. Erasing sector 0 first, to invalidate checksum. OK Sector 0: .......................... Download Finished... taking 1 seconds Now launching the brand new code書き込みに成功したようなので、一旦電源をOFF/ONしたらPIO1_8(17)で Lチカできました。lpc21ispからリセットしているはずなのですが、うまくいって いないようです。
LPC810はISPかJTAGを2本にしたSWDを使用してして、書き込みができる。トラ技に付属 していた基板はSWDを使うようになっていて、lpc21ispでは書き込みが出来ない。 SWDのオープンソースを探してみたところswddudeというコードがgithubにあったが不明 なc++ライブラリを使っていて、ビルドは出来なかった。内部的にはlibftdiで作られて いるようだ。
LPCのライブラリをgccでコンパイルできるようにし たコードがあった。
swddudeのライブラリはsocialhacker.comにあったが、コンパイルできなさそうなので とりあえず必要なダミーを用意してコンパイルしてバイナリを作ってみたが、動いている 気配がない。。。
mbedのi2c slaveが試してみたくて、mbedを初めて使ってみた。ビルドしたファイルを ダウンロードしてlpc21ispで焼けるので、便利かも。 こちらを参考にして、 LPC1114で試したがi2cのslaveで1バイト目のアドレスにはackが返るが2バイト目の データ書き込みにackが返ってこない。なんでかな?(2016/02/26)
swddudeは使えるようになった。 swddudeをMac OS Xで使ってみた - Qiita