嵌入式
01
RTOS内核开发实战(3):任务创建、时间片轮转与状态提交,让调度器真正运转
有了 "tcb_t" 和 "ready_queue_t",调度器就已经“能存东西”了,但还不等于“能工作”。 真正让内核运转起来的,是三个关键动作: 1. 创建任务时把它合法地放进 runnable 集合。 2. 调度器只负责决定“下...
从最近发布的内容开始看,遇到感兴趣的标题就点进去。
嵌入式
01
有了 "tcb_t" 和 "ready_queue_t",调度器就已经“能存东西”了,但还不等于“能工作”。 真正让内核运转起来的,是三个关键动作: 1. 创建任务时把它合法地放进 runnable 集合。 2. 调度器只负责决定“下...
嵌入式
02
把链表打好之后,下一步不是立刻写 PendSV,而是先定义“调度器眼里的任务”到底长什么样。 当前这版代码里,这个问题的答案落在 "tcb_t" 和 "ready_queue_t" 两个结构上。 先回答一个问题:调度器看到的任务是什么...
嵌入式
03
做 RTOS,最先落地的往往不是调度算法,而是数据结构。 任务要进 ready list,延时任务要进 sleep list,后续做信号量、消息队列时还会有等待链表。如果底层链表设计得不稳,后面的调度、阻塞、超时唤醒都会跟着变脆。 这...
项目
04
本周记录:本周进行了动物园管理项目实践以及学生管理系统的进一步优化;巩固了集合部分。 在这个过程中,我也遇到了报错,印象最深的是 NullPointerException,也就是空指针异常。 例如,一个对象没有初始化就直接调用方法: ...
前后端
05
学生管理系统 "https://github.com/qffzrmcx/system_qffz" (https://github.com/qffzrmcx/system_qffz) (源代码地址) 需要用到的软件 Intellij i...
大数据
06
1. "Encoderlayer" class Encoderlayer(nn.Module): def __init__(self,d_model,n_heads,d_ff,dropout=0.1): super()...