完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
STC89C52RC单片机RAM为512B,但是我在程序里定义了一个数组,占288Byte,可是编译却提示“ 'DATA': SEGMENT TOO LARGE”,(实际使用需求,此数组不能定义为code),是KEIL里要修改什么?还是头文件reg52.h要换一下?为什么会提示内存超了呢
|
|
相关推荐
8个回答
|
|
|
我知道,虽然为512B的RAM,但内部只有256B的,还有256B为外扩的RAM(虽然也在芯片内部),是不是一个数组长不能超过256B,因为一个变量只能存在内部RAM或外部RAM任意单个中。
|
|
|
|
|
|
其他地方还用了RAM吧。。。
|
|
|
|
|
|
没有,其他的用到的RAM只有9Byte,我写了最简的程序
|
|
|
|
|
|
堆栈。。。
|
|
|
|
|
|
没办法定义长度是288字节的数组,因为,单片机有三个存储区data,idata, xdata,data 128byte,idata 128byte ,xdata 256byte均无法达到288byte的要求,你只能更换更多外扩内存的单片机才行,如STC89c58,可以用 xdata char s[288];定义
|
|
|
|
|
|
用51写程序,必须要了解内部RAM的组织,对以后稳定开放产品很重要。
|
|
|
|
|
|
暂时没有了解到这一块的内容,没有用那么大!
|
|
|
|
|
|
改数组大小,或换芯片吧,单片机里有多少RAM是一个问题,但是单片机对RAM如何读写以及RAM的地址分配方法则是另一个问题
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1599 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4738 浏览 0 评论
4229 浏览 9 评论
3822 浏览 16 评论
4398 浏览 1 评论
4210浏览 3评论
2379浏览 0评论
3393浏览 0评论
1158浏览 0评论
2843浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:31 , Processed in 1.054647 second(s), Total 89, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4786