未验证 提交 86b9deb4 编写于 作者: O openharmony_ci 提交者: Gitee

!10836 修改链接【不需要翻译】

Merge pull request !10836 from duangavin123/master
......@@ -16,7 +16,7 @@ The kernel used by module chips is LiteOS Cortex-M, which consists of four modul
**Figure 1** Architecture of the LiteOS Cortex-M kernel<a name="fig10838105524917"></a>
<img src="figures/architecture-of-the-liteos-cortex-m-kernel.png" style="zoom:75%;" />
![architecture-of-the-liteos-cortex-m-kernel.png](figures/architecture-of-the-liteos-cortex-m-kernel.png)
The directory structure of the kernel is described as follows:
......
**标准系统方案之瑞芯微RK3568移植案例**
# 标准系统方案之瑞芯微RK3568移植案例
本文章是基于瑞芯微RK3568芯片的DAYU200开发板,进行标准系统相关功能的移植,主要包括产品配置添加,内核启动、升级,音频ADM化,Camera,TP,LCD,WIFI,BT,vibrator、sensor、图形显示模块的适配案例总结,以及相关功能的适配。
​本文章是基于瑞芯微RK3568芯片的DAYU200开发板,进行标准系统相关功能的移植,主要包括产品配置添加,内核启动、升级,音频ADM化,Camera,TP,LCD,WIFI,BT,vibrator、sensor、图形显示模块的适配案例总结,以及相关功能的适配。
## 产品配置和目录规划
......@@ -212,7 +212,7 @@ init相关配置请参考[启动子系统的规范要求](https://gitee.com/open
ADM结构框图如下,Audio Peripheral Drivers和Platform Drivers为平台适配需要完成的工作。
<img src="figures/dayu200/dayu200-audio-03.png" alt="dayu200-audio-03.png" style="zoom: 50%;" />
![dayu200-audio-03.png](figures/dayu200/dayu200-audio-03.png)
结合第1步梳理出来的Audio结构分析,Audio Peripheral Drivers包含Rk809的驱动,Platform Drivers包含DMA驱动和I2S驱动。
......@@ -1085,7 +1085,7 @@ product.gni中指定了chipset_build_deps camera_device_manager_deps 和 camera_
#### 框架适配介绍
<img src="figures/dayu200/dayu200-camera-01.png" alt="img" style="zoom:67%;" />
![dayu200-camera-01.png](figures/dayu200/dayu200-camera-01.png)
以V4l2为例,pipeline的连接方式是在HCS配置文件中配置连接,数据源我们称之为SourceNode,主要包括硬件设备的控制、数据流的轮转等。
......@@ -1883,7 +1883,8 @@ struct v4l2_buffer {
- InputController:提供input设备的业务控制接口,包括获取器件信息及设备类型、设置电源状态等。
**图 1** INPUT模块HDI接口层框架图
<img src="figures/dayu200/dayu200-tp-01.png" alt="dayu200-tp-01.png" style="zoom: 67%;" />
![dayu200-tp-01.png](figures/dayu200/dayu200-tp-01.png)
相关目录下源代码目录结构如下所示
......@@ -1922,7 +1923,7 @@ tp驱动的适配依赖hdf的input模型,hdf的input模型提供了TP,KEY,
从功能的角度看hdf input模块的框架如下:
<img src="figures/dayu200/dayu200-tp-02.png" alt="tp" style="zoom: 50%;" />
![dayu200-tp-02.png](figures/dayu200/dayu200-tp-02.png)
因为hdf input模型的高度抽象集成,TP驱动的适配驱动主要涉及器件驱动层的适配。
......@@ -2294,7 +2295,7 @@ device4 :: deviceNode {
基于HDF框架开发的 背光驱动模型
<img src="figures/dayu200/dayu200-backlight-01.png" style="zoom:80%;" />
![dayu200-backlight-01.png](figures/dayu200/dayu200-backlight-01.png)
rk3568背光是通过pwm控制占空比实现的,具体使用的是pwm4
......@@ -2398,7 +2399,7 @@ static struct BacklightOps g_blDevOps = {
其实使用的就是HDF PWM 实现的对接内核pwm的接口
<img src="figures/dayu200/dayu200-backlight-02.png" style="zoom:80%;" />
![dayu200-backlight-02.png](figures/dayu200/dayu200-backlight-02.png)
在LCD HDF器件驱动注册背光
......@@ -2493,7 +2494,7 @@ HDF WiFi框架总体框架图
#### 驱动模块初始化流程分析
<img src="figures/dayu200/dayu200-wifi-02.png" alt="dayu200-wifi-02.png" style="zoom: 67%;" />
![dayu200-wifi-02.png](figures/dayu200/dayu200-wifi-02.png)
Ap6275s 是一款SDIO设备WiFi模组驱动,使用标准Linux的SDIO设备驱动。内核模块初始化入口module_init()调用dhd_wifi_platform_load_sdio()函数进行初始化工作,这里调用wifi_platform_set_power()进行GPIO上电,调用dhd_wlan_set_carddetect()进行探测SDIO设备卡,最后调用sdio_register_driver(&bcmsdh_sdmmc_driver);进行SDIO设备驱动的注册,SDIO总线已经检测到WiFi模块设备 根据设备号和厂商号与该设备驱动匹配, 所以立即回调该驱动的bcmsdh_sdmmc_probe()函数,这里进行WiFi模组芯片的初始化工作,最后创建net_device网络接口wlan0,然后注册到Linux内核协议栈中。
......@@ -2557,7 +2558,7 @@ HDF WLAN驱动框架由Module、NetDevice、NetBuf、BUS、HAL、Client 和 Mess
代码流程框图如下:
<img src="figures/dayu200/dayu200-wifi-03.png" alt="dayu200-wifi-03.png" style="zoom: 67%;" />
![dayu200-wifi-03.png](figures/dayu200/dayu200-wifi-03.png)
代码位于device/hihope/rk3568/wifi/bcmdhd_wifi6/hdf_driver_bdh_register.c
......@@ -2801,7 +2802,7 @@ p2p-p2p0-0 Link encap:Ethernet HWaddr 12:2c:6b:11:21:e0 Driver bcmsdh_sdmmc
蓝牙整体硬件架构上分为主机(计算机或MCU)和主机控制器(实际蓝牙芯片组)两部分;主机和控制器之间的通信遵循主机控制器接口(HCI),如下所示:
<img src="figures/dayu200/dayu200-bt-01.png" style="zoom: 33%;" />
![dayu200-bt-01.png](figures/dayu200/dayu200-bt-01.png)
HCI定义了如何交换命令,事件,异步和同步数据包。异步数据包(ACL)用于数据传输,而同步数据包(SCO)用于带有耳机和免提配置文件的语音。
......@@ -3148,7 +3149,7 @@ void hw_process_event(HC_BT_HDR *p_buf)
基于HDF(Hardware Driver Foundation)驱动框架开发的Sensor驱动模型
<img src="figures/dayu200/dayu200-sensor-01.png" style="zoom: 80%;" />
![dayu200-sensor-01.png](figures/dayu200/dayu200-sensor-01.png)
rk3568 支持accel sensor,整体的驱动框架openharmony 主线已经具备,只需要实现具体的器件驱动即可。
......@@ -3383,7 +3384,7 @@ Vibrator驱动模型主要包含Vibrator(传感器)相关的HDI接口与实
**图 1** Vibrator驱动模型图
<img src="figures/dayu200/dayu200-vibrator-01.png" style="zoom:80%;" />
![dayu200-vibrator-01.png](figures/dayu200/dayu200-vibrator-01.png)
rk3568 支持线性马达,整体的驱动框架openharmony 主线已经具备,只需要实现具体的器件驱动即可。
......
......@@ -1551,7 +1551,8 @@ struct v4l2_buffer {
- InputController:提供input设备的业务控制接口,包括获取器件信息及设备类型、设置电源状态等。
**图 1** INPUT模块HDI接口层框架图
<img src="figures/dayu200/dayu200-tp-01.png" alt="dayu200-tp-01.png" style="zoom: 67%;" />
![dayu200-tp-01.png](figures/dayu200/dayu200-tp-01.png)
相关目录下源代码目录结构如下所示
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册