flash烧写说明文档

flash烧写说明文档
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\fft080111end

DEC6713_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启动模式进行详细的说明。

关键词:TMS320C62x DSP HPI 启动模式

1 绪言

在TMS320C62x系列DSP中,主机口HPI是一个16位宽度的并行端口。主机(也称上位机)掌管该接口的主控权,通过它可以直接访问CPU的存储器空间。

另外,主机还可以直接访问TMS320C62x片内的存储映射的外围设备。

HPI与CPU存储空间的互连是通过DMA控制器实现的。借助专门的地址和数据寄存器,通过DMA辅助通道,完成HPI对存储空间的访问。主机和CPU都可以对HPI控制寄存器HPIC进行访问,主机一方还可以访问HPI地址寄存器HPIA 和HPI数据寄存器HPID。

2 TMS320C62x引导模式

TMS320C62x系列DSP提供了三种引导方式:

(1)没有自举过程:CPU直接从地址0开始执行代码;

(2) ROM自举:由DMA/EDMA控制器从外部CE1空间中的ROM中拷贝固定数量的一段代码到地址0,拷贝结束后,CPU从地址0开始运行;

(3) HPI自举:由外部主机通过HPI对芯片的存储器空间进行初始化,初始化结束后,外部主机通过HPI中断唤醒CPU,CPU开始从地址0运行。

所有这些设置项都是在芯片复位的时候才进行检查。一旦复位信号有效(reset=0),所有的三态输出管脚恢复为默认状态,然后在reset信号的上升沿处检查设置管脚BOOTMODE[4:0]的状态,自举逻辑开始生效。其中

C6201/C6701有专门的管脚作为 BOOTMODE[4:0],C6211/C6711则是利用主机口的HD[4:0],C6202/C6203利用扩展总线的XD[4:0]作为 BOOTMODE[4:0]信号。

对于TMS320C62x的HPI自举模式过程如下:首先需要设置Boot模式,Boot 模式设置如表1所示。当DSP被复位时,如果选择了HPI boot模式,那么只有DSP的内核进入复位状态,DSP其余模块均保持激活状态。这样,主机就可以通过HPI接口访问DSP的整个存储空间,包括片内、片外存储器和片内的外设寄存器,对它们进行初始化。主机对DSP做完了有关设置后,向HPIC寄存器的DSPINT位写1,将DSP从复位状态唤醒,接下来CPU就从地址0开始执行程序。主机对DSP可以进行的操作包括:初始化CPU和EMIF,向DSP加载程序以及数据等。

表1 TMS320C62x HPI boot配置

3 TMS320C62x HPI引导模式的实现

3.1 创建启动代码

实现TMS320C62x HPI引导模式的第一步是生成HPI引导的DSP代码,并把它与主处理器应用程序合并在一起,使DSP应用程序可以和主处理器应用程序一

起远程下载。为了简化,采用下列方案:把DSP应用程序转换成头文件中的数组,并和主处理器应用程序一起编译连接。

具体实现分为两步:1)利用转换工具HEX6x把COFF文件转换成ASCII-Hex 格式十六进制文件;2)利用自编工具hex2aray.exe将ASCII-Hex格式的文件转换成包含数组的头文件。

(1)利用转换工具HEX6x把COFF文件转换成ASCII-Hex格式十六进制文件

利用转换工具HEX6x把COFF文件转换成十六进制文件,使用转换工具HEX6x 需要一个.cmd文件说明具体的转换格式,如下面文件 hexcom.cmd所示:HEX6x 把COFF文件test.out转换成两个ASCII-Hex格式的文件:一个是代码段,包含在文件 test.a00中;另一个是初始化的数据段,包含在文件test.a10中。在DOS命令行中执行hex6x hexcom.cmd将产生test.a00和test.a10两个文件。

文件hexcom.cmd:

..object est.out

-a

-byte

-image

-memwidth 16

-romwidth 16

-order M

ROMS

{

/* Size of the internal pgm memory */

PGM: org = 0x00000000, length = 0x10000

/* Size of the internal data memory */

DATA: org = 0x80000000, length = 0x10000

}

(2)利用工具hex2aray.exe生成头文件

然后利用hex2aray.exe将两个ASCII-Hex格式的文件:test.a00和

test.a10分别转换成两个个包含数组的头文件:code.h和init.h。工具

hex2aray.exe为自编工具。在DOS命令行中分别执行hex2aray –i test.a00 –o code.h和hex2aray –i test.a10 –o init.h两条命令将产生两个头文件code.h 和init.h。在文件hexcom.cmd中的选项:- a,指示HEX6x按ASCII-Hex格式转换文件,ASCII-Hex文件格式如下所示:

^B

$AXXXX,

XX XX XX XX XX XX XX XX XX XX. . .

^C

文件开始是ASCII STX 字符 (ctrl-B, 02h),结束是ASCII ETX 字符

(ctrl-C, 03h);$AXXXX,代表地址;其余为代码。转换后的头文件格式如下:

const char

code[]={0x12,0x18,0x01,0x00,0x28,0x00,0x00,0x00,0x2A,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,

0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

3.2 主机对HPI接口的操作

TMS320C62x提供了三个16位寄存器:HPIC、HPIA、HPID和16位数据线与主处理器通信。主处理器通过HPIC、HPIA、HPID和16位数据线来与TMS320C62x 进行数据交换,数据交换的过程如下:

1)首先初始化HPIC;

2)然后把地址写到HPIA;

3)最后通过HPID读或写数据。

假设主机CPU也是TMS320C62x,那么主机与目标机之间的连接如图1所示:

如图1所示,假如Target 6201的/HCS连接到主机6201的CE1上。Target 6201的HPI寄存器映射到Host 6201DSP内存中,HCNTRL[1:0]和HHWIL连接到主机CPU的地址线上,那么HPIC、HPIA、HPID寄存器的地址分配如表2所示。,那么在C语言中,可以通过指针访问HPIC、HPIA、HPID,例如:

#define C6201_HPI 0x01400000 /* Host address on which C6x HPI is mapped */

int *hpi_ptr; /* define and initialize pointer*/

hpi_ptr = (int *)C6201_HPI;

/* Write dest_address to HPIA, with HOB=1 */

ptr_hpi[2] = (int)(dest_address & 0x0ffff);

ptr_hpi[3] = (int)((dest_address>>16)&0x0ffff);

表2 HPIC、HPIA、HPID各寄存器的地址分配

3.3 主机通过HPI下载代码和数据段到目标DSP

一个程序由初始化区和非初始化区两部分组成,主机处理器必须根据.cmd 命令文件把这两个区装载到DSP正确的地址。下面这段代码就是将代码段和数据段两部分分别下载到指定地址(即程序RAM和数据RAM)。它主要是从*source 中读出32位长的数据,然后通过HPI将此数据写到DSP的 dest_add地址(即程序RAM和数据RAM)中。*source中的数据就是DSP的启动代码段和数据段中的数据。

void C6x_write_section(int *ptr_hpi, short *source, int dest_add, int length)

{

int i;

/* Write HPIC with HWOB=1,1st halfword transferred is least significant

*/

/* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[0] = 0x0001; /* 1st halfword 0 0 0 */

ptr_hpi[1] = 0x0001; /* 2nd halfword 0 0 1 */

/* Write destination address to HPIA, 1st halfword is least significant */

/* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[2] = (int)(dest_add & 0x0ffff); /* 0 1 0 */

ptr_hpi[3] = (int)((dest_add>>16)&0x0ffff);/* 0 1 1 */

for(i=0 ; i < length ; i++)

{

/* Write source_word to HPID with address post-increment */

/* 1st half-word transferred is least significant */

/* HCNTRL1 HCNTRL0 HHWIL */

ptr_hpi[4] = (int) *source++; /* 1 0 0 */

ptr_hpi[5] = (int) *source++; /* 1 0 1 */

}

}

3.4 目标DSP开始执行所下载的代码

主机通过HPI下载代码段和数据段到目标DSP以后,那么目标DSP就需要执行所下载的代码了。通过写HPIC寄存器的DSPINT位为1让DSP退出复位状态后,DSP就开始从地址0执行所下载的代码了。具体实现代码为:

/* Write HPIC with DSPINT=1 */

/* HCNTRL1 HCNTRL0 HHWIL */

/* 1st halfword 0 0 0 */

/* 2nd halfword 0 0 1 */

ptr_hpi[0] = 0x0002; /* 1st halfword */

ptr_hpi[1] = 0x0002; /* 2nd halfword */

4 总结

根据前面所述,TMS320C62x HPI启动过程如图2所示。

DSP中FLASH烧写方法

FLASH烧写程序方法: 1、将要烧写的程序例如TIMER调通可以在线(用仿真器)下载。注意其source文件 中一定要包含boot.asm程序(见附件) 其cmd文件设置如下:主要修改其L2的长度为8000 *---------timer1.cmd--------- MEMORY { L1 : o = 0h l = 0x400 L2 : 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 */

Flash烧写步骤

Flash程序烧写步骤 1、protect off all erase 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.gz tftp 20000000 vmlinux.64.2011_01_18.gz(1-18最新内核) 11、tftp 20000000 vmlinux.64.2011_01_20.gz cp.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 0x5cd321 13、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;bootoctlinux 17、saveenv(保存设置) 18、run bootcmd 19、在shell终端执行命令: 20、~ # ifconfig eth1 up<激活UC网口eth1> 21、~ # ifconfig eth1 192.168.11.1 <为UC的eth1网口配置IP地址>

DSP串口烧写Flash方法

281x无需仿真器,串口烧写Flash方法 再发一次!希望版主不要再删!! 考虑到众多买不起仿真器的劳苦大众!下面提供利用PC RS232下载flash到281x的方法: 第一步:安装CCS2.2或更高版本 以确保你的源代码能编译为下载源码:xxx.out文件 第二步:安装串口编程算法项目文件:sdf28xx_v3_0_serial (Ti网站上有下载) 详情请阅读包含的:SDFlash_Serial_RefGuide_v3_0.pdf文件 第三步:在算法项目文件中设置好相应的时钟频率,并生成.out文件 (1)在CC中导入F2812SerialFlash.pjt文件 文件目录: C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\DSP281x_serial\build\F28xxSerialFlas h (2)设置好你的目标板相应的时钟频率 在Flash280x_API_Config.h中相应的PLL时钟,我使用的是20M晶掁则选择: #define CPU_RATE 10.000L // for a 100MHz CPU clock speed (SYSCLKOUT) (3)保存并编译项目文件,生成F2812SerialFlash.out文件存放在: C:\CCStudio_v3.1\specdig\sdflash\mydrivers\DSP281x_v3_0\DSP281x_serial\bin 注:确定你的程序空间定义在flash段,(在CMD文件修改) 第四步:安装SdFlashV1.60或更高版本 第五步:编辑sdopts.cfg文件,此文件存放在你所安装的windows的System32目录下 (1)用记事本的方式打开sdopts.cfg (2)在"# End of sdopts.cfg”前加入如下文本: [EmulatorId=C1] EmuPortAddr=0xC1 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C2] EmuPortAddr=0xC2 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C3] EmuPortAddr=0xC3 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH [EmulatorId=C4] EmuPortAddr=0xC4 EmuPortMode=RS232 EmuProductName=SERIAL_FLASH

Flash烧写文档

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文件。

STM32_FLASH的3种烧写方式

ST ARM 芯片的FLASH 烧写方法 一、 RVMDK+ULink2(ST ‐Link2、JLink) 注:适用于所有的ARM 芯片,但硬件上必须有JTAG 接口。 使用仿真器+ARM 开发环境,是最常用的一种方法。该方法适用于硬件上留有JTAG/SWD 接口,如有源程序代码,可以直接编译下载;另外使用RVMDK+ULink2也可直接下载.hex 文件,操作如下。 a) 打开或新建一个与芯片型号对应的工程,在工程设置中配置output 选项, 将需要下载的.hex 文件拷贝到output 目录下(output 文件夹中存放编译时输 ),如下图所示。 ©2008 MXCHIP Corporation. All rights reserved. b) 在Name of Executable:中输入.hex

名,如上图所示。 c) 配置Utilities 选项,选中Use Target Driver for Flash Programming 项(默认情 所示。 ©2008 MXCHIP Corporation. All rights reserved. d) c)添加Flash Programming Algorithm ,即添加与目标芯片对应的Flash 编程算法,如下图所示。

e)以上步骤完成后,连接仿真器和目标板,即可把目标程序烧写到芯片的Flash 中。 二、 串口+ISP软件 注:适用于带有ISP功能的ARM芯片,需要硬件上留有COM接口,且芯片的启 动模式可设置。 用户的ARM系列芯片带有ISP(在系统中编程)功能,则可使用其ISP功能, 通过串口和ISP软件来下载.bin文件。下面以STM32系列芯片为例(STM32全系 列芯片都带有ISP功能),演示该烧写方法。 a)将USART1口连接到PC的COM口(通常ISP使用的UART口都是芯片的第一 个UART口),设置芯片的启动模式为System Memary模式(BOOT1为0, ©2008 MXCHIP Corporation. All rights reserved.

spi flash 烧写

烧写SPI FLASH教程 1 前言 Xilinx的FPGA在SPARTAN3E之后,增加了SPI配置模式。增加SPI配置模式对用户来说,无疑是非常有用的。不仅简化了硬件电路,而且可以降低硬件成本,同时SPI芯片的容量又很大,可以满足用户除存储配置文件外存储其他数据的要求,扩展用户应用的范围。 下面逐步演示如何烧写SPI FLASH。 2 准备工作 ?ISE10.1版本或更高版本,本演示在ISE10.1下进行; ?JTAG加载线一根,本演示采用USB JTAG加载线 ?Windows XP系统 ?带有可SPI配置的目标板系统,本演示采用SPARTAN3E系列FPGA ?悉知SPI FLASH型号,本目标板系统采用的是M25P16 ?M2:M0=001,MASTER SPI MODE ?VS2:VS0=111

3 开始配置FPGA 3.1 启动iMPACT 开始——所有程序——Xilinx ISE Design Suite 10.1——ISE——Accessories——iMPACT,画面如下: 在弹出窗口中选择“Cancel”。当然,你也可以选中创建一个新的工程,只是,通畅情况下不这样操作。 3.2 开始生成mcs文件 生成mcs文件是针对SPI FLASH,所以,在这一步中与之前用户所熟悉的产生Xilinx的配置PROM产生的方法有些差别。其主要差别就是在生成mcs文件之前要确定SPI FLASH的型号以及容量。之后其余的步骤都大同小异了。 3.2.1 点击“Cancel”后,双击窗口左侧“Flows”中最下端的“PROM File Formatter”,画面如下: 注意:1)在弹出窗口中要选中“3rd-Party SPI PROM”; 2)“PROM File Format”栏中保持“MCS”在默认的选中状态; 3)Checksum Fill Value(2 Hex Digits):保持“FF”不变;

CCS3.3安装使用和RAM_FLASH烧写步骤说明

CCS3.3安装使用和RAM_FLASH烧写步骤说明 (1)准备工作(可以参照安装视频) 使用CCS3.3版本,仿真器为XDS510 USB2.0。 准备工作第一步:安装CCS3.3软件。 准备工作第二步:安装CCS3.3Driver到第一步中所在目录。 准备工作第三步:安装仿真器驱动。 (2)建立空工程 (2.1)配置CCS3.3的dsp芯片和仿真器。 点击Setup CCStudio v3.3,选择仿真器和dsp芯片型号 配置仿真器,在F2812 XDS510 Emulator上右键,在选择Properties,出现如下界面:

Configuration file是指的CCS驱动中的一个cfg文件,按照上图配置就完成了软件配置过程了,下一步就是启动CCS3.3了。 (2.2)建立空工程 点击Project—》New,出现下图所示界面: 这里工程名设为5leds_timer2,其他默认,然后Finish。出现如下图所示界面: 至此一个空的工程就建立完成,下一步就是向工程中添加6类文件:c文件,h文件,main 主源文件,cmd文件,gel文件和lib文件。先把上述6类文件复制到该工程目录下,然后分别添加6类文件。

(a)首先添加c文件和main主源文件到工程中:在Source上右键Add Files to Project,出现如下图界面,将所有的c文件都添加进来。

(b)然后再将h头文件导入进来。在工程名5leds_timer2.pjt上右键,选择Build Options,在下图所示界面,Compiler选项—》Preprocessor—》Include Search Path中填入工程所在路径E:\dsp_projects\5leds_timer2 这一步不能用add Files to project,因为找不到h文件,在编译的时候就可以在include目录下看到添加的头文件了。 (c)再就是添加cmd文件,先在RAM中运行,所以添加SRAM.cmd,同一块开发板的cmd 是一样,不会随着主源程序功能的变化而变化的。在工程名上右键Add Files to Project,选择SRAM.cmd

CCS 安装使用和RAM FLASH烧写步骤说明

安装使用和RAM_FLASH烧写步骤说明 (1)准备工作(可以参照安装视频) 使用版本,仿真器为XDS510 。 准备工作第一步:安装软件。 准备工作第二步:安装到第一步中所在目录。 准备工作第三步:安装仿真器驱动。 (2)建立空工程 ()配置的dsp芯片和仿真器。 点击Setup CCStudio ,选择仿真器和dsp芯片型号 配置仿真器,在F2812 XDS510 Emulator上右键,在选择Properties,出现如下界面:

Configuration file是指的CCS驱动中的一个cfg文件,按照上图配置就完成了软件配置过程了,下一步就是启动了。 ()建立空工程 点击Project—》New,出现下图所示界面: 这里工程名设为5leds_timer2,其他默认,然后Finish。出现如下图所示界面: 至此一个空的工程就建立完成,下一步就是向工程中添加6类文件:c文件,h文件,main 主源文件,cmd文件,gel文件和lib文件。先把上述6类文件复制到该工程目录下,然后分别添加6类文件。

(a)首先添加c文件和main主源文件到工程中:在Source上右键Add Files to Project,出现如下图界面,将所有的c文件都添加进来。

(b)然后再将h头文件导入进来。在工程名上右键,选择Build Options,在下图所示界面,Compiler选项—》Preprocessor—》Include Search Path中填入工程所在路径E:\dsp_projects\5leds_timer2 这一步不能用add Files to project,因为找不到h文件,在编译的时候就可以在include目录下看到添加的头文件了。 (c)再就是添加cmd文件,先在RAM中运行,所以添加,同一块开发板的cmd是一样,不会随着主源程序功能的变化而变化的。在工程名上右键Add Files to Project,选择

flash 烧写流程

编码一体机Flash 烧写手册 Flash 的烧写共包含3个部分:uboot, kernel, rootfs 1、烧写uboot, kernel(略) 2、烧写rootfs 原理,通过串口给uboot发命令,uboot 收到命令后将使用网口把要烧写的rootfs 从PC上download 然后烧写到nandflash. (1)连接好单板与PC。将单板的4Pin 白色端子(电池座下方)通过串口转 接板连到PC接的9针串口,连接好单板的网口。 (2)设置好PC上的串口终端,运行putty.exe 。 串口号根据PC的实际情况填(比如PC机一般是COM1)。 (3)设置好单板boot 环境参数: 打开步骤(2) 设置好的终端,给单板上电,串口终端上将会有打印输出,迅速 在串口终端上输入任意按键,单板在boot阶段接收到任意输入会停止在等待命 令输入的状态入下图:

在命令提示符下输入如下命令,配置uboot 的环境参数: setenv serverip 192.168.1.100 (该ip地址为ftp server 地址也就是PC机的地址) setenv ipaddr 192.168.1.99 (该地址为单板在uboot环境下的ip地址,linux 系统起来后该地址将无效) setenv ethaddr 00:00:23:34:45:66 setenv netmask 255.255.255.0 setenv gatewayip 192.168.1.1 sa (提示:可以通过复制一行,然后在串口终端下点击右键粘贴到命令提示符。) (4)设置PC环境,运行tftpd32.exe。设置好rootfs 所在的路径,让软件在烧写过程 中处于打开状态。

flash 烧写方法

具体介绍了TMS320VC5402外挂程序存储器的在系统编程技术和方法,结合实例给出了创建系统引导表的具体步骤,并在此基础上重点叙述了TMS320VC5402的并行16位引导装载方法。设计的系统具有较大的灵活性和良好的可扩展性。 TMS320VC5402TMS320VC5402(以下简称C5402)是TI公司的一款性价比极好的16位定点DSP芯片。由于C5402内部只有16K×16位RAM和4K×16位掩膜ROM,用户程序必须存放在外挂的程序存储器中。对程序存储器的编程(即离线编程)通常是通过通用编程器完成的,即用户将要写入的程序转换成编程器能够接收的格式,再通过编程器写入存储器中。随着芯片制造工艺的不断提高,芯片集成度越来越高,存储器正在向小型化、贴片式发展,从而使表面封装或PLCC封装的存储器难以利用编程器编程。目前普遍采用的在系统编程ISP(InSystemProgramming)技术不需要编程器,通过系统的DSP可直接对用户板上的存储器编程,这样不仅节省了通用编程器及适配器的费用,还减少了频繁插拔存储器的麻烦,从而大量节省了系统开发时间,满足了用户程序在线更新的要求。外挂的程序存储器通常选用容量大、存储速度快、功耗低、性价比高的FLASH存储器。由于DSP仿真软件编译链接后生成的是二进制的COFF格式文件,不能直接写入FLASH中,还需通过Hex转换工具将COFF目标文件转换为标准的ASCII码十六进制格式(即Hex格式)。对于离线编程,只需将这种Hex文件直接作为编程器的输入,即可写入FLASH;而在系统编程,则是利用系统本身的DSP,通过软件编程来实现整个烧写过程。因此,如何对FLASH进行烧写是整个在系统编程的一个关键。本文以一片C5402外挂一片FLASH存储器构成的最小系统为实例,介绍采用C语言编写FLASH烧写程序,并通过DSP将用户程序代码写入FLASH,从而实现在系统编程。1DSP与FLASH构成的最小系统 本系统的FLASH存储器选用SST公司的SST39VF400A,用作DSP的数据空间。FLASH的片选信号/CE由DSP的数据空间选择信号/DS和存储器选通信号/MSTRB产生,读使能信号/OE和写使能信号/WE由DSP的读写脉冲信号R/W和/DS、/MSTRB组合产生。FLASH的地址线A0~A15和DSP的A0~A15直接相连,A16和A17接地。由于DSP数据空间0000H~3FFFH为存储器映象寄存器、暂存器和片内RAM,对外部FLASH来讲是不可见的,所以FLASH可操作的地址范围为4000H~0FFFFH。设用户程序从FLASH中8000H单元开始存放,则系统上电时引导程序就从数据空间的8000H单元开始搬运数据到DSP内部RAM指定区域,引导完毕后即跳转到RAM中程序入口地址运行用户程序。

arm烧写Flash过程

?程序调试结束,要将其可执行文件烧写(或称固化)到目标机中Flash运行,这个过程要通过一个 转门的下载软件来进行,以Embest OnLine Flash Programmer for ARM为例,来说明该软件的安装和使用。 ? 1. 安装Flash Programmer ?Flash Programmer安装过程比较简单,运行Flash Programmer安装包中的Setup.exe,按照提示一步 步执行即可。 ?Flash Programmer安装程序将自动区分电脑是否已安装Embest IDE软件的情况: ?①电脑已安装Embest IDE软件,安装程序将会把Flash Programmer缺省安装到“Embest IDE安装目 录\Tools\FlashProgrammer”目录,见图2-24。同时安装程序将自动探测是否安装与IDE软件共享的设备模块和驱动程序,安装完毕后电脑无需重新启动。如果IDE已注册,软件可直接运行。 ?②电脑未安装Embest IDE软件,安装程序将会把Flash Programmer缺省安装到“Program Files\ Embest\FlashProgrammer”目录,安装完毕后需要重新启动。软件正常运行时需要注册。软件安装完成后将缺省建立Embest Tools 程序文件夹,包含执行程序和帮助的快捷方式。 2. Flash Programmer的功能 ?点击Flash Programmer图标,出现图2-25对话框,在第一行有四个一级菜单,下面分别介绍。 ?①文件菜单 ?文件菜单用于保存、打开用户设置的编程配置数据文件,该文件一般以*.cfg形式存在。通过文件 菜单,用户还可以将已打开的编程配置数据文件里另存为其他文件,以及打开最近打开过的四个编程配置文件。文件菜单各子菜单命令如表2-1所示。 ?表2-1 文件菜单

CCS安装使用和RAMFLASH烧写步骤说明

C C S3.3安装使用和R A M_F L A S H烧写步骤说明(1)准备工作(可以参照安装视频) 使用CCS3.3版本,仿真器为XDS510 USB2.0。 准备工作第一步:安装CCS3.3软件。 准备工作第二步:安装CCS3.3Driver到第一步中所在目录。 准备工作第三步:安装仿真器驱动。 (2)建立空工程 (2.1)配置CCS3.3的dsp芯片和仿真器。 点击Setup CCStudio v3.3,选择仿真器和dsp芯片型号 配置仿真器,在F2812 XDS510 Emulator上右键,在选择Properties,出现如下界面:Configuration file是指的CCS驱动中的一个cfg文件,按照上图配置就完成了软件配置过程了,下一步就是启动CCS3.3了。 (2.2)建立空工程 点击Project—》New,出现下图所示界面: 这里工程名设为5leds_timer2,其他默认,然后Finish。出现如下图所示界面: 至此一个空的工程就建立完成,下一步就是向工程中添加6类文件:c文件,h文件,main 主源文件,cmd文件,gel文件和lib文件。先把上述6类文件复制到该工程目录下,然后分别添加6类文件。 (a)首先添加c文件和main主源文件到工程中:在Source上右键Add Files to Project,出现如下图界面,将所有的c文件都添加进来。 (b)然后再将h头文件导入进来。在工程名5leds_timer2.pjt上右键,选择Build Options,在下图所示界面,Compiler选项—》Preprocessor—》Include Search Path中填入工程所在路径E:\dsp_projects\5leds_timer2 这一步不能用add Files to project,因为找不到h文件,在编译的时候就可以在include目录下看到添加的头文件了。 (c)再就是添加cmd文件,先在RAM中运行,所以添加SRAM.cmd,同一块开发板的cmd 是一样,不会随着主源程序功能的变化而变化的。在工程名上右键Add Files to Project,选择SRAM.cmd (d)再就是添加lib文件,在Libraries右键Add Files to Project,选择rts2800n.lib (e)再就是添加gel文件,在工程名上右键Add Files to Project,选择F2812.gel 至此就可以编译整个工程了。然后就是按照需要的功能修改主程序文件和对于的初始化文件了。 (3)烧写到RAM 按照第(2)步骤,编译的结果如下图: 有一个warning: creating ".stack" section with default size of 0x400; use the –stack,这个可以不用管它,但如果想去掉这个警告,可以在工程名上右键选择Build Options,在Linker选项卡下选择Basic,在Heap Size和Stack Size都填入0x400即可。再Rebuild All就不会有警告了。 要烧写进RAM中调试: 先JTAG线连上,USB线插上电脑,开发板通上电。然后Debug—》connect(快捷键为Alt+C),连接成功后,就可以下载程序到RAM了。File—》Load Program下载out文件,如下图所示: 下载完成后,点击Debug—》Run(快捷键为),就可以在RAM中运行程序了。 (4)烧写到FLASH

F28035 FLASH烧写

TMS320X28035的烧写过程 TMS320X28035是TI公司2009年新推出的60M控制芯片,其烧写过程如下:1.使用TI官方CMD文件F28035.CMD,和烧写有关的语句为: RAML0 : origin = 0x008000, length = 0x000800 FLASHD : origin = 0x3F0000, length = 0x002000 ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE = 0 2.在工程中添加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

CCS安装使用和RAMFLASH烧写步骤说明

C C S安装使用和 R A M F L A S H烧写步骤 说明 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

C C S3.3安装使用和R A M_F L A S H烧写步骤说明(1)准备工作(可以参照安装视频) 使用CCS3.3版本,仿真器为XDS510 USB2.0。 准备工作第一步:安装CCS3.3软件。 准备工作第二步:安装CCS3.3Driver到第一步中所在目录。 准备工作第三步:安装仿真器驱动。 (2)建立空工程 (2.1)配置CCS3.3的dsp芯片和仿真器。 点击Setup CCStudio v3.3,选择仿真器和dsp芯片型号 配置仿真器,在F2812 XDS510 Emulator上右键,在选择Properties,出现如下界面: Configuration file是指的CCS驱动中的一个cfg文件,按照上图配置就完成了软件配置过程了,下一步就是启动CCS3.3了。 (2.2)建立空工程 点击Project—》New,出现下图所示界面: 这里工程名设为5leds_timer2,其他默认,然后Finish。出现如下图所示界面: 至此一个空的工程就建立完成,下一步就是向工程中添加6类文件:c文件,h文件,main主源文件,cmd文件,gel文件和lib文件。先把上述6类文件复制到该工程目录下,然后分别添加6类文件。 (a)首先添加c文件和main主源文件到工程中:在Source上右键Add Files to Project,出现如下图界面,将所有的c文件都添加进来。

(b)然后再将h头文件导入进来。在工程名5leds_timer2.pjt上右键,选择Build Options,在下图所示界面,Compiler选项—》Preprocessor—》Include Search Path中填入工程所在路径 E:\dsp_projects\5leds_timer2 这一步不能用add Files to project,因为找不到h文件,在编译的时候就可以在include目录下看到添加的头文件了。 (c)再就是添加cmd文件,先在RAM中运行,所以添加SRAM.cmd,同一块开发板的cmd是一样,不会随着主源程序功能的变化而变化的。在工程名上右键Add Files to Project,选择SRAM.cmd (d)再就是添加lib文件,在Libraries右键Add Files to Project,选择rts2800n.lib (e)再就是添加gel文件,在工程名上右键Add Files to Project,选择F2812.gel 至此就可以编译整个工程了。然后就是按照需要的功能修改主程序文件和对于的初始化文件了。 (3)烧写到RAM 按照第(2)步骤,编译的结果如下图: 有一个warning: creating ".stack" section with default size of 0x400; use the –stack,这个可以不用管它,但如果想去掉这个警告,可以在工程名上右键选择Build Options,在Linker选项卡下选择Basic,在Heap Size和Stack Size都填入0x400即可。再Rebuild All 就不会有警告了。

Nor Flash的烧写方式

相对于硬件工程师和嵌进式软件工程师一般在完成设计之后经常需要验证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 的简单先容 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute ON Chip,即程序可以直接在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对16位的NOR FLASH 芯片,或是工作在16-BIT模式的芯片来说,一个地址对应于一个HALF-WORD(16-BIT)的数据.例如,一块16-BIT的NOR FLASH,假设其容量为4个BYTE.那芯片应该有16 个数据信号线D15-D0 和1个地址信号A0.地址0x0对应于芯片内部的第0个HALF-WORD,地址0x1对应于芯片内部的第1个HALF-WORD. FLASH一般都分为很多个SECTOR,每个SECTOR包括一定数目的存储单元.对有些大容量的FLASH,还分为不同的BANK,每个BANK包括一定数目的SECTOR.FLASH的擦除操纵一般都是以SECTOR,BANK或是整片FLASH为单位的. 在对FLASH进行写操纵的时候,每个BIT可以通过编程由1变为0,但不可以有0修改为1.为了保证写操纵的正确性,在执行写操纵前,都要执行擦除操纵.擦除操纵会把FLASH 的一个SECTOR,一个BANK或是整片FLASH 的值全修改为0xFF.这样,写操纵就可以正确完成了. 2. ARM 处理器的寻址 ARM 可以说是目前最流行的32位嵌进式处理器.在这里只提一下ARM 处理器的寻址,为后面做个展垫.从处理器的角度来看,系统中每个地址对应的是一个BYTE的数据单元.这和很多别的处理器都是一样的. 3. 处理器和NOR FLASH 的硬件连接 从前面的先容,我们知道从处理器的角度来看,每个地址对应的是一个BYTE 的数据单元.而,NOR FLASH 的每个地址有可能对应的是一个BYTE的数据单元,也有可能对应的是一个HALF-WORD的数据单元.所以在硬件设计中,连接ARM处理器和NOR FLASH 时,必须根据实际情况对地址信号做特别的处理. 假如ARM处理器外部扩展的是8-BIT的NOR FLASH, 数据线和地址线的连接应该如图1所示. 从图中我们可以看到,处理器的数据信号D0-D7和FLASH的数据信号D0-D7

相关主题
相关文档
最新文档