Thread 中讨论的其他器件:SYSBIOS、 SEGGER
工具/软件:TI-RTOS
您好!
我想通过修改 uartecho_DK_TM4C129X_TI_TivaTM4C129XNCZAD 示例项目来测试零延迟中断、但只要我为 UART0中断启用零延迟功能、它就会立即崩溃。
为了使 UART0中断实现零延迟、我修改了以下两项:
在 DK_TM4C129X.c 中、我将 UART0 int 优先级设置为2 << 5
CONST UARTTiva_HWAttrs uartTivaHWAttrs[DK_TM4C129X_UARTCOUNT]={ { baseAddr = UART0_BASE、 .intNum = INT_UART0、 .intPriority = 2 << 5、 .FlowControl = UART_FlowControl_NONE、 .ringBufPtr = uartTivaRingBuffer[0]、 .ringBufSize = sizeof (uartTivaRingBuffer[0]) } };
在 uartecho.cfg 中、我添加了:
m3Hwi.disablePriority = 96;
我应用这些更改后、程序就会在 CCS 控制台中使用以下输出开始崩溃:
此示例不会尝试最大程度地减小代码或数据占用空间
启动 UART 回显示例
系统提供商设置为 SysMin。 停止目标以查看 ROV 中的任何 SysMin 内容。
FSR = 0x0000
HFSR = 0x40000000
DFSR = 0x0000000b
MMAR = 0x140f0530
BFAR = 0x140f0530
AFSR = 0x00000000
正在终止执行...
如果我通过将 UART0 int 的优先级更改为3 << 5或将 m3Hwi.disablePriority 更改为64来禁用零延迟、则一切都可以再次正常运行。
我缺少什么? 为了使用零延迟中断、是否需要启用/配置其他任何内容?
下面、我随修改附加了示例项目。
谢谢、
Peter A.