欢迎来到天天文库
浏览记录
ID:33481268
大小:74.00 KB
页数:12页
时间:2019-02-26
《u-boot1.1.6的移植(目标板tq2440)1 编译测试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、u-boot1.1.6的移植(目标板TQ2440)1编译测试Linux内核2009-12-1501:18:50阅读146评论0 字号:大中小 订阅 如何将u-booot1.1.6从smdk2410移植到tq2440目标板?阅读了天嵌公司的tq2440开发板u-boot代码,以下是我的总结。 为实践需要,另起自己的目标板名字,故用jzy2440替代tq2440。 蓝色的为修改部分,红色为jzy23注释。(一)编译测试1. /board目录下(1). 将smdk2410目录复制为jzy2440目录。(2).将jzy2440目录下的Mak
2、efile中的COBJS改为:COBJS:=jzy2440.oflash.o 2./include/configs目录下 将smdk2410.h复制为jzy2440.h。 3.修改顶层Makefile 增加: jzy2440_config: unconfig @$(MKCONFIG)$(@:_config=)armarm920tjzy2440NULLs3c24X0 这两句的含义,可参见韦东山编著的《嵌入式Linux应用开发完全手册》的bootloader部分--第15章,第249页u-boot配置过程。4.使用支持sof
3、tfloat的交叉编译器:crosstools_3.4.1_soft(光盘附带)。5.编译测试 配置 makejzy2440_config编译: make 具体u-boot编译,连接过程参看韦东山《嵌入式Linux应用开发完全手册》第254页。6.清除上次编译的结果:makemrproperu-boot1.1.6的移植(目标板TQ2440)4.lds设置Linux内核2009-12-1501:17:34阅读43评论0 字号:大中小 订阅 (四).lds文件设置 注:蓝色部分为修改或者改动部分,红色部分为jzy23注解。在board/
4、jzy2440/u-boot.lds里修改:SECTIONS{ .=0x00000000; .=ALIGN(4); .text : { cpu/arm920t/start.o (.text) board/jzy2440/boot_init.o(.text) //添加这句 *(.text) } .=ALIGN(4); .rodata:{*(.rodata)} .=ALIGN(4); .data:{*(.data)} .=ALIGN(4); .got:{*(.got)} .=.; __u_boot_cmd_start=.
5、; .u_boot_cmd:{*(.u_boot_cmd)} __u_boot_cmd_end=.; .=ALIGN(4); __bss_start=.; .bss:{*(.bss)} _end=.;}u-boot1.1.6的移植(目标板TQ2440)5代码重定向Linux内核2009-12-1501:15:55阅读81评论0 字号:大中小 订阅(五)代码重定向 注:蓝色部分为修改或者改动部分,红色部分为jzy23注解。 1. start.S里修改:#ifndefCONFIG_SKIP_RELOCATE_UBOOT relocate
6、: /*relocateU-BoottoRAM */ adr r0,_start /*r0<-currentpositionofcode(r0=0) */ ldr r1,_TEXT_BASE /*testifwerunfromflashorRAM(r1=0x33f80000*/ cmp r0,r1 /*don'trelocduringdebug */ beq clear_bss /*(原来为stack_setup)*/ ldr r2,_armboo
7、t_start /*(r2为_start的地址=0x3ff80000)*/ ldr r3,_bss_start /*(在连接文件中定义)*/ sub r2,r3,r2 #if1 /*(增加)*/ bl CopyCode2Ram /*r0:source,r1:dest,r2:size*/ /*(跳转到CopyCode2Ram函数)*/#else add r2,r0,r2 //r2<-sourceendaddress */copy_lo
8、op: ldmia r0!,{r3-r10} //copyfromsourceaddress[r0] */ stmia r1!,{
此文档下载收益归作者所有