IAR5.41+OpenOCD+Versaloon配置

发布: 2010-1-30 04:41 | 作者: simonqian | 来源: StmFans思蜕盟 OPELC 自由电子联盟

[i=s] 本帖最后由 simonqian 于 2010-1-30 13:52 编辑

一直都没有写一份完整的Versaloon+IAR EWARM5.41的配置文章,最近的项目要等下周代理确定供货等问题,所以周末正好有时间可以补上。
IAR的安装大家可以自己搞定,我使用的是从官方网站下载的KickStart版本,有32K限制,这个版本可以免费用于商用开发。推荐使用最新的5.41版本也是因为在5.41中,IAR修正了几个我提出的BUG(和GDB调试接口相关)。

Versaloon使用环境的搭建
这个环境可以不使用,而直接使用已经编译好的程序,见LZ位下盘。
1. 固件、vsprog、openocd整合编译环境
    这个环境是使用MinGW的MSYS配置的一个在Windows下使用的Linux Shell环境,内置了GCC4.4和Codesourcery G++ Lite for ARM 2009q3,可以编译vsprog(Versaloon上位机命令行工具)、OpenOCD(ARM等芯片的调试工具)以及Versaloon固件(当有更新的时候,可以直接从源代码编译)。并直接提供了vsprog和OpenOCD(我自己修改的版本,官方git库中的一个基于0.3.1正式版本的一个分支,可在官方git库中查到,支持SWD接口)的编译脚本。

下载(24M):[local]1[/local]
解压到C:\,并运行C:\msys\1.0\msys.bat,即可启动MSYS环境。注意,这个命令行环境使用的是Linux命令格式。
脚本会根据当前的Windows用户名,自动在/home目录下建立用户目录,启动后,就是进入这个用户目录下。
这时,我们使用"cd .."来进入上一级目录,也就是/home目录,因为编译脚本都在/home目录下,当然也可以使用"cd /home"。


msys.jpg


"ls"是列出当前目录下的内容,图中,Administrator是根据当前Windows的用户名自动建立的目录;openocd.patch是openocd的一个补丁;test.cfg是OpenOCD的测试脚本;openocd_update和vsprog_update就是自动编译脚本。

2. vsprog、openocd的编译
    上面的步骤完成后,就可以直接运用编译脚本,来自动下载,配置,编译vsprog和openocd了。
    编译vsprog的话,只需简单在/home目录下运行"./vsprog_update"脚本即可:


msys_vsprog_compile.jpg



msys_vsprog_compiling.jpg


     编译完成后,重新出现命令行提示符,编译好的应用程序为/home/XXX/src/vsprog.exe,对应Windows目录为C:\msys\1.0\home\XXX\src\vsprog.exe,其中XXX为最新版本号。
   之后,需要把/home/XXX/src/config目录拷贝到和vsprog应用程序在同一个目录下(自动安装在/local/bin目录)。


msys_vsprog_config.jpg


   /home/XXX目录为对应版本的所有源代码,包括固件、上位机命令行程序、上位机GUI程序、配置文件、硬件原理图。

    编译OpenOCD的话,同样只需在/home目录下运行"./openocd_update"脚本即可。编译完成后,可执行文件为/home/openocd/src/openocd.exe,同样自动安装在/local/bin目录下。
3. vsgui编译环境
    vsgui是Versaloon的上位机GUI界面,使用Lazarus开发,直接使用Lazarus 0.9.28.2打开工程文件,按Ctrl+F9就可以编译,建议编译好后,用exe压缩工具压缩一下,推荐免费的UPX工具。经过第2步后,vsgui的源代码已经下载到对应的目录下了,vsgui的工程文件位于C:\msys\1.0\home\XXX\vsgui\vsgui.lpi。编译完成后,在同一目录下会出现vsgui.exe程序,请将这个程序拷贝到vsprog.exe同一目录下,这里是C:\msys\1.0\local\bin。
   
4. 设备安装
    Windows驱动位于C:\msys\1.0\home\XXX\dongle\driver\win32目录下。其中,stmcdc.inf是USB Bootloader的驱动(按下Versaloon上的按钮,将USB接上PC,就是进入Bootloader模式),其实也就是ST的VCOM例程的驱动;VCOM.inf是Versaloon的驱动。安装时要指定驱动,选择对应的inf文件。


win32_select_device.jpg


选择"从列表或者指定位置安装"。


win32_find_mine.jpg


选择自己选择驱动文件。之后点击从磁盘安装,选中对应的inf驱动文件,Windows也会自动所有选择的目录中的可用驱动:


win32_available_driver.jpg


其中,"STM32 Virtual COM Port"是更新程序的驱动;"Versaloon_Pro_VCOM"是Versaloon的驱动。
另外,Versaloon也可以使用"STM32 Virtual COM Port"驱动,但后果是只能作为一个高级的USB转串口工具使用(带流量控制,非常安全可靠)。

附件(2M):

Tools.zip
(2010-01-30 07:09:57, Size: 1.99 MB, Downloads: 32)


已经编译好的程序以及Windows驱动(据客户测试,Win7下可正常使用)。
simonqian (2010-1-30 04:42:11)
[i=s] 本帖最后由 simonqian 于 2010-1-30 13:49 编辑

OpenOCD的配置
这里建议自己看OpenOCD中的相关说明文档,我只是简单提供2个配置好的脚本,一个用于调试,一个用于下载程序,并附上简要说明。
下载:

OpenOCD_Scripts.zip
(2010-01-30 05:50:04, Size: 2.26 KB, Downloads: 3)


解压到C:\msys\1.0\local\bin目录下,这样就可以直接使用vsgui图形界面来控制了,当然,更加建议使用命令行界面。

压缩包中有3个目录,interface目录下是支持的调试器的配置文件,这里只有vsllink.cfg,target目录下是目标芯片的配置文件,这里为stm32.cfg,script为执行脚本,用来告诉OpenOCD你要赶什么,这里有stm32_erase.cfg用于芯片擦除、stm32_gdb.cfg用于调试、stm32_program.cfg用于下载程序。stm32_program.cfg中有"flash write_image"开头的一行,需要把文件名字改成要下载的文件名字,建议使用Hex格式。

命令行:openocd -f interface/vsllink.cfg -f target/stm32.cfg -f script/stm32_program.cfg
GUI,这个更加直观,直接用鼠标选择对应的配置文件,点击"Go ..."即可:


vsgui_jtag_openocd.jpg


正常的话,显示如下,可以点击"Stop"停止OpenOCD程序:


vsgui_jtag_openocd_running.jpg


当然,STM32页中的编程功能也可以使用,不过这里是使用vsprog里的功能(支持JTAG、SWD、ISP接口),而不是OpenOCD:


vsgui_vsprog_stm32.jpg


测试过的最快JTAG下载速度可以超过35KB/s。


关于目标STM32的配置:
    BOOT0和BOOT1都下拉。
关于给目标芯片自动供电的功能:
    Versaloon的最新版本的硬件可以自动对外供电,最大供电为50mA,供电电压为3.3V - 5817压降。
关于JTAG接口和SWD接口的使能
    对应的script目录下的配置文件,如果加上"swj_mode 2"这行,就是使用SWD接口,否则使用默认的JTAG接口。另外,转换接口的时候,需要给目标芯片断电(重新插拔)。
simonqian (2010-1-30 04:42:17)
[i=s] 本帖最后由 simonqian 于 2010-1-30 07:04 编辑

IAR EWARM 5.41的配置
    OpenOCD配置完成后,IAR的配置就很简单了。只要选择使用GDB Server作为调试工具即可。


iar_config_debugger.jpg


选择"GDB Server"。


iar_config_gdbserver.jpg


输入"localhost"。

之后就可以正常调试了,IAR5.41内置的FlashLoader也可以正常工作,编程和调试都没有问题。
trinove (2010-1-30 08:35:20)
相对设置比较复杂,最好安装能够傻瓜一步到底。这样比较容易推广,硬件开发人员不会很关系手上的工具是怎么做的,只要好用就行。

对了 Versaloon 啥时候推出?
trinove (2010-1-30 08:37:16)
感觉介绍的还是不错的,想试试看呢
bbs2009 (2010-1-30 09:55:17)
Versaloon 啥时候推出?  
---------------------------
早出了。坛子里 有 lZ 的贴子。
bbs2009 (2010-1-30 09:56:17)
开源的东西 一定要顶。
trinove (2010-1-30 12:11:45)
我是说,啥时候开始大面积发售啊
simonqian (2010-1-30 13:11:48)
没有太多设置,很多都是软件的编译,这部分还是建议直接使用编译好的,所以可以直接跳过,我弄个安装程序吧。当然,有兴趣的话,还是可以体验一下Linux下程序的编译方法,以及各种自动脚本的。
现在已经发售了,意大利、法国、澳大利亚都有客户,不过还是建议等到春节后吧,那时候就都是工厂生产的版本了(人家只能安排到春节后了)。
binglin (2010-1-30 15:59:47)
simonqian,我想阿力的意思是什么时候可以在坛子上大量推广使用这个仿真工具,因为要大量推广使用是需要你这个工具的配合。
simonqian (2010-2-01 16:51:22)
以前为客户开发方案,都是客户自己生产,现在要自己安排生产并控制质量,才发现很多麻烦事情啊。。。
xiaorunyi (2010-2-22 22:14:44)
IAR支持OpenOCD了?
simonqian (2010-2-24 19:39:58)
IAR前2个版本就已经支持GDB调试接口了,如果使用OpenOCD的话,只需要修改一个OpenOCD的编译参数就可以了。
simonqian (2010-2-24 19:48:58)
[i=s] 本帖最后由 simonqian 于 2010-2-24 19:50 编辑

最新消息:
OpenOCD的0.5的进程已经开始,这个版本里,将官方加入SWD的支持,并且,相关代码偶都会review。
Versaloon也将是OpenOCD正式版本中,第一个支持同时JTAG和SWD的工具。

Versaloon的批量版本也将在这之前发布(计划是10年2月底生产第一批)。
binglin (2010-3-31 14:16:44)

QUOTE:

最新消息:
OpenOCD的0.5的进程已经开始,这个版本里,将官方加入SWD的支持,并且,相关代码偶都会review。
Versaloon也将是OpenOCD正式版本中,第一个支持同时JTAG和SWD的工具。

Versaloon的批量版本也将在这之前 ...
simonqian 发表于 2010-2-24 19:48
顶一把!
()