いろいろ試す2

LPC2000系って海外の掲示板に情報わんさかあるから詰まった時はそっち見た方が速か
ったりして解決した瞬間にあんだけ足止め食らったのはなんだったんだと自分のア●さ
加減を恨んだりすることも毎度のこと…。
まぁお気楽ご気楽なアマチュアであっても情報戦マジ大事と感じる次第ですなぁ(キリッ
…ねむいさん的には本文と関係ない与太話書いてる時が一番楽しいです。







苺は抜きで。
IF誌に載ってたOLED表示プログラムの方も同じ修正を施しました
最終的には全部の機能合体できたらいいなと考えてます。

うー
おまけ
前回製作したLAN基板にmicroSDカードスロット(165円)つけました。これで死角は無し!




●JTAGkeyをimpactから使う
FT2232を使用したJTAGデバイスは自作方法が急速に広まっています。しかしそれにつ
れて「作ったけど動かない&動かし方がわからない!」云々の叫びが谺してるような
気がします。きっと空耳でしょう。
私はかみき氏ベースのJTAGKey互換回路(+VID&PIDもAmontecのと全く同じ)組んでるの
で幸いデバッガ周りではほとんど躓いたことはないです。

…それは置いといて前にMAI電子さんから破格値で販売されているxilinxのFPGAボード
を運よく購入できました。DWM誌2007年7月の付録のよりも容量が2倍多いです。
うー
早速JTAGでアクセスしてデバイスが見えるかどうか試してみました。
アクセス方法はFenrir氏が作成されたcblsrvのJTAGkey(と互換回路)対応版を使用して
impactのcableserver経由で行います。

Fenrir氏やNakagawa氏が公開されている物は私の環境(ゲストOS:Win2000、ホストOS:XPPRO,
VirtualBox使用)では残念ながらそのままでは動作しなかったので、Nakagawa氏が盛り込ん
だ修正の中でビットシフトしている部分だけ外して動作出来るようにしてます。
(こうやらないと動かないのは私の環境だけでしょう)。

うー
認識するとこんな感じです。

うー
書き込みも非常にスムーズ。もうLPTポートは要らない!?

cblsrv経由で使用できるのはバウンダリスキャンモードだけっぽいです。コンフィグ
ROM・FPGAへの書き込みだけならば速度も速いし(XCF04Fで50秒前後)これで充分。
このボード使って某デジットのタッチパネル液晶とか駆動できるようにしたいです。
VHDLのおべんきょg(ry




●OpenOCDのリビジョンが既に2570まで達していた(2009.07.30現在)
安定版は0.2.0が公式からリリースされています…がftdlのライセンスの絡みで実行
形式バイナリは公開されていません。0.1.0のバイナリも削除されています。
これからは自分で構築しなければならないようですね…非常にめんどい…。

OpenOCDは現在加速度的なスピードで開発が進められています。ネットで散見される
ARM系の開発環境構築法にはOpenOCDの設定・使用法も記されていますがあっという間
に陳腐化してしまって書いてるとおりにやるとうまくいかないこともあるようです。
OpenOCD使いこなしてる人はどのようにして風が吹いて桶屋がもうかるのかを理解し
てるでしょうからcfgなり何なりを変えるだけで対処できるでしょうが…初めて
触れる人には新しい情報と古い情報がごっちゃになってて非常に敷居が高く感じて
いるかと思います。ナムナム。がんばれよ!(←他人事)


とりあえず2009.07.30現在一番新しいr2570のを試してみました。手持ちの幾つかの
ARM基板でフラッシュの書き込みができたのを確認しました。
(注:cfgファイルはOpenOCDの世代交代によってどんどん変わっています。そのままでは
使えないものもあるので十分吟味のこと)

-LPC2388の場合

> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/lpc2388_flash.cfg -c "mt_flash main.elf" -c "continue" -c "resume" -c "shutdown"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
500 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
dcc downloads are enabled
500 kHz
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Warn : EmbeddedICE version 7 detected, EmbeddedICE handling might be broken
100 kHz
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Info : JTAG tap: lpc2388.cpu tap/device found: 0x4f1f0f0f (mfg: 0x787, part: 0xf1f0, ver: 0x4)
Info : JTAG Tap/device matched
Warn : srst pulls trst - can not reset into halted mode. Issuing halt after reset.
target state: halted
target halted in ARM state due to breakpoint, current mode: Supervisor
cpsr: 0x000000d3 pc: 0x00000000
500 kHz
flash 'lpc2000' found at 0x00000000
auto erase enabled
Info : Padding image section 0 with 0 bytes
Warn : Verification will fail since checksum in image(0x00000000) written to flash was different from calculated vector checksum(0xb8a06f60).
Warn : To remove this warning modify build tools on developer PC to inject correct LPC vector checksum.
wrote 98756 byte from file main.elf in 6.125196s (15.745032 kb/s)

> Process Exit Code: 0
> Time Taken: 00:09



-STM32F103VBT6の場合
> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/stm32_flash.cfg -c "mt_flash main.elf"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
1000 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08001ec0 msp: 0x20005000
Info : device id = 0x20016410
Info : flash size = 128kbytes
stm32x mass erase complete
Info : Padding image section 0 with 0 bytes
Warn : not enough working area available(requested 16384, free 16336)
wrote 8508 byte from file main.elf in 0.515641s (16.113136 kb/s)
verified 8508 bytes in 0.421888s
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG Tap/device matched
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : JTAG Tap/device matched

> Process Exit Code: 0
> Time Taken: 00:03



-AT91SAM7S256の場合
> "C:¥Devz¥AVR¥WinAVR¥utils¥bin¥make.exe" program
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/sam7x256_flash.cfg -c "mt_flash main.elf" -c "reset run" -c "shutdown"
Open On-Chip Debugger 0.3.0-in-development (2009-07-28-19:41) svn:2570
$URL: svn://svn.berlios.de/openocd/trunk/src/openocd.c $
For bug reports, read http://svn.berlios.de/svnroot/repos/openocd/trunk/BUGS
dcc downloads are enabled
fast memory access is enabled
Info : device: 4
Info : deviceID: 67358712
Info : SerialNumber: 11111111A
Info : Description: Amontec JTAGkey A
Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : JTAG Tap/device matched
5 kHz
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x60000013 pc: 0x001005f4
2000 kHz
background polling: on
TAP: sam7x256.cpu (enabled)
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x60000013 pc: 0x001005f4
flash 'at91sam7' found at 0x00100000
cleared protection for sectors 0 through 15 on flash bank 0
auto erase enabled
Info : Padding image section 0 with 3 bytes
wrote 3636 byte from file main.elf in 1.468797s (2.417476 kb/s)
verified 3633 bytes in 0.109378s
Info : JTAG tap: sam7x256.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : JTAG Tap/device matched

> Process Exit Code: 0
> Time Taken: 00:04




JTAGでフラッシュに書けるようにしとくと何かと便利ですね〜。とくにJTAGkey(と互換回路)
はARMだけでなく先にも述べたとおりFPGAの書き込み等にもいろいろ使用できるので
アマチュアな人たちには必携のアイテムだと思います。

これAVRSPライクなアプリから操作してAVRに書き込みできるようになったら私的
には最強のツールになるのだが…。




●Intel X25-M(新型)を買った
購入して数日で不具合が発覚して涙目ですorzさらに4日間OSのシステムドライブと
して使用した後ベンチを取るとランダムライトの(512k,4k)速度が大きく落ち込んでい
るのが発覚orz

うー
購入直後
うー
4日後

X25-Mの速度低下現象は以下の手順で確実に回復(端的に)。
1.ドライブのバックアップ取る。(バックアップツールはこれ使ってます)
2.AHCI->IDEモードに切り替え、生DOSからHDDeraseのSecure Erase(enhanced)実行
3.電源断->再投入後AHCIに戻しさらにバックアップを復元する
4.わーい♥

うー
ファームの修正で速度低下を恒久的に防止できるようになると良いですね(涙目で)

Go to top of page