您好,
我目前正在使用MCU+ SDK在AM243x上进行编程。
过去,我曾询问一些有关中断路由的问题,
TI的员工提供了很大的帮助。
现在我还要配置硬接线中断。
为此,我将使用kernel/DPL/HWIP.h中的功能
它说:
/**
* \brief Parameters passed during \ref HwiP_construct
*/
typedef struct HwiP_Params_ {
uint32_t intNum; /**< CPU interrupt number. */
HwiP_FxnCallback callback; /**< Callback to call when interrupt is received */
void *args; /**< Arguments to pass to the callback */
uint16_t eventId; /**< Event ID to register against, only used with c6x with event combiner */
uint8_t priority; /**< Interrupt priority, only used with ARM R5, ARM M4 */
uint8_t isFIQ; /**< 0: Map interrupt as ISR, 1: map interrupt as FIQ, only used with ARM R5 */
uint8_t isPulse; /**< 0: Map interrupt as level interrupt, 1: Map interrupt as pulse interrupt, only used with ARM R5, ARM M4 */
} HwiP_Params;因此,有些参数仅适用于特定MCU。
我特别想使用优先级和FIQ,因为我当前关心的是不同优先级的可屏蔽和不可屏蔽中断。
例如,如果中断设置为FIQ,但目标中断控制器不是R5F-MCU的VIM,我想在断言时失败。
但我看不出有什么方法可以找出哪个目标中断控制器连接了一条中断线,并提供了IRQ编号。
除了用户从原理图中读取信息并将其作为额外参数提供(这也可能是错误的输入,从而使整个断言作废)。
我认为我可以使用Hwip_Config来检查至少是否将intcBaseAddr设置为R5F-VIM的地址,如注释中所述:
/**
* \brief HwiP config parameters, setup as part of SysConfig, not to be set by end-users directly
*/
typedef struct HwiP_Config_
{
uint32_t intcBaseAddr; /**< For R5F, this is VIM base addr */
} HwiP_Config;了解我的目的地是否是R5F-VIM。
但我不知道如何从构建的Hwip_Object中获取Hwip_Config。
感谢你的帮助。
此致
菲利普。









