uboot调试指南Word文档格式.docx

上传人:b****2 文档编号:3029783 上传时间:2023-05-01 格式:DOCX 页数:17 大小:1.01MB
下载 相关 举报
uboot调试指南Word文档格式.docx_第1页
第1页 / 共17页
uboot调试指南Word文档格式.docx_第2页
第2页 / 共17页
uboot调试指南Word文档格式.docx_第3页
第3页 / 共17页
uboot调试指南Word文档格式.docx_第4页
第4页 / 共17页
uboot调试指南Word文档格式.docx_第5页
第5页 / 共17页
uboot调试指南Word文档格式.docx_第6页
第6页 / 共17页
uboot调试指南Word文档格式.docx_第7页
第7页 / 共17页
uboot调试指南Word文档格式.docx_第8页
第8页 / 共17页
uboot调试指南Word文档格式.docx_第9页
第9页 / 共17页
uboot调试指南Word文档格式.docx_第10页
第10页 / 共17页
uboot调试指南Word文档格式.docx_第11页
第11页 / 共17页
uboot调试指南Word文档格式.docx_第12页
第12页 / 共17页
uboot调试指南Word文档格式.docx_第13页
第13页 / 共17页
uboot调试指南Word文档格式.docx_第14页
第14页 / 共17页
uboot调试指南Word文档格式.docx_第15页
第15页 / 共17页
uboot调试指南Word文档格式.docx_第16页
第16页 / 共17页
uboot调试指南Word文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

uboot调试指南Word文档格式.docx

《uboot调试指南Word文档格式.docx》由会员分享,可在线阅读,更多相关《uboot调试指南Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

uboot调试指南Word文档格式.docx

debug("

NowrunninginRAM-U-Bootat:

%08lx\n"

dest_addr);

printf("

将debug改为printf,如上所示。

2.编译uboot

执行makeBSC9131RDB_SYSCLK100_NAND,编译uboot

3.将编译好的u-boot-nand.bin(ubootimage格式)及u-boot(elf格式文件)文件拷贝出来

4.烧录uboot

将步骤3中保存的u-boot-nand.bin烧录到目标板中,烧录过程略。

5.建立工程

a.在cw界面,点击file->

import,选择codewarrior->

PowerarchitectureELFexecutable,如图1所示:

图1建立elf工程

b.选择步骤3中保存的u-boot(elf格式文件),toolchain选择bareboardapplication,targetOS选择none,工程名字请根据需要设置,比如我的机器上设置为example,点击next,如图2所示:

图2载入elf文件

c.选择处理器,9131,如图3所示

图3选择处理器

d.选择调试链接使用硬件,如图4所示

图4选择调试链接使用硬件

e.配置硬件连接特性,图5所示

图5配置工程连接特性

f.完成工程创建

6.匹配源代码

Uboot调试工程创建完成后,通过在修改uboot代码编译的ubootelf文件中已经包含符号表信息,其对应的源代码信息已经包含着elf文件中,因为我们的uboot编译是在linux服务器上执行,而cw的调试是在Windows机器上,因此,需要将ubootelf中的代码信息链接到windows的代码中。

A.指定某一个文件的连接关系,后续的连接都会自动对应起来;

图6配置源代码映射

B.若双击其中某个文件显示找不到源代码,则指定源代码即可

7.编辑连接/调试

A.启动configuration配置,点击run->

debugconfiguration,如图7所示

图7配置调试

B.选择codewarriorattach进行配置,如图8所示

图8配置cwattach

C.配置连接,选择连接,new,选择硬件或软件模拟器连接,选择PA,BSC9131RDB->

ROM,选择BSC9131RDB-core0_ROM_BSC9131PANANDu-boot32allstage,如图9所示:

图9配置硬件或者模拟器连接

D.在目标行,选择new目标,选择硬件或者软件模拟器连接->

PA,选择9131,如图10所示

图10配置目标

E.点击next,选择初始化目标${PA_TOOLS_HOME}/PA_Support/Initialization_Files/Qonverge/BSC9131RDB_uboot_32.tcl,如图11所示

图11选择初始化目标

F.选择内存初始化目标,点击内存选项卡,选择内存配置BSC9131RDB_uboot_32_NAND.mem,如图12所示

图12选择内存配置

G.点击finish,完成配置

H.在cwattach配置界面,在main选项卡中点击apply,应用配置

I.配置debugger备用加载地址,点击debugger选项卡,点击PIC选项卡,进行备用加载地址配置,如图13所示:

图13配置备用加载地址

J.填入0xfffff000,点击apply,点击debug,如图14所示,即可调试uboot启动第一阶段

图14启动调试

K.执行上一步骤后调试界面出现,如图15所示,调试界面

图15启动调试界面

L.点击复位按钮,在弹出的服务对话框中,确定初始化目标为BSC9131RDB_uboot_32.tcl,如图16所示

图16执行复位

M.复位后即可执行单步调试,如图17所示

图17执行服务后调试界面

N.执行单步跟踪,可以调试start.S代码,如图17所示

图17调试uboot启动第一阶段

三、调试阶段

Uboot的调试从内存布局的视图可以分为四个主要阶段:

1.Flash内执行阶段

2.使能MMU并在flash内执行

3.使能MMU并relocate到内存阶段

4.内存运行阶段

Uboot不同阶段的调试工程建立,连接建立的过程基本一致,不同之处是PIC的设置;

四、后续阶段调试

在第二部分建立的工程中已经可以调试第一阶段uboot,当单步执行到无法对应C代码时,即显示nosourceavailablefor0x****时,说明代码已经执行到第二阶段,如图18所示,需要进行第二阶段调试的配置;

图18第二阶段开始

1.点击主菜单Windows->

showview->

debugshell,如图19所示

图19调出debugshell窗口

2.在开始的debugshell中输入命令setpicloadaddr0xff801000,如图20所示,则即可对应C代码继续单步执行:

图20设置第二阶段picoffset

3.继续单步调试,可以在汇编语言或者c语言出设置断点,继续执行;

4.当发生nosourceavailablefor0x*****时,说明已经进入uboot启动第三阶段,此时如图21所示;

图20uboot调试进入第三阶段

5.在debugshell窗口中设置setpicloadaddr0xff800000,如图21所示

图21设置第三阶段的picoffset

6.继续调试,当进入第四阶段运行时,在debugshell中输入setpicloadaddr0x36f30000,即可继续进行调试。

五、各阶段PICoffset的确定

1.启动阶段picoffset的确定

系统启动后,pc指针会指向0xfffffffc的地址执行,此地址上是一条跳转指令,会跳转到0xfffff000地址执行。

如图22所示,此地址即为uboot的加载地址,因此需要设置ubootpicoffset为0xfffff000地址;

图22第一阶段picoffset地址确定

2.第二阶段picoffset地址的确定

第二阶段与第三阶段的picoffset地址确定都是通过查看代码的方式来确定的。

将disassembly窗口向上滚动,发现到代码起始处地址即为当前阶段picoffset地址,如图22,图23所示:

图22第二阶段picoffset地址确定

图23第三阶段启动pic便宜地址确定

3.第四阶段picoffset地址的确定:

a)修改将uboot代码arch/powerpc/lib/board.c,将其中debug("

修改为printf输出;

b)在uboot启动过程中,查看串口输入,如图24所示,记下地址,即为ram运行后的pic偏移地址。

图24第四阶段picoffset的确定

六、调试过程中其他需要注意的问题

1.注意代码的匹配,生成elf即uboot-nand.bin的代码为同一份代码,此特性在编译时已经保证,无需赘述,但是往往windows调试环境上的代码与生成uboot的代码不严格匹配,将导致软件调试时代码不匹配。

2.调试时需要初始化,即调试开始后往往需要按下reset按钮,才能如我所愿的进行单步调试

3.Picoffset的确定,不同阶段的确定方法不同,而freescale并没有提供第一、第二、第三阶段的确定方式,此方法非官方,不过在我的机器上可以调试工作。

4.调试过程中寄存器、内存、断点等调试方法不再赘述。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2