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

上传人:Y948****062 文档编号:975072 上传时间:2018-03-22 格式:PDF 页数:7 大小:281.55KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910119283.0

申请日:

2009.03.11

公开号:

CN101499014A

公开日:

2009.08.05

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

熊猫电子集团有限公司; 南京熊猫电子股份有限公司; 南京熊猫汉达科技有限公司

发明人:

董金春; 雷 俊

地址:

210002江苏省南京市中山东路301号

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

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

权利要求书

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

说明书

利用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烧写程序的编译、链接、载入和运行的过程亦相当繁琐的问题,发明一种用脚本程序完全取代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的批处理。目前,国内外尚未出现类似的文献报道。
本发明的难点并不在于编写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脚本中设置
;源文件1及其目标地址
   .if fid=1
         .copy filel.dat
addr_high.set 1h
addr_low.set 8000h
;源文件2及其目标地址
    .elseif fid=2
         .copy file2.dat
addr_high.set 2h
addr_low.set8000h
……
;源文件n及其目标地址
   .elseif fid=n
         .copy filen.dat
addr_high.set nh
addr_low.set 8000h
;默认的目标地址
   .else
addr_high.set Oh
addr_low.set Oh
   .endif
……
   .text″main_prog″
   .if fid=0
        CALL erase_flash;调用擦除FLASH的子程序
   .el se
        CALL write_flash;调用写FLASH的子程序
   .endif
stophere:B stophere
……
第三,完成GEL批处理脚本的编写,以下是一个完整的代码:
menuitem″Flash_Burn Batch Tool″;
hotmenu Burn_All()
{
    inti;
    for(i=0;i<=n;i++)
    {
        //编译并赋值fid=i
        GEL_System(″asm500fb.asm fb.obj-g-s-dfid=%d″,i);
        //链接
        GEL_System(″lnk500 fb.cmd″);
        //载入
        GEL_Load(″fb.out″);
        GEL_TextOut(″burning file%d...″,i);
        //运行至stophere处
        GEL_Go(stophere);
        GEL_TextOut(″complete\n″);
  }
  GEL_TextOut(″ALL is completed!\n″);
}
相关编译参数可使用一个执行DOS命令的GEL函数GEL_System直接调用CCS代码生成工具中的汇编器asm500.exe和链接器lnk500.exe,通过带参数执行asm500.exe的方法在GEL中设定。
最后,编写好以上烧写程序和GEL脚本后,分页烧写FLASH的全部人工操作只有如下简单的两步:
1)装载GEL脚本,在CCS主菜单中单击“File”|“Load GEL”,找到上述GEL脚本所在目录,将其打开;
2)运行GEL脚本,在CCS主菜单中单击“GEL”|“Flash_Burn Batch Tool”|“Burn_All”即完成全部在线烧写工作。
GEL程序的流程非常简单,就是循环地顺序执行①条件编译②链接③载入④运行烧写程序至stophere处。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

利用DSP在线烧写大容量或多个FLASH的方法.pdf_第1页
第1页 / 共7页
利用DSP在线烧写大容量或多个FLASH的方法.pdf_第2页
第2页 / 共7页
利用DSP在线烧写大容量或多个FLASH的方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《利用DSP在线烧写大容量或多个FLASH的方法.pdf》由会员分享,可在线阅读,更多相关《利用DSP在线烧写大容量或多个FLASH的方法.pdf(7页珍藏版)》请在专利查询网上搜索。

一种利用DSP在线烧写大容量或多个FLASH的方法,其特征是它包括以下步骤:首先,判断单个FLASH的容量是否大于DSP的片内容量,如果大于DSP的片内容量,则将其进行分页,使每个分页的容量小于DSP的片内容量;其次,采用条件汇编的方式预先设置上述全部待烧写源文件名及其目标地址;第三,编写GEL批处理脚本控制FLASH烧写程序;最后,装载并运行GEL批处理脚本,使DSP循环地进行设定条件、编译、链。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1