下载此文档

Uboot启动流程分析(基于u-boot1.1.4).doc


文档分类:法律/法学 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
Uboot启动流程分析(基于u-)先分析一下u-boot启动的两个阶段,。先看board/smsk2410/u-,可以知道目标程序的各部分链接顺序。OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm","elf32-littlearm")/*OUTPUT_FORMAT("elf32-arm","elf32-arm","elf32-arm")*/OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{.=0x00000000;/*指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。必须使编译器知道这个地址,通常都是修改此处来完成*/.=ALIGN(4);.text:{cpu/arm920t/(.text)*(.text)}.=ALIGN(4);.rodata:{*(.rodata)}.=ALIGN(4);.data:{*(.data)}.=ALIGN(4);.got:{*(.got)}.=.;__u_boot_cmd_start=.;.u_boot_cmd:{*(.u_boot_cmd)}__u_boot_cmd_end=.;.=ALIGN(4);__bss_start=.;.bss:{*(.bss)}_end=.;}第一个要链接的是cpu/arm920t/,那么U-Boot的入口指令一定位于这个程序中。下面详细分析一下程序跳转和函数的调用关系以及函数实现。:cpu/arm920t/-Boot的入口程序,开头就是复位向量的代码。U-Boot启动代码流程图_start:breset//复位向量;;设置异常向量表ldrpc,_undefined_instructionldrpc,_software_interruptldrpc,_prefetch_abortldrpc,_data_abortldrpc,_not_usedldrpc,_irq//中断向量ldrpc,_fiq//中断向量…/*theactualresetcode*/reset://复位启动子程序/*设置CPU为SVC32模式*/mrsr0,cpsrbicr0,r0,#0x1f;;位清除,将某些位的值置0:r0=r0AND(!0x1f)orrr0,r0,#0xd3;;逻辑或,将r0与立即数进行逻辑或,放在r0中(第一个)msrcpsr,r0/*关闭看门狗*//*turnoffthewatchdog*/#ifdefined(CONFIG_S3C2400)#definepWTCON0x15300000#defineINTMSK0x14400008/*Interupt-Controllerbaseaddresses*/#defineCLKDIVN0x14800014/*clockdivisorregister*/#elifdefined(CONFIG_S3C2410)#definepWTCON0x53000000#defineINTMSK0x4A000008/*Interupt-Controllerbaseaddresses*/#defineINTSUBMSK0x4A00001C#defineCLKDIVN0x4C000014/*clockdivisorregister*/#endif#ifdefined(CONFIG_S3C2400)||defined(CONFIG_S3C2410)ldrr0,=pWTCONmovr1,#0x0strr1,[r0]/*禁止所有中断和设置CPU频率*//**maskallIRQsbysettingallbitsintheINTMR-default*/movr1,#0xffffffffldrr0,=INTMSKstrr1,[r0]#ifdefined(CONFIG_S3C2410)ldrr1,=0x3ffldrr0,=INTSUBMSKstrr1,[r0]#endif/*FCLK:HCLK:PCLK=1:2:4*/;;FCLK用于CPU,HCLK用于AHB,PCLK用于APB/*defaultFCLKis120MHz!*/ldrr0,=CLKDIVN;;根据硬件手册来设置CLKDIVN寄存器movr1,#3;;用户手册的推荐值strr1,[r0]#endif/*CONFIG_S3C2400||CONFIG_S3C2410*//*这些初始化代码在系统重起的时候执行,运行时热复位从RAM中启动不执行*//**wedosys-criticalinitsonlyatreboot,*notw

Uboot启动流程分析(基于u-boot1.1.4) 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-01-28