主题中讨论的其他器件: SysConfig
工具与软件:
大家好、TI 专家!
我使用的系统是 AM2431、FreeRTOS 为系统、并根据该enet_layer2_cpsw示例修改了我的程序。 我当前遇到了以下问题:我采用与示例相同的设置、接收以太网数据包会触发中断。 在回调函数中、我释放一个信标、以允许以太网任务接收数据包。 到目前为止一切都运行正常、但我有另一个线程、在该线程中、我设置了一个硬件计时器、该计时器会定期触发中断。 在中断触发期间、我需要控制 GPIO 以发送控制信号。 但我注意到、有时我的硬件计时器无法在指定时间工作、有时会出现延迟。 我怀疑当以太网线程的中断被触发时、更高优先级的以太网中断会优先于这个过程。
我看到的讨论表明可禁用以太网中断、相反、可设置一个硬件计时器以每毫秒释放一次信标、从而允许以太网线程定期检查数据包。 在此设置下、我的其他硬件计时器的延迟问题消失、但我更喜欢使用原始控制方法。 我想知道是否有办法可以将 GPIO 控制中断的优先级设置为高于以太网中断的优先级、以避免占先。 我尝试按如下方式设置硬件计时器的优先级:
HwiP_Params_init(&hwiPrms); hwiPrms.intNum = INTR; hwiPrms.callback = &AepwmIntrISR; hwiPrms.isPulse = INTR_IS_PULSE; hwiPrms.priority = 0x01; status = HwiP_construct(&EpwmHwiObject, &hwiPrms); DebugP_assert(status == SystemP_SUCCESS);
我将优先级从0x01设置为0x30、但它不起作用、仍然会出现同样的问题。 如何实现所需的行为?
此致、
Larry




