找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

菜鸟求助C51单片机位存储区问题

查看数: 2352 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-8-3 18:56

正文摘要:

    求助各位大神,我的一个小程序中定义了4个字节位寻址寄存器,程序正常(图1),可是一但定义第5个字节,程序就报错(图2)。理论上用bdata定义的可位寻址寄存器最多可以定义16个字节,占用20~2F地址 ...

回复

ID:42969 发表于 2020-8-4 13:13
disorder 发表于 2020-8-4 12:03
应该是够的
在变量定义的时候后面加上flag _at_ 0x20/flag _at_ 0x21这些试试
我怀疑可能是程序的其他部 ...

    多谢,查到了原因,是全局变量定义太多了,所以不管是定义位寻址的 还是其他的 都会报错。半路出家要学的太多了。
    我用的是STC89和90的芯片,定义全局变量最多能多大地址?
ID:42969 发表于 2020-8-4 13:08
1692483014 发表于 2020-8-4 09:51
看一下你的map文件,看看不同的变量都是占多大空间的。

我是半路出家学C的,map文件找了半天也没找到
ID:42969 发表于 2020-8-4 13:07
本帖最后由 btxzilong 于 2020-8-4 13:09 编辑
disorder 发表于 2020-8-4 12:03
应该是够的
在变量定义的时候后面加上flag _at_ 0x20/flag _at_ 0x21这些试试
我怀疑可能是程序的其他部 ...

多谢,查出来了,源程序定义了太多的全局变量,不管是增加位寻址的 还是其他的变量 都会报错。半路出家做单片机,要学的太多了。
ID:805376 发表于 2020-8-4 12:03
应该是够的
在变量定义的时候后面加上flag _at_ 0x20/flag _at_ 0x21这些试试
我怀疑可能是程序的其他部分有占用
ID:804115 发表于 2020-8-4 09:51
看一下你的map文件,看看不同的变量都是占多大空间的。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表