![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SMC-RTOS
liulangrenaaa
有任何问题可以联系sh_def@163.com
展开
-
SMC-RTOS之简介
简介 作为一名单片机的爱好者,我想大家都沉迷于自己作为造物主的角色。控制着各种形形色色的传感器,实现各种各样的功能。然而,在编程的世界中,你是否还在一直使用前后台轮询的方式编程。站在自己的角度来说,我一直是。当需要很多个线程的时候,我一般采取的方法是在定时器中为每一个线程定义一个计数器和一个事件标志位。当计数器达到设定的时间就立刻置位相应的标志位。 main 函数中通过查询置位的标志位进行线程处...原创 2018-07-30 01:45:21 · 366 阅读 · 0 评论 -
SMC-RTOS之内核数据结构
内核链表 借鉴了linux内核链表的实现方式,SMC_RTOS也实现了一套内核链表。很好地实现了数据结构的重用。 struct smc_list_node { struct smc_list_node *prev; struct smc_list_node *next; }; Thread TCB结构体 借鉴了ucosii等其他RTOS的TCB结构实现方式 typedef...原创 2018-07-30 10:09:57 · 239 阅读 · 0 评论 -
SMC-RTOS之semaphore
数据结构 typedef struct smc_sem { smc_list_head_t slist; /* Thread that is suspended for waiting for a semaphore */ smc_uint16_t value; /* sema...原创 2018-08-07 14:35:27 · 435 阅读 · 0 评论 -
SMC-RTOS之idle_task空闲任务
idle_task 这个idle_task就是空闲任务,所谓空闲就是在CPU上没有其他thread时才会跑到的任务。 在系统初始化时,他是系统自动创建的任务,因为如果用户没有创建任何任务的话直接去启动系统,会发现无任务可调度,会崩溃。 另一个重要功能就是统计CPU的空闲时间,稍作处理就可以获得CPU的使用率。 接口介绍 初始化 这里面有个计算CPU使用率的逻辑就是用正常工作时1s...原创 2018-08-07 15:38:56 · 1217 阅读 · 0 评论 -
SMC-RTOS之timer
Timer 这里主要介绍SMC-RTOS实现的软件定时器Timer,一般OS软件定时器的精度都是OS系统心跳节拍的整数倍,SMC_RTOS也不例外。 软件定时器利用系统节拍进行计数定时,所以本身系统节拍时钟必须准确,否则软件定时器肯定是不准的。 定时器的数据结构 typedef struct smc_timer { void (*timerout)(void *parame...原创 2018-08-08 11:55:59 · 380 阅读 · 0 评论 -
SMC-RTOS任务切换,栈空间初始化(基于CM3,CM4内核)
栈空间初始化 CM3内核是小端格式的,栈也是满减栈,下面是任务TCB初始化的时候任务栈空间的初始化 (这部分内容与CM3内核紧密相连,需要读者非常熟悉CM3堆栈机制(MSP PSP双堆栈机制等),异常机制等处理) /** * This function will initialize thread stack * * @param tentry [the entry of th...原创 2018-08-20 20:00:43 · 927 阅读 · 0 评论