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( ...
随机推荐
- windows使用笔记-google-chrome下载地址
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! google-chrome下载地址:https://www.google.cn/intl/zh-CN/chrome/
- Oracle绑定变量在C#.NET中的应用及意义
一. 什么是绑定变量 绑定变量(bind variable) : select * from emp where empno=:empno; 是用户放入查询中的占位符,它会告诉Oracle“我会随后为 ...
- 【CSS基础】实现 div 里的内容垂直水平居中
方案一: 所有内容垂直水平居中 兼容性:IE8+. 条件:内容宽度和高度可以未知,可以是多行文字.图片.div. 描述:使用table-cell + vertical-align , html代码见文 ...
- Spring Boot 静态页面
spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources /META-IN ...
- SQLServer数据集合的交、并、差集运算
SQLServer2005通过intersect,union,except和三个关键字对应交.并.差三种集合运算. 他们的对应关系可以参考下面图示 相关测试实例如下: use tempdb go if ...
- ES5数组的遍历方式
/* 遍历数组 */ var arr=[1,2,3,43,55,66,77,99]; /* 遍历数组 function(item,index) */ arr.forEach(function(item ...
- CSS Hack的一些知识
测试环境:Windows7 主要测试:IE6.IE7.IE8.Fire Fox3.5.6 次要测试:Chrome4.0.Opera10.10.Safari4.04.360浏览器3.1 为了能够让多个H ...
- jquery的自定义事件通过on绑定trigger触发
jquery绑定自定义事件,可以实现预先绑定好一个处理方法,当需要使用的时候利用jquery trigger来触发自定义事件,以达到方便快捷的目的.我们来假设一个这样的场景,一个textarea中的字 ...
- Android back键及backWebview模式跳转详解
首先,来看一下关于Android home键和back键区别 back键 Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Dest ...
- Expires和Cache-Control的理解
最近在学Nginx,学到有个地方式设置响应头信息,其中有两项是设置Expires和Cache-Control,来设置缓存时间,后来发现"并没有什么卵用",于是就搜了下资料,把整个思 ...