2022年TMSC的EMIF多核程序烧写的软件使用说明 .pdf
《2022年TMSC的EMIF多核程序烧写的软件使用说明 .pdf》由会员分享,可在线阅读,更多相关《2022年TMSC的EMIF多核程序烧写的软件使用说明 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、I TMS320C6678 的 EMIF16 多核程序烧写软件使用说明名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - II 目 录1 概述 . 5 1.1 范围 . 5 1.2 目的 . 5 1.3 设计依据 . 5 1.4 背景 . 5 1.5 开发环境和运行环境. 5 2 任务概述 . 5 3 多核的待烧写工程说明 . 6 3.1 core0 待烧写工程说明. 6 3.1.1 工程文件说明 . 6 3.1.2 程序流程图
2、. 7 3.1.3 操作步骤 . 7 3.2 core1core7 待烧写工程说明. 8 4 EMIF16 加载转换工具说明. 9 4.1 使用说明 . 9 4.2 生成文件格式说明. 9 4.2.1 core0 的.dat 文件的格式 . 9 4.2.2 core1core7 的.dat 文件的格式 . 10 5 烧写工程说明. 10 5.1 工程文件说明. 10 5.2 程序流程图 .11 6 Boot Mode 设定 . 12 7 加载成功检验. 13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
3、- - - - - 第 2 页,共 13 页 - - - - - - - - - 3 图表目录图 1 TMS320C6678 的 EMIF16 多核加载总体框图 . 5图 2 core0 待烧写程序的执行过程 . 7图 3 core0 的.dat 文件格式 . 9图 4 core1core7 的.dat 文件格式 . 10图 5 core0 代码烧写流程图 . 12表 1 八个核的代码在Flash 中的空间分配. 8表 2 烧写工程文件的函数说明 . 11表 3 Boot Mode pins 定义 . 12名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
4、 - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 4 符号和缩略词说明DSP:数字信号处理器(Digital Signal Processor) SPI:串行设备接口(Serial Peripheral Interface )EMIF16: 外部存储器接口(External Memory Interface )DDR3: 外部存储器PLL: 锁相环L2 SRAM: 二级静态存储器IPC:核间通信( Interprocessor Communications )名师资料总结 - - -精品资料欢迎下载 - - - -
5、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 5 TMS320C6678 的 EMIF16 多核程序烧写软件使用说明1概述1.1范围本文档包括: TMS320C6678 的 EMIF16 多核程序烧写软件使用说明。1.2目的指导 C6678 的 EMIF16 多核程序烧写过程。1.3设计依据1.TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor data manual,德州仪器2.KeyS
6、tone Architecture Bootloader User Guide, 德州仪器1.4背景a)本项目的任务提出者:雷达所9 号楼课题组b)开发者:边小艳c)用户:课题组内部1.5开发环境和运行环境开发工具: CCStudio v5.1 。运行的硬件环境:TMS320C6678 芯片, EMIF16 外挂并行Nor Flash,Nor Flash 容量为 32MB,可选型号如Numonyx 生产的 JS28F256P,Spansion 生产的 S29NS256 等。2任务概述TMS320C6678 的 EMIF16 多核程序烧写主要包括三个部分:多核的待烧写工程, 烧写转换工具以及烧写
7、工程。三个部分之间的联系如下图所示:多 核的 待烧 写工 程烧 写工 程烧 写 转 换工 具烧 到NOR Flash.out文 件.bin文 件多核的待烧写工程:core0 的待烧写工程除了完成自身的处理任务外,还要实现加载其它待加载的核,因此需要在core0 的待烧写工程中增添加载这部分程序,其它核的待烧写工程不需要添加,若多核是同一个工程,则需要在core0 的处理程序中添加加载程序。具体请看第3 节。烧写转换工具:在路径EMIFBootUtilityhex_ge6678_EMIFBoot中的 EMIFboot_out2bin.bat是各核的代码转换工具,实现将各核的 .out 文件转换成
8、 .bin 文件, 八个核使用同一个转换工具,但是在转换之前需要将.out 文件重命名,具体使用方法请参看第4 节。图 1 TMS320C6678 的 EMIF16 多核加载总体框图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 6 烧写工程:将待烧写的核的.bin 文件通过 EMIF16 接口烧写到外接Nor Flash 中去,具体请看第5 节。3多核的待烧写工程说明3.1core0待烧写工程说明在 core0 的待烧写工程
9、中,除了完成自身的任务之外,还要作为主核去加载其他的核,因此,加载这部分作为一个单独的模块整理在一个文件夹core0_Pjt_Use 中,对于core0 的待烧写工程,只要把这个文件夹放到此工程中,并调用加载函数Core0_EMIF16_BOOT()即可。3.1.1工程文件说明在 core0_Pjt_Use 文件夹主要有如下文件:表 1 core0_Pjt_Use 文件函数说明文件名功能、用途包含的函数函数功能EMIFboot.c 包含加载多核的函数Core0_EMIF16_BOOT() 初始化 EMIF16 接口,加载其它需要加载的核,在主函数中直接被调用Init_DDR3_C6678.c
10、包含 DDR3 接口初始化函数Init_DDR3() 初始化 DDR3 接口InitPLL_C6678.c 包含 PLL 的初始化函数InitMainPLL() 初始化 PLL core0_boot.c 包含加载单核的函数Core0_Boot_Secondarycore () Core0 从 Flash中读出某个核的代码并按段加载core0_boot_othercores() 将 Flash 中的数据写到其他核的L2 中flash_nor.c 包含对 flash 的擦除、烧写的基本函数NOR_init() 初始化 Nor Flash NOR_erase() 擦除一定长度的NOR Flash N
11、OR_writeBytes() 向 Nor Flash 中写入一定长度的数据KeyStone_EMIF16_Init.c 包含 EMIF16接口的初始化函数EMIF_init() 配置 EMIF16 接口的寄存器KeyStone_EMIF16_init() 初始化 EMIF16 接口EMIF_NOR_FLASH_test.c 包含对 flash 擦除、烧写的用户可调用函数NOR_FLASH_erase_blocks() 擦除 flash 的某块区域NOR_FLASH_write_block() 烧写 flash 的某块区域NOR_FLASH_read_block() 读取 flash 的某块区
12、域bootload.asm 包含core0 自身加载的汇编函数boot() 从 flash 中读取 core0的代码按段加载,并跳到入口地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 7 文件名功能、用途包含的函数函数功能C6678.cmd 链接命令文件存储器空间配置和段的 配 置 , 主 要 是为.bootload 段的分配3.1.2程序流程图上电后, core0 待烧写程序的执行过程如下:注: 如上图所示, (1) 中
13、的 Rom code是 C6678出厂时固化在Rom(从 0 x20B00000 到 0 x20B1FFFF )中的一段代码,不是由用户编的,用户不能改变,下面的(2) (3) (4) ( 5)过程是由用户编的。3.1.3操作步骤当 core0 需要加载其他核时,需要做的步骤是:1)将 core0_Pjt_Use 文件夹放到待烧写工程的文件夹中。2)在 CCSv5.1 环境下,将core0_Pjt_Use 文件夹中的inc 的绝对路径添加到propertiesC/C+ BuildSettingInclude Option 的搜寻路径中。3)在待烧写主程序main 中调用 EMIFboot.c
14、中的加载函数Core0_EMIF16_BOOT() 。4)在 EMIFboot.c 中定义各核的代码烧写到Nor Flash 中的地址 (加载时的源地址)。 在 7 个核的工程全不相同的情况下,需要将 7个核的代码烧到7 块不同的空间, 这里为每个核预定义的Flash 空间分上电在 main 入口地址处开始执行,初始化外设( 3)结束core0 加载其他待加载的核(4)其他处理模块( 5)core0 执行 Rom code,初始化 EMFI16 接口,并跳到 Nor Flash 起始地址执行 (1)core0 在 Nor Flash中执行 bootload, 将代码按段从 Nor Flash搬
15、到内存( 2)图 2 core0 待烧写程序的执行过程名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - 8 配如下:表 1 预定义的八个核的Flash空间分配若某些核的代码相同,则需要烧写到Flash 的同一块空间,为了统一,这里规定:相同代码都烧到核号小的Flash 空间(由表一分配的 ),例如 core1、core5、core7 的代码相同,则它们三个的烧写地址是 0 x70200000。若某些核不需要加载,则定义加载地址无
16、效,无效值为0 x5a5a5a5a。5)core0_Pjt_Use 文件夹中有加载时用到的bootload.asm 文件和 c6678.cmd 文件,可以将 C6678.cmd替代原工程中的.cmd 文件,但若想用自己的.cmd 文件,则可以按照c6678.cmd 文件进行改正,需要注意的几点是:a)在待烧写工程的.cmd 文件中需要加上下面两句,作用是将汇编函数所在的段.bootload 段放在内存的起始地址处。BOOT (RWX) : org = 0 x00800000 len = 0 x00000400 .bootload BOOT /.bootload 是在 bootload.asm文
17、件中定义的段b)若工程的输出文件格式是ELF 格式 (在工程的Properties-CCS General-Output format下) ,则需要在 .cmd 文件开始处加上:-export=boot 此句的作用是说明被ELF 的 obj 文件输出的符号。若不加此句,则bootload.asm 中的汇编函数不会输出,即在.map 文件中看到的BOOT 空间没有被用到。若输出文件格式是COFF 格式,则不需要加此句,否则编译出错。c)若工程是用SYS BIOS 进行存储空间的配置,则需要在SYS BIOS 自动生成的 .cmd 中加上下面三句 (可以参看 example_pjtC6678_EM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年TMSC的EMIF多核程序烧写的软件使用说明 2022 TMSC EMIF 多核 程序 软件 使用说明
限制150内