- 7
- 0
- 约9.21千字
- 约 10页
- 2017-08-15 发布于河南
- 举报
源码基于u-boot1.1.4版本。先看board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。OUTPUT_FORMAT(elf32-littlearm, elf32-littlearm, elf32-littlearm)/*OUTPUT_FORMAT(elf32-arm, elf32-arm, elf32-arm)*/OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{. = 0 /*指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。必须使编译器知道这个地址,通常都是修改此处来完成*/. = ALIGN(4);.text :{??? cpu/arm920t/start.o (.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/start.o,那么U-Boot的入口指令一定位于这个程序中。下面详细分析一下程序跳转和函数的调用关系以及函数实现。1.Stage1:cpu/arm920t/start.S这个汇编程序是U-Boot的入口程序,开头就是复位向量的代码。U-Boot启动代码流程图_start: b reset //复位向量 ;;设置异常向量表?? ldr pc, _undefined_instruction?? ldr pc, _software_interrupt?? ldr pc, _prefetch_abort?? ldr pc, _data_abort?? ldr pc, _not_used?? ldr pc, _irq //中断向量?? ldr pc, _fiq //中断向量…/* the actual reset code */reset: //复位启动子程序?? /* 设置CPU为SVC32模式 */?? mrs r0,cpsr?? bic r0,r0,#0x1f ;;位清除,将某些位的值置0:r0 = r0 AND ( !0x1f)?? orr r0,r0,#0xd3 ;;逻辑或,将r0与立即数进行逻辑或,放在r0中(第一个)?? msr cpsr,r0/* 关闭看门狗 *//* turn off the watchdog */#if defined(CONFIG_S3C2400)# define pWTCON 0# define INTMSK 0/* Interupt-Controller base addresses */# define CLKDIVN 0/* clock divisor register */#elif defined(CONFIG_S3C2410)# define pWTCON 0# define INTMSK 0x4A000008 /* Interupt-Controller base addresses */# define INTSUBMSK 0x4A00001C# define CLKDIVN 0x4C000014 /* clock divisor register */#endif#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)ldr r0, =pWTCONmov r1, #0x0str r1, [r0]/* 禁止所有中断和设置CPU频率 *//*??? * mask all IRQs by setting all bits in the INTMR - default??? */mov r1, #0xffffffffldr r0, =INTMSKstr r1, [r0]# if defined(CONFIG_S3C2410)ldr r1, =0x3ffldr r0, =INTSUBMSKstr r1, [r0]# endif/* FCLK:HCLK:PCLK =
您可能关注的文档
- linux中oracle的日常维护命令-09-30.doc
- lvm代码分析.doc
- lvs 利用ipvsadm 脚本部署.doc
- M5U5柯林斯词典(精简).doc
- MA5680T+MA5606T开局简易说明.doc
- MAC OS X系统不能启动故障排除的DIY手册.doc
- Mapinfo与ArcGIS对比.doc
- MASTERYS UPS开关机步骤及日常维护常识.doc
- MATLAB 2010B 安装方法.doc
- Matlab_安装教程.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025年省考超大杯刷题-申论套卷四.pdf VIP
- 小学学校总务处的工作计划.pptx VIP
- 大学毕业论文__小型液压挖掘机的设计.doc VIP
- 食材配送人员配置与资质要求.docx VIP
- 2025年山东省济南市中考英语试卷试题真题(精校打印版).pdf VIP
- 一种能够在太阳光下快速固化的可剥离去污复合膜及制备方法.pdf VIP
- 骨科临床诊疗指南及操作规范(2025版).docx
- 2025-2026学年小学信息技术(信息科技)四年级下册浙教版(2023)教学设计合集.docx
- 沪科版九年级(上) 中考题同步试卷:22.5 二次函数的应用(18).doc VIP
- 中国的刺腹牙甲属、脊胸牙甲属和凹基牙甲属昆虫鞘翅目牙甲科牙甲族研究.pdf VIP
原创力文档

文档评论(0)