系统开发
板级适配
本节主要介绍了 DSP 上的板级适配。
板级适配包括两个方面,一个是具体硬件所需的板卡适配,另一个是根据不同的应用场景所需的系统配置。当用户直接使用官方板卡或者与官方板卡兼容时,那么 SylixOS 对该板卡的硬件部分本身就是支持的,用户只用考虑系统需求就可以了,配置的文件主要包括下图中红框标记的部分:
evm6678.c & evm6678.h
板级源文件:BSP 中可配置的回调接口。
evm6678.xml
板卡 XML:包括 BSP 的内存、中断、外设等资源配置项。配置手册参考:《DSP6678 代码生成工具 xml 配置手册》。
evm6678.mk
板卡组件配置:用于各功能组件的支持和拆卸。
SylixOSBSP.ld
链接脚本:在 lite 或 tiny 模式中,应用程序与 BSP 是绑定在一起的,那么用户可以将应用程序相关的内存段配置追加到该链接脚本当中。
系统模式切换
Lite 模式(兼容传统开发模式)
- 首先打开
.reproject
文件,修改 Profile 的值为 “dsp-lite” - 然后打开
config.mk
文件,修改 BASE_MODE 的值为 lite - 之后在集成开发环境中,刷新 BSP 工程,此时 BSP 工程就转为了 Lite 模式
- 最后将 BSP 的依赖的 Base 调整为 Lite 版本的 Base 即可。
- 首先打开
Tiny 模式(精简模式)
- 首先打开
.reproject
文件,修改 Profile 的值为 “dsp-tiny” - 然后打开
config.mk
文件,修改 BASE_MODE 的值为 tiny - 之后在集成开发环境中,刷新 BSP 工程,此时 BSP 工程就转为了 tiny 模式
- 最后将 BSP 的依赖的 Base 调整为 Tiny 版本的 Base。
- 首先打开
Load 模式(动态装载模式)
- 首先打开
.reproject
文件,修改 Profile 的值为 “dsp” - 然后打开
config.mk
文件,修改 BASE_MODE 的值为 load - 之后在集成开发环境中,刷新 BSP 工程,此时 BSP 工程就转为了 Load 模式
- 最后将 BSP 的依赖的 Base 调整为 Load 版本的 Base。
- 首先打开
ECS 轻量级实时容器
DSP 处理器不同于 ARM、x86-64 等处理器,其不具有 MMU(内存管理单元),不能进行虚拟地址的管理,因此 DSP 的 ECS 不能支持内存隔离。ECS 容器及 VSOA 的配置和使用,详见 任务关键型云原生
驱动开发
本节介绍了 DSP 上的驱动开发。
用户在开发 DSP 驱动时,需要考虑其特殊的芯片结构,与其他通用芯片相比,DSP 拥有多级内存和 Cache,多级中断,没有 MMU,使用 MPAX 完成虚拟地址映射和保护。本节描述了单核情况下设备驱动的开发,如果需要在多核间共享外设,除了需要考虑共享方案,还要考虑核间通信、以及核间的 Cache 维护。
RealEvo-IDE 开发环境自带使用手册,在菜单栏依次点击 Help > Open SylixOS Driver User Manual 打开《SylixOS 设备驱动程序开发》。
参考《SylixOS 设备驱动程序开发》,编写自己的驱动程序。文中描述了 SylixOS 驱动编写过程中需要注意的内核原理及其使用方法,它们包括:SylixOS 驱动的并发与同步原理、SylixOS 内存管理、Cache 管理、SylixOS 中断系统、SylixOS 时钟管理、DMA 系统等。