T MS320C6000系列 DSP在片内固化了 Bootl oader代码 ,这段代码负责在DSP上电时从外部空间搬移
1 k (C621X /C671X)或者 64 k (C620X/C670X)的代码到地址 0处 ,然后从地址 0处执行。一般情况下 1 k
或者 64 k代码量对于一个真实的应用系统来说是远远不够的 ,这就需要进行二次 Bootl oader。
C6000 系列 DSP 提供 3 种引导模式, 无引导NO BOOT) ROM 引导( ROM BOOT) 和主机引导
HOST BOOT) , 具体用哪种模式由芯片外部引脚决定 无引导方式就是 CPU 上电后直接从存储器地
址0 处开始执行; ROM 引导方式是 DSP 在片内固化了引导代码, 负责在 DSP 上电时从外部空间 CE1 处
起始位置搬移1k 字节的代码到地址0 处, 然后从地址0 处执行; 主机引导是器件上电后, CPU 保持复位
状态, 外部主机将应用程序写到 DSP 内部, 并修改相应的寄存器内容, 完成后置位 DSPINT, 使 CPU 从地址0 处开始运行 第 1 种方式只能用于仿真运行; 第3 种方式一般用于存在主机的设备, 而在实际DSP 系统中最常采用的是第 2 种方式, 它只需要一片非易失性存储器就可方便实现程序配置。
The program, located in external ROM, is copied to address 0 by the direct memory access/extended direct memory access (DMA/EDMA) controller. On TMS320C62x/TMS320C67x, this boot process also lets you choose the width of the ROM. For the TMS320C620x/TMS320C670x, these values are expected to be stored in little-endian format in the external memory。
C620x/C670x: The DMA copies 64K bytes from CE1 to address 0, using default ROM timings. After the transfer, the CPU begins executing from address 0.
For the C620x/C670x the dedicated BOOTMODE[4:0] pins determine the device boot
configurations.
在 ROM 引导时, DSP 上电复位后, 会通过EDMA控制器自动传输 flash 地址0 开始的1K 字节空间到DSP 内部的RAM 中, 传输完毕后CPU 复位,程序从地址0 处开始执行 而由于通常的用户程序都大于1K 字节, 所以需要进行二次引导, 将更大空间的程序搬移到 DSP 内部的 RAM 中 这样在上述传输的1k 字节空间就应存放一个二次引导程序,用于在 DSP 复位后将外部 flash 保存的应用程序搬移到内部来, 当二次引导完毕后, 程序即跳转到用户程序入口, 运行主函数。
For the C620x/C670x, the memory mapped at address 0 can either be the internal program
memory (MAP1) or the external memory space CE0 (MAP0), which may contain SDRAM,
synchronous burst static RAM (SBSRAM), or asynchronous memory, (DRAM/ASRAM).
我的理解是这样的
或者说在应用程序1里面包含一个擦写flash的函数,这样就能从CE1空间的首地址重新写起来了。
二次 Bootloader(secondboot)主要完成以下几项任务:
a) 配置 PLL,使系统工作在合适的频率。
b) 根据 Flash存储器和 S DRAM的时序要求配置
EM IF,使代码可以访问外存储空间的 Flash存储器和
SDRAM。
c) 按照链接文件定义的各个段的存储地址和运
行地址的要求 ,从 Flash存储器中搬移数据到 SDRAM
中。
d) 调用 C语言入口函数 _c_int00 ( ) ,开始 C语言
运行环境的初始化以及用户代码的执行。
前两个任务对系统运行的硬件环境进行了初始化 ,为任务 c的运行做好准备 ,任务 c是 Bootloader(secondboot)的核心 ,它负责具体的数据搬移工作。
从 Flash中搬移数据到 SDRAM中必须严格按照COFF文件格式进行。COFF文件格式是 TI公司 DSP
的通用文件格式 ,它把数据分成 3个类型的段:程序段、 已经初始化的数据段、 未初始化的数据段。其中 ,
程序段和已经初始化的数据段需要进行搬移 ,因此在cmd文件中需要给它们指定不同的存放地址和运
行地址。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |