Flash烧写文档

合集下载

DSP中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烧写

该文档主要是为了方便第一次对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烧写步骤

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心得、说明

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烧写方案概述本文描述如何添加及调试新的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烧写指导

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烧写文档

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烧写流程

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控制台上输入的命令行,并以回车键结束。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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文件。

相关文档
最新文档