loading请求处理中...

嵌入式系统开发中程序定位的方法

2021-12-01 09:21:10 阅读 9713次 标签: 嵌入式系统开发 作者: anyi
    科技的发展让电子设备越来越智能化,而不同的电子智能化则需要相应的嵌入式系统开发。嵌入式系统一般指非 pc 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。下面一品威客网主要为您介绍嵌入式系统开发中程序定位的方法:
嵌入式系统开发中程序定位的方法
    1、EXE文件格式和DOS重定位 
    DOS下的EXE文件是一种可重定位文件 (Re-locatableFile),它由重定位标头和装入模块组成。后者含 一段或几段程序代码,段数与类型取决于程序规模和编译时所用的内存模式,然后是 初始化与未初始化的数据及堆栈,还可能有程序排错信息。代码、数据和堆栈段地址 均是参考到程序开头的相对地址。标头放在装入模块之前,含若干定位控制信息和一 张定位表。控制信息包括EXE文件大小、标头长度、需要重定位的项数和位置、装 入模块的开头和堆栈的相对地址等。定位表是一组形式为段址:偏址的远指针,指示 装入模块中要重定位的那些段址相对于模块开头处的位置。装进RAM后,加载程序 建立起程序段前缀PSP,并根据系统当前可用RAM地址修改这些段址,对装入模 块重定位,使程序中所有参考绝对地址的量正确指向模块装入后的起始地址,然后执、。因此它可在RAM中的任何位置上执行

    2、嵌入式程序的定位 
    嵌入式系统有ROM和RAM两类内存,程序被固化进ROM,而程序 变量和堆栈应设在RAM中。因此,对EXE文件的重定位过程与DOS下不一样。定位程序必须根据系统的ROM和RAM地址,对定位表中各远指针指向的字进行修改。定位程序最后以一种可加载进测试系统或可烧入EPROM的形式输出程序,即ROM图,它可以是二进制或Intel的HEX格式,根据EPROM编程器、仿真器或调试程序的要求而定。 

    可用两种方法把EXE文件转换为ROM图: 
    一是使用EXE2BIN命令。若EXE文件定位表中不含有定位远指针,EXE2BIN便将它转换成COM文件,它是可固化进EPROM的二进制文件,否则便放弃转换。这仅适用于较小的单段程序。较新版本的EXE2BIN在发现EXE文件中含重定位项时,会提示用户提供一个基地址,进行重定位。若选用适当的内存模式,并限制使用远指针,它也可能用一个基地址进行定位。但对于规模较大的程序,EXE2BIN无能为力。 

    二是根据标头和MAP文件所提供的信息进行定位,适用于所有的EXE文件。若在连接时进行限定,可生成只含内存分配段表的简单MAP文件。段表的每行描述一个段,按代码段、数据段和堆栈段的次序排列。MicrosoftC和BorlandC的MAP文件每行长度略有区别,但行上各参数(段始址、段末址、段长、段名、段类)的位置是固定的。 定位程序根据第一个RAM段的段名,从MAP文件中抽取出它的起始地址,它就是数据区的相对始址。再从标头内容计算出装入模块大小,即要占用的ROM容量。将系统ROM始址加上代码段在装入模块中的相对地址,便得到程序开始执行的地址。

    然后,对定位指针进行自小到大排序。根据各段的始末地址逐段析出段址,并从装入模块中读入该段代码或数据。接着按定位指针顺序考察待定位的段址,若它落在该段范围内,便进行定位操作,即把此段址修改成实际的ROM或RAM地址。直到将属于这个段的定位指针全部处理好后,便把这段内容写到输出文件。对所有段都进行定位后,便获得ROM图。 

    以上就是嵌入式系统开发中程序定位的方法,嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统开发用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。如果您的企业需要嵌入式系统开发,那就到一品威客网发布任务需求,百万专业嵌入式系统设计师给您提供最好的服务。

嵌入式软件公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
嵌入式软件相关任务
DESIGN TASK 更多
公司防伪系统开发

¥5000 已有0人投标

综合体通卡系统开发

¥50000 已有0人投标

地质保障系统开发

¥20000 已有2人投标

开发资料库管理系统开发

¥20000 已有8人投标

QC检验报告录入系统开发

¥2000 已有1人投标

评分系统开发

¥1200 已有1人投标

平板点餐系统开发

¥2400 已有1人投标

公交运营统计报表系统开发

¥5000 已有5人投标