Dear TI experts:
I am trying to fetch some raw data from the sample project:
- mmwave_automotive_toolbox / labs / incabinsensing / incabin_gesture_sensing sample project.
- the name of the pre-built binary is multi_guesture_demo_68xx_ods.bin.
I uncommented a piece of code and want to fetch such data buffer via UART. (changed the if-conditon and always true)
/* Sending range Azimuth Heat Map */ if (/* pGuiMonSel->rangeAzimuthHeatMap == */ 1) { itemPayloadLen = obj->numRangeBins * obj->numVirtualAntAzim * sizeof(cmplx16ImRe_t); message.body.detObj.tlv[tlvIdx].length = itemPayloadLen; message.body.detObj.tlv[tlvIdx].type = MMWDEMO_OUTPUT_MSG_AZIMUT_STATIC_HEAT_MAP; message.body.detObj.tlv[tlvIdx].address = (uint32_t)obj->azimuthStaticHeatMap; tlvIdx++; totalPacketLen += sizeof(MmwDemo_output_message_tl) + itemPayloadLen; }
Such payload (2048 bytes in size) could be sent via the internal mailbox from DSS to MSS. The data could be memcpy or accessed in MSS correctly without problems. However I tried to send such payload via UART, the board hang up while calling UART_writePolling(). After many tests, I can only send 200 bytes while UART_writePolling(). Are there any suggestions to send a 2048-buffer via UART without "CPU fault" or hang up? The following sample code I used to send data buffer.
for (itemIdx = 1; itemIdx < message.body.detObj.header.numTLVs; itemIdx++) { UART_writePolling(gMmwMssMCB.loggingUartHandle, (uint8_t*)&message.body.detObj.tlv[itemIdx], sizeof(MmwDemo_output_message_tl)); // send out all tlv data UART_writePolling(gMmwMssMCB.loggingUartHandle, (uint8_t*)SOC_translateAddress(message.body.detObj.tlv[itemIdx].address, SOC_TranslateAddr_Dir_FROM_OTHER_CPU,NULL), message.body.detObj.tlv[itemIdx].length); }
I could send continuous 6144-byte heatmap buffers and receive them at the host side without a problem by using another sample project (occupancy_plus_vital_signs). Is there anything I missed?
UPDATE: Here I attached the firmware bin files.
ShengChih Lai