(学习日记)2024.03.01:UCOSIII第三节

写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。


标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。


点击此处进入学习日记的总目录

2024.03.01

  • 七、UCOSIII:文件结构与解释

七、UCOSIII:文件结构与解释

由于后面会用到各种宏与函数,为了给它们分类,我提前把UCOSIII系统各文件的功能整理出来,后面遇到各种文件就知道什么功能了。
在这里插入图片描述

父文件目录子文件目录孙文件目录文件名功能
UseruCOS-IIISourceos.h包含主要的μC/ OS-III头文件,该文件声明常量,宏,μC/ OS-III全局变量(仅供μC/ OS-III使用),函数原型等。
--Sourceos_type.h包含μC/ OS-III数据类型的声明,端口设计人员可以更改这些声明以更好地利用CPU体系结构。
与OS相关的数据类型则在os_type.h定义。
在这种情况下,通常会将文件复制到端口目录,然后进行修改。
--Sourceos_var.c包含μC/ OS-III全局变量。 这些变量供μC/ OS-III管理,不应由应用程序代码访问。
--Sourceos_task.c包含用于使用OSTaskCreate(),OSTaskDel(),OSTaskChangePrio()等管理任务的代码。
与任务的操作密切相关,包括任务的建立、删除、挂起、恢复等等。
--Sourceos_time.cuC/OS-II中最小时钟单位是timetick(时钟节拍),其中包含时间延迟、时钟设置及时钟恢复等与时钟相关的函数。
--Sourceos_cfg_app.c根据os_cfg_app.h中的值声明变量和数组。
--Sourceos_core.c操作系统的处理核心。包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里
--Sourceos_dbg.c包含由内核感知的调试器或μC/ Probe使用的常量变量的声明。
--Sourceos_flag.c包含事件标志管理的代码。
--Sourceos_int.c包含用于中断处理程序任务的代码,当OS_CFG_ISR_POST_DEFERRED_EN(请参见os_cfg.h)设置为1时使用。
--Sourceos_mem.c包含μC/ OS-III固定大小内存管理器的代码。
--Sourceos_msg.c包含处理消息的代码。μC/OS-III提供消息队列和任务特定的消息队列。
--Sourceos_mutex.c包含用于管理互斥信号量的代码。
--Sourceos_pend_multi.c包含允许代码插入多个信号量或消息队列的代码。
--Sourceos_prio.c包含用于管理位图表的代码,用于跟踪准备就绪的任务。如果使用的CPU提供了位设置,清除和测试指令以及计数前导零指令,则可以用等效于汇编语言的该文件代替该汇编语言以提高性能。
--Sourceos_q.c管理信号量。
--Sourceos_sem.c包含用于管理用于资源管理和/或同步的信号量的代码。
--Sourceos_stat.c包含用于统计任务的代码,该代码用于计算全局CPU使用率和每个任务的CPU使用率。
--Sourceos_tick.c包含用于管理已延迟自身的任务或因超时而在内核对象上暂挂的任务的代码。
--Sourceos_tmr.c包含用于管理软件计时器的代码。
UseruCOS-IIIPortsos_cpu.h进行数据类型定义,处理器相关代码和几个函数原型。
--Portsos_cpu_c.c定义一些用户 hook 函数。
--Portsos_cpu_a.asm移植需要用汇编代码完成的函数,主要就是任务切换函数。
--Portsos_dbg.c内核调试相关数据和函数,可以不改
UseruC-CPUcpu.h凡是与CPU类型相关的数据类型则统一在cpu.h中定义,包含用于使μC/OS-III和其他模块独立于CPU和编译器字长的类型定义。
具体来说,将找到CPU_INT16U,CPU_INT32U,CPU_FP32和许多其他数据类型的声明。
该文件还指定CPU是大端机还是小端机,定义μC/ OS-III使用的CPU_STK数据类型,定义宏CPU_CRITICAL_ENTER()和CPU_CRITICAL_EXIT(),并包含特定于CPU体系结构的函数的函数原型等。
-uC-CPUcpu_core.c包含所有CPU体系结构通用的C代码。 具体来说,该文件包含用于测量CPU_CRITICAL_ENTER()和CPU_CRITICAL_EXIT()宏的中断禁用时间的函数,一个在CPU不提供指令的情况下模拟计数前导零指令的函数以及一些其他函数。
-uC-CPUcpu_core.h包含cpu_core.c中提供的功能的功能原型以及模块用来测量中断禁用时间的变量的分配。
-uC-CPUcpu_def.h包含μC/ CPU模块使用的其他#define常数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/502341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

请查收:2024年腾讯云服务器优惠价格表_租用配置报价

一张表看懂腾讯云服务器租用优惠价格表,一目了然,腾讯云服务器分为轻量应用服务器和云服务器CVM,CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16G、8核32G、16核32G、16核64等配置可选,公网带宽1M、3M、5M、12M、18M、22M、28M…

Doccano的标注结果转换为BIO格式

简介 实现了Doccano导出格式到BIO命名实体识别格式的转换 演示 Doccano的导出格式: {"id":161,"text":"“十四五”时期是我省全面建成小康社会之后,乘势而上开启全面建设社会主义现代化国家新征程的第一个五年,也是谱写新时代…

智慧旅游+数字化景区整体解决方案:文件全文83页,附下载

关键词:智慧景区建设,智慧旅游一体化平台,数字化景区建设,智慧旅游建设,智慧景区解决方案,智慧文旅解决方案,智慧旅游解决方案 一、景区智慧旅游建设需求与背景分析 1、技术发展背景 随着信息…

【面试题解析】每日一套面经(Java),抓住金三银四。

1、SpringCloud基本组件 Spring Cloud Alibaba 是 Spring Cloud 的一个子项目,它将阿里巴巴开源的微服务组件与 Spring Cloud 生态系统进行了整合。Spring Cloud Alibaba 提供了一系列适用于微服务架构的阿里巴巴组件,主要包括以下几个基本组件&#xf…

SVPWM

SVPWM SVPWMSVPWM原理产品比较特点来源 SVPWM SVPWM的主要思想是以三相对称正弦波电压供电时三相对称电动机定子理想磁链圆为参考标准,以三相逆变器不同开关模式作适当的切换,从而形成PWM波,以所形成的实际磁链矢量来追踪其准确磁链圆。传统…

CAPL组装IPv4分片包的三种思路(2)

2、使用CAPL的函数自动生成一条完整的ICMPv4 Echo Request报文,然后把数据手动放入两个分片报文中 首先生成一条完整的icmp报文: ethernetPacket ppkt1;//icmpv4 echo requestbyte data[1] = {10};//icmpv4 echo request datappkt1.icmpv4.echo…

179基于matlab的2D-VMD处理图像

基于matlab的2D-VMD处理图像,将图片进行VMD分解,得到K个子模态图,将每个模态图进行重构,得到近似的原图。可以利用这点进行图像去噪。程序已调通,可直接运行。 179 2D-VMD 图像分解重构 图像处理 (xiaohongshu.com)

WPF中如何设置自定义控件

1.圆角按钮的设置: 众所周知在WPF中自带有提示信息,当我问创建Button时,点击空格出现如下可选设置 带有小扳手🔧图标为相应的属性,如果Button有CornerRadius(角半径)属性就能够直接设置Button实…

android开发计算器源码,在阿里工作5年了

1、应用层开发,不限于各种产品,主要还是Android或iOS原生开发,主要是各种性能优化。 2、嵌入式开发,不限于各种开发板子,物联网,智能家居 3、安全开发,不限于各种反逆向,反汇编&am…

【Mysql】Navicat数据库勿删了mysql.infoschema@localhost,导致打不开数据库,如何修改

运行报错如下: 1449 . The user specified as a definer (mysql.infoschemaocalhost) does not exist该方法不需要重启mysql,或者重装;仅需要恢复删除的mysql.infoschemalocalhost用户 一、登录建立用户 mysql -uroot -pxxxxxx密码二、建立…

【小尘送书-第十一期】编程的基石,开发的核心:《算法秘籍》

大家好,我是小尘,欢迎你的关注!大家可以一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的工作! 👨‍💻博主主页:小尘要自信 &#x1…

【学习记录】Resnet

Resnet的残差块 BasicBlock模块: Resnet的作用 解决梯度消失。网络越深,会导致梯度消失。Resnet可以解决梯度消失的问题。 Resnet的原理 参考视频:https://www.bilibili.com/video/BV1cM4y117ob/?spm_id_from333.337.search-card.all.cl…