第4章第1节 Mindows的文件组织结构

【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统 本文详细讲解了小米9手机刷Windows10系统的操作步骤,并附上了需要的所有资源包。 阅读详情

源码请在https://github.com/ifreecoding/MbedRtos.git下载

第1节 Mindows的文件组织结构

在第3章,我们依据任务切换的原理编写了Wanlix操作系统,Wanlix很简单,只实现了任务切换功能,从本章开始,我们将编写Mindows操作系统,Mindows将会实现更多的功能,相对Wanlix来说要复杂一些,文件也更多一些,因此,Mindows在文件组织结构上做了一下调整,我们先来看一下Mindows的文件组织结构。

Mindows的目录结构仍与Wanlix类似,有mindows、srccode、others、project、outfile这几个目录,mindows目录下存放的是Mindows操作系统的文件,其余目录与Wanlix一致。

Mindows操作系统的文件分为2类,一类是核心文件,操作系统需要依靠此类文件才可运行,例如mds_core_c.c文件,包含了操作系统的调度功能。另一类是非核心文件,操作系统脱离此类文件也可以运行,此类文件主要是提供操作系统的功能给用户使用。

核心文件包括:

mds_core_a.asm:操作系统的汇编文件,使用汇编语言编写的代码存放在此文件。

mds_core_c.c:使用C语言编写的操作系统核心调度代码存放在此文件。

mds_task.c:与任务相关的代码存放在此文件。

mds_sem.c:与信号量相关的代码存放在此文件。

mds_chip.c:与芯片强相关的代码存放在此文件,如果移植到不同芯片,需要修改较大的C函数代码存放在此文件完成。

mds_userboot.c:用户接口文件。

非核心文件包括:

mds_queue.c:与队列相关的代码存放在此文件。

mds_debug.c:与调试功能相关的代码存放在此文件。

以及以后可能会增加的文件。

操作系统的每个c文件有2个h头文件,比如说mds_core_c.c文件,它有mds_core_c_inner.h头文件和mds_core_c.h头文件。带“inner”的头文件是操作系统内部头文件,其中仅包含可在操作系统内部使用的信息,不提供给用户文件使用。不带“inner”的头文件是操作系统外部头文件,其中包含了可供操作系统和用户使用的信息,提供给用户文件使用。

除此之外,Mindows还提供了mds_mdsdef.h和mds_userdef.h头文件,mds_mdsdef.h里面包含了操作系统共用的一些信息,mds_userdef.h里面的信息则是需要用户修改的,由用户根据项目的需要自己修改。

与Wanlix相似,Mindows也提供一个对用户的接口头文件mindows.h,mindows.h是操作系统的总头文件,它包含了所有核心c文件的外部头文件以及mds_mdsdef.h和mds_userdef.h头文件,用户需要包含mindows.h才可使用Mindows操作系统的功能。另外,Mindows还提供了一个对内的总头文件mindows_inner.h,它包含了所有核心C文件的内部头文件和mindows.h文件,并且它也被所有的操作系统c文件(mds_userboot.c除外)所包含。

看了上面的说明会比较乱,我们来看看下面这个Mindows文件调用关系:

图 28  Mindows文件调用关系

这么设计的初衷是为了将操作系统对内与对外使用的信息分开,将核心文件与非核心文件分开。将操作系统外部的信息都封装到mindows.h文件中,需要使用外部信息的文件只需要包含mindows.h文件即可。将操作系统内部和外部的信息都封装到mindows_inner.h文件中,操作系统文件只要包含mindows_inner.h文件即可。将核心文件都包含到mindows.h和mindows_inner.h文件中,需要使用核心文件时只需要包含mindows.h或mindows_inner.h文件即可,需要使用非核心文件时则需要单独包含非核心文件的头文件,这是因为,核心文件就那么几个,封装到mindows.h和mindows_inner.h文件中方便使用,而非核心文件则会随着操作系统功能的增加不断的扩充,而其中的信息可能也是与其它功能模块不相关的,因此,灵活的包含非核心模块则会更适合些。

本章的Mindows仍在Aduc7024芯片上使用Keil开发环境开发,使用GNU工具链,采用O2编译选项。

嵌入式操作系统内核4.8:计数信号量功能详解与应用手册 计数信号量是一种多值信号量,它不仅能够控制对共享资源的访问,还可以记录资源的数量。这种信号量比传统的二值信号量更加强大,因为它允许多个线程或进程根据资源的可用数量同步对资源的访问。在计算机科学中,计数信号量通常通过一个计数器和一个队列来实现。计数器记录可用资源的数量,而队列用于存放等待资源的进程。当一个进程请求资源时,计数器的值减一;当进程释放资源时,计数器的值加一。如果计数器的值小于零,则进程将被阻塞,直到计数器的值再次变为非负数。 阅读详情

相关推荐

底层工作者手册之嵌入式操作系统内核(Mindows4.2)

新鲜出炉,提供源码!wanlix和mindows嵌入式操作系统 好不好,看过文档再说,我觉得,里面的很多东西是你在别的书上看不到的,包括一些ARM和CORTEX芯片的知识。 从现在开始,本网站将陆续发布Wanlix和Mindows操作系统内核。 Wanlix是一个内核非常小的嵌入式操作系统,只有几百个字节,但功能少,只提供任务切换功能,非常适合资源特别少但又需要任务切换的小项目。 Mindows可提供多种操作系统功能,是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。 我将Wanlix和Mindows的开发过程记录下来,就形成了这本“底层工作者手册之嵌入式操作系统内核”一书,本手册不仅仅是从应用的角度介绍操作系统如何使用,更重要的是从原理的角度对操作系统的功能做了分析、设计,从无到有循序渐进一点点的增加操作系统的功能,并且每增加一个功能便配以一个例子加以演示,让读者能立刻看到代码运行的结果。 本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也一定可以随心所欲的修改、扩展你需要的操作系统功能! 请登陆www.ifreecoding.com获取更多资料

刷机|我的第一个Windows平板,(2)安装Windows11系统

现在开始刷机工作,安装Windows11系统

m0_59728074的博客 9013

底层工作者手册之嵌入式操作系统内核3(wanlix全套合集)

新鲜出炉,提供源码!wanlix和mindows嵌入式操作系统 好不好,看过文档再说,我觉得,里面的很多东西是你在别的书上看不到的,包括一些ARM和CORTEX芯片的知识。 从现在开始,本网站将陆续发布Wanlix和Mindows操作系统内核。 Wanlix是一个内核非常小的嵌入式操作系统,只有几百个字节,但功能少,只提供任务切换功能,非常适合资源特别少但又需要任务切换的小项目。 Mindows可提供多种操作系统功能,是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。 我将Wanlix和Mindows的开发过程记录下来,就形成了这本“底层工作者手册之嵌入式操作系统内核”一书,本手册不仅仅是从应用的角度介绍操作系统如何使用,更重要的是从原理的角度对操作系统的功能做了分析、设计,从无到有循序渐进一点点的增加操作系统的功能,并且每增加一个功能便配以一个例子加以演示,让读者能立刻看到代码运行的结果。 本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也一定可以随心所欲的修改、扩展你需要的操作系统功能! 请登陆www.ifreecoding.com获取更多资料

小米平板5刷Windows系统

装Windows前需要解锁,这个需要保证下面第一步中,绑定账号和设备超过7天才能解锁。下载解锁工具包:https://www.miui.com/unlock/download.html下载好后进行解压,然后打开里面的解锁前需要做好备份,解锁会清除掉平板所有数据。

qq_39921135的博客 2万+

底层工作者手册之嵌入式操作系统内核5.3

Mindows操作系统更新5.1~5.3节,将wanlix从ARM7内核移植到cortex内核,更多资料请登陆www.ifreecoding.com下载。 前面基础知识介绍完毕,本节开始真刀真枪的移植代码了。本节将Wanlix3.3节的代码从ARM7内核移植到TI和ST的cortex内核的芯片上,移植完成后通过串口打印可以看到移植的效果。 如果你有STM32的板子,现在就可以跑! /***************************************************************************/ Wanlix是一个内核非常小的嵌入式操作系统,只有几百个字节,但功能少,只提供任务切换功能,非常适合资源特别少但又需要任务切换的小项目。 Mindows可提供多种操作系统功能,是实时抢占式操作系统,任务支持多种优先级抢占调度,将实时性高的任务设置为高优先级就可以保证软件系统的实时性,用户也可根据自身需求选取需要的部分,也可在此基础上编写代码增加自己需要的功能,具有可裁剪性。 我将Wanlix和Mindows的开发过程记录下来,就形成了这本“底层工作者手册之嵌入式操作系统内核”一书,本手册不仅仅是从应用的角度介绍操作系统如何使用,更重要的是从原理的角度对操作系统的功能做了分析、设计,从无到有循序渐进一点点的增加操作系统的功能,并且每增加一个功能便配以一个例子加以演示,让读者能立刻看到代码运行的结果。 本手册记录了我从对操作系统内核不了解到写出操作系统内核的过程,这样的一个过程对你来说应该也是一个最好的学习过程。 如果你有一定的C语言基础,并且对硬件也有稍微的了解,那么我相信你一定会看明白本手册!也一定可以随心所欲的修改、扩展你需要的操作系统功能! 请登陆www.ifreecoding.com获取更多资料 /***************************************************************************/

从RTL到GDSII:DC综合里那些没人告诉你的时钟约束冷知识(附真实工程示例)

本文深入探讨数字IC设计中DC综合阶段的时钟约束冷知识,包括无毛刺时钟切换、寄存器分频时钟约束、虚拟时钟应用等关键技巧。通过真实工程示例,揭示常见约束误区及解决方案,帮助工程师提升时序收敛效率。特别针对input_delay和output_delay在多时钟域场景下的设置陷阱提供实用指南。

weixin_29306317的博客 429

第4章 Mindows操作系统

源码请在https://github.com/ifreecoding/MbedRtos.git下载 第4 章Mindows操作系统 在第3章中,我们实现了一个简单的操作系统——Wanlix,这个操作系统是一种非抢占式操作系统,任务之间的切换需要用户主动调用任务切换函数WLX_TaskSwitch来实现。从本章开始,我们将编写一个实时抢占的嵌入式操作系统——Mindows,它

ifreecoding的博客 598

HSPICE用户必看:用Sigrity Broadband SPICE解决复杂封装建模的3个技巧

本文为HSPICE用户分享了三个使用Sigrity Broadband SPICE解决复杂封装建模难题的实战技巧。通过将宽频带S参数高效转换为时域SPICE模型,能显著提升仿真速度、保障收敛性,并精准分析谐振、返回路径不连续及超多端口PDN等关键问题,助力实现高效稳定的系统级信号与电源完整性分析。

metal的博客 600

windows工具箱

window工具箱下载

A78562的博客 2031

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 999

Deeplabcut实战:从数据标注到行为分析的全流程解析

本文详细解析了Deeplabcut从数据标注到行为分析的全流程实战技巧,包括项目创建、配置文件定制、智能帧提取、高效标注方法、模型训练优化以及多视角融合等高级应用。通过具体案例和实用参数配置,帮助研究者快速掌握这一行为分析工具,提升实验效率和准确性。

weixin_29057163的博客 246

第2章第4节 Wanlix的文件组织结构

源码请在https://github.com/ifreecoding/MbedRtos.git下载 第4节Wanlix的文件组织结构 说起写软件,还是比较容易入门的,现在电脑这么普及,随便找本软件的书籍就可以在电脑上编程了,实现一些功能,但这仅仅是编写软件的最初级阶段,一部分人可能一辈子只会停留在这个阶段,全局变量满天飞,函数没有层次结构,文件关系混乱。能够发展下去,能够编出满足功

ifreecoding的博客 456

告别兼容性困扰:在F-Droid中安全部署Termux的完整指南

本文提供了一份在F-Droid中安全部署Termux的完整指南,旨在彻底解决Android设备上的兼容性困扰。文章详细阐述了为何选择F-Droid而非Google Play商店,并逐步指导用户完成从彻底清理旧版本、安装F-Droid客户端、授予权限到最终安装配置Termux的全过程。指南还涵盖了进阶的稳定性配置、数据迁移方法以及常见问题排查,确保用户获得一个稳定、无冲突的命令行工作环境。

weixin_29224309的博客 944

第2章第5节 Wanlix的开发环境

源码请在https://github.com/ifreecoding/MbedRtos.git下载 第5节Wanlix的开发环境 芯片使用的是ADI公司的Aduc7024,前面已经做过一些介绍。 软件开发环境使用的是KeilMDK4.20。Keil是德国软件公司Keil(现已被ARM公司收购)开发的嵌入式系统开发平台,Keil开发平台支持许多厂家的芯片,提供基本的最小软件系统,

ifreecoding的博客 434

Python调用Google Trends官方数据接口实战指南

Google Trends作为全球最权威的搜索热度分析工具,其数据本质是公开、结构化、可编程访问的时序指标,而非需爬取的网页内容。其底层基于标准HTTP协议与JSON API交互,核心原理在于复现用户浏览器行为——通过/explore接口获取token,再凭token请求/widgetdata/multiline等端点获取归一化(0-100)时间序列数据。该技术路径规避了Selenium渲染依赖与非官方库的脆弱性,具备高稳定性、易调试、可监控等工程优势,广泛应用于竞品监测、内容选题验证、地域营销策略制定等业

weixin_29789925的博客 419

C#上位机案例:西门子S7协议通信+实时曲线显示(WinForm+ZedGraph)

创建/// PLC数据模型(对应DB1块)/// 采集时间(用于曲线的X轴)set;/// 温度值(℃)set;/// 压力值(MPa)set;/// PLC通信状态set;西门子S7协议通信和实时曲线显示,也是工控现场最常见的场景之一。整个开发过程的关键不在于“写出代码”,而在于“写出符合工控场景的稳定代码”——比如解耦通信逻辑与界面逻辑、处理跨线程问题、限制数据点数量、释放资源等。新手在学习时,建议先跟着步骤搭建好环境,跑通基础功能,再逐步尝试进阶优化。需要注意的是,工控上位机的核心是。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1342

第1章 操作系统基础知识

源码请在https://github.com/ifreecoding/MbedRtos.git下载 第 1 章操作系统基础知识 有很多嵌入式系统设备的资源非常少,几十K的ROM,几K的RAM,这种小系统设备上的软件功能也非常简单,软件只要按照设定好的功能周而复始的运行就可以了。这种小系统设备不需要操作系统,也几乎没有合适的操作系统能运行在资源如此少的设备上。 当芯片资源越来越丰富,

ifreecoding的博客 523

2024年11月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(二)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午第二科案例分析的题目,同时附带参考解答、解析和所涉知识点。

一几文的编程学习笔记。 1660

手机刷windows

手机刷windows

2401_85603639的博客 705

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

前言

源码请在https://github.com/ifreecoding/MbedRtos.git下载 前言 目前我所见的绝大部分介绍操作系统的书籍只是从应用的角度告诉读者应该如何使用操作系统,而且相当一部分书籍只是把原有的用户手册整理了一下便出书了,这样的书籍只能当做一本使用手册去查,从学习的角度来说意义不大,一不介绍实现背景、原理,二不介绍应用例子,无法让读者深刻体会操作系统的用法。

ifreecoding的博客 593

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

安卓机刷机教程,小米pad5,澎湃OS系统

听说一加,真我,Sony,谷歌的bl锁都好解开我只解了小米pad5的澎湃系统仅提到小米的刷机教程首先系统位置查找要打开然后是oem,设备解锁账号绑定澎湃os系统限制绑定账号,强行绕过判断解锁,但是只适用于出厂非澎湃系统的安卓设备绑定完账号就是解锁bl了,如果是澎湃系统绑定的账号,还要等待168小时才能解锁小米解锁工具(官网):https://web.vip.miui.com/page/info/mio/mio/unlock。

qazxsw95的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

操作系统原理 书籍购买_嵌入式系统书籍推荐(第二期)

在看点这里了解嵌入式系统,就点上方蓝字关注我们本期推荐嵌入式操作系统入门的三本书。涉及嵌入式操作系统的内核调度、嵌入式网络以及ARM Cortex-M3。嵌入式操作系统内核调度《嵌入式操作系统内核调度:底层开发者手册》从程序员的角度设计、编写嵌入式操作系统,实现了内核调度功能。作者按照介绍原理、设计编码、举例验证的顺序逐一介绍各功能的编写方法,为读者理解和应用嵌入式操作系统提供了一种全新...

weixin_39559119的博客 287

win8下安装mac10.8.4懒人版双系统教程

花了一天时间,终于成功进入mac,总结下安装心得: mac版本: 已上传到360网盘 MACOSX Mountain Lion 10.8.4黑苹果 PC上安装苹果系统 MACOSX Mountain Lion 10.8.4黑苹果 PC上安装苹果系统 这是在PC上安装用的系统MACOSX Mountain Lion 10.8.4 ,苹果电脑用户请到这里下载苹果原版 http://

java人生 6239

windows系统python库安装

windows安装python库

m0_51180992的博客 887

mysql 热备 windows_Windows下MySQL的主从热备(自动同步)配置

本配置方法适用于5.1之后的版本,个人在5.5上配置成功(5.1之前版本请参考另外的配置说明)环境说明:Master:192.168.1.200Slave:192.168.1.210MySQL 的 Master 配置:配置my.ini:[mysqld]# The TCP/IP Port the MySQL Server will listen onport=3306server-id=200log...

weixin_39610594的博客 87
上一篇: 第4章 Mindows操作系统
下一篇: 第4章第2节 定时器触发的实时抢占…
ifreecoding
博客等级 码龄15年 148粉丝 33原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值