OK6410 SD卡一键烧写之我见
来源:互联网 发布:js的this指向 编辑:程序博客网 时间:2024/06/05 09:04
刚拿到飞凌的OK6410,发现与之前2440/2410不同的是,可以通过SD卡一键烧写U-Boot、zImage等。一开始还始终不能下载成功,这里有几个地方需要注意:
1. 在win7下需要以管理员身份运行,再format(这一步必须有,不能使用右键格式化),最后再program;
2. 如果error,重新启动软件,重复上步;
3. 有的人说不能使用电脑自带的SD卡读卡器,必须使用读卡器插在USB口上,但是我已经成功烧写,供大家参考。
4. 还有人说用TF卡加SD卡套不行,也有人证明这是可行的。http://www.nuedc.net.cn/thread-18457-1-1.html
这个功能是如何实现的呢?查阅资料后,有了一些自己的理解,总结如下:
首先,来看下6410的一个启动方式选择。
设置为从SD卡启动,11111000,
上电或复位后,物理地址位于0x80000000的32K IROM被映射都地址0。(BL0)
这段程序是固化在处理器中的,它做一些初始化工作:1. 禁用Watch-dog,2. 初始化TCM,3. 初始化设备拷贝函数,用于拷贝BL1到SteppingStone中,4. 初始化栈区域,5. 初始化PLL,6. 初始化指令Cache,7. 初始化堆区域,8. 拷贝BL1到SteppingStone中,9. 验证BL1,10. 跳转到SteppingStone中运行
从0地址开始运行,该程序初始化后,从SD卡读取SD卡<=8K代码(BL1),写到内部RAM,然后执行这段程序,BL1可以初始化系统时钟,UART,SDRAM等设备,然后拷贝Bootloader2(BL2)到SDRAM中。
跳转到SDRAM中的BL2,继续运行,BL2可以支持更强大的功能,可以将OS加载到SDRAM中,然后运行OS。
因此,我猜测,mmc.bin即BL1和BL2,SD_Write程序将这个写入SD卡的特殊位置,如下。下面user file system是我们可以直接拷入SD卡的,而后面的是看不到的,只有通过软件才能写入。
而飞凌提供的mmc.bin会在初始化之后,自动擦除nandflash,然后从user file system中查找是否存在u-boot.bin zImage cramfs这些文件,一个一个烧写入flash指定地址。这应该是在BL2中实现的。
很多人都对飞凌OK6410配套光盘中mmc.bin非常感兴趣,也许因为它没有开源的原因吧。这里我总结一下我猜测的它的功能。我觉得总的来说相当于一个uboot。
1.初始化后面要用到设备;
2.在1秒内不按键就自动擦除nandflash,从SD卡中读取u-boot.bin,写入nand;从SD卡中读取zImage、cramfs等文件写入nand;
3.如果按键就相当于一个uboot
- OK6410 SD卡一键烧写之我见
- OK6410 SD卡一键烧写之我见
- OK6410 uboot移植之sd启动
- SD卡一键烧写wince串口信息-飞凌OK6410
- 关于ok6410 LED and BEEP驱动程序之我见
- OK6410 SD卡一键烧写WinCE6.0串口输出消息
- OK6410裸机SD卡驱动程序
- 【玩玩飞凌OK6410-B】序列之14:LCD分辨率和SD/MMC卡测试.
- ok6410 sd卡启动 裸机程序
- OK6410之LINUX2.6.39.2之USB-HOST,MMC/SD,GIPO-KEYS,I2C,USB-STORAGE功能实现
- OK6410之PWM使用
- OK6410之ADC驱动程序
- OK6410之裸机led
- OK6410之uboot移植
- OK6410之uboot移植
- OK6410之uboot移植
- linux-3.2.7移植OK6410的SD卡驱动
- 软件测试之我见
- 第一天写博客,希望能够整理出学习的思路
- iPhone,iPad如何获取WIFI名称即SSID
- 深刻理解Java编程的7个例子
- java调用本地程序,两个命令systeminfo,notepad
- C++中stringstream实现C中sprintf与atoi功能
- OK6410 SD卡一键烧写之我见
- 手把手实现企业级开源监控软件cacti+nagios+ntop整合(图解)
- RMAN那些事
- 开始→运行(cmd)命令大全
- hdu 1251 统计难题
- pjsip2.1.0 vidgui客户端注册到asterisk
- Java异常处理综合例子(try、catch、finally、throws、throw) .
- arp
- java笔记