📄️ E907 平台
玄铁E907 是一款完全可综合的高端 MCU 处理器。它兼容 RV32IMAC 指令集,提供可观的整型性能提升以及高能效的浮点性能。E907 的主要特性包括:单双精度浮点单元,以及快速中断响应。
📄️ E907 子系统框图
image-20230215122832524
📄️ 软件适配
这部分使用BSP开发包即可,配置设备树如下:
📄️ 内存划分
在设备树配置小核心使用的内存,包括小核自己使用的内存,设备通信内存,回环内存等等,这里E907 运行在 DRAM 内。内存起始地址可以在数据手册查到。
📄️ 配置启动小核
配置启动小核的流程如下,这里只讨论使用 linux 启动小核的情况,不讨论快启相关。
📄️ 加载固件
驱动位于 kernel/linux-4.9/drivers/remoteproc/sunxirprocfirmware.c
📄️ 配置时钟
配置clk与小核的 boot 选项,驱动位于kernel/linux-4.9/drivers/remoteproc/sunxirprocboot.c 可以自行参考
📄️ 搭建开发环境
这里提供了一个 RTOS 以供开发使用,此 RTOS 基于 RTT 内核。地址 https://github.com/YuzukiHD/TinyVision/tree/main/kernel/rtos
📄️ 编译第一个 elf 系统
进入 rtos/source 文件夹
📄️ 配置小核系统
小核的编译框架与 kernel 类似,使用 kconfig 作为配置项。使用 make menuconfig 进入配置页。
📄️ 小核使用
小核使用 UART 输出 console
📄️ 核心通讯
建立通讯节点
📄️ rpmsg 需知
1. 端点是 rpmsg 通信的基础;每个端点都有自己的 src 和 dst 地址,范围(1 - 1023,除了
📄️ 自定义小核 APP
小核的程序入口位于 e907_rtos/rtos/source/projects/v851-e907-lizard/src/main.c
📄️ 自定义小核命令
SDK 提供了 FINSHFUNCTIONEXPORT_ALIAS 绑定方法,具体为