主题中讨论的其他器件:LAUNCHXL-CC26X2R1、 CC2640R2L、 SYSBIOS
尊敬的 TI 支持:
我正在尝试使用 GNU GCC Linaro 9.2.1工具链、最大限度地减少应用中的每线程堆栈和堆使用量
当首次使用 errno 处理线程时、newlib 会为线程的_reent 结构分配动态缓冲区(我认为不使用任何其他可重入性功能)。
动态内存分配是一个小问题、我认为我可以忍受、因为希望每个线程只发生一次(我的线程都是静态的)。
问题的发生是因为内存分配过程需要大量堆栈使用、但之后线程不需要太多的内存。 如果我在线程开始时强制分配(例如通过将 errno 设置为0)、我可以最小化该线程的使用、从而避免稍后在嵌套 funcion 调用中进行分配、 但是、我仍然得到每线程700字节的堆栈使用、而在其余工作场景中、线程使用的是400图中的某些内容(如果从未使用过 errno、i.e:stdlib funcions 都很高兴使用外部环境无法控制的输入、如"strtoul")
我想知道是否有办法将 TI-RTOS 配置为静态为每个线程预先分配此结构、因此无需动态内存分配、堆和堆栈的使用都可以减少或删除。
谢谢你