- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM调试之Uboot篇
ARM调试之Uboot篇
uboot分析移植
A)补丁文件制作,大体:
- 生成patch文件:diff -u a.c b.c a.patch
- patch补丁 :patch a.c a.patch
- 此时 :a.c = b.c
B)编译制作:
- patch -p1 ../u-boot-1.1.6_jz2440.patch ##p1表示忽略目录中的第一个斜杠
- make 100ask24x0_config
- make
C)Uboot主要功能
-硬件初始化:关看门狗、初始化时钟、初始化SDRAM、FLASH等
-从FLASH读出内核,导到SDRAM
-启动内核
-辅助功能:
I)多种Flash烧写方式:网卡、串口、USB
D)下载路径
-/projects/u-boot/?source=dlp
-充分利用开源!!!
E)目录结构说明
-board,开发板相关,对应不同配置的电路板(即使CPU相同)
-cpu ,平台相关,对应不同的CPU
-lib_i386,平台相关,某一架构下通用的文件
-include,头文件和开发板配置文件,开发板的配置文件都放在include/configs目录下,UBoot需要手动修改配置文件中的宏定义
-lib_generic,通用的库函数,比如printf等
-common,通用的函数,多事对下一层驱动程序的进一步封装
-disk,设备驱动,硬盘接口程序
-drivers,设备驱动,各位具体设备的驱动程序,基本上可以通用,他们通过宏从外面引入平台/开发板相关的函数
-dtt,设备驱动,数字温度测量器或传感器的驱动
-fs,设备驱动,文件系统
-nand_spl,设备驱动,U-Boot一般从Rom、NorFlash等设备启动,也有部分支持NandFlash启动
-net,设备驱动,各类网络协议
-post,设备驱动,上电自检程序
-rtc,设备驱动,实时时钟的驱动
-doc,开发、使用文档
-examples,测试例程
-tools,制作S-Record、Ubot格式的映像工具,如mkimage
F)配置编译Makefile分析
-配置:
--/makefile ##make主脚本,目标/依赖关系
/config.mk ##make相关宏定义,如:LDFLAGS等
/mkconfig ##配置脚本
--/obj/include/config.mk ##配置生成,obj为目标文件目录,BUILD_DIR指定
--/include/configs/100ask24x0.h ##具体开发板相关,其中CONFIG_宏用于选择使用哪些模块,CFG_宏用于具体模块参数的配置
-编译
--/makefile ##make主脚本,导入以上配置生成的.mk文件参数,执行,可确定=第一个执行文件为\cpu\arm920t\start.s
--/board/100ask24x0/u-boot.lds ##链接脚本,确定代码段、数据段等内存分布,其中uboot初始链接地址由TEXT_BASE = 0x33F80000确定(\board\100ask24x0\config.mk)
G)uboot代码分析
-第一阶段,Start.S分析
--起始_start,中断向量表(reset/swi等)
--几个宏值定义,TEXT_BASE(board\100ask24x0\config.mk=0x33F80000)、
_armboot_start(_start=0)、
__bss
文档评论(0)