gpt4 book ai didi

c++ - 在数组中存储 200kb 的数据?

转载 作者:行者123 更新时间:2023-11-30 02:25:05 24 4
gpt4 key购买 nike

我是嵌入式应用程序编程的新手(除了一些 Arduino 的东西),我正在使用德州仪器 (TI) 的 CC3220SF 微 Controller 。

目前我有一个不断轮询设备并存储结果的程序。我想存储 100,000 个这些样本(每个样本为 2 个字节),给我 200kb 的数据来存储。我不太确定我应该如何去做这件事,因为试图制作一个大小为 [100][1000] 的数组只会使设备崩溃。

我应该如何存储这些数据以备后用?

#define MAX_ARR_LENGTH                   1000
#define MAX_ARR_DEPTH 100

// Later in the collection function:
uint16_t measurmentsArr[MAX_ARR_DEPTH][MAX_ARR_LENGTH] = {0};
unsigned int arr_length = 0;
unsigned int arr_depth = 0;

// And later, after a data point has
// been verified as useful:
if (arr_length < MAX_ARR_LENGTH){
measurmentsArr[arr_depth][arr_length++] = angle;
} else {
arr_length = 0;
measurmentsArr[arr_depth++][arr_length] = angle;
}

这种 ^^^ 方式适用于小型阵列,但正如我所说,我需要存储 200kb...我知道 CC3220SF 有 512kb 可供使用,我如何最好地写入/读取它?

尊敬的,-詹姆斯

最佳答案

很有可能在那个巨大的数组前面加上 static 就能让它工作。

大多数嵌入式系统的编译器会将函数局部变量放在 CPU 堆栈上,但是 static 变量具有“静态存储持续时间”,并且本质上表现得像全局变量。链接器确切地知道它们需要多少内存,并会尝试将它们装入。

当然,static 会使函数不可重入,但无论如何您不能在 256 kB 设备上分配两个 200 kB 数组。

关于c++ - 在数组中存储 200kb 的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44849247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com