FreeRTOS学习笔记4:时间管理】的更多相关文章

1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID,称为进程 ID(PID) 对进程进行管理必须以进程 ID 作为对象,而非进程名称 每个进程都可能以前台或后台两种方式存在,bg 表示后台执行,fg 表示前台执行 在命令后加 & 使进程在后台执行 2.显示进程 可以使用 ps 命令(Process Status)显示当前运行的进程,显示的内容如下:…
前言 之前辞职找工作的时候发现,很多公司希望招聘蓝牙技术方面的人才,所以干脆丢开LWIP静下心来学习蓝牙技术.原本以为一两星期能基本学会的,谁知道所选的蓝牙芯片nrf51822是个坑货,坑了我一个月. 如果你跟我一样是一个蓝牙新手,并且还没有买nrf51822的开发板的话,推荐先学cc2541,如果已经买了开发板,那就看我的<蓝牙芯片NRF51822入门学习>系列文章吧,祝你尽早出坑. 本文面对的是:已经掌握nrf51822基本外设,并且阅读了TI官方视频,对蓝牙有了初步了解,但对怎么进一步学…
原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert Love,陈莉君等译. 1.进程 进程是正在执行的程序代码的实时结果,包含打开的文件.挂起的信号等.线程是进程中的活动的对象,内核调度的对象是线程.在Linux内核对线程与进程并不加以区分,线程只不过是一种特殊的进程. 2.进程描述符 内核把进程的信息存放在task list的双向循环链表中,链表中的…
void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. kmalloc()的底层依赖于__get_free_pages()来实现,分配标志的前缀GFP正好是这个底层函数的缩写. GFP_ATOMIC:在中断处理函数.底半部.tasklet.定时器处理函数以及URB完成函数中,在调用者持有自旋锁或读写锁时以及当驱动将current->state修改为非TASK…
1.用户与组账号 用户账号:包括实际人员和逻辑性对象(例如应用程序执行特定工作的账号) 每一个用户账号包含一个唯一的用户 ID 和组 ID 标准用户是系统安装过程中自动创建的用户账号,其中除 root 是管理者外,其余的都是系统账号 组账号:组是逻辑性单元,用来集合特定的用户,以便于其中的所有成员对文件具有相同的访问权限 标准组是系统自动添加的,其中除 root 组用来组织管理者外,其余的供程序执行时使用 2.账号信息 (1)用户账号信息 有关用户账号的信息都记录在 /etc/passwd 文件…
Qt学习笔记4-Widget布局管理       以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class…
XV6学习笔记(2) :内存管理 在学习笔记1中,完成了对于pc启动和加载的过程.目前已经可以开始在c语言代码中运行了,而当前已经开启了分页模式,不过是两个4mb的大的内存页,而没有开启小的内存页.接下来就可以从main.c的init函数开始 这里会和JOS做一个对比 首先看一下在执行main.c之前的物理内存分布 0x0000-0x7c00 引导程序的栈 0x7c00-0x7d00 引导程序的代码(512字节) 0x10000-0x11000 内核ELF文件头(4096字节) 0xA0000-…
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 1.运动速率    上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200)来进行时间延迟.看了很多参考材料,基本每个材料都会谈到不同配置机器下运动速率的问题,有的是通过设定频率解决,有的是通过设定速度解决,自己本身水平有限,看了几篇,觉得还是<Beginning Game Development with Python and Pygame>这里面提到一个方法比较好.…
操作系统的核心功能就是管理计算机硬件,而CPU就是计算机中最核心的硬件.而通过学习笔记3的简史回顾,操作系统通过多进程图像实现对CPU的管理.所以多进程图像是操作系统的核心图像. 参考资料: 课程:哈工大操作系统(本部分对应 L8 && L9) 实验:操作系统原理与实践_Linux - 蓝桥云课 (lanqiao.cn) 笔记:操作系统学习导引 · 语雀 (yuque.com) 1. 从使用CPU开始直观理解CPU管理 要想管理CPU,就要知道如何使用CPU. CPU的工作原理已经很熟悉:…
绝对时间:abs Time相对时间:百分比% time IDLE是空闲任务. RUN_Time_State:port...()初始化一个外设提供时基单元 //具体初始化要自己操作这个定时器的分辨率高于freeRTOS系统时钟,10-20倍 1s=1000ms=1000000us 1khz系统时钟 ~需要10k或者20khz 另外两个宏(有一个就可以)去实现统计时间,获取时基单元的时间值. 延时函数vTaskDelay() //相对.也需要配置宏 周期性任务可以用绝对模式步骤:1 判定传参>02…
1.前言 在嵌入式操作系统中队列是任务间数据交换的常用手段,队列是生产者消费者模型的重要组成部分.FreeRTOS的队列简单易用,下面结合一个具体例子说明FreeRTOS中的队列如何使用. 2.参考代码 参考代码中存在两个任务,任务A和任务B.任务A扮演生产者的角色,任务A不断地向队列中填充内容,填充的内容为一个int16_t类型的变量,填充完之后该变量累加:任务B扮演消费者的角色,任务B不断的从队列中提取内容,并通过串口打印. /* Standard includes. */ #include…
2012-02-25 21:43:40 为提升自己对实时操作系统(RTOS)的认识,我学习了freeRTOS. 理解了OS任务的状态.优先级的概念.信号量的概念.互斥的概念.队列.内存管理.这都是和RTOS相关的.在不带操作系统的代码中是找不到这些信息的.做了如下截图.作为提示性小结. 信号量截图 任务调度截图 任务状态截图…
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 EM:Execution Management AP:AUTOSAR Adaptive Platform FC:Functional Cluster AA:Adaptive Application ARA:AUTOSAR Runtime for Adaptive Applications SM:State Management…
RTOS 系统的核心就是任务管理,FreeRTOS 也不例外,而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能,初步上手RTOS 系统首先必须掌握的也是任务的创建.删除.挂起和恢复等操作,由此可见任务管理的重要性.由于任务相关的知识很多,所以接下来我们将用几章的内容来讲解FreeRTOS 的任务.本章先学习一下FreeRTOS的任务基础知识,本章是后面学习的基础,所以一定要掌握本章关于FreeRTOS 任务管理的基础知识,本章分为如下几部分: 5.1 什么是…
[启动和停止MongoDB]『从命令行启动』执行mongod,启动MongoDB服务器.mongod有很多可配置的启动选项:在命令行运行mongod --help可以查看所有选项.一些主要选项如下: · --dbpath 指定数据目录:默认值是/data/db/(Windows下是C:\data\db\).每个mongod进程都需要独立的数据目录,所以要是有3个mongod实例,必须要有3个独立的数据目录.当mongod启动时,会在数据目录中创建mongod.lock文件,这个文件用于防止其他m…
csdn的markdown编辑器真有够烂的,这篇文章又给弄丢了 启用认证 mongod 启动默认没有开启权限,你须要指定 –auth 启动.或者在配置文件里设置security.authorization 为 "enabled" 创建用户 db.createUser(user, writeConcern) 文档 http://docs.mongodb.org/manual/reference/method/db.createUser/#db.createUser user格式 { us…
 Cookie和HttpSession 什么是会话: 用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据,以便为客户提供更多的服务. 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便于用户点结帐servlet时,结帐servlet可以得到用户购买的商品为用户结帐. 思考:用户购买的商品保…
本节内容 1)文件系统结构元素 2)创建和查看文件 3)复制.转移和删除文件 4)软和硬链接 5)三种I/O设备 6)把I/O重定向至文件 7)使用管道 文件系统和结构 文件系统 文件和目录被组织成一个单根倒置树的结构 文件系统从根目录开始,用"/"表示 根文件系统(rootfs):root filesystem 文件名称区分大小写 以.开头的文件为隐藏文件 路径分隔/ 文件有两类数据: 元数据:metadata 数据:data 文件系统分层结构:LSB(Linux Standard…
FreeRTOSConfig.h 中的常量configMAX_PRIORITIES的值就是任务优先级的最大数值,这个数值可以按照自己的需要改动,当然值越大,内核对内存的开销就越大,一般设置一个满足自己需求的最小值就可以了: FreeRTOSConfig.h中另一个重要的常量就是configTICK_RATE_HZ,这个常量就是心跳(ticks): 时间片长度的大小就是通过configTICK_RATE_HZ来决定的: 实际上这个常量是一个时钟中断,对应的时钟中断函数是内核用来决定下一个时间片该运…
一.查看磁盘或目录的容量 1.  df命令 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 参数: -I : 查看inodes使用状况 -h: 使用合适的单位显示,例如 ‘G’ -k: 以K 为单位显示 -m: 以 M 为单位显示 注意:/dev/shm为内存挂载点,如果你想把文件放到内存里,就可以放到/dev/shm/目录下 2.  du命令 作用:用来查看某个目录或文件所占空间大小. 格式:du [-abckmsh] [文件或者目录名] 常用的参…
Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的事情,所以我们要进行数据管理,实现持久化存储 在容器中管理数据主要有两种方式: 数据卷(Data volumes) 数据卷容器(Data volume containers) 一.如果使用的是-v参数的方法指定挂载的数据卷 其实本质都是在运行docker run命令时,使用-v参数将主机的某个目录作…
存储管理 为了适应不同平台不同场景的存储需求,Docker提供了各种基于不同文件系统实现的存储驱动来管理实际的镜像文件 元数据管理 镜像在设计上将元数据和文件存储完全隔离.Docker管理元数据采用的也正是从上至下repository.image.layer是3个层次. 所以repository与image两个元数据并无物理上的镜像文件与之对应,layer则存在物理上的镜像文件与之对应. 仓库元数据文件中存储了所有版本镜像的名字和tag以及对应的镜像ID(image/aufs) 镜像元数据文件中…
nginx可以通过向其发送信号来进行管理.默认情况下主进程的进程ID写到文件/usr/local/nginx/logs/nginx.pid中.当然也可以在配置文件中自定义该pid文件,自定义使用pid指令来进行修改.主进程支持如下信号: TERM, INT fast shutdown QUIT graceful shutdown HUP changing configuration, keeping up with a changed time zone (only for FreeBSD an…
内存管理 1.基本知识 2.关闭ARC机制 3.@property 4.循环引用 5.自动释放池 6.内存管理总结 一.基本知识 内存的分类 栈:局部变量 堆:动态申请的对象,变量等 全局(静态):static 变量,const变量,全局变量等 引用计数器  每个OC对象都有自己的引用计数器,是一个整数,表示“对象被引用的次数”,即有多少人正在使用这个OC对象 每个OC对象内部专门有4个字节的存储空间来存储引用计数器  作用 当使用alloc.new或者copy创建一个新对象时,新对象的引用计数…
通过上两篇博客.我们对Cocos引用计数和Ref类.PoolManager类以及AutoreleasePool类已有所了解,那么接下来就通过举栗子来进一步看看Coco2d-x内存执行原理是如何的. //先建一个node Node * node = Node::create(); //创建完之后打印node的引用计数 schedule([node](float f){ //获得node的引用计数 int count = node->getReferenceCount(); //打印node的引用计…
MySQL技术内幕一.MySQL基础知识1.1.显示表中的列SHOW COLUMNS FROM order_info like 'order%'1.2.显示表SHOW TABLES LIKE 'order%';1.3.限制返回行数例如从第10行开始返回5个记录SELECT last_name FROM student ORDER BY birth DESC LIMIT 10,5;1.4.时间相关SELECT CURDATE() AS 当前日期, YEAR(NOW()) AS 年, QUARTER…
第5章 内存管理 1.野指针 定义指针变量的同时最好初始化为NULL,用完指针后也将变量的值设置为NULL.也就是说除了使用时,别的时间都把它设置为NULL 2.堆,栈和静态区 堆:由malloc系列函数或new操作符分配的内存.其生命周期由free或delete决定 栈:保存局部变量 静态区:保存自动全局变量和static变量.整个程序的生命周期都存在,由编译器在编译的时候分配 3.常见的内存错误 结构体成员指针未被初始化 没有为结构体指针分配足够的内存 一般在函数入口使用 assert(NU…
任务特性每个任务有自己的环境,不依赖于其他任务与调度器任何时间点只有一个任务运行.由调度器决定上下文环境:(寄存器值.堆栈内容等)调度器保证的就是任务开始执行时的上下文环境与上一次退出时相同所以每个任务都必须要有堆栈.再次执行时取出上下文环境.任务堆栈的作用:A->B B运行完切回A,从刚被中断的地方继续运行.则需要将A的状态保存在堆栈中 支持抢占以及优先级.每个任务都有堆栈导致RAM使用量增大使用抢占必须仔细考虑重入问题(仪表不考虑抢占) 任务状态运行态,永远只有一个运行就绪态, 初始进入阻塞…
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 CM:Communication Management SOME/IP:Scalable service-Oriented MiddlewarE over IP DDS:Data Distribution Service IPC:Inter-Process Communication PDU:Protocol Data Unit…
    可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化.     笼统的讲,就是在工作目录下编辑,在索引中积累修改,然后把索引中累计的修改作为一次性的变更提交给版本库.     这就意味着,可以在最终提交前添加.删除.移动或者重复编辑文件,只有在提交后才会在版本库里实现累计的变更.     本章将介绍如何管理索引和文件. 一.关于索引的一切: Git的索引不包含任何文件内容,它仅仅追踪你想要提交的那些内容.这一点…