FrontPage

2011/04/22からのアクセス回数 2516

STM8S版Versaloonをちょっと改造

mbedにはSWDでデバッグするためのピンが解放されていないため、mbedとピンコンパチの Xpresso1768をSTM8S版Versaloonを使ってデバッグしてみます。

Xpressoのデバッガを切り離して電源がとれないため、ST8S版Versaloonをちょっと改造して CN7の1番ピンから3.3Vを取ります。

STM8SVersaloon_mod.png

mbedのプログラムのエクスポート

mbedの新規プロジェクトを作成するとLED点滅のプログラムができるので、これをエクスポート します。 この時、LPC1678、GCC版とします。

Eclipseのプロジェクトを作成

EclipseでC/C++のMakefileベースのプロジェクトを作成します。

そこにダウンロードしたファイルをコピーします。

XPresso1678のLEDは、P0_22なのでmain.cppを修正します。

#include "mbed.h"

//DigitalOut myled(LED1);
DigitalOut myled(P0_22);

int main() {
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

makeコマンドでコンパイルすれば完了です。

openocdでデバッグ

openocd.cfgを以下のように作成します。

# OpenOCD lpc2214 cfg with Flash proc
telnet_port 4444
gdb_port 3333

source [find interface/vsllink_swd.cfg]
source [find target/lpc1768_flash.cfg]
# 高速書き込みのために追加
#arm7_9 dcc_downloads enable
#arm7_9 fast_memory_access enable

proc flash_program {ELF_FILENAME} {
	halt
	flash probe 0
	flash write_image erase $ELF_FILENAME
	echo "flash program complete. reset and run"
	resume
	reset run
	exit
}

init

LPC1768用のコンフィグファイルはOpenOCDに付属のものでは動作しませんでした。 ねむいさんが公開されているfilelpc1768_flash.cfgを使用しました。

無事プログラムの書き込みとデバッグ

それでは、openocdを起動して、

$ /usr/local/bin/openocd 
Open On-Chip Debugger 0.5.0-dev-00783-g0123985-dirty (2011-12-25-15:57)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : must select a transport.
Info : OpenOCD runs in SWD mode
adapter_nsrst_delay: 200
jtag_ntrst_delay: 200
10 kHz
Info : Versaloon(0x32)by Simon(compiled on Aug 14 2011)
Info : USB_TO_XXX abilities: 0x00000009:0x00000040:0xC0000006
Info : clock speed 10 kHz
Info : lpc1768.cpu: hardware has 6 breakpoints, 4 watchpoints
10 kHz
Warn : Only resetting the Cortex-M3 core, use a reset-init event handler to reset any peripherals
target state: halted
target halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x000000cc msp: 0x10008000
12500 kHz
500 kHz
Info : accepting 'gdb' connection from 3333
Warn : acknowledgment received, but no packet pending
10 kHz
Warn : Only resetting the Cortex-M3 core, use a reset-init event handler to reset any peripherals
target state: halted
target halted due to debug-request, current mode: Thread 
xPSR: 0x81000000 pc: 0x0000103e msp: 0x10007fd8
debug_level: 2
Info : Padding image section 0 with 4 bytes
Warn : Verification will fail since checksum in image (0x00000000) to be written to flash is different from calculated vector checksum (0xefff7402).
Warn : To remove this warning modify build tools on developer PC to inject correct LPC vector checksum.
requesting target halt and executing a soft reset
target state: halted
target halted due to breakpoint, current mode: Thread 
xPSR: 0x01000000 pc: 0x000000cc msp: 0x10008000
debug_level: 0

途中でchecksumが一致しない旨のワーニングがでますが、そのまま実行しても動きます。 ただ、LPC1343のようにチェックサムの値が異なるときに、処理をきりかえる場合には 別途対応が必要です。

次に、Eclipseでデバッグ設定をします。トラ技2月号に詳細に説明していますので、参照してください。

debug_LPC1768.png

デバッグ画面はこんな感じ!

debug_screen.png

コメント

選択肢 投票
おもしろかった 2  
そうでもない 0  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


添付ファイル: filedebug_LPC1768.png 4件 [詳細] filedebug_screen.png 4件 [詳細] filelpc1768_flash.cfg 2件 [詳細] filedebug_LPC1768.jpg 3件 [詳細] fileSTM8SVersaloon_mod.png 4件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-08-29 (月) 11:34:28 (354d)
SmartDoc