トラ技2012/11オマケ基板(2)
トラ技2012/11オマケ基板 を作ったまま放ってあったので、とりあえずLチカをやってみた。
LPCXpresso IDEをインストールするとLPC-Link経由でデバッグできるのだが、面白くないのでOpenOCD + ST-Linkでやってみた。
ねむいさんが既にOpenOCD + ST-Link/V2 でLチカってらっしゃるので目新しいことではないのだが。 RAMでLチカを動かしてみることにする。
ねむいさんが”おきば”で公開されているST-Link/V2に対応したOpenOCDと、LチカのサンプルをDLする。ST-LinkはSTM32LVDiscoveryのST-Link部分を使う。
configは tcl/target/lpc11u14_stlinkv2_flash.cfg から必要な部分を取り出して使ったところ、OpenOCDが起動できない。
デバッグオプション(-d3) をつけて起動すると ST-Linkがオープンできていないようだ。
しばし嵌ってしまったが、よく見ると、USBのVID,PIDが違うことに気が付いた。
STM32LVDiscoveryのST-LinkはPID:0483 PID:3744だが、OpenOCDはPID:483 PID:3748でないといっている。調べてみるとPID:0483 PID:3744はST-Link/V1なのだそうだ、ねむいさんが使ってらっしゃるSTM32F0DiscoveryはST-Link/V2だけど、STM32LVDiscoveryはST-Link/V1のようだ。
config中の"stlink-v2.cfg"を"stlink-v1.cfg"に変えると動くようになった。(Flashに書けるかは未確認)
--- LPC11U14.cfg ---
transport select $_TRANSPORT |
CMSISライブラリを使ったサンプルはRAM(4K)に収まらないので使えない。
プログラムは直接RAMにロードして動かすので、サンプル中の.dataや.bssを初期化している部分をコメントアウトしておく。
gdbを使って動かす場合には↓のような .gdbinitを作って
-- .gdbinit ---
target remote localhost:3333 |
OpenOCDを起動しておいて、
arm-nome-eabi-gdb sample.elf
でgdbを起動すると、mainで止まるので、continueコマンドで実行できる。
(予めブレークポイントを設定しておくとそこで止まる。)
This is free software: you are free to change and redistribute it.
...
Temporary breakpoint 1, main () at ../main.c:21
|
gdbを使わなくても、OpenOCDだけで動かすこともできる。
ターミナルソフトでlocalhost:4444に接続して、↓の太字の部分を入力する。
Open On-Chip Debugger |
リマップ・レジスタ(0x40048000)に1を書いて割り込みベクタがRAMを使うように設定しておかないと割り込みが使えない。
reg pc xxxxxxxx で設定する値(エントリ・アドレス)は、マップファイル中のシンボル"main"を調べて設定するか、
load_image した後に mdw 0x10000004 で表示される値を設定する。
←リンク先にAVI
« 電流測定 | トップページ | 「日本で最も人材を育成する会社」のテキスト »
「CPUボード」カテゴリの記事
- 久々の物欲(2022.05.21)
- stcgal <質問に答える>(2021.02.21)
- micro:bitで跳び上がると表示する名札 <ウケ狙い>(2020.11.18)
- micro:bit <BLEが乗った低価格マイコンボード>(2020.09.15)
- Google日本語モールス入力(2020.05.01)
コメント