打印

MDK中如何实现同一程序在不同地址运行的工程管理

[复制链接]
1747|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小野狼|  楼主 | 2008-4-23 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在嵌入式程序的开发过程中,通常需要把程序运行在处理器地址空间的不同位置,比如内部RAM,外部RAM,内部Flash,外部Flash等。

    通常以下两种方法:
    一是只建立一个工程,比如说运行在内部RAM中,然后通过修改其分散加载文件、调试初始化文件以及一些其他的配置选项来实现几种运行方式的切换。但由于在调试的过程中,可能存在对程序频繁的修改,工程师常常因为忘记修改某个配置选项,而造成了运行的不成功,给调试造成了极大的困难。

    二是为每一个运行方式创建一个工程,对于一个运行方式来说,只要修改其程序,而不需要对工程进行重新配置。然而这种方法也有其自身的缺陷,容易造成程序的不一致,几种运行方式不能实现程序的同步更新。

    那么,如何更方便有效地解决这个问题呢?其实,MDK提供了这样的一个工程管理的方法,既能对不同运行方式下工程的实现一次配置,又可以保证不同运行方式下程序的一致性。

    这里以英蓓特公司推出的AT91EB40X评估板为例。该款评估板支持AT91ER40162、AT91R40807、AT91M40800、AT91R40008处理器。EMBEST ATEB40X评估板除了CPU内部的存储器外,还有一片外部Flash和一片64K的EEPROM,另外,还可支持用户外扩SRAM。同时结合MDK的仿真功能,一个同样的例程可以运行在几种不同的运行方式:硬件仿真、片内RAM,片外RAM,片外Flash。

    下面介绍下工程管理的方法:
    1)    MDK -> Project -> New uVision project,选择保存路径,选择处理器AT91R40008。

    2)    Project -> Manage -> Components,Enviroment,Books…,在选择卡Project Components ->Project Targets中点击,并在光标处输入RAM AT91R40008。按此方法,依次建立Flash AT9140008,ERAM AT91R40008选项。同时将Target1选项更名为Sim AT91R40008。

    3)    在Groups和Files中,为所需的工程文件创建分组,并在各分组中加入相应的文件。如图1所示。通过点击Set as Current Target,可以设置当前运行的目标工程,如RAM AT91R40008。
 

图 1

    4)    点击保存,则在MDK的工具栏上就会显示,按旁边的下拉箭头,操作结果如图2所示:
 

图 2
    
    5)    分别对所建立的每个工程项目进行配置。以RAM,AT91R40008为例,点击工具栏中的按钮,对各个选项卡中的选项进行设置。对于运行在不同地址的工程,这里只需要对Target选项卡下的地址域,Linker选项卡下的分散加载文件以及Debug选项卡下的初始化文件,和Utilities选项卡下的Flash烧写算法等几个位置作修改即可。
    6)    每次调试运行时,只需要点击中的下拉箭头,选择所需选项,就可以方便地实现程序运行在不同的地址空间的切换。
相关链接:http://www.realview.com.cn/wen2-list.asp?id=290

相关帖子

沙发
xinjie1023| | 2009-9-22 22:09 | 只看该作者
学习了,小野狼

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

94

主题

283

帖子

0

粉丝