HY,
我对基于FreeRTOS的安全sw架构感兴趣,该架构基于TMS570用于安全应用,
根据我对安全应用程序的观点,最好使用静态版本的任务,队列,..
xQueueCreateStatic xTaskCreateStatic xTimerCreateStatic ..等等
您是否同意这一点,或者您认为我也可以使用非静态版本? 谢谢 安东尼奥
答案 0 :(得分:3)
正如您所暗示的,FreeRTOS为您提供了两种选择。两者的一些优点和缺点列在下一页,所以我不会在这里重复它们:http://www.freertos.org/Static_Vs_Dynamic_Memory_Allocation.html
只有您可以回答您的问题,因为这取决于您的应用程序正在做什么。答案在您的应用程序是否在引导时创建所有资源然后从不删除它们,或者它是否在运行时不断创建和删除大量不同大小的内存块之间会有很大不同。由于这是一个安全应用程序,如果它在运行时进行大量的内存分配和释放,我会感到惊讶 - 但如果是这样你将不得不关注内存碎片,处理堆耗尽和内存的非确定性行为allocater(永远不会分配同一时间)。在FreeRTOS中使用heap_4.c应该可以防止在大多数情况下出现碎片,但是应该'对于安全应用来说可能不够好。
如果所有资源都是动态分配的,但只是在启动时(实际上是大多数应用程序的情况),那么这些潜在的陷阱都不适用,并且没有理由不使用动态内存。