am5728 使用mailbox 通信

一. am5728 mailbox中断相关概念

1. crossbar。由于am5728的中断数太多,难以管理,现在引入crossbar来集中管理am5728中的中断。每个crossbar的中断线对应一个中断,对应关系如下,以下列出部分仅供参考

2. 每个cpu核心拥有多个irq,在手册中已经编好号。比如 dsp的中断DSP1_IRQ_0等,对应关系如下表:

3. 与中断相关的寄存器。此处以 mailbox3 的中断寄存器为例,以下列出了mailbox所有中断寄存器的地址,关键寄存器为

MAILBOX_IRQSTATUS_RAW_u(查看中断是否触发)

MAILBOX_IRQSTATUS_CLR_u(清中断状态)

MAILBOX_IRQENABLE_SET_u 和 MAILBOX_IRQENABLE_CLR_u (使能或者关闭对应中断)

二. 在程序中使用中断

此处以 dsp1端使用 mailbox3_user1的方法为例,介绍使用中断的方法(基于sys/bios)

1. 首先在使用中断时,需要将属于一个属于 dsp1的中断与 crossbar的中断线相绑定。查手册 17.3.12 ,可以得到 MAILBOX3_IRQ_USER1 与 IRQ_CROSSBAR_242 相对应,将其与 DSP_IRQ_44 绑定到一起。

2. 绑定方法:设置形如 CTRL_CORE_X_IRQ_B_A 的寄存器,X代表不同的 cpu, B/A代表一个寄存器可以绑定 cpu中的两个irq线。

此处的寄存器为 CTRL_CORE_DSP1_IRQ_44_45,此寄存器设置的方法如下,有两种,第一种是直接操作寄存器,第二种是调用 API。

        A. sys/bios中:CSL_xbarIrqConfigure(CSL_XBAR_IRQ_CPU_ID_DSP1,         CSL_XBAR_INST_DSP1_IRQ_44, CSL_XBAR_MAILBOX3_IRQ_USER1);

        B. 直接写寄存器。HW_WR_REG32((0x4A002960U), 0xE00F2);

3. 创建中断。(sys/bios中)

4. 使能中断。

        A. sys/bios中:Hwi_enableInterrupt(4);

        B. 直接写寄存器。HW_WR_REG32((0x4883C000U + 0x108U + 0x10), 0x1);

5. 在中断服务程序中清中断。Hwi_clearInterrupt(4);

三. sys/bios中,中断相关的完整设置流程。

四. 触发mailbox中断的方式

按照手册中的描述,仅需往指定 mailbox 寄存器中写入数据,即可自动触发中断。如下图,arm端在寄存器 MAILBOX_MESSAGE_0 中写入数据,即可触发中断,在DSP端读取此寄存器,即可收到arm发送过来的消息。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值