在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 12438|回复: 7

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

[复制链接]
发表于 2003-7-31 20:58:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-8-1 10:39:55 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

怎么没人答理呢?
发表于 2003-8-1 10:43:30 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

大家还没起床了吧?
 楼主| 发表于 2003-8-1 15:56:36 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

坛主也可以发表以下意见
发表于 2003-8-1 16:06:29 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

我做单片机是很久以前的事了(用的都是汇编了)。有问题只能提供一些方法上的提示,说到软件使用与大家差远了,有时间还要向你请教了。
不过我到知道一个人对keil很了解,这个人叫laobai,你可以给他发短信,这样当他登陆本站时就知道你的这个问题了,试一试吧。
发表于 2003-8-3 23:37:59 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

你的意思是要在编译后下载时,让某一个函数定位在一个绝对地址上吗?
发表于 2003-8-8 12:32:14 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

不好意思啊,我还从来没有接触过有这样要求情况,不过从网上其他地方找了一篇你参考一下吧,、函数定位:
假如要把C源文件 tools.c 中的函数
int BIN2HEX(int xx)
{
  ...
}
放在CODE MEMORY的0x1000处,先编译该工程,然后打开该工程的M51文件,在
* * *   C O D E   M E M O R Y   * * *
行下找出要定位的函数的名称,应该形如:
CODE    xxxxH     xxxxH     UNIT         ?PR?_BCD2HEX?TOOLS
然后在:
Project->Options for Target ...->BL51 Locate:Code
中填写如下内容:
?PR?_BCD2HEX?TOOLS(0x1000)
再次Build,在M51中会发现该函数已放在CODE MEMORY的0x1000处了
2、赋初值的变量定位:
要将某变量定位在一绝对位置且要赋初值,此时用 _at_ 不能完成,则如下操作:
在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值(假设是code变
量):
char code myVer = {"COPYRIGHT 2001-11"};
然后将该文件加入工程,编译,打开M51文件,若定义的是code型,则在
* * *   C O D E   M E M O R Y   * * *
下可找到:
CODE    xxxxH     xxxxH     UNIT         ?CO?INITVARS
然后在:
Project->Options for Target ...->BL51 Locate:Code
中填入:
?CO?INITVARS(0x200)
再次编译即可。
相应地,如为xdata变量,则InitVars.c中写:
char xdata myVer = {"COPYRIGHT 2001-11"};
然后将该文件加入工程,编译,打开M51文件,在
* * *  X D A T A   M E M O R Y  * * *
下可找到:
XDATA   xxxxH     xxxxH     UNIT         ?XD?INITVARS
然后在:
Project->Options for Target ...->BL51 Locate:Xdata
中填入:
?XD?INITVARS(0x200)
再次编译即可。相应地,若定义的是data/idata等变量,则相应处理即可。
3、若有多个变量或函数要进行绝对地址定位,则应按地址从低到高的顺序排列。
发表于 2003-8-11 02:51:12 | 显示全部楼层

请问如何在keil编译器里,编程时指定函数的绝对地址 (无内容)

感谢 laobai的热心解答,也感谢你对本论坛的支持 。    
  
  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-3 10:30 , Processed in 0.031442 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表