资料介绍
引言
一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。
Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。
本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。
图1 系统上电的工作步骤 图2 程序流程
Flash编程方法
常见的Flash编程方式
Flash在正常使用前必须写入用户程序,传统上有3种编程方法:由供应商出货前把程序代码写入Flash、编程器编程和在系统编程。
第1种方法不能满足用户更改代码的需求,所以在开发阶段不宜采用。当使用编程器编程时,要求Flash固定在PCB板前必须把用户程序写入片内。因此,现在一般都优先考虑在系统编程方法,首先应确定所选的DSP是否直持在系统编程。现行的在系统编程的方法一般是先把待加载程序(用户程序)的.out文件(COFF格式)转成HEX格式,然后去掉HEX格式文件的文件头,再通过烧写程序写到Flash里去。也可以不进行COFF格式到HEX格式的转换这一步,把COFF文件作为源文件,去除文件头信息后将其写入Flash。
本文方法的编程原理
本文的实现方法比较简单,首先把用户程序映射到系统RAM,再把用户程序作为数据直接从RAM搬入Flash中。
首先在CCS上完成用户程序,生成可执行的.out文件,将该文件设为文件1进行加载;然后加载烧写程序的.out文件,将其设为文件2;最后运行文件2,通过它把文件1烧入Flash。
操作步骤非常简单,这里要说明几点。首先,2个.out文件各自独立,文件2加载后,文件1成为数据,CCS在运行时,运行的是最新加载的程序,也即文件2。其次,文件2与文件1映射到RAM中的物理空间各自独立,也就是文件2不能映射到文件1已映射的地方,如果发生重叠,文件2的内容就会覆盖原先文件1映射到该地址空间的内容,写入Flash的内容就会发生错误。再次,用户程序里包括了二次加载程序,以在自举时把用户程序从Flash还原到RAM中。
总线周期
命令1 2 3 4 5 6
序列地址 数据地址 数据地址 数据地址 数据地址 数据地址 数据
软件复位XXXF0
芯片擦除XXXAAXXX55XXX80XXXAAXXX55XXX10
扇区擦除XXXAAXXX55XXX80XXXAAXXX55SA30
字节写XXXAAXXX55XXXA0PAPD
表1 Am29LV033C内存指令表
二次加载和Bootloader
要保证用户程序的正确运行,仅把程序写入Flash是不够的,必须保证上电后,程序能够从Flash中正确恢复到RAM。系统上电工作步骤如图1所示。
DSP首先自检,得到程序的加载模式。在C6000中主要有2种模式,一种是主机加载模式,也即DSP从0x0000 0000开始执行程序;另一种是ROM加载模式,该模式又有8位、16位、32位几种,不同的DSP略有不同,这里选用8位ROM模式。工作时,DSP先从地址0x9000 0000开始,把0x9000 0000~0x9000 0400这1K(在C62xx中是64K)的数据搬到0x0000 0000~0x0000 0400,然后再从0x0000 0000开始执行程序。这一次加载由DSP自行完成,但是1K的程序作为用户程序显然不够,因此,这1K的程序要做成加载器,也就是手工写的Bootloader,利用它把用户程序从Flash搬入RAM。加载器搬运用户程序又是一次加载,因此把这个过程统称为二次加载。
Bootloader要完成两项功能,第一,把其它程序搬到指定的地址;第二,跳转到用户程序入口,这里要先修改ISP,再跳转到复位中断,因此在Bootloader的最后总是一条跳转指令。由于Bootloader在Flash中的位置是0x9000 0000~0x9000 0400,而Bootloader又是放在用户程序里的,因此,为了方便烧写程序把Bootloader写到该位置,这里在用户程序的.cmd文件中把bootloader定位在程序段的起始位置。
一个完整的嵌入式系统必须要有一个合适的存储器存放用户代码。Flash是一种非易失性存储器,而且具有电可擦写、容量大、价格便宜等特点,通常可用于在DSP系统中存放用户代码。
Flash在正常使用前要进行编程,即将用户代码写入Flash。在系统编程方法不需要其它编程设备和编程电源,只借助于仿真器,可直接通过DSP烧写程序对Flash进行编程。本文所使用的编程方法就属于在系统编程。
本文首先介绍常见的Flash编程方法,然后详细介绍本文方法的原理,以及DSP系统上电加载原理,最后给出整个实现过程并分析了Flash编程时需要注意的一些问题。
图1 系统上电的工作步骤 图2 程序流程
Flash编程方法
常见的Flash编程方式
Flash在正常使用前必须写入用户程序,传统上有3种编程方法:由供应商出货前把程序代码写入Flash、编程器编程和在系统编程。
第1种方法不能满足用户更改代码的需求,所以在开发阶段不宜采用。当使用编程器编程时,要求Flash固定在PCB板前必须把用户程序写入片内。因此,现在一般都优先考虑在系统编程方法,首先应确定所选的DSP是否直持在系统编程。现行的在系统编程的方法一般是先把待加载程序(用户程序)的.out文件(COFF格式)转成HEX格式,然后去掉HEX格式文件的文件头,再通过烧写程序写到Flash里去。也可以不进行COFF格式到HEX格式的转换这一步,把COFF文件作为源文件,去除文件头信息后将其写入Flash。
本文方法的编程原理
本文的实现方法比较简单,首先把用户程序映射到系统RAM,再把用户程序作为数据直接从RAM搬入Flash中。
首先在CCS上完成用户程序,生成可执行的.out文件,将该文件设为文件1进行加载;然后加载烧写程序的.out文件,将其设为文件2;最后运行文件2,通过它把文件1烧入Flash。
操作步骤非常简单,这里要说明几点。首先,2个.out文件各自独立,文件2加载后,文件1成为数据,CCS在运行时,运行的是最新加载的程序,也即文件2。其次,文件2与文件1映射到RAM中的物理空间各自独立,也就是文件2不能映射到文件1已映射的地方,如果发生重叠,文件2的内容就会覆盖原先文件1映射到该地址空间的内容,写入Flash的内容就会发生错误。再次,用户程序里包括了二次加载程序,以在自举时把用户程序从Flash还原到RAM中。
总线周期
命令1 2 3 4 5 6
序列地址 数据地址 数据地址 数据地址 数据地址 数据地址 数据
软件复位XXXF0
芯片擦除XXXAAXXX55XXX80XXXAAXXX55XXX10
扇区擦除XXXAAXXX55XXX80XXXAAXXX55SA30
字节写XXXAAXXX55XXXA0PAPD
表1 Am29LV033C内存指令表
二次加载和Bootloader
要保证用户程序的正确运行,仅把程序写入Flash是不够的,必须保证上电后,程序能够从Flash中正确恢复到RAM。系统上电工作步骤如图1所示。
DSP首先自检,得到程序的加载模式。在C6000中主要有2种模式,一种是主机加载模式,也即DSP从0x0000 0000开始执行程序;另一种是ROM加载模式,该模式又有8位、16位、32位几种,不同的DSP略有不同,这里选用8位ROM模式。工作时,DSP先从地址0x9000 0000开始,把0x9000 0000~0x9000 0400这1K(在C62xx中是64K)的数据搬到0x0000 0000~0x0000 0400,然后再从0x0000 0000开始执行程序。这一次加载由DSP自行完成,但是1K的程序作为用户程序显然不够,因此,这1K的程序要做成加载器,也就是手工写的Bootloader,利用它把用户程序从Flash搬入RAM。加载器搬运用户程序又是一次加载,因此把这个过程统称为二次加载。
Bootloader要完成两项功能,第一,把其它程序搬到指定的地址;第二,跳转到用户程序入口,这里要先修改ISP,再跳转到复位中断,因此在Bootloader的最后总是一条跳转指令。由于Bootloader在Flash中的位置是0x9000 0000~0x9000 0400,而Bootloader又是放在用户程序里的,因此,为了方便烧写程序把Bootloader写到该位置,这里在用户程序的.cmd文件中把bootloader定位在程序段的起始位置。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于TMS320DM642的硬件实现IEEE1588时钟同步
- 如何从进行TMS320DM642到TMS320DM6467的迁移 12次下载
- TMS320DM642中文资料 10次下载
- TMS320DM642中文手册 28次下载
- 基于TMS320DM642的嵌入式Web服务器设计 15次下载
- TMS320DM642-500,pdf(Video/Imag
- TMS320DM642-600,pdf(Video/Imag
- 基于TMS320DM642的视频采集卡设计
- 基于TMS320DM642的疲劳驾驶检测系统
- 基于TMS320DM642的网络摄像机的设计及实现
- 基于TMS320DM642平台的H.264编码器优化
- TMS320DM642 E开发板技术参考手册
- 基于DSP TMS320DM642的H.264视频编码的实现
- 基于TI TMS320DM642平台的H.324可视电话设计
- TMS320DM642 pdf datasheet
- 基于TMS320DM642和EPM240芯片实现图像采集与处理系统的设计 3266次阅读
- 基于TMS320DM643芯片和TCP/IP NDK网络开发包实现电视采集系统的设计 2572次阅读
- 基于CY7C68033和TMS320DM6437芯片实现高速图像采集处理系统的设计 2297次阅读
- 基于DSP芯片TMS320DM642实现剖面声纳系统的设计 2712次阅读
- 基于TMS320C6203 DSP芯片实现G.729ab声码器的应用方案 2874次阅读
- 基于TMS320DM642 DSP芯片实现IMlab6421视频服务器的设计 2147次阅读
- 基于TMS320DM642多媒体芯片实现视频监控系统的应用方案 3158次阅读
- TMS320C6748和TMS320C6747芯片对比 1.6w次阅读
- dsp tms320c6000基本作用的认识 9580次阅读
- 以FPGA和TMS320DM642为核心的实时图像采集和处理系统设计详解 2781次阅读
- TMS320f28335控制AD7656的硬件电路设计 1.1w次阅读
- 基于DSP的嵌入式数字摄像夜间能见度测量系统 3503次阅读
- DM642上5/3提升小波的优化 1373次阅读
- 基于TMS320DM642的Flash编程 1379次阅读
- 基于TMS320C642电子稳像的实现 1638次阅读
下载排行
本周
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 50次下载 | 免费
- 2SL6341B USB3.2 Gen1X1 接口的的4口HUB
- 2.94 MB | 5次下载 | 免费
- 3FT-7800R对讲机维修手册附原理图
- 3.35 MB | 2次下载 | 免费
- 4和芯润德USB3.0HUB芯片SL6341设计资料
- 2.58 MB | 2次下载 | 免费
- 5TPS80032原理图核对表
- 74.95KB | 2次下载 | 免费
- 6使用CR6850C设计并制作12V5A开关电源
- 1.53 MB | 2次下载 | 2 积分
- 7设计院eplan 500多页项目图纸
- 21.43 MB | 2次下载 | 1 积分
- 82.1 MHz类放大器电感选择指南
- 598.3KB | 1次下载 | 免费
本月
- 1新概念模拟电路第四册信号处理电路电子书免费下载
- 10.69 MB | 50次下载 | 免费
- 2SW6308V原理图设计指南
- 0.75 MB | 14次下载 | 1 积分
- 3SW6308V三口多协议升降压移动电源SOC中文手册
- 1.61 MB | 14次下载 | 1 积分
- 4纯电动汽⻋的主要部件及⼯作原理
- 5.76 MB | 12次下载 | 5 积分
- 5800VA纯正弦波逆变器的参考设计
- 2.96MB | 12次下载 | 免费
- 6GP328和GP88S对讲机的维修实列资料合集免费下载
- 0.03 MB | 10次下载 | 10 积分
- 7SW6308V寄存器手册
- 1.08 MB | 10次下载 | 1 积分
- 8IP5385_DEMO开发资料
- 1.96 MB | 8次下载 | 2 积分
总榜
- 1matlab软件下载入口
- 未知 | 935115次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420061次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233084次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191364次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183329次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81581次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73805次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65985次下载 | 10 积分
评论
查看更多