首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在PIC32中定义大型数组吗?

不能在PIC32中定义大型数组吗?
EN

Stack Overflow用户
提问于 2019-04-22 13:23:53
回答 1查看 405关注 0票数 1

我是C语言和微控制器的新手,我正在尝试通过复制我在网上找到的项目来学习。在这里,我有一个在与我相同的硬件上创建的项目(PIC32MX534F064H),我基本上是将语法从mikroC转换到我正在使用的微芯片编译器(XC32 v1.34)。我使用MPLab集成开发环境X来实现这一点。

在这个项目中,我试图定义一个大的(32000)无符号整数向量,编译器向我抛出了一个错误,我的解释是这个向量对于设备来说太大了。事实并非如此,因为该项目在相同的硬件上工作,而是在mikroC上工作。

我试着降低向量大小,3200大小的向量编译起来很完美,所以我认为它与这个向量的大小有关,而不是语法。

我在谷歌上搜索了几个小时,并查看了数据表,发现对于较小的图片,有一种特定的方法来设计大型数组,但没有关于PIC32的文档。

所以当我这样定义我的向量时

代码语言:javascript
复制
#include <p32xxxx.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>       
#include <xc.h> 
#include <plib.h> 

signed int data[32000];

编译器把这个抛给我

代码语言:javascript
复制
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' 
failed /Applications/microchip/xc32/v1.34/bin/bin/gcc/pic32mx/4.5.2/../../../..
/bin/xc32-ld: dist/default/production/LED.X.production.elf section 
`.bss' will not fit in region `kseg1_data_mem'
/Applications/microchip/xc32/v1.34/bin/bin/gcc/pic32mx/4.5.2/../../../..
/bin/xc32-ld: Link terminated due to previous error(s).

现在,我不知道下一步该怎么做所以..任何帮助都是非常感谢的。

编辑

我的信息确实是错的,硬件被更新来处理这样的向量,而我并没有意识到这一点。谢谢你的回答

EN

回答 1

Stack Overflow用户

发布于 2019-04-22 13:52:35

device overview可以明显看出,所讨论的M4K是32位的(“80 M4K/105DMIPS,32位MIPS MIPS内核”),因此signed int也是32位宽的。

数组元素的short怎么样?

注意,如果程序是可从闪存执行的,那么您可能希望确保它不会被加载到RAM中,否则就没有太多的空间了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55789502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档