当前位置:网站首页>bcos简介及自序
bcos简介及自序
2022-07-31 06:08:00 【南波儿万】
1. BCOS简介
这是一个嵌入式实时操作系统,因大多数时候是周末没事的时候在被窝里开发的,故取名bcos(bed clothes os)。该操作系统支持多任务抢占式优先级调度,定时tasklet等功能。目前的硬件环境是STM32F103ZE,可以移植到大多数的ARM Cortex-M的单片机上。开发环境使用的是keil,其他开发环境或编译器移植起来难度也不大。
本文分为应用篇和原理篇,应用篇主要介绍bcos各功能模块的使用方法和注意事项,原理篇根据bcos的各功能模块由浅入深的讲解bcos的实现过程和原理。可以让读者深入了解嵌入式RTOS的相关知识。
2. 自序
从2015年夏天开始接触单片机一路走来已经有七年之久了,其实在2015年秋天我就已经接触到了嵌入式操作系统了。当时看的是由宋岩翻译的钠泵ucos的书,这里可能不太准确,有可能是宋岩老师写的,因为时间太过久远这里就不再深究。这么多年的学习和工作一直都是使用嵌入式操作系统,对其中深层次的原理也是一知半解。这么多年从未遇到一本详细讲解嵌入式操作系统开发的书籍,所有有关操作系统的书不是单纯的讲解一些晦涩的操作系统的原理就是与Linux系统的有关。从去年(2021)开始对ARM汇编及操作系统实现原理进行了深入的了解,于是决定自己实现一个嵌入式操作系统。
经历了大约一年业余时间的摸索bcos已经的功能逐渐的完善起来。为了让更多的嵌入式开发者了解到嵌入式操作系统的原理,我将我的开发和实现过程记录下来形成本文。本文计划分成三部分:
板块 | 简述 |
---|---|
原理篇 | 讲述bcos各功能模块的实现原理及细节,在讲解的过程中穿插C语言的编程技巧、数据结构和算法等知识。 |
应用篇 | 主要是bcos的应用文档主要内容是各应用接口的使用方法和注意事项以及示例代码的说明。 |
调试技术 | 通过我自己在开发bcos的过程中遇到的问题讲解单片机常见问题的调试手段及调试技巧和方法 |
我个人认为现在嵌入式操作系统原理及实现方法相关的书籍和资料相对较少,详细讲解嵌入式操作系统实现过程更是少之又少,希望我的努力可以帮助到更多的嵌入式开发者。另外,我发现现在网上有关调试的书籍及资料更少,其实现实开发过程中对问题的调试是所有开发人员绕过给的砍。所以,掌握常见的调试技巧及方法可以极大的提高开发和解决问题的效率。我这里讲的调试技术大多数是针对C语言本身及keil这个集成开发环境来讲解的,有些技巧可以扩展到其他平台。
最后,这篇文字可能会挂到CSDN的收费下载模块。希望喜欢和需要的读者可以理解作者的苦衷和创作不易,在bcos的开发和调试以及文档的编辑过程中确实付出了不少的心血,真正需要的读者可以给我做一点经济上的支持。
边栏推荐
- Project exercise - memorandum (add, delete, modify, check)
- QFileInfo常规方法
- Conditional statements of shell (test, if, case)
- 【C语言项目合集】这十个入门必备练手项目,让C语言对你来说不再难学!
- Automatic translation software - batch batch automatic translation software recommendation
- 我开发了一个利用 Bun 执行 .ts / .js 文件的 VS Code 插件
- Titanic 预测问题
- 【Go语言入门教程】Go语言简介
- 事务的传播机制
- 2022.07.29_每日一题
猜你喜欢
芯塔电子斩获第十一届中国双创大赛芜湖赛区桂冠
我开发了一个利用 Bun 执行 .ts / .js 文件的 VS Code 插件
基于交替迭代法的交直流混合系统潮流计算matlab程序iEEE9节点系统算例
Difficulty comparison between high concurrency and multithreading (easy to confuse)
什么是半波整流器?半波整流器的使用方法
【Go语言入门教程】Go语言简介
Install and use uView
03-SDRAM: Write operation (burst)
测试 思维导图
【微服务】Nacos集群搭建以及加载文件配置
随机推荐
DirectExchange交换机简单入门demo
一文读懂 MongoDB 和 MySQL 的差异
03-SDRAM:写操作(突发)
2022.7.29 数组
双倍数据速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory, DDR SDRAM)- 逻辑描述部分
事务的传播机制
How to use repeating-linear-gradient
我开发了一个利用 Bun 执行 .ts / .js 文件的 VS Code 插件
【云原生】-Docker容器迁移Oracle到MySQL
Kubernetes调度
Conditional statements of shell (test, if, case)
Leetcode952. 按公因数计算最大组件大小
2.(1)栈的链式存储、链栈的操作(图解、注释、代码)
opencv、pil和from torchvision.transforms的Resize, Compose, ToTensor, Normalize等差别
【微服务】Nacos集群搭建以及加载文件配置
【Go报错】go go.mod file not found in current directory or any parent directory 错误解决
第十七章:回溯探求指定入口的马步遍历,贪心无回溯探求马步遍历,递归探求nxm棋盘带障碍马步遍历
【编程题】【Scratch三级】2022.03 冬天下雪了
Install the gstreamer development dependency library to the project sysroot directory
批量翻译软件免费【2022最新版】