今天试验了一下,jlink可以在纯linux环境下使用
前一阵从淘宝买了一个山寨版本的jlink V8,今天晚上拿出来在纯linux环境下试了一下,简单测试没有什么问题我的系统是Fedora 12,32位的,目前在linux下使用jlink有两种方法,一种是用官方提供的linux下的beta版,一种是使用openocd
个人感觉fedora 官方打包的openocd真的很好用,如下:
安装openocd :yum install openocd -y
终端下执行命令:openocd -f interface/jlink.cfg -f target/stm32.cfg
jlink连接一块stm32rbt6的最小系统板,显示如下:
Open On-Chip Debugger 0.3.1 (2009-11-13-14:20)
$URL$
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
1000 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
Info : J-Link initialization started / target CPU reset initiated
Info : J-Link ARM V8 compiled Dec1 2009 11:42:48
Info : JLink caps 0xb9ff7bbf
Info : JLink hw version 80000
Info : JLink max mem block 9576
Info : Vref = 3.313 TCK = 1 TDI = 0 TDO = 0 TMS = 0 SRST = 0 TRST = 0
Info : J-Link JTAG Interface ready
Info : clock speed 1000 kHz
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
暂时就学到这里了,openocd的官方说明文档有点多,纯英文的,改天有时间慢慢琢磨下再告诉大家 IAR能支持openocd就好玩了 好消息,上次我试过jlink提供的linux驱动,结果不行 回复【2楼】boycn
-----------------------------------------------------------------------
下载最新版本的试一下看看啊 自己编译OPENPCD就可以了 mark 一下 mark 一下 标记上,期待楼主继续…… jlink本来就被 openocd支持. mark jlink可以在纯linux环境下使用 thank you 跟着应该是启动另一个终端,输入telnet localhost 4444
然后就可以用它的指令了
另外,还可以直接输入以下指令下载程序
openocd -d0 -f interface/jtagkey.cfg -f target/stm32.cfg \
-c init -c targets -c "halt" -c "flash write_image erase test.elf" \
-c "verify_image test.elf" -c "reset run" -c shutdown
OpenOCD User’s Guideourdev_544286.pdf(文件大小:745K) (原文件名:openocd.pdf) 我的也提示不行啊
Error:J-link command 0xde failed(-1)
... 回复【12楼】ngei
openocd -d0 -f interface/jtagkey.cfg -f target/stm32.cfg \ -c init -c targets -c "halt" -c "flash write_image erase test.elf" \ -c "verify_image test.elf" -c "reset run" -c shutdown
-----------------------------------------------------------------------
兄弟 必须顶你 你这一条命令让我少走多少弯路! $ openocd -d0 -f interface/jlink.cfg -f target/stm32.cfg -c "init" -c "targets" -c "halt" -c "flash write_image erase RTOS_STM32.hex"-c "verify_image RTOS_STM32.hex" -c "reset run" -c "shutdown"
Open On-Chip Debugger 0.4.0 (2010-02-22-22:59)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
debug_level: 0
1000 kHz
jtag_nsrst_delay: 100
jtag_ntrst_delay: 100
TargetName Type Endian TapName State
-------------------- ---------- ------ ------------------ ------------
0* stm32.cpu cortex_m3little stm32.cpu running
target state: halted
target halted due to debug-request, current mode: Handler HardFault
xPSR: 0x29000003 pc: 0x08000674 msp: 0x20003478
auto erase enabled
wrote 61440 bytes from file RTOS_STM32.hex in 7.081992s (8.472 kb/s)
verified 60936 bytes in 0.451991s (131.657 kb/s)
shutdown command invoked
$ mark 回复【12楼】ngei
-----------------------------------------------------------------------
对了,兄弟,你给的那个命令组合好像有些小bug,我用jlink给stm32下程序的时候时而出现如下情况
checksum mismatch - attempting binary compare
Verify operation failed address 0x08000046. Was 0xc5 instead of 0x00
我google了,是checksum校验时的出现的问题,我试着将命令组合改成如下
openocd -d0 -f interface/jlink.cfg -f target/stm32.cfg -c "init" -c "targets" -c "reset halt" -c "targets" -c "flash write_image erase RTOS_STM32.hex" -c "verify_image RTOS_STM32.hex" -c "reset run" -c "shutdown"
关键在 -c "init" 之后 halt 改成了 reset halt(先复位再停机),这样就解决了,保证每次程序下载和校验都ok
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_587675PLKSD7.png
(原文件名:Screenshot-Librae@UNITED:~-Desktop.png) mark mark 很好! 不得不Mark 技术流,必须顶
页:
[1]