Other Parts Discussed in Thread: SYSBIOS, AM4376
Tool/software: TI C/C++ Compiler
My project need communicate with serial port and network port at the same time. so I try add the uart function into NIMU example. but if I enable the uart dma, the nimu can not start up normally.
The specific steps are as follows:
1. compile the NIMU_BasicExample_skAM437x_armExampleproject example, confirm that the network protocol stack is normal running. pinging IP address is OK.and we can see the imformation about the protocol stackstartup and negotiation process from the debug port.
2. GNU compiler Directories add:
${PDK_INSTALL_PATH}ories add, ${EDMA3LLD_BIOS6_INSTALLDIR}/packages, ${CG_TOOL_INCLUDE_PATH}
3. GNU compiler Symbols add:
BUILDCFG_MOD_UART, UART_V1, UART_DMA_ENABLE
4. nimu_skam437x.cfg add:
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 peripheralAttrs = {
type : Mmu.FirstLevelDesc_SECTION, // SECTION descriptor
tex: 0,
bufferable : false, // bufferable
cacheable : false, // cacheable
shareable : false, // shareable
noexecute : true, // not executable
};
var peripheralBaseAddr = 0x44DF2800;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
peripheralBaseAddr,
peripheralAttrs);
var peripheralBaseAddr = 0x44e0b000;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
peripheralBaseAddr,
peripheralAttrs);
/* Define the base address of the 1 Meg page the peripheral resides in. */
var peripheralBaseAddr = 0x49000000;
Mmu.setFirstLevelDescMeta(peripheralBaseAddr,
peripheralBaseAddr,
peripheralAttrs);