DSP

C6000系列的外置flash的烧写流程

2019-07-13 16:35发布

   CCS编译生成的out格式文件不能直接用于Flash烧写。在TI公司给出的技术文档中,首先将out文件利用其HEX工具转换为hex格式文件,然后利用Flash烧写工具将hex格式映像文件写入到片外Flash中。 实现在FLASH存储器烧写程序一般有以下三种方法:  一、是通过编程器下载烧写;  使用通用烧写器烧写需要将内存映像转换为二进制或十六进制格式的文件,而且要求Flash器件是可插拔封装的。这将导致器件的体积较大,给用户的设计带来不便。 二、是通过开发商提供的专门软件工具 + 在线仿真器烧写; 合众达电子SEED-VPM642开发板,在最新版本例程中提供了专用的烧写软件SeedConvertTool.exe;  三、是通过烧写工程。  下面主要介绍第三种方法。 实现Bootloader自引导功能,除了需要生成可执行文件(.out),还需要进行如下步骤: 1、合理配置原工程文件(.pjt):需要添加一个二次引导表.asm文件(做搬移时一些初始化和跳转工作)。原工程中,需要修改.cmd文件,为bootloader保留空间。 2、将添加了.asm和修改cmd后重新生成的.out文件转化为.hex文件,这时需要通过转换工具hex6x.exe。在运行转换工具hex6x.exe之前,需要修改转换.cmd文件(这个.cmd文件与工程文件中.cmd完全不同,转换.cmd文件是为了指明flash的属性(大小,数据宽度,起始地址和产生文件名)以实现转换.out文件为flash兼容的.hex文件,不能混淆)。 3、最后通过Flashburn烧写工程将生成的.out文件写入Flash。 介绍下烧录中用到的文件的作用: 1、二次引导表的作用: 对于C6000系列来说,开机加电以后,系统会自动加载flash的1KB的代码搬入内部RAM的0x0开始的地址空间,并从0x0处开始运行程序。通常情况下,用户应用程序的大小都会超过这个限制。所以,必须做二次引导才能实现载入。即需要在外部Flash的前1KB范围内预先存放一小段程序,待片上Bootloader工具把此段代码搬移入内部并开始执行后,用这段代码实现将Flash中剩余的用户应用程序搬移入内部RAM中。此段代码可以被称作一个简单的二级Bootloader 要实现二次引导,必须得增加一个二次载入程序,该程序必须小于1K,用于对用户程序的载入,一般用汇编语言实现。 主要功能是:分别载入用户主程序的cinit段和text段,完成后跳转至用户主程序的入口地址开始执行。 这里要注意的是用户主程序与二次载入程序在编译的时候是作为一个整体工程进行编译的,由cmd文件来控制两个程序分别占用的内存空间,然后通过烧写程序将这一个混合编译好的程序写入flash中,即可实现flash的自启动过程。 2、烧写.out文件:负责对flash的操作,比如flash的擦除、读、写等。这里主要看个人板子上flash的型号,因为不同型号的flash,它们的操作命令不一样。根据不同的flash型号对烧写工程进行修改,然后重新编译生成.out文件。 3、hex6x.exe:将原工程生成的.out文件转换为二进制文件的工具,这样烧写工程就可以将.out文件以二进制方式烧进flash中。 4、烧写工程:CCS为基础,通过运行仿真程序,生成.out文件,将用户程序写入Flash中。 5、转换.cmd文件:指明flash属性(大小,数据宽度,起始地址和产生文件名),按照flash要求实现将.out文件到二进制文件的转换。 具体步骤:  1。原程序中添加二次引导表.asm文件,修改.cmd文件中的MEMORY和SECTION部分(DSP/BIOS环境中直接通过配置CDB或者TCF文件中的System,>MEM,>ISRAM即可;非DSP/BIOS在cmd文件中添加一个名为BOOT的section,位置为0x000,长度为0x400),在连接仿真器环境下编译生成可执行的.out格式的COFF文件。   2。使用hex6x.exe工具,将工程文件生成的.out文件转换成为HEX的ascii格式的二进制文件。 a.编写一个转换.cmd文件用于设置hex6x.exe的参数 如果例程中存在,则可用记事本打开如下: -a -memwidth 8 -boot -bootorg 0x90000400 -bootsection .boot_load 0x90000000 ROMS { FLASH: org = 0x90000000, len = 0x400000, romwidth = 8} b.生成二进制文件: 将三个文件.out、hex6x.exe和.cmd以及.bat复制到特定文件夹下。双击convert.bat。 二、改写烧写工程,这个CCS工程编译而成的文件主要是对flash的操作,其作用相当于一个搬运工具,将hex文件由PC搬入Flash中。这里要注意自己的CCS版本和flash的型号,编译完成会得到一个.out文件。 三、打开开发板上电,启动ccs软件,加载gel文件并连接(connect)硬件仿真器。将通过烧写工程生成的.out文件load到板子上,完毕后拔出仿真器,关电源重启即可成功实现烧写。 参考文章链接:http://ishare.iask.sina.com.cn/f/iHiOS6cAB0.html