嵌入式:UCOS移植+简单创建任务

news2024/10/7 2:24:46

目录

一、UCOS操作系统

二、UCOS移植 

1、文件介绍

2、UCOS || 源码分析 

3、打开Software文件 

三、UCOS任务创建 


一、UCOS操作系统

µC/OS Micrium 公司出品的实时操作系统, µC/OS 目前有两个版本: µC/OS-II µC/OS-IIIµC/OS 是一种基于优先级抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。 µC /OS 是一个完整的、可移植、可固化、可裁剪的抢占式实时多任务内核µC/OS 绝大部分的代码是用 ANSII C 语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。

注意:在移植之前,得先有一个建立不带STemwin GUI的工程

二、UCOS移植 

1、文件介绍

2、UCOS || 源码分析 

3、打开Software文件 

µC-CPU:这是和 CPU 紧密相关的文件,我们不需要使用。

µC-LIBMicrium 公司提供的官方库文件,如字符串操作、内存操作等函数接口,可用可不用。

µCOS-II:这是源码的关键目录文件,我们接下来要详细分析的文件,跟移植、使用密切相关的。

µC-SerialµC/OS-II 接口文件文件。

这个是os配置文件,我们也要移植,复制;

先复制到我们移植的文件一起

复制整个文件到我们的工程

 

打开工程,添加路径

 

添加ucos源文件进入工程

 

添加cpu源文件进入工程

 

编译工程:第一个错误修改

 

没用到的,注释掉就可以了

 

第二个错误:

 

没用都,注释掉

第三个错误:

 

注释掉:

 

第四个错误:

 

 

钩子控制调用函数:这些函数没有定义使用

 

修改钩子宏定义的值为0

 第五个错误

 

注释掉即可

 

修改为我们的系统滴答初始化函数

复制

 

修改后

 

修改中断服务函数

 

 

注意:在汇编驱动文件内,是使用;分号进行注释代码的

 

初始化UCOS

初始化ucos要使用systick

 

 

 

调用ucos初始化函数

三、UCOS任务创建 

验证工程是否成功--打开任务创建源文件,找到任务创建函数,如下:

编写创建任务函数的第一个参数:也就是我们要执行的任务 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux GPIO 开发指南

文章目录Linux GPIO 开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员2 模块介绍2.1 模块功能介绍2.2 相关术语介绍2.3 总体框架2.4 state/pinmux/pinconfig2.5 源码结构介绍3 模块配置3.1 kernel menuconfig 配置3.2 device tree 源码结构和路径3.2.1 device tree 对 gpio…

Python计算 -- 内附蓝桥题:相乘

计算 ~~不定时更新🎃,上次更新:2023/02/23 🗡常用函数(方法) 1. 求一个整数的最末位 举个栗子🌰 n int(input()) end n % 10蓝桥例题1 - 相乘✖️ 题目描述 本题为填空题,…

MySQL 11:MySQL锁

锁是一种机制,计算机通过这种机制协调多个进程或线程对资源的并发访问(以避免争用)。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争夺外,数据也是一种被众多用户共享的资源。如何保证并…

叠氮炔点击化学634926-63-9,Propargyl-PEG1-NHBoc,氨基叔丁酯PEG1丙炔基相关性质分享

●外观以及性质:Propargyl-PEG1-NHBoc产物呈固体或粘性液体,取决于PEG分子量,包含1个丙炔基和一个氨基叔丁酯,炔丙基可通过铜催化的叠氮炔点击化学与含叠氮化合物或生物分子反应,以产生稳定的三唑键,带有 P…

Windows下载安装Redis的详细步骤

目录 一、概述 1.redis的版本维护介绍 2.msi安装包和压缩包的优点和缺点 二、操作步骤 三、测试是否安装成功(查看版本) 四、获取资源 一、概述 1.redis的版本维护介绍 Redis的官网只提供Linux系统的下载。但是微软的技术团队长期开发和维护着这…

Tina_Linux_启动优化_开发指南

文章目录Tina_Linux_启动优化_开发指南1 概述2 启动速度优化简介2.1 启动流程2.2 测量方法2.2.1 printk time2.2.2 initcall_debug2.2.3 bootgraph.2.2.4 bootchart2.2.5 gpio 示波器.2.2.6 grabserial.2.3 优化方法2.3.1 boot0启动优化2.3.1.1 非安全启动.2.3.1.2 安全启动2.3…

jmeter接口自动化测试框架

接口测试可以分为两部分: 一是线上接口(生产环境)自动化测试,需要自动定时执行,每5分钟自动执行一次,相当于每5分钟就检查一遍线上的接口是否正常,有异常能够及时发现,不至于影响用…

易点易动助力企业固定资产信息化管理

对于生产制造或者互联网企业而言,固定资产比重较高,是企业资产的大头,一些办公设备、生产设备数量和金额都比较大。提升企业固定资产管理水平,是企业实现信息化建设的必要条件。 目前,国内的很多企业在固定资产管理中…

零售航母沃尔玛公布业绩:喜忧参半

2月21日美股盘前,零售巨无霸沃尔玛公布了截至1月的2023财年第四季度业绩报告。财报中不乏可圈可点之处,但是利润迎来六年首降,新财年的利润指引要也比预期低很多,可以说喜忧参半。 一、Q4业绩可圈可点 营收方面:在本…

漏斗分析法

一什么是漏斗分析? 漏斗分析是数据领域最常见的一种“程式化”数据分析方法,它能够科学地评估一种业务过程,从起点到终点,各个阶段的转化情况。通过可以量化的数据分析,帮助业务找到有问题的业务环节,并进…

插画网课平台排名

插画网课平台哪个好,插画网课排名靠前的有哪些,今天给大家梳理了国内5家专业的插画网课平台,各有优势和特色,给学插画的小伙伴提供选择,报插画网课一定要选择靠谱的,否则人钱两空泪两行! 一&am…

使用 xshell 远程连接(使用 xftp 远程传输)

xshell 和 xftp的使用都基于ssh协议,我们需要先在远程服务端或者虚拟机上安装ssh服务,然后才能远程连接。 目录 1、什么是ssh协议? 2、安装 openssh (1) 安装 openssh 服务器 (2) 关闭服务器防火墙(或者开放端口22&#xff09…

四个步骤在CRM系统中设置游戏化机制

长期高强度的单一工作会让销售人员逐渐失去对工作的兴趣,导致销售状态缺少动力和激情,工作开展愈加困难。不少企业通过CRM销售管理系统设置游戏化竞赛,调动销售人员的工作积极性。那么,如何在CRM系统中设置游戏化机制?…

深入浅出 MySQL 索引(一)

MySQL 索引(基础篇) 你好,我是悟空。 本文目录如下: 一、前言 最近在梳理 MySQL 核心知识,刚好梳理到了 MySQL 索引相关的知识,我的文章风格很多都是原理 实战的方式带你去了解知识点,所以…

Spring+MVC+MYbatis注解开发

Spring常见注解 注解一:Configuration 用在类上面,加上这个注解的类可以成为一个spring的xml配置文件,使用的是java代码的配置 注解二:ComponentScan 用在类上,加上注解可以指定扫描路径 注解三:创建对…

Uni-app使用vant和uview组件

目录 1.安装vant组件 1.1安装前需知 1.2.安装 1.3.创建uni-app项目 2.安装uview-ui组件 2.1官网 2.2安装 2.3安装成功 1.安装vant组件 1.1安装前需知 小程序能使用vant-weapp组件,且官网的安装是直接导入小程序中,不能直接导入uni-app框架中 V…

Python的标准模块介绍:sys、os、random和time

Python内置了许多标准模块,例如sys、os、random和time模块等,下面为大家介绍几个常用的标准模块。 1.sys模块 sys模块中提供了一系列与Python解释器交互的函数和变量,用于操控Python的运行时环境。sys模块中常用变量与函数如表1所示。 表1…

Apifox = Postman + Swagger + Mock + JMeter

目录 可视化API设计 高效 & 零学习成本 可复用的“数据模型” 遵循 OpenAPI(Swagger) 规范 可导入 Swagger 等 20 数据格式 具体使用尝鲜 多项目管理 支持多环境切换 支持IDEA、浏览器、桌面应用 Idea插件 公共API hub库 如题:一款非常好用的API管理测…

二叉树——最大二叉树

最大二叉树 链接 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…

浅谈面向过程和面向对象的区别

面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。 伴随着每个开发人员的职业生涯,或多或少都会接触到这两种软件设计思想。不仅是软件开发人员,其实这两种思想在我们平时的生活中也处处可见&a…