5 杨雪松

Arcsoft - 高级软件架构师

我要认证

工作记录●升级打怪

等级
TA的排名 8k+

[RK3399][Android7.1]代码管理笔记:系统代码修改规范

文章目录一、背景及问题:二、 思路和方法:1. 针对 TAB 处理:2. 针对回车换行的处理:3. 修改的识别:平台内核版本安卓版本RK3399Linux4.4Android7.1一、背景及问题:系统代码因为主要考虑基于原厂提供的公版代码做修改, 且涉及自主修改,公版 patch, 多人维护交叉修改等问题。为统一格式, 方便代码识别,增加可读性。特别定义此规范。二、 思路和方法:规范主要是针对系统代码修改的, 分成三部分, 分别是针对 TAB 处理, 针对回车换行的.

2020-09-13 18:10:09

[RK3399][Android7.1]代码管理笔记:gerrit服务器操作基本方法

文章目录一. 背景及问题:二. 思路和方法:1. 代码提交:2. 代码审批:平台内核版本安卓版本RK3399Linux4.4Android7.1一. 背景及问题:新的代码服务器采用gerrit 管理, 因为代码需要审查之后才能提交, 所以, 不能提交方法和之前的操作有很大的不同, 此文档用于指引服务器代码相关的基本操作: 代码提交, 审批, 代码合并等基本方法.二. 思路和方法:1. 代码提交:代码提交是RD人员必需有的权限.如取代码:git clone s.

2020-09-13 18:01:51

[HarmonyOS][鸿蒙专栏开篇]快速入门OpenHarmony的LiteOS微内核

文章目录1、获取源码2、什么是LiteOS3、LiteOS的目录介绍4、LiteOS 中Make体系5、LiteOS 中Kconfig的配置5.1、顶层Kconfig5.2、具体板级的deconfig文件6、编译7、顶层目录下的config.mk文件主要完成如下功能的配置:1、获取源码OpenHarmony是HarmonyOS的开源版,由华为捐赠给开放原子开源基金会(OpenAtom Foundation)开源。第一个开源版本支持在128KB~128MB设备上运行,欢迎参加开源社区一起持续演进。代码.

2020-09-13 16:13:18

[RK3399][Android7.1]USB设备端的调度

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1USB 设备端驱动程序的调度思想是被动的接收主机端的传输命令,通过中断触发的方式完成主机端的数据传输。当产生设备端中断时候,设备控制器驱动程序首先判断中断类型。当为批量传输端点 IN 中断的时候,驱动程序会将该 EP 下链接的 REQ 中的数据依次的写入 USB2.0 OTG IP 的设备控制器的内存区;当为批量传输 OUT 中断的时候,驱动程序会将 USB2.0 OTG IP 的设备控制器内存.

2020-09-12 16:51:22

[RK3399][Android7.1]Gadget 驱动程序设计

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1当把运行 Linux的开发板模拟为 USB 海量存储器时,开发板中的底层 USB 控制器行使 USB 设备控制器的功能,运行的是 UDC 驱动,而在 UDC 驱动之上还需要另外一个驱动,即file storage驱动,这一驱动被称为 gadget 驱动。Gadget 驱动程序的框架如图所示。由图可知,Gadget驱动程序分为文件存储、串口、Ethernet等。本设计只需要实现文件存储类型的Ga.

2020-09-06 23:39:39

[RK3399][Android7.1]Gadget 系统核心数据结构

文章目录硬件层描述结构传输数据描述上层驱动描述平台内核版本安卓版本RK3399Linux4.4Android7.1当今的 USB 设备种类非常繁多,USB 协议根据功能和特征对设备进行分类,然后对不同类别的设备指定不同的操作规范。例如当前的音频类、视频类设备等,它们都具有各自不同的操作协议。在 Gadget 框架中,这些不同类型设备 Gadget功能的实现就是要靠上层 Gadget 功能驱动程序来完成。下层的 UDC 芯片驱动层主要实现 usb_ep_ops 和usb_.

2020-09-06 10:44:41

[RK3399][Android7.1]Linux USB Host驱动框架

文章目录USB 总线的初始化USB 设备的枚举平台内核版本安卓版本RK3399Linux4.4Android7.1USB 总线的初始化首先直接上大图:USB 控制器(连同根集线器)连接在 PCI 总线上,是一个 PCI 设备,在 PCI总线的初始化过程中也会受到枚举。PCI设备的初始化完成以后,在 PCI 总线树中就有了代表着具体 USB 总线控制器的 pci_dev 数据结构,并为控制器的 I/O区间和 RAM 区间分配和设置了总线地址。我们将以 XHCI USB.

2020-09-05 01:41:02

[RK3399][Android7.1]USB 设备端驱动系统框架

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1Linux 操作系统的 USB 设备端 Linux Gadget 系统是 Linux 实现 USB 设备端驱动的子系统,其源代码主要分布在/drivers/usb/gadget 目录下, 主要有 USB device 的海量存储设备、串口设备、网络设备等设备驱动程序及各种 USB device控制器芯片的芯片驱动程序。Linux Gadget 子系统主要分为三层,如上图所示:第一层为设备控.

2020-09-03 23:55:20

[RK3399][Android7.1]USB 驱动抽象的数据结构

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1USB 主机驱动系统主要有五个数据结构分别是 usb_device, usb_bus, usb_driver,urb,gadget_driver。下面是对各部分进行详细分析。

2020-09-03 00:29:21

[RK3399][Android7.1]USB 驱动层次结构

文章目录从主机侧的观念去看从设备侧看平台内核版本安卓版本RK3399Linux4.4Android7.1USB 采用树形拓扑结构,主机侧和设备侧的 USB 控制器分别称为主机控制器(Host Controller)和 USB 设备控制器(UDC),每条总线上只有一个主机控制器,负责协调主机和设备间的通信,而设备不能主动向主机发送任何消息。在 Linux 系统中,USB 驱动可以从两个角度去观察,一个角度是主机侧,一个角度是设备侧。从主机侧的观念去看从主机侧的观念去.

2020-09-02 23:57:45

[RK3399][Android7.1]图解Kernel Device Tree(设备树)的使用

本质上,`Device Tree`改变了原来用`hardcode`方式将`HW` 配置信息嵌入到内核代码的方法,改用`bootloader`传递一个`DB`的形式。对于基于`ARM CPU`的嵌入式系统,我们习惯于针对每一个`platform`进行内核的编译。但是随着`ARM`在消费类电子上的广泛应用(甚至桌面系统、服务器系统),我们期望`ARM`能够象`X86`那样用一个`kernel image`来支持多个`platform`。

2020-08-29 17:48:17

[RK3399][Android7.1]PHY芯片RTL8201F的调试(一)概念篇

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1目前RK已经将在Android体系中加入了以太网的控制,在设置的app里面,我们可以看到以太网的开关。我们知道,以太网接口分为协议层和物理层。RK3399这款主控的协议层是由MAC控制器控制,物理层由PHY芯片控制。MAC控制器已经集成在RK3399内部了,所以我们要通过以太网上网的话,还需要一个PHY芯片。按功能来分的话,MAC控制器实现的是协议层的功能,PHY芯片实现的是物理层的功能。IE.

2020-08-29 11:14:49

[RK3399][Android7.1]SD卡读写流程

文章目录读操作写操作平台内核版本安卓版本RK3399Linux4.4Android7.1读操作写操作

2020-08-28 00:07:15

[RK3399][Android7.1]SD卡初始化流程

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1

2020-08-28 00:04:04

[RK3399][Android7.1]SD卡读写配置流程

文章目录

2020-08-28 00:01:20

[RK3399][Android7.1]Linux 休眠唤醒

文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1为了更好地应用在移动设备上,Linux 操作系统在电源管理方面进行了不断地更新和改进,最终设计并实现了一套相对稳定和完善的休眠和唤醒机制。休眠和唤醒是 Linux 用来实现对设备进行电源管理的必要手段。所谓休眠就是让设备进入一种低功耗状态。在这种状态下,设备可以停止工作,也可以在较低的电能消耗状态下工作。通常,系统进入休眠的原因有多种,如系统处于空闲状态时电源管理模块自动进入休眠,用户按下挂起按.

2020-08-27 00:24:22

[图解linux][Network stack系列]:网络设备的数据结构介绍

文章目录net_device网络设备结构sk_buff数据包管理结构net_device网络设备结构网络接口模块的核心数据结构为网络设备结构 struct net_device,该结构与实际的物理网卡对应,用来记录和描述网卡的相关信息和动作。具体定义如下。struct net_device{ char name[IFNAMSIZ]; /*网卡名称*/ int s; /*建立的 PACKET 套接字描述符*/ struct sockaddr_ll to; /*目的网卡地址结构.

2020-08-25 22:49:23

[图解linux][Network stack系列]:深入理解Linux内核网络预览

文章目录关键数据结构通知链notify chain网络设备的初始化PCI层和网络接口路由设备的注册和初始化帧的接收上层网络功能

2020-08-25 00:09:09

[图解linux][Network stack系列]:网络设备驱动的抽象与实现

文章目录网络设备驱动体系结构net_device 抽象网络驱动程序的实现网络设备驱动体系结构Linux 网络驱动程序的体系结构可以划分为四层, 如下图所示, 从上到下分别为协议接口层, 网络设备接口层, 再就是提供实际功能的设备驱动功能层, 以及网络设备和网络媒介层 。Linux 内核源代码 中提供了网络设备接口及以上层次的代码 , 因此移植特定网络硬件的驱动程序的主要工作就是完 成设备驱动功能层的相应代码 , 根据底层具体的硬 件特性 , 定义网络设备接口struc t net_device 类.

2020-08-23 17:32:48

[图解linux][Network stack系列]:什么是网络设备驱动

文章目录网络设备驱动网络设备驱动Linux 网络驱动程序作为 Linux 网络子系统的一部分, 位于TCP/IP 网络体系结构的网络接口层, 主要实现上层协议栈与网络设备的数据交换。Linux 的网络系统主要是基于 BSD Unix 的套接字 ( socket) 机制 , 网络设备与字符设备和块设备不同 , 没有对应地映射到文件系统中的设备节点。...

2020-08-23 17:32:01

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。