内存动态分配和静态分配应用
关于硬汉的程序里面这部分堆栈分配的问题 ,未使用是什么意思?
我自己也在程序里这样使用 但发现osRtxThread_t这个类型找不到,
好像这个类型在#include <cmsis_os.h>这个头文件里支持, 但是#include <cmsis_os2.h>和#include <cmsis_os.h>一起包含 又出现冲突,关于这部分希望硬汉给与答疑解惑
#include "rtx_os.h" /* 任务的属性设置 */
const osThreadAttr_t ThreadStart_Attr = {
/*内存控制块,指向线程控制块对象的内存位置。这可以选择用于定制内存管理系统。
默认值:NULL(使用内核内存管理)。*/
// .cb_mem = &worker_thread_tcb_1, // 内存控制块
/* ------------------------------------- */
/*为控制块提供的内存大小。内存块的大小与 cb_mem 一起传递。
必须是线程控制块对象的大小或更大。 */
// .cb_size = sizeof(worker_thread_tcb_1), // 为控制块提供的内存大小
/* ------------------------------------- */
/*内存的堆栈。指向线程堆栈的内存位置的指针必须是 64 位对齐的。这可以选择用于定制内存管理系统。
默认值:NULL(使用内核内存管理)。*/
// .stack_mem = &worker_thread_stk_1, // 内存的堆栈
/* ------------------------------------- */
/*堆栈大小。由 stack_mem 指定的堆栈大小。*/
// .stack_size = sizeof(worker_thread_stk_1),// 堆栈大小
/* ------------------------------------- */
/*初始线程优先级(默认:osPriorityNormal)。使用 osPriority_t 中的值指定初始线程优先级。
默认值:osPriorityNormal。*/
// .priority = osPriorityAboveNormal,// 初始线程优先级
/* ------------------------------------- */
/*TrustZone 模块标识符。TrustZone 线程上下文管理标识符为线程分配上下文内存。
以非安全状态运行的 RTOS 内核调用由头文件 TZ_context.h 定义的接口函数。
对于根本不使用安全调用的线程,可以安全地设置为零。请参阅 TrustZone RTOS 上下文管理。*/
// .tz_module = 0 // TrustZone 模块标识符。
.name = "osRtxStartThread", // 线程的名称。
.attr_bits= osThreadDetached, // 属性位。osThreadDetached:在分离模式下创建线程(默认)
.priority = osPriorityHigh4, // 初始线程优先级。(默认:osPriorityNormal)
.stack_size = 1024, // 线程堆栈大小。
};
页:
[1]