mbedとかLPCXPresso1768版とか超楽しそうスね(涙目)

un
TFT-LCD Shieldの開発に当たって、ねむいさんもついにArduinoを購入しました!
最初はEtherpodのプラットフォームだけで動かすことしか考えてませんでしたが、
HP200LX持ってないのにmorphyone作ろうとして盛大にコけたどこぞのぺ○野郎のこと
が頭よぎったので、ちゃんとArduinoを理解してライブラリも作れるようになるために
購入しました…。まぁSTM32ですでにできたことをAVRに移すだけですから驚くほど簡た…
un
ごめんもう白旗上げていいかな…(※xmegaの二の舞)
ところでxmegaで思い出しましたがxmegaでFatFS(のMSPI)をDMA化出来たという話を
全く聞きません。情報もってる人がいたら教えてください…

20120907追:
xmegaでFatFsのDMA化できるじゃない!





さて、前フリはこれくらいにしといて本題に入りますが、Cortex-M3の系統のARMマイコン、
LPC1768を使用したハイエンドかつ安価な評価ボードがいくつか出ています。mbedや
LPCXpresso(LPC1768版)等がそれに当たりますが、ねむいさんはそれのどれにも手をつけず、
taobaoで液晶買った時についでに中華LPC1768ボードを買っていたのでした!!
↑のLPCXpresso1768版出るなんて知ってたら買ってなかったのですが…くやしい…でも…
過ぎたことは仕方ないので私も通電してみることにしました。

un
↑KeilのMCB1700互換なミニボードだそうです。周辺が全くない代わりにほぼすべての
 IOが外部に引き出されています。

un
↑即LPC1769に交換ッッ!!1!LPC1768を凌駕する120MHzで動きますッ!
 恐らく私が日本国内で初めてLPC1769を動かした女になるでしょう(多分)
R&D dailyの綿谷氏がとうの昔にされていましたorz生意気言ってごめんなさいッ
マイクロマウスの開発されている方たちはなんとうか本当に格が違いますね…

さて、基本の'き'であるLED点滅から始めてみたいと思いますが、上述のとおりMCB1700互換
なので、NxPのサイトにある、
"LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library (GNU, Keil, IAR)"
というExample付きのCMSISライブラリがそっくりそのまま使えます。

GNU用のExampleはこれまたCodeSourceryの使用を前提にされていて、ねむいさん的にも
好都合です。手順に従い、程なくバイナリを生成出来ました。
un

バイナリの書き込みはもちろんJTAGKey2Clone+OpenOCDから行います。LPC17xx系統の
対応状況は現在JTAG接続のみです。NxP製のARMマイコン特有のCheckSumValidation
に注意してスクリプトファイルを作り、JTAG接続にて書き込みました。書き込みの過程はこんな感じです。

> "C:/Devz/AVR/WinAVR/utils/bin/make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey2.cfg -f C:/Devz/ARM/OCD/tcl/target/lpc1769_rclk_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.5.0-dev-00450-g450aaad (2010-07-22-09:39)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
none srst_pulls_trst
500 kHz
Info : device: 6 "2232H"
Info : deviceID: 67358712
Info : SerialNumber: 22222222A
Info : Description: Amontec JTAGkey-2 A
Info : max TCK change to: 30000 kHz
Info : clock speed 500 kHz
Info : JTAG tap: lpc1769.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
Info : lpc1769.cpu: hardware has 6 breakpoints, 4 watchpoints
RCLK - adaptive
Info : JTAG tap: lpc1769.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x1fff0080 msp: 0x10001ffc
flash 'lpc2000' found at 0x00000000
auto erase enabled
wrote 8192 bytes from file main.elf in 1.328142s (6.023 KiB/s)
verified 4968 bytes in 0.531257s (9.132 KiB/s)
requesting target halt and executing a soft reset
target state: halted
target halted due to breakpoint, current mode: Thread
xPSR: 0x01000000 pc: 0x000000e0 msp: 0x10007fe0
shutdown command invoked

現状LPC17xx系のアーキテクチャのすべてを理解はしていないのでLPC2388みたく高速
書き込み/ベリファイはまだ出来ませんが、そちらも使い込むにつれ対応していきます。

un
↑LED点滅プログラムが動いてるところ。
un
↑JTAGkey2Clone+OpenOCD+Insightでのデバッグも自在です。
un
↑NxP提供のCMSISのExampleはLPC1768向けになっており、それをそのままビルドしている
 ので,動作周波数はまだ100MHzです。


まぁつかみはこんな感じでしょうか。私が行った最初のとっかかりのプログラムを自分用環境
に移植したものをこちらに。OpenOCDのスクリプトファイルはこちらに置いておきます。
ご利用は自己責任で〜


おまけ
un
un
じっと見てたら気づいたけど何かに似てる…



Comments

Post a Comment








Go to top of page