随笔分类 - 一步步写STM32 OS
基于STM32F4Discovery开发板,开发一个类似uCOS的简单OS。
摘要:一、上篇回顾 上一篇文章中,我们完成了两个任务使用PendSV实现了互相切换的功能,下面我们接着其思路往下做。这次我们完成OS基本框架,即实现一个非抢占式(已经调度的进程执行完成,然后根据优先级调度等待的进程)的任务调度系统,至于抢占式的,就留给大家思考了。上次代码中Task_Switch实现了两个任务的切换,代码如下: void Task_Switch(){ if(g_OS_Tcb_CurP...
阅读全文
摘要:一、什么是PendSVPendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它。更详细的内容在《Cortex-M3 权威指南》里有介绍,下面我摘抄了一段。OS 可以利用它“缓期执行”一个异常——直到其它重要的任务完成...
阅读全文
摘要:一、安装IAR for ARM6.5 二、新建工程 1、选择处理器:STM32F407VG,暂不使用FPU 2、必要的路径配置和宏定义 3、使用SWO重定向IO输出 4、使用ST-LINK仿真器 5、下载配置 6、设置CPU频率,防止SWO输出乱码 三、代码调试 四、工程下载 stepbystep_stm32_os_template.rar
阅读全文
摘要:一直想写个类似uCOS的OS,近段时间考研复习之余忙里偷闲,总算有点成果了。言归正传,我觉得OS最难的部分首先便是上下文切换的问题,他和MCU的架构有关,所以对于不同的MCU,这部分需要移植。一旦这个问题解决了,整个OS算是成功了一半了,当然,是对于简单的OS。 好了,要写一个OS,首先需要一个开发板和仿真器。我的开发板是STM32F4DISCOVERY,自带ST-LINK V2仿真器,板载MCU为STM32F407VGT6,支持FPU,32位ARM Cortex-M4F核,1024KB FLASH,192 KB RAM,总之很强大。对STM32其他系列,本OS几乎不需修改修改就可使用。...
阅读全文