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( ...
随机推荐
- RSA key format is not supported
对接支付宝时,提示RSA错误 : 请仔细检查 : 创建支付对象时,关键字参数的名字 如果公私钥是以拼接路径的方式传递给AliPay,正确的关键字参数的名字应该如下 :
- hosts 文件
各系统平台hosts文件存放路径 路径如下: Windows系统: C:\Windows\System32\drivers\etc\hosts Linux系统:/etc/hosts ...
- 读懂SAP Leonardo物联网平台
读懂SAP Leonardo物联网平台 https://blog.csdn.net/weixin_42137700/article/details/81903290 本文比较系统.全面地介绍了SAP ...
- MSCRM中报表开发二:创建基于FetchXML报表
1. 获取FetchXML.因为FetchXML难以撰写,所以我们一般都是使用高级查找来生成FetchXML或者通过其他工具来生成.我这里在商机界面通过高级查找制作了一个新的视图,名称为 商机查询, ...
- 一文学redis操作(记录向)
相关内容: 虽然有参考文档,而且记忆太多也是耗脑,但学习的时候还是想要有个系统划分开知识点的文档,即使不要求去细致记忆,但划分开知识块后脑子里的印象才会更清晰,所以就有了这个博文. 主要是将各种命令进 ...
- LazyMan深入解析和实现
一.题目介绍 以下是我copy自网上的面试题原文: 实现一个LazyMan,可以按照以下方式调用: LazyMan("Hank")输出: Hi! This is Hank! ...
- [20180423]flashback tablespace与snapshot standby.txt
[20180423]flashback tablespace与snapshot standby.txt --//缺省建立表空间是打开flashback on,如果某个表空间flashback off, ...
- [20171213]john破解oracle口令.txt
[20171213]john破解oracle口令.txt --//跟别人讨论的oracle破解问题,我曾经提过不要使用6位字符以下的密码,其实不管那种系统低于6位口令非常容易破解.--//而且orac ...
- 如何猜出 Y combinator
先约定几个记号: 定义用一个冒号加等号表示":=", 表达式全等用两个等号表示"==", 归约意义上的相等用一个等号表示"="," ...
- 什么是ORM?为啥要是用ORM?
了解orm,先了解以下概念: 什么是“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的数据存储在关系型的数据库中 ...