前言
2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。
ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。
今天分享第62篇技术报告,题目为:
“HIFI 4 DSP 与 Zephyr”
作者简介

Iuliana Prodan 在恩智浦半导体公司工作了10余年,且在过去的3年里一直是其公司音频团队的一员,她致力于Linux音频子系统、声音开放固件和Zephyr。
文章简介
本文主要介绍了I.MX 8M Plus芯片的硬件概述和HIFI 4 DSP支持。硬件概述部分提到了该芯片的特点,包括信号处理的卸载、神经网络工作负载的迁移和第三方软件库的利用。而HIFI 4 DSP支持部分则提到了通用固件加载器和进程间通信的发展方向,以及一些示例程序、同步机制、并发编程问题和资源表的应用。此外,本文还提到了所面临的挑战和未来工作的展望。
i.MX 8M Plus的硬件概览
i.MX 8M Plus是一款由NXP Semiconductors开发的高度集成的多媒体应用处理器,结构如下图所示,且它具有以下特性:

i.MX 8M Plus结构图
HiFi 4 DSP概况及其现状和未来规划
HIFI 4 DSP概况
HiFi 4 DSP(Digital Signal Processor)是一款由Cadence Design Systems开发的数字信号处理器。HiFi 4 DSP是Cadence公司在其HiFi系列DSP中的最新一代产品。




Generic Linux和Zephyr在DSP之间的通信设置
应用程序在DSP中是用远程程序控制去加载和启动,这样就会导致应用所在的装载了linux的核心需要与装载了Zephyr的次核心之间可以正常通信。

下面是一个使用该方式远程程序控制来启动样本的一个案列:
DSP支持不同的平台\框架来控制远程程序

而通信的方式有以下三种:



HIFI 4 DSP遇到的困难
远程处理器(remoteproc)和远程消息传递(rpmsg)的文档可能需要改进。这意味着在使用这些功能时,可能会遇到文档不清晰或不完善的情况。
在使用i.MX平台的Linux remoteproc时,应用程序需要写入IRAM(内部RAM),而IRAM的写入限制为4字节。此外,对于IPC(进程间通信),必须使用find_loaded_rsc_table()函数。
Zephyr IPC: 在Zephyr操作系统中,用于核心通信的共享内存必须足够大,以容纳vrings和缓冲区。此外,必须正确初始化消息单元驱动程序,并启用所有中断。
OpenAMP: 在使用OpenAMP时,从资源表结构中读取状态时,必须使DCache无效,否则状态将永远不会更新。
HIFI 4 DSP未来展望
Generic fw loader & IPC: 未来的发展方向之一是实现通用的固件加载器和进程间通信(IPC)。这意味着可以更灵活地加载和管理固件,并实现不同模块之间的高效通信。
Hello_world samples: “Hello_world” 示例是一个简单的示例程序,用于验证DSP的功能和运行状态。未来的发展方向可能是提供更多的示例程序,以帮助开发人员更好地理解和使用DSP。
Synchronization: 同步是指协调多个任务或进程之间的执行顺序和访问资源的机制。未来的发展方向可能是提供更多的同步机制,以确保DSP和应用程序之间的正确协作。
“Philosophers: Philosophers” 是一个经典的并发编程问题,用于演示多个进程之间共享资源时可能出现的死锁和饥饿问题。未来的发展方向可能是提供更多类似的示例,以帮助开发人员理解并发编程中的常见问题。
Openamp_rsc_table: “Openamp_rsc_table” 是一个资源表结构,用于描述DSP和应用程序之间的通信和资源分配情况。未来的发展方向可能是进一步完善和扩展资源表的功能,以支持更复杂的通信和资源管理需求。