- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UBOOT移植2
开发环境:主机:Window XP SP2;linux:VMware7.01+ubuntu9.10;目标板:扬创utu2440-F开发板
交叉编译器:arm-linux-gcc4.3.2(一开始用的是编译内核的版本arm-linux-gcc3.4.1,但出现了软浮点问题,于是换成了现在用的版本,当然本人编译内核的时候还是用3.4.1版本)。
摘要:在上篇文章移植u-boot-2011.03到S3C2440(utu2440)方法与步骤###1. 配置和初步编译中 介绍了如何配置和裁减u-boot-2.011.03,并通过了初步编译。在此基础上,本文通过修改reille2440.h文件、分析u-boot入 口、修改start.S初始化代码段,利用tftp把编译出来的u-boot-2011.03镜像下载到SDRAM中,使其跑起来,可看到熟悉的u- boot启动信息。
1. 编辑include/configs/reille2440.h文件
把reille2440.h文件中的line38、39两行屏蔽掉,同时添加如下信息:
//#define CONFIG_S3C2410??? 1????????? /* specifically a SAMSUNG S3C2410 SoC? 需要屏蔽该宏定义? *///#define CONFIG_SMDK2410??? 1??? /* on a SAMSUNG SMDK2410 Board?? 需要屏蔽该宏定义 */#define CONFIG_S3C2440???? 1?????????? /* specifically a SAMSUNG S3C2440 SoC */?#define CONFIG_REILLE2440??????????? /* on a SAMSUNG reille2440 Board? */?#define CONFIG_SKIP_LOWLEVEL_INIT
注意:
1) 打红色为添加信息(或者修改信息,以下同)
2) CONFIG_SKIP_LOWLEVEL_INIT是跳过底层一些初始化代码的宏开关,定义则跳过。如果编译的u-boot.bin用tftp下到SDRAM中运行,则需要定义该宏,特别注意!
3) 如果S3C2440的晶振用的不是12MHz的,则还需要修改CONFIG_SYS_CLK_FREQ的值!
2. uboot入口分析:
一般在嵌入式系统软件开发中,在所有源码文件编译完成之后,链接器要读取一个链接分配文件,在该文件中定义了程序的入口点、代码段、数据段等分配情 况。对于2440开发板,u-boot的这个链接文件就是cpu/arm920t/u-boot.lds,打开该文件部分代码如下:
OUTPUT_FORMAT(“elf32-littlearm”, “elf32-littlearm”, “elf32-littlearm”)OUTPUT_ARCH(arm) //定义生成文件的目标平台是armENTRY(_start) //定义程序的入口点是_startSECTIONS{//其他一些代码段、数据段等分配. = 0. = ALIGN(4);.text :{cpu/arm920t/start.o??? (.text)*(.text)}………………………………}
知道了程序的入口点是_start,那么我们就打开2440开发板u-boot第一个要运行的程序cpu/arm920t/start.S,查找到_start的位置如下:
.globl _start_start: b?????? start_code??? //将程序的执行跳转到start_code处
从这个汇编代码可以看到程序又跳转到start_code处开始执行,那么再查找到start_code处的代码如下:
/** the actual start code*/start_code:/** set the cpu to SVC32 mode*/mrs??? r0,cpsrbic??? r0,r0,#0x1forr??? r0,r0,#0xd3msr??? cpsr,r0bl coloured_LED_init? //此处两行是对AT91RM9200DK开发板上的LED进行初始化的bl red_LED_on
由此可以看到,start_code处才是u-boot启动代码的真正开始处。
3. 在arch/arm/cpu/arm920t/start.S文件中修改相关初始化代码:对S3C2440一些寄存器的支持、添加中断禁止部分和时钟设置部分
在start.S文件的164行至175行,用下面代码替换:
# if defined(CONFIG
您可能关注的文档
- p2p网络借贷平台.doc
- ehcache配置使用详解1.doc
- WI300009作业标准书作业规定Operation Regulations of SOP(1.6版).doc
- 关于各国背包旅游发展对策的综述及其对我国的启示.doc
- 网络英语的一些特殊用法.doc
- Torque说明文档.doc
- Regulations of the People’s Republic of China on Chinese-Foreign Cooperation in Running Schools.docx
- 2013年12月分4级真题加答案1(除去听力).doc
- 六级强化综合笔记纲要.doc
- 最新化工客户邮箱.doc
最近下载
- 少年中国说钢琴谱五线谱 完整版原版.pdf
- (2024年高考真题) 2024年新课标全国Ⅰ卷数学真题.docx VIP
- 小学六年级全册体育教案.doc VIP
- 2024年新华师大版数学七年级上册全册课件(新版教材).pptx
- 2025注安《安全生产法律法规》考前必背笔记.pdf VIP
- 2025年小学生软笔书法兴趣培养的研究[五篇] .pdf VIP
- 碳酸钠的性质与应用说课.pptx VIP
- 碳捕捉与封存(CCUS)在海洋工程领域的应用与挑战研究报告.docx
- 2023年月嫂资格证考试《母婴护理师、母婴保健师》知识题库(含答案).pdf VIP
- 航天飞机任务2007中文操作手册.pdf VIP
文档评论(0)