目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第17篇:HIFI 4 DSP与Zephyr


前言

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开发的高度集成的多媒体应用处理器,结构如下图所示,且它具有以下特性:

  • 支持HiFi 4 DSP(数字信号处理器)

  • 可以通过远程处理(Remoteproc)、远程消息传递(Rpmsg)、邮箱(Mailbox)和OpenAMP等通信设置与通用Linux和Zephyr操作系统进行通信

  • 具备信号处理卸载、迁移神经网络工作负载和利用第三方软件库等功能

 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中的最新一代产品。




HIFI 4 DSP现状


  • HIFI 4 DSP支持现状如下图所示:


  • HiFi 4 DSP支持使用Zephyr操作系统的Sound Open Firmware(SOF)。此外,它还具有自定义的固件加载器和IPC框架,用于与SOF特定的API进行通信。这意味着可以使用SOF特定的API加载和运行自定义的固件,并与应用处理器进行通信。


HIFI 4 DSP未来规划


  • HiFi 4 DSP可以使用通用的固件加载器和IPC框架,以及提供一些示例应用程序,如hello_world、syncronization、philosophers等。

  • HiFi 4 DSP支持通用的固件加载器和IPC(进程间通信)框架。这意味着它可以加载和运行各种类型的固件,并与应用处理器进行通信。这样可以充分利用HiFi 4 DSP的处理能力,实现强大的信号处理功能。



Generic Linux和Zephyr在DSP之间的通信设置

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

下面是一个使用该方式远程程序控制来启动样本的一个案列:

DSP支持不同的平台\框架来控制远程程序


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


  • remote processor messaging (rpmsg): RPMSG是一种用于Linux和Zephyr之间的通信的机制。它提供了一种在应用程序之间进行消息传递的方式。RPMSG驱动程序创建虚拟队列和端点,用于通知远程处理器和发送/接收消息。应用程序可以使用RPMSG来进行进程间通信和共享数据。


  • Mailbox:Mailbox是一种在主机和远程处理器之间进行消息或信号交换的框架。它由邮箱控制器和邮箱客户端组成。邮箱控制器是平台相关的,而邮箱客户端负责监督消息的发送和接收。在i.MX 8M Plus中,使用的是imx-mailbox驱动程序来实现Mailbox功能。

  • OpenAMP:OpenAMP是一个开放的异构多处理框架,提供了生命周期管理(remoteproc)和处理器间通信功能(rpmsg)。它兼容上游的Linux remoteproc、rpmsg和VirtIO组件,并使用Libmetal作为访问共享内存的抽象层[29]。在i.MX 8M Plus中,OpenAMP被用于与HiFi 4 DSP进行通信。它可以在应用处理器和HiFi 4 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和应用程序之间的通信和资源分配情况。未来的发展方向可能是进一步完善和扩展资源表的功能,以支持更复杂的通信和资源管理需求。



上一条:ZDS 2023技术报告分享第18篇:片外外围仿真器 下一条:ZDS 2023技术报告分享第16篇:新的USB设备类API简介

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学