Other Parts Discussed in Thread: SYSBIOS
Hi team,
Customer defined the following parameters in the MSS program:
#define TX_CHANNEL_NUMS (3U) //The number of transmit antennas
#define RX_CHANNEL_NUMS (4U) //The number of receive antennas
#define Doppler_Number (8U) //chirp number
#define PROFILE_ADC_SAMPLE_VAL (256U) //Number of samples
Then sniffer defines a function to send over the serial interface, when the chirp number reaches the subframe_usr_NUM_pairs_total(3*8), data is sent out through ADCBUF over the UART:
static void MRR_MSS_chirpIntCallback(uintptr_t arg) { gMrrMSSMCB.chirpInt++; gMrrMSSMCB.chirpIntcumSum++; if (gMrrMSSMCB.chirpInt == SUBFRAME_USRR_NUM_CHIRPS_TOTAL) { gMrrMSSMCB.chirpInt = 0; Semaphore_post(gMrrMSSMCB.uartSendSemHandle); } }
The data size transmitted on the serial interface is as follows:
UART_writePolling (gMrrMSSMCB.loggingUartHandle, (uint8_t*)gMrrMSSMCB.adcDataBuf, 4*TX_CHANNEL_NUMS*RX_CHANNEL_NUMS*Doppler_Number*PROFILE_ADC_SAMPLE_VAL);
However, the following error occurs:
[Cortex_R4_0] Debug: Launched the Initialization Task Debug: frame and chirp interrupt initialized Debug: Initialized the mmWave module Debug: Synchronized the mmWave module Debug: uartSendSemHandle is created Set LDO Bypass Debug: MMWave has been configured for MRR. Debug: Sensor will start momentarily. Exception occurred in ThreadType_Task. Task handle: 0x8001ba8. Task stack base: 0x8001c08. Task stack size: 0x1000. R0 = 0x52008000 R8 = 0xffffffff R1 = 0x0800b638 R9 = 0xffffffff R2 = 0x00000008 R10 = 0xffffffff R3 = 0x00000001 R11 = 0xffffffff R4 = 0xfff7e700 R12 = 0x08001ba8 R5 = 0x08000cb0 SP(R13) = 0x08002ba8 R6 = 0x00010000 LR(R14) = 0x0000be19 R7 = 0x52000000 PC(R15) = 0x0000d01c PSR = 0x800c019f DFSR = 0x00000008 IFSR = 0x00000000 DFAR = 0x52008000 IFAR = 0x00000000 ti.sysbios.family.arm.exc.Exception: line 205: E_dataAbort: pc = 0x0000d01c, lr = 0x0000be19. xdc.runtime.Error.raise: terminating execution
If the amount of data sent on the serial interface is a bit smaller, it can be successfully sent. If change to size 4*RX_channel_NIMS*Doppler_number*profile_ADC_sample_VAL, it can send data over the serial interface, which is 4 receive antennas and 1 transmit antenna. But this is obviously wrong. Can ADCBUF store data for only one transmit antenna?
Could you help check this case? Thanks.
Best Regards,
Cherry