盈鹏飞嵌入式--EVB335X-II SPI Flash启动说明
来源:互联网 发布:淘宝卖衣服规则 编辑:程序博客网 时间:2024/06/06 07:26
本文主要描述如何在EVB335X-II上实现从SPI Flash启动系统,包括启动方式的修改,u-boot编译,SPI Flash的烧写。EVB335X-II使用的SPI Flash型号为W25Q32FV,大小为4M-Byte,挂载在SPI0总线上。以下为功能实现步骤。
一 修改核心板启动方式:
根据COM335X核心板设计原理图,从SPI0启动时,SYSBOOT[4:0]应该为11000b。因此,核心板应做以下修改:焊接R9、R8、R15、R14、R13,不焊接R17、R16、R7、R6、R5,如下图所示:
二:编译u-boot
在终端输入以下命令:
$makecom335x_spi_128_config
(注:128是指RAM大小为128M,如果使用的RAm大小为256M或者512M,请将128改为256或者512.)
$makeARCH=arm CROSS_COMPILE=/opt/arm-2010.09/bin/arm-none-linux-gnueabi-
编译完成,在当前目录下生成MLO、MLO.byteswap和u-boot.img文件,在spl目录下生成u-boot-spl.bin文件。其中,MLO.byteswap是烧写到SPI Flash的专用文件。
三:SPI Flash烧写步骤
下载 MLO.byteswap和 u-boot.img 到 SPI Flash 中,可以通过网口、串口、USB 口、SD Card 将上一步骤中编译好的文件下载到 SDRAM中,然后通过运行的 u-boot 将程序烧写到 SPIFlash 中。本文以从串口下载为例进行说明。
1、将调试串口连接到电脑上,打开Windows下的超级终端,设置如下参数:波特率(115200)、数据位(8 位)、停止位(1 位)、校验位(无)、数据流控制(无),如下图所示:
2、给开发板上电,当超级终端打印出“CCCCC”字符后,表示内部ROM工作正常,然后选择超级终端:传送 → 发送文件→ 1K Xmodem,如下图所示:
3、点击→浏览,选择u-boot-spl.bin文件
然后,选择发送,传输u-boot-spl.bin文件
4、传输成功,则u-boot-spl.bin会自动在CPU内部RAM中运行,初始化外部DDR3RAM,并自动引导待下载到DDR3 RAM中的u-boot.bin,如下图所示:
5、 这时会再次出现”CC”字符,此时可以传输u-boot.img文件,
选择:传送 → 发送文件 → Ymodem
6、点击→浏览,选择u-boot.img文件
然后,选择发送,传送u-boot.img文件。注意:此过程可能需要等待50s左右才能开始传输。
7、u-boot.img传输成功后,SPL会自动引导在DDR3 RAM的u-boot
8、在3秒内单击回车键,会出现“U-Boot# ”提示,此时u-boot已经正确烧写到DDR3 RAM中,但还没有烧写到SPI Flash中。接下来我们要通过UART串口将镜像烧到SPI Flash.
9、 在“U-Boot# ”提示下依次输入:
U-Boot# mw.b 0x81000000 0xFF 0x20000 //把内存0x81000000开始的0x20000字节设为0xFF
U-Boot# loadb 0x81000000 //等待从串口下载文件至内存0x81000000处
打开传输协议,选择:传送 → 发送文件 → Kermit
10、点击→浏览,选择MLO.byteswap文件
然后,选择发送,传输MLO.byteswap文件。
11、传输完成后,在“U-Boot# ”提示下依次输入:
U-Boot# sf probe 0 //检测SPI0上的flash是否存在,操作SPI Flash前必须运行一次
U-Boot# sf erase 0 +0x400000 //擦除SPI Flash
U-Boot#sf write 0x81000000 0 ${filesize} //将DDR3中的MLO文件烧写到SPI Flash起始地址为0的区域
此时,MLO已经烧写到SPIFlash中,接下来要将u-boot.img烧写到SPIFlash中。
12、在“U-Boot# ”提示下依次输入:
U-Boot# mw.b 0x81000000 0xFF 0x1e0000
U-Boot# loadb 0x81000000
打开传输协议,选择:传送 → 发送文件 → Kermit
13、点击浏览,选择u-boot.img文件,然后选择发送,传输u-boot.img文件
14、传输完成后,在“U-Boot# ”提示下依次输入:
U-Boot# sfwrite 0x81000000 0x20000 ${filesize}//将DDR3中的MLO文件烧写到SPI Flash起始地址为 0x20000的区域
烧写完成后,重启开发板,系统从SPI Flash启动。
- 盈鹏飞嵌入式--EVB335X-II SPI Flash启动说明
- 嵌入式 uboot修改spi-flash分区示例
- 嵌入式学习--work9 SPI-FLASH 续
- 嵌入式学习--work8 SPI-FLASH(N25Q系列)FLASH
- Xilinx Spartan-6 配置SPI FLASH启动
- C6678的SPI Flash启动失败
- SPI Flash
- SPI-Flash
- Hi3531用SPI FLASH启动 使用Nand做文件系统
- 让sama5d3_xplained支持从spi nor flash启动文件系统
- 总线flash和spi flash
- spi flash 驱动
- spi FLASH 问答
- FLASH读写----SPI
- SPI Flash Parts
- Linux SPI FLASH DRIVER
- spi flash控制驱动
- SPI FLASH 驱动
- 51nod_1005 大数加法
- Linux启动流程以及初始化
- 计数dp
- 奇葩问题
- 人员薪资计算架构
- 盈鹏飞嵌入式--EVB335X-II SPI Flash启动说明
- git使用总结报错解决方法
- The 14th Zhejiang Provincial Collegiate Programming Contest (待续)
- Linux CentOS MySQL 5.7.18 5.7.X安装教程
- 使用spring配合Junit进行单元测试的总结
- http请求 get post 方式
- Linux下passwd和shadow文件
- Android Messenger 简介
- Linux中shell编程需要避免的坑之shell语法篇(四)