My environment is the following:
1.CC2540 USB Dongle running -1.4.0 application
2.USART0:P0_2-5=MI/MO/SS/C as SPI
3. Defined Symbols
HALNODEBUG
OSAL_CBTIMER_NUM_TASKS=1
xPOWER_SAVING
HAL_AES_DMA=TRUE
HAL_DMA=TRUE
HAL_UART_DMA=0
HAL_UART_ISR=0
HAL_UART=TRUE
HAL_UART_SPI=1
HAL_SPI_MASTER=TRUE
HAL_UART_PORT=TRUE
HAL_UART_USB=0
HAL_SPI_QUEUED_TX=TRUE
HAL_KEY=FALSE
HAL_LCD=FALSE
HAL_LED=TRUE
Execution hangs here, in HalUARTWriteSPI():
while((!SPI_RDY_IN()) && (!spiRdyIsr) );
because SPI_RDY_IN is defined as:
#define SPI_RDY_IN() (SPI_RDYIn == 0)
and SPI_RDYIn =0x01
Here's the assembly code. Why is P0_1 being used for SPI_RDY_IN?
while((!SPI_RDY_IN()) && (!spiRdyIsr) );
02DC3C A2 81 MOV C,P0.P0_1
02DC3E 50 06 JNC 0x2DC46
02DC40 90 04 B5 MOV DPTR,#0x04B5
02DC43 E0 MOVX A,@DPTR
02DC44 60 F6 JZ 0x2DC3C
HAL_DMA_MAN_TRIGGER(HAL_SPI_CH_TX);
02DC46 75 D7 10 MOV DMAREQ,#0x10