RT 操作系统
文章平均质量分 59
多线程事务处理
Wizard797
这个作者很懒,什么都没留下…
展开
-
RT thread 信号量操作
rt_err_t rt_sem_take(rt_sem_t sem, rt_int32_t time) 不可再ISR中断中调用。rt_err_t rt_sem_trytake(rt_sem_t sem) 函数就是尝试获取信号量。1.RT_IPC_FLAG_FIFO 等待的线程按照先进先出的方式排队。2.RT_IPC_FLAG_PRIO 等待的线程将按照优先级高的线程。ISR为快进快出 若调用 会永远挂起导致永远得不到反馈。获取不到就会返回 -RT_ETimeout。原创 2023-10-19 22:36:50 · 388 阅读 · 0 评论 -
FreeRTOS-队列优先级
Freertos 消息队列原创 2023-03-30 21:52:33 · 351 阅读 · 0 评论 -
RT-Thread创建线程函数
构造好这个一个栈,然后将rt-thread 的sp指针 r4 栈尾。之后运行 这个线程时 将创建的栈中的词 写入CPU寄存器中。ro为参数寄存器 在函数入口时 将参数传置R0寄存器之中。该值 保存在栈中 之后再赋值给PC寄存器。1.分配了一个RT_thread 结构体。存在栈中的 有R0到R15 ,PSR。R13不保存 其别名为栈 保存在sp。PSR: 函数运行过程中断的开还是关。原创 2022-11-28 18:35:12 · 270 阅读 · 0 评论 -
创建线程时 栈的理论
假装暂停在第一条指令之前 设置栈 sp=sp -16*4。而动态分配 只需要指定栈的大小 即可 内部会给您分配。静态分布事先给出了栈的地址 和栈的大小 (数组)在thread_entry 进入函数A时 函数a。恢复时运行时要让PC 寄存器等于这个入口地址。如图所示 R15为入口地址。原创 2022-11-28 14:19:15 · 131 阅读 · 0 评论