1 - RTOS简介&规范&任务创建
对外部响应能力:
实时(规定时间内)操作系统 , 有强(飞机系统)弱(信息采集系统)之分
与分时(顺序时间片)操作系统
FreeRTO实时操作系统
支持抢占式调度,合作式调度和时间片调度;内核大小在4-9K ;C语言编写
操作系统调度各个再死循环中的任务(管理任务),可以随时进入退出?
引入操作系统后,在编程时不需要精心设计程序执行流,任务间不存在干扰,编程反而变得简单了。
911规范(数据类型&变量名)


px = 指针+BaseTypet_
文件是.C文件
表示私有函数


动态——静态创建任务
结构体,链表
TCB_t _表示结构体
对于每个任务在内存总都有相应的TCB结构体包含栈顶,两个链表(雾),优先级,栈的起始 ,任务控制块tskTCB( TCB_t )
handle 就是控制块的指针, 想用这个结构体又不想了解其结构,就用handle
动态创建:
TaskHandle_t xHandleTask1;

(函数指针,名字,栈深度(大小=深度*x ),实参,优先级(越小越低),指向 TCB_t【通过这个handle来引用/删除这个任务】)
关于深度*x的x : 深度单位是字类型定义的int类型 ;【32位的x=4,1位=8字节】 ????

创建新任务会创建站的大小(100),每个任务的栈都不一样
静态创建(TCB结构体&栈 事先分配好)



使用这个函数得配置这个,因为资源有限,添加开关决定是否启动

在
中定义
报错


OK
关于优先级,先执行优先级高的任务,若是循环的话则会一直执行下去
删除任务
通过创建任务传入的handle来删除任务,也可以自杀(传入null)
这个handle哪里来的呢? 动态创建的时候传入,静态创建的返回值

(void *)4 就是地址为4, 两者配合就能打印出4和5 (∵函数里面的强制类型转换)


创建出两个不同的任务,各自的数据都保存在各自不同的栈中

关键:需要考虑数据量大小,不让栈溢出
1 - RTOS简介&规范&任务创建的更多相关文章
- 01-Git简介和仓库创建
Git简介 Linus的第二个伟大作品.2005年由于BitKeeper软件公司对Linux社区停止了免费使用权.Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了. 目前使用Git ...
- 7.Git分支-分支简介、分支创建、分支切换
1.分支简介 几乎所有的版本控制系统都支持某种形式的分支.使用分支意味着可以把你的工作从开发主线上分离开来,以免影响开发主线.Git的分支是其必杀技,它相对于其它版本控制系统来说,具有难以置信的轻量性 ...
- 第1天:Django框架简介与工程创建
Django简介 Django特点 环境搭建 创建工程 启动服务 使用pycharm打开工程 创建子应用 Django简介 Django,是用Python语言写的开源web开发框架,并遵循MVC设计. ...
- 001-Django简介与项目创建
简介 django,是用python语言写的开源web开发框架,并遵循MVC设计 主要目的是简便.快速的开发数据库驱动的网站 强调代码复用,有很多第三方插件,强调快速开发和DRY(DoNotRepea ...
- Java并发—简介与线程创建
程序.进程和线程 程序:一段静态的代码,一组指令的有序集合,不运行的话只是一堆代码. 程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程.也就是说进程是 ...
- Python数据分析与展示[第三周](pandas简介与数据创建)
第三周的课程pandas 分析数据 http://pandas.pydata.org import pandas as pd 常与numpy matplotlib 一块定义 d=pd.Series(r ...
- Objective-C编码规范
参考 http://www.csdn.net/article/2015-06-01/2824818-objective-c-style-guide/1 介绍 我们制定Objective-C编码规范的原 ...
- Objective-C编码规范:26个方面解决iOS开发问题
介绍 我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致.即使我们有很多不同的作者来完成不同的书籍. 这里编码规范有可能与你看到的其他Object ...
- Postman用法简介
转自:http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 转载 2016年10月10日 09:04:10 10 ...
- 从零开始编写自己的C#框架(9)——数据库设计与创建
对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...
随机推荐
- GPT大语言模型引爆强化学习与语言生成模型的热潮、带你了解RLHF。
GPT大语言模型引爆强化学习与语言生成模型的热潮.带你了解RLHF. 随着 ChatGPT 的爆火,强化学习(Reinforcement Learning)和语言生成模型(Language Model ...
- 2.4 CE修改器:代码替换功能
代码替换功能,需要使用 Cheat Engine 工具的"代码查找"功能,来查找游戏数据存储在内存中的地址.首先找到当前数值的存储地址,并将其添加到下方地址列表中.然后右键单击该地 ...
- Intel酷睿Ultra隆重登场:28W能效逆天!AI性能领先竞品5.4倍
作为Intel 1971年首款微处理器4004诞生以来变革幅度最大的产品,代号Meteor Lake的第一代酷睿Ultra今天终于正式发布了!相关笔记本.迷你机产品也会陆续发布上市. 有关于酷睿Ult ...
- 201871010111-刘佳华 实验二 个人项目—《D[01]背包问题》项目报告
实验二 软件工程个人项目 ========== 时间:2021-3-18 项目 内容 课程班级博客链接 课程链接 这个作业要求链接 作业要求 我的课程学习目标 1.了解软件工程过程中个人项目的开发流程 ...
- 除了mysql 和 sql server, 你还有另外一种选择 postgreSQL
数据库的重要性,不用多说.数据库的名字,大家应该也知道很多.就国内来说,使用者最多的应该是mysql 和sql server,大企业用ORACLE的也不在少数. 就我个人而言,在使用.NET的时候,基 ...
- 小知识:Exadata平台去掉密码输错延迟10分钟登录
生产环境不评价,若是测试环境实在受不了偶尔一次因为密码输错就要等待10分钟才能登陆的限制. 那测试环境下,如何关闭这个限制呢?很简单: # vi /etc/pam.d/sshd --找到并注释掉下面这 ...
- Oracle查询存在外键约束但未创建对应索引的情况
1.Oracle提供的脚本 2.网络搜索到的脚本 3.改为可以指定用户的脚本 4.测试脚本使用 1.Oracle提供的脚本 如果要求管控严格,可以考虑使用Oracle官方提供的脚本. Script t ...
- DBGrideh使用小结【EditorMode】当用户点击单元格的时候,自动进入编辑状态
(1)控制一个单元格是否允许编辑(或者说文字选中),可以设置Grid的Options的dgEditing属性:如果该属性为False,那么用户只能选中该单元格而无法选中里面的内容,也无法进行编辑.(2 ...
- LVM(逻辑卷管理器)
目录 一.LVM概述 二.基本术语 三.PE.PV.VG.LV之间的关系 四.LVM的工作原理 五.LVM的使用 1.部署逻辑卷 第一步: 还原快照,并在虚拟机添加两块新硬盘设备,开机 第二步: 让新 ...
- C++自定义sort比较函数的四种方法
sort函数:对于容器等进行排序,头文件位于<algorithm>中. 普通:可以在sort的第三个参数传入 无参:default = less<>() less<> ...