This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS:有关从 ISR 中发布 swi 的问题

Guru**** 2538960 points
Other Parts Discussed in Thread: OMAP-L138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/572443/rtos-question-on-post-swi-from-isr

主题中讨论的其他器件:OMAP-L138

工具/软件:TI-RTOS

您好!

我尝试从我的 EDMA 硬件 ISR 中发布一个 swi (见下面)、如果我使用 TI RTOS 配置文件创建 hwi、它很令人惊讶、但是如果我使用我的代码来设置这个硬件中断、那么就不会发布 swi。 我已经验证过、如果我从 ISR 中删除 Swi_post (swi_handle1)、那么 ISR 被调用并运行。

我的问题是、我是否必须使用配置文件或 RTOS API 来创建 hwi、以便能够从 ISR 发布 swi?

空中断(空)

开关(EDMA_3CC_IPR)

案例1:// TCC = 0
procBuffer = ping;//处理 ping
EDMA_3CC_ICR = 0x0001;//清除 EDMA3 IPR 位 TCC
中断;
案例2:// TCC = 1
ProprocBuffer = PONG;//进程 PONG
EDMA_3CC_ICR = 0x0002;//清除 EDMA3 IPR 位 TCC
中断;
默认值://可能错过了一个中断
EDMA_3CC_ICR = 0x0003;//清除 EDMA3 IPR 位0和1
中断;

EVTCLR0 = 0x00000100;
Buffer_Full = 1;//标志 EDMA3传输
Swi_post (swi_handle1);
返回;

我正在使用"tirtos_C6000_2_00_01_23"。  这是适用于 OMAP-L138的最新 TI RTOS 吗?

提前感谢!

Ron

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 USER="Rong Wang2"]但是如果我使用我的代码来设置这个硬件中断,那么就不会布置任何 swi。

    如果你想处理 Swi、你需要使用 SYS/BIOS API 来创建一个 Hwi 处理函数。  当你说"我使用我自己的代码"时,我假定你是指*不*使用 Hwi_create()和相关函数。

    此致、

    - Rob

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rob、

    是的、如果我不使用 Hwi_create()、则不处理 swi。

    非常感谢!!!

    Ron