1、Stellaris®LM3S8962 Ethernet+CAN 评估套件 | ||
Stellaris®LM3S8962 Ethernet+CAN评估板是一个基于Stellaris LM3S8962 ARM®Cortex -M3内核微控制器的通用评估平台,支持于针对TI M3系列所有产品的软硬件及开发评估 。 现在,只需完整填写调查问卷,即有机会免费获得Stellaris®LM3S8962 Ethernet+CAN评估板!
|
相关资料:
Stellaris® LM3S8962 Evaluation Board USER’S MANUAL
Stellaris® LM3S8962评估板用户手册(部分翻译)
注意:
EK-LM3S8962采用FTDI FT2232实现USB-to-serial的转换,Luminary Micro将FT2232配置为:
channel A:实现一个JTAG/SWD端口(同步串行)
channel B:实现一个虚拟串行通信端口(VCP)
JTAG/SWD和VCP可以通过同一条USB电缆实现主机和目标设备之间的通讯。
将EK-LM3S8962连接到电脑可以在设备管理器中看到:
2、OpenOCD
OpenOCD 由 Dominic Rath 创作,是他在德国奥格斯堡大学时毕业论文的一部分。从那以后,
该项目已经发展成为一个活跃的开源项目,得到了来自于世界各地不同的软件和硬件开发者社区的支持。
The Open On-Chip Debugger (OpenOCD) 旨在为嵌入式目标设备提供调试、在线系统编程 (ISP)
和边界扫描测试。
2.1、OpenOCD主页
http://openocd.berlios.de/web/
2.2、一个已经编译好的Windows版本OpenOCD安装软件
由于使用ftd2xx.dll库与GPLv2许可证不兼容,这个版本使用libftdi + libusb-win32库编译。
OpenOCD 0.4.0 for Windows. An msi installer of complete package and it's md5 checksum.
Due to alleged GPLv2 license incompatibility of using ftd2xx.dll libraries, this version was
compiled to use libftdi + libusb-win32 libraries. Details: #1, #2.
http://www.freddiechopin.info/index.php/en/download/category/4-openocd
本地下载:openocd-0.4.0.zip
2.3、libftdi
libFTDI is an open source library to talk to FTDI chips: FT232BM, FT245BM, FT2232C, FT2232D and FT245R,
including the popular bitbang mode. The library is linked with your program in userspace, no kernel driver required.
libFTDI works perfectly with Linux, Windows, MacOS X and BSD variants thanks to libusb.
libFTDI是一个提供FTDI芯片(FT232BM, FT245BM, FT2232C, FT2232D和FT245R)支持的开源库。
由于使用了libusb库,libFTDI可以在Linux, Windows, MacOS X和BSD平台下完美工作。
libftdi主页:
http://www.intra2net.com/en/developer/libftdi/
2.4、libusb
libusb 是一个用C语言开发的跨平台的USB设备访问接口库。libusb 设计了一系列的外部API 为应用程序所调用,通过这些API
应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现
的功能差不多,只是libusb更加接近USB 规范。使得libusb的使用也比开发内核驱动相对容易的多。
libusb主页
http://www.libusb.org/
windows版本
http://www.libusb.org/wiki/windows_backend
注意:使用zadig.exe安装libusb驱动时,OpenOCD不能正常工作,应从以下地址下载
http://sourceforge.net/apps/trac/libusb-win32/wiki
http://sourceforge.net/projects/libusb-win32/
本地下载:libusb-win32-bin-1.2.2.0.zip
3、FT2232驱动安装
3.1、为FT2232 channel A安装libusb驱动,用于OpenOCD
解压libusb-win32-bin-1.2.2.0.zip到C:\
运行C:\libusb-win32-bin-1.2.2.0\bin\inf-wizard.exe
此处Stellaris Evaluation Board (Interface 0)即为FT2232 channel A,
Stellaris Evaluation Board (Interface 1)即为FT2232 channel B。
为Stellaris Evaluation Board (Interface 0)安装libusb驱动:
3.2、为FT2232 channel B安装VCP驱动,用于虚拟串行通讯端口
驱动来自EK-LM3S8962配套光盘,本地下载:Luminary_FTDI_Driver-2_04_16.zip
下载并解压Luminary_FTDI_Driver-2_04_16.zip到C:\
安装完成后:
到此为止驱动安装完成。
4、EK-LM3S8962的OpenOCD配置文件
4.1、参考C:\Program Files\OpenOCD\0.4.0\interface\luminary-lm3s811.cfg
新建C:\Program Files\OpenOCD\0.4.0\interface\luminary-lm3s8962.cfg
内容如下:
1 #
2 # Luminary Micro Stellaris LM3S811 Evaluation Kit
3 #
4 # http://www.luminarymicro.com/products/stellaris_811_evaluation_kits.html
5 #
6 # NOTE: this is only for boards *before* Rev C, which adds support
7 # for SWO tracing with ADBUS_6 DBG_ENn and BDBUS_4 SWO_EN signals.
8 # The "evb_lm3s811" layout doesn't set up those signals.
9 #
10 # Rev C boards work more like the other Stellaris eval boards. They
11 # need to use the "luminary_icdi" layout to work correctly.
12 #
13
14 interface ft2232
15 ft2232_device_desc "Stellaris Evaluation Board"
16 ft2232_layout evb_lm3s811
17 ft2232_vid_pid 0x0403 0xbcd8
注意:ft2232_vid_pid 0x0403 0xbcd8
此处0x0403为libusb驱动安装时Vendor ID(VID)的值,
0xbcd8为libusb驱动安装时Product ID(PID)的值。
4.2、参考C:\Program Files\OpenOCD\0.4.0\target\lm3s811.cfg
新建C:\Program Files\OpenOCD\0.4.0\target\lm3s8962.cfg
内容如下:
1 # Script for TI/Luminary Stellaris LM3S8962
2
3 if { [info exists CHIPNAME] } {
4 set _CHIPNAME $CHIPNAME
5 } else {
6 set _CHIPNAME lm3s8962
7 }
8
9 if { [info exists CPUTAPID ] } {
10 set _CPUTAPID $CPUTAPID
11 } else {
12 set _CPUTAPID 0x3ba00477
13 }
14
15 #jtag scan chain
16 jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0xf -expected-id $_CPUTAPID
17
18 # the luminary variant causes a software reset rather than asserting SRST
19 # this stops the debug registers from being cleared
20 # this will be fixed in later revisions of silicon
21 set _TARGETNAME $_CHIPNAME.cpu
22 target create $_TARGETNAME cortex_m3 -chain-position $_CHIPNAME.cpu -variant lm3s
23
24 # 8k working area at base of ram, not backed up
25 $_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 0x2000
26
27 #flash configuration
28 set _FLASHNAME $_CHIPNAME.flash
29 flash bank $_FLASHNAME stellaris 0 0 0 0 $_TARGETNAME
TAP声明命令
jtag newtap chipname tapname configparams...
chipname是为芯片提供的一个符号名,通常目标配置文件使用$_CHIPNAME。
tapname这里设置为cpu是指The main CPU of the chip, alternatively arm and dsp on chips with both
ARM and DSP CPUs, arm1 and arm2 on chips two ARMs, and so forth;
每个TAP至少必须要以下配置:
-irlen NUMBER
指令寄存器位长度,例如4或者5。
参考lm3s8962数据手册可知Four-bit Instruction Register (IR) chain for storing JTAG instructions
4.3、参考C:\Program Files\OpenOCD\0.4.0\board\ek-lm3s811.cfg
新建C:\Program Files\OpenOCD\0.4.0\board\ek-lm3s8962.cfg
内容如下: