- 14
- 0
- 约2.49万字
- 约 22页
- 2017-12-04 发布于江西
- 举报
Uboot源码
uboot 源码阅读
这篇文章属于转载
cpu/arm920t/start.S
在开始处首先定义了一个全局的标签,
.globl _start
这个是整个uboot 程序的入口,可在链接脚本board/s3c2410/u-boot.lds 中找到。
这个标签所指的地址处就是一跳转指令
_start: b reset
开始复位。
reset:
/*
* set the cpu to SVC32 mode
*/
mrs r0,cpsr
bic r0,r0,#0x1f
/* disable IRQ and FIQ, ARM instruct set, supervisor mode. added by BoySKung*/
orr r0,r0,#0xd3
msr cpsr,r0
首先将cpu 设置为supervisor 模式。通过设置cpsr 的低5 位为10011 实现,并禁止IRQ、FIQ。
即cpsr 的第七第六位设置为11.
接着关闭看门狗定时器
ldr r0, =pWTCON
mov r1, #0x0
str r1, [r0]
将看门狗定时器控制寄存器置0。
ldr r0, =CLKDIVN
mov r1, #3
str r1, [r0]
设置FCLK:HCLK:PCLK 为1:2:4, 通过设置CLKDIVN 控制寄存器的HDIVN、PDIVN 值实现不同的
比例
00(1:1:1)
01(1:1:2)
10(1:2:2)
11(1:2:4)
这些然后开初始化cpu
cpu_init_crit:
/*
* flush v4 I/D caches
*/
mov r0, #0
mcr p15, 0, r0, c7, c7, 0 /* flush v3/v4 cache */
mcr p15, 0, r0, c8, c7, 0 /* flush v4 TLB */
首先关闭ICache 和DCache.
/*
* disable MMU stuff and caches
*/
mrc p15, 0, r0, c1, c0, 0
bic r0, r0, #0@ clear bits 13, 9:8 (--V- --RS)
bic r0, r0, #0@ clear bits 7, 2:0 (B--- -CAM)
orr r0, r0, #0@ set bit 2 (A) Align
orr r0, r0, #0@ set bit 12 (I) I-Cache
mcr p15, 0, r0, c1, c0, 0
关闭MMU,数据存储格式为小端。开启数据地址对齐错误检测,使能ICACHE。
/*
* before relocating, we have to setup RAM timing
* because memory timing is board-dependend, you will
* find a memsetup.S in your board directory.
*/
mov ip, lr
bl memsetup
mov lr, ip
mov pc, lr
还要对内存时序进行设置,因为内存时序是依赖于开发板的。
Cpu 初始化结束后,开始初始化串口uart
@ Initialize UART
@
@ r0 = number of UART port
InitUART:
ldr r1, =0mov r2, #0x0
str r2, [r1, #0x8]
str r2, [r1, #0xc]
mov r2, #0x3
str r2, [r1, #0x0]
ldr r2, =0x245
str r2, [r1, #0x4]
/*= PCLK = 202.8 / 4 = 50.7 when FCLK at 202.8 */
#define UART_BRD (/ (115200 * 16)) - 1)
mov r2, #UART_BRD
str r2, [r1, #0x28]
这里主要对uart 的一些控制寄存器进行了设置,并设置了串口的波特率
mov r3, #100
mov r2, #0x0
1: sub r3, r3, #0x1
tst r2, r3
bne 1b
mov pc, lr
这里是一段延时,具体起什么作用还不清楚。
这些初始化都结束后开始代码重定位
relocate: /* relocate U-Boot to RAM */
adr r0, _start /* r0 - current position of code */
ldr r1, _TEXT_BASE
您可能关注的文档
- spc统计过剩管制.ppt
- SponsoredReviews:付费评论让你的博客赚钱.doc
- Spring AOP课件.ppt
- Spring IoC课件.ppt
- Spring串讲.doc
- SPSS论文中部消费收入关系分析.doc
- Sp技巧运用销售培训.ppt
- sp搜索竞价业务方案.ppt
- SQl_Server上机实验_答案_华中科技大学.doc
- SQL_Server简介.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2022届上海市徐汇区高三上学期12月一模英语试卷-Word版含答案.doc VIP
- (完整版)Aitken拖延问卷(API).docx VIP
- MTU软件简易操作培训课件32.pdf VIP
- 2026年春统编版九年级下册语文教学计划及教学进度表.docx VIP
- 学校“最小应急单元”突发事件处置工作指引解读课件.pptx VIP
- 深圳大学《现代通信原理》2021-2022学年第一学期期末试卷.doc VIP
- 人教版八年级数学下册教学工作计划与教学进度表(2026春季学期).docx
- 07CJ03-1:轻钢龙骨石膏板隔墙、吊顶(参考图集).pdf VIP
- 赤壁赋教学实录与课堂案例分析.docx VIP
- 化工工艺培训PPT课件.pptx VIP
原创力文档

文档评论(0)