您的位置:首页 > 编程语言 > Java开发

eclipse调试arm裸机程序

2016-08-09 14:56 471 查看

一、集成开发环境

软件部分:eclipse , GDB Server , Jlink软件硬件部分:Jlink硬件准备工作1:从SD/NOR Flash启动,格式化nand flash准备工作2:硬件连接1. Jlink连接2. 串口连接3. nand启动

二、安装GDB Server

解压:tar xvzf arm-linux-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,如果不行的话则可能是添加错误,或者需要注销。问:为什么一定要添加到交叉编译链之前呢?答:因为在交叉编译链中也包含了arm-linux-gdb,linux系统会根据path环境变量的先后顺序来寻找,我们需要找的是我们上面安装的,而不是这里的(因为版本可能不对),所以在添加环境变量的时候,一定要添加在交叉编译链的前面。

三、安装Jlink软件

解压:tar xvzf JLink_Linux_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:

四、安装Eclipse软件

红帽企业版6.3中默认安装了eclipse执行:which eclipse 可以查看在哪个目录下这个版本不适合,我们不能用,所以首先我们得卸载这个,其实我们把查询到的eclipse修改一个名字就好了,在查询到的目录执行:mv eclipse eclipse-back即可。安装自己的eclipse:解压:tar zxvf eclipse-cpp-helios-SR2-linux-gtk.tar.gz进入目录:cd eclipse-cpp-helios-SR2-linux-gtk运行程序:./eclipse这就启动eclipse了。然后选择自己的工程目录:配置eclipse:首先得安装一个插件,这个插件是要通过网络安装的,所以linux必须能够上网。安装插件:点击菜单栏的help -> install new software在Work with输入插件位置:http://opensource.zylin.com/zylincdt ,点击add经过一段时间,在下面的方框中显示出找到的插件,点击选中:点击next;之后按照提示来。然后重启:使用eclipse进行开发新建工程,选择新建一个已存在源文件的工程:注意:这里的源文件目录必须是在工作目录下的另外一个目录,比如工作目录是"/home/S3-ARM/Part1/lesson1",那么【Existing Code Location】的目录为不能和工作目录相同,必须是别的目录,或者是工作目录下的一个子目录,比如"/home/S3-ARM/Part1/lesson1/led/"或者是"/opt/led/"点击finish。编译项目:【Project】 -> 【Build All】注意:取消掉【Project】里面的自动编译【Build Automatically】配置调试器:【甲虫图标】 -> 【Debug Configurations】双击【Zylin Embedded debug】,出现如下界面:选中选项卡【main】在【C/C++ Application】中选择要调试的项目,注意是选中 "xxx.elf" 文件:选中选项卡【Debugger】去掉【Stop on startup at:】选项将【GDB debugger:】修改成" arm-linux-gdb "选中选项卡【Commands】在【'Initialize' commands】中填入如下初始化指令:下面是初始化S3C6410处理器的初始化脚本
1# tiny6410_config2# connect to the J-Link gdb server3target remote localhost:23314# Set JTAG speed to30kHz5monitor endian little6monitor speed307# Reset the target8monitor reset9monitor sleep1010#11# CPU core initialization (to be done by user)12#13# Set the processor mode14monitor reg cpsr=0xd315#config MMU16#flush v3/v4 cache17monitor cp157,7,0,0=0x018#/*flush v4 TLB*/19monitor cp158,7,0,0=0x020#disable MMU stuff and caches21monitor cp151,0,0,0=0x100222#Peri port setup23monitor cp1515,2,0,4=0x7000001324#disable watchdog25monitor MemU320x7e004000=0x0000000026monitor sleep1027#disable interrupt28monitor MemU320x71200014=0x0000000029monitor MemU320x71300014=0x0000000030monitor MemU320x7120000C=0x0000000031monitor MemU320x7130000C=0x0000000032monitor MemU320x71200F00=0x0000000033monitor MemU320x71300F00=0x0000000034#setclock35monitor MemU320x7e00f900=0x0000801e36monitor MemU320x7e00f000=0x0000ffff37monitor MemU320x7e00f004=0x0000ffff38monitor MemU320x7e00f020=0x0104331039monitor MemU320x7e00f00C=0xc215060140monitor MemU320x7e00f010=0xc215060141monitor MemU320x7e00f024=0x0000000342monitor MemU320x7e00f014=0x0020010243monitor MemU320x7e00f018=0x0000000044monitor MemU320x7e00f01C=0x1400000745#config sdram46monitor MemU320x7e00f120=0x0000000847monitor MemU320x7e001004=0x0000000448monitor MemU320x7e001010=0x0000040f49monitor MemU320x7e001014=0x0000000650monitor MemU320x7e001018=0x0000000151monitor MemU320x7e00101c=0x0000000252monitor MemU320x7e001020=0x0000000653monitor MemU320x7e001024=0x0000000a54monitor MemU320x7e001028=0x0000000c55monitor MemU320x7e00102c=0x0000018f56monitor MemU320x7e001030=0x0000000c57monitor MemU320x7e001034=0x0000000258monitor MemU320x7e001038=0x0000000259monitor MemU320x7e00103c=0x0000000260monitor MemU320x7e001040=0x0000000261monitor MemU320x7e001044=0x0000001362monitor MemU320x7e001048=0x0000001363monitor MemU320x7e00100C=0x0001001264monitor MemU320x7e00104C=0x00000b4565monitor MemU320x7e001200=0x000150f866monitor MemU320x7e001304=0x0000000067monitor MemU320x7e001008=0x000c000068monitor MemU320x7e001008=0x0000000069monitor MemU320x7e001008=0x0004000070monitor MemU320x7e001008=0x0004000071monitor MemU320x7e001008=0x000a000072monitor MemU320x7e001008=0x0008003273monitor MemU320x7e001004=0x0000000074# Setup GDBforfaster downloads75#setremote memory-write-packet-size102476setremote memory-write-packet-size409677setremote memory-write-packet-sizefixed78monitor speed1200079break_start80load[/code]初始化2440的脚本内容如下:
1# connect to the J-Link gdb server2target remote localhost:23313# Set JTAG speed to30kHz4monitor endian little5monitor speed306# Reset the target7monitor reset8monitor sleep109#10# CPU core initialization (to be done by user)11#12# Set the processor mode13monitor reg cpsr=0xd314#config MMU 配置MMU15#flush v3/v4 cache16monitor cp157,7,0,0=0x017#/*flush v4 TLB 协处理器*/18monitor cp158,7,0,0=0x019#disable MMU stuff and caches20monitor cp151,0,0,0=0x100221#Peri port setup22monitor cp1515,2,0,4=0x7000001323#disable watchdog kangear 关闭看门狗24monitor MemU320x53000000=0x0000000025monitor sleep1026#disable interrupt kangear 关闭中断27monitor MemU320x4A000008=0xffffffff28monitor MemU320x4A00001C=0x7fff29#setclock30#initialize system clocks---locktime register31monitor MemU320x4C000000=0xFF00000032#initialize system clocks---clock-divn register33monitor MemU320x4C000014=0x5#CLKDVIN_400_14834#initialize system clocks---mpll register35monitor MemU320x4C000004=0x7f021#defaultclock36#config sdram37monitor MemU320x530000000x0000000038monitor MemU320x4A0000080xFFFFFFFF39monitor MemU320x4A00001C0x000007FF40monitor MemU320x530000000x0000000041monitor MemU320x560000500x000055AA42monitor MemU320x4C0000140x0000000743monitor MemU320x4C0000000x00FFFFFF44monitor MemU320x4C0000040x0006101245monitor MemU320x4C0000080x0004004246monitor MemU320x480000000x2211112047monitor MemU320x480000040x00002F5048monitor MemU320x480000080x0000070049monitor MemU320x4800000C0x0000070050monitor MemU320x480000100x0000070051monitor MemU320x480000140x0000070052monitor MemU320x480000180x0007FFFC53monitor MemU320x4800001C0x0001800554monitor MemU320x480000200x0001800555monitor MemU320x480000240x008E045956monitor MemU320x480000280x0000003257monitor MemU320x4800002C0x0000003058monitor MemU320x480000300x0000003059# Setup GDBforfaster downloads60#setremote memory-write-packet-size102461monitor speed auto62break_start63load[/code]初始化210的脚本内容如下:
1# connect to the J-Link gdb server2target remote localhost:23313# Set JTAG speed to30kHz4monitor endian little5monitor speed306# Reset the target7monitor reset8monitor sleep109# Setup GDBforfaster downloads10#setremote memory-write-packet-size102411monitor speed auto12breakmain13load[/code]经过上面的设置之后,就可以开始调试了

五、开始调试

注意:用eclipse进行调试的时候必须保证JLinkGDBServer同时在运行否则会出现类似下面的错误:保证JLinkGDBServer运行起来了,然后点击【小甲壳虫】 -> 项目名准备进入调试界面选择【yes】调试界面如下:点击【F5】是"Step Into"【F6】是"Step Over"等等,这里可以查看寄存器的值,没存的值等等。一步一步下去可以看到开发板上的led点亮了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: