对外部响应能力:

实时(规定时间内)操作系统 , 有强(飞机系统)弱(信息采集系统)之分

与分时(顺序时间片)操作系统

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简介&规范&任务创建的更多相关文章

  1. 01-Git简介和仓库创建

    Git简介 Linus的第二个伟大作品.2005年由于BitKeeper软件公司对Linux社区停止了免费使用权.Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了. 目前使用Git ...

  2. 7.Git分支-分支简介、分支创建、分支切换

    1.分支简介 几乎所有的版本控制系统都支持某种形式的分支.使用分支意味着可以把你的工作从开发主线上分离开来,以免影响开发主线.Git的分支是其必杀技,它相对于其它版本控制系统来说,具有难以置信的轻量性 ...

  3. 第1天:Django框架简介与工程创建

    Django简介 Django特点 环境搭建 创建工程 启动服务 使用pycharm打开工程 创建子应用 Django简介 Django,是用Python语言写的开源web开发框架,并遵循MVC设计. ...

  4. 001-Django简介与项目创建

    简介 django,是用python语言写的开源web开发框架,并遵循MVC设计 主要目的是简便.快速的开发数据库驱动的网站 强调代码复用,有很多第三方插件,强调快速开发和DRY(DoNotRepea ...

  5. Java并发—简介与线程创建

    程序.进程和线程 程序:一段静态的代码,一组指令的有序集合,不运行的话只是一堆代码. 程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程.也就是说进程是 ...

  6. Python数据分析与展示[第三周](pandas简介与数据创建)

    第三周的课程pandas 分析数据 http://pandas.pydata.org import pandas as pd 常与numpy matplotlib 一块定义 d=pd.Series(r ...

  7. Objective-C编码规范

    参考 http://www.csdn.net/article/2015-06-01/2824818-objective-c-style-guide/1 介绍 我们制定Objective-C编码规范的原 ...

  8. Objective-C编码规范:26个方面解决iOS开发问题

    介绍 我们制定Objective-C编码规范的原因是我们能够在我们的书,教程和初学者工具包的代码保持优雅和一致.即使我们有很多不同的作者来完成不同的书籍. 这里编码规范有可能与你看到的其他Object ...

  9. Postman用法简介

    转自:http://blog.csdn.net/flowerspring/article/details/52774399 Postman用法简介 转载 2016年10月10日 09:04:10 10 ...

  10. 从零开始编写自己的C#框架(9)——数据库设计与创建

    对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常.... ...

随机推荐

  1. 深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介、DeepLabV3深入解读创新点、训练策略、主要贡献

    深度学习应用篇-计算机视觉-语义分割综述[6]:DeepLab系列简介.DeepLabV3深入解读创新点.训练策略.主要贡献 0.DeepLabV3深入解读 1.DeepLab系列简介 1.1.Dee ...

  2. 【6】VScode 无法在终端输入问题,提示:无法在只读编辑器中编辑

    相关文章: [1]VScode中文界面方法-------超简单教程 [2]VScode搭建python和tensorflow环境 [3]VSCode 主题设置推荐,自定义配色方案,修改注释高亮颜色 [ ...

  3. centos7.9离线安装MongoDB4.4.17

    前言 MongoDB 5.0开始要求CPU支持avx指令集,参考https://mp.weixin.qq.com/s/6FFXih1DEZYDFOk1hCu69w 环境 CentOS 7.9.2009 ...

  4. spring声明式事务(@Transactional)开发常犯的几个错误及解决办法

    spring声明式事务(@Transactional)开发常犯的几个错误及解决办法 目前JAVA的微服务项目基本都是SSM结构(即:springCloud +springMVC+Mybatis),而其 ...

  5. electron nodejs idea 的 Terminal 默认是操作系统的 cmd.exe,他默认是GBK

    问题1:idea 的 Terminal 默认是操作系统的 cmd.exe,他默认是GBK,尽量不要通过手段更改了,没意义.若要在控制台输出中文,最简单的方法是运行:chcp 65001 &&a ...

  6. PCG——程序化地形生成(1)

    前言 接触了半年多Houdini,佛系研究了一下PCG(Procedural Content Generation)相关的技术,这真是个好东西,赶在年前写个总结.Houdini 一款DCC软件,功能又 ...

  7. NVME学习笔记六—Controller Architecture

    Controller架构   NVMe over Fabrics使用与NVMe基础规格说明书中定义相同的controller架构.这包括主机和controller之间使用SQ提交队列和CQ完成队列来执 ...

  8. SAS (Statistics Analysis System) 统计分析系统软件

    SAS SAS (Statistical Analysis System) 是一个统计软件系统,由 SAS Institute 开发, 用于数据管理, 高级分析, 多元分析, 商业智能, 刑事调查和预 ...

  9. 建立DNS隧道绕过校园网认证

    建立DNS隧道绕过校园网认证 因为之前在本科的时候破解过校园网三次,主要就是利用其业务逻辑上的漏洞.53端口未过滤包.重放攻击的手段,然后就是一个博弈的过程,这三次加起来用了大概有一年的时间就被完全堵 ...

  10. java常用包下载地址(非maven)

    httpclient与httpcore: http://hc.apache.org/downloads.cgi jdbc: https://dev.mysql.com/downloads/connec ...