?? uart.lst
字號:
72 * Function Name : UART_FifoReset
73 * Description : This function resets the Rx and the Tx FIFOs of the
74 * selected UART.
75 * Input 1 : UARTx (x can be 0,1, 2 or 3) the desired UART
76 * Input 2 : UART_RxFIFO or UART_TxFIFO
77 * Output : None
78 * Return : None
79 *******************************************************************************/
\ In segment CODE_Flash, align 4, keep-with-next
80 void UART_FifoReset(UART_TypeDef *UARTx, UARTFIFO_TypeDef FIFO)
81 {
82 if (FIFO==UART_RxFIFO) UARTx->RxRSTR=0xFFFF; else UARTx->TxRSTR=0xFFFF;
\ UART_FifoReset:
\ 00000000 000051E3 CMP R1,#+0
\ 00000004 0300001A BNE ??UART_FifoReset_0
\ 00000008 FF20A0E3 MOV R2,#+255
\ 0000000C FF2C82E3 ORR R2,R2,#0xFF00
\ 00000010 B422C0E1 STRH R2,[R0, #+36]
\ 00000014 020000EA B ??UART_FifoReset_1
\ ??UART_FifoReset_0:
\ 00000018 FF20A0E3 MOV R2,#+255
\ 0000001C FF2C82E3 ORR R2,R2,#0xFF00
\ 00000020 B022C0E1 STRH R2,[R0, #+32]
83 }
\ ??UART_FifoReset_1:
\ 00000024 0EF0A0E1 MOV PC,LR ;; return
84
85 /*******************************************************************************
86 * Function Name : UART_LoopBackConfig
87 * Description : This function enables or disables the loop back mode of
88 * the selected UART.
89 * Input 1 : UARTx (x can be 0,1, 2 or 3) the desired UART
90 * Input 2 : ENABLE or DISABLE
91 * Output : None
92 * Return : None
93 *******************************************************************************/
\ In segment CODE_Flash, align 4, keep-with-next
94 void UART_LoopBackConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
95 {
96 if (NewStatus==ENABLE) UARTx->CR|=0x0040; else UARTx->CR&=~0x0040;
\ UART_LoopBackConfig:
\ 00000000 010051E3 CMP R1,#+1
\ 00000004 0300001A BNE ??UART_LoopBackConfig_0
\ 00000008 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000000C 402092E3 ORRS R2,R2,#0x40
\ 00000010 BC20C0E1 STRH R2,[R0, #+12]
\ 00000014 040000EA B ??UART_LoopBackConfig_1
\ ??UART_LoopBackConfig_0:
\ 00000018 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000001C BF30A0E3 MOV R3,#+191
\ 00000020 FF3C83E3 ORR R3,R3,#0xFF00
\ 00000024 022013E0 ANDS R2,R3,R2
\ 00000028 BC20C0E1 STRH R2,[R0, #+12]
97 }
\ ??UART_LoopBackConfig_1:
\ 0000002C 0EF0A0E1 MOV PC,LR ;; return
98
99 /*******************************************************************************
100 * Function Name : UART_RxConfig
101 * Description : This function enables or disables the UART data reception.
102 * Input 1 : UARTx (x can be 0,1, 2 or 3) the desired UART
103 * Input 2 : ENABLE or DISABLE
104 * Output : None
105 * Return : None
106 *******************************************************************************/
\ In segment CODE_Flash, align 4, keep-with-next
107 void UART_RxConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
108 {
109 if (NewStatus==ENABLE) UARTx->CR|=0x0100; else UARTx->CR&=~0x0100;
\ UART_RxConfig:
\ 00000000 010051E3 CMP R1,#+1
\ 00000004 0300001A BNE ??UART_RxConfig_0
\ 00000008 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000000C 402F92E3 ORRS R2,R2,#0x100
\ 00000010 BC20C0E1 STRH R2,[R0, #+12]
\ 00000014 040000EA B ??UART_RxConfig_1
\ ??UART_RxConfig_0:
\ 00000018 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000001C FF30A0E3 MOV R3,#+255
\ 00000020 FE3C83E3 ORR R3,R3,#0xFE00
\ 00000024 022013E0 ANDS R2,R3,R2
\ 00000028 BC20C0E1 STRH R2,[R0, #+12]
110 }
\ ??UART_RxConfig_1:
\ 0000002C 0EF0A0E1 MOV PC,LR ;; return
111
112 /*******************************************************************************
113 * Function Name : UART_OnOffConfig
114 * Description : This function sets On/Off the selected UART.
115 * Input 1 : UARTx (x can be 0,1, 2 or 3) the desired UART
116 * Input 2 : ENABLE or DISABLE
117 * Output : None
118 * Return : None
119 *******************************************************************************/
\ In segment CODE_Flash, align 4, keep-with-next
120 void UART_OnOffConfig(UART_TypeDef *UARTx, FunctionalState NewStatus)
121 {
122 if (NewStatus==ENABLE) UARTx->CR|=0x0080; else UARTx->CR&=~0x0080;
\ UART_OnOffConfig:
\ 00000000 010051E3 CMP R1,#+1
\ 00000004 0300001A BNE ??UART_OnOffConfig_0
\ 00000008 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000000C 802092E3 ORRS R2,R2,#0x80
\ 00000010 BC20C0E1 STRH R2,[R0, #+12]
\ 00000014 040000EA B ??UART_OnOffConfig_1
\ ??UART_OnOffConfig_0:
\ 00000018 BC20D0E1 LDRH R2,[R0, #+12]
\ 0000001C 7F30A0E3 MOV R3,#+127
\ 00000020 FF3C83E3 ORR R3,R3,#0xFF00
\ 00000024 022013E0 ANDS R2,R3,R2
\ 00000028 BC20C0E1 STRH R2,[R0, #+12]
123 }
\ ??UART_OnOffConfig_1:
\ 0000002C 0EF0A0E1 MOV PC,LR ;; return
124
125 /*******************************************************************************
126 * Function Name : UART_ByteSend
127 * Description : This function sends a data byte to the selected UART.
128 * Input 1 : UARTx (x can be 0,1, 2 or 3) the desired UART
129 * Input 2 : A pointer to the data byte to send
130 * Output : None
131 * Return : None
132 *******************************************************************************/
\ In segment CODE_Flash, align 4, keep-with-next
133 void UART_ByteSend(UART_TypeDef *UARTx, u8 *Data)
134 {
135 if (UARTx->CR & (0x0001<<UART_FIFOEnableBit))// if FIFO ENABLED
\ UART_ByteSend:
\ 00000000 BC20D0E1 LDRH R2,[R0, #+12]
\ 00000004 400E12E3 TST R2,#0x400
\ 00000008 0300000A BEQ ??UART_ByteSend_0
136 while((UARTx->SR & UART_TxFull)); // while the UART_TxFIFO contain 16 characters.
\ ??UART_ByteSend_1:
\ 0000000C B421D0E1 LDRH R2,[R0, #+20]
\ 00000010 800F12E3 TST R2,#0x200
\ 00000014 FCFFFF1A BNE ??UART_ByteSend_1
\ 00000018 020000EA B ??UART_ByteSend_2
137 else // if FIFO DISABLED
138 while (!(UARTx->SR & UART_TxEmpty)); // while the transmit shift register not empty
\ ??UART_ByteSend_0:
\ 0000001C B421D0E1 LDRH R2,[R0, #+20]
\ 00000020 020012E3 TST R2,#0x2
\ 00000024 FCFFFF0A BEQ ??UART_ByteSend_0
139 UARTx->TxBUFR = *Data;
\ ??UART_ByteSend_2:
\ 00000028 0020D1E5 LDRB R2,[R1, #+0]
\ 0000002C B420C0E1 STRH R2,[R0, #+4]
140 }
\ 00000030 0EF0A0E1 MOV PC,LR ;; return
141
142
143 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/
Maximum stack usage in bytes:
Function CSTACK
-------- ------
UART_BaudRateConfig 12
UART_ByteSend 0
UART_Config 24
UART_FifoConfig 0
UART_FifoReset 0
UART_LoopBackConfig 0
UART_ModeConfig 0
UART_OnOffConfig 0
UART_ParityConfig 0
UART_RxConfig 0
UART_StopBitsConfig 0
Segment part sizes:
Function/Label Bytes
-------------- -----
UART_ModeConfig 32
UART_ParityConfig 32
UART_StopBitsConfig 32
UART_BaudRateConfig 40
UART_Config 76
UART_FifoConfig 48
UART_FifoReset 40
UART_LoopBackConfig 48
UART_RxConfig 48
UART_OnOffConfig 48
UART_ByteSend 52
Others 60
556 bytes in segment CODE_Flash
400 bytes of CODE memory (+ 156 bytes shared)
Errors: none
Warnings: none
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -