自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 functions.c文件说明

说明drivers/usb/gadget/functions.c这个文件里面就7个函数,所以单独给拿出来说一下。从名字可以看出,这文件是个中间层的作用,连接configfs和实际的function驱动。还是挺有意思的,大家一起来看看。usb_function_register/unregister将usb_function_driver结构体加入到func_list全局链表当中,就是将list变量加入进去。除了这个啥也没有干,下面就是这个结构体的说明。struct usb_function_dri

2020-10-04 00:16:32 423

原创 f_fs重要结构体剖析(进行中)

前言上图是一个总的结构体之间关系依赖图,里面内容繁多,这也只是关键的一些结构拿出来说明。本文打算基于核心结构体进行讲解,然后针对每个核心结构体单独分解其诞生和消失的过程。ffs_data这是最核心的一个结构体,他的创建是从用户层传入的,并且是一开始系统初始化阶段就传入,基于我们的configfs文件系统完成。mount functionfs bulk /dev/usb-ffs/bulk xxxxx以上代码是安卓做的,第二个参数bulk,讲道理应该是某个具体的设备名称,比如/dev/bulk这种.

2020-10-03 17:47:44 1219

原创 f_fs.c 初始化流程(进行中)

前言之所以选择f_fs.c作为这系列的开始,因为usb在/driver/usb下面的内容实在太多太多,如果讲各种各样点会太分散了。所以决定切入点以实际使用为主,就是f_fs了,目前我了解这是做bulk裸传输使用的,具体的通信协议自己确定。初始化部分开始点从这个路径下说起,/drivers/usb/gadget/function/f_fs.c然后f_fs.c第一个使用的是include/composite.h中的宏定义function#define DECLARE_USB_FUNCTION(_n

2020-10-03 16:25:01 1430 2

原创 usb configfs/gadget/functions相关学习预告

目录最近看了很多usb相关知识,从协议到host驱动。大家推荐的-Linux 那些事儿之我是 USB,这本书确实很不错,针对Linux的架构对usb进行了讲解,但是问题在于主要是讲解host相关内容,其实我们大部分开发工作是gadget。另外一本《圈圈教你学usb》,这本书也是比较有意思,把协议给你拆开揉碎了讲。但对于Linux下搞开发的人来说,看了还是不知道在Linux下怎么去写gadget。其它在两者书的基础上我深入看了下gadget/functions/f_fs.c相关的实现,这是比较常见的b

2020-10-02 23:43:36 409

原创 SCP-Firmware bind原理

前景提示这部分bind还是挺有意思的,但是直接写原理估计都没有什么兴趣,所以大家还是按照实际的例子来进行说明。读懂这篇文章有几个前提:了解Linux内核是怎么把一个驱动内部的函数给到别的驱动使用(export)了解SCMI协议和SCMI中power domain协议(处理方式和区别即可)本次文章介绍,scmi_power_domain 怎么bind scmi模块中的函数,从而在 scmi_power_domain 模块中直接调用scmi模块提供的函数。scmi_power_domain 模块

2020-07-12 12:51:20 1227

原创 SCMI协议总体概述

占个坑PSCI为Linux和ATF之间的电源管理交互协议,不只是用来电源管理,进入安全域做一些事情也是这种协议进行。SCMI协议为ACPU和M0做交流使用的方式,纯电源管理和上下电类型,两者通讯机制都是不一样的。...

2020-07-11 11:46:56 5763 3

原创 Doxygen使用指导

1 doxygen简单说明doxygen这款工具我就不细说了,总的来说会将代码中的结构体和函数都解析出来,然后会已网页等形式展现,里面我们最关心的是:结构体之间的包含关系、函数之间的调用关系。官方指导页面在这里:https://www.doxygen.nl/index.html。他能够支持C/C++,JAVA,Python等一系列语言,然后生成一些html/pdf之类的页面给大家去读取。2 如何利用doxygen这么一个好工具,肯定大家都希望用来的,而且这里面用到的规格也比较简单。但是比较遗憾的是

2020-07-10 23:28:30 757

原创 利用python+graphviz画结构图(有更好的,这个参考就行)

准备写一个python脚本,用来生成结构体之间的关系图。免得人工去画,还特别麻烦。从网上得到灵感https://www.cnblogs.com/leituhaomo/p/11729449.html但是他的这个脚本有点不够好看,所以打算手动再写一个。坐等更新。。。需要学习以下内容:graphviz的语法python根据语法解析结构体内容...

2020-07-09 22:58:32 619

原创 SCP-Firmware 核心代码

核心处理scp-firmware/framework/src/fwk_thread.cnoreturn void __fwk_thread_run(void){ for (;;) { while (!fwk_list_is_empty(&ctx.event_queue)) process_next_event(); process_isr(); fwk_log_unbuffer(); }}scp-f

2020-07-06 22:49:16 1605

原创 SCP-Firmware 功能介绍

SCP-Firmware 功能介绍什么是SCP功能描述下载方式什么是SCP在嵌入式设备中,在系统中提供微控制器(一般都是M0)的一个强劲趋势是将各种电源域或其他系统管理任务从应用处理器(AP)挪到M0中处理。Power Control System Architecture (PCSA),就是这么一个用来描述这种系统的。PCSA定义了SCP相关内容,SCP固件为系统控制提供了一个软件参考实现。功能描述实时功能-runtime services - Power domain managemen

2020-07-05 21:53:17 4144 3

原创 arm架构system control processor系列记录

立一个flag,一个月内写出这一系列的博客。主要是功耗控制

2020-07-05 20:26:58 757

usb_20.pdf

usb2.0的协议英文描述文档,对于学习usb来说很有帮助。建议结合《Linux那些事之我是usb》一起观看效果更好

2020-07-24

DEN0056B_System_Control_and_Management_Interface_v2_0.pdf

跟之前一样,这是2.0版本,对照着看比较方便,还是可以直接对着代码一起看。ARM系统控制管理手册,电源域、性能、时钟、外围器件都可以使用这种形式

2020-07-11

scp-firmware-html.7z

使用doxygen生成的scp-firmware的网页,其中包含有各个结构体关系图以及函数调用流程图。比网上其他地方更加详细

2020-07-10

System_Control_and_Management_Interface_v1.0.pdf

scp手册,1.0版本,欢迎大家下载使用查看。可以和SCP代码一起看,比较方便理解。 为啥必须50个字,太麻烦了

2001-12-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除