### C671x Flash烧写流程详解 #### 一、引言 在嵌入式系统开发中,DSP(Digital Signal Processor)作为一种专门用于信号处理的微处理器,因其高效的处理能力而广泛应用于通信、音频、视频等多个领域。TI(Texas Instruments)作为DSP领域的领军企业,其C6000系列DSP更是受到众多开发者的青睐。本文将详细介绍TI C6713 DSP的Flash烧写流程,旨在帮助开发者更好地理解和掌握这一过程。 #### 二、准备阶段 在进行Flash烧写前,我们需要确保已经完成以下准备工作: 1. **已经使用RAM调试好的程序**:这是烧写前的一个必要条件,意味着程序已经在RAM中调试通过,可以正常运行。 2. **原有的CMD文件**:CMD文件用于定义链接器如何链接程序,包括代码段、数据段等的分配。为了进行Flash烧写,需要准备一个适合Flash烧写的CMD文件。 #### 三、修改与编译 接下来是具体的烧写流程步骤: 1. **加入二次Boot程序并替换CMD文件**:为了实现从Flash启动,我们需要在原有程序中加入二次Boot程序,并替换原有的CMD文件。二次Boot程序主要用于处理从Flash读取主程序的过程。需要注意的是,如果原程序中使用了中断表,则需要保持中断表不变。 2. **重新编译生成.OUT文件**:修改后的源代码需要重新编译,生成适用于Flash烧写的.OUT文件。编译过程中,需要确保所有必要的配置正确无误,例如选择正确的编译器选项和目标设备等。 #### 四、二次Boot程序解析 二次Boot程序是烧写流程中的关键部分,下面详细解析其中的一部分代码示例: ```assembly ;========boot_c671x.s62======== ; .title "Flash boot up utility" .option D, T .length 102 .width 140 ; global EMIF symbols defined for the c671x family .include boot_c671x.h62 .sect ".boot_load" .global_boot .global_text_size .global_text_ld_start .global_text_rn_start .ref_c_int00_boot: ;************************************************************************ ;* DEBUG LOOP - COMMENT OUT B FOR NORMAL OPERATION ;************************************************************************ zero B1 _myloop: ; [!B1] B_myloop nop 5 _myloopend: nop ;************************************************************************ ;* CONFIGURE EMIF ;************************************************************************ ;**************************************************************** ;* EMIF_GCTL = EMIF_GCTL_V; ;**************************************************************** mvkl EMIF_GCTL, A4 || mvkl EMIF_GCTL_V, B4 mvkh EMIF_GCTL, A4 || mvkh EMIF_GCTL_V, B4 stw B4, *A4 ;**************************************************************** ;* EMIF_CE0 = EMIF_CE0_V ;**************************************************************** mvkl EMIF_CE0, A4 || mvkl EMIF_CE0_V, B4 mvkh EMIF_CE0, A4 || mvkh EMIF_CE0_V, B4 stw B4, *A4 ;**************************************************************** ;* EMIF_CE1 = EMIF_CE1_V (setup for 8-bit async) ;**************************************************************** mvkl EMIF_CE1, A4 || mvkl EMIF_CE1_V, B4 mvkh EMIF_CE1, A4 || mvkh EMIF_CE1_V, B4 stw B4, *A4 ;**************************************************************** ;* EMIF_CE2 = EMIF_CE2_V (setup for 32-bit async) ;**************************************************************** mvkl EMIF_CE2, A4 || mvkl EMIF_CE2_V, B4 mvkh EMIF_CE2, A4 || mvkh EMIF_CE2_V, B4 stw B4, *A4 ``` 此段代码主要实现了以下几个功能: - 设置一个Debug循环,可用于测试目的。在实际部署时应注释掉这部分代码。 - 配置EMIF(External Memory Interface),为后续读取Flash做准备。 - `EMIF_GCTL`:设置全局控制寄存器。 - `EMIF_CE0`、`EMIF_CE1`、`EMIF_CE2`:分别配置CE0、CE1、CE2芯片选择寄存器,用于设定不同接口的工作模式。 #### 五、总结 本文详细介绍了TI C6713 DSP的Flash烧写流程,包括准备工作、修改与编译以及二次Boot程序的具体实现。通过对这些步骤的理解和实践,开发者可以更加高效地完成DSP程序的Flash烧写工作,进而推动项目的顺利进展。在未来的工作中,我们还可以进一步探索更多高级的烧写技术和优化方法,以满足不断发展的需求。
2024-10-10 10:31:24 226KB C6713 dsp flash
1
详细的dsp程序烧写教程,能够帮助理解dsp的运行流程
2023-09-16 22:36:35 4.6MB DSP flash 烧写
1
c6455 flash 烧写代码共享 c6455 flash 烧写代码共享
2023-07-09 19:20:20 1.57MB c6455 flash 烧写代码 共享
1
详细的介绍了基于FLASH的烧写过程
2023-03-01 21:41:55 1.82MB FLASH烧写
1
W801和W806单片机的FLASH烧写算法
2022-11-08 10:04:15 69KB 单片机 算法 嵌入式硬件 W801
1
为了更好的使用CCSV3.3,烧写FLASH
2022-11-07 17:50:46 85KB flashburn
1
非常好的资源
2022-09-03 10:06:43 709KB mcu
1
Linux下的flash烧写工具,具体使用方法可以在网上搜索一下,这也是我在网上找到的,不知道是不是修改过。
2022-06-25 19:28:04 8KB flash烧写 linux jtag
1
codewarrior烧写文件方法
2022-02-14 09:04:06 6.97MB codewarrior flash烧写
1
在一些脱机运行的 DSP应用中,通常需要在系统加电后自行将代码从外扩存储器中装载到内部 DSP 中去执行,实现此种功能的系统称为引导装载系统。这是 DSP开发中的重点和难点之一,关系到系统的可靠性 和处理速度。在分析 TI公司 TMS320C6713 DSP的引导加载过程及原理基础上,设计并实现了主机利用仿真器 通过JTAG口实现对DSP外部配置的FLASH存储器的在线编程,并以TI公司的DSP结合ST公司的FLASH存 储器( SST39VF800A)为例,叙述了从 FLASH引导程序的实现方法,并针对
2021-12-21 17:37:03 836KB 工程技术 论文
1