找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1255|回复: 7
打印 上一主题 下一主题
收起左侧

请问各位大神们,51单片机为什么在memory model为large时串口会出问题

[复制链接]
跳转到指定楼层
楼主
ID:1004966 发表于 2022-2-12 23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1005062 发表于 2022-2-13 21:39 | 只看该作者
编译前需要在“devies target"栏里的”memory model:"选PDATA或XDATA
回复

使用道具 举报

板凳
ID:624769 发表于 2022-2-13 23:26 | 只看该作者
memory model 永远用 small
回复

使用道具 举报

地板
ID:1004966 发表于 2022-3-3 14:17 | 只看该作者
188610329 发表于 2022-2-13 23:26
memory model 永远用 small

但是,我的文件使用small时候会出现SEGMENT TOO LARGE
回复

使用道具 举报

5#
ID:1004966 发表于 2022-3-3 14:53 | 只看该作者
blackrkj 发表于 2022-2-13 21:39
编译前需要在“devies target"栏里的”memory model:"选PDATA或XDATA

这么做了,但是功能还是有问题
回复

使用道具 举报

6#
ID:161164 发表于 2022-3-3 16:49 | 只看该作者
是菜鸟啊啊啊啊 发表于 2022-3-3 14:17
但是,我的文件使用small时候会出现SEGMENT TOO LARGE

部份变数要变做idata

unsigned char idata Rec_Buff[20];
回复

使用道具 举报

7#
ID:624769 发表于 2022-3-3 20:42 | 只看该作者
是菜鸟啊啊啊啊 发表于 2022-3-3 14:17
但是,我的文件使用small时候会出现SEGMENT TOO LARGE

过了一个月,还以为你问题都解决了。
首先, memory model 永远用 small。
如果出现了  'DATA': SEGMENT TOO LARGE   这样的字样
申明变量的时候, 适当给 数组类的变量, 加上 idata, pdata, xdata 等前缀。
分担 DATA 的负担,
对于,只需要 读,写 的数组,可以用pdata,
对于,需要++,--, 与或操作的 数组, 尽量用 idata.
如果数组 较大,可以考虑 xdata
回复

使用道具 举报

8#
ID:1004966 发表于 2022-3-7 00:11 | 只看该作者
加前缀确实解决问题了,谢谢各位
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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