『壹』 如何編譯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);
}