• 欢迎访问hellobiancheng.com 本站包含大量编程教程、编程工具软件以及学习资源!

嵌入式开发之osThreadAttr_t结构体介绍

编程经验 CTO 46次浏览 0个评论

最近在用小熊派的开发板做嵌入式,遇到 osThreadAttr_t这个结构体,搜了很久没有发现比较合适的介绍,就连官方的介绍页面,也只有整体的介绍,每个成员的功能打开都是404,因此整理如此。osThreadAttr_t这个结构体位于cmsis_os2.h的头文件中,定义如下:

 

typedef struct {

  /** Thread name */

  const char                   *name;

  /** Thread attribute bits */

  uint32_t                 attr_bits;

  /** Memory for the thread control block */

  void                      *cb_mem;

  /** Size of the memory for the thread control block */

  uint32_t                   cb_size;

  /** Memory for the thread stack */

  void                   *stack_mem;

  /** Size of the thread stack */

  uint32_t                stack_size;

  /** Thread priority */

  osPriority_t              priority;

  /** TrustZone module of the thread */

  TZ_ModuleId_t            tz_module;

  /** Reserved */

  uint32_t                  reserved;

} osThreadAttr_t;

 

 

几经周折,查到该结构体中各个成员的意义如下:

数据字段
const char * name 线程的名称指向具有线程对象的人类可读名称的字符串。
默认值:NULL 。
uint32_t attr_bits 属性位可以分配以下预定义位掩码来设置线程对象的选项。

位掩码 描述
osThreadDetached 在分离模式下创建线程(默认)。
osThreadJoinable 在可连接模式下创建线程,请参阅 osThreadJoin 。
void * cb_mem 内存控制块指向线程控制块对象的内存位置。这可以选择用于定制内存管理系统。
默认值:NULL(使用内核内存管理)。
uint32_t cb_size 为控制块提供的内存大小内存块的大小与 cb_mem 一起传递。必须是线程控制块对象的大小或更大。
void * stack_mem 内存的堆栈指向线程堆栈的内存位置的指针必须是 64 位对齐的。这可以选择用于定制内存管理系统。
默认值:NULL(使用内核内存管理)。
uint32_t stack_size 堆栈大小由 stack_mem 指定的堆栈大小。
osPriority_t priority 初始线程优先级(默认:osPriorityNormal)使用 osPriority_t 中的值指定初始线程优先级。
默认值:osPriorityNormal
TZ_ModuleId_t tz_module TrustZone 模块标识符。TrustZone 线程上下文管理标识符为线程分配上下文内存。以非安全状态运行的 RTOS 内核调用由头文件 TZ_context.h 定义的接口函数。对于根本不使用安全调用的线程,可以安全地设置为零。请参阅 TrustZone RTOS 上下文管理。
uint32_t reserved 保留(必须为 0)保留以供将来使用(设为 ‘0’)。
默认值:0 。
C语言网提供「C语言、C++、算法竞赛」在线课程,全部由资深研发工程师或ACM金牌大佬亲授课,更科学、全面的课程体系,以在线视频+在线评测的学习模式学习,学练同步,拒绝理论派,真正学会编程!还有奖学金等增值福利等你!

你好编程, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明嵌入式开发之osThreadAttr_t结构体介绍
喜欢 (0)
[jinyangH@aliyun.com]
分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)