一步步写STM32 OS【一】 序言】的更多相关文章

一直想写个类似uCOS的OS,近段时间考研复习之余忙里偷闲,总算有点成果了.言归正传,我觉得OS最难的部分首先便是上下文切换的问题,他和MCU的架构有关,所以对于不同的MCU,这部分需要移植.一旦这个问题解决了,整个OS算是成功了一半了,当然,是对于简单的OS. 好了,要写一个OS,首先需要一个开发板和仿真器.我的开发板是STM32F4DISCOVERY,自带ST-LINK V2仿真器,板载MCU为STM32F407VGT6,支持FPU,32位ARM Cortex-M4F核,1024KB FLA…
一.上篇回顾 上一篇文章中,我们完成了两个任务使用PendSV实现了互相切换的功能,下面我们接着其思路往下做.这次我们完成OS基本框架,即实现一个非抢占式(已经调度的进程执行完成,然后根据优先级调度等待的进程)的任务调度系统,至于抢占式的,就留给大家思考了.上次代码中Task_Switch实现了两个任务的切换,代码如下: void Task_Switch() { if(g_OS_Tcb_CurP == &TCB_1) g_OS_Tcb_HighRdyP=&TCB_2; else g_OS_…
一.什么是PendSV PendSV是可悬起异常,如果我们把它配置最低优先级,那么如果同时有多个异常被触发,它会在其他异常执行完毕后再执行,而且任何异常都可以中断它.更详细的内容在<Cortex-M3 权威指南>里有介绍,下面我摘抄了一段. OS 可以利用它“缓期执行”一个异常——直到其它重要的任务完成后才执行动 作.悬起 PendSV 的方法是:手工往 NVIC的 PendSV悬起寄存器中写 1.悬起后,如果优先级不够 高,则将缓期等待执行. PendSV的典型使用场合是在上下文切换时(在不…
一.安装IAR for ARM6.5 二.新建工程 1.选择处理器:STM32F407VG,暂不使用FPU 2.必要的路径配置和宏定义 3.使用SWO重定向IO输出 4.使用ST-LINK仿真器 5.下载配置 6.设置CPU频率,防止SWO输出乱码 三.代码调试 四.工程下载 stepbystep_stm32_os_template.rar…
第一次在知乎写博客,献丑了. VS code写stm32   今天实在觉得KEIL太丑,突然想到VS code也可以实现STM32代码的编写,遂决定写一个文章,把VScode变成一个STM32的IDE,实现KEIL的绝大部分功能,实现编译,链接,下载,调试为一体的IDE.参考了如下开源项目,这个项目用起来挺舒服的,自己也不会去写这些,这个还支持keil项目的导入. 基于CUBEMX构建VS code得IDE 先安装VS code 先安装python,这个...我就不写教程了,网上多的很,但我还是…
转载:http://tieba.baidu.com/p/1273477757 0 neta 有的时候我们在读书或者看文档.——啊,原来这东西的框架就是这样而已,很直白么.有的时候我们在读代码.——于是也不免有一点抱怨:作者多写一点注释又不会累死.(尤其是在作者花了相当篇幅威胁某个禁止他测试DDoS attacker的管理员但懒得多写点解释的情况下.)不过读完了代码稍微回顾一下的话,又会发现[其实这里那里的根本就不需要注释].如果只求行尸走肉般的实现,OS也是这么一种东西. 有的时候我会想起以前从…
写AVR已经两年了.如果初中时候玩Arduino也算的话,就是6年. 两年以来,我用AVR单片机完成了两个大项目: AVR单片机教程,一时兴起写的,效果不好: MEDS,参赛用的课题,半完成,比赛都结束了就放弃了. 以及若干小项目,AVR×C++.光立方.摇摇棒等,还有未完成的USB下载器.升级版光立方和摇摇棒等. 尽管还有未完成的项目,我对AVR已经有点厌倦了.这有很多原因: AVR性能实在不行,自编程单片机系统感觉很悬(可能是我好高骛远): 我接触到的AVR单片机都是十多年的型号了,新的AT…
在Keil MDKARM中 unsigned int value2=0x80000000; unsigned int value4=2147483648; value2编译时不产生警告,而value4就产生警告 main.c(17): warning:  #1134-D: literal treated as "long long" 解决方法: 关键是2147483648是一个字面常量,类型是int型,而不是unsigned int. 上面这个语句,需要先将int类型,转换成unsig…
在 windows 中写操作系统,需要一系列的辅助工具.在此,要感谢川谷秀实!所有工具,都在 z_tools 文件夹中.有了大师的帮助,不妨也来尝试在 windows 中写一把 OS. 源代码及工具可到 x01.Lab.Download 中下载.进入 src 文件夹,只有两个文件,一个是 run.bat, 一个是 boot.s.boot.s  都是大同小异的,skip!run.bat 内容如下: ..\z_tools\nask boot.s boot.bin boot.txt ..\z_tool…
. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 异数OS-织梦师(消息中间件 ,区块链,游戏开发方向)群: 476260389 异数OS-织梦师-Xnign(Nginx方向)群: 859548384 序言 本文测试数据由AMD服务器供应商 正昱科技提供的EPYC 7551完成,再次感谢他们提供…