diff --git a/zh-cn/device_dev_guide/build/Kconfig.md b/zh-cn/device_dev_guide/build/Kconfig.md index da9ee2b7..e57832fb 100644 --- a/zh-cn/device_dev_guide/build/Kconfig.md +++ b/zh-cn/device_dev_guide/build/Kconfig.md @@ -66,15 +66,15 @@ openvela 在首次启动编译时,通过指定的 `arch` 和 `board` 参数找 使用如下命令完成编译过程: ```Bash -./build.sh vendor/sim/boards/openvela/config/openvela menuconfig -./build.sh vendor/sim/boards/openvela/config/openvela -j8 +./build.sh vendor/sim/boards/vela/config/vela menuconfig +./build.sh vendor/sim/boards/vela/config/vela -j8 ``` ### 3、文件路径示例 根据 openvela simulator 环境,各文件的典型路径如下: -- `defconfig` 文件路径:`vendor/sim/boards/openvela/configs/openvela/defconfig` +- `defconfig` 文件路径:`vendor/sim/boards/vela/configs/vela/defconfig` - `.config` 文件路径:`nuttx/.config` - `config.h` 文件路径:`nuttx/include/config.h` @@ -91,7 +91,7 @@ openvela 在首次启动编译时,通过指定的 `arch` 和 `board` 参数找 使用 `menuconfig` 命令可打开可视化的配置界面,例如: ```Bash - ./build.sh vendor/sim/boards/openvela/configs/openvela menuconfig + ./build.sh vendor/sim/boards/vela/configs/vela menuconfig ``` ![img](./figures/007.png) @@ -127,6 +127,7 @@ openvela 在首次启动编译时,通过指定的 `arch` 和 `board` 参数找 - 整型(int):需要输入具体的整数值。 - 布尔型(bool):通过按下 `y`(选择)或空格键来切换状态。 + ![img](./figures/012.png) - 字符串型:直接输入字符串作为配置值。 @@ -142,4 +143,4 @@ openvela 在首次启动编译时,通过指定的 `arch` 和 `board` 参数找 - [Zephyr 项目 - Kconfig Tips](https://docs.zephyrproject.org/latest/build/kconfig/tips.html) - [Zephyr 项目 - Kconfig Extensions](https://docs.zephyrproject.org/latest/build/kconfig/extensions.html) -- [Kernel Documentation - Kconfig Language](https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html) \ No newline at end of file +- [Kernel Documentation - Kconfig Language](https://www.kernel.org/doc/html/latest/kbuild/kconfig-language.html) diff --git a/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/VirtIO_Framework.md b/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/VirtIO_Framework.md index f04d3d06..0425f626 100644 --- a/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/VirtIO_Framework.md +++ b/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/VirtIO_Framework.md @@ -13,11 +13,13 @@ openvela 基于 OpenAMP 实现了完整的 VirtIO 框架。该框架在上层支 1. 驱动层: 驱动层负责将 VirtIO 与 openvela 驱动框架对接。驱动层通过调用 VirtIO 提供的统一接口,完成设备的初始化和数据交互。 + 2. VirtIO 层: VirtIO 层为驱动提供统一的接口,支持 Driver 和 Device 的注册、卸载以及匹配机制。 3. 传输层: + 传输层提供对不同传输方式的支持,包括 MMIO、RemoteProc 和 PCI 等。 ![img](./figures/011.svg) diff --git a/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/introduction_to_virtio.md b/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/introduction_to_virtio.md index de6b494f..c56389c3 100644 --- a/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/introduction_to_virtio.md +++ b/zh-cn/device_dev_guide/kernal/inter_processor_communication/VirtIO/introduction_to_virtio.md @@ -14,19 +14,25 @@ VirtIO 于 2008 年提出,当时 Linux 系统中针对不同虚拟化平台( 为实现上述目标,VirtIO 提出了以下两种核心机制: 1. 特性扩展机制。 - - 提供适用于所有驱动的 feature 扩展机制,便于扩展 VirtIO driver 的功能。 - - 支持 feature 的协商,确保向前和向后兼容性。 + + - 提供适用于所有驱动的 feature 扩展机制,便于扩展 VirtIO driver 的功能。 + - 支持 feature 的协商,确保向前和向后兼容性。 + 2. Buffer 传输机制(vring/virtqueue)。 - - 适用于所有驱动,设计简单,支持零拷贝和无锁操作。 + + - 适用于所有驱动,设计简单,支持零拷贝和无锁操作。 ### 3、本文结构 本文档将分为以下两部分对 VirtIO 进行详细介绍: 1. 第一部分: - - 介绍 Virtqueue 的数据结构、两端的数据发送流程,以及为性能优化设计的高级特性。 + + - 介绍 Virtqueue 的数据结构、两端的数据发送流程,以及为性能优化设计的高级特性。 + 2. 第二部分: - - 说明 VirtIO Device 的基础概念。 + + - 说明 VirtIO Device 的基础概念。 本文档所有代码基于 OpenAMP 实现进行说明。其他操作系统(如 FreeBSD 和 Linux)的实现可能略有差异,但整体思路类似。 @@ -177,16 +183,16 @@ struct virtq_avail { 4. used_event: - - 当启用 VIRTIO_F_EVENT_IDX 特性时,`flags` 中的 VIRTQ_AVAIL_F_NO_INTERRUPT 无效。 - - Device 的通知行为由 `avail.used_event` 决定: + - 当启用 VIRTIO_F_EVENT_IDX 特性时,`flags` 中的 VIRTQ_AVAIL_F_NO_INTERRUPT 无效。 + - Device 的通知行为由 `avail.used_event` 决定: - - 当 Device 写入 used ring 时,如果 `used_ring.idx == used_event`,则发送通知;否则不发送。 + - 当 Device 写入 used ring 时,如果 `used_ring.idx == used_event`,则发送通知;否则不发送。 - - 该机制用于控制 Device 通知的节奏,减少不必要的中断。 + - 该机制用于控制 Device 通知的节奏,减少不必要的中断。 ##### Available Ring 示例 -![img](./figures/003.svg) +![img](./figures/004.svg) #### 4.3 Used Ring diff --git a/zh-cn/device_dev_guide/media/client/media_client.md b/zh-cn/device_dev_guide/media/client/media_client.md index 75dbc974..159abd94 100644 --- a/zh-cn/device_dev_guide/media/client/media_client.md +++ b/zh-cn/device_dev_guide/media/client/media_client.md @@ -63,8 +63,9 @@ Client 端的 Media Policy 提供了设置和获取各种 Media Policy 参数的 - 同步接口: - **media_policy.c** 提供管理 Policy 的同步接口,客户端可方便设置和获取各种媒体相关参数。 - 支持管理静音模式、订阅 Policy 变化、控制音频设备使用接口以及设置音量等。 + - 异步接口: - - **media_uv_policy.c** 提供 Client 以异步方式设置和获取各种Policy相关参数的接口。 + - **media_uv_policy.c** 提供 Client 以异步方式设置和获取各种 Policy 相关参数的接口。 - 支持获取音频模式、设备使用状态等。 ### 4、**Media Session** diff --git a/zh-cn/device_dev_guide/media/mediatool_zh-cn.md b/zh-cn/device_dev_guide/media/mediatool_zh-cn.md index 31fcfd80..3341d348 100644 --- a/zh-cn/device_dev_guide/media/mediatool_zh-cn.md +++ b/zh-cn/device_dev_guide/media/mediatool_zh-cn.md @@ -1,108 +1,136 @@ -# **Mediatool 工具说明** +# Mediatool 工具使用指南 [[English](./mediatool.md) | 简体中文] -采用 Mediatool 测试程序,用于测试 Media Framework API,可模拟实际使用场景。 +Mediatool 是一款测试程序,用于验证 Media Framework API 的功能,可基于模拟的实际使用场景测试媒体框架。 -## 一、**配置 Mediatool 工具** +## 一、配置 Mediatool 工具 -配置使用 mediatool 工具的 CPU ,比如 AP : +### 1、配置使用 Mediatool 的 CPU + +以下配置适用于需要使用 Mediatool 的 CPU,例如 AP: ```shell -CONFIG_MEDIA=y // 需要使用 Media 功能的 cpu, enable 该选项 -CONFIG_MEDIA_TOOL=y // 开启mediatool 工具 -CONFIG_MEDIA_SERVER_CPUNAME='audio' // 提供Media 能力的 cpu name +CONFIG_MEDIA=y # 启用需要使用 Media 功能的 CPU +CONFIG_MEDIA_TOOL=y # 启用 Mediatool 工具 +CONFIG_MEDIA_SERVER_CPUNAME='audio' # 提供 Media 功能的 CPU 名称 ``` -提供 media 能力(运行着 mediad )的 CPU, 比如 AUDIO: +### 2、配置提供 Media 功能的 CPU + +以下配置适用于运行 mediad(提供 Media 能力)的 CPU,例如 AUDIO: ```shell -CONFIG_MEDIA_SERVER=y // 提供 Media 能力的 cpu, enable 该选项 -CONFIG_MEDIA_SERVER_CONFIG_PATH="/etc/media/" // 设置media相关配置文件放置目录, 默认 -CONFIG_MEDIA_SERVER_PROGNAME="mediad" // media deamon 程序名字,默认 +CONFIG_MEDIA_SERVER=y # 启用提供 Media 功能的 CPU +CONFIG_MEDIA_SERVER_CONFIG_PATH="/etc/media/" # 配置文件默认放置目录 +CONFIG_MEDIA_SERVER_PROGNAME="mediad" # Media deamon 程序名称 CONFIG_LIB_FFMPEG=y CONFIG_LIB_FFMPEG_CONFIGURATION="--disable-sse --enable-avcodec --enable-avdevice --enable-avfilter --enable-avformat --enable-decoder='aac,aac_latm,flac,mp3float,pcm_s16le,libopus,libfluoride_sbc,libfluoride_sbc_packed' --enable-demuxer='aac,mp3,pcm_s16le,flac,mov,ogg,wav' --enable-encoder='aac,pcm_s16le,libopus,libfluoride_sbc' --enable-hardcoded-tables --enable-indev=nuttx --enable-ffmpeg --enable-ffprobe --enable-filter='adevsrc,adevsink,afade,amix,amovie_async,amoviesink_async,astats,astreamselect,aresample,volume' --enable-libopus --enable-muxer='opus,opusraw,pcm_s16le,wav' --enable-outdev=bluelet,nuttx --enable-parser='aac,flac' --enable-protocol='cache,file,http,https,rpmsg,tcp,unix' --enable-swresample --tmpdir='/log'" CONFIG_LIB_PFW=y ``` -## 二、**Sim 环境运行 Mediatool** +## 二、Sim 模拟环境运行 Mediatool + +通过配置以下步骤运行 Mediatool 测试工具,验证模拟运行环境中的媒体功能。 -1. 运行 ap ,audio 虚拟机: +1. 启动 AP 和 AUDIO 虚拟机: ```shell sudo ./nuttx ``` -2. 挂载目录,/music 存放媒体文件,首先把host路径挂载当前核上(ap): +2. 挂载目录:将 `host` 路径挂载到当前核(AP)上的 `/music`,用于存放媒体文件: ```shell ap>mount -t hostfs -o fs=/home/jhd/music /music ``` -3. 运行 mediatool 工具: +3. 启动 Mediatool 工具运行测试: ```shell ap>mediatool ``` -## 三、**测试方法** +## 三、测试方法 + +以下是使用 Mediatool 工具的常见操作方法,包括媒体文件的播放、录制以及调试指令。 + +### 1、播放音频文件 -- 播放音频文件( URL 模式 ): +- URL 模式播放: ```shell - open Music - prepare 0 url music/1.mp3 //采用 URL 模式播放 - start 0 //启动播放 - stop 0 //停止播放 - close 0 //关闭播放 + open Music + prepare 0 url music/1.mp3 # 采用 URL 模式播放 + start 0 # 启动播放 + stop 0 # 停止播放 + close 0 # 关闭播放 ``` -- 播放音频文件(Buffer模式): +- Buffer 模式播放: ```shell - open Music - prepare 0 buffer /music/1.mp3 //采用 Buffer 模式播放 - start 0 - stop 0 - close 0 + open Music + prepare 0 buffer /music/1.mp3 # 采用 Buffer 模式播放 + start 0 + stop 0 + close 0 ``` -- 录制音频文件(URL模式): +### 2、录制音频文件 + +- URL 模式录制: ```shell - copen cap - prepare 0 url music/2.opus - start 0 //启动录制 - stop 0 //停止录制 - close 0 //关闭录制 + copen cap + prepare 0 url music/2.opus + start 0 # 启动录制 + stop 0 # 停止录制 + close 0 # 关闭录制 ``` -- 录制音频文件(Buffer模式): +- Buffer 模式录制: ```shell - copen cap - prepare 0 buffer /music/b3.opus format=opus:sample_rate=16000:ch_layout=mono - start 0 - stop 0 - close 0 + copen cap + prepare 0 buffer /music/b3.opus format=opus:sample_rate=16000:ch_layout=mono + start 0 + stop 0 + close 0 ``` -- 播放控制: +### 3、播放控制指令 + +- 暂停播放: ```shell - pause 0 //暂停播放 - resume 0 //恢复播放 - seek 0 1000 //跳转到1000ms处播放 + pause 0 # 暂停播放 ``` -- 调整音量: +- 恢复播放: + + ```shell + resume 0 # 恢复播放 + ``` + +- 快速跳转播放: + + ```shell + seek 0 1000 # 跳转到 1000ms 处播放 + ``` + +### 4、调节音量指令 + +- 设置音量大小: ```shell volume 0 50 //设置音量为50% ``` -- mediatool 提供 debug 指令,方便日志调试: +### 5、调试指令 + +- 使用 mediatool 提供的调试命令,方便查看日志,排查问题: ```shell mediatool>dump 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 c0b245c6..a60016a0 100644 --- a/zh-cn/device_dev_guide/media/server/media_server.md +++ b/zh-cn/device_dev_guide/media/server/media_server.md @@ -1,12 +1,12 @@ -# **Media Server** +# Media Server -[[English](./README.md)|简体中文] +[[English](./README.md) | 简体中文] -## 一、**概述** +## 一、概述 Media Server 端提供了一套全面的功能,基于事件循环模型,处理各种媒体事件以及客户端交互,为用户提供音频和视频播放、录制音视频、焦点管理、策略执行以及会话控制等功能。 -## 二、**项目目录** +## 二、项目目录 ```tree . @@ -23,60 +23,62 @@ └── README.md ``` -## 三、**模块介绍** +## 三、模块介绍 -### 1、**Media Daemon** +### 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 工作。 ![Media Daemon架构图](../images/server/Media_Daemon_zh-cn.jpg) Media Daemon 的主要工作在一个循环中进行,大体步骤如下: - 初始化创各个模块实例,Media Focus 等。 -- 获取事件 fd,通过 **media_get_pollfds** 接口获取各个模块的事件 fd。 -- 使用poll阻塞等待事件,当监听到有事件发生,则 poll返回。 -- 处理事件,当 poll 返回,调用 media_poll_available 处理事件。 -- 执行 run once(主要是ffmpeg),确保资源的有效管理和调度。 +- 获取事件 fd,通过 `media_get_pollfds` 接口获取各个模块的事件 fd。 +- 使用 `poll` 阻塞等待事件,当监听到有事件发生,则 `poll` 返回。 +- 处理事件,当 `poll` 返回,调用 `media_poll_available` 处理事件。 +- 执行 `run once`(主要是 FFmpeg),确保资源的有效管理和调度。 -### 2、**Media Focus** +### 2、Media Focus Media Focus 模块是 Media Server 的一个重要组成部分,目的是给多个音频流混合一起播放场景提供播放策略,协助实现同一时间内只有一个音频作为主音频内容被放送,其他音频变为次要音频或暂停输出的使用场景。Media Focus 的机制为合作抢占型,不使用 Media Focus 应用依旧可以播放音乐,但无法接入到音频焦点管理体系,此时出现的非策略性声音混合可能会对用户使用体验造成影响。 -- 默认声音事件类型交互的配置文件位于 **/etc/media**。 -- 声音事件类型的输入以 media wrapper 中的不同 **MEDIA_SCENARIO_XXX** 宏为准。目前包含11种类型的声音事件。 +- 默认声音事件类型交互的配置文件位于 `/etc/media`。 +- 声音事件类型的输入以 `media wrapper` 中的不同 `MEDIA_SCENARIO_XXX` 宏为准。目前包含11种类型的声音事件。 - 支持应用发起**焦点请求**、**放弃焦点请求**、**焦点改变通知**等功能。 -### 3、**Media Garph** +### 3、Media Garph -Media Graph 的原理是将音视频相关的 **filter** 的 **inputs** , **outputs** 链接在一起,构成播放和录制的链路。主要策略如下: +Media Graph 的原理是将音视频相关的 `filter` 的 `inputs`,`outputs` 链接在一起,构成播放和录制的链路。主要策略如下: -- 加载 graph 配置文件创建和配置 Media Graph 及相应的 filter。 -- 提供一系列函数处理 filter 的命令和事件,包括**打开**、**关闭**、**播放**、**暂停**、**停止**、**设置事件回调**、**处理命令队列**等操作。 +- 加载 `graph` 配置文件创建和配置 Media Graph 及相应的 `filter`。 +- 提供一系列函数处理 `filter` 的命令和事件,包括**打开**、**关闭**、**播放**、**暂停**、**停止**、**设置事件回调**、**处理命令队列**等操作。 - 封装 Media Player 和 Media Recoder 的操作接口,调用 ffempeg 库,实现播放和录制功能。 -### 4、**Media Policy** +### 4、Media Policy -Server 端的 Media Policy 模块,提供了一系列函数来处理媒体策略的设置、获取和通知等操作,在不同的项目中向APP提供统一的接口,把用户的**路由和音量的控制信息转化成对设备驱动的控制命令**;在不同的项目中,Policy 会使用不同的配置文件来处理 Policy 接口的控制命令的映射关系。 Media Policy 的策略通过配置文件实现: +Server 端的 Media Policy 模块,提供了一系列函数来处理媒体策略的设置、获取和通知等操作,在不同的项目中向 APP 提供统一的接口,把用户的**路由和音量的控制信息转化成对设备驱动的控制命令**;在不同的项目中,Policy 会使用不同的配置文件来处理 Policy 接口的控制命令的映射关系。 Media Policy 的策略通过配置文件实现: -- 修改 ffmpeg filter graph 配置文件,通过 Policy控制 graph 的 filter,进行音量和链路控制。 -- 编写 pfw 配置文件实现插件扩展等。 +- 修改 FFmpeg `filter graph` 配置文件,通过 Policy 控制 `graph` 的 `filter`,进行音量和链路控制。 +- 编写 `pfw` 配置文件实现插件扩展等。 -### 5、**Media Server** +### 5、Media Server Media Server 模块通过监听不同类型的 socket,接收来自 Client 的连接请求,并使用回调函数处理接收的数据。支持下述功能: - 创建服务器实例、销毁服务器实例。 -- media_server_get_pollfds 接口获取用于轮询的文件描述符列表。 -- media_server_poll_available 处理文件描述符事件。 -- media_server_notify 向特定连接发送通知和管理连接数据等。 +- `media_server_get_pollfds` 接口获取用于轮询的文件描述符列表。 +- `media_server_poll_available` 处理文件描述符事件。 +- `media_server_notify` 向特定连接发送通知和管理连接数据等。 -### 6、**Media Session** +### 6、Media Session -Server 端的 media session 模块在媒体框架中扮演着关键的角色,通过设计的控制者和受控者的架构,实现了对媒体播放的高效控制和准确的状态通知。 +Server 端的 Media Session 模块在媒体框架中扮演着关键角色。通过控制者受控者的架构设计,实现了对媒体播放的高效管理和准确的状态通知。 -- **控制者**:只想控制其他流、接受状态变化通知、或者查询信息,不会对流的创建和销毁负责。 -- **受控者**: 掌握着某些流的播放状态,需要负责对这些流的创建,销毁,以及播放功能,同时需要及时地更新自己的状态信息。 -- 举例,如音响播放来自手机的音乐: - - 控制者:UI界面是控制者。 - - 受控者:与手机建立音频通道的蓝牙模块是受控者。 +- 控制者:负责管理其他流,包括接收状态变化通知或查询信息,但不负责流的创建和销毁。 +- 受控者:掌握某些流的播放状态,负责这些流的创建、销毁和播放功能,同时需要及时更新自身的状态信息。 + +以下是一个使用音响播放手机音乐的场景: + +- 控制者:UI 是控制者,负责与用户交互并发出播放命令。 +- 受控者:蓝牙模块是受控者,负责建立与手机的音频通道,管理音乐播放,并维护自身状态。 diff --git a/zh-cn/device_dev_guide/security/security_configuration.md b/zh-cn/device_dev_guide/security/security_configuration.md index 83c2de67..8ca1c148 100644 --- a/zh-cn/device_dev_guide/security/security_configuration.md +++ b/zh-cn/device_dev_guide/security/security_configuration.md @@ -26,7 +26,7 @@ ## 四、TEE 核配置 -以下内容介绍了 TEE 核的配置项,包括跨核通信、WAMR 运行时环境及 TA(Trusted Application)的相关功能配置。 +以下内容介绍了 TEE 核的配置项,包括跨核通信、WAMR 运行时环境及 TA 的相关功能配置。 | 序号 | 配置项 | 是否必选 | 默认值 | 功能描述 | 备注 | | :--- | :------------------------------------------------- | :------- | :----- | :----------------------------------------- | :----------------------- | @@ -41,10 +41,10 @@ | 9 | `CONFIG_INTERPRETERS_WAMR_AOT` | 是 | `y` | | | | 10 | `CONFIG_INTERPRETERS_WAMR_BUILD_MODULES_FOR_NUTTX` | 是 | `y` | | | | 11 | `CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN` | 是 | `y` | | | -| 12 | `CONFIG_TA_COMSST` | 否 | `y``n` | 安全存储功能 TA | 根据设备特性决定是否开启 | -| 13 | `CONFIG_TA_HELLO_WORLD` | 否 | `y``n` | Hello World 示例 TA | | -| 14 | `CONFIG_TA_PIN` | 否 | `y``n` | PIN 码功能 TA | | -| 15 | `CONFIG_TA_TRIAD` | 否 | `y``n` | 三元组功能 TA | | +| 12 | `CONFIG_TA_COMSST` | 否 | `y`
`n` | 安全存储功能 TA | 根据设备特性决定是否开启 | +| 13 | `CONFIG_TA_HELLO_WORLD` | 否 | `y`
`n` | Hello World 示例 TA | | +| 14 | `CONFIG_TA_PIN` | 否 | `y`
`n` | PIN 码功能 TA | | +| 15 | `CONFIG_TA_TRIAD` | 否 | `y`
`n` | 三元组功能 TA | | ## 五、AP 核配置 @@ -52,14 +52,17 @@ | :--- | :----------------------- | :------- | :----- | :------------------------------------- | | 1 | `CONFIG_LIB_TEEC` | 是 | `y` | AP 侧 CA 通过 Client API 与 TEE 侧交互 | | 2 | `CONFIG_DEV_OPTEE_RPMSG` | 是 | `y` | 设备驱动实现跨核通信 RPMSG | -| 3 | `CA_COMSST_API` | 否 | `y``n` | 安全存储功能 CA 的 API | -| 4 | `CA_HELLO_WORLD` | 否 | `y``n` | Hello World 示例 CA 的 API | -| 5 | `CA_PIN_API` | 否 | `y``n` | PIN 码功能 CA 的 API | -| 6 | `CA_TRIAD_API` | 否 | `y``n` | 三元组功能 CA 的 API | +| 3 | `CA_COMSST_API` | 否 | `y`
`n` | 安全存储功能 CA 的 API | +| 4 | `CA_HELLO_WORLD` | 否 | `y`
`n` | Hello World 示例 CA 的 API | +| 5 | `CA_PIN_API` | 否 | `y`
`n` | PIN 码功能 CA 的 API | +| 6 | `CA_TRIAD_API` | 否 | `y`
`n` | 三元组功能 CA 的 API | -## 六、qemu/sim 模拟平台配置 +## 六、QEMU/SIM 模拟平台配置 -在 `qemu/sim` 模拟平台上,不需要独立的 TEE 核来提供安全环境。可以将 TEE 核功能模拟为一个独立的 AP 服务进程。因此,需要完成以下调整: 1. 通信方式调整:将跨核通信方式从 PRMSG 修改为 LOCAL SOCKET 通信。 2. 配置迁移:将 TEE 核相关的配置移至 AP 核。 +在 QEMU (Quick Emulator) / SIM 模拟平台上,无需使用独立的 TEE 核来提供安全环境。可以通过模拟运行,将 TEE 核的功能整合为一个独立的 AP 服务进程。为实现此目标,需要完成以下调整: + +1. 通信方式调整:将跨核通信方式从 PRMSG 修改为 LOCAL SOCKET 通信,以简化通信逻辑并适配模拟平台。 +2. 配置迁移:将所有 TEE 核的相关配置迁移至 AP 核,集中实现系统的功能逻辑。 | 序号 | 配置项 | 是否必选 | 默认值 | 功能描述 | | :--- | :------------------------------------------------- | :------- | :----- | :----------------------------------------- | @@ -71,6 +74,4 @@ | 6 | `CONFIG_INTERPRETERS_WAMR` | 是 | `y` | 配置 WAMR(WebAssembly Micro Runtime)环境 | | 7 | `CONFIG_INTERPRETERS_WAMR_AOT` | 是 | `y` | | | 8 | `CONFIG_INTERPRETERS_WAMR_BUILD_MODULES_FOR_NUTTX` | 是 | `y` | | -| 9 | `CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN` | 是 | `y` | | -| 10 | `CONFIG_INTERPRETERS_WAMR_BUILD_MODULES_FOR_NUTTX` | 是 | `y` | | -| 11 | `CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN` | 是 | `y` | | \ No newline at end of file +| 9 | `CONFIG_INTERPRETERS_WAMR_LIBC_BUILTIN` | 是 | `y` | | \ No newline at end of file diff --git a/zh-cn/overview/glossary.md b/zh-cn/overview/glossary.md index c257433b..7cd7d202 100644 --- a/zh-cn/overview/glossary.md +++ b/zh-cn/overview/glossary.md @@ -8,156 +8,160 @@ - Build artifacts - 代码编译出来的文件。 + 代码编译出来的文件。 - Bssid(Basic Service Set Identifier) - 通常指无线接入点(AP,Access Point)的MAC地址。 + 通常指无线接入点(AP,Access Point)的MAC地址。 ## C - CA(Client Application) - 客户端应用。 + 客户端应用。 - CPC(Cross Processor Communication) - 跨处理器通讯。 + 跨处理器通讯。 ## F - FB (Frame Buffer) - 帧缓冲区。 + 帧缓冲区。 - FS(File System) - 文件系统。 + 文件系统。 ## G - GIC(Generic Interrupt Controller) - 通用中断控制器,主要在 ARM-A 系列和 ARM-R 系列处理器中使用。 + 通用中断控制器,主要在 ARM-A 系列和 ARM-R 系列处理器中使用。 ## H - HCI(Host Controller Interface) - 主机控制接口。 + 主机控制接口。 ## I - IRQ(Interrupt request) - 中断请求。 + 中断请求。 - IPC(Inter-Process Communication) - 进程间通信。 + 进程间通信。 - ISR(Interrupt Service Routine) + 中断服务例程。 + ## L - LCDC(LCD Control) - LCD 控制信号。 + LCD 控制信号。 ## M - MMIO(Memory Mapped Input Output) - 内存映射输入输出。 + 内存映射输入输出。 - MTD(Memory Technology Device) - 内存技术设备。 + 内存技术设备。 - MCU(Microcontroller Unit) + 微控制器/单片机。 + ## N - NVIC(Nested Virtual Interrupt Controller) - 嵌套虚拟中断控制器,用于管理中断和异常,主要在 ARM-M 系列处理器中使用。 + 嵌套虚拟中断控制器,用于管理中断和异常,主要在 ARM-M 系列处理器中使用。 ## O - OpenAMP(Open Asymmetric Multi-Processing) - 开放的异构多核处理库,实现了 Remoteproc 和基于 VirtIO 的 RPMsg。 + 开放的异构多核处理库,实现了 Remoteproc 和基于 VirtIO 的 RPMsg。 - OPTEE(Open Portable Trusted Execution Environment) - 开放可移植可信执行环境。 + 开放可移植可信执行环境。 ## P - PCI(Peripheral Component Interconnect) - 一种外设总线互联协议,广泛应用于各类平台中。 + 一种外设总线互联协议,广泛应用于各类平台中。 - PLIC(Platform-Level Interrupt Controller) - 平台级中断控制器,与 GIC 类似,主要用于 RISC-V 平台的中断管理。 + 平台级中断控制器,与 GIC 类似,主要用于 RISC-V 平台的中断管理。 - PMU (Performance Monitor Unit) - 性能监控单元。 + 性能监控单元。 ## R - RAM(Random Access Memory) - 随机存取存储器。 + 随机存取存储器。 - RPMsg(Remote Processor Message) - 一种用于和远端处理器进行通信的消息机制。 + 一种用于和远端处理器进行通信的消息机制。 - RTT(Real Time Transfer) - Segger 提供的基于内存实时传输方案。 + Segger 提供的基于内存实时传输方案。 ## S - Screen Tearing - 画面撕裂。 + 画面撕裂。 - Syslog - 系统日志。 + 系统日志。 - SysView (SystemView) - SystemView 是 Segger 提供的一种实时记录和可视化工具,旨在分析和剖析嵌入式系统的行为。 + SystemView 是 Segger 提供的一种实时记录和可视化工具,旨在分析和剖析嵌入式系统的行为。 - SMP(Symmetric Multiprocessing) - 对称多处理。 + 对称多处理。 ## T - TEE(Trusted Execution Environment) - 可信执行环境。 + 可信执行环境。 - TA(Trusted Application) - 可信应用。 + 可信应用。 - TE(Tearing Effect) - 是指在显示器上显示快速移动的图像时,会出现屏幕撕裂的现象。 + 是指在显示器上显示快速移动的图像时,会出现屏幕撕裂的现象。 ## V - VFS(Virtual File System) - 虚拟文件系统。 + 虚拟文件系统。 - VirtIO(Virtual I/O) - 虚拟化 I/O。 + 虚拟化 I/O。