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
|
3 years ago | |
---|---|---|
.gitee | 3 years ago | |
.vscode | 3 years ago | |
arch | 3 years ago | |
baremetal/example | 3 years ago | |
board | 3 years ago | |
common | 3 years ago | |
configs | 3 years ago | |
doc | 3 years ago | |
drivers | 3 years ago | |
lib | 3 years ago | |
make | 3 years ago | |
scripts | 3 years ago | |
third-party | 3 years ago | |
tools | 3 years ago | |
.gitattributes | 3 years ago | |
.gitignore | 3 years ago | |
Kconfig | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 3 years ago | |
install.sh | 3 years ago | |
standalone.mk | 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
-
下载AARCH32编译器
-
下载AARCH64编译器
-
解压 phytium_standalone_sdk.zip 为
~/standalone_sdk
(路径名可以自定义) -
将 AARCH32、AARCH64 编译器压缩包放置在
~/standalone_sdk/tools
(必须放置在 tools 路径下) -
确保 install.sh 有执行权限,
~/standalone_sdk
Standalone 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
-
下载AARCH32编译器
-
下载AARCH64编译器
-
解压phytium_standalone_sdk.zip为
~/standalone_sdk
(路径名可以自定义) -
将AARCH32、AARCH64编译器压缩包放置在
~/standalone_sdk/tools
(必须放置在tools路径下) -
确保install.sh有执行权限,
~/standalone_sdk
Standalone 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. 贡献方法
请联系飞腾嵌入式软件部
8. 许可协议
Apache-2.0