自己写bootloader1 - start.S,基于s3c2440
来源:互联网 发布:ssh框架 实例源码下载 编辑:程序博客网 时间:2024/05/22 08:21
bootloader的目的是启动内核。主要做两方面的工作:把内核从nand读入sdram,跳转执行。
bootloader分成两步走:第一是硬件相关的初始化,然后跳转到main中执行。
首先是硬件相关初始化:关看门狗,设置时钟,初始化SDRAM,代码重定位,跳转到main中执行。
start.S里面的代码(start.S不能是start.s)
#define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<4)|(0x02))#define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<4)|(0x02))
#define MEM_CTL_BASE 0x48000000
text
.global _start
_start:
/*1关看门狗*/
ldr r0, =0x53000000
mov r1, #0
str r1, [r0]
/* 2: 设置时钟*/
ldr r0, =0x4c000014
mov r1, #0x03;
str r1, [r0]
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0
ldr r0, =0x4c000004
ldr r1, =S3C2440_MPLL_200MHZ
str r1, [r0]
/* 3: 初始化sdram*/
ldr r0, =MEM_CTL_BASE
adr r1, sdram_config /*得到当前的地址,不是链接地址*/
add r3, r0, #(13*4)
1: ldr r2, [r1], #4
str r2, [r0], #4
cmp r0, r3
bne 1b
/* 4: 重定位:把bootloader 的代码从flash到sdram中*/
ldr sp, =0x34000000
bl nand_init
mov r0, #0
ldr r1, =_start
ldr r2, =__bss_start
sub r2, r2, r1
bl copy_to_sdram
bl clean_bss
/* 5: 调用main*/
ldr lr, =halt
ldr pc, =main
halt:
b halt
sdram_config:
.long 0x22011110//BWSCON
.long 0x00000700//BANKCON0
.long 0x00000700//BANKCON1
.long 0x00000700//BANKCON2
.long 0x00000700//BANKCON3
.long 0x00000700//BANKCON4
.long 0x00000700//BANKCON5
.long 0x00018005//BANKCON6
.long 0x00018005//BANKCON7
.long 0x008C04F4// REFRESH
.long 0x000000B1//BANKSIZE
.long 0x00000030//MRSRB6
.long 0x00000030//MRSRB7
- 自己写bootloader1 - start.S,基于s3c2440
- 自己写bootloader1 - start.S,基于s3c2440
- 自己写bootloader2 -跳转执行,基于s3c2440
- 自己写bootloader2 -init.c,基于s3c2440
- [Funkunux] 自己写MMU实验 基于S3C2440
- 自己写bootloader2 -跳转执行,基于s3c2440
- 自己写bootloader2 -init.c,基于s3c2440
- 基于S3C2440的U-BOOT的start.S分析
- 自己写bootloader(1)——start.S
- 自己写bootloader笔记2---start.S分析
- 自己写bootloader笔记2---start.S分析
- S3C2440启动代码分析 start.s
- s3c2440启动文件start.s分析
- 04-S3C2440学习之自己写bootloader
- s3c2440学习系列4(uboot start.S说明)
- U-BOOT中start.s包含S3C2440代码分析
- U-BOOT中start.s包含S3C2440代码分析
- UBOOT start.S 关于S3C2440时钟设置的理解
- MyEclipse或者Eclipse启动时workspace不提示,解决办法
- Eclipse常用技巧总结:热键,自定义模版及其他
- Exploring the world of Android :: Part 2
- 实训报告-3G-孙庆山
- php高手快速进阶
- 自己写bootloader1 - start.S,基于s3c2440
- 学习好地方
- java 注解:SuppressWarnings、Deprecated、Override
- JavaScript Function Object 关系
- android bmp与drawable转换
- JavaScript(1)——数据类型、运算符、流程处理、函数
- 怎么用运算放大器电路精确控制光的强度
- 七个男人不应该有的恶习
- C中的volatile用法