1.安装交叉编译工具链
工具链来源:使用百问网下载的制作好的工具链;
上传到Ubuntu /home/liu/自定义目录下,并解压。
设置所有用户环境变量:
vim /etc/profile
首行添加如下
export PATH=/home/liu/ARM9/Tools/gcc-3.4.5-glibc-2.3.6/bin:$PATH
保存并退出,更新生效:
source /etc/profile
2.安装相关库
用来解决
arm-bcm2708hardfp-linux-gnueabi- menuconfig 找不到命令的错误
命令行输入:
sudo apt-get install lib32z1 lib32ncurses5
然后解决 curses.h:No such fileor directory 问题
安装Ncurses
命令行输入:
sudo apt-get install libncurses5-dev
3.安装裸机下载工具 oflash
复制到 bin目录
cp -r oflash /usr/bin
获取执行权限
sudo chmod +x oflash
4.安装libftdi和ftdi-eeprom
安装目的:为编译 OpenOCD 安装依赖库和OpenJTAG芯片(FT2232)驱动
下载地址
https://www.intra2net.com/en/developer/libftdi/download.php
下载 confuse-2.5.tar.gz 和 libftdi1-1.4.tar.bz2 不同版本不同后缀
建立工作目录把安装包移动到里面,分别解压缩,
安装libftdi 进入解压后的 libftdi目录 :
依次执行:
mkdir build
cd build
然后执行:
cmake -DCMAKE_INSTALL_PREFIX="/usr" ../; make; sudo make install
如果提示没有安装 cmake 则执行:
sudo apt install cmake
安装cmake 后再执行:
cmake -DCMAKE_INSTALL_PREFIX="/usr" ../
make
sudo make install
安装完成。
安装 ftdi_eeprom 解压后进入 confuse 目录:
依次执行:
./configure
make
make install
不报错则安装完成
4.编译 OpenOCD
网站源码安装
下载源码:
复制到 ubuntu 自定义目录
提取压缩包进入文件目录
./configure --enable-maintainer-mode --enable-ftdi_libftdi
make
sudo make install
进入 /usr/local/share/openocd/scripts/board 复制 mini2440.cfg 到 /usr/local/share/openocd/scripts
打开该文件
开头加入
#openocd 0.10.0中默认使用新的ftdi接口,如果希望使用旧的ft2232接口,需要在编译openocd时指定。
interface ftdi
#通过描述来指定设备,应当和dmesg中的Product一致
#ftdi_device_desc "USB<=>JTAG&RS232"
#通过PID VID指定调试器,比描述更准确些
ftdi_vid_pid 0x1457 0x5118
#如果有多个同样的调试器,还可以指定要使用的调试器序列号
#ftdi_serial
#引脚定义,相当于旧版中的 ft2232_layout jtagkey
ftdi_layout_init 0x0c08 0x0f1b
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal nSRST -data 0x0200 -noe 0x0800
157行改为
#nand device s3c2440 0
nand device 0 s3c2440 s3c2440.cpu
或者对比修改 openocd.cfg 文件
git源码安装
指定安装目录然后执行:
git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd
下载完毕后依次执行:
./bootstrap
./configure --enable-ftdi
make
make install
安装完成后在当前目录执行显示当前版本
openocd -v
Open On-Chip Debugger 0.10.0+dev-00290-g5a98ff7 (2018-01-31-20:39)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
进入 /usr/local/share/openocd/scripts/board 复制 mini2440.cfg 到 /usr/local/share/openocd/scripts
打开该文件
开头加入
#openocd 0.10.0中默认使用新的ftdi接口,如果希望使用旧的ft2232接口,需要在编译openocd时指定。
interface ftdi
#通过描述来指定设备,应当和dmesg中的Product一致
#ftdi_device_desc "USB<=>JTAG&RS232"
#通过PID VID指定调试器,比描述更准确些
ftdi_vid_pid 0x1457 0x5118
#如果有多个同样的调试器,还可以指定要使用的调试器序列号
#ftdi_serial
#引脚定义,相当于旧版中的 ft2232_layout jtagkey
ftdi_layout_init 0x0c08 0x0f1b
ftdi_layout_signal nTRST -data 0x0100 -noe 0x0400
ftdi_layout_signal nSRST -data 0x0200 -noe 0x0800
157行改为
#nand device s3c2440 0
nand device 0 s3c2440 s3c2440.cpu
或者对比修改 openocd.cfg 文件