Flash烧写文档
DSP中FLASH烧写方法
FLASH烧写程序方法:1、将要烧写的程序例如TIMER调通可以在线(用仿真器)下载。
注意其source文件中一定要包含boot.asm程序(见附件)其cmd文件设置如下:主要修改其L2的长度为8000*---------timer1.cmd---------MEMORY{L1 : o = 0h l = 0x400L2 : o = 00000400h l = 00008000h /* not all SRAM */}SECTIONS{.boot_load > L1.cinit > L2.text > L2.stack > L2.bss > L2.const > L2.data > L2.far > L2.switch > L2.sysmem > L2.tables > L2.cio > L2}2、查看TIMER程序的map文件,根据map文件中各段的地址和长度修改FLASH_PRG程序(见附件)中flash_timer.h文件中的各段地址和长度如下:/* 程序入口点 */#define ENTRY_POINT 0x000015a0/* boot段的长度和RAM中地址设定 */#define BOOT_SECTION_SIZE 0x00000400#define BOOT_SECTION_ADDRESS 0x00000000/* cinit段的长度和RAM中地址设定 */#define CINIT_SECTION_SIZE 0x00001000#define CINIT_SECTION_ADDRESS 0x00001820/* text段的长度和RAM中地址设定 */#define TEXT_SECTION_SIZE 0x00001420#define TEXT_SECTION_ADDRESS 0x00000400/* end of table */#define TABLE_END 0其中ENTRY_POINT入口地址就是.map文件中的.text:_c_int00的地址,也就是load完程序后在反汇编界面上自动跳到的地址3、FLASH_PRG程序的cmd文件中的MEMORY中SRAM要选在TIMER程序中SRAM的后面,这里从0x00008000开始MEMORY{FLASH : origin = 0x64000000, len = 0x4000000SRAM : origin = 0x00008000, len = 0x1f000}4、先load TIMER程序到内存,接着load FLASH_PRG程序并运行,这样就可以将TIMER程序烧入FLASH中。
DSP28xx芯片FLASH烧写
该文档主要是为了方便第一次对DSP28xx芯片进行FLASH烧写的朋友声明:1、以下方法基于CCS3.3,其它版本不知道行不行;2、使用的是修改例程后的工程,如果自己新建的工程,可能会出现其它问题,如头文件没有引,build options设置等问题;3、使用的是某公司的开发板,其它开发板可能硬件上连接不同,flash mode是需要特定引脚接高电平的;有的板没有reset键也没办法,总之我的是要上电、reset才行。
操作步骤:1、第一次用flash烧写要设置以下内容:1)开始->所有程序->TexasInstruments->Code ComposerStudio3.3->ComponentManager2)Texas Instrument Inc.下找到并选中Flash28xx<x:\……\ccstudio_v3.3\plugins\flash28xx>。
注:x:\……\是你的路径,每个人可能不同。
3)连接好DSP,在CCS中rebuild all你的工程后,Tools-F28xx on-chip flash programmer,设主频,选择插件版本(我试过选旧版的那个,好像会默认帮你改成最新那个),然后进入Flash界面,切勿乱改左边中间(就是很多行“FFFFFF”那里)的东西,点execute operation 就开始烧写了。
烧写完后可能会弹出以下警告:Warning: This program contains initialized RAM data.It may run successfully under Code Composer Studiobut not as a standalone system because of this. Ifyour Flash program requires initialized data in RAM,you will need to write Flash code to initialize RAM memory.以下两步是解决该警告的方法。
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地址。
2812flash烧写flash心得、说明
//上面的放在程序之前
memcpy(&RamfuncsRunStart,
&RamfuncsLoadStart,
&RamfuncsLoadEnd - &RamfuncsLoadStart);
然后这个是放在系统初始化之后
下面这个是放在main函数之后
void InitFlash(void)
asm(" RPT#6 || NOP ");
}
不同频率下所需要插入的等待数目不一样
2812所用的外部时钟为30MHZ,在InitSysCtrl()函数中设置CPU的时钟频率,例如 PLLCR=0x0A 时,CPU的时钟频率为150MHZ;
在根据不同频率下片内flash所需要插入的等待数目:
这样子就可以了。
还可以这样子,将运行时所有的常量加载至RAM单元,但需要占用较多的RAM单元。
方法:复制整个.econst段至RAM单元。
在CMD文件和C文件中添加如下代码:
SECTIONS
{
.econst : LOAD = FLASHD, PAGE = 0
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
#pragma CODE_SECTION(InitFlash,"ramfuncs")
void InitFlash(void);
对时间敏感的函数代码如定时器加载到RAM中运行以优化性能
对关键的全局常量如数组加载至RAM运行以优化性能
添加新的flash烧写方案
添加新的flash烧写方案概述本文描述如何添加及调试新的flash烧写方案。
程序文件结构包含两个文件,一个.c文件和一个.h文件。
数据结构主要数据结构定义在flash.h中。
描述flash信息的数据结构typedef struct flash_info{BYTE maker; // 制造商代码,定义在config.h中BYTE type; // 设备代码,定义在config.h中BYTE sectNums; // 扇区数BYTE reserve; // 保留HWORD sectOffset[FLASH_SECT_NUMBERS+1]; // 每个扇区偏移地址}flash_info;flash命令数据结构typedef struct flash_cmd{UWORD flashStartAddr; // flash起始地址UWORD flashSize; // flash大小,保留BYTE startSect; // 本次操作起始扇区,起始值为1BYTE endSect; // 本次操作结束扇区,起始值为1BYTE flashMaker; // 制造商代码BYTE flashType; // 设备代码BYTE flashDataWidth; // flash数据宽度,8, 16, 32BYTE flashCount; // flash数目BYTE cmd; // 当前操作BYTE errCode; // 返回的错误代码UWORD errAddr; // 返回的出错地址UWORD ramBuffStart; // ram区起始地址UWORD ramBuffLength; // ram区大小UWORD ver; // version}flash_cmd;添加新的方案下面的操作将以intel的28F800B3-B为例介绍添加一个flash烧写方案的过程:▼在intel目录下添加两个文件:28F800B3B_config.c和28F800B3B_config.h ▼在28F800B3B_config.h中修改扇区数量#define FLASH_SECT_NUMBERS 23▼在28F800B3B_config.c中修改包含头文件#include "i28f320b3b_config.h"▼在config.h中添加该配置的宏定义,并设置该配置为当前设备添加该配置:#if FLASH_DEVICE == INTEL_i28f800b3_b /* intel i28f800b3-b */ #include ".\intel\i28f800b3b_config.h"#include ".\intel\i28f800b3b_config.c"#endif设置该配置为当前设备,定义如下宏,并注释该部分其它宏定义#define INTEL_i28f800b3_b 0x00010002 /* intel i28f800b3-b */▼在28F800B3B_config.c中编辑flash配置函数,请参照修改。
Flash28x烧写指导
Flash28x烧写指导本程序仅供F2810 Rev A & F2812 Rev A Silicon使用,程序中所有,默认值皆为烧写F2812 Rev A Silicon所作得设置,用户如果需要烧写2810可根据附录提供的资料自行修改。
注:本程序除烧写算法外,全部由Code Composer Studio GEL写成,用户可根据需要自行修改、设置。
需烧写F2810 Rev C & F2812 Rev C Silicon请自行到TI网站下载Flash 2810\F2812 API(此API程序需CCS2.2以上版本)软硬件准备:用户除具备基本的windows系统一套外还需如下设备或软件1、DSP仿真器一套2、F2812 Rev A Silicon目标一套3、CCS 2.0以上版本4、要烧写到Flash的目标程序5、本烧写程序安装程序安装:直接执行软件安装包setup.exe文件。
此文件存在于产品分发的光盘中或在闻亭网站( )下载得到。
安装过程中将需要您指定CCS2000的安装目录,安装完成后将在您指定的目录下生成WTFlash28x目录。
烧写准备:根据目标硬件的设置对flash算法进行重新编译。
相关内容参阅WTFlash28x\doc目录flash28xreadme.pdf文件,使用debug 模式编译文件成功后,请拷贝WTFlash2812.out到CCS的CC\bin目录下,里面安装有一个同名文件,您可以备份后删除或直接用新文件替换已有文件。
1、运行CCS 2000,进入CCS界面.2、为程序的烧写作数据转换工作。
加载目标程序,参照您编译程序的*.cmd文件中的内存分配情况(或编译后产生的*.map文件)把加载到内存中的程序数据使用数据输出(File->Data->Save…)功能转储到硬盘文件中,保存类型尽量使用hex(*.dat)类型,下图为数据存储时的4步,以下的样例采用Data Save –2 中的文件 “c:\ti\wtflash28x\he.dat”。
C6455flash烧写文档
C6455flash烧写文档西安光机所技术总结——C6455flah自启动的实现一、flah烧写步骤1、将C6455_flahburn\\he某2image\\pjt_ue文件目录下的bootload.am添加到自己工程中,将c6455.cmd替代自己工程中的CMD文件,编译。
2、将自己工程中生成的某某某.out文件改名为flah.out.复制到C6455_flahburn\\he某2image文件目录下3、运行tet2.bat(双击)4、将C6455_flahburn\\he某2image目录下的TI_ARR.C文件复制到上一目录C6455_flahburn替代此目录下的TI_ARR.C文件5、在CCS中加载C6455_flahburn\\Flahburn.pjt工程重新编译工程,将编译生成的C6455DSP芯片的加载模式分为硬件加载和软件加载,(DSP自动加载技术是指在系统刚刚上电或者复位时,DSP将一段存储在外部的非易失性存储器的用户程序搬移到片内的高速存储器单元中执行)对于DSP芯片,其内部中固化了一段代码,而这段代码的功能就是搬移操作。
1、无引导加载(BOOTMODE[3:0]=0000b)即上电复位后CPU直接从2M—ByteL2级存储器的地址O处开始执行代码2、主机接口引导(BOOTMODE[3:0]=0001bandBOOTMODE[3:0]=0111b)CPU上电复位后。
YO部分将处于激活状态.可以进行正常的通信.但DSP的内核仍处于复位状态,一直等待主机向HPI控制寄存器中的DSPNT位置l这样在引导过程中.外部主机通过主机接口访问DSP的整个存储空间,对它们进行初始化。
主机完成初始化工作以后.向接口控制寄存器的DSPINT位写1.引导过程结束然后CPU退出复位状态.开始执行地址0处的代码。
3、EMIFA8比特外部ROM引导(BOOTMODE[3:0]=0100b)位于外部CE3空间的ROM中的一部分程序首先通过EDMA被搬人到2M—ByteL2级存储器的地址0处.但是依靠EDMA仅从CE3空间中拷贝从起始地址处开始的1KB个字节来实现。
JXARM9-2410 Flash烧写流程
前言本文档为JXARM-2410系列教学实验系统的FLASH烧写用户手册,用于指导JXARM9-2410的FLASH烧写,在JXARM-2410系列教学实验系统出厂时均已将相关文件烧写到FLASH,可以不用做下面的工作,如果您需要升级FLASH中的内容请参照下面的步骤进行。
另外,各个文件均可以单独烧写,不需要每次全部烧写,而只需要烧写你需要修改的部分。
在阅读本文档之前,请简单浏览本文的书写约定:1、正文:如下字体所示为普通正文:JXARM9-2410-3教学系统主板上有几个跳线。
具体的意义说明如下:2、特别提示:对于文中特别需要注意的地方,以下面的字体表示:如果将JXARM9-2410-3直接与计算机连接时,请使用计算机直连网线,如果将JXARM9-2410-3接入局域网,请使用普通网线。
3、宿主机Redhat终端输入输出信息如下所示,$表示Redhat控制台,紧接其后的以黑体和斜体字表示的为在Redhat控制台上输入的命令行,并以回车键结束。
后面的为命令输入后的提示信息。
$/etc/init.d/nfs restart关闭 NFS mountd: [ 确定 ]关闭 NFS 守护进程: [ 确定 ]Shutting down NFS quotas: [ 确定 ]关闭 NFS 服务: [ 确定 ]启动 NFS 服务: [ 确定 ]Starting NFS quotas: [ 确定 ]启动 NFS 守护进程: [ 确定 ]启动 NFS mountd: [ 确定 ]4、u-boot终端输入输出信息如下所示,JX2410 #表示u-boot控制台,紧接其后的以黑体和斜体字表示的为在u-boot 控制台上输入的命令行,并以回车键结束。
后面的为命令输入后的提示信息。
JX2410 # erase 1:4-7Erase Flash Sectors 4-7 in Bank # 1Erasing sector 4 ... doneErasing sector 5 ... doneErasing sector 6 ... doneErasing sector 7 ... done5、目标机Linux终端输入输出信息如下所示,#表示目标机Linux控制台,紧接其后的以黑体和斜体字表示的为在Linux控制台上输入的命令行,并以回车键结束。
flash烧写说明文档
flash烧写说明文档烧写说明:准备工作:1:安装Flash burn软件,安装的路径要与ccs安装路径一致,按默认的路径安装就行。
2:把提供的hex文件夹拷贝至C:根目录下。
移除CODEC.cmd文件project。
在文件类型中选择*.s*依次添加boot_c671x_2.s62,c6713_emif.s62两个文件。
在文件类型中选择*.cmd,添加lnk2.cmd文件。
然后点击Rebuid all按钮重新编译所有文件。
到DEC6713_CODEC.out文件,复制该文件到C:根目录下的hex文件夹下。
双击“命令提示符快捷方式”文件。
后关键命令窗口。
然后复制hex文件至工程文件夹下,C:\ti\myprojects\fft080111endDEC6713_CODEC.pjt工程。
打开TOOL下的FlashBurn工具。
在file中单击new。
在conversion Cmd框中添加hex文件夹下的boot.cmd文件。
在File to burn中添加hex文件夹下的DEC6713_CODEC.hex文件。
在FBTC program file框中添加FBTC6713文件夹下的FBTC6713.out文件。
在flash physical 填写0x90000000 ,bytes 0x40000,然后保存,关闭Flshburn界面。
在file工具栏选择load GEL,加载DEC6713.gel文件。
文件。
如上图说明连接正常。
首先点击Erase Flash选项。
单击program下的proram Flash工具,等待烧写完毕,然后关闭ccs,重新给目标板上电,烧写过程结束。
TMS320C62x HPI引导过程的实现摘要:TMS320C62x和TMS320C67x DSPs提供了几种不同的启动模式,不同的启动模式决定了DSP复位后的初始化以及代码装载方式。
本文就TMS320C62x DSP 的HPI启动模式进行详细的说明。
norflash烧写
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
F28035 FLASH烧写
TMS320X28035的烧写过程TMS320X28035是TI公司2009年新推出的60M控制芯片,其烧写过程如下:1.使用TI官方CMD文件F28035.CMD,和烧写有关的语句为:RAML0 : origin = 0x008000, length = 0x000800FLASHD : origin = 0x3F0000, length = 0x002000ramfuncs : LOAD = FLASHD,RUN = RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE = 02.在工程中添加DSP2803x_MemCopy.c文件,内容如下:#include "DSP2803x_Device.h"void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr) {while(SourceAddr < SourceEndAddr){*DestAddr++ = *SourceAddr++;}return;}3.在DSP2803x_SysCtrl.c文件中添加如下语句:#pragma CODE_SECTION(InitFlash, "ramfuncs");void InitFlash(void){EALLOW;//Enable Flash Pipeline mode to improve performance//of code executed from Flash.FlashRegs.FOPT.bit.ENPIPE = 1;// CAUTION//Minimum waitstates required for the flash operating//at a given CPU rate must be characterized by TI.//Refer to the datasheet for the latest information.//Set the Paged Waitstate for the FlashFlashRegs.FBANKWAIT.bit.PAGEWAIT = 2;//Set the Random Waitstate for the FlashFlashRegs.FBANKWAIT.bit.RANDWAIT = 2;//Set the Waitstate for the OTPFlashRegs.FOTPWAIT.bit.OTPWAIT = 2;// CAUTION//ONLY THE DEFAULT VALUE FOR THESE 2 REGISTERS SHOULD BE USED FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;EDIS;//Force a pipeline flush to ensure that the write to//the last register configured occurs before returning.asm(" RPT #7 || NOP");}4.在main()函数之前定义三个变量:extern Uint16 RamfuncsLoadStart;extern Uint16 RamfuncsLoadEnd;extern Uint16 RamfuncsRunStart;5.在main()函数初始化系统以后增加如下语句:MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();6.在CCS中点Tools>F28xx on-Chip Flash Programmer>Execute Pperation 完成烧写。
完全C语言flash烧写
DM642 完全脱离FALSHBURN工具基于C语言烧写flash作者:郑一周前不经意间在网上看到了一篇《TMS320C6713并行自举的巧妙实现——自身烧写》的期刊。
感觉这种方法太好了。
由于TI主推ccs3.3 ,用了才知道在这个环境下不能烧写非bios程序。
只能用seed工程师给的flashburn工具来烧写bios程序。
想烧写非bios程序必须换ccs2.2,而用这种方法完全脱离了格式转换工具和令人头痛的汇编语言。
Bios和非bios 程序都可以烧写!真是太NB了,不过这篇期刊介绍的太笼统。
无奈只有自己研究了。
经过一周的时间终于成功烧写一个非bios的小程序,开心ing 。
现将个人理解记录如下:1、在上电复位之后,DSP自动搬移地址0x90000000 开始的1K字节程序,这1K字节程序搬移进来之后,DSP就按照这1K字节的程序运行,这1K字节程序的作用是将存储在flash中的要自启动的目标程序搬移到片内来,然后运行已经搬移进来的目标程序,也就达到了自己启动的目的。
这就有2个问题出现了。
(1)怎么能把目标程序搬移到flash的去?(2)怎么能用1k字节的程序实现boolloader?2、我用的方法是将boot.C 、目标程序、flash烧写程序都在一个工程中实现,这么做的好处是避免了两次加载工程的麻烦。
(1)将flash烧写擦出的程序封装成函数seeddm642_flash_write/rend((Uint32 )src,(Uint32)dst,len)(2)将boot 装载到外部空间#pragma CODE_SECTION()(3)改写工程CMD文件MEMORY{Boot :o = 00000000h l = 000400hL2 : o = 0000400h l = 0003fc00 //ALL SRAM}其中boot段的地址是上电启动时,DSP芯片自动从0x90000000地方加载进来的1K大小的bootloader代码地址.L2首地址00000400和CE01首地址:80000000,就是bootloader 根据装载表将flash中的应用程序分别要加载到的目的地址。
SPI Flash 烧写指导书
SPI FLASH 程序烧写指导书
1.相关软件和工具
使用软件SmartPRO注意软件版本更新。
烧写器:SmartPRO 5000U (已验证)
需要烧写成品板卡例:PX2000E-PRO
烧写芯片卡座(ZY301A等)
2.操作指导
2.1将PX2000E-PRO 上的FLASH 存储器(带程序)取下放入烧写
卡座ZY301A,卡座安装在烧写器卡槽最底端。
2.2 打开SmartPRO 软件,选择相关器件型号,得到如下显示框。
如图所示为相关操作界面,可以先简单熟悉一下。
2.3制作烧写文档,读取现有FLASH 中程序。
1.点击工具栏-操作配置,如图所示相关设置。
2.烧写栏中选择烧写器件型号
3.文件读取保存(BIN 文件)
后续相关烧写操作也是在这边进行,可以选择组合操作。
4.量产烧写
设置组合操作:擦除-编程-校验
选择器件型号和烧写文件,组合操作,量产。
3.备注
1.烧写不同芯片时,根据封装大小选择适合的烧写卡座。
2.首次烧写需要读取FLASH(EEPROM)中的数据文件,包括
后期相关程序更新。
2021DSP对AM29LV400BFlash存储器的烧写、擦除操作范文2
2021DSP对AM29LV400BFlash存储器的烧写、擦除操作范文 1.引言 Flash是一种可在线进行电擦写,掉电后数据不丢失的EEPROM存储器。
它具有功耗低、容量大、烧写和擦除速度快等优点,并且内部嵌入算法完成对芯片的操作,简化了软件的工作量,因而在数字信号处理系统中得到了广泛的应用。
DSP是一种高速数字信号处理器。
它具有高稳定性、可重复性、可大规模集成,特别是易编程性和易于实现自处理等特点,使得信号处理手段更灵活、功能更复杂、运算速度更快,在数字信号处理领域得到广泛地应用。
本文通过完整的实例,介绍以TMS320VC33(简称VC33)为嵌入式系统对AM29LV400BFlash存储器进行烧写和擦除的实现方法。
2.AMD公司AM29LV400BFlash存储器 AM29LV400B是AMD公司推出的Flash存储器,它是4兆位(8×512K/16×256K位)的CMOS工艺扇区擦除、字节编程的电可擦除只读存储器EEPROM。
它的主要特点包括如下几个方面:3.3V单电压供电;内部嵌入编程、擦除操作算法,只需向命令寄存器写入标准的微处理器指令,并且可通过查询特定的引脚或数据线来监控操作是否完成;对任一扇区进行烧写擦除操作时不影响其它的扇区数据;可进行100000次的烧写擦除操作,数据保存10年以上。
本文中Flash的数据映射到DSP的0x0400000空间,Flash的一个字节对应一个DSP的低8位数据,高24位为无效数据,可以直接按字节进行读写操作。
3.Flash存储器的基本操作命令以及程序设计流程 Flash存储器AM29LV400B的基地址为0x400000,每个偏移地址乘以4是因为Flash字节仅占用DSP空间低8位,而DSP的地址是字节地址,所以地址增量为4。
3.1Flash存储器的操作结束检测 FlashAM29LV400B内部的编程或擦除算法可自动完成相应操作,但必须了解其内部的操作检测机制,以便知道操作是否完成或正确。
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说明(XDS510USB TI原装)
配置CCS3.3和仿真器1、安装CCS3.3,如果自定义安装,需要选择TMS470的库。
2、安装XDS510USB的Windows驱动和CCS驱动,Window驱动位于目录“XDS510USB仿真器Windows驱动”CCS驱动位于目录“XDS510USB仿真器CCS3.3驱动”下。
3、打开CCS3.3 Setup,把EVMDM355 XDS510USB 拖到左边,gel文件位于目录“烧写Flash的数据”下的TechvDM355.gel烧写Flash说明1、拔掉电源,连上仿真器和CCS。
2、接入5V电源,点击CCS的连接,看是否连上CPU,不能则要检查CPU的J1、J3插头,及其与大板相连的两个插座是否连接完好。
3、在C盘建立一个文件夹用来存放flash数据,比如C:\dm355flash。
把目录“烧写Flash的数据”下的所有文件拷贝到此新建的目录,目的是让目录没有中文4、在CCS加载out文件:File->Load Programe...然后选择NAND_programmer.out文件,点击运行,稍等即提示需要输入UBL 的文件路径,对我们来说即是:C:\dm355flash\ublDM355-nand.bin5、稍等,又会提示输入另外一个文件,即是:C:\dm355flash\uboot.bin6、稍等2分钟左右即可烧写完毕,提示nand program complete,如下:Enter the UBOOT File NameD:\DM355Projects\board_utilities\u-boot-1.2.0-dm355_evm_new.binU-Boot: Number of pages: 63U-Boot Descriptor copy starts nowBlockNum: 8NANDWriteBlock done on block 8UBOOT descriptor is successfully programmed ,BlockNum : 8UBOOT programming starts now pages 63, blockNum 9UBOOT programming is completedNAND flash programming is completed7、如果烧写不成功,拔电检查是否焊接良好。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Flash烧写
一般程序开始编译测试时,连接仿真器在RAM中运行,以2808为例,CMD文件包括如下:
当需要烧写进Flash运行测试时,将F2808_EzDSP_RAM_lnk.cmd这个文件替换为F2808.cmd。
、
这时分为两种情况:
一,烧写进Flash中,仅仅在Flash中运行,将F2808.cmd文件中的如下屏蔽即可:
屏蔽ramfuncs功能为引导Flash中程序到RAM中运行。
二,当第一种做法,在烧写Flash时,最后出现如下报错,或者类似地址错误:
说明,你的程序在烧写Flash之后,需要也在RAM中运行,那么你需要这样做:
1,F2808中的ramfuncs部分不要屏蔽,如下
2,在主程序变量申明部分加入:
3,主函数初始化部分加入:
再编译烧写即可。
4,如编译出现“symbol referencing error”,检查工程文件有无DSP280x_MemCopy.c。
如果没有DSP280x_MemCopy.c,将DSP280x_MemCopy.c添加到工程文件后再编译即可。
烧写操作:
一,开始烧写,Tools——F28xx On-chip Flash programmer或者点击按钮;
二,出现始终设置窗,如下设置:(以2808为例)
三,点击OK出现如下:
在Select DSP Dersion of Flash API 中,切记选择FlashAPIInterface2808V3_02.out
四,点击OK出现如下:
不用改动,点击Execute Operation即可。
其中Erase——擦除,Program——写入,Verify——校验,可以根据需要选择。
在Please specify the COFF file to 窗口选择烧写的文件,一般为你编译之后的.out文件。