全部博文(13)
2009年(13)
分类: 嵌入式
2009-08-25 11:35:30
1.Reset 入口点:0x0
传递控制权到ROM的入口处:reset_vector。
2.调用宏PLATFORM_SETUP1,
PLATFORM_SETUP1宏定义在:
arm\mx25\3stack\current\include\hal_platform_setup.h
完成下面的工作:
关中断
禁能以及清除caches
初始化内存控制器(可能包括检查内存位置)
设置时钟频率
初始化MMU table
设置TTBR和DACR为默认值
映射MMU table到内存
DRAM at 0x00000000 cacheable/buffered
Device registers elsewhere uncacheable/unbuffered usually 1-1
DRAM at 0xF0000000 uncacheable/unbuffered (1-1 in aaed2000)
remap ROM at 0 elsewhere
使能MMU
为启动ROMRAM重定位镜像到RAM
多CPU时设置其他CPU
3.跳转到HAL启动
如果包括GDB stubs的话则调用initialize_stub()
调用hal_ctrlc_isr_init() //rom版本的Redboot不支持ctrl-c
调用cyg_hal_invoke_constructors()
调用cyg_start()