diff --git a/zh-cn/demo/Music_Player_Example_zh-cn.md b/zh-cn/demo/Music_Player_Example_zh-cn.md
index 260f40d1..5a25e34e 100644
--- a/zh-cn/demo/Music_Player_Example_zh-cn.md
+++ b/zh-cn/demo/Music_Player_Example_zh-cn.md
@@ -8,9 +8,9 @@
## 前提条件
-1. 搭建开发环境,请参见 [环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
+1. 搭建开发环境,请参见[环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
-2. 下载源码,请参见 [下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
+2. 下载源码,请参见[下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
## 步骤一 配置项目
diff --git a/zh-cn/demo/Smart_Band_Example_zh-cn.md b/zh-cn/demo/Smart_Band_Example_zh-cn.md
index d2f1fe23..a03d8711 100644
--- a/zh-cn/demo/Smart_Band_Example_zh-cn.md
+++ b/zh-cn/demo/Smart_Band_Example_zh-cn.md
@@ -9,9 +9,9 @@ Bandx 是一款智能手环演示,包括手表表盘、启动器、音乐、
## 前提条件
-1. 搭建开发环境,请参见 [环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
+1. 搭建开发环境,请参见[环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
-2. 下载源码,请参见 [下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
+2. 下载源码,请参见[下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
## 步骤一 配置项目
diff --git a/zh-cn/demo/X_Track_zh-cn.md b/zh-cn/demo/X_Track_zh-cn.md
index 9a0afbf8..94e8b2fd 100644
--- a/zh-cn/demo/X_Track_zh-cn.md
+++ b/zh-cn/demo/X_Track_zh-cn.md
@@ -14,9 +14,9 @@
## 前提条件
-1. 搭建开发环境,请参见 [环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
+1. 搭建开发环境,请参见[环境搭建](../quickstart/Set_up_the_development_environment_zh-cn.md)。
-2. 下载源码,请参见 [下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
+2. 下载源码,请参见[下载 openvela 源码](../quickstart/Download_Vela_sources_zh-cn.md)。
## 步骤一 配置项目
diff --git a/zh-cn/device_dev_guide/connection/bluetooth/Bluetooth_Overview.md b/zh-cn/device_dev_guide/connection/bluetooth/Bluetooth_Overview.md
index 5c3e00a1..11f81b14 100644
--- a/zh-cn/device_dev_guide/connection/bluetooth/Bluetooth_Overview.md
+++ b/zh-cn/device_dev_guide/connection/bluetooth/Bluetooth_Overview.md
@@ -81,7 +81,7 @@ openvela 蓝牙目前还能够支持多种开源、闭源协议栈,如Zephyr
### 1、蓝牙应用开发
-对于第三方应用开发者,可以使用 openvela 快应用 QuickApp Feature ,它是基于 QuickJS 引擎使用 C++ 实现的一系列 API 接口,为三方应用提供系统访问能力,更多详情请参见 [蓝牙接口](https://doc.quickapp.cn/features/system/bluetooth.html)。
+对于第三方应用开发者,可以使用 openvela 快应用 QuickApp Feature ,它是基于 QuickJS 引擎使用 C++ 实现的一系列 API 接口,为三方应用提供系统访问能力,更多详情请参见[蓝牙接口](https://doc.quickapp.cn/features/system/bluetooth.html)。
另外,蓝牙 Framework 还提供了 NDK 接口来使用蓝牙系统的所有能力。可以参阅目录 framework/include 中的头文件获取更多信息。
diff --git a/zh-cn/device_dev_guide/connection/bluetooth/functionality_test/AdapterBTCommands/set.md b/zh-cn/device_dev_guide/connection/bluetooth/functionality_test/AdapterBTCommands/set.md
index 76ba0bd4..f94590f1 100644
--- a/zh-cn/device_dev_guide/connection/bluetooth/functionality_test/AdapterBTCommands/set.md
+++ b/zh-cn/device_dev_guide/connection/bluetooth/functionality_test/AdapterBTCommands/set.md
@@ -118,7 +118,7 @@ bttool> set iocap 0
| **参数名** | **说明** | **参数类型** | **参数值范围** | **默认值** |
| :----------- | :------------------- | :----------- | :------------------- | :--------- |
-| local name | 本地蓝牙适配器名称。 | 字符串 | 最多输入 63 个字符。 | N/A |
+| local name | 本地蓝牙适配器名称。 | 字符串 | 最多输入 64 个字符。 | N/A |
#### 示例
@@ -160,7 +160,7 @@ bttool> [bttool] Adapter update device name: Xiaomiii
| **参数名** | **说明** | **参数类型** | **默认值** |
| :--------- | :----------------------------------------------------------- | :----------- | :--------- |
-| class | 本地蓝牙shipeiqi 类型,由 4 个部分组成。
bit 23~13 :主服务类型。
bit 12~8:主设备类型。
bit 7~2:次要设备类型。
bit 1~0:固定值 0。 | 十六进制整数 | 0x00280704 |
+| class | 本地蓝牙适配器类型,由 4 个部分组成。
bit 23~13 :主服务类型。
bit 12~8:主设备类型。
bit 7~2:次要设备类型。
bit 1~0:固定值 0。 | 十六进制整数 | 0x00280704 |
#### 注意事项
diff --git a/zh-cn/device_dev_guide/graphics/Framebuffer_Driver.md b/zh-cn/device_dev_guide/graphics/Framebuffer_Driver.md
index 34f17640..3357f442 100644
--- a/zh-cn/device_dev_guide/graphics/Framebuffer_Driver.md
+++ b/zh-cn/device_dev_guide/graphics/Framebuffer_Driver.md
@@ -9,11 +9,14 @@ Framebuffer(帧缓存/显存)是一个用于存储一帧 LCD 图像数据的
以 480x320 的屏幕为例,在不同像素模式下,Framebuffer 的大小如下:
1. ARGB888 (32bpp):
- 1. 计算公式:`480 x 320 x 4 (bytes)`
- 2. 大小:614,400 字节
+
+ - 计算公式:`480 x 320 x 4 (bytes)`
+ - 大小:614,400 字节
+
2. RGB565 (16bpp):
- 1. 计算公式:`480 x 320 x 2 (bytes)`
- 2. 大小:307,200 字节
+
+ - 计算公式:`480 x 320 x 2 (bytes)`
+ - 大小:307,200 字节
## 二、Framebuffer的显示原理
@@ -106,7 +109,7 @@ errout_with_fb:
3. `void up_fbuninitialize(int display)`
- 执行与 `up_fbinitialize` 相反的操作,用于释放资源。通常可以实现为空,不执行任何操作。
-### `3、struct fb_vtable_s` 结构
+### 3、`struct fb_vtable_s` 结构
`fb_vtable_s` 是 Framebuffer 的核心结构,定义了与视频硬件交互的接口。以下是其主要功能模块:
@@ -147,7 +150,7 @@ errout_with_fb:
- `getpower`:获取面板的电源状态。
- `setpower`:启用或禁用面板电源。
-#### 3.1 示例代码
+#### 示例代码
以下是 `struct fb_vtable_s` 的部分定义示例:
@@ -257,7 +260,6 @@ struct fb_vtable_s
int (*blend)(FAR struct fb_vtable_s *vtable,
FAR const struct fb_overlayblend_s *blend);
-# endif
#endif
/* Pan display for multiple buffers. */
diff --git a/zh-cn/device_dev_guide/graphics/LCD_Driver.md b/zh-cn/device_dev_guide/graphics/LCD_Driver.md
index 97b9281e..418b7a46 100644
--- a/zh-cn/device_dev_guide/graphics/LCD_Driver.md
+++ b/zh-cn/device_dev_guide/graphics/LCD_Driver.md
@@ -104,22 +104,21 @@ struct lcd_dev_s
```C
#ifdef CONFIG_LCD
-
- ret = board_lcd_initialize();
- if (ret < 0)
- {
- syslog(LOG_ERR, "ERROR: board_lcd_initialize() failed: %d\n", ret);
- }
-
-# ifdef CONFIG_LCD_DEV
-
- ret = lcddev_register(0);
- if (ret < 0)
- {
- syslog(LOG_ERR, "ERROR: lcddev_register() failed: %d\n", ret);
- }
-
-# endif
+ // Initialize the LCD board
+ ret = board_lcd_initialize();
+ if (ret < 0)
+ {
+ syslog(LOG_ERR, "ERROR: board_lcd_initialize() failed: %d\n", ret);
+ }
+#ifdef CONFIG_LCD_DEV
+ // Register the LCD device
+ ret = lcddev_register(0);
+ if (ret < 0)
+ {
+ syslog(LOG_ERR, "ERROR: lcddev_register() failed: %d\n", ret);
+ }
+#endif /* CONFIG_LCD_DEV */
+#endif /* CONFIG_LCD */
```
#### 代码说明
@@ -140,25 +139,25 @@ struct lcd_dev_s
```C
struct lcd_planeinfo_s
{
- /* LCD Data Transfer ******************************************************/
- //对某一行写入npixels个数据
+ /* LCD Data Transfer */
+ /* 对某一行写入npixels个数据 */
int (*putrun)(fb_coord_t row, fb_coord_t col, FAR const uint8_t *buffer,
size_t npixels);
- //更新矩形区域
+ /* 更新矩形区域 */
int (*putarea)(fb_coord_t row_start, fb_coord_t row_end,
fb_coord_t col_start, fb_coord_t col_end,
FAR const uint8_t *buffer);
- //读取某一行npixels个数据
+ /* 读取某一行npixels个数据 */
int (*getrun)(fb_coord_t row, fb_coord_t col, FAR uint8_t *buffer,
size_t npixels);
- //读取一个矩形区域的数据
+ /* 读取一个矩形区域的数据 */
int (*getarea)(fb_coord_t row_start, fb_coord_t row_end,
fb_coord_t col_start, fb_coord_t col_end,
FAR uint8_t *buffer);
- /* Plane color characteristics ********************************************
- //工作区,每个lcd 设备一个,多个layer共享一个buffer。至少存储一行的数据(bpp * xres/8),要和像素格式对齐
+ /* Plane color characteristics */
+ /* 工作区,每个lcd 设备一个,多个layer共享一个buffer。至少存储一行的数据(bpp * xres/8),要和像素格式对齐 */
uint8_t *buffer;
- //一个像素占用的位数
+ /* 一个像素占用的位数 */
uint8_t bpp;
};
```
diff --git a/zh-cn/device_dev_guide/graphics/VSync.md b/zh-cn/device_dev_guide/graphics/VSync.md
index 292c0509..9d2f3230 100644
--- a/zh-cn/device_dev_guide/graphics/VSync.md
+++ b/zh-cn/device_dev_guide/graphics/VSync.md
@@ -67,12 +67,12 @@
>
> 中断相关内容介绍请参见 [Interrupt](https://en.wikipedia.org/wiki/Interrupt)。
-MCU 和屏幕的简化版硬件连接如下图:
+微控制单元(Microcontroller Unit,MCU)和屏幕的简化版硬件连接如下图:

-- TE (Tearing Effect):用于接收屏幕发送过来的同步信号,屏幕硬件会在每次即将显示新的帧之前,改变这个引脚的电平,MCU 通过 GPIO 中断接收和处理 TE 事件。
-- MIPI:用于传输命令和数据的接口,LCD 控制器和 LCD 之间沟通的桥梁,CPU 通过操作 LCD 控制器来控制屏幕显示的内容,LCD 控制器也会在每次传输完毕后,通过中断来通知 CPU buffer 已经发送完成。
+- TE(Tearing Effect):用于接收屏幕发送过来的同步信号,屏幕硬件会在每次即将显示新的帧之前,改变这个引脚的电平,MCU 通过 GPIO 中断接收和处理 TE 事件。
+- MIPI(Mobile Industry Processor Interface):用于传输命令和数据的接口,LCD 控制器和 LCD 之间沟通的桥梁,CPU 通过操作 LCD 控制器来控制屏幕显示的内容,LCD 控制器也会在每次传输完毕后,通过中断来通知 CPU buffer 已经发送完成。
LCD 驱动程序需要提供两个中断服务函数,用于接收和处理 LCD 发送过来的事件。
diff --git a/zh-cn/device_dev_guide/media/media_framework.md b/zh-cn/device_dev_guide/media/media_framework.md
deleted file mode 100644
index 58354067..00000000
--- a/zh-cn/device_dev_guide/media/media_framework.md
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# **Media Framework**
-
-## 一、**概述**
-
-Media Framework 是一个用于处理音视频的库,提供了丰富的 API 供应用程序调用。Media Framework 采用 **CS 架构**,Client 接口会把命令打包通过 RPC 发送到 Server 上,由 Server 的 loop 做实际的工作。Media Framework 支持多种音频和视频格式的播放和录制,并且具有分布式架构,可以在多个 CPU 上运行。
-
-
-
-## 二、**功能特性**
-
-Media Framework 主要功能模块包括 **Media Player**、**Media Recorder**、**Media Focus**、**Media Policy** 和 **Media Session**,其中 **Media Player** 和 **Media Recorder**由 **Media Graph** 模块封装。
-
-### 1、**Media Player**
-
-- **播放服务**:能够创建一个播放实例,然后控制播放。
-
-- **格式支持**:支持多种音频和视频格式,确保广泛的兼容性。
-
-- **播放控制**:提供丰富的播放控制功能,如播放、暂停、停止、快进等,满足用户对音视频播放的各种需求。
-
-### 2、**Media Recorder**
-
-- **录制服务**:能够创建一个录制实例,然后控制录制。
-
-- **格式支持**:支持多种音频和视频格式,确保广泛的兼容性。
-
-- **录制控制**:提供丰富的录制控制功能,如开启录制、暂停录制、停止录制等,满足用户对音视频录制的各种需求。
-
-### 3、**Media Focus**
-
-通过设计焦点管理机制,有效地处理多个应用对媒体焦点的竞争。确保在特定时间只有一个应用获得媒体焦点并播放媒体。用户可以订阅焦点,参与到焦点的**焦点抢占**逻辑中,获得焦点提供的行为建议,从而获取流畅的用户体验。
-
-### 4、**Media Policy**
-
-Media Policy 通过 **PFW** 来构造路由策略、音频策略等各种状态,可以通过插件进行扩展,支持处理 FFmpeg 命令和设置设备参数等功能。此外,通过编写 Policy 配置文件,往 Policy 设置参数,可以按照配置文件中既定的策略来改变 Graph 的一些全局状态,比如输入输出设备的链路切换和音量控制等,为用户提供高度可定制的媒体处理环境。
-
-### 5、**Media Session**
-
-采用控制者和被控制者的架构,实现对媒体播放的精细控制和状态通知。提供注册控制者和被控制者、发送控制命令、处理事件通知和更新媒体元数据等功能,便于对多个媒体客户端进行统一管理和控制。
-
-### 6、**Media RPC**
-
-双 socket 通信模型:不论是否跨核,我们都使用两个独立的 socket 来实现通信。
-
-- Trans socket
-负责传输 Client 到 Server 的控制命令,同时回传 RPC 执行结果。
-
-- Notify socket
-负责传输 Server 到 Client 的消息通知,通过回调传递给用户。
-
-
-
-通用性:对于 Player、Recorder、Session、Policy、Focus 用户,RPC 机制都是通用的,允许应用程序在不同 CPU 之间进行通信。
-
-模式支持 :Media Framework 支持同步与异步模式的 RPC 。
-
- - 同步模式:客户端发送请求并等待服务器响应,适用于需要立即反馈的场景。
- - 异步模式:客户端发送请求后立即返回,服务器在处理完请求后通过回调通知客户端,提供高效的通信机制,确保数据传输的可靠性和实时性。
-
-## 三、**Media Framework 架构**
-
-
-
-[Client 模块](./client/media_client.md)
-
-[Server 模块](./server/media_server.md)
-
-## 四、**测试 Media Framework**
-
- 采用 Mediatool 测试程序,用于测试 Media Framework API,可模拟实际使用场景。
-
-[使用 Mediatool工具测试 Media Framework API](./mediatool_zh-cn.md)
diff --git a/zh-cn/device_dev_guide/media/server/media_server.md b/zh-cn/device_dev_guide/media/server/media_server.md
index af4ba1b8..c0b245c6 100644
--- a/zh-cn/device_dev_guide/media/server/media_server.md
+++ b/zh-cn/device_dev_guide/media/server/media_server.md
@@ -27,7 +27,7 @@
### 1、**Media Daemon**
-Media Daemon 是 Media Server的核心,负责创建和管理Media的各个模块,如 Media Focus、Media Graph、Media Session、Media Policy等。Medid Daemon 的核心原理是使用**poll** 函数, 监听RPC socket fd,和音视频设备驱动注册的 message queue fd,处理 RPC 命令并触发 FFmpeg 工作。
+Media Daemon 是 Media Server的核心,负责创建和管理Media的各个模块,如 Media Focus、Media Graph、Media Session、Media Policy等。Medid Daemon 的核心原理是使用 **poll** 函数, 监听RPC socket fd,和音视频设备驱动注册的 message queue fd,处理 RPC 命令并触发 FFmpeg 工作。
