Other Parts Discussed in Thread: SYSBIOS
你好,
我在MSS程序定义了如下参数
#define TX_CHANNEL_NUMS (3U) //发射天线数
#define RX_CHANNEL_NUMS (4U) //接收天线数
#define Doppler_Number (8U) //chirp数
#define PROFILE_ADC_SAMPLE_VAL (256U) //采样点数
然后我在监听器定义串口发送的函数,在chirp数达到SUBFRAME_USRR_NUM_CHIRPS_TOTAL(3*8)时将数据通过UART从ADCBUF发送出去
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); } }
串口发送的数据大小
UART_writePolling (gMrrMSSMCB.loggingUartHandle, (uint8_t*)gMrrMSSMCB.adcDataBuf, 4*TX_CHANNEL_NUMS*RX_CHANNEL_NUMS*Doppler_Number*PROFILE_ADC_SAMPLE_VAL);
但是出现以下错误,
[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
如果串口发送的数据量小一点就可以发送,如果改成大小4*RX_CHANNEL_NUMS*Doppler_Number*PROFILE_ADC_SAMPLE_VAL
就可以经串口发送数据,这时就是4个接收天线1个发送天线的数据了,
但这显然是不对的,请问您怎么看?