打印

c51中变量 常量 函数的定位

[复制链接]
1219|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bestwell|  楼主 | 2024-7-16 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Keil C51 中变量、常量、函数的定位是指在编译器中将变量、常量、函数定位到某个特定的存储器地址上,以满足特定的应用需求。下面是 Keil C51 中变量、常量、函数定位的相关知识点:一、代码定位Keil C51 中有两种方法可以将代码定位到某个特定的存储器地址上:1. 使用伪指令 CSEG:可以在 A51 文件中使用伪指令 CSEG 将代码定位到某个特定的存储器地址上。2. 使用 BL51 Locate 选项:可以在 Project->Options for Target 'Target1' 中选择 BL51 Locate 页,并在下面的 code 栏中写上相应的地址信息。二、变量定位Keil C51 中只有全局变量可以绝对定位,局部变量无法实现绝对定位。有两种方法可以将变量定位到某个特定的存储器地址上:1. 使用_at_关键字:可以使用_at_关键字将变量定位到某个特定的存储器地址上。2. 使用 BL51 Locate 选项:可以在 Project->Options for Target 'Target1' 中选择 BL51 Locate 页,并在下面的 data 栏中写上相应的地址信息。三、堆栈定位Keil C51 中可以在 STARTUP.A51 文件中定义堆栈区,并将其定位到某个特定的存储器地址上。四、_at_关键字的使用_at_关键字可以用于将变量或函数定位到某个特定的存储器地址上。但需要注意的是,在使用_at_关键字时,不能对变量赋初值,并且这条语句不能在主函数中使用。五、STARTUP.A51 文件的作用STARTUP.A51 文件用于定义堆栈区和内存初始化部分。如果不添加该文件,编译器将自动加入一段初始化内存以及堆栈等的代码,这时的内存初始化部分将无法控制。六、常见问题1. 怎样将一个子程序段定位在一个固定的地址位置?可以使用 BL51 Locate 选项或伪指令 CSEG 将子程序段定位到某个特定的存储器地址上。2. 怎样在 EEPROM 中固定的位置存放一个字符串?可以使用_at_关键字或 BL51 Locate 选项将字符串定位到某个特定的存储器地址上。

使用特权

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

本版积分规则

39

主题

1601

帖子

1

粉丝