SD卡启动的PowerPC NOR Flash自动烧写方法

合集下载

sd卡烧写原理

sd卡烧写原理

sd卡烧写原理一、概述SD卡是一种常用的存储设备,它具有体积小、容量大、读写速度快等特点,并且可以被广泛应用于各种嵌入式系统中。

为了在嵌入式系统中使用SD卡,需要将系统镜像烧写到SD卡中,这就需要用到SD卡的烧写原理。

本文将详细介绍SD卡烧写原理。

二、SD卡的结构和工作原理1. SD卡的结构SD卡主要由控制器和闪存芯片组成。

其中,控制器负责与主机进行通信,并且管理闪存芯片的读写操作;而闪存芯片则是实际进行数据存储的地方。

2. SD卡的工作原理当主机需要与SD卡进行通信时,首先会向SD卡发送一个命令。

这个命令包含了操作类型、数据地址、数据长度等信息。

接着,控制器会根据命令类型执行相应的操作,并且将结果返回给主机。

具体来说,如果是读操作,则控制器会从闪存芯片中读取相应的数据并发送给主机;如果是写操作,则控制器会将主机发送过来的数据写入到闪存芯片中。

三、 SD 卡烧写原理1. 烧写流程SD卡烧写的流程主要包括以下几个步骤:(1)格式化SD卡首先需要将SD卡进行格式化,以便清除SD卡中的数据,并且为接下来的烧写操作做好准备。

(2)分区接着,需要对SD卡进行分区。

一般情况下,会将SD卡分为两个区域:一个用于存储引导程序和内核镜像,另一个用于存储文件系统。

(3)烧写引导程序和内核镜像在完成分区之后,就可以开始烧写引导程序和内核镜像了。

这里需要将引导程序和内核镜像按照一定的格式写入到相应的分区中去。

(4)烧写文件系统最后,需要将文件系统烧写到SD卡中。

这里同样需要按照一定的格式将文件系统写入到相应的分区中去。

2. 烧写工具为了方便进行SD卡烧写操作,通常会使用一些专门的工具来完成。

这些工具主要包括以下几种:(1)dd命令dd命令是Linux下的一个命令行工具,可以用来复制文件、转换文件格式等操作。

在进行SD卡烧写时,可以使用dd命令将镜像文件直接写入到SD卡中。

(2)Win32DiskImagerWin32DiskImager是一个Windows下的烧写工具,可以用来将镜像文件烧写到SD卡中。

Flash烧写步骤

Flash烧写步骤

Flash程序烧写步骤1、protect off allerase all(如果要同时烧录fpga0、fpga1、vmlinux内核才使用此命令,擦除所有all。

如果只需要更换其中的部分,可单独擦除,如下。

)2、printenv(查看网络连接情况)3、setenv serverip 192.168.11.60(设置电脑地址)4、setenv ipaddr 192.168.11.201(设置UC IP地址)5、saveenv(保存设置)6、setenv ethact octeth1(erase 18080000 180fffff - 如果单独烧写fpga0则使用该命令擦除flash中原fpga0的内容,如果执行了命令“erase all”,则不用执行该命令)7、tftp 20000000 fp0_v200c_0802.app(使用tftp将fpga0从电脑传到UC内存的20000000地址)tftp 20000000 fp0_v200d_20101108.app(软交换)8、cp.b 20000000 0x18080000 0x39998(【1】将刚传到UC内存地址20000000的fpga0拷贝到UC的flash的18080000地址中;【2】注意文件大小正确,此例的大小是0x39998)(erase 19f40000 19ffffff - 如果单独烧写fpga1则使用该命令擦除flash中原fpga1的内容,如果执行了命令“erase all”,则不用执行该命令)9、tftp 20000000 fp1_v2005_0802.app(使用tftp将fpga1从电脑传到UC内存的20000000地址)tftp 20000000 fp1_v2007_20101207.app(软交换)10、cp.b 20000000 0x19f40000 0x39998(【1】将刚传到UC内存地址20000000的fpga1拷贝到UC的flash的18080000地址中;【2】注意文件大小正确,此例的大小是0x39998)(erase 0x18100000 0x186fffff - 如果单独烧写Linux则使用该命令擦除flash中原Linux的内容,如果执行了命令“erase all”,则不用执行该命令)tftp 20000000 vmlinux.64.2011_01_05.gztftp 20000000 vmlinux.64.2011_01_18.gz(1-18最新内核)11、tftp 20000000 vmlinux.64.2011_01_20.gzcp.b 0x20000000 0x18100000 0x598a41(【1】将刚传到UC内存地址20000000的vmlinux.64.gz拷贝到UC的flash的18080000地址中;【2】注意文件大小正确,此例的大小是0x4fcff0)cp.b 0x20000000 0x18100000 0x598a7e(新版本的大小)在其修改了,还是在终端出现错误12、cp.b 0x20000000 0x18100000 0x5cd32113、askenv boot(设置boot参数)Please enter 'boot':gunzip 0x18100000 0x598a41 0x20000000 0xb00000(1-5号的版本)Please enter 'boot':gunzip 0x18100000 0x598a7e 0x20000000 0xb00000(1-18号的版本)14、Please enter 'boot':gunzip 0x18100000 0x5cd321 0x20000000 0xb00000 (1-20号的版本)15、askenv bootcmd(设置boot参数)16、Please enter 'bootcmd':run boot;Init8201;bootoctlinux17、saveenv(保存设置)18、run bootcmd19、在shell终端执行命令:20、~ # ifconfig eth1 up<激活UC网口eth1>21、~ # ifconfig eth1 192.168.11.1 <为UC的eth1网口配置IP地址>------------------------------------------------------------------------------------------------------------------------------------------------- <<smba挂载>>将保存到tftp里的tables.dat文件导入:zlj<共享文件名称>,192.168.11.30<PC的IP地址> ————————————————————————————————————————~ # mount -t cifs -o username=ZhangLiJun,passwd='zhanglijun' //192.168.11.30/today /mnt~ # cd /mnt/mnt # lsPromptTone.tar rc.local tables.datdis.tar.gz simple.script uscmacippbx.tar.gz system.conf wm.tar.gz/mnt # cp tables.dat /disk/ (copy tables.dat) ----cp * /disk(copy all file)/mnt # lsPromptTone.tar rc.local tables.datdis.tar.gz simple.script uscmacippbx.tar.gz system.conf wm.tar.gz/mnt # cd /disk//disk # lsPromptTone.tar rc.local tables.datdis.tar.gz simple.script uscmacippbx.tar.gz system.conf wm.tar.gz/disk # chmod 777 */disk # lsPromptTone.tar rc.local tables.datdis.tar.gz simple.script uscmacippbx.tar.gz system.conf wm.tar.gz ————————————————————————————————————————HTTP工具wget 网址-------------------------------------------------------------------------------------------------------------------------------------------------22、~ # cd /disk/<打开UC中的目标目录文件夹>23、/disk # tftp -g -r ippbx.tar.gz 192.168.11.60<-g:代表的文件传输方向是从源PC(192.168.11.60)到目的UC(192.168.11.1)> <加载ippbx.tar.gz>24、/disk # tftp -g -r rc.local 192.168.11.60 <加载rc.local >25、/disk # tftp -g -r system.conf 192.168.11.60 <加载rc. system.conf >26、tftp -g -r dis.tar.gz 192.168.11.6027、tftp -g -r PromptTone.tar 192.168.11.6028、tftp -g -r simple.script 192.168.11.6029、tftp -g -r uscmac 192.168.11.6030、tftp -g -r wm.tar.gz 192.168.11.6031、chmod a+rwx *32、chmod 777 * (注意一定要更改权限:UC软件包中的文件都下载完后,重启系统,使下载的文件生效)33、/disk # reboot <软重启>直接掉电重启AX配置说明对AX的配置,只需要根据具体需求,更改AX的IP地址。

FLASH烧写的步骤

FLASH烧写的步骤

FLASH烧写的步骤烧写FLASH是指将信息写入或擦除闪存芯片中的非易失性存储器。

在嵌入式系统中,通过烧写FLASH可以更新设备的固件或配置,以及存储和读取数据。

本文将介绍烧写FLASH的步骤。

1.准备工作:在进行烧写FLASH之前,首先需要准备好以下内容:-硬件平台:包括计算机或开发板、支持FLASH编程的烧写器等。

- 烧写软件:可根据实际需求选择合适的烧写软件,如Flash Magic、ST-Link Utility等。

-目标设备:需要烧写FLASH的设备,如单片机、嵌入式系统等。

-目标固件或数据:即要写入FLASH的固件或数据文件。

2.连接烧写器和目标设备:将烧写器与目标设备进行适当的连接。

通常情况下,烧写器通过USB接口连接到计算机,而目标设备则通过JTAG、SWD或SPI等接口连接到烧写器。

3.配置烧写软件:打开选择的烧写软件,并进行相应的配置。

首先,选择正确的硬件接口类型,例如JTAG、SWD或SPI。

然后,设置通信的参数,如波特率、时钟频率等。

最后,选择目标FLASH芯片的型号和存储器的起始地址。

4.擦除FLASH:在对FLASH进行写入操作之前,需要先擦除FLASH存储器。

擦除操作将清除存储器中的所有数据,包括原来的固件。

在烧写软件中,通常提供了擦除整个FLASH或指定范围的选项。

选择适当的选项后,点击擦除按钮,烧写软件将发送相应的命令到烧写器,进而擦除目标FLASH芯片中的数据。

5.写入FLASH:在完成擦除操作后,可以开始写入固件或数据到FLASH芯片中。

首先,选择要写入的固件或数据文件,并将其加载到烧写软件中。

然后,设置写入FLASH的起始地址和偏移量。

最后,点击写入按钮,烧写软件将发送相应的命令到烧写器,将数据写入FLASH存储器。

6.验证FLASH:在写入操作完成后,建议对FLASH芯片进行验证,以确保数据的正确性。

验证操作将读取FLASH存储器中的数据,并与写入的固件或数据进行比较。

基于SD卡自动烧写方法

基于SD卡自动烧写方法

3) 对 SD 卡分好区之后,双击
。选择正确的盘
符。
4)先点击 Brows 浏览到已经编译好的 uboot,然后点击 START。完成之后退 出该程序。
本手册版权归属广州粤嵌通信科技股份有限公司(以下简称“粤嵌” )所有,并保留一切权利。
对于 SD 卡里面镜像的名字需要遵循下面的命名规则, 否则如果通过 SD 卡的 方式进行烧写的话会失败, 在 SD 卡的根目录下面建立一个 GEC210 的目录,并且 将这些镜像保存到这个 GEC210 目录内,才能正常烧写。 uboot 分区镜像名字: u-boot.bin linux 内核分区镜像名字:zImage linux 文件系统分区镜像名字:system.img 此外,uboot 烧写时,nandflash 分区如下 { .name .start .length .flags }, { .name .start = "recovery", = 0x100000, // 5M = "uboot", = 0x0, = 0x100000, =0 // 1M
本手册版权归属广州粤嵌通信科技股份有限公司(以下简称“粤嵌” )所有,并保留一切权利。
.start .length .flags }
= 0xCC00000, = 0,
// 204 M
= FASTBOOT_PTENTRY_FLAGS_WRITE_YAFFS
本手册版权归属广州粤嵌通信科技股份有限公司(以下简称“粤嵌” )所有,并保留一切权利。
再选择装载
系统会给我们新建的这个盘分一个盘符,点击确定即可
本手册版权归属广州粤嵌通信科技股份有限公司(以下简称“粤嵌” )所有,并保留一切权利。
对我们的 SD 卡分区好之后,点击应用点击确定,就可以对我们的 SD 卡进 行分区,建立分区表信息。

norflash读写操作

norflash读写操作

NOR FLASH 烧写指南TWENTYONE对于硬件工程师和嵌入式软件工程师,在完成设计后,常常需要验证FLASH是否工作。

在应用中,也有很多时候需要对FLASH进行写操作。

这篇文章简单介绍了基于ARM芯片的NOR FLASH烧写,并提供了2个具体的实例和源代码,希望对有需要的朋友有点帮助。

在开始之前,先声明一下,这篇文章只是介绍了如何写NOR FLASH的烧写驱动,和H-JTAG/H-FLASHER没有直接的联系。

在后面的介绍里,如无特别说明,处理器指的是ARM处理器,FLASH指的都是NOR FLASH。

另外,BYTE指的是8-BIT的数据单元,HALF-WORD代表的是16-BIT的数据单元,而WORD则代表了32-BIT的数据单元。

1. NOR FLASH的简单介绍FLASH是很常见的一种存储芯片,数据掉电不会丢失。

NOR FLASH支持Execute On Chip,即程序可以直接在 NORFLASH片内执行。

这点和NAND FLASH不一样。

因此,在嵌入是系统中,NOR FLASH很适合作为启动程序的存储介质。

NOR FLASH的读取和RAM很类似,但不可以直接进行写操作。

对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。

从支持的最小访问单元来看,NOR FLASH一般分为8位的和16位的(当然,也有很多NOR FLASH芯片同时支持8位模式和是16位模式,具体的工作模式通过特定的管脚进行选择)。

对8位的NOR FLASH芯片,或是工作在8-BIT模式的芯片来说,一个地址对应一个BYTE(8-BIT)的数据。

例如一块8-BIT的NOR FLASH,假设容量为4个BYTE。

那芯片应该有8个数据信号D7-D0和2个地址信号,A1-A0。

地址0x0对应第0个BYTE,地址0x1对应于第1BYTE,地址0x2对应于第2个BYTE,而地址0x3则对应于第3个BYTE。

Jlink烧写NORFLASH

Jlink烧写NORFLASH

JLINK烧写友善之臂mini2440/micro2440的norflash
一、准备工作
1、USB线连接JLINK V8;
2、将JLINK上的JTAG线连接到mini2440/micro2440开发板;
3、将mini2440/micro2440开发板的启动模式(开关S2)切
换到norflash启动模式;
4、打开电源开关。

二、烧写步骤如下
1、打开J-FLASH ARM软件,
2、打开工程文件File->open project…
3、把工程装载进去,芯片型号是S29AL016M,打开对应的工程文件JLINK V8 S3C2440_s29al016m.jflash。

(如果使用的芯片型号是SST39VF1601,打开JLINK V8 S3C2440_sst39vf1601.jflash)
工程文件打开后,看到flash型号、ID 4、装入数据文件单击File->Open data files ,如图:
选择supervivi1026-128M文件,这个是最新的引导程序
设置烧写起始地址为:0
5、单击菜单Target->Connet,连接开发板
初始化CPU,FLASH的型号和ID,提示连接成功
初始化CPU成功,找到
CPU ID 和flash ID
连接成功
六、单击Target->Auto,开始烧写norflash
烧写进程
大概7秒左右就可以烧写完成。

恭喜已经烧写成功。

norflash烧写

norflash烧写
6、烧写完成之后,使用cp 22000000 10000000 xx将boot复制到flash中。
7、接下来就可以使用我们的烧写工具进行其他文件的烧写了。也可以使用超级终端继续烧写。步骤如下;
在3150启动前向3150用十六进制方式发送如下数据,可以进入boot命令行。
63 61 69 6d 6f 72 65 64 74 75 62 6f 6f 74 03 03 03 03 03 03 03 03 03 03
烧写应用程序
同上,使用loady 21000000命令,然后将app文件传入。完成后输入指令wtapp,则会自动擦除并烧写app到指定地址处。
即可完成norflash烧写
cp.b 22000000 10000000 1bb20
tftp 22000000 CAIMORE-ROUTER-LOADER-V20.bin
厦门才茂内部启动9200开发板的步骤(需要关狗)
1、将调试串口旁边的帽子罩住里面那一排靠232方向的两个引脚;
烧写内核
进入boot命令行后,使用loady 21000000 命令,接收uImage内核文件,然后用ymodem方式将uImage发送给DTU。完成后输入指令wtkn,则会自动擦除并烧写内核到10020000地址处。
烧写文件系统
wtfs,则会自动擦除并烧写文件系统到指定地址处。
3.以上步骤完成后,串口输出CCCC...,再利用Xmodem发送 u-boot.bin
4.启动uboot后,loadb 22000000,使用超级终端传送 at91sam9x5ek-flashboot-3.1.bin,cp.b 22000000 10000000 c20
5.loadb 22000000,使用超级终端传送 u-boot.bin,cp.b 22000000 10010000 1aee4

04_SEP4020启动代码与NorFlash烧写

04_SEP4020启动代码与NorFlash烧写

3
SEP4020启动方式介绍 启动方式介绍
SEP4020启动方式 启动方式
SystemSetup[2:0] 000: NOR启动 001: NAND启动 3级地址,512byte 010: NAND 4级地址 512byte 011: NAND 4级地址 2Kbyte 100: NAND 5级地址 2Kbyte
7
步骤二:编写 步骤二:编写BootLoader
需求分析:
1,初始化硬件:PMU,EMI等 2,搬运Image到目的地址(如:ESRAM,SDRAM等) 3,强制PC跳转
Copyright 2007 ARMFANS. All Rights Reserved. Not to be reproduced by any means without prior written consent.
Copyright 2007 ARMFANS. All Rights Reserved. Not to be reproduced by any means without prior written consent.
15
烧写演示
第三步:测试NorFlash连接
Tatget->Connect 如果状态栏提示连接成功,则可以进行下一步
Copyright 2007 ARMFANS. All Rights Reserved. Not to be reproduced by any means without prior written consent.
2
SEP4020地址空间分配 地址空间分配
CSF MAC CSE (SDRAM) LCDC DMA
Copyright 2007 ARMFANS. All Rights Reserved. Not to be reproduced by any means without prior written consent.

PowerPC从NorFlash启动的过程

PowerPC从NorFlash启动的过程
详细的初始化流程: 首先在 boot/cup/mpc85xx/start.S 中,运行到了 bl cpu_init_early_f 跳转到 boot/cup/mpc85xx/cpu_init_early.c cpu_init_early_f()函数。在这个函数中设置了 PPC 的 CCSR 寄存器的访问 空间(此时 PPC 的大多数 寄存器都 可以访问 了)。 然后依旧 在这个函数 (cpu_init_early_f())中跳转到了 init_tlbs();在这个函数中初始化了 PPC 的大部分内核的访 问空间(TLB)。此时 e500 内核可以访问 NorFlash 所在的地址空间了,但是他在道理上依旧 应该是无法访问 Norflash(但是我们现在就是在 NorFlash 中启动啊,怎么能说是不能访问呢? 这个问题请查阅本文第二小节,PPC 从 NorFlash 启动的秘密)。 然后程序在 boot/cup/mpc85xx/start.S 中继续执行,执行到了 bl cpu_init_f 跳转 到了 boot/cup/mpc85xx/cpu_init.c,在这个函数中,程序配置了 BR0,OR0 寄存器。从这个 时候开始,NorFlash 已经可以按照配置的内容,正常使用了。附 1 小节,列出两段代码,来 帮助理解内核访问的地址空间和 LocalBus 的配置。 (2)第二段相关的代码———Flash 的初始化 现在我们的程序应该已经跑到了 u-boot 的 board_init_r()函数中。然后执行到了 flash_init()(这个函数的返回值是 flash 的大小)。在这个函数中,得到了 Flash 的大小。 (3)第三段相关的代码———Flash 的读写擦操作 这部分内容就是 NorFlash 的驱动程序。能看懂这篇文章的想必都熟的不能再熟了, 就不再赘述了。

NOR Flash读写原理及驱动

NOR Flash读写原理及驱动

NOR Flash读写原理及驱动本文主要是关于NOR Flash的相关介绍,并着重对NOR Flash读写原理及驱动进行了详尽的阐述。

NOR FlashNOR Flash是现在市场上两种主要的非易失闪存技术之一。

Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。

紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。

NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。

NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。

NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。

应用NAND的困难在于Flash的管理需要特殊的系统接口。

通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。

——《ARM嵌入式Linux系统开发从入门到精通》李亚峰欧文盛等编著清华大学出版社P52 注释API Key性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。

任何flash 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。

NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。

NORFLASH烧写指南

NORFLASH烧写指南

NORFLASH烧写指南NOR FLASH 烧写指南TWENTYONE对于硬件工程师和嵌入式软件工程师,在完成设计后,常常需要验证FLASH是否工作。

在应用中,也有很多时候需要对FLASH进行写操作。

这篇文章简单介绍了基于ARM芯片的NOR FLASH烧写,并提供了2个具体的实例和源代码,希望对有需要的朋友有点帮助。

在开始之前,先声明一下,这篇文章只是介绍了如何写NOR FLASH的烧写驱动,和H-JTAG/H-FLASHER没有直接的联系。

在后面的介绍里,如无特别说明,处理器指的是ARM处理器,FLASH指的都是NOR FLASH。

另外,BYTE指的是8-BIT的数据单元,HALF-WORD代表的是16-BIT的数据单元,而WORD则代表了32-BIT的数据单元。

1. NOR FLASH的简单介绍FLASH是很常见的一种存储芯片,数据掉电不会丢失。

NOR FLASH支持Execute On Chip,即程序可以直接在 NOR FLASH片内执行。

这点和NAND FLASH不一样。

因此,在嵌入是系统中,NOR FLASH很适合作为启动程序的存储介质。

NOR FLASH的读取和RAM很类似,但不可以直接进行写操作。

对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。

从支持的最小访问单元来看,NOR FLASH一般分为8位的和16位的(当然,也有很多NOR FLASH芯片同时支持8位模式和是16位模式,具体的工作模式通过特定的管脚进行选择)。

对8位的NOR FLASH芯片,或是工作在8-BIT模式的芯片来说,一个地址对应一个BYTE(8-BIT)的数据。

例如一块8-BIT的NOR FLASH,假设容量为4个BYTE。

那芯片应该有8个数据信号D7-D0和2个地址信号,A1-A0。

地址0x0对应第0个BYTE,地址0x1对应于第1BYTE,地址0x2对应于第2个BYTE,而地址0x3则对应于第3个BYTE。

FLASH烧录程序说明

FLASH烧录程序说明

NOR FLASH烧录程序说明本文主要介绍怎样使用nor flash烧录程序来烧录代码到nor flash 中,烧录的目标程序是bootloader.dat(启动代码)和asixos.axf(系统代码)。

调试软件的环境是ARM Developer Suit v1.2。

在路径burn kernel or mp3\A FLASH DOWNLOAD\FLASH DOWNLOAD\下打开工程文件FLASH DOWNLOAD.mcp。

打开main.c文件,可以看见烧录代码主程序如下图图1 烧录主程序图中第一步temp = NorFlash_unlock(0x20000000 )为FLASH解锁,如果FLASH的状态为“关”状态,则无法对NOR FLASH进行操作;第二步是擦除NOR FLASH,FLASH只有在擦除之后才能进行写操作。

其擦除是以块为单位,现在Garfield开发板的擦除块大小为ERASESIZE(=0x40000)。

第三步便是加载bootloader到内存中,然后将bootloader从内存中烧录到NOR FLASH中;其中,bootloader放在内存中地址为0x31000000,将其烧录到NOR FLASH地址为0x20000000,大小为0x400;第四步的方法与第三步相同,只是内容不同,是将aisxos.axf加载到内存中,然后将aisxos.axf从内存中烧录到NOR FLASH中;其中,aisxos.axf放在内存中地址为0x31000000,将其烧录到NOR FLASH地址为0x20001000,大小为0x140000。

第五步则是将NOR FLASH置为NORMAL状态,这样可以像访问内存一样访问NOR FLASH。

烧录步骤如下:1. 在ARM AXD窗口点击“File”菜单,如下图所示;图2 Load Memory From File 菜单2. 选择“Load Memory From File…”,将出现下面的对话筐:图3 Load Memory From File 菜单对话框选择所要烧录的文件,即bootload.dat文件或者asixos.axf文件,然后在Address 栏中填入所需的地址(本例中必须填写为0x31000000),最后按“打开”。

flash的烧写

flash的烧写

一、环境搭建1.将开发板用网线接到路由器上(目的是为了开发板能够与pc机在同一个网段上,方便tftp传输)。

2.打开网上邻居->查看网络连接,右击打叉的网卡,如下图:(设置pc机的ip与开发板在通一个网段)3.在打开的对话框中选TCP/IP属性,设置网络地址。

下图中的IP地址可以自由设定,子网掩码同图中保持一致。

4.选择一个工作目录,新建一个文件夹,文件名为tftp(也可自己定义),将u-boot.bin文件、zImage文件等,拷贝到该目录。

5.解压tftpd32.400.zip,打开tftpd32.exe软件,设置文件夹位置和IP地址,如下图所示:6.将开发板用串口同PC串口相连,打开SecureCRT,新建一个串口连接,连接的设置如下:7.开发板接上电源,打开电源开关,在串口终端中可以看到以下内容:二、制作镜像文件(制作版本)1、进入ipc的后台执行如下命令:生成u-boot.bin:cat /dev/mtdblock0 > u-boot.bin生成uImage:cat /dev/mtdblock1 > uImage生成rootfs.img:cat /dev/mtdblock2 > rootfs.img生成config.bin:cat /dev/mtdblock3 > config.bin上面的命令要正确的执行首先得确保分区是存在的,而且分区里面都已烧写了对应的文件。

分区的创建:(参考)Creating 5 MTD partitions on "hi_sfc":mtdbloc0 0x000000000000-0x000000100000 : "boot"mtdbloc1 0x000000100000-0x0000003e0000 : "kernel"mtdbloc2 0x0000003e0000-0x000000dc0000 : "rootfs"mtdbloc3 0x000000dc0000-0x000000f00000 : "config"mtdbloc4 0x000000f00000-0x000000f10000 : "key"三、进入u_boot烧写nand flash1、启动ipc,在u_boot启动完成后,按任意键进入u_boot命令模式。

FLASH烧写的步骤

FLASH烧写的步骤

FLASH烧写的步骤大概如下
1、安装FLASH插件,CCS3.1版本的对应的插件版本(FLASH2X
for CCS3.1.EXE)要在1.12以上,否则不能烧写FLASH,安装完毕后,在CCS3.1的TOOLS工具中多一条F28XX on ship flash programmer。

2、将FLASH.CMD文件代替SRAM.CMD文件,编译程序后生成
“xx.OUT”文件。

3、点击TOOLS->F28XX on ship flash programmer,点击版面上的
“flash programmer Settings”后弹出一个对话框,点击BROWSE 按钮,选择弹出对话框中的文件:“FlashAPIInterface2812V2_10.out”,接着点击“OK”按钮。

注意改版面不要轻易修改任何参数,否则会造成DSP芯片死锁报废!不需要设时钟或者空间!!!
4、返回上一层界面后点击“Execute Operation”,DSP开始擦写
FLASH,在擦写过程中,禁止碰动DSP板子,防止出现烧写问题。

烧写完成后信息栏出现:
Erase/Program/V erify Operation succeeded
**** End Erase/Program/V erify Operation. ***
Device reset detected. Updating locked or unlocked
state of target in Flash Programmer.
The device is unlocked.
大功告成。

SD卡直接引导的NANDFlash烧写方法

SD卡直接引导的NANDFlash烧写方法

SD卡直接引导的NANDFlash烧写方法韩晓峰;黄建国;刘洪伟;王金秀;肖仁春;王伟华【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2016(16)4【摘要】A NAND Flash programming method without download device or emulator is introduced ,which boots bare embedded system based onS3C6410 directly using SD card .The detailed principle and implementation process are also introduced .This method has lower requirements for software and hardware ,and meanwhile reduces the developing environment requirement of S3C6410 .The method gives a new idea forthe similar embedded system development .%介绍一种无需下载器或仿真器,可直接采用 SD卡引导基于S3C6410微控制器的裸机嵌入式系统并可烧写NAND Flash的方法,给出了具体原理和实现过程。

该方法对开发软硬件要求较低,降低了S3C6410开发环境要求,为类似的嵌入式系统开发提供了新的思路。

【总页数】3页(P43-45)【作者】韩晓峰;黄建国;刘洪伟;王金秀;肖仁春;王伟华【作者单位】61741部队,北京100094;61741部队,北京100094;61741部队,北京100094;61741部队,北京100094;61741部队,北京100094;61741部队,北京100094【正文语种】中文【中图分类】TP13【相关文献】1.TMS320C54X DSP在线烧写FLASH存储器并实现自举引导的方法 [J], 奉华成;白净2.TMS320C6713 DSP的FLASH自引导及一种另类的烧写方法 [J], 张亮;刘延海3.基于CCS的DSP片外Flash直接烧写设计 [J], 孙秋生;陈尚峰4.基于NandFlash存储器的嵌入式系统启动引导程序设计 [J], 吴健;张华;胡天链;王姮5.SD卡启动的PowerPC NOR Flash自动烧写方法 [J], 张佃青; 郑青青; 郭雷; 詹雄; 杨立因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

46M i c r o c o n t r o l l e r s &E m b e d d e d S y s t e m s 2019年第10期w w w .m e s n e t .c o m .c nS D 卡启动的P o w e r P C N O R F l a s h 自动烧写方法张佃青,郑青青,郭雷,詹雄,杨立(南瑞集团中电普瑞科技有限公司,北京102200)摘要:提出了一种基于S D 卡启动方式的P o w e r P C N O R F l a s h 自动烧写的方法,该方法通过S D 卡启动,读取存储在S D卡中的N O R F l a s h 烧写镜像,实现将烧写镜像自动烧写到F l a s h 芯片中㊂该方法省去了以往嵌入式P o w e r P C F l a s h 芯片首次烧写u b o o t 必需的专用烧写器㊂实际工程应用及测试结果表明,该方法运行稳定可靠,可大幅度提高生产烧写效率,具有较高的工程应用价值㊂关键词:S D 卡;P o w e r P C ;N O R F l a s h ;自动烧写中图分类号:T P 368 文献标识码:AA u t o F l a s h -b u r n i n g M e t h o d f o r P o w e r P C N O R F l a s hB a s e d o n S DC a r d B o o t i n g-m o d e Z h a n g D i a n q i n g ,Z h e n g Q i n g q i n g ,G u o L e i ,Z h a n X i o n g ,Y a n g Li (N A R I G r o u p C o r p o r a t i o n ,C h i n a E P R I S c i e n c e &T e c h n o l o g y C o .,L t d .,B e i j i n g 102200,C h i n a )A b s t r a c t :I n t h e p a p e r ,a m e t h o d f o r P o w e r P C N O R F l a s h a u t o f l a s h -b u r n i n g b a s e d o n S D c a r d b o o t i n g-m o d e i s p r e s e n t e d .T h e m e t h o d b o o t s w i t h S D c a r d ,r e a d s t h e N O R F l a s h b u r n i n g i m a g e s t o r e d i n S D c a r d ,a n d a u t o m a t i c a l l y w r i t e s t h e b u r n i n g i m a g e t o F l a s h c h i p.T h i s m e t h o d r e m o v e s t h e s p e c i a l -p u r p o s e f l a s h -b u r n e r w h i c h i s n e c e s s a r y to b u r n u b o o t f o r t h e f i r s t t i m e i n e m b e d d e d P o w e r P C F l a s h c h i p .T h e p r a c t i c a l e n g i n e e r i n g a p p l i c a t i o n a n d t e s t r e s u l t s s h o w t h a t t h e m e t h o d i s s t a b l e a n d r e l i a b l e ,a n d c a n g r e a t l y i m pr o v e t h e b u r n -i n g e f f i c i e n c y o f p r o d u c t i o n .I t h a s h i g h e n g i n e e r i n g a p pl i c a t i o n v a l u e .K e y wo r d s :S D c a r d ;P o w e r P C ;N O R F l a s h ;a u t o f l a s h -b u r n i n g 引 言在嵌入式系统应用领域,N O R F l a s h 作为一种非易失存储芯片,由于地址线和数据线分开,可供C P U 直接寻址,可在F l a s h 芯片上直接执行启动程序,无需将启动程序复制到内存中,因此N O R F l a s h 芯片被广泛用作A R M ㊁P o w e r P C 等嵌入式处理器芯片的系统启动芯片㊂目前,在嵌入式系统板卡开发中,一般先将u b o o t 引导程序烧入N O R F l a s h ,之后可在u b o o t 下通过T F T P 方式更新u b o o t 或烧写k e r n e l 内核㊁r o o t f s 根文件系统㊂目前u b o o t 烧写方法主要有以下几种:①使用专用仿真器,如J l i n k ㊁T r a c e 32等,利用板卡J T A G 口烧写到N O R F l a s h中;②使用以太网T F T P 工具,通过串口㊁C A N 总线[1]或V X I 总线[3]在u b o o t 中人工输入烧写命令更新N O RF l a s h 芯片程序;③使用专用烧录器,将N O R F l a s h 芯片烧写完成后,再焊接到板卡上或插到封装座上㊂第一种和第二种烧写方法较为常见,适用于N O RF l a s h 芯片已经焊接到板卡上,但第一种方法需要专用烧写器,而且T r a c e 32等烧写器价格较高;第二种方法只需要网线和串口线,但必须要求烧写前N O R F l a s h 芯片已通过专用烧写器烧写完u b o o t ,不适合初次烧写u b o o t;第三种方法适合大批量生产,但需要额外的烧录器,专用烧录器价格也比较高㊂以上三种方法烧写N O R F l a s h 时均需要人工操作仿真器㊁烧录器或手动输入串口命令,且操作过程相对复杂㊂参考文献[2]提出了利用S D 卡烧写A R M 芯片N A N D F l a s h 的方法,和P o w e r P C 的N O RF l a s h 烧写工具及命令存在较大差异,且要明确S D 卡中扇区大小,不便操作㊂本文利用飞思卡尔(现已被N X P 收购)P o w e r P C 处理器芯片S D 卡启动方式,将S D 卡设置启动区和数据存储区㊂将N O R F l a s h 启动用u b o o t 引导程序㊁L i n u x k e r -n e l 内核㊁r o o t f s 根文件系统㊁d t b 设备树文件存放到S D 卡数据存储区分区中㊂S D 卡启动区写入S D 卡启动专用u b o o t ,并在该u b o o t 中设置自动烧写命令,P o w e r P C 从S D 卡启动时,自动执行N O R F l a s h 烧写命令,无需专用烧写器,无需人工输入烧写命令,可大幅度提高生产烧写效率,适用于首次烧写u b o o t ㊁更新u b o o t ㊁烧写内核及文件系统等镜像,且无需指定S D 卡扇区,使用简单方便㊂敬请登录网站在线投稿 2019年第10期471 P o w e r P C N O R F l a s h 烧写系统硬件架构P o w e r P C N O R F l a s h 烧写系统硬件总体框图如图1所示㊂系统包括P o w e r P C 模块㊁N O R F l a s h 模块和S D卡图1 Po w e r P C N O R F l a s h 烧写系统硬件总体框图模块,其中P o w e r P C 模块可选择两种启动方式,分别为N O R F l a s h 启动和S D 卡启动,采用跳线方式选择;N O RF l a s h 模块为N O R F l a s h 芯片部分,接到P o w e r P C L o -c a l B u s 总线,用于N O RF l a s h 启动;S D 卡模块为S D 卡电路部分,用于S D 卡启动和存储u b o o t 等数据㊂2 P o w e r P C N O R F l a s h 烧写系统设计2.1 硬件设计P o w e r P C N O R F l a s h 烧写系统硬件如图2所示㊂图2 P o w e r P C N O R F l a s h 烧写系统硬件选用飞思卡尔公司的P 1020作为处理器,该芯片是专用的网络通信处理芯片,双核,每核时钟最高频率各为800MH z [6]㊂通过内部D D R 2控制器外扩D D R 2存储器,为程序运行和数据动态处理提供存储空间,其型号为M T 47H 64M 16H R 3I T E ,容量为64M B ˑ32位,速度为667MH z ;通过e S D H C 接口外扩S D 卡,为应用程序㊁大量数据存储提供空间,其型号为S a n D i s k 03S D S D A A008G ,容量为8G B ;通过L o c a l B u s 局部总线外扩N O RF l a s h 存储器,用来存储u b o o t ㊁内核㊁设备树㊁文件系统(存储应用程序)等,其型号为S 29G L 01G P 12T F I 01,容量为64M B ˑ16位,同时通过该局部总线与F P G A 通信;通过e T S E C 接口外扩以太网P H Y 芯片,实现对外通信㊂2.2 启动用S D 卡设计P o w e r P C 启动S D 卡主要实现如下功能:①S D 卡启动专用u b o o t 引导P o w e r P C 从S D 卡中启动;②专用u b o o t 启动系统后,从S D 卡中读取需烧入N O R F l a s h 的u b o o t㊁内核㊁文件系统等烧写镜像;③专用u b o o t 自动执行上述镜像的烧写命令,直至完成烧写㊂启动S D 卡的制作步骤如下:①配置S D 卡启动专用u b o o t ,本系统采用2009.11版本,生成b i n 文件时,配置为S D 启动;②修改D D R 配置d a t 文件,设置D D R 速率为667M T /s;③在u b u n t u 12.04系统中,格式化S D 卡,第一分区文件格式为F A T 32,并将文件系统标识选为b o o t a b l e 可启动;④将烧入N O R F l a s h 的u b o o t ㊁内核㊁文件系统等烧写镜像拷贝到S D 卡中第一分区;⑤在u b u n t u 12.04系统中,使用b o o t _f o r m a t _s d k 工具,通过如下命令将S D 卡启动专用u b o o t 写入S D 卡中:./b o o t _f o r m a t _s d k c o n f i g _sr a m _p 1020_667M.d a t u -b o o t .b i n -s d /d e v /s d b至此完成启动S D 卡制作㊂2.3 N O R F l a s h 分区设计N O R F l a s h 容量为128M B ,为文件系统设置112M B 分区大小,剩余空间6M B 大小,u b o o t 固定大小512K B ,设备树约13K B ,L i n u x 内核大小约3.1M B ㊂N O R F l a s h分区如表1所列㊂表1 N O R F l a s h 分区文件名称文件大小分配空间分配地址u b o o t固定512K B 512K B e f f 80000~e f f f f f f f l i n u x 内核约3.1M B 4M B e f 100000~e f 4f f f f f设备树约13K B1M Be f 000000~e f 0f f f f f文件系统固定112M B112M Be 8000000~e ef f f f f f3 P o w e r P C N O R F l a s h 烧写流程烧写N O R F l a s h 前,应先将P o w e r P C 启动方式选择跳线设置为S D 卡启动,P o w e r P C N O R F l a s h 烧写流程如图3所示㊂烧写具体流程如下:①首先板卡P o w e r P C 上电后,先判断启动方式配置引脚电平状态,确定是S D 卡启动还是F l a s h 启动;②确定S D 卡启动方式后,先从S D 卡启动区将S D专用u b o o t 引导程序4K B 代码段拷贝至P o w e r P C 内部S R AM 运行,完成时钟㊁D D R 内存㊁F l a s h 初始化,之后将u b o o t 剩余代码拷贝到D D R 中运行;③S D 专用u b o o t 引导程序中执行已预设自动烧写命令,烧写前先从S D 卡数据区读取u b o o t㊁内核㊁文件系统等烧写镜像,之后执行F l a s h 烧写至完成㊂以下为具体烧48M i c r o c o n t r o l l e r s &E m b e d d e d S ys t e m s 2019年第10期w w w .m e s n e t .c o m .c n图3 P o w e r P C N O R F l a s h 烧写流程写命令:烧写u b o o t :f a t l o a d mm c 0:11000000/u b o o t .b i n ;p r o t e c t o f f a l l ;e r a s e e f f 80000e f f f f f f f ;c p.b 1000000e f f 80000$f i l e s i z e 烧写内核:f a t l o a d mm c 0:11000000/u I m ag e ;e r a s e e f 100000e f 4f f f f f ;c p.b 1000000e f 100000$f i l e s i z e ;i m i e f 100000烧写设备树文件:f a t l o a d mm c 0:11000000/p1020r d b .d t b ;e r a s e e f 000000e f 0f f f f f ;c p.b 1000000e f 000000$f i l e s i z e 烧写文件系统:f a t l o a d mm c 0:11000000/r o o t f s _n o r .jf f s 2;e r a s e e 8000000e e f -f f f f f ;c p.b 1000000e 8000000$f i l e s i z e 每个烧写镜像烧写完成后,系统会进行结果校验,校验结果可通过串口等方式输出㊂考虑存在只烧写个别文件的情况,u b o o t 启动时预设10s 启动等待时间,在此期间,可通过串口按下电脑任意键中止自动烧写,通过手动输入烧写命令的方式完成个别文件的灵活烧写㊂4 系统测试在配置P o w e r P C P 1020通信管理插件上进行N O RF l a s h 烧写测试,并在电力系统串补㊁S V C ㊁直流融冰等多个工程项目数百块通信管理插件验证㊂烧写过程如图4所示㊂测试结果表明,基于S D 卡启动的P o w e r P C N O RF l a s h 烧写方法功能正常㊂S D 启动烧写完成后,P o w e r P C 设置为N O R F l a s h 启动后即可㊂结 语本文实现了基于S D 卡启动方式的P o w e r P C N O R F l a sh图4 P o w e r P C N O R F l a s h 烧写过程信息自动烧写的方法,已在电力系统串补㊁S V C 等多个产品的通信管理插件上成功运用㊂该方法省去了以往嵌入式P o w e r -P C F l a s h 芯片首次烧写u b o o t 必需的专用烧写器,同时实现了上电自动烧写,无需人工输入烧写命令,可大幅度提高生产烧写效率,具有较高的工程应用价值㊂参考文献[1]龚行梁,周强,赵天恩,等.C A N 总线实现的Z Y N Q 7000程序在线升级方法[J ].单片机与嵌入式系统应用,2018,18(11):6366.[2]韩晓峰,黄建国,刘洪伟,等.S D 卡直接引导的N A N D F l a s h 烧写方法[J ].单片机与嵌入式系统应用,2016,16(4):4345.[3]卢媛,张梅菊.一种在线烧写F l a s h 的方法研究与实现[J ].电子设计应用,2004(4):6061.[4]F r e e s c a l e .P 1020Q o r I Q I n t e gr a t e d P r o c e s s o r R e f e r e n c e M a n -u a l ,2013.[5]S P A N S I O N.G L S M i r r o r B i t E c l i ps e F l a s h N o n V o l a t i l e M e m o r y F a m i l y,2012.[6]F r e e s c a l e .A N 3659B o o t i n g f r o m O n C h i p ROM (e S D H C o r e S P I ),2012.张佃青(高级工程师),主要研究方向为电力电子及柔性交直流输电技术㊁嵌入式系统㊂(责任编辑:薛士然 收稿日期:2019-04-29)。

相关文档
最新文档