flash的烧写
- 格式:doc
- 大小:578.50 KB
- 文档页数:6
uniflash烧写原理
UniFlash是一款由德州仪器(TI)公司开发的用于嵌入式系统
的烧写工具。
它的烧写原理涉及到以下几个方面:
1. 芯片支持,UniFlash支持德州仪器公司生产的多种器件,
包括微控制器、数字信号处理器等。
在烧写原理上,UniFlash需要
能够与目标芯片进行通信,以便将程序或数据写入芯片内部存储器中。
2. 通信协议,UniFlash使用一些通用的通信协议来与目标芯
片进行通信,例如JTAG(联合测试行动组)或者串行通信协议(如SPI、I2C等)。
通过这些协议,UniFlash可以与目标芯片建立连接,实现读写操作。
3. 数据传输,在烧写过程中,UniFlash需要将目标程序或数
据按照特定的格式传输到目标芯片内部。
这涉及到数据的校验、传
输速率的控制等方面的技术。
4. 芯片保护,一些芯片具有写保护功能,UniFlash在进行烧
写操作时需要处理这些保护机制,以确保能够成功地写入数据。
总的来说,UniFlash的烧写原理涉及到与目标芯片的通信、数据传输和芯片保护等方面的技术,以确保程序或数据能够成功地写入目标芯片内部。
这些原理需要结合具体的芯片型号和通信协议来进行实际的应用和操作。
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.BOOT0为1)。
flash电路原理
Flash电路是一种可以通过高电压和电子隧穿效应来擦除和编程信息的非易失性存储器。
它由一系列的晶体管和电容组成,其中每个晶体管与一个电容相连形成了一个存储单元。
每个存储单元可以存储一个位信息(0或1)。
对于擦除操作,高电压会被施加到存储单元的栅极上,使其达到临界电压,电子会跃迁到固定的控制栅极电荷器中,从而擦除存储单元中的信息。
对于编程操作,高电压首先被施加到控制栅极电荷器上,这会在存储单元的控制栅极中形成一个强电场。
此时,通过底部源/漏极施以恰当的电压来控制电荷转移,可以在存储单元中添加或移除电荷以存储或改变信息。
这个过程被称为烧写。
总之,flash电路利用电子隧穿效应和高电压来实现信息的擦除和编程。
C6000(6713示例)的Flash烧写1、安装Flashburn 2.71,启动CCS,Load Gel Files,具体操作如下图1所示。
2、打开Tools-flashburn,Files-New,具体操作如下图2所示。
3、Conversion输入转换CMD,Files To Burn输入待烧写文件,Fbtc Program File输入FBTC.out (根据不同的FLASH进行修改控制字以及ROM位宽)连接文件。
Flash Physical输入起始地址,Byte输入长度4、保存设置,Program-Download FBTC,连接目标板。
5、Program-Erase查出已有的程序,Program-Program Flash进行烧写,具体操作如下图3、图4所示。
附录:DEC-6713/DM642boot程序的编写。
DEC6713codec程序:1.添加DEC6713_boot的GEL文件,打开CODEC_IIS的工程文件.2.往CODEC_IIS工程里面添加boot_c671x_2.s62, c6713_emif.s62两个文件3.用DEC6713_boot的lnk2.CMD文件替换CODEC_IIS自带的CODEC_IIS.cmd4.添加BOOT_C671x.h62到DEC6713_CODEC_IIS的include文件夹里面,右击DEC6713_CODEC_IIS.PJT,Scan All Files Depedencies5.Build ALL6.把DEC6713_CODEC_IIS.out hex6x.exe放在同一个目录,修改DEC6713_boot工程文件的boot.cmd,参考如下DEC6713_CODEC_IIS.out-a-memwidth 8-image-map DEC6713_CODEC_IIS.mapROMS{FLASH: org = 0x90000000, len = 0x0040000,romwidth = 8, files = {BOOT.hex}}SECTIONS{.boot_load /* : PADDR = 0x90000000 */.text.cinit生成BOOT.hex烧写文件,boot.hex文件名可以根据files = {BOOT.hex}来修改.5.图15.图25.图35.图4。
uniflash烧写原理全文共四篇示例,供读者参考第一篇示例:Uniflash烧写原理是指使用Uniflash工具对嵌入式设备进行程序烧写的工作原理。
Uniflash是一款由德州仪器(TI)公司开发的专门用于烧写程序的软件工具,广泛应用于TI公司的各类微控制器和数字信号处理器产品。
Uniflash烧写原理涉及到软件工具、通信协议、算法等多个方面的知识。
首先,Uniflash烧写原理的基础是通信协议。
在烧写过程中,主机(通常是PC机)和目标设备之间需要进行通信,以便主机可以向目标设备发送程序代码和数据。
Uniflash使用的通信协议通常是通过JTAG接口或串行接口(如UART、SPI等)与目标设备进行通信。
这些通信协议通常是经过调试和验证的,以确保数据的正确传输和烧写的有效性。
其次,Uniflash烧写原理还涉及到烧写算法。
烧写算法是指在烧写过程中,主机如何将程序代码和数据写入目标设备的存储器中的逻辑操作。
通常,烧写算法会根据目标设备的存储器类型和结构进行优化设计,以确保烧写的速度和可靠性。
Uniflash提供了各种常用的烧写算法,并且支持用户自定义烧写算法,以满足不同设备和应用的需求。
此外,Uniflash还具有丰富的功能和友好的界面。
用户可以通过Uniflash软件工具对目标设备的程序进行烧写、擦除、验证等操作,实现对嵌入式设备的灵活控制。
同时,Uniflash还支持批量烧写、自动化脚本等功能,提高烧写效率和便利性。
总的来说,Uniflash烧写原理是一个复杂而全面的体系,涉及到软件工具、通信协议、烧写算法等多个方面的知识。
只有深入理解Uniflash烧写原理,才能更好地应用Uniflash工具进行程序烧写,实现对嵌入式设备的有效管理和维护。
Uniflash的不断优化和更新也将不断推动嵌入式设备开发的进步和发展。
第二篇示例:Uniflash是一款用于嵌入式系统烧写的工具软件,由德州仪器(TI)公司开发。
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中。
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地址。
st cubeide flash烧写算法随着嵌入式系统的不断发展,对于Flash烧写算法的需求也越来越大。
作为一种重要的存储介质,Flash在嵌入式系统中扮演着至关重要的角色。
而st cubeide作为一款嵌入式开发工具,其Flash烧写算法更是备受关注。
本文将就st cubeide Flash烧写算法展开详细的介绍和分析。
一、st cubeide概述st cubeide是由意法半导体公司(STMicroelectronics)推出的集成开发环境(IDE),主要用于开发和调试ST的STM32系列单片机。
st cubeide具有强大的功能和丰富的工具链,对于嵌入式系统的开发十分便捷高效。
二、Flash烧写算法的重要性Flash烧写算法是指将程序或数据写入Flash中的一种算法,它直接关系到嵌入式系统的可靠性和稳定性。
在嵌入式系统中,Flash烧写算法的良好性能对于产品的质量和稳定性具有至关重要的作用。
Flash烧写算法的设计和实现是开发工程师们需要重点关注和深入研究的技术方向之一。
三、st cubeide Flash烧写算法的实现st cubeide针对不同的STM32系列单片机,为开发者提供了灵活多样的Flash烧写算法实现方式。
在st cubeide中,通过设置Flash烧写算法的参数、选择合适的算法模块等操作,即可轻松实现对Flash的烧写和擦除。
st cubeide灵活丰富的Flash烧写算法接口,使得开发者能够便捷快速地完成对Flash的操作,大大提高了开发效率。
四、st cubeide Flash烧写算法的优势相比于其他开发工具,st cubeide具有独特的优势和特点,使得其在Flash烧写算法的实现上具有明显的优势。
st cubeide提供了丰富的示例代码和文档,方便开发者学习和使用。
st cubeide具有友好的用户界面和强大的调试功能,能够帮助开发者快速定位和解决问题。
再次,st cubeide支持多种连接方式,包括仿真器、调试器等,满足不同场景下的需求。
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存储器中的数据,并与写入的固件或数据进行比较。
jtag烧写flash原理JTAG烧写Flash原理一、JTAG简介JTAG(Joint Test Action Group)是一种标准的芯片测试和编程接口,它可以在不需要物理插头的情况下测试和编程芯片。
它是由IEEE (Institute of Electrical and Electronics Engineers)制定的标准,目前已经成为了一个广泛应用于数字电路测试和调试的标准接口。
二、JTAG烧写Flash原理Flash存储器是一种非易失性存储器,它可以在断电后保持数据。
因此,Flash存储器被广泛应用于各种嵌入式系统中。
在设计和开发过程中,需要对Flash存储器进行烧写操作以更新或修改程序代码。
JTAG接口可以用于烧写Flash存储器。
其原理如下:1. JTAG接口连接首先,将目标设备的JTAG接口与烧写设备的JTAG接口相连。
这个连接通常包括四个信号线:TCK、TMS、TDI和TDO。
2. 进入ISP模式通过向目标设备发送特定的命令序列,在目标设备中进入ISP(In-System Programming)模式。
在ISP模式下,目标设备将会响应来自烧写设备的命令,并将Flash存储器暴露给烧写设备。
3. 读取Flash存储器状态烧写设备通过JTAG接口向目标设备发送命令,以读取Flash存储器的状态。
这些状态包括Flash存储器的大小、页大小、块大小以及是否需要擦除等信息。
4. 擦除Flash存储器在烧写新程序代码之前,必须先将Flash存储器擦除。
为了提高效率,通常只需要擦除需要烧写的代码所在的块。
5. 写入新程序代码在完成Flash存储器的擦除后,可以开始写入新程序代码。
烧写设备通过JTAG接口向目标设备发送命令和数据来完成这个过程。
通常,数据是按页或块大小分批次写入的。
6. 验证新程序代码在完成新程序代码的烧写后,需要进行验证以确保数据正确性。
烧写设备通过JTAG接口向目标设备发送命令和数据来读取已经烧写到Flash存储器中的数据,并将其与原始数据进行比较。
JTAG烧写Flash原理一、什么是JTAG?JTAG(Joint Test Action Group)是一种用于芯片测试和调试的标准接口。
它定义了一组用于访问目标设备内部结构、获取芯片状态以及进行调试和编程的信号和协议。
JTAG具有广泛的应用,其中之一是在软件开发过程中用于烧写Flash存储器。
二、Flash存储器简介Flash是一种非易失性存储器,它可以电擦除和编程。
Flash存储器通常用于存储程序代码和数据,它在数字设备中起到了至关重要的作用。
在许多嵌入式系统中,Flash存储器被作为主存储器使用,因此在研发过程中烧写程序代码和数据到Flash存储器是非常常见的任务。
三、JTAG烧写Flash的基本原理JTAG烧写Flash的基本原理是通过JTAG接口读取目标设备的内部状态、控制信号以及访问存储器地址,然后将要烧写的数据写入Flash存储器。
下面将详细介绍JTAG烧写Flash的过程。
JTAG接口的连接首先,需要将烧写设备(如JTAG调试器)与目标设备上的JTAG接口连接。
JTAG 接口通常包括TCK(时钟信号)、TMS(状态信号)、TDI(数据输入信号)和TDO (数据输出信号),通过连接这些信号,烧写设备可以与目标设备进行通信。
进入和退出JTAG模式在JTAG烧写Flash之前,需要将目标设备进入JTAG模式。
这可以通过在JTAG接口上发送一系列特定的JTAG命令来实现。
进入JTAG模式后,目标设备的内部状态机会切换到与JTAG相关的状态,以便进行后续的烧写操作。
完成烧写后需要退出JTAG模式,将目标设备恢复到正常的运行模式。
读取目标设备状态在进行烧写操作之前,需要读取目标设备的当前状态。
这可以通过发送特定的JTAG命令,并从目标设备的TDO信号上读取返回的状态信息。
目标设备的状态包括Flash存储器是否就绪、是否处于保护状态等。
根据不同的状态,可以确定是否可以进行烧写操作。
编程Flash存储器一旦目标设备进入了JTAG模式并且处于可编程状态,就可以开始进行烧写操作了。
问题描述:TI DSP flash烧写及自启动DSP型号:DM642所有的系统在结束了仿真器开发后,都需要解决一个问题,就是将程序烧写到外部存储芯片中,完成系统上点后的自启动和引导,大多数,就是flash的烧写和自启动。
一,系统初期,没有估计到这部分的工作量,直到与苏工结帐时仍然以为这是一个手到擒来的过程。
也许是以前在实验室,单片机和FPGA的开发过程中,没有遇到过类似的问题,所以我相当然地以为对于DSP也是同样的过程。
现在想想,单片机是用单独的编程器烧写,而FPGA因为开发板提供厂商已经把大量的底层都完善了,我们所需要做得仅仅是编译产生下载文件,下载,OK!按理说,如果我们也是采取购买开发板的途径进行开发,开发板提供厂商也应该把这部分工作做完了。
但是,我们找的是单独的小公司设计一块系统板,这部分工作,尤其是如果系统板和开发板有所不同的这部分工作,就应改在设计初期,签合同时,明确提出来是谁做,做到权责明析,很遗憾我们没有。
而且,在项目进行中和那个帮我们做板子的人有点不愉快,最要命的是我已经把项目款付给了人家,接下来的工作量,就不能不说是我们自找的了。
二,我意识到,我不得不自己去做这部分工作了,于是开始想要借力合众达。
合众达是TI的官方合作伙伴,中国TI DSP的技术支持。
一开始,合众达觉得我是它们开发板的潜在买家。
于是开始费力地给我介绍它们的VPM642。
于是我告诉它们,我的系统是自己设计的,希望能够得到它们的支持。
他们于是好奇地研究了研究我的板子,然后告诉我,它们这边只是支持合众达的VPM642开发板,而且我的板子和它们的不同,它们也不保证提供的在VPM642上work的东西在我的板子上也能正常工作。
anyway,我说给我吧,我可以作为参考。
于是我搞到两块板子的图纸,开始详细比较二者的不同。
三,根据我比较的结果,我认为,二者没有本质的不同,都是AMD的芯片,型号有差异,一个33,一个320,它们能用的我应该也能用。
DSP2812成功批量烧录下载、调试仿真DSP2812_FLASH烧写成功经验总结初次接触DSP2812的FLASH烧写,在“成功”锁死2块DSP2812和处理了一堆报错后,终于烧写成功。
其中CMD\LIB\ASM文件,可以在网上下载到,大家找找就可以1. 一定要下载最新的FLASH烧写插件,可以避免很多奇怪的错误出现,这一点非常重要,本人就是在此问题困扰了一整天。
2.下载烧写FLASH配套CMD文件、LIB文件以及起始代码asm文件。
CMD文件名称:DSP281x_Headers_nonBIOS.cmdCMD文件名称:F2812.cmdLIB文件名称:rts2800_ml.libASM文件名称:DSP281x_CodeStartBranch.asm另外在RAM调试时用以下两个文件:F2812_EzDSP_RAM_lnk.cmdDSP281x_Headers_nonBIOS.cmd3.配置C文件配置好主程序的C文件,才能将FLASH成功烧录,并且将FLASH中的文件拷贝到RAM中运行。
关于C文件的配置。
首先在F2812.CMD文件中,我们可以看到有关于加载FLASH到RAM的内容,以及在C文件中调用FLASH 到RAM的函数memcpy,将它放在系统初始化(InitSystem();)之后即可,所以,我们需要定义所用变量,这些定义都是:DSP281x_GlobalPrototypes.h 当中,当然,也可以放在其他系统初始化的地方。
Memcpy这个函数应该是rts2800_ml.lib库文件中自带的,不需要我们定义。
关于FLASH的初始化配置Initflash(); 我把它放置在Memcpy 函数之后。
关于ramfuncs,则在系统初始化中定义即可。
如:sysctrl.c中#pragmaCODE_SECTION(InitFlash, "ramfuncs"); 另外,许多朋友没有注意需要定义自己其他子程序,导致最终运行的主程序还是在FLASH中,比如你需要运行的子程序ABC,则需要定义#pragma CODE_SECTION(ABC, "ramfuncs") 烧写成功后的注意事项:1 一定要拔除仿真器(JTAG端),给电路板重新上电,方能实现FLASH启动。
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.BOOT0为1)。
主要讲的是烧录时出现的一个错误.有时烧录时会出现Could not find any flash devices 的错误,不要紧张,只需要改动一个地方就ok了如下图所示,上图为无法下载时的状态,下图为改后可以下载的状态.
注意erase中的内容
只需改动这一处就ok了
以下内容是j-flash 的基本设置,可以参考一下
1.双击此图标打开j-flash
2
file-open project 选择你的芯片型号,我的是stm32103RB.
3
file-open data file 选择需要的程序固件.hex或.bin均可.
4
Options-project setting 进行相关配置.如图即可
5
照图上设置即可
6
照图上设置即可
7
此页默认即可
8
9开始下载了哦, 方便起见,此版本的J-FLASH下载固件时直接按F7即可,其他的下载方式基本是先按connect,再erase最后program即可,不过肯定都有快捷键.
10 下载成功后基本上log菜单栏里是这样的描述.我是说基本上哦
完.。
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 完成烧写。
具体介绍了TMS320VC5402外挂程序存储器的在系统编程技术和方法,结合实例给出了创建系统引导表的具体步骤,并在此基础上重点叙述了TMS320VC5402的并行16位引导装载方法。
设计的系统具有较大的灵活性和良好的可扩展性。
<P关键词:DSPTMS320VC5402FLASHSST39VF400A在系统编程引导装载< P>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,从而实现在系统编程。
以下是一些常见的Flash烧写器技术指标:
1. 容量支持:Flash烧写器应该支持多种容量的闪存芯片,例如1GB、4GB、8GB 等。
2. 速度:烧写速度是一个重要的指标,它表示在单位时间内能够完成的烧写操作数量。
通常以MB/s或者MHz来衡量。
3. 接口类型:Flash烧写器可以使用多种接口类型连接到计算机或其他设备上,常见的接口类型包括USB、SATA、PCIe等。
4. 支持的芯片类型:Flash烧写器应该支持多种不同厂家和型号的闪存芯片,例如NAND Flash、NOR Flash等。
5. 多路烧写:有些烧写器支持多路烧写,即同时对多个闪存芯片进行烧写操作,提高生产效率。
6. 稳定性:Flash烧写器应具备稳定的工作性能,确保烧写操作的准确性和可靠性。
7. 兼容性:烧写器应该兼容不同操作系统,例如Windows、Linux等。
8. 软件支持:烧写器通常需要配套的软件来控制和管理烧写操作,良好的软件支持可以提供更便捷的使用体验。
请注意,具体的技术指标可能因不同的烧写器品牌、型号和用途而有所差异。
在选择Flash烧写器时,需要根据实际需求和预算考虑这些指标,并与厂商进行沟通确认。
1。
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.
大功告成。
一、环境搭建
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 flash
1、启动ipc,在u_boot启动完成后,按任意键进入u_boot命令模式。
2、通过以下命令可以烧写nand flash:详:见Flash_Parts.txt
SPI Flash
1)烧写u-boot(最好不要烧写u_boot,如果烧写出错,没有工具是很难恢复的) mw.b 0x82000000 0xff 0x100000
tftp 0x82000000 u-boot-200MHZ.bin
sf probe 0
sf erase 0 0x100000
sf write 82000000 0 100000
reset
2)烧写内核
mw.b 0x82000000 0xff 0x2E0000
tftp 0x82000000 uImage
sf probe 0
sf erase 0x100000 0x2E0000
sf write 0x82000000 0x100000 0x2E0000
mw.b 0x82000000 0xff 0x2E0000;tftp 0x82000000 uImage;sf probe 0;sf erase 0x100000 0x2E0000;sf write 0x82000000 0x100000 0x2E0000
3)烧写文件系统
mw.b 0x82000000 0xff 0x9E0000
tftp 0x82000000 rootfs.img
sf probe 0
sf erase 0x3E0000 0x9E0000
sf write 0x82000000 0x3E0000 0x9E0000
mw.b 0x82000000 0xff 0x9E0000; t ftp 0x82000000 rootfs.img;sf probe 0;sf erase 0x3E0000 0x9E0000;sf write 0x82000000 0x3E0000 0x9E0000
4)烧写config
mw.b 0x82000000 0xff 0x140000
tftp 0x82000000 config.bin
sf probe 0
sf erase 0xDC0000 0x140000
sf write 0x82000000 0xDC0000 0x140000
mw.b 0x82000000 0xff 0x140000;tftp 0x82000000 config.bin;sf probe 0;sf erase 0xDC0000 0x140000;sf write 0x82000000 0xDC0000 0x140000
四、进入后台(文件系统)烧写nand flash
这种烧写方式可用于系统升级。
1、进入后台执行以下命令:
$tftp -gr uImage 192.168.1.113 (pc 机的ip,pc机上的tftp服务)
$dd if=uImage of=/dev/mtdblock1 (dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
)详:见dd命令的解释
$reboot
mtdblockX要对上号,可从ipc启动是的打印信息查看(使用命令dmesg,ipc打印的部分信息如下:)
Creating 5 MTD partitions on "hi_sfc":(创建了5个分区)
0x000000000000-0x000000100000 : "boot"
0x000000100000-0x0000003e0000 : "kernel"
0x0000003e0000-0x000000dc0000 : "rootfs"
0x000000dc0000-0x000000f00000 : "config"
0x000000f00000-0x000000f10000 : "key"。