主题中讨论的其他器件:CC1312R
工具与软件:
您好!
在我们公司中、我将采用863 -870MHz 频带的6TiSCH 栈移植到 CC1312R。 TSCH 方案引入了严格的时序要求、因此收发器由计时器进行管理。
特定器件配置概述(simplelink_cc13xx_cc26xx_sdk_7_41_00_17、nortos):
- GPTIMER 在系统中运行任务(在 GPTIMER ISR 上下文中启动 MAC 层操作)
- UART 到边界路由器的通信
- RF 自定义配置
- AESECB、TRNG 等
我的问题1:
优先级设置:
Timer1.timerInstance.interruptPriority ="6";
RF.interruptPriority ="1";
rf.softwareInterruptPriority ="1";
问题在于、当从 GPTIMER ISR 上下文调用 funcion 时、rf_runCmd 无限挂起 MCU。
我的问题2:
rf.softwareInterruptPriority ="1";-应用程序启动
rf.softwareInterruptPriority ="2";-应用程序启动
rf.softwareInterruptPriority ="3";-应用程序启动
rf.softwareInterruptPriority ="4";-硬故障异常(调用堆栈表示 SemaphoreP_Params_init 函数)
rf.softwareInterruptPriority ="5";-硬故障异常(调用堆栈表示 SemaphoreP_Params_init 函数)
....
为什么它以这种方式工作?
问题1.
射频驱动器是如何工作的?
无线电硬件会引发中断、在 ISR 环境中由驱动程序在内部进行处理、然后会引发软件中断、从该中断调用无线电回调?
问题2.
syscfg 中的什么是软件中断优先级? 这是软件触发的一个硬件中断内某些软件组件内的优先级吗?
问题3.
软件触发的中断的优先级是多少?为什么该中断优先级不可配置? 例如、如果在定时器 ISR 中我想要完整执行无线电命令、其中涉及射频 ISR 和射频软件 ISR。 因此、射频 ISR 必须优先于 GPTIMER ISR、射频软件 ISR 必须优先于射频 ISR。 我不知道射频软件 ISR 可优先于什么、不能优先于什么。