# Phytium-Standalone-SDK ## 1. 介绍 本项目发布了Phytium系列CPU的BSP源码,Baremetal参考例程及其配置编译工具 ## 2. Ubuntu 20.04 x86_64环境下使用Standalone SDK ### 2.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 ``` - 在线下载源代码和编译环境,完成FreeRTOS SDK安装 ``` $ ./install.sh -online ``` - **安装完成后重启系统,生效FreeRTOS SDK环境** ### 2.2. 选择离线方式安装SDK - 下载[Phytium Standalone SDK](https://gitee.com/phytium_embedded/phytium-standalone-sdk)源代码 - 下载[AARCH32](https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/776847/download/gcc-arm-x86_64-none-eabi-10-2020-q4-major.tar.xz)编译器 - 下载[AARCH64](https://gitee.com/phytium_embedded/phytium-standalone-sdk/attach_files/776846/download/gcc-arm-x86_64-aarch64-none-elf-10.2-2020.11.tar.xz)编译器 - 解压phytium_standalone_sdk.zip为`~/standalone_sdk`(路径名可以自定义) - 将AARCH32、AARCH64编译器压缩包放置在`~/standalone_sdk/tools`(必须放置在tools路径下) - 确保install.sh有执行权限,`~/standalone_sdk`Standalone SDK安装 ``` $ ./install.sh ``` - **安装完成后重启系统,生效FreeRTOS SDK环境** ### 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 --> 内存布局文件 ``` ![输入图片说明](https://images.gitee.com/uploads/images/2021/0709/141655_f20b6d98_8736513.png "屏幕截图.png") ### 2.4 快速使用例程 >~/standalone-sdk/example/aarch32_hello_world ![输入图片说明](https://images.gitee.com/uploads/images/2021/0709/145025_398f6501_8736513.png "屏幕截图.png") ## 3. SDK源代码结构 ``` . ├── Kconfig --> 配置定义 ├── LICENSE --> 版权声明 ├── README.md ├── baremetal │ └── example --> 裸机例程 ├── bsp --> 板级支持包 │ ├── Kconfig │ ├── arch │ ├── bsp.mk │ ├── common │ └── drivers ├── 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. 驱动描述 ## 5. 硬件平台 ## 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