这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » KeilC51单片机中变量和函数的绝对地址的定位和访问方法

共10条 1/1 1 跳转至

KeilC51单片机中变量和函数的绝对地址的定位和访问方法

工程师
2021-10-17 10:08:26     打赏

8051 单片机是使用巨大的芯片,在Keil C51 编程应用中,我们由于某些原因,需要固定某个变量和函数在特定的地址上,方法分别如下:


1.变量绝对地址定位


1)在定义变量时使用 _at_ 关键字即可,如:

uint8 code value _at_ 0x5555;  //把变量value定义在程序区的0x5555处


注:在使用 _at_ 关键字定位绝对地址时,不能对其赋初值。


2)使用Keil c51编译器定义绝对地址的变量


首先定义一个变量:


uint8 code value;

之后在编译器中打开project->options for Target菜单,选中BL51 Locate选项卡,在Code中输入:“?CO?MAIN(0x5555)”即可。如图:

image.png



注:只有全局变量可以绝对定位,局部变量无法实现绝对定位。


2.函数绝对地址定位


1)在程序中编写一函数MyTest


void MyTest(void)

{

    //Add your code here

}

2)使用Keil C51编译器定位绝对地址的函数,打开project->options for Target菜单,选中BL51 Locate选项卡,在Code中输入:“?PR?MyTest?MAIN(0x4000)”。把函数MyTest定位到程序区0x4000处,再次编译就可以。

3)一次定位多个函数的方法


方法同定位一个函数的方法一样。


注:如有多个函数或者变量要进行绝对定位,则应按地址从低到高的顺序排列。


函数的表达模式为:?PR?函数名?文件名


而函数名又分1:无参函数 ?PR?函数名?文件名


            2:有参函数 ?PR?_函数名?文件名


            3:再入函数?PR?_?函数名?文件名 





关键词: 绝对地址     KEIL     C51     编译器    

专家
2021-10-17 10:12:12     打赏
2楼

看看


专家
2021-10-17 13:15:37     打赏
3楼

学习了,太好了,谢谢楼主


专家
2021-10-17 13:18:06     打赏
4楼

讲解的确实蛮不错的


院士
2021-10-17 20:41:30     打赏
5楼

学习了


高工
2021-10-17 20:54:34     打赏
6楼

用什么软件编辑51单片机


专家
2021-10-17 21:27:55     打赏
7楼

谢谢分享


院士
2021-10-17 22:25:06     打赏
8楼

学习并收藏了,谢谢分享。


高工
2021-10-17 23:33:00     打赏
9楼

谢谢分享 


专家
2021-10-18 09:33:26     打赏
10楼

谢谢分享


共10条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]