准备介绍一个新的STM32开发环境
发布: 2009-6-29 17:52 | 作者: simonqian | 来源: StmFans思蜕盟 OPELC 自由电子联盟
[i=s] 本帖最后由 simonqian 于 2009-7-17 14:23 编辑
今天收到ST意大利的ARM部门送给偶的STM3210E-EVAL/A评估板,作为新的免费开源开发环境的beta-tester。
等空些的时候,会介绍一下这个环境的配置和使用方法,包括STM32的调试编程器的使用方法。
现占位到10楼(全面占领第一版面)。。。。。。
据说会超时。。。。。。看看到时间能准备好多少资料了。。。
诶,半夜三更还要准备资料。。。
最近自己的公司正忙于另一个市场的几个项目,所以这个上面,没办法投入太多精力了。
诶,要拼命赚钱找老婆啊。。。
为了排除做广告的嫌疑,目前我介绍的Versaloon,在全球都没有地方可以购买,而且以后基本不考虑在国内销售(可只能做一批在国内测试,数量估计在10-30套,基本以成本价提供)。
虽然ST的那个工程师一直希望我尽快能够在欧洲和美国销售Versaloon,但是目前项目太多,没有时间找工厂生产。
只是自己焊接了几个自己用而已。
------------------------------------------------------------------------------------------
2009-7-10:
硬件验证OK,原理图更新,修改了一些器件的参数,不影响PCB,准备hex
完全完成后,如果有兴趣,就可以DIY了
------------------------------------------------------------------------------------------
2009-7-11:
发布固件hex,使用Codesourcery G++ Lite编译
周末准备一下Eclipse的环境的安装配置说明
------------------------------------------------------------------------------------------
2009-7-14:
配置完成一个MinGW的编译环境,压缩后20多M,慢慢上传到偶的网站(如果需要使用TEX的话,还需要安装MiKTeX 2.7)。
加压到C盘更目录后,可以直接运行msys.bat启动MSYS。
启动后进入HOME目录,下面有一个openocd目录和一个vsprog目录,并且包含update自动更新脚本。
运行./update就可以自动更新到最新的版本。
另外,Eclipse和libusb-Win32最近都有更新,libusb已经测试可以正常使用。
将根据最新的Eclipse,制作配置说明。
------------------------------------------------------------------------------------------
2009-7-15:
OpenOCD 0.2.0发布,Windows程序下载:
------------------------------------------------------------------------------------------
内部消息:
At the moment the first alpha version is planned for W05/2010 when I have to provide you (as ODeV beta-tester) the test specification document alongside with the software to test. For sure I hope to give you a development version before W05/2010.
第一个Alpha版本要到2010年第5周发布。。。。。。
看来偶推广的太太太太太太太太早了。。。。。。
今天收到ST意大利的ARM部门送给偶的STM3210E-EVAL/A评估板,作为新的免费开源开发环境的beta-tester。
等空些的时候,会介绍一下这个环境的配置和使用方法,包括STM32的调试编程器的使用方法。
现占位到10楼(全面占领第一版面)。。。。。。
据说会超时。。。。。。看看到时间能准备好多少资料了。。。
诶,半夜三更还要准备资料。。。
最近自己的公司正忙于另一个市场的几个项目,所以这个上面,没办法投入太多精力了。
诶,要拼命赚钱找老婆啊。。。
为了排除做广告的嫌疑,目前我介绍的Versaloon,在全球都没有地方可以购买,而且以后基本不考虑在国内销售(可只能做一批在国内测试,数量估计在10-30套,基本以成本价提供)。
虽然ST的那个工程师一直希望我尽快能够在欧洲和美国销售Versaloon,但是目前项目太多,没有时间找工厂生产。
只是自己焊接了几个自己用而已。
------------------------------------------------------------------------------------------
2009-7-10:
硬件验证OK,原理图更新,修改了一些器件的参数,不影响PCB,准备hex
完全完成后,如果有兴趣,就可以DIY了
------------------------------------------------------------------------------------------
2009-7-11:
发布固件hex,使用Codesourcery G++ Lite编译
周末准备一下Eclipse的环境的安装配置说明
------------------------------------------------------------------------------------------
2009-7-14:
配置完成一个MinGW的编译环境,压缩后20多M,慢慢上传到偶的网站(如果需要使用TEX的话,还需要安装MiKTeX 2.7)。
加压到C盘更目录后,可以直接运行msys.bat启动MSYS。
启动后进入HOME目录,下面有一个openocd目录和一个vsprog目录,并且包含update自动更新脚本。
运行./update就可以自动更新到最新的版本。
另外,Eclipse和libusb-Win32最近都有更新,libusb已经测试可以正常使用。
将根据最新的Eclipse,制作配置说明。
------------------------------------------------------------------------------------------
2009-7-15:
OpenOCD 0.2.0发布,Windows程序下载:
openocd.zip
(2009-07-15 03:30:56, Size: 313 KB, Downloads: 22)
------------------------------------------------------------------------------------------
内部消息:
At the moment the first alpha version is planned for W05/2010 when I have to provide you (as ODeV beta-tester) the test specification document alongside with the software to test. For sure I hope to give you a development version before W05/2010.
第一个Alpha版本要到2010年第5周发布。。。。。。
看来偶推广的太太太太太太太太早了。。。。。。

开发环境的介绍
这个环境以前介绍过,叫ODev -- Open Development Environment for embedded application。
当时是ST的一个意大利部门的工程师要做的一个开发环境,现在既然以ST出面,送给我EVAL板测试,估计已经得到了ST的支持(不排除什么时候,ST又会取消这个环境的开发)。
主页:http://developers.stf12.net/odev
部件:
Eclipse这个就不用多说了,不知道的去面壁。
Codesourcery G++ Lite是Codesourcery公司和ARM公司合作的一个ARM的GCC编译器,每半年会更新一次。
FreeRTOS是一个开源的嵌入式操作系统。
OpenOCD现在也有一些人知道了,是一个JTAG上位机,虽然很多人想增加其他接口的支持,但目前能用的还是只有JTAG。
里面的AVR支持的测试代码和SVF(用于编程CPLD/FPGA等)支持代码,就是本人亲自OOXX的,当然,还有一个本人亲自做的开发工具的支持代码。
问题:
Eclipse其实原本就可以用于STM32或者其他ARM的开发,但是和专用的ARM开发环境(IAR,MDK等等)相比,确实要逊色不少。
ODev的目的94要做一个和那些商业开发环境一样简单易用的基于淫荡的Eclipse(什么东西都能XX,应该算淫荡了吧)的ARM开发环境。
Eclipse plug-in:
Eclipse的淫荡来自于丰富的plug-in和其可扩展性。
ODev为Eclipse扩展了一些plug-in,Managed Build System Extension用于根据选择的芯片等各种选项,自动处理Makefile,并集成FreeRTOS的支持;Debug and Launch Extension用于扩展特定芯片的调试功能;MCU Registry用于描述一个MCU的所有的信息。
这样,开发就基本上和IAR或者MDK一样,不用针对芯片写Makefile,不用针对硬件平台写OpenOCD的配置文件了。
开发环境的安装和配置。
准备工具(所有工具均为免费工具,没有版权问题):
1. 编译器tool chain:Codesourcery G++ Lite
http://www.codesourcery.com/sgpp/lite/arm
这个工具是Codesourcery公司和ARM公司合作做出来的,基于GCC,每半年会更新一次。
2. 仿真调试以及编程工具:OpenOCD
0.2.0版本正在测试,估计快要出来了。当然也可以自己编译。
可以使用FT2232的JTAG工具(OpenJTAG),JLink,等等,当然,偶的Versaloon也可以直接支持。
3. Eclipse环境,使用最新的Ganymede版本。
4. 各种plug-in,据ST的开发人员,目前正在卡发plug-in:
First of all I have to develop the plug-in and then I will come back to you for testing.
当然,在这些plug-in开发出来之前,已经可以使用Eclipse做编译,调试开发了。
Eclipse的安装和配置比较简单,选择并更新好所有要的plug-in后,在复制几个ODev提供的plug-in即可。
这个要等到偶有时间,再整理一下了。
占楼3:
demo程序(使用FreeRTOS操作系统)
可以从ODev的主页里找到一些。
调试编程器的介绍
我和ST基本没有什么关系,他们提供给我测试用的评估板只是因为,我为ODev搞定了调试环境并提供了调试编程工具。
当然,我更加建议你使用J-Link工具,在国内,这个会比较便宜。
ODev中默认使用的编程调试工具只是Versaloon的一个ST定制版本,使用ST的VCOM demo的设备描述符。
如果使用VCOM的CDC驱动的话,就可以作为一路USB转串口使用,可用于编程STM32_ISP,测试过的最大稳定下载速度是921600。
如果使用Versaloon驱动的话,就可以作为JTAG调试编程工具(vsllink)使用,最大可以支持到18MHz的JTAG速度。
(在Linux下,系统会默认使用CDC驱动,如果要作为vsllink使用的话,需要blacklist cdc_acm,对udev有效)
另外,STM8的SWIM接口也基本都考虑过了,只是不知道什么时候有时间去实现这个功能。
上位机可以使用OpenOCD作为JTAG调试上位机,也可以使用vsprog -J(带-J是因为不具备USB2XXX接口,只能使用vsllink接口)来支持AVR、C8051F和以后可能增加的标准JTAG接口的单片机。
调试编程器的安装和设置(基于OpenOCD)
Windows平台下,直接下载编译好的openocd.exe即可使用,需要安装最新版本的libusb-Win32。
OpenOCD最近要发布0.2.0版本了,届时会有人pack成一个Windows安装程序。
如果要使用其他的JTAG工具(比如JLink,FT2232 based等)的话,可以使用这个版本。当然,自己从SVN中编译也是没有问题的,只是SVN TOP不一定是稳定版本。
OpenOCD的运行是需要一些配置文件的,我这里会提供STM32的配置文件,目前可能还需要手动修改一些东西。等到ODev完成后,基本就不需要手动编辑配置文件了。
STM32配置文件:应该在ODev中内置了。
OpenOCD的运行很简单,通过多个-f载入多个配置文件,下面有例子。
一般需要3个,一个是用于配置编程调试器(vsllink.cfg),一个用于配置目标芯片(stm32.cfg),最后一个用于配置脚本,告诉openocd,偶们要干虾米(stm32_program_eclipse.cfg,程序下载,还有stm32_gdb.cfg用于调试)。
偶自己用MinGW编译的Windows下原生的openocd:
(2009-07-10 23:22:11, Size: 313 KB, Downloads: 5)
里面只有Versaloon的支持,需要先安装libusb-Win32的最新版本。
OpenOCD命令行界面(基于Versaloon编程调试器):
E:\Versaloon\Software>openocd -f interface\vsllink.cfg -f target\stm32.cfg -f script\stm32_program_eclipse.cfg
Open On-Chip Debugger 0.2.0-in-development (2009-07-10-23:11) svn:2506
$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
Info : Versaloon(0x23)by Simon(compiled on Jul 10 2009)
Info : buffer size for USB is 12288 bytes
Info : VSLLink_20080905 by Simon(compiled on Jul 10 2009)
Info : vsllink run in NORMAL mode
Info : VSLLink JTAG Interface ready
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
565 kHz
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: 0x080064f8
verify Capture-IR is disabled
background polling: on
TAP: stm32.cpu (enabled)
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x080064f8
Info : device id = 0x20016410
Info : flash size = 32kbytes
stm32x mass erase complete
Warn : not enough working area available(requested 16384, free 16336)
wrote 27244 byte from file C:/Projects/FreeRTOS/Demo/CORTEX_STM32Fxxx_Eclipse/RTOSDemo/RTOSDemo.bin in 2.375000s (11.202303 kb/s)
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
这个基本配置没有问题了。
调试编程器的制作资料(只可DIY,不可用于商业目的)
原理图(2009-07-10):
(2009-07-10 23:04:34, Size: 82.3 KB, Downloads: 13)
这个原理图对应的PCB应该我下周可以收到,到时候验证没有问题的话,应该就可以DIY了。到时要帮忙把这里修改一下,如果不可以更新的话。
PCB暂时不提供,因为是使用KiCAD画的,即使提供,也没有多少人能够看的。
说道这里,顺便提一下,看到有不少人觉得KiCAD不错,想用一下。
这个是需要觉悟的,能力足够的话,会觉得KiCAD很顺手,否则,你只会觉得KiCAD不好用。
而真正能使用KiCAD布板的人,可以说是珍惜动物了。
KiCAD的速度很快,做什么都是一瞬间。
但是,KiCAD的库很不全,我自己DIY了很多器件了,包括用wings3d做3D库。
详见:http://blog.ednchina.com/SimonQian/163354/message.aspx#。
这里只上传一个成品图和3D图吧(和最新的有略微差别)。
Versaloon-Pro_HW.jpg
hex固件:
(2009-07-11 02:56:11, Size: 17.6 KB, Downloads: 6)
hex下载方法,短接T_EN到GND,短接BOOT0到VCC(都有对应的焊盘,标记为ISP),即可通过串口下载固件了。
FAQ
淫荡地占楼
占楼9:
广告位招租
超时???
不会吧。。。
这么多东西,不是1天2天可以准备好的。。。
到时候通融一下咯。。。
诶,实在不行,就删了这个贴子吧
硬件已经拿到,基本OK,只是自己原来购买的SN74LVCH16T245有问题,一管里只有第一个好用,后面4个,2个电源和地直接短路,另外2个功能不正常,换上原来使用的SN74ALVC164245就好了。
帖子已经不能修改,偶还是在偶的blog里更新吧。
这样你就可以任意修改了
可以更新了?
偶准备一下,到时会发布提供给ST工程师的那个功能的hex文件
实现的功能是一个USB<==>JTAG功能(上位机建议使用OpenOCD,可以支持各种ARM,并且可以支持FPGA/CPLD的JTAG编程,还可以支持AVR、C8051F的JTAG编程,更多支持以后如果有时间的话,会慢慢增加),并且如果使用CDC驱动的话,可以作为USB<==>USART使用(测试过的最高稳定速度是921600,可以用于STM32_ISP下载)。
刚刚试了一下,还是8能编辑。。。。。。
现在是本版版主咯,应该可以啦