zedboard启动过程分析
来源:互联网 发布:小知科技拖欠工资 编辑:程序博客网 时间:2024/05/29 14:29
1、经过几天的努力看懂了zedboard的部分启动过程
陆书与何宾老师的书上都说到了BootRom , 这个是被称为第0阶段启动引导,这阶段的代码在上电或者热复位时执行,启动代码不可更改,这是比我们所说的u-boot还要领先启动一部分代码。然后这部分第一阶段启动,也就是FSBL,这个文件在zedboar中也就是我们固化是需要生成.fsbl文件。第三阶段是我们的SSBL(second stage boot loder),也就是u-boot,如果是裸机程序那么就是在SDK中写的应用程序的对应的.elf文件。有了这三部分的启动过程才能完整的启动zedboard。
BootRom
BootRom 只包含了初始化NOR ,NAND,SD,Quad-SPI,SD等的初始化,其他外设的初始化放在FSBL中。 BOOTRom通过物理IO-MIO[2-8]确定我们的启动模式,也就是zedboard上的JP7、9、9、10,官方给的linux是从SD卡中启动的。所以MIO4-5要短接到3.3V上。
FSBL
FSBL就是我们在固化是要新建的一个.ELF文件,不是我们写裸跑程序的那个.elf文件。在FSBL中我们可以看到对许多外设的初始化,其中还有一个很重要的就是寻找BOOT.BIN文件,在main函数中我们可以找到这段话,在读取BOOT.BIN后才是真正开始FSBL,我猜测之前操作是BOOTROM与FSBL交接的工作,不知道对不对,欢迎大家指正。至于我们可不可以修改这个fsbl,怎么修改,我还在验证中。
if (BootModeRegister == SD_MODE) {
fsbl_printf(DEBUG_GENERAL,"Boot mode is SD\r\n");
/*
* SD initialization returns file open error or success
*/
Status = InitSD("BOOT.BIN");
if (Status != XST_SUCCESS) {
fsbl_printf(DEBUG_GENERAL,"SD_INIT_FAIL\r\n");
OutputStatus(SD_INIT_FAIL);
FsblFallback();
}
MoveImage = SDAccess;
fsbl_printf(DEBUG_INFO,"SD Init Done \r\n");
} else
fsbl_printf(DEBUG_GENERAL,"Boot mode is SD\r\n");
/*
* SD initialization returns file open error or success
*/
Status = InitSD("BOOT.BIN");
if (Status != XST_SUCCESS) {
fsbl_printf(DEBUG_GENERAL,"SD_INIT_FAIL\r\n");
OutputStatus(SD_INIT_FAIL);
FsblFallback();
}
MoveImage = SDAccess;
fsbl_printf(DEBUG_INFO,"SD Init Done \r\n");
} else
SSBL
SSBL就是我们的u-boot这部分是完全可以根据我们需要修改的,可以在digilent官网上下载相关的源码,后面启动的事和纯arm的启动我认为是一样的 ,由于没有arm开发经验,不能乱说。当然SSBL与FSBL还有我们PL端的system.bit是一起通过SDK合并生成BOOT.BIN。所以在这里我就有一个疑问,既然BOOT.BIN是一个文件,那么FSBL里的程序为什么还会去读BOOT.BIN呢,难道是BootRom做的。
1 0
- zedboard启动过程分析
- zedboard(二)----开机启动过程
- Zedboard的启动流程
- zedboard启动设置
- zedboard硬件连接过程
- 一步一步学zedboard之一zedboard启动设置
- CDlinux启动过程分析
- UBOOT启动过程分析
- startx启动过程分析
- DM642启动过程分析
- BIOS启动过程分析
- startx启动过程分析
- 2440启动过程分析
- linxu 启动过程分析
- startx启动过程分析
- Linux启动过程分析
- Activity启动过程分析
- oracle启动过程分析
- hdu1671 字典树 入门
- 对话框的WS_CLIPCHILDREN和WS_CLIPSIBLINGS属性的理解
- oauth2.0协议之Implicit grant模式解析
- Linux bash 与 dash
- MongoDB 学习笔记(python操作)
- zedboard启动过程分析
- 基于Android/IOS视频语音通话商业产品源码转让
- 朴素贝叶斯模型
- 处理成绩
- 脑波设备mindwaveTGC接口示例
- 女子跳下武汉长江二桥生还 警方称获救几率仅6%
- java键盘读入的基本操作
- DNS攻击原理与防范
- 矩形类定义