[原创]Blackfin嵌入式系统初始化问题
0赞
发表于 2012/5/21 22:29:31
阅读(3083)
今年的竞赛第一节课就是嵌入式系统的初始化问题,老生常谈,还是有很多问题,Blackfin以它强大的图像处理能力独占鳌头,每每讲到都是非常有感触,学生也喜欢,但是第一步需要进入系统,Blackfin嵌入式系统的启动通常包括以下步骤:
1、为加载 引导程序 的 stage2 准备Blackfin空间拷贝引导程序的 stage2 到 RAM 空间中;
2、设置好堆栈
3、跳转到 stage2 的 C 入口点
4、引导程序通常包括以下步骤
1、初始化本阶段要使用到的硬件设备
2、调用应用程序或启动内核
stage 1的功能: RAM初始化,设置各个部件的时钟和片选,将引导程序拷贝到RAM中,设置堆栈,调用Stage 2。
注意:在本阶段,特别是在堆栈设置之前,进行函数调用(也有些汇编子程序不需要使用堆栈)或者使用堆栈保存数据将产生不可预的结果;
qstage 2的功能:初始化串口,显示菜单,通过控制台获取用户输入,并执行相应的命令操作。
1、嵌入式系统初始化
2、片级初始化
3、板级初始化
4、系统级初始化
5、硬件相关的设备驱动程序
这是一个以软件初始化为主的过程,主要进行操作系统初始化。BSP将控制转交给操作系统,由操作系统进行余下的初始化操作。包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,最后,操作系统创建应用程序环境并将控制转交给应用程序的入口。
与初始化过程相反,硬件相关的设备驱动程序的初始化和使用通常是一个从高层到底层的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。
这样就进入了系统,享受科技带来的愉悦吧!