6410的SD bootloader的实现(都江堰OS)
来源:互联网 发布:ps怎么下载字体 mac 编辑:程序博客网 时间:2024/04/30 04:41
sdbootloader说明:
1、用winhex工具把boot_rom.bin写入SD卡,地址:SD卡末地址-9216。
2、把开发板的拨码开关拨到从SD卡启动,上电即可。
2、打开超级终端,用xmodem协议下载程序,保存到dram中。
3、把下载的代码写入到norflash。
4、把开发板的拨码开关拨到从norflash启动,复位或重新上电即可。
5、省去了xmodem帧格式检查、校验和检查。
但凡开发操作系统,无论是PC、服务器,还是嵌入式操作系统,第一个要解决的就是启动文件的存储问题。无论什么cpu,上电或者复位后,都会从指定的存储位置读取第一条指令予以执行,我们把这个地址成为启动向量,有些cpu可以通过跳线设置不同的启动向量地址。我们熟悉的PC,就是把bios烧录到启动向量处,再由bios逐步引导启动更高级的操作系统,比如windows、linux等。
在嵌入式行业,以linux为例,linux映像可以通过网口或者其他通信口下载,但你拿到裸机的时候,必须先想办法把uboot或者vivi或者其他bootloader烧录到flash中。djyos也不例外,不同的是,现在发布的si版本的djyos,是没有单独的bootloader的,而是把bootloader的角色集成在可执行影像中了,所以,需要像烧录uboot那样,烧录整个djyos影像。
在s3c6410之前,djyos发布了arm7(44b0)和arm9(2410和2440)两个版本,得益于廉价的arm7和arm9仿真烧录器,比如hjtag,arm这两个版本是通过hjtag或者jlink或其他工具直接烧录到norflash上的。但s3c6410是arm11的核,这些廉价工具不支持arm11,支持arm11的烧录工具都在数千元以上,这样势必影响大家使用djyos。要让6410执行djyos,必须解决在没有专用烧录工具的情况下,把djyos烧录到启动设备上的问题。
6410一共支持4种启动设备:norflash、nandflash、SD卡、modem,其中norflash和nandflash必须使用专用烧录工具,modem则需要了解其通信协议,编写相应的PC端应用程序,相比之下,SD卡最为简单,可以用普通的读卡器+winhex工具就可以完成写入。但有一个限制,就是6410启动时只从SD卡中读取8K代码到内部ram中(6410手册第二章说4K,第八章说8K,实测是8K)。读入代码后,程序就跳转到内部ram中执行,这8K程序,只能做一个简易bootloader,用这个bootloader去加载整个操作系统,这时候,就有两种选择:
1、把程序写到SD卡的其他地方, 但这种方法不现实。SD卡是用nandflash做的, 必然要做ECC校验,那么把代码写入SD卡时,要么用文件系统,但8K代码根本做不了文件系统;要么在PC端用支持ECC的专用写卡工具,可惜没有找到。
2、用串口下载,这是传统方法,PC端的工具很多,最通用的是超级终端了。
我们选择了超级终端,xmodem协议下载。
代码比较简单,说明见“s3c6410移植日志之x”系列,下载源代码:http://www.djyos.com/download/sdboot6410.zip
- 6410的SD bootloader的实现(都江堰OS)
- STM32 SD bootloader实现
- STM32 SD bootloader实现
- STM32 SD bootloader实现
- 转《都江堰OS简介》
- MSP430F5438A BootLoader的实现
- 国人自己的RTOS——都江堰
- 实现OS中BOOTLOADER过程,并进入保护模式的代码
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- STM32的BootLoader 从SD卡更新固件
- 8051的bootloader实现方式
- 数据库中多对多的关系设计
- Java多线程编程
- delphi 对ini操作
- libxml
- 1.1至100一百个自然数(无序),放入一个99个元素的数组a[99],用java语言编写一段程序,找出没有被放入数组这个数。【转】
- 6410的SD bootloader的实现(都江堰OS)
- 关于initrd.gz
- 在Linux下搭建Red5流媒体服务器
- 病态代码测试--valgrind测试报告
- 稳定的免费空间SiteFrost.com教程
- 吊兰
- 监视TOMCAT 的好工具
- WF 4.0中如何实现工作流版本管理
- Xtreme 界面库编程 细节