u-boot-2012.10启动流程

本文详细介绍了u-boot-2012.10的启动流程,从start.S开始,包括设置中断处理程序、内存地址、CPU模式、分频比,关闭缓存和MMU,初始化刷新时序,直至进入board_init_r进行第二阶段。内容涵盖了从SVC模式设置到板级初始化的各种步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同一个文件中不同阶段用1,2,3,4表示
一个阶段中有其他小阶段,加小数点表示分阶段
若这个阶段是跳到其他文件去了,那继续用1,2



首先启动
start.S(在arch/arm/cpu/arm920t/start.S)
{
        1--定义中断向量处理程序标号/地址
        2--定义各种内存布置地址标号
        3--真正开始代码阶段
        {
                3.1--设置CPU模式为SVC管理模式
                3.2--关闭开门狗
                3.3--屏蔽全部中断
                3.4--设置各种分频比(FCLK,HCLK,PCLK)
                3.5--跳转到cpu_init_crit。(代码在start.S下面)
                {
                        3.5.1--关闭数据/指令cache
                        3.5.2--关闭MMU cache
                        3.5.3--跳转到lowlevel_init。(/board/tq2440/lowlevel_init.S)
                        {
                                1--初始化刷新时序
                                2--跳转回去
                        }
                        3.5.4--跳转回去
                }
                3.6--设置RAM堆栈指针(call_board_init_f)。
                3.7--跳转到board_init_f(arch/arm/lib/board.c)
                {
                        1--设置gd地址
                        2--调用init_sequence函数初始化。(在本文件中)
                        {
                               这些函数一般不用修改,参数在预定义里有
                                arch_cpu_init
                                time_init
                                env_init
                                init_baudrate
                                console_init        
                        }
                        3--设置ram相关参数,程序地址,ram地址,TLB空间等
                        4--取得用户栈地址,全局数据结构体地址,代码重定向地址
                        5--跳转回去                  
                }
                3.8--保存来自board_init_f的三个关键参数,用户栈地址,全局数据结构体地址,代码重定向地址
                3.9--设置堆栈,检查是否重定位完成,没完成就正式搬家,完成就跳过。
                3.10--跳转到board_init_r进入第二阶段。结束。(arch/arm/lib/board.c)
         }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值