
物 - 操作系统
文章平均质量分 83
iotisan
物联网技术及心得体会分享
展开
-
zephyr学习笔记汇总
原本 contiki 在本能手心中是排名第一的物联网系统,直到 zephyr 的出现。2016年2月推出的这个开源项目,在 Linux 基金会的扶持下,短短时间内已经支持了几十款的嵌入式硬件,厂家支持力度大,社区活跃,展现了强大的活力。这在其他操作系统上是看不到的,本能手隐隐觉得它很有可能会成为物联网操作系统的事实标准。潮流很重要,有幸见证并且加入这个进程,应该会收获很多。这系列笔记是...原创 2018-03-27 19:45:46 · 12299 阅读 · 0 评论 -
zephyr笔记 2.5.2 LIFOs
1 前言lifo是实现传统的后进先出(LIFO)队列的内核对象,允许线程和ISR添加和删除任何大小的数据项。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任何数量的lifo,每个lifo都由其内存地址引用。lifo具有以下关键属性:已添加但尚未删除的数据项目队列。队列被实现...原创 2018-05-03 00:05:27 · 614 阅读 · 0 评论 -
zephyr笔记 2.5.3 栈
1 前言堆栈是实现传统的后进先出 (LIFO) 队列的内核对象,允许线程和ISR添加和移除有限数量的32位数据值。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任何数量的堆栈,每个堆栈都由其内存地址引用。堆栈具有以下关键属性:已添加但尚未删除的32位数据值的队列。队列使用3...原创 2018-05-03 00:06:30 · 819 阅读 · 0 评论 -
zephyr笔记 2.5.4 消息队列
1 前言消息队列是实现简单消息队列的内核对象,允许线程和ISR异步发送和接收固定大小的数据项。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任何数量的消息队列。 每个消息队列都由其内存地址引用。消息队列具有以下关键属性:已发送但尚未收到的数据项的环形缓冲区。数据项大小,以...原创 2018-05-03 00:09:31 · 1425 阅读 · 0 评论 -
zephyr笔记 2.2.1 内核时钟
1 前言我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念内核支持两个不同的时钟。32位硬件时钟是一个高精度计数器,可以跟踪若干个周期时间,但这个周期不能指定单位。一个周期的持续时间取决于内核使用的电路板硬件,通常以纳秒为单位进行测量。64位系统时钟是一个计数器,用于跟踪自内核初始化以来已经...原创 2018-04-28 22:56:05 · 1366 阅读 · 0 评论 -
zephyr笔记 2.2.2 定时器
1 前言计时器是一个内核对象,它使用内核的系统时钟来度量时间的流逝。 当达到定时器的指定时间限制时,它可以执行应用程序定义的操作,或者它可以简单地记录到期并等待应用程序读取其状态。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任意数量的定时器。每个定时器都由地址引用。计时器具有以...原创 2018-04-28 22:57:21 · 2048 阅读 · 0 评论 -
zephyr笔记 2.3.1 Memmory Slabs
1 前言memory slab 是一个内核对象,它允许从指定的内存区域动态分配内存块。 memory slab 中的所有内存块都有一个固定大小,可以高效地分配和释放它们,避免出现内存碎片问题。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任意数量的 memory slab。每个 me...原创 2018-04-28 22:58:33 · 791 阅读 · 0 评论 -
zephyr笔记 2.3.2 内存池
1 前言内存池是一个内核对象,它允许从指定的内存区域动态分配内存块。 内存池中的内存块可以具有任意大小,从而在应用程序需要为不同大小的数据结构分配存储空间时减少浪费的内存量。 内存池使用 “buddy memory allocation ”算法将较大的块有效地分割为较小的块,从而可以有效地分配和释放不同大小的块,同时限制内存碎片问题。我正在学习 Zephyr,一个很可能会用到很多物联网设备...原创 2018-04-28 22:59:36 · 745 阅读 · 0 评论 -
zephyr笔记 2.3.3 堆内存池
1 前言堆内存池是一个预定义的内存池对象,它允许线程以类似 malloc() 方式从公共内存区域动态分配内存。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念只能定义一个堆内存池。与其他内存池不同,堆内存池不能使用其内存地址直接引用。堆内存池的大小是可配置的。支持以下大小:256字节,10...原创 2018-04-28 23:01:28 · 649 阅读 · 0 评论 -
zephyr笔记 2.4.1 信号量
1 前言信号量是实现传统计数信号量的内核对象。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任意数量的信号量。 每个信号都由其内存地址来引用。信号量具有以下关键属性:指示信号可以被采用的次数的计数。 计数为零表示信号量不可用。指示信号量可以达到的最大值的限制。信号量...原创 2018-04-28 23:07:36 · 2350 阅读 · 0 评论 -
zephyr笔记 2.4.2 互斥锁
1 前言互斥锁是实现传统重入互斥体的内核对象。互斥锁允许多个线程通过确保对资源的互斥访问来安全地共享相关的硬件或软件资源。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任何数量的互斥锁。 每个互斥量都由其内存地址引用。互斥锁具有以下关键属性:锁定计数,指示互斥锁已被锁定的线...原创 2018-04-28 23:09:19 · 849 阅读 · 0 评论 -
zephyr笔记 2.5.1 FIFOs
1 前言fifo是实现传统先进先出(FIFO)队列的内核对象,允许线程和ISR添加和删除任何大小的数据项。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任何数量的fifos。 每个fifo由其内存地址引用。fifo具有以下关键属性:已添加但尚未删除的数据项目队列。队列为一个...原创 2018-05-03 00:04:20 · 1205 阅读 · 0 评论 -
zephyr笔记 5.3.1 Zephyr 版本 MCUboot 的编译和使用
1 前言这一节是翻译自 MCUboot 网站上 MCUboot with Zephyr 。MCUboot 最初是 Mynewt 的引导程序。此后,它也成为了 Zephyr 的引导程序。Zephyr 的应用程序在编译方式存在较大大的差异,这里将会记录这些不同之处。有关 bootloader 的设计和操作文档,请参阅设计文档。这个功能在所有支持的 RTOS 上都是一样的。我正在学习 Z...原创 2018-05-02 16:05:52 · 4595 阅读 · 0 评论 -
zephyr笔记 5.3 设备固件升级DFU
1 前言设备固件升级子系统提供必要的框架以在运行时升级基于Zephyr的应用程序的映像。 它目前由两个不同的模块组成:boot /:引导加载程序的接口代码 img_util /:镜像管理代码DFU子系统处理镜像管理,但不涉及将镜像发送到目标设备所需的传输或管理协议本身。有关这些协议和框架的信息,请参阅管理部分。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,...原创 2018-05-02 16:03:55 · 1730 阅读 · 0 评论 -
zephyr笔记 1.2 软件开发环境准备
Zephyr 是使用 Cmake 和 Ninja 进行编译,在这篇笔记里,学习如何搭建 Zephyr 开发所必须的软件开发环境。原创 2018-03-27 19:53:01 · 3042 阅读 · 1 评论 -
zephyr笔记 1.3 开发环境的拓展了解
本节对编译过程中的 Cmake 和 Ninja 做个拓展了解,这也是官方教程没体现的部分。Cmake 是做编译准备,生成 ninja 所需的相关文件。Ninja 接着出马,编译、调试、烧写等等统统搞定。原创 2018-03-27 20:44:14 · 3023 阅读 · 0 评论 -
zephyr笔记 1.5 hello world
1 前言在前一篇中学习了开发基础,接下来就开始玩些简单的程序。这篇先研究下 内核例程1 Hello World。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 例程效果cd %ZEPHYR_BASE%\samples\hello_worldmkdir build & cd bui...原创 2018-04-16 23:42:43 · 1146 阅读 · 0 评论 -
zephyr笔记 2.1.1 线程的生命周期
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。1 前言这节将会描述线程的创建,调度以及删除操作。http://docs.zephyrproject.org/kernel/threads/lifecycle.html2 概念概念不复制了。3 操作3.1 Spawning a T...原创 2018-04-16 23:44:03 · 2092 阅读 · 0 评论 -
zephyr笔记 2.1.2 线程的调度
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。1 前言Zephyr 使用基于优先级的调度器来让应用线程们共享CPU。http://docs.zephyrproject.org/kernel/threads/scheduling.html2 概念2.1 线程状态线程未就绪可能受如下影响...原创 2018-04-16 23:46:30 · 2141 阅读 · 0 评论 -
zephyr笔记 2.1 应用程序开发基础
1 前言本篇笔记先做些应用开发的基础准备工作,官网英文教程见此。官方把这个教程放偏后的位置,导致我之前自己去学习 Cmake 和 Ninja 的相关知识,多做了一些重复工作。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概览Zephyr 根目录包含源码,内核配置选项以及编译定义。 根目录下...原创 2018-04-12 12:04:07 · 2089 阅读 · 0 评论 -
zephyr笔记 1.4 在 NUCLEO_L073RZ 上运行 zephyr
1 前言我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。Zephyr目前已经支持很多硬件了,具体的可以到这里看: http://docs.zephyrproject.org/boards/boards.html#boards由于手头现成的有 NUCLEO_L073RZ,所以本节用它来做些动手尝试。N...原创 2018-04-12 18:58:39 · 1077 阅读 · 0 评论 -
zephyr笔记 2.1.3 线程的自定义数据
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。1 前言这节将会描述Zephyr线程的一个特殊功能,自定义数据。http://docs.zephyrproject.org/kernel/threads/custom_data.html2 概念每个线程都有一个32位的自定义数据区。 自定义数据只...原创 2018-04-18 22:08:55 · 838 阅读 · 1 评论 -
zephyr笔记 2.1.4 系统线程
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。1 前言系统线程是内核在系统初始化时自动产生的线程。http://docs.zephyrproject.org/kernel/threads/system_threads.html2 概念内核产生以下系统线程。2.1 主线程该线程执行...原创 2018-04-18 22:09:38 · 919 阅读 · 0 评论 -
zephyr笔记 2.1.5 工作队列线程
我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。1 前言工作队列是一个内核对象,它使用专用线程以先进先出的方式处理工作项目。 通过调用工作项目指定的功能来处理每个工作项目。 ISR或高优先级线程通常使用工作队列来将非紧急处理卸载到较低优先级的线程,因此不会影响对时间敏感的处理事务。http://docs....原创 2018-04-18 22:10:35 · 2503 阅读 · 1 评论 -
zephyr笔记 2.4.3 Alerts
1 前言alert是一个内核对象,允许应用程序在关注的条件发生时执行异步信号传输。我正在学习 Zephyr,一个很可能会用到很多物联网设备上的操作系统,如果你也感兴趣,可点此查看帖子zephyr学习笔记汇总。2 概念可以定义任意数量的 alert。 每个 alert 都由其内存地址引用。alert 具有以下关键属性:alert处理程序,用于指定在发出警报时要执行的操作...原创 2018-04-28 23:10:40 · 615 阅读 · 0 评论