利用DSP在线烧写大容量或多个FLASH的方法技术

技术编号:3882320 阅读:561 留言:0更新日期:2012-04-11 18:40
一种利用DSP在线烧写大容量或多个FLASH的方法,其特征是它包括以下步骤:首先,判断单个FLASH的容量是否大于DSP的片内容量,如果大于DSP的片内容量,则将其进行分页,使每个分页的容量小于DSP的片内容量;其次,采用条件汇编的方式预先设置上述全部待烧写源文件名及其目标地址;第三,编写GEL批处理脚本控制FLASH烧写程序;最后,装载并运行GEL批处理脚本,使DSP循环地进行设定条件、编译、链接、载入和运行操作,直至最后一个源文件被烧写进FLASH后终止循环。本发明专利技术用脚本程序完全取代分页烧写过程中的人工干预,可以消除人工错误,减轻劳动强度,提高生产效率,打破了产品无法批量生产的技术瓶颈,并有利于降低人力成本。

【技术实现步骤摘要】

本专利技术涉及一种DSP (数字信号处理器)技术,尤其是一种利用DSP在 线烧制FLASH的方法,具体地说是一种利用DSP在线烧写大容量或多个 FLASH的方法。
技术介绍
众所周知,在DSP应用系统开发完成后, 一般将用户程序先烧写在片外 的FLASH等非易失性低成本存储器,待上电或复位时再搬移到DSP片内或片 外的RAM中全速运行,即自举加载。烧写FLASH的方法主要有编程器烧写和在线烧写两种。编程器烧写需要 专门的编程器设备且只适用于一些可插拔的FLASH,而在线烧写借助于仿真 器,通过DSP可对任何封装形式的FLASH进行编程烧写。显然,后者具有节 约开发成本、减小器件尺寸、编程灵活的特点,因而在DSP系统中的应用曰 益广泛。因为在仿真状态下,通过编写调试FLASH烧写程序很容易将DSP片内的 内容写到片外FLASH中,所以只要先将待烧写的内容装载至DSP片内,再运 行FLASH烧写程序,即可实现FLASH的在线烧写。但DSP的内存毕竟有限,如果用户程序过大,则只能按DSP片内缓存的 大小,将用户程序分页,然后分批地烧写至FLASH中。 一旦因分页导致页面 数过多,或因存在多个用户程序需要多个分页,人工控制分页烧写FLASH的 过程将变得繁琐且极易出错。而据申请人所知,对此,目前尚无好的解决方法。
技术实现思路
本专利技术的目的是针对FLASH烧写程序中手工更新单个待烧写源文件及其 目标地址的方式极易出错,手工操作FLASH烧写程序的编译、链接、载入和3运行的过程亦相当繁琐的问题,专利技术一种用脚本程序完全取代DSP在线分页 烧写FLASH过程中的人工干预,以消除人工错误,减轻劳动强度的利用DSP 在线烧写大容量或多个FLASH的方法。 本专利技术的技术方案是一种利用DSP在线烧写大容量或多个FLASH的方法,其特征是它包括 以下步骤首先,判断单个FLASH的容量是否大于DSP的片内容量,如果大于DSP 的片内容量,则将其进行分页,使每个分页的容量小于DSP的片内容量;其次,采用条件汇编的方式预先设置上述全部待烧写源文件名及其目标 地址;第三,编写GEL批处理脚本控制FLASH烧写程序,在编写GEL批处 理脚本时通过一个执行DOS命令的GEL函数GEL—System直接调用CCS代码生 成工具中的汇编器asm500.exe和链接器lnk500.exe,通过带参数执行 asm500. exe的方法来设定相关参数选项,完成GEL批处理脚本的生成;最后,装载并运行GEL批处理脚本,使DSP循环地进行设定条件、编译、 链接、载入和运行操作,直至最后一个源文件被烧写进FLASH后终止循环。GEL(General Extension Language)是CCS (Code Composer Studio)提供 的一种解释语言。使用该语言创建GEL函数,可以对CCS的工作环境进行配 置,并能直接访问目标处理器(包括DSP软/硬仿真器)。用户通过编写GEL 脚本可以完成自动化批处理任务,如编译、链接和运行程序等。本专利技术改用条件汇编的方式预先设置全部待烧写源文件名及其目标地 址,并编写GEL脚本控制FLASH烧写程序,对其循环地进行设定条件、编译、 链接、载入和运行等操作,直至最后一个源文件被烧写进FLASH终止循环。 只要预先正确设置全部待烧写源文件名及其目标地址,整个烧写过程由GEL 脚本批处理完成,不再需要任何的人工干预和操作。本专利技术的创新之处是提供了一种在DSP程序外部不断自动更新编译选项 的方法,结合GEL脚本的自动执行功能,实现了 DSP在线分页烧写FLASH的 批处理。目前,国内外尚未出现类似的文献报道。4本专利技术的难点并不在于编写GEL脚本实现了批处理功能,而是如何在GEL 脚本中设定DSP程序的条件汇编选项。虽然CCS提供了编译DSP项目文件的 GEL函数GEL—ProjectBuild,但该函数是无参函数,故编译链接DSP程序时 无法设定程序所需的条件汇编选项。不过,可利用另一个执行DOS命令的GEL 函数GEL_System,直接调用CCS代码生成工具中的汇编器asm500. exe.和链 接器lnk500. exe。通过带参数执行asm500. exe的方法,即可设定编译选项。本专利技术的有益效果本专利技术解决了 DSP在线分页烧写FLASH时,如果分页数过多,人工控制 分页烧写FLASH的过程将变得繁琐且极易出错的难题。本专利技术用脚本程序完全取代分页烧写过程中的人工干预,可以消除人工 错误,减轻劳动强度,提高生产效率,打破了产品无法批量生产的技术瓶颈, 并有利于降低人力成本。 具体实施例方式下面结合实施例对本专利技术作进一步的说明。一种利用DSP在线烧写大容量或多个FLASH的方法,它包括以下步骤 首先,判断单个FLASH的容量是否大于DSP的片内容量,如果大于DSP的片内容量,则将其进行分页,使每个分页的容量小于DSP的片内容量; 其次,采用条件汇编的方式预先设置上述全部待烧写源文件名及其目标地址,FLASH烧写程序中,采用条件汇编的方式预先设置全部待烧写源文件名及其目标地址,相关代码如下 .title 〃fb. asm〃.sect 〃sourcefile" ;fid为条件汇编变量,其值在GEL脚本中设置 ;源文件l及其目标地址.if fid = 1.copy filel.dat addr—high . set lh addr—low . set 8000h ;源文件2及其目标地址.elseif fid = 2.copy file2. dat addr—high . set 2h5addr—low . set 8000h;源文件n及其目标地址 .elseif fid = n,copy filen. dat addr—high .set nh addr」ow .set 8000h ;默《的目标地址addr一high . set Oh addr—low . set Oh ,endif.text "main—prog .if fid = 0CALL erase—flash ;调用擦除FLASH的子程序,elS6CALL write—flash ;调用写FLASH的子程序.endif stophere: B stophere第三,完成GEL批处理脚本的编写,以下是一个完整的代码menuitem "Flash—Burn Batch Tool"; hotmenu Burn—All()int i;for( i=0; i<=n; i++ ) 〃编译并赋值fic^iGEL—System(〃asm500 fb. asm fb. obj -g -s -dfid=%d", i);GEL—System("lnk500 fb. cmd〃); 〃"GEL—Load ("fb. ouO ;GEL—TextOut("burning file%d ...〃, i);〃运行至stophere处GEL一Go(stophere);GEL—TextOut(" complete\n");GEL—TextOut("ALL is completed!\n");相关编译参数可使用一个执行DOS命令的GEL函数GEL一Syst本文档来自技高网...

【技术保护点】
一种利用DSP在线烧写大容量或多个FLASH的方法,其特征是它包括以下步骤: 首先,判断单个FLASH的容量是否大于DSP的片内容量,如果大于DSP的片内容量,则将其进行分页,使每个分页的容量小于DSP的片内容量; 其次,采用条 件汇编的方式预先设置上述全部待烧写源文件名及其目标地址; 第三,编写GEL批处理脚本控制FLASH烧写程序,在编写GEL批处理脚本时通过一个执行DOS命令的GEL函数GEL_System直接调用CCS代码生成工具中的汇编器asm500 .exe和链接器lnk500.exe,通过带参数执行asm500.exe的方法来设定相关参数选项,完成GEL批处理脚本的生成; 最后,装载并运行GEL批处理脚本,使DSP循环地进行设定条件、编译、链接、载入和运行操作,直至最后一个源文 件被烧写进FLASH后终止循环。

【技术特征摘要】

【专利技术属性】
技术研发人员:董金春雷俊
申请(专利权)人:熊猫电子集团有限公司南京熊猫电子股份有限公司南京熊猫汉达科技有限公司
类型:发明
国别省市:84[中国|南京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1