C671x flash烧写流程

上传者: chiffo | 上传时间: 2024-10-10 10:31:24 | 文件大小: 226KB | 文件类型: PDF
### 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烧写工作,进而推动项目的顺利进展。在未来的工作中,我们还可以进一步探索更多高级的烧写技术和优化方法,以满足不断发展的需求。

文件下载

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明