打印
[STM32F1]

大家在估算一个程序需要 多少RAM多少FLASH,是如何预估的?

[复制链接]
楼主: heweibig
手机看帖
扫描二维码
随时随地手机跟帖
21
everyrobin| | 2024-3-2 17:45 | 只看该作者 回帖奖励 |倒序浏览
需要了解程序的基本结构,包括主函数、子函数、变量和数据结构等。这有助于对程序的存储需求有一个初步的估计。

使用特权

评论回复
22
10299823| | 2024-3-3 09:08 | 只看该作者
在分配内存时,可能会产生内存碎片,这部分内存可能无法被有效利用,因此在实际计算时需要考虑一定的余量。

使用特权

评论回复
23
elsaflower| | 2024-3-3 11:06 | 只看该作者
如果程序中使用了外部设备,如串口、定时器等,这些设备的控制和数据缓存也会占用一定的RAM空间。

使用特权

评论回复
24
mikewalpole| | 2024-3-3 16:18 | 只看该作者
RAM主要用于存储程序运行过程中的变量和数据。可以逐个分析程序中的变量和数据结构,根据它们的数据类型和数量估算所需的RAM空间。例如,一个32位整数变量需要4字节的RAM空间,一个浮点型变量需要4字节的RAM空间,一个字符型变量需要1字节的RAM空间等。同时,还需要考虑程序运行过程中可能产生的临时变量和数据。

使用特权

评论回复
25
mmbs| | 2024-3-3 19:28 | 只看该作者
通常需要在RAM中预留一部分空间作为堆栈,以及可能的扩展空间。

使用特权

评论回复
26
yorkbarney| | 2024-3-4 11:24 | 只看该作者
需要深入理解程序的结构和功能。这包括识别程序中的各个部分(如主程序、中断服务程序、函数等),以及它们之间的关系和调用频率。

使用特权

评论回复
27
tabmone| | 2024-3-4 15:55 | 只看该作者
初步预估后,需要进行迭代和优化。这可能包括调整数据结构、优化代码算法、减少不必要的函数调用等。在每次优化后,重新使用静态分析工具进行估算,以确保满足资源需求。

使用特权

评论回复
28
理想阳| | 2024-3-5 08:57 | 只看该作者
我以前真的不关心这个问题

使用特权

评论回复
29
pixhw| | 2024-3-5 16:08 | 只看该作者
程序中可能需要存储一些全局变量、常量或堆栈数据。这部分数据的大小取决于程序的具体需求。可以通过查看编译器生成的数据段大小来预估数据存储所需的空间。

使用特权

评论回复
30
Pretext| | 2024-3-5 21:55 | 只看该作者
正常的做法是先用大容量的样本来写,然后根据实际情况选择合适的价格

使用特权

评论回复
31
i1mcu| | 2024-3-5 22:04 | 只看该作者
估算程序中使用的全局变量、静态变量、动态分配的堆栈空间等所需的内存大小。

使用特权

评论回复
32
软核硬核| | 2024-3-6 00:53 | 只看该作者
在选择合适的测试程序之前,我总是先编写大容量的测试程序

使用特权

评论回复
33
AIsignel| | 2024-3-8 20:07 | 只看该作者
Usually, don't use large arrays

使用特权

评论回复
34
jtracy3| | 2024-3-9 17:08 | 只看该作者
需要分析程序中使用的变量和数据结构。这包括全局变量、局部变量、数组、结构体等。注意考虑变量的数据类型、大小和生命周期,因为这些都会直接影响RAM的使用。

使用特权

评论回复
35
zerorobert| | 2024-3-10 11:09 | 只看该作者
程序中使用的全局变量、局部变量、数组、字符串等都会占用RAM空间。而定义的常量、程序代码本身则会占用FLASH空间

使用特权

评论回复
36
bestwell| | 2024-3-10 22:13 | 只看该作者
有些程序在运行时会占用更多的内存,例如,循环中的动态分配堆空间等。

使用特权

评论回复
37
tifmill| | 2024-3-11 16:55 | 只看该作者
可以使用开发工具,如Keil等,它们通常能提供详细的内存使用报告,帮助开发者了解程序对内存的实际需求。

使用特权

评论回复
38
minzisc| | 2024-3-11 19:14 | 只看该作者
如果程序使用了外部设备驱动或第三方库函数,需要考虑这些模块所占用的RAM和FLASH空间。通常,这些模块的文档或源代码中会提供其资源占用信息。

使用特权

评论回复
39
alvpeg| | 2024-3-12 14:16 | 只看该作者
通过实际编写代码并进行初步测试,观察编译器生成的.map文件或使用IDE提供的内存统计工具来精确了解RAM和FLASH的实际占用情况。

使用特权

评论回复
40
天天向善| | 2024-3-14 06:35 | 只看该作者
有些程序在运行时消耗更多内存,例如在循环中动态分配堆空间。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则