第三周作业、实时操作系统µC/OS介绍及其它内容

时间:2022-09-10 13:13:56

作业要求

《实时控制软件设计》第三周作业

1 阅读笔记——µC/OS

1.1 基本介绍

µC/OS是由Micrium公司研发的实时操作系统,以µC/OS-II或µC/OS-III为内核,附带有多种插件以实现不同的功能。这款操作系统主要面向于微处理器,如单片机、DSP等。它具有优秀的可移植性、功能可伸展性等特点,是抢占式的硬实时多任务操作系统。1

它是以源代码的形式分发,附有相当完善的资料。开发时可以按需调整内核的体积,占用代码空间为6-24KB,以及数据空间1KB,以适用多种硬件环境。可以支持无限任务、无限优先级。系统中断时进入临界区时间极短,能用于安全要求高的产品中。2另外,Micrium还提供了多种扩展配合使用,包括有TCP/IP网络协议支持、USB通信协议支持、文件系统、图形界面等等。

1.2 使用许可

µC/OS是商用软件,需要按需购买许可,详见How to Buy Micrium's RTOS

2 团队项目

2.1 擅长和感兴趣的内容

本人比较喜欢编写底层的内容,即用户接口任务和轨迹规范任务,有能理协调处理不同任务的通信协调等。物理引擎部分没学过,但是有兴趣试试。

3 实时编程作业——Simple Motion

详见Github仓库

每次更新将及时发表在README.md上,未完成的和打算做的任务将写在同一目录下的TODO.md文件下。由于开发时是在另一条分支上进行,当功能完善后才会推送到master分支上面来,所以Github上不会有开发过程中的信息。

最初的版本见历史提交。目前已经能基本实现轨迹规范的内容,采用了Xenomai提供的API实现任务间通信,降低代码间的耦合程度,与最初的代码有了较大差别。

下面的内容更新至2016-12-13

目录结构如下:

 .                                         # 根目录
│ CMakeLists.txt # CMake主文件,生成文件在./build文件夹
│ README.md # read me文件
│ TODO.md # to-do list

└─src # 源代码文件夹
│ CMakeLists.txt # 子文件夹的cmake文件
│ global_variables.cpp # 全局变量定义、初始化函数、析构函数等
│ main.cpp # 主程序入口,负责初始化任务

├─include # 工程内共享头文件
│ all_tasks.h # 任务头文件
│ global_variables.h # 全局变量声明头文件
│ motion_types.h # 特殊类型(估计后期会合并到global_variables.h)

└─tasks # 任务文件
command_sender.cpp # 发送指令
command_sender.h
debug.cpp # 调试信息输出
debug.h
trajectory_generator.cpp # 插值任务
trajectory_generator.h

参考文献

[1] µC/OS Real-Time Operating System, Micrium, (https://www.micrium.com/rtos/)

[2] Real-Time Kernel, Micrium, (https://www.micrium.com/rtos/kernels/)

[3] Xenomai API: Native Xenomai API, Xenomai, (http://www.xenomai.org/documentation/xenomai-2.6/html/api/group__native.html), 2016-07-07

第三周作业、实时操作系统µC/OS介绍及其它内容的更多相关文章

  1. 2017-2018-1 20179205《Linux内核原理与设计》第三周作业

    <Linux内核原理与分析>第三周作业 教材学习总结 第三章 进程管理 进程是Unix操作系统抽象概念中最基本的一种,是正在执行的程序代码的实时结果:线程,是在进程中活动的对象.而Linu ...

  2. 2018-2019-1 20189221《Linux内核原理与分析》第三周作业

    2018-2019-1 20189221<Linux内核原理与分析>第三周作业 实验二 完成一个简单的时间片轮转多道程序内核代码 实验过程 在实验楼中编译内核 编写mymain.c函数和m ...

  3. 第三周作业-课本&amp&semi;&amp&semi;视频学习

    <网络攻防技术与实践>第三周作业 Part I 寻找自己留在互联网上的足迹并消除隐私 1.1 google/baidu搜索自己的qq号 搜索结果如图,搜到的有用信息其实就是图上这么几条,能 ...

  4. 2019-2020-1 20199329《Linux内核原理与分析》第三周作业

    <Linux内核原理与分析>第三周作业 一.上周问题总结: 第二周头脑风暴完成较慢 虚拟机libc配置错误 书本知识使用不够熟练 二.本周学习内容: 1.实验楼环境虚拟一个x86的CPU硬 ...

  5. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  6. 2017-2018-2 1723《程序设计与数据结构》第三周作业 &amp&semi; 实验一 总结

    作业地址 第三周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1667 提交情况如图: 实验一:https://edu.c ...

  7. 第三周作业(一)VS安装及单元测试练习

    第三周作业(一) 需求:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂,没 ...

  8. 2017-2018-1 JaWorld 第三周作业

    2017-2018-1 JaWorld 第三周作业 团队展示 队员学号 队名 团队项目描述 队员风采 团队的特色 团队合照 团队初步合作 前两周的反思与总结 需要改进的地方 团队选题 *采访老师或有开 ...

  9. 2017-2018-1 JAVA实验站 第三周作业

    2017-2018-1 JAVA实验站 第三周作业 团队展示 队名 JAVA实验站 拟作的团队项目描述 (2048)增加其他模式,使得2048更加丰富多彩 团队的首次合照 团队的特色描述 团队内部很团 ...

随机推荐

  1. SQL Server 中VARCHAR(MAX)变量赋值引起的性能问题。

    案例环境: 操作系统版本 : Windows Server 2008 R2 Standard  SP1 数据库版本   :  Microsoft SQL Server 2012 (SP1) - 11. ...

  2. 根据数据库内容动态生成html页面

    之前使用了很多方法,但是都很复杂. 项目里包括了数据库的管理页面,对数据库进行修改(新增,插入,删除)等之后,在另一个页面使用. 使用时采用按下相应label弹出所有信息的方法,以html的形式将数据 ...

  3. nginx中的try&lowbar;files指令解释

    try_files 指令的官方介绍比较让人摸不着头脑,经网上一番总结查看,try_files最核心的功能是可以替代rewrite.   try_files   语法: try_files file . ...

  4. 解决win8与VC&plus;&plus;6&period;0不兼容问题

    找到VC++6.0安装文件夹Bin下的MSDEV.EXE程序 将MSDEV名字改为MSDEV1(或MSDEV2,3...) 右击改好的MSDEV1,打开属性面板,选择兼容性,勾上“在兼容模式下运行”, ...

  5. Foundation&colon; Binary Search

    /* Binary search. * * Implementation history: * 2013-10-5, Mars Fu, first version. */ /* [Binary Sea ...

  6. Filter简单介绍

    一.简单介绍 Filter也称为过滤器,WEB开发者通过Filter技术.对webserver管理的全部web资源:比如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截.从而实 ...

  7. Spring MVC中一般 普通类调用service

    在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法: 1.S ...

  8. Swift学习笔记(4):字符串

    目录: 初始化 常用方法或属性 字符串索引 初始化 创建一个空字符串作为初始值: var emptyString = "" // 空字符串字面量 var anotherEmptyS ...

  9. 用ES6巧妙的解决传统面试中的算法小问题!

    最近自己也在准备面试,在复习算法的时候,机智的用了一波ES6.一起来瞧瞧吧! 1.数组的去重 var arr=str.split(''); for(var i=0;i<arr.length-1; ...

  10. Flask 学习 十三 应用编程接口

    最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. REST的六个特性: 客户端-服务器(Client-Server)服务器 ...