用eclipse调试uboot工程

本文详细介绍如何在Ubuntu 12.10环境下利用Eclipse IDE配合JLink及arm-linux-gdb调试U-Boot固件的过程。从安装必要的软件到配置调试环境,再到具体的调试步骤都有详尽说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用eclipse调试uboot工程

----------------------------------------------------------------------

2013-4-7更新:整理的PDF版本,放到这里了:http://download.youkuaiyun.com/detail/kangear/5230353

----------------------------------------------------------------------

    本文是在ubuntu12.10上调试的。首先保证jlink for linux中的JLinkGDBServer可以用!具体可以参考《 (先留着,还没有整理好) 。还要装好arm-linux-gdb安装方法参见这个《 arm-linux-gdb的安装 》。
0。安装 eclipse 插件 Zylin Embedded CDT
  打开 eclipsec 后,选择 Help->install New Software...在 Work with 位置输入 http://com.zylin.cdt.feature 依指示完成安裝

打开上文中的U-boot3工程(可以参考这里《用eclipse导入uboot工程》),保证能正常编译。

1。启动后,先Run-》Debug Configrations 如下图配置:


2。点击Debuger,如下配置:


3。点击Commands-》如下配置:(里边填写的内容下附件)


4。依此点击如下图所示:


5。下边是调试窗口:


6。这样单步调度u-boot了。


参考1:《使用JLINK GDBSERVER调试U-BOOT的方法》http://blog.youkuaiyun.com/samantha_sun/article/details/6245504

参考2:《图解Ubuntu + Eclipse + JLink + arm-linux-gcc 配置》http://wenku.baidu.com/view/e4f9ad76f242336c1eb95ed2.html

参考3:《JLlink+GDB调试U-Boot  》http://blog.163.com/nesnil@126/blog/static/380812982012223104416462/


附件1:3里边输入的内容在如下:(参考《JLlink+GDB调试U-Boot  》中的.gdbinit)(更新:这个不能启动内核,附件2可以)

#

# J-LINK GDB SERVER initialization

#

# This connects to a GDB Server listening

# for commands on localhost at tcp port 2331

target remote 127.0.0.1:2331 #首先连接主机的GDB Server,端口都是2331。

#注意主机的GDB Server勾掉"Localhost only"选项,否则连接不上

# Set JTAG speed to 30 kHz

monitor speed 30

 

# Set GDBServer to little endian

monitor endian little

 
#end

# Reset the chip to get to a known state.

monitor reset

 

#

# CPU core initialization

#

 

# Set the processor mode

monitor reg cpsr = 0xd3

 

#disable watchdog

monitor MemU32 0x53000000 = 0x00000000

 

#disable interrupt

monitor MemU32 0x4A000008 = 0xFFFFFFFF #INTMSK

monitor MemU32 0x4A00000C = 0x00007FFF #INTSUBMSK

 

#set clock

monitor MemU32 0x4C000000 = 0x00FFFFFF

monitor MemU32 0x4C000014 = 0x00000005

monitor MemU32 0x4C000004 = 0x0005C011

 

#config sdram

monitor MemU32 0x48000000 = 0x22011110 #conw

monitor MemU32 0x48000004 = 0x00000700 #bank0

monitor MemU32 0x48000008 = 0x00000700 #bank1

monitor MemU32 0x4800000C = 0x00000700 #bank2

monitor MemU32 0x48000010 = 0x00000700 #bank3

monitor MemU32 0x48000014 = 0x00000700 #bank4

monitor MemU32 0x48000018 = 0x00000700 #bank5

monitor MemU32 0x4800001C = 0x00018005 #bank6

monitor MemU32 0x48000020 = 0x00018005 #bank7

monitor MemU32 0x48000024 = 0x008E04F4 #vREFRESH

monitor MemU32 0x48000028 = 0xB1 #vBANKSIZE -- 128M/128M --- should

monitor MemU32 0x4800002c = 0x30 #vMRSRB6

monitor MemU32 0x48000030 = 0x30 #vMRSRB7

 

# Set auto JTAG speed

monitor speed auto

 

# Setup GDB FOR FASTER DOWNLOADS

set remote memory-write-packet-size 1024

set remote memory-write-packet-size fixed

 

# Load the program executable called "image.elf"

# load image.elf

b _start

load

continue

附件2:能启动内核的脚本内容http://my.youkuaiyun.com/kangear/code/detail/40157 新:https://code.youkuaiyun.com/snippets/37660

在 u-boot 代码中使用 gdb 进行调试,需要进行以下几个步骤: 1. 在 u-boot 的 Makefile 中添加编译选项。在 u-boot 的 Makefile 中添加以下编译选项: ``` CFLAGS += -g -O0 ``` 这样可以在编译 u-boot 时生成调试信息。 2. 编译 u-boot。使用以下命令编译 u-boot: ``` make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- <board>_defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all ``` 其中 `<board>` 为开发板的名称。 3. 启动 u-boot 并连接 gdb 调试器。将编译好的 u-boot 烧录到开发板中,然后通过串口连接开发板和 host 机。在 host 机上打开一个终端窗口,使用以下命令启动 gdb 调试器: ``` arm-linux-gnueabihf-gdb u-boot ``` 4. 设置 gdb 调试器。在 gdb 调试器中使用以下命令设置调试选项: - 设置调试目标: ``` (gdb) target remote /dev/ttyUSB0 ``` 其中 `/dev/ttyUSB0` 为连接开发板的串口设备名称。 - 设置调试符号表: ``` (gdb) symbol-file u-boot ``` 其中 `u-boot` 为编译好的 u-boot 可执行文件。 - 设置断点: ``` (gdb) break main ``` 然后使用以下命令运行程序: ``` (gdb) run ``` 程序会在 `main` 函数处停下来,等待 gdb 命令。 5. 进行调试。使用 gdb 调试命令进行调试,比如单步执行、查看变量值等。例如,单步执行可以使用以下命令: ``` (gdb) step ``` 查看变量值可以使用以下命令: ``` (gdb) print <variable> ``` 其中 `<variable>` 为要查看的变量名称。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值