Zephyr学习专题
1 前言
本来想学习Zyphyr的Power Management,但是看着看着就被带进去了。
你看功耗,里面的suspend涉及到时间补偿相关的吧,然后就涉及到了Kernel Clocks/Timers/Thread Sleeping。
然后你得知道内核运行情况,想去获取消息,就得熟悉内核的Logging,包括System Logging和Kernel Event Logger。
如果想看到内核实时状态,就还需一个管道取一窥究竟,这就离不开Shell。
如果觉得这已经够了,那就错了。Zephry Doc已经将Zephyr的方方面面文档归纳总结了。
所以觉得花点时间梳理一下官方文档,了解其知识地图,有利于快速学习、快速查找。
2 Zephyr官方文档地图
2.1 Zephyr Kernel入门
在Zephyr Kernel Primer关于Kernel的概述介绍了Zephyr内核的:
Source Tree Structure:目录结构
Threads:线程的生命周期、线程调度、线程私有数据、系统线程(idle/main)、工作队列。
Timing:内核时钟和定时器。
Memory Allocation:内存分配器、内存池和对内存池。
Synchronization:内核同步相关的Semaphore、Mutex和Alert。
Data Passing:介绍了不同线程间或者线程和中断间传递参数的方式fifo、lifo、stack、消息队列、管道、mailbox。
Other Services:介绍了内核其他服务中断、原子操作、轮询API、Ring Buffer、浮点数、C++支持、CPU Idling(强制进入idle)、Memory Domain(内存共享)。
2.2 Zephyr设备驱动
Device and Driver Support设备驱动是内核的很大一块,所以单独介绍。
Device Drivers and Device Model介绍了驱动通用设备模型以及编写设备驱动API、范例等等。设备驱动的配置数据Device Tree介绍了如何定义一个设备各种属性。
2.3 子系统
Zephyr将一些重要的功能单独成为Subsystem子系统,包括:
Bluetooth蓝牙、一个裁剪最小化的Standard C Library、日志Logging(System Logging和Kernel Event Logger)、Zephyr的网络支持Networking、低功耗管理Power Management、传感器Sensor Drivers、Shell、测试Tesing相关的测试框架Test Framework和可用性测试Sanity Test、USB。
2.4 Zephyr开发指导
如何移植Zephyr(架构和主板)Porting Guides,对Zephyr的配置选项Configuration Options Reference Guide逐个详细介绍,还需要熟悉内核应用开发的API Documentation。
在做了以上了解之后,就可以进行Application Development Primer了,当然对一些基本功能也提供了Samples and Demos。
3 学习记录
2 Zephyr官方文档地图基本上覆盖了Zephry的帮助文档,然后就可以根据需要展开了。
Zephyr学习专题的更多相关文章
- 【转】css学习专题-BFC
css学习专题-BFC 转自:原文链接:css学习专题-BFC文章目录 BFC:Block Formatting Context. BFC就是一种布局方式,在这种布局方式下,盒子们自所在的 conta ...
- Zephyr学习(三)启动过程
一.写在前面 最近对zephyr这个系统很感兴趣,因此业余有时间的时候都在研究它的源码,而光看代码不去动手这不是我的风格,于是乎在网上淘了一块STM32F103C8T6的核心板和一块NRF52832的 ...
- Zephyr学习(二)开发环境搭建
一.概述 Zephyr支持在Windows.Linux和MacOS环境下开发,这里只介绍如何在Windows下搭建zephyr的开发环境. 二.步骤 2.1安装msys2 msys2是一个Linux模 ...
- opengl基础学习专题 (一 )编程环境搭建
题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下 ...
- SpringBoot 企业级核心技术学习专题
专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Boot 核心技术章节源码 Spring Boot 核心技术 ...
- opengl基础学习专题 (三) 多边形绘制的几种样式
题外话 聪明人之所以不会成功,是由于他们缺乏坚韧的毅力. ——艾萨克·牛顿(1643年1月4日—1727年3月31日)英国 也许可以理解为 想更深一步的时候,坚持,努力和聪明缺一不可. 挺直腰杆在此向 ...
- opengl基础学习专题 (二) 点直线和多边形
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...
- Maven学习专题--Maven入门及安装
因为项目需要,新项目需要使用Maven开发,但是组内大部分没有接触过maven.我就毅然承担搭建maven环境的任务了.因为一切重头开始,就想把自己的整个搭建环境.项目创建.框架整合和模块管理整个过程 ...
- Zephyr学习(五)线程和调度
前面说过zephyr支持静态和动态两种方式创建线程,这里分析动态创建的方式.应用程序通过调用k_thread_create()函数创建一个线程,实际上是调用_impl_k_thread_create( ...
随机推荐
- JS校验身份证号的合法性
前端表单中有身份证号的校验,下边是用JS来校验身份证号的合法性. 中国居民身份证号码编码规则 第一.二位表示省(自治区.直辖市.特别行政区). 第三.四位表示市(地级市.自治州.盟及国家直辖市所属市辖 ...
- 2017-12-05 JavaScript实现ZLOGO子集: 前进+转向
在前文中文编程语言之Z语言初尝试: ZLOGO 4与相关讨论后, 萌生了用JavaScript编写类似语言以便在线编程的想法. 于是使用 @TKT2016 (知乎账号)的ZLOGO语法设计, 在编程语 ...
- js 键盘码
键盘各按键对应的数字 keycode 9 = Tab keycode 12 = Clear keycode 13 = Enter keycode 16 = Shift keycode 17 = Con ...
- Android--很实用的图片工具类
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; imp ...
- 【Java入门提高篇】Day34 Java容器类详解(十五)WeakHashMap详解
源码详解系列均基于JDK8进行解析 说明 在Java容器详解系列文章的最后,介绍一个相对特殊的成员:WeakHashMap,从名字可以看出它是一个 Map.它的使用上跟HashMap并没有什么区别,所 ...
- Python之岭回归
实现:# -*- coding: UTF-8 -*- import numpy as npfrom sklearn.linear_model import Ridge __author__ = 'zh ...
- web service && WCF 学习小结
Web Service和WCF技术都提供了应用程序与应用程序之间的通信.它们都是基于soap消息在客户端和服务端之间进行通信,由于soap消息是一种xml格式,因此传输的数据格式为XML.每次客户端向 ...
- C#检测U盘是否插入
public partial class Form1 : Form { #region u盘属性 public const int WM_DEVICECHANGE = 0x219;//U盘插入后,OS ...
- 动态、静态编译以及MD、MDd、MT、MTd编译
本文转自:https://blog.csdn.net/u012273127/article/details/71419499 一.问题的引出 最近在VS2012中新建了一个MFC的工程,在自己电脑上运 ...
- dell t130服务器安装windowsserver2008R2系统
dell T130服务器系统是可以安装windowsserver2008R2系统. 总共8个USB端口: 后置USB:2个USB 3.0和4个USB 2.0 前置USB:1个USB 2.0和1个USB ...