找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2389|回复: 21
收起左侧

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

  [复制链接]
回帖奖励 30 黑币 回复本帖可获得 30 黑币奖励! 每人限 1 次
ID:1079270 发表于 2023-9-7 10:43 | 显示全部楼层 |阅读模式
没有放在main函数里



51hei拼音截图未命名.jpg
由于数组太大导致编译失败,麻烦大佬解答一下
回复

使用道具 举报

ID:277550 发表于 2023-9-7 11:50 | 显示全部楼层
超出存储大小,如果使用large模式+CODE 后还超,建议缩减代码、或使用外存
回复

使用道具 举报

ID:1079270 发表于 2023-9-7 12:55 | 显示全部楼层
devcang 发表于 2023-9-7 11:50
超出存储大小,如果使用large模式+CODE 后还超,建议缩减代码、或使用外存

mplab 不支持
回复

使用道具 举报

ID:384109 发表于 2023-9-7 14:01 | 显示全部楼层
如果一定要这么大的数组,那就说明单片机选型选错了
回复

使用道具 举报

ID:123289 发表于 2023-9-7 14:32 | 显示全部楼层
无论数组在不在MAIN里,它总是需要有地方放置的。请考虑你放的地方足够大吗?
回复

使用道具 举报

ID:883242 发表于 2023-9-7 17:06 | 显示全部楼层
什么型号的单片机?换个容量大的。
回复

使用道具 举报

ID:1092884 发表于 2023-9-11 16:04 | 显示全部楼层
如果数组非要这么大建议换个单片机
回复

使用道具 举报

ID:1079566 发表于 2023-9-11 19:09 | 显示全部楼层
const 去掉试试...
回复

使用道具 举报

ID:517951 发表于 2023-9-12 07:28 | 显示全部楼层
数组太大, 可以考虑将固定数值不变的内容放到25Q16这样的spi flash里面, 每次编译调试下载都快很多.
回复

使用道具 举报

ID:77589 发表于 2023-9-12 14:54 | 显示全部楼层
ZSJM 发表于 2023-9-11 19:09
const 去掉试试...

程序区都放不下,数据区难道还放的下????
回复

使用道具 举报

ID:77589 发表于 2023-9-12 14:57 | 显示全部楼层
使用const修饰定义的数据,都存放在程序区的。说明你使用的MCU FLASH小了,放不下你的程序和你定义的常量了。建议根据实际情况,重新选型MCU;或者外接Flash
回复

使用道具 举报

ID:1079566 发表于 2023-9-13 11:03 | 显示全部楼层
Longan.Wang 发表于 2023-9-12 14:54
程序区都放不下,数据区难道还放的下????

我是怀疑不是数据大的问题,当然看不到程序,只能估...
回复

使用道具 举报

ID:1093309 发表于 2023-9-13 11:21 | 显示全部楼层
超出存储大小
回复

使用道具 举报

ID:71233 发表于 2023-9-13 11:38 | 显示全部楼层
很久以前用mplab ,现在都忘记了,如果使用const仍然出现数据量超出范围的话,多半是单片机的flash太小了。
回复

使用道具 举报

ID:57657 发表于 2023-9-13 12:17 | 显示全部楼层
容量超了换大容量的单片机即可,寻址超了换更高位数的单片机,或加存储芯片扩展。
回复

使用道具 举报

ID:1093453 发表于 2023-9-17 10:51 | 显示全部楼层
换个单片机
回复

使用道具 举报

ID:883242 发表于 2023-9-17 18:43 | 显示全部楼层
ZSJM 发表于 2023-9-11 19:09
const 去掉试试...

你是不是只用过C51啊,在C51里面code是程序区,而大多数单片机编译器是用const来实现的。
回复

使用道具 举报

ID:879348 发表于 2023-9-18 11:53 | 显示全部楼层
mplab?是pic单片机就是这样,CODE和RAM也是分页的,不能一次声明超一页,所以我一直说PIC单片机包括软件硬件很多坑
回复

使用道具 举报

ID:1093999 发表于 2023-9-19 21:09 | 显示全部楼层
换个容量大点的单片机吧
回复

使用道具 举报

ID:1093999 发表于 2023-9-19 21:11 | 显示全部楼层
可以看看换一个单片机
回复

使用道具 举报

ID:219796 发表于 2023-9-20 08:36 来自手机 | 显示全部楼层
int xdata a 就可以把a放到片外存储,比如flash
回复

使用道具 举报

ID:1093026 发表于 2023-9-20 10:52 | 显示全部楼层
目测超过了PIC ROM的section大小,要么拆分,要么换大容量的PIC单片机。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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