一种在嵌入式系统的扩展存储器中动态装入代码的方法技术方案

技术编号:4300147 阅读:278 留言:0更新日期:2012-04-11 18:40
本发明专利技术的目的是提供一种在嵌入式系统的扩展存储器中动态装入代码的方法,可以有效解决现有技术存在的扩展性差、产品成本高等问题。本发明专利技术将系统的应用模块化,在有需要的时候把代码从扩展存储器中拷贝到非易失存储器中,然后执行跳转指令,直接跳到特定的地址运行该程序。本发明专利技术的优点在于:本发明专利技术针对各种增加扩展存储器的嵌入式系统,通过在运行过程中根据需要从扩展存储器中动态装入运行代码的方法,增加应用的扩展性,从而节约产品的成本,丰富产品的应用,提高产品的竞争力。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
在嵌入式系统开发领域中,代码越来越复杂,需要的代码存储空间也越来越大,因 此设计者需要在嵌入式系统中增大存储器的容量。当前通用的嵌入式硬件架构为处理器 +非易失存储器(NOR-FLASH,NAND-FLASH等)。有些嵌入式系统还增加了扩展存储器,如SD 卡、T-FLASH。这类设计应用的扩展性较差,不能根据需要装载所需的应用,同时也提高了产 品的成本,往往得不偿失。
技术实现思路
本专利技术的目的是提供,可 以有效解决现有技术存在的扩展性差、产品成本高等问题。嵌入式系统里面的程序一般是把用各种语言((:,0++^51等)编写的代码,通过编译、连接等过程生成一个二进制文件,然后通过下载工具写到系统的非易失存储器中。系统运行时,处理器会从存储器里读入指令, 按顺序执行。本专利技术的实施方式是把系统的应用模块化,在有需要的时候把代码从扩展存 储器中拷贝到非易失存储器中,然后执行跳转指令,直接跳到特定的地址运行该程序。 本专利技术涉及,其特征在 于,包括如下步骤 1)将动态应用程序所需的系统函数总结出来,生成一个结构变量g— functionList—ptr来保存这些系统函数指针,并给予固定的地址; 2)编译配置文件,在指定位置留出足够大的空间用来动态装载动态应用程序,生 成系统的BIN文件; 3)编写系统的调用动态应用程序的服务程序,将动态应用的代码从扩展存储器中 拷贝到非易失存储器的指定位置; 4)初始化结构变量g—functionList—ptr,跳转到特定的地址; 5)编写动态应用程序,在该程序中包括系统函数指针映射表的全局变量g—functionList_ptr和应用程序代码。 所述的系统在运行过程中可通过步骤2)所写的服务程序调用步骤3)所写的动态 应用程序。 本专利技术的优点在于本专利技术针对各种增加扩展存储器的嵌入式系统,通过在运行 过程中根据需要从扩展存储器中动态装入运行代码的方法,增加应用的扩展性,从而节约 产品的成本,丰富产品的应用,提高产品的竞争力。附图说明 附图为本专利技术涉及的方法流程图。具体实施例方式—种在嵌入式系统的扩展存储器中动态装入代码的方法,其特征在于,包括如下 步骤 1)将动态应用程序所需的系统函数总结出来,生成一个结构变量g— functionList—ptr来保存这些系统函数指针,并给予固定的地址。 动态应用程序所需的系统函数指的是有可能调用到的系统函数,包括编程语言提 供的系统函数,嵌入式系统提供的系统函数等。结构变量g_funCti0nLiSt_ptr,为系统函数 指针映射表的全局变量,每一个可能调用到的系统函数指针都是g_funCti0nLiSt_ptr的 一个成员,给予g_functionList_ptr固定的起始地址,如0x80000000,参与整个系统的编 译和连接。 2)编写配置文件,在指定位置留出足够大的空间用来动态装载动态应用程序,生 成系统的BIN文件; 编写嵌入式系统的配置文件的地方空出足够大的空间,以便能有空间拷贝动态应 用的程序。空间大小由设计者根据需要决定,一般要参考最大允许动态应用的大小决定。对 于ARM系统来说,嵌入式系统的配置文件一般是scatter文件。若g_functionList_ptr的 起始地址为0x80000000,则需要在0x80000000处留出足够的空间。 3)编写系统的调用动态应用程序的服务程序,将动态应用的代码从扩展存储器中拷贝到非易失存储器的指定位置。所述的指定位置是指g_funCti0nLiSt_ptr的起始地址。 4)初始化结构变量g—functionList—ptr,跳转到特定的地址。 所述初始化结构变量g_functionList_ptr,即初始化系统函数指针,并保存执行完应用程序后应该返回的地址。所述特定的地址是一个固定的地址,一般是g—functionList_ptr的起始地址与变量g_functionList_ptr相加并进行字对齐后得到的地址。 5)编写动态应用程序,在该程序中包括系统函数指针映射表的全局变量g— functionList_ptr和应用程序代码。 应用程序中的g_funCtionLiSt_ptr的地址要与固定成跟嵌入式系统中g_ functionList_ptr的地址相同,若g_functionList_ptr的起始地址为0x80000000,应用程 序中的g_functionList_ptr的地址也为0x80000000。 应用程序的入口函数的地址要固定为特定的地址,一般是g_funCtionLiSt_ptr 的起始地址与变量g_funCti0nList_ptr相加并进行字对齐后得到的地址,可使用静态的, 也可以在配置文件中写入。应用程序的入口函数执行完后,要执行跳转指令,跳转到固定的 地址,即调用入口函数的下一个地址。应用程序在编写过程中,除非设计者编写的函数,否 则一律调用g_functionList_ptr来执行系统函数。 所述的系统在运行过程中可通过步骤2)所写的服务程序调用步骤3)所写的动态 应用程序。权利要求,其特征在于,包括如下步骤1)将动态应用程序所需的系统函数总结出来,生成一个结构变量g_functionList_ptr来保存这些系统函数指针,并给予固定的地址;2)修改系统的配置文件(scater file),在指定位置留出足够大的空间(100K--500K,甚至更大,可根据系统配置和实际需求来定),该空间用来动态装载动态应用程序;编写系统的调用动态应用程序的服务程序,该服务程序的功能是将动态应用的代码从扩展存储器中拷贝到非易失存储器的指定位置;编译连接系统程序,生成可执行的系统文件(BIN);3)初始化结构变量g_functionList_ptr,跳转到特定的地址;4)编写动态应用程序,在该程序中包括系统函数指针映射表的全局变量g_functionList_ptr和应用程序代码;修改动态应用程序的连接配置文件(scater file),编译连接动态应用程序生成可动态装载的BIN文件。2. 如权利要求1所述的,其特 征在于所述的系统在运行过程中可通过步骤2)所写的服务程序调用步骤3)所写的动态 应用程序。3. 如权利要求1所述的,其特 征在于所述的步骤3)中的指定位置是指g—f皿ctionList—ptr的起始地址。4. 如权利要求1所述的,其特 征在于所述的步骤4)中的特定的地址是将g_funCti0nList_ptr的起始地址与变量g_ functionList_ptr相加并进行字对齐后得到的地址。全文摘要本专利技术的目的是提供,可以有效解决现有技术存在的扩展性差、产品成本高等问题。本专利技术将系统的应用模块化,在有需要的时候把代码从扩展存储器中拷贝到非易失存储器中,然后执行跳转指令,直接跳到特定的地址运行该程序。本专利技术的优点在于本专利技术针对各种增加扩展存储器的嵌入式系统,通过在运行过程中根据需要从扩展存储器中动态装入运行代码的方法,增加应用的扩展性,从而节约产品的成本,丰富产品的应用,提高产品的竞争力。文档编号G06F9/445GK101763273SQ200810207949公开日2010年6月30日 申请日期2008年12月26日 优先权日本文档来自技高网...

【技术保护点】
一种在嵌入式系统的扩展存储器中动态装入代码的方法,其特征在于,包括如下步骤:1)将动态应用程序所需的系统函数总结出来,生成一个结构变量g_functionList_ptr来保存这些系统函数指针,并给予固定的地址;2)修改系统的配置文件(scaterfile),在指定位置留出足够大的空间(100K--500K,甚至更大,可根据系统配置和实际需求来定),该空间用来动态装载动态应用程序;编写系统的调用动态应用程序的服务程序,该服务程序的功能是将动态应用的代码从扩展存储器中拷贝到非易失存储器的指定位置;编译连接系统程序,生成可执行的系统文件(BIN);3)初始化结构变量g_functionList_ptr,跳转到特定的地址;4)编写动态应用程序,在该程序中包括系统函数指针映射表的全局变量g_functionList_ptr和应用程序代码;修改动态应用程序的连接配置文件(scaterfile),编译连接动态应用程序生成可动态装载的BIN文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:钱小刚
申请(专利权)人:上海闻泰电子科技有限公司
类型:发明
国别省市:31[中国|上海]

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

1