bootloader
来源:互联网 发布:香港电信网络制式 编辑:程序博客网 时间:2024/05/16 14:38
bootloader是系统的引导程序,需要对一些硬件进行初始化,为操作系统的启动做好准备
其中搬运操作系统的代码和设置启动参数是必须要bootloader完成
s3c2440在系统启动时硬件自动将nand flash的前4k搬到sram里面,s3c6410为8k
1.程序需要在sdram里面运行,需要初始化sdram,才能运行代码,所以需要初始化内存。从arm的datasheet里面知道初始化内存控制器就是初始化内存。关于模式问题,arm的datasheet写到上电后模式自动设置为svc模式。
2.bootloader阶段不需要地址映射,映射了毫无意义,而且会使系统效率降低,所以需要关闭MMU,而D-CACHE的权限C,B在TLB和内存中,需要经过MMU,所以D-CACHE也需要关闭。I-CACHE相对于D-CACHE少了回写这一步骤,而且是只读的,在不开启MMU的情况下也可以使用。所以关不关闭I-CACHE都可以。在此次学习中暂时决定关闭I-CACHE
3.为了系统的开机速度,不过不进行时钟的倍频,启动过程将会消耗相对多的时间,为了早点启动内核,所以要设置时钟
4.将kernel代码从nand flash搬到内存,则应该对nand flash进行初始化才能开始搬运
5.在调试过程中利用串口进行调试,则需要对uart进行设置,以方便调试,即将printk代码写出来
6.有些代码不能使用c语言编写,必须用汇编编写,而c语言的运行过程需要堆栈,所以在汇编调用c语言函数时需要预先设置好堆栈
7.关于bss段清零的问题,可以不进行设置,但是为了c语言标准,需要对bss段进行清零
- Bootloader
- BootLoader
- BootLoader
- BootLoader
- Bootloader
- bootLoader
- bootloader
- bootloader
- bootloader
- BootLoader
- Bootloader
- bootloader
- bootloader
- bootloader
- Bootloader
- Bootloader
- Bootloader
- Bootloader
- ResultSet中的getdate只能取到日期不能取到时间??
- 数据库
- Quartz入门教程
- 如何设置HTML span、label 的宽度
- windows下文件遍历
- bootloader
- nyoj—93-汉诺塔(三)
- oracle 和informix 的基础区别
- MyEclipse中引入Oracle 11g自带的JDBC包
- Oracle GoldenGate 系列:使用 Oracle ASM API DBLOGREADER 时遇 ora-01031 错误
- android:layout_gravity 和 android:gravity 的区别
- Mark一下 三星i909调用系统相机数据返回的BUG
- hdu4081Qin Shi Huang's National Road System(次小生成树)
- mount 失败:mount.nsf Connection Refused