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.

[参考译文] 设置定时器实例基础上 HWI 的优先级

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/566475/setting-priority-of-hwi-underlying-a-timer-instance

器件型号:MSP432P401R

工具/软件:TI-RTOS

e2e.ti.com/.../2437.timer_5F00_hwi_5F00_priority_5F00_example.zip

大家好、

我正在项目中使用多个计时器、我想为每个计时器设置底层 HWI 的优先级。

考虑到我可以确定正在使用哪些计时器、我已成功使用 MSPWARE 直接设置中断优先级(例如 MAP_Interrupt_setPriority (INT_TA0_0、 4 << 5);) 、但这感觉就像我在围绕 SYSBIOS 执行结束运行。  

如果可能、我认为我应该使用 SYSBIOS API。  实际上、TI-RTOS 驱动 程序提供了设置相关中断优先级的功能、因此我想为什么不使用计时器。

我的第一次尝试只是使用了 HAL 计时器、但这似乎不会暴露底层 HWI。  

特定于器件的计时器模块(ti.sysbios.family.arm.msp432)看起来确实会暴露 HWI、因此我使用的是 HWI。  我尝试按如下方式设置优先级(请参阅随附的示例项目):

 hwi_setPriority (timer_hndl->hwi->intNum、(~0));

当我编译此代码时、我收到错误"不允许指向不完整类类型的#395指针"。  

在进入/sysbios/family/arm/msp432/Timer.h 的 TIMER_HNDL 类型定义之后、我继续了解 struct ti_SysBIOS_family_ARM_msp432_Timer_Object 的定义。

这是#defined out、它解释了编译错误、但它有点奇怪、我不确定如何修复它。

是否有人能够提供任何建议?

谢谢

Julian

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

    尊敬的 Julian:

    我认为您要做的是:

    Timer_handle timer_hndl = NULL;
    Timer_Params timer_params;
    Error_Block timer_EB;
    Hwi_Params hwi_params;
    
    Error_init (&timer_EB);
    Timer_Params_init (&timer_params);
    Hwi_Params_init (&hwi_params);
    
    hwi_params.priority = 255;
    timer_params.hwiParams =&hwi_params;
    
    //其他计时器参数配置*
    
    timer_hnams = Timer_create (1、isr_timer、&timer_params);&timer_params 

    这将让您为计时器指定 Hwi 的优先级。

    谢谢、
    Gerardo

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

    G'Day Gerardo、


    这是一种治疗方法。

    谢谢

    Julian