找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言数组太大导致编译失败

查看数: 3714 | 评论数: 21 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-9-7 10:43

正文摘要:

没有放在main函数里 由于数组太大导致编译失败,麻烦大佬解答一下

回复

ID:1093026 发表于 2023-9-20 10:52
目测超过了PIC ROM的section大小,要么拆分,要么换大容量的PIC单片机。
ID:219796 发表于 2023-9-20 08:36
int xdata a 就可以把a放到片外存储,比如flash
ID:1093999 发表于 2023-9-19 21:11
可以看看换一个单片机
ID:1093999 发表于 2023-9-19 21:09
换个容量大点的单片机吧
ID:879348 发表于 2023-9-18 11:53
mplab?是pic单片机就是这样,CODE和RAM也是分页的,不能一次声明超一页,所以我一直说PIC单片机包括软件硬件很多坑
ID:883242 发表于 2023-9-17 18:43
ZSJM 发表于 2023-9-11 19:09
const 去掉试试...

你是不是只用过C51啊,在C51里面code是程序区,而大多数单片机编译器是用const来实现的。
ID:1093453 发表于 2023-9-17 10:51
换个单片机
ID:57657 发表于 2023-9-13 12:17
容量超了换大容量的单片机即可,寻址超了换更高位数的单片机,或加存储芯片扩展。
ID:71233 发表于 2023-9-13 11:38
很久以前用mplab ,现在都忘记了,如果使用const仍然出现数据量超出范围的话,多半是单片机的flash太小了。
ID:1093309 发表于 2023-9-13 11:21
超出存储大小
ID:1079566 发表于 2023-9-13 11:03
Longan.Wang 发表于 2023-9-12 14:54
程序区都放不下,数据区难道还放的下????

我是怀疑不是数据大的问题,当然看不到程序,只能估...
ID:77589 发表于 2023-9-12 14:57
使用const修饰定义的数据,都存放在程序区的。说明你使用的MCU FLASH小了,放不下你的程序和你定义的常量了。建议根据实际情况,重新选型MCU;或者外接Flash
ID:77589 发表于 2023-9-12 14:54
ZSJM 发表于 2023-9-11 19:09
const 去掉试试...

程序区都放不下,数据区难道还放的下????
ID:517951 发表于 2023-9-12 07:28
数组太大, 可以考虑将固定数值不变的内容放到25Q16这样的spi flash里面, 每次编译调试下载都快很多.
ID:1079566 发表于 2023-9-11 19:09
const 去掉试试...
ID:1092884 发表于 2023-9-11 16:04
如果数组非要这么大建议换个单片机
ID:883242 发表于 2023-9-7 17:06
什么型号的单片机?换个容量大的。
ID:123289 发表于 2023-9-7 14:32
无论数组在不在MAIN里,它总是需要有地方放置的。请考虑你放的地方足够大吗?
ID:384109 发表于 2023-9-7 14:01
如果一定要这么大的数组,那就说明单片机选型选错了
ID:1079270 发表于 2023-9-7 12:55
devcang 发表于 2023-9-7 11:50
超出存储大小,如果使用large模式+CODE 后还超,建议缩减代码、或使用外存

mplab 不支持
ID:277550 发表于 2023-9-7 11:50
超出存储大小,如果使用large模式+CODE 后还超,建议缩减代码、或使用外存

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

Powered by 单片机教程网

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