diff --git a/README.md b/README.md index c88d19baaeb85d53c9c9bf76a6049122bd8d2abf..2d5019a5b2d9daa6c8c8adba38efec8c93a65462 100644 --- a/README.md +++ b/README.md @@ -4,38 +4,29 @@ **如需Phytium全系CPU的软件适配支持,请联系 ``linan1284@phytium.com.cn``** -[飞腾腾云S系列高性能服务器CPU](https://www.phytium.com.cn/homepage/production/list/0) +## 项目概要 -[飞腾腾锐D系列高效能桌面CPU](https://www.phytium.com.cn/homepage/production/list/1) - -[飞腾腾珑E系列高端嵌入式CPU](https://www.phytium.com.cn/homepage/production/list/2) - -## 1. 项目概要 - -### 1.1 仓库介绍 +### 仓库介绍 本项目代码仓库整体共分为两个分支: -master 分支:开发分支,用于保存最新的协作开发代码以及bug修复后的代码。其只要求保障新功能基本正确并且能够满足基本的使用需求,并没有经过系统性和复杂条件下的测试。 -release 分支:发布分支,包含核心启动代码、芯片外设驱动、用户使用例程和构建的脚本工具。用于保存经过系统性测试的代码并对外发布版本,默认下载此分支的代码。 -### 1.2 基本介绍 +- **master 分支**:开发分支,用于保存最新的协作开发代码以及bug修复后的代码。其只要求保障新功能基本正确并且能够满足基本使用需求,并没有经过系统性和复杂条件下的测试。 +- **release 分支**:发布分支,包含核心启动代码、芯片外设驱动、用户使用例程和构建的脚本工具。用于保存经过系统性测试的代码并对外发布版本,默认下载此分支的代码。 -本项目发布了 Phytium 系列 CPU 的 嵌入式软件开发工具包,包括板级支持包、第三方开源中间件、交叉编译构建工具、及其 Baremetal 参考例程,在支持多平台裸机应用开发的基础上,能够为多种RTOS提供外设驱动和配置构建工具。 +### 基本介绍 -![LetterShell](./doc/fig/letter_shell.png) +本项目发布了 Phytium 系列 CPU 的嵌入式软件开发工具包,包括板级支持包、第三方开源中间件、交叉编译构建工具及其 Baremetal 参考例程,在支持多平台裸机应用开发的基础上,能够为多种 RTOS 提供外设驱动和配置构建工具。 -### 1.3 系统架构 +### 系统架构 本项目的整体设计如下所示,自下而上可以分为平台层、组件层、框架层和应用层。 -![Framework](./doc/design/system_2.png) +- **平台层(Platform)**:在整个软件框架中位于最底层,提供了基本数据结构类型定义、驱动参数标定、硬件平台耦合的寄存器自检、板级启动、CPU 内存虚拟等功能。 +- **组件层(Component)**:在整个软件框架中位于中间位置,向下依赖于平台层提供的参数配置与内存方案,向上提供应用开发与模块测试的支持。 +- **接口构建层(Framework)**:为开发主机提供了开发环境,支持 SDK 安装、应用工程配置和二进制文件构建及烧录等工具。 +- **应用层(Application)**:提供了应用开发模板和例程,帮助开发者迅速熟悉 SDK 的使用,进行不同类型的应用程序开发。 -- 平台层(Platform)在整个软件框架中位于最底层,提供了基本数据结构类型定义、驱动参数标定、硬件平台耦合的寄存器自检、板级启动、CPU 内存虚拟等功能 -- 组件层(Component)在整个软件框架中位于中间位置,向下依赖于平台层提供的参数配置与内存方案,向上提供应用开发与模块测试的支持 -- 接口构建层(Framework)为开发主机提供了开发环境,支持SDK安装,应用工程配置和二进制文件构建及烧录等工具。 -- 应用层(Application)提供了应用开发模板和例程,帮助开发者迅速熟悉SDK的使用,进行不同类型的应用程序开发 - -### 1.4 源代码结构 +### 源代码结构 ``` . @@ -43,324 +34,203 @@ release 分支:发布分支,包含核心启动代码、芯片外设驱动、 ├── LICENSE --> 版权声明 ├── README.md --> 使用说明 ├── arch -│   └── armv8 --> 架构相关 +│ └── armv8 --> 架构相关 ├── board -│   ├── e2000d_demo -│   ├── e2000q_demo -│   ├── d2000_test -│   ├── ft2004_dsk -│   ├── phytiumpi_firefly -│   ├── pd2308_demo -│   ├── pd2408_test_a -│   ├── pd2408_test_b -│   └── user --> 板级IO复用,初始化和用户定义相关 +│ ├── e2000d_demo +│ ├── e2000q_demo +│ ├── d2000_test +│ ├── ft2004_dsk +│ ├── phytiumpi_firefly +│ ├── pd2308_demo +│ ├── pd2408_test_a +│ ├── pd2408_test_b +│ └── user --> 板级IO复用、初始化和用户定义相关 ├── common -│   ├── fprintf.c -│   ├── fprintf.h -│   ├── fsleep.c -│   └── fsleep.h --> 通用方法 +│ ├── fprintf.c +│ ├── fprintf.h +│ ├── fsleep.c +│ └── fsleep.h --> 通用方法 ├── doc -│   ├── ChangeLog.md --> 修改记录 -│   └── reference --> 接口说明文档 +│ ├── ChangeLog.md --> 修改记录 +│ └── reference --> 接口说明文档 ├── drivers -│   ├── can -│   ├── dma -│   ├── ... -│   └── watchdog --> 外设驱动 +│ ├── can +│ ├── dma +│ ├── ... +│ └── watchdog --> 外设驱动 ├── example --> 裸机例程 ├── lib -│   ├── Kconfiglib -│   └── libc --> 依赖库 +│ ├── Kconfiglib +│ └── libc --> 依赖库 ├── scripts ├── soc -│   ├── pd1904 -| ├── pe220x -│   ├── pd2308 -│   ├── pd2408 -│   ├── ps2316 -│   └── pd2008 --> soc平台相关 +│ ├── pd1904 +│ ├── pe220x +│ ├── pd2308 +│ ├── pd2408 +│ ├── ps2316 +│ └── pd2008 --> SOC平台相关 ├── third-party -│   └── letter-shell-3.1 --> 第三方库 +│ └── letter-shell-3.1 --> 第三方库 ├── tools ├── install.py --> 安装脚本 -└── requirements.txt --> python环境依赖组件 - +└── requirements.txt --> Python环境依赖组件 ``` ---- - -## 2. 快速入门 - -- 目前支持在Windows和Linux上使用SDK,支持在x86_64和ARM AARCH64设备上完成交叉编译 - -![windows](./doc/fig/windows.png)![linux](./doc/fig/linux.png)![输入图片说明](./doc/fig/kylin.png)![phystudio](./doc/reference/ide/figs/phystudio_brand.png) - -- 参考[Windows10 WSL快速入门](./doc/reference/usr/install_windos_wsl.md),[Windows10 快速入门](./doc/reference/usr/install_windows.md),[Linux aarch64 快速入门](./doc/reference/usr/install_linux_aarch64.md), [Linux x86_64 快速入门](./doc/reference/usr/install_linux_x86_64.md), [PhyStudio用户手册快速入门](./doc/reference/ide/ide.md) -- 参考[使用说明](./doc/reference/usr/usage.md), 新建Phytium Standalone SDK的应用工程,与开发板建立连接 -- 参考[例程](./example),开始使用SDK -- 参考[板卡](./doc/reference/usr/how_to_add_board.md),添加自定义板卡 -- 参考[体系架构](./doc/reference/usr/how_to_set_architecture.md),配置工程体系架构 -- 参考[编译选项](./doc/reference/usr/how_to_build_project.md),配置工程编译选项 -- 参考[飞腾派](./doc/reference/usr/use_in_phytium_pi.md), 在飞腾派中使用SDK进行开发,参考[飞腾派镜像制作](./doc/reference/usr/partition_in_phytium_pi.md),制作用于裸机开发的飞腾派镜像 - ![](./doc/reference/ide/figs/phystudio_main.png) - ---- - -## 3. 硬件参考 - -### 3.1 PD1904 - -PD1904 是一款面向桌面应用的高性能通用 4 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。主要技术特征如下: - -- 兼容 ARM v8 64 位指令系统,兼容 32 位指令 -- 支持单精度、双精度浮点运算指令 -- 支持 ASIMD 处理指令 -- 集成 2 个 DDR4 通道,可对 DDR 存储数据进行实时加密 -- 集成 34 Lane PCIE3.0 接口:2 个 X16(每个可拆分成 2 个 X8),2 个 X1 -- 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应 -- 集成 1 个 SD 卡控制器,兼容 SD 2.0 规范 -- 集成 加密计算单元 -- 集成 4 个 UART,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通 用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO) -- 集成温度传感器 - -### 3.2 PD2008 - -PD2008 是一款面向桌面应用的高性能通用 8 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。存储系统包含 Cache 子系统和 DDR,I/O 系统包含 PCIe、高速 IO 子系统、千兆位以太网 GMAC 和低速 IO 子系统,主要技术特征如下, - -- 兼容 ARM v8 64 位指令系统,兼容 32 位指令 -- 支持单精度、双精度浮点运算指令 -- 支持 ASIMD 处理指令 -- 集成 2 个 DDR 通道,支持 DDR4 和 LPDDR4,可对 DDR 存储数据进行实时加密 -- 集成 34 Lane PCIE3.0 接口:2 个 X16(每个可拆分成 2 个 X8),2 个 X1 -- 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应 -- 集成 1 个 SD 卡控制器,兼容 SD 2.0 规范 -- 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec -- 集成 SM2、SM3、SM4、SM9 模块 -- 集成 4 个 UART,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO) -- 集成 2 个温度传感器 - -### 3.3 PE2204 - -- PE2204 集成2个FTC664核和2个FTC310核。主要技术特征如下: -- 兼容ARM v8 64 位指令系统,兼容32 位指令 -- 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA -- 支持单精度、双精度浮点运算指令 -- 两个 FTC664 核各包含 1MB 私有 L2 Cache,由两个 FTC310 核组成的Cluster 内含 256KB 共享的 L2 Cache -- 集成1个DDR4 通道 -- 集成6Lane PCIE3.0 接口(X4+2*X1 、X2+4*X2、6*X1) -- 集成4个1000M以太网控制器,支持2路SGMII接口和2路SGMII/RGMII接口 -- 集成3路USB2.0(OTG)和2路USB3.0(兼容 2.0) -- 集成2路SATA3.0模块 -- 2路 DisplayPort1.4 接口 -- 集成常用低速接口:WDT、QSPI、PWM、Nand、SD/SDIO/eMMC 、SPI_M、UART、I2C、I2S、MIO、CAN-FD、GPIO、LocalBus、Timer - -### 3.4 PE2202 - -- PE2202 集成 2 个 FTC310 核。主要技术特征如下: -- 兼容ARM v8 64 位指令系统,兼容32 位指令 -- 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA -- 支持单精度、双精度浮点运算指令 -- L2 Cache 有256KB -- 集成1个DDR4 通道 -- 集成4 Lane PCIE3.0 接口(4X1) -- 集成4个1000M以太网控制器,支持 2 路 SGMII 接口和 2 路 SGMII/RGMII 接口 -- 集成3路USB2.0(OTG)和2路USB3.0(兼容 2.0) -- 集成2路SATA3.0模块 -- 2路 DisplayPort1.4 接口 -- 集成常用低速接口:WDT,QSPI,PWM,Nand,SD/SDIO/eMMC ,SPI_M,UART,I2C,MIO,CAN-FD,GPIO,LocalBus,Timer - -### 3.5 PE2201 - -- PE2201 集成 1 个 FTC310 核,单核结构。主要技术特征如下: -- 兼容ARM v8 64 位指令系统,兼容32 位指令 -- 集成 1 路 16 通道 General DMA 和 1 路 8 通道 Device DMA -- 支持单精度、双精度浮点运算指令 -- L2 Cache 有256KB -- 集成1个DDR4 通道 -- 集成2 Lane PCIE3.0 接口(2X1) -- 集成3个1000M以太网控制器,支持1路SGMII接口和2路RGMII/RMII接口 -- 集成1路USB2.0(Device)和2路USB2.0(OTG) -- 2路 DisplayPort1.4 接口 -- 集成常用低速接口:WDT、DMAC、PWM、QSPI、SD/SDIO/eMMC、SPI Master、UART、I2C、MIO、I3C、PMBUS、GPIO、SGPIO、One-Wire、Timer、One-Wire - -### 3.7 PD2308 - -### 3.8 PS2316 - -### 3.9 PD2408 - -PD2408 是一款国产自主的处理器芯片,主要适用于笔记本电脑,也可用于独显,低成本台式机。存储系统包含 Cache 子系统和 DDR,I/O 系统包含 PCIe、高速 IO 子系统、千兆位以太网 GMAC 和低速 IO 子系统,主要技术特征如下, - -- 兼容 ARM v8 64 位指令系统,兼容 32 位指令 -- 支持半精度、单精度、双精度浮点运算指令 -- 支持 NEON处理指令 -- 支持 DDR4 和 LPDDR4,支持 DDR5 和 LPDDR5 -- 集成 12 Lane PCIE3.0 接口 -- 集成 1 路 以太网口 -- 集成 NPU -- 集成 1 个 SD 卡控制器,兼容 SD 3.0 / EMMC 5.1规范 -- 集成 3 路USB3.2 gen2, 集成 2 路USB 3.2 gen1, 集成 2 路USB2.0 -- 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec -- 集成 SM2、SM3、SM4 模块 -- 集成 3 个 UART,32 个 GPIO,6 个 I2C,1 个 QSPI,2 个通用 SPI,2 个 WDT,2 个PWM,2 个 sata3.0 -- 集成 2 个温度传感器 -- 集成TRNG真随机数生成器、HASH哈希算法加速器 - -## 4 例程支持情况 - -| ai | Platform Supported | Platform Developing | Component | -| --------- | ----------------------------------------------------- | ------------------- | -------------- | -| TINYMAIX | PD1904、PE220X、PD2008、PD2308、PS2316 | | tinymaix_demo | - -| Peripherals | Platform Supported | Platform Developing | Component | -| ------------------------------- | ----------------------------------------------------- | ------------------- | -------------------- | -| Generic Interrupt Controller v3 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | gicv3 | -| Generic Timer | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | generic_timer | -| UART (PrimeCell PL011) | PD1904、PE220X、PD2008、PD2308、PS2316 | | serial | -| ADC | PE220X | | adc | -| CAN | PD1904、PE220X、PD2008、PD2308 | | can/can | -| DDMA | PE220X、 | | seria/ddma | -| GDMA | PE220X、PD2308、PD2408 | | dma/gdma | -| IOPAD | PE220X、、PD2408 | | iopad | -| IPC | PE220X、 | | ipc/semaphore | -| I2C | PE220X、PD2308、PD2408 | PD1904/PD2008 | i2c | -| I2S | PE220X、PD2308、PD2408 | | i2s | -| PIN | PE220X、PD2008、PD2308 | PD1904/PD2008 | pin | -| QSPI (Nor Flash) | PD1904、PE220X 、PD2008、PD2308、PD2408 | | qspi | -| SPI | PD1904、PE220X 、PD2008、PD2308、PD2408 | | spi | -| TIMER & TACHO | PE220X、PD2308、PD2408 | | timer&tacho | -| MIO | PE220X、 | | i2c & serial | -| SDMMC | PD1904、PD2008 | | sd | -| SDIO | PE220X、PD2308、PD2408 | | sd | -| PCIE RC | PE220X、PD1904、PD2008、PD2308、PS2316 | | pcie rc | -| SATA | PE220X、PD2308、PD2408 | | sata/sata_controller | -| SATA PCIE | PD1904、PE220X、PD2008、PD2308、PD2408 | | sata/sata_pcie | -| PWM | PE220X、PD2308、PD2408 | | pwm | -| WDT | PD1904、PD2008、PE220X、PD2308、PS2316、PD2408 | | wdt | -| USB(Device) | PE220X、PD2408 | | usb/usb_device | - -| Media | Platform Supported | Platform Developing | Component | -| ----- | ---------------------- | ------------------- | -------------- | -| DP | PE220X | | media_test | -| LVGL | PE220X| | lvgl_demo_test | - -| SEC | Platform Supported | Platform Developing | Component | -| ----- | ---------------------- | ------------------- | -------------- | -| RND | PE220X | PD2408 | trng_test | -| SHA | PE220X| | sha_test | - -| Network | Platform Supported | Platform Developing | Component | -| ------- | ----------------------------------------------------- | ------------------- | ------------ | -| LWIP | PD1904、PD2008、PE220X| | lwip_startup | -| RAW | PD1904、PE220X、PD2008 | | raw_api | - -| Storage | Platform Supported | Platform Developing | Component | -| ----------- | ----------------------------------------------------- | ------------------- | ---------------- | -| FATFS | PD1904、PE220X、PD2008、PD2308、PD2408 | | fatfs | -| MEMORY_POOL | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | memory_pool_test | -| SFUD | PD1904、PE220X、PD2308、PD2408 | PD2008 | sfud | -| SPIFFS | PD1904、PE220X、PD2308 、PD2408 | PD2008 | spiffs | - -| System | Platform Supported | Platform Developing | Component | -| ---------------- | ---------------------------------------------- | ------------------- | ----------------------------------------------- | -| TEMPLATE | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | template_test | -| AMP_TOOLS | PE220X、PD2308、PD2008、PS2316、PD2408 | | amp/amp_tools_example | -| LIBMETAL | PE220X、PD2008、PD1904、PD2308、PS2316、PD2408 | | amp/libmetal_test | -| AMP | PE220X、PD1904、PD2008、PD2308、PS2316、PD2408 | | amp/openamp、amp/openamp_echo_remoteproc_load | -| PSCI | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | arch/armv8/psci、arch/armv8/mmu、arch/armv8/pmu | -| SCMI | PE220X、PD2308、PD2408 | | scmi_mhu | -| ATOMIC | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | atomic | -| C++ | PD1904、PE220X、PD2008、PD2308、PS2316 | | cxx/cryptopp&get-start | -| SHELL | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | letter_shell_test | -| NESTED INTERRUPT | PD1904、PE220X、PD2008、PD2308、PS2316 | | nested_interrupt | -| CMSIS | PD1904、PE220X、PD2008、PD2308、PS2316 | | cmsis | -| DELAY | PE220X、 | | delay | -| NEWLIB | PD1904、PE220X、PD2008、PD2308、PS2316 | | newlib | -| UNWIND | PD1904、PE220X、PD2008、PD2308、PS2316 | | unwind | -| FJTAG | PE220X | | jtag_debugging | -| ACPI | PD2308 | | acpi_devices/acpi_utilities | -| FDT | PD2308 | | fdt_devices | -| GMSSL | PE220X、PD2408 | | gmssl | -| PCI device | Platform Supported | Platform Developing | Component | -| ---------- | ---------------------------------------------- | ------------------- | ---------------------------- | -| E1000 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | example\network\lwip_startup | -| NVME | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | | example\peripherals\pcie | - ---- - -## 5. API指南 - -### 5.1 DRIVERS - -#### 5.1.1 [FI2C](./doc/reference/driver/fi2c.md) - -#### 5.1.2 [FPL011](./doc/reference/driver/fpl011.md) - -#### 5.1.3 [FRTC](./doc/reference/driver/frtc.md) - -#### 5.1.4 [FWDT](./doc/reference/driver/fwdt.md) - -#### 5.1.5 [FSPIM](./doc/reference/driver/fspim.md) - -#### 5.1.6 [FQSPI](./doc/reference/driver/fqspi.md) - -#### 5.1.7 [FSDMMC](./doc/reference/driver/fsdmmc.md) - -#### 5.1.8 [FSATA](./doc/reference/driver/fsata.md) - -#### 5.1.9 [FPCIE ECAM](./doc/reference/driver/fpcie_ecam.md) - -#### 5.1.10 [FUSB](./doc/reference/driver/fusb.md) - -#### 5.1.11 [FGPIO](./doc/reference/driver/fgpio.md) - -#### 5.1.12 [FGIC](./doc/reference/driver/fgic.md) - -#### 5.1.13 [FDDMA](./doc/reference/driver/fddma.md) - -#### 5.1.14 [FCAN](./doc/reference/driver/fcan.md) - -#### 5.1.15 [FADC](./doc/reference/driver/fadc.md) - -#### 5.1.16 [FPWM](./doc/reference/driver/fpwm.md) - -#### 5.1.17 [FSDIF](./doc/reference/driver/fsdif.md) - -#### 5.1.18 [FMEDIA](doc/reference/driver/fmedia.md) - -#### 5.1.19 [FSEC](doc/reference/driver/fsec.md) - -### 5.2 MEMORY - -#### 5.2.1 [FMEMORY_POOL](./doc/reference/sdk/fmemory_pool.md) - -### 5.3 CPU - -#### 5.3.1 [MMU](./doc/reference/cpu/mmu.md) - -#### 5.3.2 [FPINCTRL](./doc/reference/sdk/fpinctrl.md) - -#### 5.3.2 [FINTERRUPT](./doc/reference/cpu/finterrupt.md) - -#### 5.3.3 [FPSCI](./doc/reference/cpu/psci.md) - ---- - -## 6. 贡献方法 - -请联系飞腾嵌入式软件部 - -huanghe@phytium.com.cn - -zhugengyu@phytium.com.cn - -wangxiaodong1030@phytium.com.cn - -liushengming1118@phytium.com.cn - ---- - -## 7. 相关资源 +## 快速入门 + +- 目前支持在 Windows 和 Linux 上使用 SDK,支持在 x86_64 和 ARM AARCH64 设备上完成交叉编译。 + +- 参考以下文档快速开始: + - [Windows10 WSL 快速入门](./doc/reference/usr/install_windos_wsl.md) + - [Windows10 快速入门](./doc/reference/usr/install_windows.md) + - [Linux aarch64 快速入门](./doc/reference/usr/install_linux_aarch64.md) + - [Linux x86_64 快速入门](./doc/reference/usr/install_linux_x86_64.md) + - [PhyStudio 用户手册快速入门](./doc/reference/ide/ide.md) + +- 参考[使用说明](./doc/reference/usr/usage.md),新建 Phytium Standalone SDK 的应用工程,与开发板建立连接。 +- 参考[例程](./example),开始使用 SDK。 +- 参考[板卡](./doc/reference/usr/how_to_add_board.md),添加自定义板卡。 +- 参考[体系架构](./doc/reference/usr/how_to_set_architecture.md),配置工程体系架构。 +- 参考[编译选项](./doc/reference/usr/how_to_build_project.md),配置工程编译选项。 +- 参考[飞腾派](./doc/reference/usr/use_in_phytium_pi.md),在飞腾派中使用 SDK 进行开发,参考[飞腾派镜像制作](./doc/reference/usr/partition_in_phytium_pi.md),制作用于裸机开发的飞腾派镜像。 + +## 硬件参考 + +### PD1904 + +PD1904 是一款面向桌面应用的高性能通用 4 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。 + +### PD2008 + +PD2008 是一款面向桌面应用的高性能通用 8 核处理器。每 2 个核构成 1 个处理器核簇(Cluster),并共享 L2 Cache。 + +### PE2204 + +PE2204 集成 2 个 FTC664 核和 2 个 FTC310 核。 + +### PE2202 + +PE2202 集成 2 个 FTC310 核。 + +### PE2201 + +PE2201 集成 1 个 FTC310 核,单核结构。 + +### PD2308 + +PD2308 是一款适用于笔记本电脑的国产自主处理器芯片,也可用于独显和低成本台式机。 + +### PS2316 + +PS2316 是一款国产自主的处理器芯片,主要适用于高性能计算和服务器领域。 + +### PD2408 + +PD2408 是一款国产自主的处理器芯片,主要适用于笔记本电脑,也可用于独显、低成本台式机。 + +## 例程支持情况 + +| 功能模块 | 支持平台 | 组件 | +|---------|----------|------| +| TINYMAIX | PD1904、PE220X、PD2008、PD2308、PS2316 | tinymaix_demo | +| 通用中断控制器 v3 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | gicv3 | +| 通用定时器 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | generic_timer | +| UART (PrimeCell PL011) | PD1904、PE220X、PD2008、PD2308、PS2316 | serial | +| ADC | PE220X | adc | +| CAN | PD1904、PE220X、PD2008、PD2308 | can/can | +| DDMA | PE220X | serial/ddma | +| GDMA | PE220X、PD2308、PD2408 | dma/gdma | +| IOPAD | PE220X、PD2408 | iopad | +| IPC | PE220X | ipc/semaphore | +| I2C | PE220X、PD2308、PD2408 | i2c | +| I2S | PE220X、PD2308、PD2408 | i2s | +| PIN | PE220X、PD2008、PD2308 | pin | +| QSPI (Nor Flash) | PD1904、PE220X、PD2008、PD2308、PD2408 | qspi | +| SPI | PD1904、PE220X、PD2008、PD2308、PD2408 | spi | +| 定时器与计数器 | PE220X、PD2308、PD2408 | timer&tacho | +| MIO | PE220X、PD2008 | i2c & serial | +| SDMMC | PD1904、PD2008 | sd | +| SATA | PE220X、PD2308、PD2408 | sata/sata_controller | +| SATA over PCIe | PD1904、PE220X、PD2008、PD2308、PD2408 | sata/sata_pcie | +| PWM | PE220X、PD2308、PD2408 | pwm | +| 看门狗 | PD1904、PD2008、PE220X、PD2308、PS2316、PD2408 | wdt | +| USB (Device) | PE220X、PD2408 | usb/usb_device | +| 媒体显示 | PE220X | media_test | +| LVGL 图形库 | PE220X | lvgl_demo_test | +| 随机数生成器 | PE220X | trng_test | +| 哈希算法 | PE220X | sha_test | +| LWIP 网络协议栈 | PD1904、PD2008、PE220X | lwip_startup | +| RAW 网络通信 | PD1904、PE220X、PD2008 | raw_api | +| FAT 文件系统 | PD1904、PE220X、PD2008、PD2308、PD2408 | fatfs | +| 内存池 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | memory_pool_test | +| SFUD 通用 SPI 框架 | PD1904、PE220X、PD2308、PD2408 | sfud | +| SPIFFS 文件系统 | PD1904、PE220X、PD2308、PD2408 | spiffs | +| 模板工程 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | template_test | +| AMP 工具 | PE220X、PD2308、PD2008、PS2316、PD2408 | amp/amp_tools_example | +| Libmetal 测试 | PE220X、PD2008、PD1904、PD2308、PS2316、PD2408 | amp/libmetal_test | +| OpenAMP 示例 | PE220X、PD1904、PD2008、PD2308、PS2316、PD2408 | amp/openamp、amp/openamp_echo_remoteproc_load | +| PSCI 电源管理 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | arch/armv8/psci、arch/armv8/mmu、arch/armv8/pmu | +| SCMI 通信协议 | PE220X、PD2308、PD2408 | scmi_mhu | +| 原子操作 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | atomic | +| C++ 支持 | PD1904、PE220X、PD2008、PD2308、PS2316 | cxx/cryptopp&get-start | +| Shell 命令行 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | letter_shell_test | +| 嵌套中断 | PD1904、PE220X、PD2008、PD2308、PS2316 | nested_interrupt | +| CMSIS 支持 | PD1904、PE220X、PD2008、PD2308、PS2316 | cmsis | +| 延时函数 | PE220X | delay | +| C 标准库支持 | PD1904、PE220X、PD2008、PD2308、PS2316 | newlib | +| 异常回溯 | PD1904、PE220X、PD2008、PD2308、PS2316 | unwind | +| JTAG 调试 | PE220X | jtag_debugging | +| ACPI 支持 | PD2308 | acpi_devices/acpi_utilities | +| FDT 设备树支持 | PD2308 | fdt_devices | +| 国密算法 | PE220X、PD2408 | gmssl | +| PCIe 设备支持 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | example/peripherals/pcie | +| NVMe 存储设备 | PD1904、PE220X、PD2008、PD2308、PS2316、PD2408 | example/peripherals/pcie | + +## API 指南 + +### 驱动接口 + +- **ADC**:[FADC](./doc/reference/driver/fadc.md) +- **UART**:[FPL011](./doc/reference/driver/fpl011.md) +- **RTC**:[FRTC](./doc/reference/driver/frtc.md) +- **看门狗**:[FWDT](./doc/reference/driver/fwdt.md) +- **SPI**:[FSPIM](./doc/reference/driver/fspim.md) +- **QSPI**:[FQSPI](./doc/reference/driver/fqspi.md) +- **SD/MMC**:[FSDMMC](./doc/reference/driver/fsdmmc.md) +- **SATA**:[FSATA](./doc/reference/driver/fsata.md) +- **PCIe ECAM**:[FPCIE ECAM](./doc/reference/driver/fpcie_ecam.md) +- **USB**:[FUSB](./doc/reference/driver/fusb.md) +- **GPIO**:[FGPIO](./doc/reference/driver/fgpio.md) +- **GIC 中断控制器**:[FGIC](./doc/reference/driver/fgic.md) +- **DDMA**:[FDDMA](./doc/reference/driver/fddma.md) +- **CAN**:[FCAN](./doc/reference/driver/fcan.md) +- **ADC**:[FADC](./doc/reference/driver/fadc.md) +- **PWM**:[FPWM](./doc/reference/driver/fpwm.md) +- **SDIF**:[FSDIF](./doc/reference/driver/fsdif.md) +- **媒体显示**:[FMEDIA](doc/reference/driver/fmedia.md) +- **安全模块**:[FSEC](doc/reference/driver/fsec.md) + +### 内存管理 + +- **内存池**:[FMEMORY_POOL](./doc/reference/sdk/fmemory_pool.md) + +### CPU 架构相关 + +- **MMU**:[MMU](./doc/reference/cpu/mmu.md) +- **中断控制器**:[FINTERRUPT](./doc/reference/cpu/finterrupt.md) +- **电源管理接口**:[FPSCI](./doc/reference/cpu/psci.md) + +## 贡献方法 + +请联系飞腾嵌入式软件部: + +- **huanghe@phytium.com.cn** +- **zhugengyu@phytium.com.cn** +- **wangxiaodong1030@phytium.com.cn** +- **liushengming1118@phytium.com.cn** + +## 相关资源 - ARM Architecture Reference Manual - ARM Cortex-A Series Programmer’s Guide @@ -368,7 +238,7 @@ liushengming1118@phytium.com.cn - ARM System Developers Guide Designing and Optimizing System Software - FT-2000/4 软件编程手册-V1.4 - D2000 软件编程手册-V1.0 -- 飞腾腾珑E2000系列处理器软件编程手册V0.8.1 +- 飞腾腾珑 E2000 系列处理器软件编程手册 V0.8.1 - 飞腾派软件开发手册-V1.0 - Bare-metal programming for ARM —— A hands-on guide - Using the GNU Compiler Collection @@ -376,8 +246,6 @@ liushengming1118@phytium.com.cn - Using as, The GNU Assembler - Armv8-A memory model guide ---- - -## 8. 许可协议 +## 许可协议 [Phytium Public License](./LICENSE) \ No newline at end of file