rtt关闭动态内存

发布于 2019-11-18 21:21:00
最近阅读的时候注意到有些安全要求高的电子设备(比如航空航天军工之类)是不能用动态内存的,会增加风险。那rtthread怎么彻底关闭动态内存呢?

查看更多

关注者
0
被浏览
283
8 个回答
AMBavionics
AMBavionics 2019-11-18
我记得我之前试过一次关闭using heap,不过编译报错了
eric007
eric007 2019-11-18
AMBavionics 发表于 2019-11-18 21:25
我记得我之前试过一次关闭using heap,不过编译报错了


你好,建议将你的配置过程与编译日志贴出来。
AMBavionics
AMBavionics 2019-11-19
eric007 发表于 2019-11-18 21:55
你好,建议将你的配置过程与编译日志贴出来。


大部分是这种错误,貌似很多驱动里边都是用动态内存QQ截图20191119090055.png

eric007
eric007 2019-11-20
AMBavionics 发表于 2019-11-19 08:58
大部分是这种错误,貌似很多驱动里边都是用动态内存


你关闭了堆功能,却又使用动态分配内存,岂不自相矛盾。这报错不是很正常吗
AMBavionics
AMBavionics 2019-11-26
eric007 发表于 2019-11-20 22:14
你关闭了堆功能,却又使用动态分配内存,岂不自相矛盾。这报错不是很正常吗 ...


那必须要挨个把用malloc函数的地方改掉吗?
qz_rtt
qz_rtt 2019-11-26
驱动这里应该有条件编译的代码,当关闭动态分配时,使用静态分配的变量。
AMBavionics
AMBavionics 2019-11-26
qz_rtt 发表于 2019-11-26 16:58
驱动这里应该有条件编译的代码,当关闭动态分配时,使用静态分配的变量。 ...


我看很多驱动里边没有这样的条件编译
bernard
bernard 2019-11-26
关闭动态内存没那么容易的。关闭动态内存后,基本上是一个nano的版本,可以有shell,可以有多任务。但到上次组件,显然就不完全是这样了,这些组件所对应需要的驱动也不能屏蔽掉动态内存。

既然已经是到关闭动态内存的情况了,那么面向的场景一定是极为苛刻了,这个时候需要一个个去卡代码,也是必须的。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友