1、软件eclipse , GDB Server , Jlink软件硬件 Jlink硬件准备工作1:从SD/NOR Flash启动,格式化nand flash准备工作2:硬件连接1. Jlink连接2. 串口连接3.nand启动
2、解压:tar xvzf arm-linu垓矗梅吒x-gdb-7.5.tar.gz进入目录:cd arm-linux-gdb-7.5编译安装:./build幻腾寂埒-all上面执行好后,gdb工具就安装好了,安装在/opt/arm-linux-gdb为了方便使用,需要添加环境变量:vim /root/.bashrc在交叉编译链的前面添加gdb的环境变量:export PATH=$PATH:/opt/arm-linux-gdb/bin/export PATH=$PATH:/usr/local/arm/4.3.2/bin/之后保存,退出。这就可以直接运行arm-linux-gdb,如果不行的话则可能是添加错误,或者需要注销。
3、解压:tar xvzf JLink_Li艘绒庳焰nux_V434a.tgz进入目录:cd JLink_Linux_V434a复制库:cp -d libjlinkarm.so* /usr/lib -f复制:cp 45-jlink.rules /etc/udev/rules.d/上面四个命令执行完之后,检测是否能够检测到Jlink的连接:在虚拟机的下面,点击显示为Jlink相关的usb图标,连接。执行命令:./JLinkGDBServer如果也切顺利的话,会显示连接上的ARM核心为ARM11:
4、安装eclipse:解压:tar zxvf eclipse-cpp-helios-SR2-linux-gtk.tar.gz进入目录:cd eclipse-cpp-helios-SR2-linux-gtk运行程序:./eclipse然后选择自己的工程目录:
5、首先得安装一个插件点菜单栏的help -> install new software在Work with输入插件位置:http://opensource.zylin.com/zylincdt,点击add等一段时间,找到的插件,点击选中:
6、点击next;
7、之后按照提示来。然后重启:
8、使用eclipse进行开发新建工程,选择新建一个已存在源文件的工程:
9、注意:这里的源文件目录必须是在工作目录下的另外一个目录,比如工作目录是"/home/S3-ARM/Part1/lesson1",那么【Existing Code Locat足毂忍珩ion】的目录为不能和工作目录相同,必须是别的目录,或者是工作目录下的一个子目录,比如"/home/S3-ARM/Part1/lesson1/led/"或者是"/opt/led/"
10、点击finish。编译项目:Project ---Build AlL注意:取消掉【Project】里面的自动编译【Build Automatically】
11、配置调试器:甲虫图---Debug Configurations
12、双击Zylin Embedded debu,出现下面界面:
13、选中选项卡main在C/C++ Application中选要调试的项目,注意是选中 "xxx.elf" 文件:
14、选中选项卡Debugger去掉Stop on startup at:选项将GDB debugger: 修改成" arm-linux-gdb "
15、选中选项卡Comma艘绒庳焰nds在'Initialize' commands中填入如下初始化指令:下面是初始化S3C鲂番黟谊6410处理器的初始化脚本1 # tiny6410_config 2 # connect to the J-Link gdb server 3 target remote localhost:2331 4 # Set JTAG speed to 30 kHz 5 monitor endian little 6 monitor speed 30 7 # Reset the target 8 monitor reset 9 monitor sleep 1010 #11 # CPU core initialization (to be done by user)12 #13 # Set the processor mode14 monitor reg cpsr = 0xd315 #config MMU16 #flush v3/v4 cache17 monitor cp15 7, 7, 0, 0 = 0x018 #/* flush v4 TLB */19 monitor cp15 8, 7, 0, 0 = 0x020 #disable MMU stuff and caches21 monitor cp15 1, 0, 0, 0 =0x100222 #Peri port setup23 monitor cp15 15, 2, 0, 4 = 0x7000001324 #disable watchdog25 monitor MemU32 0x7e004000 = 0x0000000026 monitor sleep 1027 #disable interrupt28 monitor MemU32 0x71200014 = 0x0000000029 monitor MemU32 0x71300014 = 0x0000000030 monitor MemU32 0x7120000C = 0x0000000031 monitor MemU32 0x7130000C = 0x0000000032 monitor MemU32 0x71200F00 = 0x0000000033 monitor MemU32 0x71300F00 = 0x0000000034 #set clock35 monitor MemU32 0x7e00f900 = 0x0000801e36 monitor MemU32 0x7e00f000 = 0x0000ffff37 monitor MemU32 0x7e00f004 = 0x0000ffff38 monitor MemU32 0x7e00f020 = 0x0104331039 monitor MemU32 0x7e00f00C = 0xc215060140 monitor MemU32 0x7e00f010 = 0xc215060141 monitor MemU32 0x7e00f024 = 0x0000000342 monitor MemU32 0x7e00f014 = 0x0020010243 monitor MemU32 0x7e00f018 = 0x0000000044 monitor MemU32 0x7e00f01C = 0x1400000745 #config sdram46 monitor MemU32 0x7e00f120 = 0x0000000847 monitor MemU32 0x7e001004 = 0x0000000448 monitor MemU32 0x7e001010 = 0x0000040f49 monitor MemU32 0x7e001014 = 0x0000000650 monitor MemU32 0x7e001018 = 0x0000000151 monitor MemU32 0x7e00101c = 0x0000000252 monitor MemU32 0x7e001020 = 0x0000000653 monitor MemU32 0x7e001024 = 0x0000000a54 monitor MemU32 0x7e001028 = 0x0000000c55 monitor MemU32 0x7e00102c = 0x0000018f56 monitor MemU32 0x7e001030 = 0x0000000c57 monitor MemU32 0x7e001034 = 0x0000000258 monitor MemU32 0x7e001038 = 0x0000000259 monitor MemU32 0x7e00103c = 0x0000000260 monitor MemU32 0x7e001040 = 0x0000000261 monitor MemU32 0x7e001044 = 0x0000001362 monitor MemU32 0x7e001048 = 0x0000001363 monitor MemU32 0x7e00100C = 0x0001001264 monitor MemU32 0x7e00104C = 0x00000b4565 monitor MemU32 0x7e001200 = 0x000150f866 monitor MemU32 0x7e001304 = 0x0000000067 monitor MemU32 0x7e001008 = 0x000c000068 monitor MemU32 0x7e001008 = 0x0000000069 monitor MemU32 0x7e001008 = 0x0004000070 monitor MemU32 0x7e001008 = 0x0004000071 monitor MemU32 0x7e001008 = 0x000a000072 monitor MemU32 0x7e001008 = 0x0008003273 monitor MemU32 0x7e001004 = 0x0000000074 # Setup GDB for faster downloads75 #set remote memory-write-packet-size 102476 set remote memory-write-packet-size 409677 set remote memory-write-packet-size fixed78 monitor speed 1200079 break _start80 load
16、初始化2440的脚本内容如下:1 # connect to the J-Link gdb server 2 target remote localhost:2331 3 # Set JTAG speed to 30 kHz 4 monitor endian little 5 monitor speed 30 6 # Reset the target 7 monitor reset 8 monitor sleep 10 9 #10 # CPU core initialization (to be done by user)11 #12 # Set the processor mode13 monitor reg cpsr = 0xd314 #config MMU 配置MMU15 #flush v3/v4 cache16 monitor cp15 7, 7, 0, 0 = 0x017 #/* flush v4 TLB 协处理器*/18 monitor cp15 8, 7, 0, 0 = 0x019 #disable MMU stuff and caches20 monitor cp15 1, 0, 0, 0 =0x100221 #Peri port setup22 monitor cp15 15, 2, 0, 4 = 0x7000001323 #disable watchdog kangear 关闭看门狗24 monitor MemU32 0x53000000 = 0x0000000025 monitor sleep 1026 #disable interrupt kangear 关闭中断27 monitor MemU32 0x4A000008 = 0xffffffff28 monitor MemU32 0x4A00001C = 0x7fff29 #set clock30 #initialize system clocks --- locktime register31 monitor MemU32 0x4C000000 = 0xFF00000032 #initialize system clocks --- clock-divn register33 monitor MemU32 0x4C000014 = 0x5 #CLKDVIN_400_14834 #initialize system clocks --- mpll register35 monitor MemU32 0x4C000004 = 0x7f021 #default clock36 #config sdram37 monitor MemU32 0x53000000 0x00000000 38 monitor MemU32 0x4A000008 0xFFFFFFFF 39 monitor MemU32 0x4A00001C 0x000007FF 40 monitor MemU32 0x53000000 0x00000000 41 monitor MemU32 0x56000050 0x000055AA 42 monitor MemU32 0x4C000014 0x00000007 43 monitor MemU32 0x4C000000 0x00FFFFFF 44 monitor MemU32 0x4C000004 0x00061012 45 monitor MemU32 0x4C000008 0x00040042 46 monitor MemU32 0x48000000 0x22111120 47 monitor MemU32 0x48000004 0x00002F50 48 monitor MemU32 0x48000008 0x00000700 49 monitor MemU32 0x4800000C 0x00000700 50 monitor MemU32 0x48000010 0x00000700 51 monitor MemU32 0x48000014 0x00000700 52 monitor MemU32 0x48000018 0x0007FFFC 53 monitor MemU32 0x4800001C 0x00018005 54 monitor MemU32 0x48000020 0x00018005 55 monitor MemU32 0x48000024 0x008E0459 56 monitor MemU32 0x48000028 0x00000032 57 monitor MemU32 0x4800002C 0x00000030 58 monitor MemU32 0x48000030 0x0000003059 # Setup GDB for faster downloads60 #set remote memory-write-packet-size 102461 monitor speed auto62 break _start63 load初始化210的脚本内容如下:1 # connect to the J-Link gdb server 2 target remote localhost:2331 3 # Set JTAG speed to 30 kHz 4 monitor endian little 5 monitor speed 30 6 # Reset the target 7 monitor reset 8 monitor sleep 10 9 # Setup GDB for faster downloads10 #set remote memory-write-packet-size 102411 monitor speed auto12 break main13 load经过上面的设置之后,就可以开始调试了
17、开始调试用eclipse调试 ,保证JLinkGDBServer同时在运行
18、保证JLinkGDBServer运行起来了,点击小甲壳虫 -- 项目名开始进调试界面
19、选择 yes
20、调试界面如下图
21、点击【F5】是"Step Into"【F6】是"Step Over"等等,这里可以查看寄存器的值,没存的值等等。一步一步下去可以看到开发板上的led点亮了。