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( ...
随机推荐
- 【pygame游戏编程】第二篇-----移动图像
Learning From Here import pygame import sys pygame.init() screen_width = 640 screen_high = 480 scree ...
- 启动MySQL报错
安装完MySQL,启动MySQL报错,报错信息如下:Starting MySQL....The server quit without updating PID file (/data/mysqlda ...
- MySQL高可用方案--MHA部署及故障转移
架构设计及必要配置 主机环境 IP 主机名 担任角色 192.168.192.128 node_master MySQL-Master| ...
- WebAPI路由、参数绑定
一.测试Web API a)测试Web API可以用来检测请求和返回数据是否正常,可以使用Fiddler.Postman等工具.以Fiddler为例,这是一个http协议调试代理工具,它能够记录客 ...
- (其他)最常用的15大Eclipse开发快捷键技巧
转自CSDNJava我人生(陈磊兴) 原文出处 引言 做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多 ...
- React Refs
React Refs React 支持一种非常特殊的属性 Ref ,你可以用来绑定到 render() 输出的任何组件上. 这个特殊的属性允许你引用 render() 返回的相应的支撑实例( back ...
- centos7执行umount提示:device is busy或者target is busy解决方法
问题描述: 因为挂载错了,想取消挂载,但是umount报告如下错误: [root@zabbix /]# umount /dev/sdc1 umount: /data1: target is busy. ...
- Hive-1.2.1_06_累计报表查询
1. 数据准备 # 本地数据准备 [yun@mini01 hive]$ pwd /app/software/hive [yun@mini01 hive]$ ll /app/software/hive/ ...
- 接上篇:将OneDrive云盘挂载到我的电脑!(1024快乐,明年我应该也可以过这个节日了!)
今天对程序猿来说是个值得纪念的日子!祝程序员小哥哥小姐姐们今天可以早早下班,回家休息,Bug走开! 接上篇,将自己申请的5T云盘挂载到我的电脑! 第一步:挂网下载Raidrive 附上链接: http ...
- [bug]android monkey命令在Android N和Android O上的一点差异发现
最近再调试这个统计FPS的代码,发现代码在android N上可以正常运行,但在android O上却运行不了,拼了命的报错,给出的提示就是 ZeroDivisionError: division b ...