![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式工程师实现一个简单的操作系统
文章平均质量分 82
从嵌入式软件工程师角度,学习和实现一个操作系统
使用qemu模拟环境,基于arm64架构
目标功能:
任务调度
内存管理
进程同步、通信
其他
jhb222
这个作者很懒,什么都没留下…
展开
-
神仙GDB调试工具 gdb-dashboard
摆脱IDE的生产力调试工具 GDB-Dashboard原创 2021-11-23 23:31:01 · 678 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(六)
以嵌入式工程师的角度来实现一个简单的操作系统!1. 前言继上节课的内容之后,我们距离激动人心的目标还剩下一小步了现在已经实现了有组织的创建任务,何为有组织,就是创建的任务都有迹可循现在该思考下一个问题?2. 继续任务调度下一个问题是什么呢?就是现在有N个任务在你面前,现在我们假设他们的任务优先级都是相同的,如何实现让他们轮流执行?也就是有N个有效任务,每次进入中断选出一个任务去执行,最终实现每个任务都可以的到运行,并且运行的时间或机会是相同的。在这个图片中...原创 2021-10-27 00:46:39 · 183 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(五)
以嵌入式工程师的角度来实现一个简单的操作系统!1. 前言上一节我们已经实现了非常简单的操作系统任务创建、任务调度、任务切换等。你看出来了吗?我们在简单的回顾一下这些功能是怎么对应的?任务创建:/*创建一个任务*/task_init(&taska,taska_stack+sizeof(taska_stack),taska_fun);任务调度与任务切换/*在定时器中断中,进行任务切换*现在的调度策略:一共2个任务,轮流执行,每次在定...原创 2021-10-26 00:47:51 · 211 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(四)
一、前言上一节我们实现了2个在任务中主动调用,实现任务切换的函数接口,其具有一下几个功能: 从一个循环的任务切换到另一个循环的任务 切换回来之后,从切换之前被打断的位置继续执行 这是函数调用做不到的,函数调用只能从函数开始位置执行 但是一个操作系统,大部分的调用场景会发生在定时器中断处理中,在中断环境下,我们还需要定义并实现中断环境的任务切换。中断环境除了要保存任务的状态以外,中断本身也需要保存一些现场状态,因为中断对正常执行的程序来说,可能会发生在任意一个指令之间..原创 2021-10-21 00:08:09 · 163 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(三)
实现2个以上的任务互相切换 目标与计划:使用最简单的操作,最低的效率,最笨的方法,实现一个操作系统 计划支持任务切换、任务调度、内存管理、任务间同步机制、任务间通信机制 修改实现方式、提升性能与效率一、任务切换的程序 今天继续学习任务切换的coding,在这之前,我阅读了rtthread的代码中qemu-arm-v9平台以及aarch64平台的部分任务切换相关的程序,并且使用单步调试跟踪了代码,有了一些基本的理解和掌握。现在就根据自己的理解,在现在的软件代码平台进行相关的实现。原创 2021-10-18 00:11:09 · 297 阅读 · 0 评论 -
芯片与寄存器
芯片与寄存器作为一个嵌入式开发人员,从接触第一块单片机的时候,就一定会听到一个此,叫做寄存器。单片机的很多功能都是通过配置修改寄存器来实现的。我们了解寄存器,也读写过很多的寄存器一、操作过得寄存器先回顾一下我们以前操作过得寄存器:这是一段51单片机初始化定时器的代码void TIME_Init(){ TMOD = 0x11; TL0 = 0; TH0 = 0; TL1...原创 2021-10-14 01:11:25 · 2938 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(二)
使用最简单的操作,最低的效率,最笨的方法,去做出一个像是操作系统一样的东西然后在一步一步去改善性能,完善功能我是一名嵌入式软件开发者,从很早之前上学开始就已经了解过一些rtos的操作系统,但是因为种种原因没能深入学习下去,现在重新出发,通过已经积累的知识,参考已有的RTOS等等系统,从一个小白的思考一步步做下去本节主题:嵌入式操作系统的任务与任务切换一、前言在上一篇文章中,零零散散介绍了操作系统为什么要以任务来划分,操作系统与裸机运行的区别以及带来的优势。现在重新再回回顾一下。...原创 2021-10-12 22:56:22 · 156 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(一)
操作系统中的任务与任务切换1. 为什么要有任务?我们常常见到操作系统,也常常要学习操作系统,从一个小白的角度看,任何事情都有其对立的东西,或者说事务都是一步步发展的,既然有操作系统这个东西,那么也必然有无操作系统的软件。如果大家都有学习把玩过单片机,比如51单片机或者是STM32单片机,那么应该是都有无操作系统时代这样的经历。无操作系统时代,可以看作是有一个任务的操作系统。无操作系统时,软件的流程是怎么样子的?无操作系统,裸机环境/**无操作系统:...原创 2021-10-10 21:32:57 · 319 阅读 · 0 评论 -
嵌入式工程师实现一个简单的操作系统(引言)
一、嵌入式工程师学习操作系统的准备之路 本人是从事嵌入式软件方面,日常的软件工作都会和具体的处理器,电路板相结合。所以在思考以及去做一个操作系统的时候,除了学习操作系统本身的算法或者逻辑之外,还需要耗费很大的精力去做一些硬件的准备工作。毕竟我也更喜欢实践,希望自己的逻辑可以跑起来,看看实际的效果。1、准备一个合适的开发板硬件的准备工作需要耗费很多的资源,首先你要购买开发板,还要购买下载器。开发板还有考虑使用什么性能的,是CONTEX-M3 这种单片机,还是CONTEX-A7等一些待遇MMU、CAC原创 2021-09-30 17:41:12 · 222 阅读 · 0 评论