搜索

[STC单片机] 用STC15W204S 单片机 程序内部变量超过128字节 ,怎么办

[复制链接]
1575|12
 楼主 | 2019-4-26 15:30 | 显示全部楼层 |阅读模式
老的产品 需要升级该软件 采用STC15W204S 单片机  内部256字节RAM  不带片外RAM   现在程序变量超过128字节  keil  里面设置为Small:variables in DATA   编译不通过  改为Large: variables in xdata或compct可以通过  烧进去不工作   该怎么把变量定义在 片内高128字节  用了idata  也不行

使用特权

评论回复
| 2019-4-26 16:00 | 显示全部楼层
char idata Var[4];

使用特权

评论回复
 楼主 | 2019-4-26 16:15 | 显示全部楼层

c查看 MP51 文件  地址在低128字节内
78963.png

使用特权

评论回复
| 2019-4-26 16:39 | 显示全部楼层
c475301174 发表于 2019-4-26 16:15
c查看 MP51 文件  地址在低128字节内

DATA只能在低128字节,IDATA在00~255里

使用特权

评论回复
| 2019-4-26 16:59 | 显示全部楼层
c475301174 发表于 2019-4-26 16:15
c查看 MP51 文件  地址在低128字节内

你变量少了,多了就能上去了。从下往上分配的,idata从0到255.

使用特权

评论回复
 楼主 | 2019-4-26 17:10 | 显示全部楼层
linqing171 发表于 2019-4-26 16:59
你变量少了,多了就能上去了。从下往上分配的,idata从0到255.

多定义几个变量  keil就编译不通过 IDATALEN已经改为256了
11112222.png

使用特权

评论回复
 楼主 | 2019-4-26 17:34 | 显示全部楼层
c475301174 发表于 2019-4-26 17:10
多定义几个变量  keil就编译不通过 IDATALEN已经改为256了

想不出还有 哪里会有问题  
111.png
222.png
333.png

使用特权

评论回复
| 2019-4-26 18:38 | 显示全部楼层
111.png
错误1:放不下。
错误2:没有用的变量段忽略了。

222.png
芯片名字是AT89C51,这个芯片只有128的idata,你选AT89S52看看。链接期会使用Device里面的map设置。
不建议去bl51里面设置,也不通过File/Device Database菜单修改device中的AT89C51的内存大小的map设置

333.png
这里和芯片实际大小没有关系,但是尽量还是要一致。链接期也不会使用这里的值,也不会修改这里的值。

使用特权

评论回复
 楼主 | 2019-4-27 08:25 | 显示全部楼层
linqing171 发表于 2019-4-26 18:38
111.png
错误1:放不下。
错误2:没有用的变量段忽略了。

谢谢 改为AT89C52就可以了

使用特权

评论回复
| 2019-4-27 09:06 | 显示全部楼层
c475301174 发表于 2019-4-27 08:25
谢谢 改为AT89C52就可以了

选择资源相同的芯片即可

使用特权

评论回复
| 2019-4-29 13:09 | 显示全部楼层
用STC的官方库啊,有各种对应芯片的型号

使用特权

评论回复
| 2019-4-29 13:39 | 显示全部楼层
单片机型号选错了,选AT89c52

使用特权

评论回复
| 2019-5-10 14:09 | 显示全部楼层
用STC官方例程啊,很方便的
  后期如果还有STC技术问题可以直接联系我
QQ:2593903262

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /5 下一条

在线客服 快速回复 返回顶部 返回列表