完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、启动引导程序——bootloader:
boot程序:引导程序。在设计单片机的程序时,不论是否嵌入了嵌入式操作系统还是裸机运行程序,在MCU硬件部分都已经固化好了启动引导程序。有时候为了用户升级程序,还会设计用户级别的启动引导程序。 启动引导程序是在正式的程序运行之前运行的程序,在一般的系统中主要用来加载程序和初始化硬件的。在单片机中Bootloader是基于特定硬件平台来实现的,它会初始化硬件设备,可以将程序的起始指针跳转到该执行代码的区域。 对于Bootloader可总结以下四点:2、Uboot和bootloader uboot属于bootloader的一种。其他的bootloader还有: [tr]bootloader描述[/tr]
在uboot的源码内,程序会最先从一个start.s汇编文件启动。 与大多数BootLoader一样,uboot的启动过程分为BL1和BL2两个阶段。BL1阶段通常是开发板的配置等设备初始化代码,需要依赖依赖于SoC体系结构,通常用汇编语言来实现;BL2阶段主要是对外部设备如网卡、Flash等的初始化以及uboot命令集等的自身实现,通常用C语言来实现。 整个程序最先启动的start.s文件首先确定了: 可知start.S的流程为:异常向量——上电复位后进入复位异常向量——跳到启动代码处——设置处理器进入管理模式——关闭看门狗——关闭中断——设置时钟分频——关闭MMU和CACHE——进入lowlever_init.S——检查当前代码所处的位置,如果在FLASH中就将代码搬移到RAM中 1、BL1阶段总结:一切都是为了启动内核 |
||
|
||
只有小组成员才能发言,加入小组>>
3309 浏览 9 评论
2988 浏览 16 评论
3490 浏览 1 评论
9050 浏览 16 评论
4084 浏览 18 评论
1168浏览 3评论
601浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
592浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2329浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 16:12 , Processed in 1.196142 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号