You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zhugengyu 072efd40c1 update platform drivers support information 3 years ago
.gitee format 3 years ago
.vscode format 3 years ago
arch modify examples 3 years ago
baremetal/example test qspi and i2c example 3 years ago
board include qspi, timer tacho and i2c drivers and examples 3 years ago
common modify examples 3 years ago
configs include qspi, timer tacho and i2c drivers and examples 3 years ago
doc Release v0.0.7 3 years ago
drivers test qspi and i2c example 3 years ago
lib format 3 years ago
make include qspi, timer tacho and i2c drivers and examples 3 years ago
scripts Release v0.0.7 3 years ago
third-party !14 v0.0.6 提交 3 years ago
tools include qspi, timer tacho and i2c drivers and examples 3 years ago
.gitattributes !14 v0.0.6 提交 3 years ago
.gitignore !4 合入v0.0.3 3 years ago
Kconfig !14 v0.0.6 提交 3 years ago
LICENSE !14 v0.0.6 提交 3 years ago
README.md update platform drivers support information 3 years ago
install.sh include qspi, timer tacho and i2c drivers and examples 3 years ago
standalone.mk include qspi, timer tacho and i2c drivers and examples 3 years ago

README.md

Phytium-Standalone-SDK


1. 介绍

本项目发布了 Phytium 系列 CPU 的 BSP 源码,Baremetal 参考例程及其配置编译工具


2. 安装使用

2.1 Ubuntu 20.04 x86_64环境下使用Standalone SDK

2.1.1 选择在线方式安装SDK

  • 通过 Gitee 拉取 Standalone SDK 源代码
$ git clone https://gitee.com/phytium_embedded/phytium-standalobe-sdk.git ~/standalone_sdk
$ cd ~/standalone_sdk
  • 检查 install.sh 的执行权限, 如果没有执行权限x,需要利用chmod +x ./install.sh添加执行权限
$ ls ./install.sh  -l
-rwxrwxrwx 1 usr usr 6353 Jul 21 10:13 ./install.sh
  • 在线下载源代码和编译环境,完成Standalone SDK安装
$ ./install.sh -online

输入图片说明

  • 安装完成后重启系统,生效Standalone SDK环境

2.1.2 选择离线方式安装SDK

  • 下载Phytium Standalone SDK源代码

  • 下载AARCH32编译器

  • 下载AARCH64编译器

  • 解压 phytium_standalone_sdk.zip 为~/standalone_sdk(路径名可以自定义)

  • 将 AARCH32、AARCH64 编译器压缩包放置在~/standalone_sdk/tools(必须放置在 tools 路径下)

  • 确保 install.sh 有执行权限,~/standalone_sdkStandalone SDK 安装

$ ./install.sh

输入图片说明

  • 安装完成后重启系统,生效Standalone SDK环境

2.2 Kylin OS/Ubuntu 20.04 AARCH64环境下使用Standalone SDK

2.2.1 选择在线方式安装SDK

参考 2.1.1 选择在线方式安装SDK

2.2.2 选择离线方式安装SDK

  • 下载Phytium Standalone SDK源代码

  • 下载AARCH32编译器

  • 下载AARCH64编译器

  • 解压phytium_standalone_sdk.zip为~/standalone_sdk(路径名可以自定义)

  • 将AARCH32、AARCH64编译器压缩包放置在~/standalone_sdk/tools(必须放置在tools路径下)

  • 确保install.sh有执行权限,~/standalone_sdkStandalone SDK安装

$ ./install.sh

2.3 新建一个baremetal应用工程

  • 复制~/standalone-sdk/example/template目录,作为baremetal应用工程

* 表示可选文件

$ ls
Kconfig       --> 应用工程配置menu文件
Makefile      --> makefile            
inc           --> 用户头文件*
main.c        --> 包含main函数
sdkconfig     --> 配置输出
sdkconfig.h   --> 配置输出
src           --> 用户源文件*
  • 编译应用工程, 生成*.bin文件用于下载到开发板
$ make
$ ls
template.bin   --> 二进制文件
template.dis   --> 反汇编文件
template.elf   --> ELF文件
template.map   --> 内存布局文件

输入图片说明

2.4 快速使用例程

~/standalone-sdk/example/aarch32_hello_world

输入图片说明


3. SDK 源代码结构

.
├── Kconfig                --> 配置定义
├── LICENSE                --> 版权声明
├── README.md
├── standalone.mk
├── baremetal
│   └── example            --> 裸机例程
├── arch
├── common
├── drivers
├── board
├── configs                --> 各板子启动用的默认配置
│   ├── aarch32_defconfig
│   └── aarch64_defconfig
├── doc
│   ├── ChangeLog.md
│   ├── baremetal.dio
│   ├── baremetal.png
│   └── checklist.md
├── install.sh             --> 环境变量安装脚本
├── lib                    --> 依赖库
│   ├── Kconfig
│   ├── Kconfiglib
│   ├── lib.mk
│   ├── libc
│   └── nostdlib
├── make                    --> Makefile文件
│   ├── build_baremetal.mk
│   ├── buildinfo.mk
│   ├── complier.mk
│   ├── ld
│   ├── ld.mk
│   ├── menuconfig.mk
│   ├── packsource.mk
│   └── preconfig.mk
├── scripts                --> 相关脚本
│   ├── diffdir.md
│   ├── diffdir.sh
│   ├── kill_qemu_instance.sh
│   ├── mount2vxbox.sh
│   ├── release_tag.sh
│   └── wsl_import_export.bat
├── third-party            --> 第三方库
│   ├── Kconfig
│   ├── coremark
│   └── third-party.mk
└── tools                  --> 编译构建相关工具
    ├── README.md
    ├── gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf

4. 硬件平台

4.1 FT2000-4

FT-2000/4 是一款面向桌面应用的高性能通用 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 规范
  • 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec
  • 集成 SM2、SM3、SM4 模块
  • 集成 4 个 UART,1 个 LPC,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通 用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO)
  • 集成温度传感器

5. 支持情况

5.1 外设驱动支持情况

Hardware Interface Platform Supported Platform Developing Component
Generic Intrrupt Controller v3 FT2000-4/E2000 gic/gicv3
Generic Timer FT2000-4/E2000 generic_timer
UART (PrimeCell PL011) FT2000-4/E2000 usart/pl011_uart
10/100/1000MB-ETHERNET FT2000-4 E2000 eth/f_xmac
CAN FT2000-4 E2000 can/ft_can
GPIO FT2000-4/E2000 gpio/f_gpio
I2C FT2000-4 E2000 i2c/dw_i2c
IOMUX FT2000-4/E2000 iomux/f_iomux
QSPI (Nor Flash) FT2000-4 E2000 qspi/nor_qspi
SPI FT2000-4 E2000 spi/f_spi
TIMER & TACHO E2000 timer/hw_timer_tacho

6. 参考资源

  • ARM Architecture Reference Manual
  • ARM Cortex-A Series Programmer’s Guide
  • Programmer Guide for ARMv8-A
  • ARM System Developers Guide Designing and Optimizing System Software
  • FT-2000/4 软件编程手册-V1.4
  • Bare-metal programming for ARM —— A hands-on guide
  • Using the GNU Compiler Collection
  • Using ld, The GNU Linker
  • Using as, The GNU Assembler
  • Armv8-A memory model guide

7. 贡献方法

请联系飞腾嵌入式软件部

huanghe@phytium.com.cn

zhugengyu@phytium.com.cn


8. 许可协议

Apache-2.0