Thread 中讨论的其他器件:SYSBIOS、 AM4376
工具/软件:TI C/C++编译器
我的项目需要同时与串行端口和网络端口进行通信。 因此、我尝试将 UART 函数添加到 NIMU 示例中。 但是、如果我启用 UART DMA、NIMU 无法 正常启动。
具体步骤如下:
编译 NIMU_BasicExample_skAM437x_armExampleproject 示例、确认网络协议栈正常运行。 ping IP 地址正常。我们可以从 调试端口看到协议 stackstartup 和协商过程的变化。
2. GNU 编译器目录添加:
${pdk_install_path}配件添加、 ${edma3LLD_BIOS6_INSTALLDIR}/封装、 ${cG_tool_include_path}
GNU 编译器符号添加:
BUILDCFG_MOD_UART、 UART_V1、 UART_DMA_ENABLE
4. nimu_skam437x.cfg 添加:
VAR Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
var drv = xdc.loadPackage ("ti.sdo.EDMA3.drv");
var rm = XDC.loadPackage ("ti.sdo.EDMA3.rm");
hwi.dispatcherSwiSupport = true;
hwi.dispatcherTaskSupport = true;
hwi.dispatcherAutoNestingSupport = true;
Hwi.initStackFlag = false;
Hwi.checkStackFlag = false;
VAR 外设 Attrs ={
键入:MMU.FirstLevelDesc_section,//段描述符
TEX:0、
可缓冲:false, //可缓冲
可高速缓存 :false, //可高速缓存
可共享 :false, //可共享
NoExecute :true, //不可执行
};
VAR 外设 BaseAddr = 0x44DF2800;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr、
peripheralBaseAddr、
peripheralAttrs);
VAR 外设 BaseAddr = 0x44e0b000;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr、
peripheralBaseAddr、
peripheralAttrs);
/*定义外设所在的1Meg 页的基址。 *
VAR 外设 BaseAddr = 0x49000000;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr、
peripheralBaseAddr、
peripheralAttrs);