‘壹’ 如何编译Windows下的OpenOCD
【OpenOCD介绍】
OpenOCD为嵌入式目标系统提供一个调试,在线编程和JTAG边界扫描测试的工具。支持Wiggler,基于FT2232的JTAG界面等一些调试器。目标芯片支持ARM7,ARM9, ARM10, ARM11和Cortex等核心的芯片。并提供一个GDB Server接口。
【OpenOCD的编译和安装】
1. 如果是Windows平台的话,需要先安装Cygwin环境,注意一定要选择安装以下开发包:
- autoconf: Wrapper scripts for autoconf commands
- automake: Wrapper scripts for automake and aclocals
- gcc: C compiler upgrade helper
- make: The GNU version og the 'make' utility
- subversion: A version control system
(可以完全安装,占用5G多的空间,需要下载800M的文件)。
2. 下载OpenOCD的SVN源代码,打开Cygwin命令行界面,执行如下的命令:
mkdir /home/openocd
cd /home/openocd
svn checkout svn://svn.berlios.de/openocd/trunk或是
svn checkout http://svn.berlios.de/svnroot/repos/openocd/trunk trunk
下载需要一定的时间,完成后,当前目录下就多了trunk目录,里面就有源代码。
3. 如果你想要编译用于FT2232接口的openocd,需要下载FTDI的驱动
解压后会自动生成一个文件夹"CDM 2.04.06 WHQL Certified" , 从/i386或/amd64中(根据你的系统来选择)复制 ftd2xx.lib到/home/openocd/ftd2xx(自己建立)中。现在在openocd文件夹下就有两个文件夹,如下:
/home/openocd/trunk
/home/openocd/ftd2xx
4. 接着使用如下命令配置并编译:
cd trunk
./bootstrap
如果你想生成一个基于cygwin的openocd,则输入
./configure --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx
生成一个基于mingw 的openocd,则输入
./configure --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx CC="gcc -mno-cygwin"
如果想同时支持FT2232和Wiggler,则输入
./configure --enable-parport –enable-parport_giveio --enable-ft2232_ftd2xx --with-ftd2xx=/home/openocd/ftd2xx CC="gcc -mno-cygwin"
正确配置之后,就可以运行以下命令生成 OpenOCD:
make // 即可在/trunk/src中生成openocd
make install // 将openocd和配置文件安装到/usr/local/bin和/usr/local/lib中
make pdf // 在/trunk/doc中生成pdf (必须安装tex)
这样OpenOCD就编译并安装完成了,并在doc目录下生产了openocd.pdf帮助文档。
可以使用命令"openocd -v"来查看版本。
【OpenOCD的配置】
详细配置说明,请参考帮助文档
LPC2000的配置文件(openocd.cfg):
#daemon configuration
telnet_port 4444
gdb_port 3333
tcl_port 6666
# tell gdb our flash memory map
# and enable flash programming
gdb_memory_map enable
gdb_flash_program enable
#interface
interface ft2232
ft2232_device_desc "USB Serial Converter A"
#ft2232_device_desc "USB OpenOCD JTAG A"
ft2232_layout "usbjtag"
ft2232_vid_pid 0x0403 0x6010
jtag_speed 3
#jtag_khz 300
#delays on reset lines
jtag_ntrst_delay 200
# NOTE!!! LPCs need reset pulled while RTCK is low. 0 to activate
# JTAG, power-on reset is not enough, i.e. you need to perform a
# reset before being able to talk to the LPC2148, attach is not
# possible.
#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config trst_and_srst srst_pulls_trst
#LPCs need reset pulled while RTCK is low. 0 to activate JTAG, power-on reset is not enough
jtag_reset 1 1
jtag_reset 0 0
#jtag scan chain
jtag_device 4 0x1 0xf 0xe
target arm7tdmi little 0 arm7tdmi-s_r4
[new_target_name] configure -event reset-init {
# Force target into ARM state
soft_reset_halt
#do not remap 0x0000-0x0020 to anything but the flash
mwb 0xE01FC040 0x01
}
working_area 0 0x40000000 0x4000 nobackup
#flash bank lpc2000 <base> <size> 0 0 <target#> <variant>
flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v2 14765
【OpenOCD的测试】
打开Cygwin命令行界面,执行命令:
openocd -f openocd.cfg
以下是我的运行截图:
【IAR的配置】
在项目选项的Debug中的setup页里,选择GDB Server;
如果代码需要下载到flash中运行,Download页里选择Use flash loader;在plugin页里,可以去掉stack以提高速度。
在下面的GDB Server中,TCP/IP address or hostname中添localhost。
之后就可以按调试按钮开始调试了。
‘贰’ 如何在windows 编译swift
1.在windows中无法编译swift,Apple推出这个语言只是完善封闭的生态圈,既然这样,windows中无法编译swift,微软是无法编译的。所以,要在OS个平台上使用,另外如果有一天windows版的开发环境,也不一稳定。
Swift是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。
2.Swift的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa的基础上构建框架栈并将其标准化。Objective-C 本身支持块、集合语法和模块,所以框架可以轻松支持现代编程语言技术。正是得益于这些基础工作,我们现在才能发布这样一个用于未来苹果软件开发的新语言。
Objective-C 开发者对 Swift 并不会感到陌生。它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。
‘叁’ 提问+J-LINK,U-LINK和ST-LINK有什么区别
j-link,u-link和st-link有什么区别,item·区别如下:
1、其实就是诺基亚和摩托罗拉的区别,大厂商的管保,小厂商的不管,不过tp-link和d-link都不错,tp-link设置更方便一些,d-link的功能多,但是设置页面比较乱,但是也是一款不错的网络设备
2、 这几款在参数和价格方面很均衡,整体来说都非常不错;。
3、 但是买东西,关键还是要看产品的特点是否符合您的需求,建议认真衡量以后,选择适合自己的。
ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,其主要功能有:
(1)编程功能:可烧写FLASH ROM、EEPROM、AFR等。
(2)仿真功能:支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等等。
(3)仿真性能:采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快!
(4)编程性能:采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快!
‘肆’ ftdi公司的USB设备通信上位机VC编程问题
哎呀,这个我用过啊,真巧。
不过没遇到这个问题。
void CISM001Dlg::InitUSB()
{
LoadDLL();
FT_STATUS status = OpenBy();
if(status)
{
MessageBox("USB Not Found!");
m_USB="";
}
else
{
m_USB="USB <-> Serial";
ResetDevice();
SetTimeouts(3000, 3000);//extend timeout while board DLP-USB2 finishes reset
Purge(FT_PURGE_RX || FT_PURGE_TX);
SetTimeouts(300, 300);
}
UpdateData(false);
}