1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ISO C Compiler 3 ; Version 4.5.0 #15242 (Linux) 4 ;-------------------------------------------------------- 5 .module stm8l15x_usart 6 7 ;-------------------------------------------------------- 8 ; Public variables in this module 9 ;-------------------------------------------------------- 10 .globl _CLK_GetClockFreq 11 .globl _USART_DeInit 12 .globl _USART_Init 13 .globl _USART_ClockInit 14 .globl _USART_Cmd 15 .globl _USART_SetPrescaler 16 .globl _USART_SendBreak 17 .globl _USART_ReceiveData8 18 .globl _USART_ReceiveData9 19 .globl _USART_SendData8 20 .globl _USART_SendData9 21 .globl _USART_ReceiverWakeUpCmd 22 .globl _USART_SetAddress 23 .globl _USART_WakeUpConfig 24 .globl _USART_HalfDuplexCmd 25 .globl _USART_SmartCardCmd 26 .globl _USART_SmartCardNACKCmd 27 .globl _USART_SetGuardTime 28 .globl _USART_IrDAConfig 29 .globl _USART_IrDACmd 30 .globl _USART_DMACmd 31 .globl _USART_ITConfig 32 .globl _USART_GetFlagStatus 33 .globl _USART_ClearFlag 34 .globl _USART_GetITStatus 35 .globl _USART_ClearITPendingBit 36 ;-------------------------------------------------------- 37 ; ram data 38 ;-------------------------------------------------------- 39 .area DATA 40 ;-------------------------------------------------------- 41 ; ram data 42 ;-------------------------------------------------------- 43 .area INITIALIZED 44 ;-------------------------------------------------------- 45 ; absolute external ram data 46 ;-------------------------------------------------------- 47 .area DABS (ABS) 48 49 ; default segment ordering for linker 50 .area HOME 51 .area GSINIT 52 .area GSFINAL 53 .area CONST 54 .area INITIALIZER 55 .area CODE 56 57 ;-------------------------------------------------------- 58 ; global & static initialisations 59 ;-------------------------------------------------------- 60 .area HOME 61 .area GSINIT 62 .area GSFINAL 63 .area GSINIT 64 ;-------------------------------------------------------- 65 ; Home 66 ;-------------------------------------------------------- 67 .area HOME 68 .area HOME 69 ;-------------------------------------------------------- 70 ; code 71 ;-------------------------------------------------------- 72 .area CODE 73 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 148: void USART_DeInit(USART_TypeDef* USARTx) 74 ; ----------------------------------------- 75 ; function USART_DeInit 76 ; ----------------------------------------- 0081AD 77 _USART_DeInit: 78 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 154: (void) USARTx->DR; 0081AD 90 93 [ 1] 79 ldw y, x 0081AF E6 01 [ 1] 80 ld a, (0x1, x) 81 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 156: USARTx->BRR2 = USART_BRR2_RESET_VALUE; /* Set USART_BRR2 to reset value 0x00 */ 0081B1 93 [ 1] 82 ldw x, y 0081B2 6F 03 [ 1] 83 clr (0x0003, x) 84 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 157: USARTx->BRR1 = USART_BRR1_RESET_VALUE; /* Set USART_BRR1 to reset value 0x00 */ 0081B4 93 [ 1] 85 ldw x, y 0081B5 6F 02 [ 1] 86 clr (0x02, x) 87 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 159: USARTx->CR1 = USART_CR1_RESET_VALUE; /* Set USART_CR1 to reset value 0x00 */ 0081B7 93 [ 1] 88 ldw x, y 0081B8 6F 04 [ 1] 89 clr (0x0004, x) 90 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 160: USARTx->CR2 = USART_CR2_RESET_VALUE; /* Set USART_CR2 to reset value 0x00 */ 0081BA 93 [ 1] 91 ldw x, y 0081BB 6F 05 [ 1] 92 clr (0x0005, x) 93 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 161: USARTx->CR3 = USART_CR3_RESET_VALUE; /* Set USART_CR3 to reset value 0x00 */ 0081BD 93 [ 1] 94 ldw x, y 0081BE 6F 06 [ 1] 95 clr (0x0006, x) 96 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 162: USARTx->CR4 = USART_CR4_RESET_VALUE; /* Set USART_CR4 to reset value 0x00 */ 0081C0 93 [ 1] 97 ldw x, y 0081C1 6F 07 [ 1] 98 clr (0x0007, x) 99 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 163: } 0081C3 81 [ 4] 100 ret 101 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 192: void USART_Init(USART_TypeDef* USARTx, uint32_t BaudRate, USART_WordLength_TypeDef 102 ; ----------------------------------------- 103 ; function USART_Init 104 ; ----------------------------------------- 0081C4 105 _USART_Init: 0081C4 52 0B [ 2] 106 sub sp, #11 107 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 210: USARTx->CR1 &= (uint8_t)(~(USART_CR1_PCEN | USART_CR1_PS | USART_CR1_M)); 0081C6 1F 0A [ 2] 108 ldw (0x0a, sp), x 0081C8 1C 00 04 [ 2] 109 addw x, #0x0004 0081CB F6 [ 1] 110 ld a, (x) 0081CC A4 E9 [ 1] 111 and a, #0xe9 0081CE 6B 09 [ 1] 112 ld (0x09, sp), a 0081D0 F7 [ 1] 113 ld (x), a 114 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 213: USARTx->CR1 |= (uint8_t)((uint8_t)USART_WordLength | (uint8_t)USART_Parity); 0081D1 7B 12 [ 1] 115 ld a, (0x12, sp) 0081D3 1A 14 [ 1] 116 or a, (0x14, sp) 0081D5 1A 09 [ 1] 117 or a, (0x09, sp) 0081D7 F7 [ 1] 118 ld (x), a 119 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 216: USARTx->CR3 &= (uint8_t)(~USART_CR3_STOP); 0081D8 1E 0A [ 2] 120 ldw x, (0x0a, sp) 0081DA 1C 00 06 [ 2] 121 addw x, #0x0006 0081DD F6 [ 1] 122 ld a, (x) 0081DE A4 CF [ 1] 123 and a, #0xcf 0081E0 F7 [ 1] 124 ld (x), a 125 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 218: USARTx->CR3 |= (uint8_t)USART_StopBits; 0081E1 1A 13 [ 1] 126 or a, (0x13, sp) 0081E3 F7 [ 1] 127 ld (x), a 128 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 221: USARTx->BRR1 &= (uint8_t)(~USART_BRR1_DIVM); 0081E4 1E 0A [ 2] 129 ldw x, (0x0a, sp) 0081E6 5C [ 1] 130 incw x 0081E7 5C [ 1] 131 incw x 0081E8 1F 01 [ 2] 132 ldw (0x01, sp), x 0081EA F6 [ 1] 133 ld a, (x) 0081EB 1E 01 [ 2] 134 ldw x, (0x01, sp) 0081ED 7F [ 1] 135 clr (x) 136 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 223: USARTx->BRR2 &= (uint8_t)(~USART_BRR2_DIVM); 0081EE 1E 0A [ 2] 137 ldw x, (0x0a, sp) 0081F0 1C 00 03 [ 2] 138 addw x, #0x0003 0081F3 1F 03 [ 2] 139 ldw (0x03, sp), x 0081F5 F6 [ 1] 140 ld a, (x) 0081F6 A4 0F [ 1] 141 and a, #0x0f 0081F8 1E 03 [ 2] 142 ldw x, (0x03, sp) 0081FA F7 [ 1] 143 ld (x), a 144 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 225: USARTx->BRR2 &= (uint8_t)(~USART_BRR2_DIVF); 0081FB 1E 03 [ 2] 145 ldw x, (0x03, sp) 0081FD 7F [ 1] 146 clr (x) 147 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 227: BaudRate_Mantissa = (uint32_t)(CLK_GetClockFreq() / BaudRate ); 0081FE CD 85 D6 [ 4] 148 call _CLK_GetClockFreq 008201 1F 08 [ 2] 149 ldw (0x08, sp), x 008203 1E 10 [ 2] 150 ldw x, (0x10, sp) 008205 89 [ 2] 151 pushw x 008206 1E 10 [ 2] 152 ldw x, (0x10, sp) 008208 89 [ 2] 153 pushw x 008209 1E 0C [ 2] 154 ldw x, (0x0c, sp) 00820B 89 [ 2] 155 pushw x 00820C 90 89 [ 2] 156 pushw y 157 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 229: USARTx->BRR2 = (uint8_t)((BaudRate_Mantissa >> (uint8_t)8) & (uint8_t)0xF0); 00820E CD 92 5C [ 4] 158 call __divulong 008211 5B 08 [ 2] 159 addw sp, #8 008213 17 05 [ 2] 160 ldw (0x05, sp), y 008215 9E [ 1] 161 ld a, xh 008216 A4 F0 [ 1] 162 and a, #0xf0 008218 6B 09 [ 1] 163 ld (0x09, sp), a 00821A 16 03 [ 2] 164 ldw y, (0x03, sp) 00821C 7B 09 [ 1] 165 ld a, (0x09, sp) 00821E 90 F7 [ 1] 166 ld (y), a 167 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 231: USARTx->BRR2 |= (uint8_t)(BaudRate_Mantissa & (uint8_t)0x0F); 008220 9F [ 1] 168 ld a, xl 008221 A4 0F [ 1] 169 and a, #0x0f 008223 1A 09 [ 1] 170 or a, (0x09, sp) 008225 16 03 [ 2] 171 ldw y, (0x03, sp) 008227 90 F7 [ 1] 172 ld (y), a 173 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 233: USARTx->BRR1 = (uint8_t)(BaudRate_Mantissa >> (uint8_t)4); 008229 A6 10 [ 1] 174 ld a, #0x10 00822B 62 [ 2] 175 div x, a 00822C 9F [ 1] 176 ld a, xl 00822D 1E 01 [ 2] 177 ldw x, (0x01, sp) 00822F F7 [ 1] 178 ld (x), a 179 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 236: USARTx->CR2 &= (uint8_t)~(USART_CR2_TEN | USART_CR2_REN); 008230 1E 0A [ 2] 180 ldw x, (0x0a, sp) 008232 1C 00 05 [ 2] 181 addw x, #0x0005 008235 F6 [ 1] 182 ld a, (x) 008236 A4 F3 [ 1] 183 and a, #0xf3 008238 F7 [ 1] 184 ld (x), a 185 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 238: USARTx->CR2 |= (uint8_t)USART_Mode; 008239 1A 15 [ 1] 186 or a, (0x15, sp) 00823B F7 [ 1] 187 ld (x), a 188 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 239: } 00823C 1E 0C [ 2] 189 ldw x, (12, sp) 00823E 5B 15 [ 2] 190 addw sp, #21 008240 FC [ 2] 191 jp (x) 192 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 264: void USART_ClockInit(USART_TypeDef* USARTx, USART_Clock_TypeDef USART_Clock, 193 ; ----------------------------------------- 194 ; function USART_ClockInit 195 ; ----------------------------------------- 008241 196 _USART_ClockInit: 008241 52 05 [ 2] 197 sub sp, #5 008243 6B 05 [ 1] 198 ld (0x05, sp), a 199 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 275: USARTx->CR3 &= (uint8_t)~(USART_CR3_CPOL | USART_CR3_CPHA | USART_CR3_LBCL); 008245 1C 00 06 [ 2] 200 addw x, #0x0006 008248 1F 01 [ 2] 201 ldw (0x01, sp), x 00824A F6 [ 1] 202 ld a, (x) 00824B A4 F8 [ 1] 203 and a, #0xf8 00824D 6B 03 [ 1] 204 ld (0x03, sp), a 00824F 1E 01 [ 2] 205 ldw x, (0x01, sp) 008251 7B 03 [ 1] 206 ld a, (0x03, sp) 008253 F7 [ 1] 207 ld (x), a 208 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 277: USARTx->CR3 |= (uint8_t)((uint8_t)((uint8_t)(USART_CPOL | (uint8_t)USART_CPHA ) | USART_LastBit)); 008254 7B 08 [ 1] 209 ld a, (0x08, sp) 008256 1A 09 [ 1] 210 or a, (0x09, sp) 008258 6B 04 [ 1] 211 ld (0x04, sp), a 00825A 7B 0A [ 1] 212 ld a, (0x0a, sp) 00825C 1A 04 [ 1] 213 or a, (0x04, sp) 00825E 1A 03 [ 1] 214 or a, (0x03, sp) 008260 1E 01 [ 2] 215 ldw x, (0x01, sp) 008262 F7 [ 1] 216 ld (x), a 217 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 275: USARTx->CR3 &= (uint8_t)~(USART_CR3_CPOL | USART_CR3_CPHA | USART_CR3_LBCL); 008263 1E 01 [ 2] 218 ldw x, (0x01, sp) 008265 F6 [ 1] 219 ld a, (x) 220 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 279: if (USART_Clock != USART_Clock_Disable) 008266 0D 05 [ 1] 221 tnz (0x05, sp) 008268 27 07 [ 1] 222 jreq 00102$ 223 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 281: USARTx->CR3 |= (uint8_t)(USART_CR3_CLKEN); /* Set the Clock Enable bit */ 00826A AA 08 [ 1] 224 or a, #0x08 00826C 1E 01 [ 2] 225 ldw x, (0x01, sp) 00826E F7 [ 1] 226 ld (x), a 00826F 20 05 [ 2] 227 jra 00104$ 008271 228 00102$: 229 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 285: USARTx->CR3 &= (uint8_t)(~USART_CR3_CLKEN); /* Clear the Clock Enable bit */ 008271 A4 F7 [ 1] 230 and a, #0xf7 008273 1E 01 [ 2] 231 ldw x, (0x01, sp) 008275 F7 [ 1] 232 ld (x), a 008276 233 00104$: 234 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 287: } 008276 1E 06 [ 2] 235 ldw x, (6, sp) 008278 5B 0A [ 2] 236 addw sp, #10 00827A FC [ 2] 237 jp (x) 238 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 296: void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState) 239 ; ----------------------------------------- 240 ; function USART_Cmd 241 ; ----------------------------------------- 00827B 242 _USART_Cmd: 00827B 88 [ 1] 243 push a 00827C 6B 01 [ 1] 244 ld (0x01, sp), a 245 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 300: USARTx->CR1 &= (uint8_t)(~USART_CR1_USARTD); /**< USART Enable */ 00827E 1C 00 04 [ 2] 246 addw x, #0x0004 008281 F6 [ 1] 247 ld a, (x) 248 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 298: if (NewState != DISABLE) 008282 0D 01 [ 1] 249 tnz (0x01, sp) 008284 27 05 [ 1] 250 jreq 00102$ 251 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 300: USARTx->CR1 &= (uint8_t)(~USART_CR1_USARTD); /**< USART Enable */ 008286 A4 DF [ 1] 252 and a, #0xdf 008288 F7 [ 1] 253 ld (x), a 008289 20 03 [ 2] 254 jra 00104$ 00828B 255 00102$: 256 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 304: USARTx->CR1 |= USART_CR1_USARTD; /**< USART Disable (for low power consumption) */ 00828B AA 20 [ 1] 257 or a, #0x20 00828D F7 [ 1] 258 ld (x), a 00828E 259 00104$: 260 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 306: } 00828E 84 [ 1] 261 pop a 00828F 81 [ 4] 262 ret 263 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 329: void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler) 264 ; ----------------------------------------- 265 ; function USART_SetPrescaler 266 ; ----------------------------------------- 008290 267 _USART_SetPrescaler: 268 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 332: USARTx->PSCR = USART_Prescaler; 008290 1C 00 0A [ 2] 269 addw x, #0x000a 008293 F7 [ 1] 270 ld (x), a 271 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 333: } 008294 81 [ 4] 272 ret 273 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 340: void USART_SendBreak(USART_TypeDef* USARTx) 274 ; ----------------------------------------- 275 ; function USART_SendBreak 276 ; ----------------------------------------- 008295 277 _USART_SendBreak: 278 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 342: USARTx->CR2 |= USART_CR2_SBK; 008295 1C 00 05 [ 2] 279 addw x, #0x0005 008298 F6 [ 1] 280 ld a, (x) 008299 AA 01 [ 1] 281 or a, #0x01 00829B F7 [ 1] 282 ld (x), a 283 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 343: } 00829C 81 [ 4] 284 ret 285 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 382: uint8_t USART_ReceiveData8(USART_TypeDef* USARTx) 286 ; ----------------------------------------- 287 ; function USART_ReceiveData8 288 ; ----------------------------------------- 00829D 289 _USART_ReceiveData8: 290 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 384: return USARTx->DR; 00829D E6 01 [ 1] 291 ld a, (0x1, x) 292 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 385: } 00829F 81 [ 4] 293 ret 294 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 392: uint16_t USART_ReceiveData9(USART_TypeDef* USARTx) 295 ; ----------------------------------------- 296 ; function USART_ReceiveData9 297 ; ----------------------------------------- 0082A0 298 _USART_ReceiveData9: 0082A0 89 [ 2] 299 pushw x 300 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 396: temp = ((uint16_t)(((uint16_t)((uint16_t)USARTx->CR1 & (uint16_t)USART_CR1_R8)) << 1)); 0082A1 90 93 [ 1] 301 ldw y, x 0082A3 E6 04 [ 1] 302 ld a, (0x4, x) 0082A5 A4 80 [ 1] 303 and a, #0x80 0082A7 97 [ 1] 304 ld xl, a 0082A8 4F [ 1] 305 clr a 0082A9 95 [ 1] 306 ld xh, a 0082AA 58 [ 2] 307 sllw x 0082AB 1F 01 [ 2] 308 ldw (0x01, sp), x 309 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 397: return (uint16_t)( ((uint16_t)((uint16_t)USARTx->DR) | temp) & ((uint16_t)0x01FF)); 0082AD 90 E6 01 [ 1] 310 ld a, (0x1, y) 0082B0 1A 02 [ 1] 311 or a, (0x02, sp) 0082B2 97 [ 1] 312 ld xl, a 0082B3 7B 01 [ 1] 313 ld a, (0x01, sp) 0082B5 A4 01 [ 1] 314 and a, #0x01 0082B7 95 [ 1] 315 ld xh, a 316 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 398: } 0082B8 5B 02 [ 2] 317 addw sp, #2 0082BA 81 [ 4] 318 ret 319 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 405: void USART_SendData8(USART_TypeDef* USARTx, uint8_t Data) 320 ; ----------------------------------------- 321 ; function USART_SendData8 322 ; ----------------------------------------- 0082BB 323 _USART_SendData8: 324 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 408: USARTx->DR = Data; 0082BB 5C [ 1] 325 incw x 0082BC F7 [ 1] 326 ld (x), a 327 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 409: } 0082BD 81 [ 4] 328 ret 329 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 418: void USART_SendData9(USART_TypeDef* USARTx, uint16_t Data) 330 ; ----------------------------------------- 331 ; function USART_SendData9 332 ; ----------------------------------------- 0082BE 333 _USART_SendData9: 0082BE 52 03 [ 2] 334 sub sp, #3 335 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 423: USARTx->CR1 &= ((uint8_t)~USART_CR1_T8); 0082C0 1F 02 [ 2] 336 ldw (0x02, sp), x 0082C2 1C 00 04 [ 2] 337 addw x, #0x0004 0082C5 F6 [ 1] 338 ld a, (x) 0082C6 A4 BF [ 1] 339 and a, #0xbf 0082C8 6B 01 [ 1] 340 ld (0x01, sp), a 0082CA F7 [ 1] 341 ld (x), a 342 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 426: USARTx->CR1 |= (uint8_t)(((uint8_t)(Data >> 2)) & USART_CR1_T8); 0082CB 16 06 [ 2] 343 ldw y, (0x06, sp) 0082CD 90 54 [ 2] 344 srlw y 0082CF 90 54 [ 2] 345 srlw y 0082D1 90 9F [ 1] 346 ld a, yl 0082D3 A4 40 [ 1] 347 and a, #0x40 0082D5 1A 01 [ 1] 348 or a, (0x01, sp) 0082D7 F7 [ 1] 349 ld (x), a 350 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 429: USARTx->DR = (uint8_t)(Data); 0082D8 1E 02 [ 2] 351 ldw x, (0x02, sp) 0082DA 5C [ 1] 352 incw x 0082DB 7B 07 [ 1] 353 ld a, (0x07, sp) 0082DD F7 [ 1] 354 ld (x), a 355 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 430: } 0082DE 1E 04 [ 2] 356 ldw x, (4, sp) 0082E0 5B 07 [ 2] 357 addw sp, #7 0082E2 FC [ 2] 358 jp (x) 359 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 473: void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState) 360 ; ----------------------------------------- 361 ; function USART_ReceiverWakeUpCmd 362 ; ----------------------------------------- 0082E3 363 _USART_ReceiverWakeUpCmd: 0082E3 88 [ 1] 364 push a 0082E4 6B 01 [ 1] 365 ld (0x01, sp), a 366 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 480: USARTx->CR2 |= USART_CR2_RWU; 0082E6 1C 00 05 [ 2] 367 addw x, #0x0005 0082E9 F6 [ 1] 368 ld a, (x) 369 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 477: if (NewState != DISABLE) 0082EA 0D 01 [ 1] 370 tnz (0x01, sp) 0082EC 27 05 [ 1] 371 jreq 00102$ 372 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 480: USARTx->CR2 |= USART_CR2_RWU; 0082EE AA 02 [ 1] 373 or a, #0x02 0082F0 F7 [ 1] 374 ld (x), a 0082F1 20 03 [ 2] 375 jra 00104$ 0082F3 376 00102$: 377 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 485: USARTx->CR2 &= ((uint8_t)~USART_CR2_RWU); 0082F3 A4 FD [ 1] 378 and a, #0xfd 0082F5 F7 [ 1] 379 ld (x), a 0082F6 380 00104$: 381 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 487: } 0082F6 84 [ 1] 382 pop a 0082F7 81 [ 4] 383 ret 384 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 496: void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address) 385 ; ----------------------------------------- 386 ; function USART_SetAddress 387 ; ----------------------------------------- 0082F8 388 _USART_SetAddress: 0082F8 88 [ 1] 389 push a 0082F9 6B 01 [ 1] 390 ld (0x01, sp), a 391 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 502: USARTx->CR4 &= ((uint8_t)~USART_CR4_ADD); 0082FB 1C 00 07 [ 2] 392 addw x, #0x0007 0082FE F6 [ 1] 393 ld a, (x) 0082FF A4 F0 [ 1] 394 and a, #0xf0 008301 F7 [ 1] 395 ld (x), a 396 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 504: USARTx->CR4 |= USART_Address; 008302 1A 01 [ 1] 397 or a, (0x01, sp) 008304 F7 [ 1] 398 ld (x), a 399 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 505: } 008305 84 [ 1] 400 pop a 008306 81 [ 4] 401 ret 402 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 515: void USART_WakeUpConfig(USART_TypeDef* USARTx, USART_WakeUp_TypeDef USART_WakeUp) 403 ; ----------------------------------------- 404 ; function USART_WakeUpConfig 405 ; ----------------------------------------- 008307 406 _USART_WakeUpConfig: 008307 88 [ 1] 407 push a 008308 6B 01 [ 1] 408 ld (0x01, sp), a 409 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 519: USARTx->CR1 &= ((uint8_t)~USART_CR1_WAKE); 00830A 1C 00 04 [ 2] 410 addw x, #0x0004 00830D F6 [ 1] 411 ld a, (x) 00830E A4 F7 [ 1] 412 and a, #0xf7 008310 F7 [ 1] 413 ld (x), a 414 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 520: USARTx->CR1 |= (uint8_t)USART_WakeUp; 008311 1A 01 [ 1] 415 or a, (0x01, sp) 008313 F7 [ 1] 416 ld (x), a 417 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 521: } 008314 84 [ 1] 418 pop a 008315 81 [ 4] 419 ret 420 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 566: void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState) 421 ; ----------------------------------------- 422 ; function USART_HalfDuplexCmd 423 ; ----------------------------------------- 008316 424 _USART_HalfDuplexCmd: 008316 88 [ 1] 425 push a 008317 6B 01 [ 1] 426 ld (0x01, sp), a 427 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 572: USARTx->CR5 |= USART_CR5_HDSEL; /**< USART Half Duplex Enable */ 008319 1C 00 08 [ 2] 428 addw x, #0x0008 00831C F6 [ 1] 429 ld a, (x) 430 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 570: if (NewState != DISABLE) 00831D 0D 01 [ 1] 431 tnz (0x01, sp) 00831F 27 05 [ 1] 432 jreq 00102$ 433 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 572: USARTx->CR5 |= USART_CR5_HDSEL; /**< USART Half Duplex Enable */ 008321 AA 08 [ 1] 434 or a, #0x08 008323 F7 [ 1] 435 ld (x), a 008324 20 03 [ 2] 436 jra 00104$ 008326 437 00102$: 438 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 576: USARTx->CR5 &= (uint8_t)~USART_CR5_HDSEL; /**< USART Half Duplex Disable */ 008326 A4 F7 [ 1] 439 and a, #0xf7 008328 F7 [ 1] 440 ld (x), a 008329 441 00104$: 442 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 578: } 008329 84 [ 1] 443 pop a 00832A 81 [ 4] 444 ret 445 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 644: void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState) 446 ; ----------------------------------------- 447 ; function USART_SmartCardCmd 448 ; ----------------------------------------- 00832B 449 _USART_SmartCardCmd: 00832B 88 [ 1] 450 push a 00832C 6B 01 [ 1] 451 ld (0x01, sp), a 452 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 651: USARTx->CR5 |= USART_CR5_SCEN; 00832E 1C 00 08 [ 2] 453 addw x, #0x0008 008331 F6 [ 1] 454 ld a, (x) 455 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 648: if (NewState != DISABLE) 008332 0D 01 [ 1] 456 tnz (0x01, sp) 008334 27 05 [ 1] 457 jreq 00102$ 458 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 651: USARTx->CR5 |= USART_CR5_SCEN; 008336 AA 20 [ 1] 459 or a, #0x20 008338 F7 [ 1] 460 ld (x), a 008339 20 03 [ 2] 461 jra 00104$ 00833B 462 00102$: 463 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 656: USARTx->CR5 &= ((uint8_t)(~USART_CR5_SCEN)); 00833B A4 DF [ 1] 464 and a, #0xdf 00833D F7 [ 1] 465 ld (x), a 00833E 466 00104$: 467 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 658: } 00833E 84 [ 1] 468 pop a 00833F 81 [ 4] 469 ret 470 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 667: void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState) 471 ; ----------------------------------------- 472 ; function USART_SmartCardNACKCmd 473 ; ----------------------------------------- 008340 474 _USART_SmartCardNACKCmd: 008340 88 [ 1] 475 push a 008341 6B 01 [ 1] 476 ld (0x01, sp), a 477 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 674: USARTx->CR5 |= USART_CR5_NACK; 008343 1C 00 08 [ 2] 478 addw x, #0x0008 008346 F6 [ 1] 479 ld a, (x) 480 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 671: if (NewState != DISABLE) 008347 0D 01 [ 1] 481 tnz (0x01, sp) 008349 27 05 [ 1] 482 jreq 00102$ 483 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 674: USARTx->CR5 |= USART_CR5_NACK; 00834B AA 10 [ 1] 484 or a, #0x10 00834D F7 [ 1] 485 ld (x), a 00834E 20 03 [ 2] 486 jra 00104$ 008350 487 00102$: 488 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 679: USARTx->CR5 &= ((uint8_t)~(USART_CR5_NACK)); 008350 A4 EF [ 1] 489 and a, #0xef 008352 F7 [ 1] 490 ld (x), a 008353 491 00104$: 492 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 681: } 008353 84 [ 1] 493 pop a 008354 81 [ 4] 494 ret 495 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 690: void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime) 496 ; ----------------------------------------- 497 ; function USART_SetGuardTime 498 ; ----------------------------------------- 008355 499 _USART_SetGuardTime: 500 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 693: USARTx->GTR = USART_GuardTime; 008355 1C 00 09 [ 2] 501 addw x, #0x0009 008358 F7 [ 1] 502 ld (x), a 503 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 694: } 008359 81 [ 4] 504 ret 505 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 751: void USART_IrDAConfig(USART_TypeDef* USARTx, USART_IrDAMode_TypeDef USART_IrDAMode) 506 ; ----------------------------------------- 507 ; function USART_IrDAConfig 508 ; ----------------------------------------- 00835A 509 _USART_IrDAConfig: 00835A 88 [ 1] 510 push a 00835B 6B 01 [ 1] 511 ld (0x01, sp), a 512 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 757: USARTx->CR5 |= USART_CR5_IRLP; 00835D 1C 00 08 [ 2] 513 addw x, #0x0008 008360 F6 [ 1] 514 ld a, (x) 515 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 755: if (USART_IrDAMode != USART_IrDAMode_Normal) 008361 0D 01 [ 1] 516 tnz (0x01, sp) 008363 27 05 [ 1] 517 jreq 00102$ 518 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 757: USARTx->CR5 |= USART_CR5_IRLP; 008365 AA 04 [ 1] 519 or a, #0x04 008367 F7 [ 1] 520 ld (x), a 008368 20 03 [ 2] 521 jra 00104$ 00836A 522 00102$: 523 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 761: USARTx->CR5 &= ((uint8_t)~USART_CR5_IRLP); 00836A A4 FB [ 1] 524 and a, #0xfb 00836C F7 [ 1] 525 ld (x), a 00836D 526 00104$: 527 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 763: } 00836D 84 [ 1] 528 pop a 00836E 81 [ 4] 529 ret 530 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 772: void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState) 531 ; ----------------------------------------- 532 ; function USART_IrDACmd 533 ; ----------------------------------------- 00836F 534 _USART_IrDACmd: 00836F 88 [ 1] 535 push a 008370 6B 01 [ 1] 536 ld (0x01, sp), a 537 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 781: USARTx->CR5 |= USART_CR5_IREN; 008372 1C 00 08 [ 2] 538 addw x, #0x0008 008375 F6 [ 1] 539 ld a, (x) 540 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 778: if (NewState != DISABLE) 008376 0D 01 [ 1] 541 tnz (0x01, sp) 008378 27 05 [ 1] 542 jreq 00102$ 543 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 781: USARTx->CR5 |= USART_CR5_IREN; 00837A AA 02 [ 1] 544 or a, #0x02 00837C F7 [ 1] 545 ld (x), a 00837D 20 03 [ 2] 546 jra 00104$ 00837F 547 00102$: 548 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 786: USARTx->CR5 &= ((uint8_t)~USART_CR5_IREN); 00837F A4 FD [ 1] 549 and a, #0xfd 008381 F7 [ 1] 550 ld (x), a 008382 551 00104$: 552 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 788: } 008382 84 [ 1] 553 pop a 008383 81 [ 4] 554 ret 555 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 818: void USART_DMACmd(USART_TypeDef* USARTx, USART_DMAReq_TypeDef USART_DMAReq, 556 ; ----------------------------------------- 557 ; function USART_DMACmd 558 ; ----------------------------------------- 008384 559 _USART_DMACmd: 008384 88 [ 1] 560 push a 561 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 829: USARTx->CR5 |= (uint8_t) USART_DMAReq; 008385 1C 00 08 [ 2] 562 addw x, #0x0008 008388 88 [ 1] 563 push a 008389 F6 [ 1] 564 ld a, (x) 00838A 6B 02 [ 1] 565 ld (0x02, sp), a 00838C 84 [ 1] 566 pop a 567 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 825: if (NewState != DISABLE) 00838D 0D 04 [ 1] 568 tnz (0x04, sp) 00838F 27 05 [ 1] 569 jreq 00102$ 570 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 829: USARTx->CR5 |= (uint8_t) USART_DMAReq; 008391 1A 01 [ 1] 571 or a, (0x01, sp) 008393 F7 [ 1] 572 ld (x), a 008394 20 04 [ 2] 573 jra 00104$ 008396 574 00102$: 575 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 835: USARTx->CR5 &= (uint8_t)~USART_DMAReq; 008396 43 [ 1] 576 cpl a 008397 14 01 [ 1] 577 and a, (0x01, sp) 008399 F7 [ 1] 578 ld (x), a 00839A 579 00104$: 580 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 837: } 00839A 84 [ 1] 581 pop a 00839B 85 [ 2] 582 popw x 00839C 84 [ 1] 583 pop a 00839D FC [ 2] 584 jp (x) 585 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 939: void USART_ITConfig(USART_TypeDef* USARTx, USART_IT_TypeDef USART_IT, FunctionalState NewState) 586 ; ----------------------------------------- 587 ; function USART_ITConfig 588 ; ----------------------------------------- 00839E 589 _USART_ITConfig: 00839E 52 09 [ 2] 590 sub sp, #9 0083A0 1F 08 [ 2] 591 ldw (0x08, sp), x 592 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 946: usartreg = (uint8_t)((uint16_t)USART_IT >> 0x08); 0083A2 1E 0C [ 2] 593 ldw x, (0x0c, sp) 594 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 948: itpos = (uint8_t)((uint8_t)1 << (uint8_t)((uint8_t)USART_IT & (uint8_t)0x0F)); 0083A4 7B 0D [ 1] 595 ld a, (0x0d, sp) 0083A6 A4 0F [ 1] 596 and a, #0x0f 0083A8 88 [ 1] 597 push a 0083A9 A6 01 [ 1] 598 ld a, #0x01 0083AB 6B 08 [ 1] 599 ld (0x08, sp), a 0083AD 84 [ 1] 600 pop a 0083AE 4D [ 1] 601 tnz a 0083AF 27 05 [ 1] 602 jreq 00154$ 0083B1 603 00153$: 0083B1 08 07 [ 1] 604 sll (0x07, sp) 0083B3 4A [ 1] 605 dec a 0083B4 26 FB [ 1] 606 jrne 00153$ 0083B6 607 00154$: 608 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 953: if (usartreg == 0x01) 0083B6 9E [ 1] 609 ld a, xh 0083B7 4A [ 1] 610 dec a 0083B8 26 05 [ 1] 611 jrne 00156$ 0083BA A6 01 [ 1] 612 ld a, #0x01 0083BC 6B 01 [ 1] 613 ld (0x01, sp), a 0083BE C5 614 .byte 0xc5 0083BF 615 00156$: 0083BF 0F 01 [ 1] 616 clr (0x01, sp) 0083C1 617 00157$: 618 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 955: USARTx->CR1 |= itpos; 0083C1 16 08 [ 2] 619 ldw y, (0x08, sp) 0083C3 72 A9 00 04 [ 2] 620 addw y, #0x0004 0083C7 17 02 [ 2] 621 ldw (0x02, sp), y 622 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 957: else if (usartreg == 0x05) 0083C9 9E [ 1] 623 ld a, xh 0083CA A0 05 [ 1] 624 sub a, #0x05 0083CC 26 04 [ 1] 625 jrne 00159$ 0083CE 4C [ 1] 626 inc a 0083CF 6B 04 [ 1] 627 ld (0x04, sp), a 0083D1 C5 628 .byte 0xc5 0083D2 629 00159$: 0083D2 0F 04 [ 1] 630 clr (0x04, sp) 0083D4 631 00160$: 632 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 959: USARTx->CR5 |= itpos; 0083D4 1E 08 [ 2] 633 ldw x, (0x08, sp) 0083D6 1C 00 08 [ 2] 634 addw x, #0x0008 0083D9 1F 05 [ 2] 635 ldw (0x05, sp), x 636 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 964: USARTx->CR2 |= itpos; 0083DB 1E 08 [ 2] 637 ldw x, (0x08, sp) 0083DD 1C 00 05 [ 2] 638 addw x, #0x0005 639 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 950: if (NewState != DISABLE) 0083E0 0D 0E [ 1] 640 tnz (0x0e, sp) 0083E2 27 22 [ 1] 641 jreq 00114$ 642 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 953: if (usartreg == 0x01) 0083E4 0D 01 [ 1] 643 tnz (0x01, sp) 0083E6 27 0A [ 1] 644 jreq 00105$ 645 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 955: USARTx->CR1 |= itpos; 0083E8 1E 02 [ 2] 646 ldw x, (0x02, sp) 0083EA F6 [ 1] 647 ld a, (x) 0083EB 1A 07 [ 1] 648 or a, (0x07, sp) 0083ED 1E 02 [ 2] 649 ldw x, (0x02, sp) 0083EF F7 [ 1] 650 ld (x), a 0083F0 20 36 [ 2] 651 jra 00116$ 0083F2 652 00105$: 653 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 957: else if (usartreg == 0x05) 0083F2 0D 04 [ 1] 654 tnz (0x04, sp) 0083F4 27 0A [ 1] 655 jreq 00102$ 656 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 959: USARTx->CR5 |= itpos; 0083F6 1E 05 [ 2] 657 ldw x, (0x05, sp) 0083F8 F6 [ 1] 658 ld a, (x) 0083F9 1A 07 [ 1] 659 or a, (0x07, sp) 0083FB 1E 05 [ 2] 660 ldw x, (0x05, sp) 0083FD F7 [ 1] 661 ld (x), a 0083FE 20 28 [ 2] 662 jra 00116$ 008400 663 00102$: 664 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 964: USARTx->CR2 |= itpos; 008400 F6 [ 1] 665 ld a, (x) 008401 1A 07 [ 1] 666 or a, (0x07, sp) 008403 F7 [ 1] 667 ld (x), a 008404 20 22 [ 2] 668 jra 00116$ 008406 669 00114$: 670 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 972: USARTx->CR1 &= (uint8_t)(~itpos); 008406 03 07 [ 1] 671 cpl (0x07, sp) 672 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 970: if (usartreg == 0x01) 008408 0D 01 [ 1] 673 tnz (0x01, sp) 00840A 27 0A [ 1] 674 jreq 00111$ 675 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 972: USARTx->CR1 &= (uint8_t)(~itpos); 00840C 1E 02 [ 2] 676 ldw x, (0x02, sp) 00840E F6 [ 1] 677 ld a, (x) 00840F 14 07 [ 1] 678 and a, (0x07, sp) 008411 1E 02 [ 2] 679 ldw x, (0x02, sp) 008413 F7 [ 1] 680 ld (x), a 008414 20 12 [ 2] 681 jra 00116$ 008416 682 00111$: 683 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 974: else if (usartreg == 0x05) 008416 0D 04 [ 1] 684 tnz (0x04, sp) 008418 27 0A [ 1] 685 jreq 00108$ 686 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 976: USARTx->CR5 &= (uint8_t)(~itpos); 00841A 1E 05 [ 2] 687 ldw x, (0x05, sp) 00841C F6 [ 1] 688 ld a, (x) 00841D 14 07 [ 1] 689 and a, (0x07, sp) 00841F 1E 05 [ 2] 690 ldw x, (0x05, sp) 008421 F7 [ 1] 691 ld (x), a 008422 20 04 [ 2] 692 jra 00116$ 008424 693 00108$: 694 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 981: USARTx->CR2 &= (uint8_t)(~itpos); 008424 F6 [ 1] 695 ld a, (x) 008425 14 07 [ 1] 696 and a, (0x07, sp) 008427 F7 [ 1] 697 ld (x), a 008428 698 00116$: 699 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 984: } 008428 1E 0A [ 2] 700 ldw x, (10, sp) 00842A 5B 0E [ 2] 701 addw sp, #14 00842C FC [ 2] 702 jp (x) 703 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1002: FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, USART_FLAG_TypeDef USART_FLAG) 704 ; ----------------------------------------- 705 ; function USART_GetFlagStatus 706 ; ----------------------------------------- 00842D 707 _USART_GetFlagStatus: 00842D 88 [ 1] 708 push a 709 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1009: if (USART_FLAG == USART_FLAG_SBK) 00842E 16 04 [ 2] 710 ldw y, (0x04, sp) 711 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1011: if ((USARTx->CR2 & (uint8_t)USART_FLAG) != (uint8_t)0x00) 008430 7B 05 [ 1] 712 ld a, (0x05, sp) 008432 6B 01 [ 1] 713 ld (0x01, sp), a 714 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1009: if (USART_FLAG == USART_FLAG_SBK) 008434 90 A3 01 01 [ 2] 715 cpw y, #0x0101 008438 26 0D [ 1] 716 jrne 00108$ 717 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1011: if ((USARTx->CR2 & (uint8_t)USART_FLAG) != (uint8_t)0x00) 00843A E6 05 [ 1] 718 ld a, (0x5, x) 00843C 14 01 [ 1] 719 and a, (0x01, sp) 00843E 27 04 [ 1] 720 jreq 00102$ 721 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1014: status = SET; 008440 A6 01 [ 1] 722 ld a, #0x01 008442 20 0C [ 2] 723 jra 00109$ 008444 724 00102$: 725 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1019: status = RESET; 008444 4F [ 1] 726 clr a 008445 20 09 [ 2] 727 jra 00109$ 008447 728 00108$: 729 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1024: if ((USARTx->SR & (uint8_t)USART_FLAG) != (uint8_t)0x00) 008447 F6 [ 1] 730 ld a, (x) 008448 14 01 [ 1] 731 and a, (0x01, sp) 00844A 27 03 [ 1] 732 jreq 00105$ 733 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1027: status = SET; 00844C A6 01 [ 1] 734 ld a, #0x01 735 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1032: status = RESET; 00844E 21 736 .byte 0x21 00844F 737 00105$: 00844F 4F [ 1] 738 clr a 008450 739 00109$: 740 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1036: return status; 741 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1037: } 008450 1E 02 [ 2] 742 ldw x, (2, sp) 008452 5B 05 [ 2] 743 addw sp, #5 008454 FC [ 2] 744 jp (x) 745 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1060: void USART_ClearFlag(USART_TypeDef* USARTx, USART_FLAG_TypeDef USART_FLAG) 746 ; ----------------------------------------- 747 ; function USART_ClearFlag 748 ; ----------------------------------------- 008455 749 _USART_ClearFlag: 750 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1065: USARTx->SR = (uint8_t)((uint16_t)~((uint16_t)USART_FLAG)); 008455 16 03 [ 2] 751 ldw y, (0x03, sp) 008457 90 53 [ 2] 752 cplw y 008459 90 9F [ 1] 753 ld a, yl 00845B F7 [ 1] 754 ld (x), a 755 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1066: } 00845C 1E 01 [ 2] 756 ldw x, (1, sp) 00845E 5B 04 [ 2] 757 addw sp, #4 008460 FC [ 2] 758 jp (x) 759 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1083: ITStatus USART_GetITStatus(USART_TypeDef* USARTx, USART_IT_TypeDef USART_IT) 760 ; ----------------------------------------- 761 ; function USART_GetITStatus 762 ; ----------------------------------------- 008461 763 _USART_GetITStatus: 008461 52 09 [ 2] 764 sub sp, #9 008463 1F 08 [ 2] 765 ldw (0x08, sp), x 766 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1096: itpos = (uint8_t)((uint8_t)1 << (uint8_t)((uint8_t)USART_IT & (uint8_t)0x0F)); 008465 7B 0D [ 1] 767 ld a, (0x0d, sp) 008467 97 [ 1] 768 ld xl, a 008468 A4 0F [ 1] 769 and a, #0x0f 00846A 88 [ 1] 770 push a 00846B A6 01 [ 1] 771 ld a, #0x01 00846D 6B 04 [ 1] 772 ld (0x04, sp), a 00846F 84 [ 1] 773 pop a 008470 4D [ 1] 774 tnz a 008471 27 05 [ 1] 775 jreq 00179$ 008473 776 00178$: 008473 08 03 [ 1] 777 sll (0x03, sp) 008475 4A [ 1] 778 dec a 008476 26 FB [ 1] 779 jrne 00178$ 008478 780 00179$: 781 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1098: itmask1 = (uint8_t)((uint8_t)USART_IT >> (uint8_t)4); 008478 9F [ 1] 782 ld a, xl 008479 4E [ 1] 783 swap a 00847A A4 0F [ 1] 784 and a, #0x0f 785 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1100: itmask2 = (uint8_t)((uint8_t)1 << itmask1); 00847C 88 [ 1] 786 push a 00847D A6 01 [ 1] 787 ld a, #0x01 00847F 6B 08 [ 1] 788 ld (0x08, sp), a 008481 84 [ 1] 789 pop a 008482 4D [ 1] 790 tnz a 008483 27 05 [ 1] 791 jreq 00181$ 008485 792 00180$: 008485 08 07 [ 1] 793 sll (0x07, sp) 008487 4A [ 1] 794 dec a 008488 26 FB [ 1] 795 jrne 00180$ 00848A 796 00181$: 797 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1103: if (USART_IT == USART_IT_PE) 00848A 16 0C [ 2] 798 ldw y, (0x0c, sp) 00848C 17 01 [ 2] 799 ldw (0x01, sp), y 800 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1109: if (((USARTx->SR & itpos) != (uint8_t)0x00) && enablestatus) 00848E 16 08 [ 2] 801 ldw y, (0x08, sp) 008490 17 04 [ 2] 802 ldw (0x04, sp), y 803 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1103: if (USART_IT == USART_IT_PE) 008492 1E 01 [ 2] 804 ldw x, (0x01, sp) 008494 A3 01 00 [ 2] 805 cpw x, #0x0100 008497 26 1D [ 1] 806 jrne 00118$ 807 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1106: enablestatus = (uint8_t)((uint8_t)USARTx->CR1 & itmask2); 008499 16 08 [ 2] 808 ldw y, (0x08, sp) 00849B 17 01 [ 2] 809 ldw (0x01, sp), y 00849D 93 [ 1] 810 ldw x, y 00849E E6 04 [ 1] 811 ld a, (0x4, x) 0084A0 14 07 [ 1] 812 and a, (0x07, sp) 0084A2 6B 07 [ 1] 813 ld (0x07, sp), a 814 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1109: if (((USARTx->SR & itpos) != (uint8_t)0x00) && enablestatus) 0084A4 1E 04 [ 2] 815 ldw x, (0x04, sp) 0084A6 F6 [ 1] 816 ld a, (x) 0084A7 14 03 [ 1] 817 and a, (0x03, sp) 0084A9 27 08 [ 1] 818 jreq 00102$ 0084AB 0D 07 [ 1] 819 tnz (0x07, sp) 0084AD 27 04 [ 1] 820 jreq 00102$ 821 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1112: pendingbitstatus = SET; 0084AF A6 01 [ 1] 822 ld a, #0x01 0084B1 20 41 [ 2] 823 jra 00119$ 0084B3 824 00102$: 825 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1117: pendingbitstatus = RESET; 0084B3 4F [ 1] 826 clr a 0084B4 20 3E [ 2] 827 jra 00119$ 0084B6 828 00118$: 829 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1124: enablestatus = (uint8_t)((uint8_t)USARTx->CR2 & itmask2); 0084B6 1E 08 [ 2] 830 ldw x, (0x08, sp) 0084B8 E6 05 [ 1] 831 ld a, (0x5, x) 0084BA 14 07 [ 1] 832 and a, (0x07, sp) 833 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1121: else if (USART_IT == USART_IT_OR) 0084BC 1E 01 [ 2] 834 ldw x, (0x01, sp) 0084BE A3 02 35 [ 2] 835 cpw x, #0x0235 0084C1 26 20 [ 1] 836 jrne 00115$ 837 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1124: enablestatus = (uint8_t)((uint8_t)USARTx->CR2 & itmask2); 0084C3 6B 06 [ 1] 838 ld (0x06, sp), a 839 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1127: temp = (uint8_t)(USARTx->CR5 & USART_CR5_EIE); 0084C5 1E 08 [ 2] 840 ldw x, (0x08, sp) 0084C7 E6 08 [ 1] 841 ld a, (0x8, x) 0084C9 A4 01 [ 1] 842 and a, #0x01 0084CB 6B 07 [ 1] 843 ld (0x07, sp), a 844 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1129: if (( (USARTx->SR & itpos) != 0x00) && ((enablestatus || temp))) 0084CD 1E 04 [ 2] 845 ldw x, (0x04, sp) 0084CF F6 [ 1] 846 ld a, (x) 0084D0 14 03 [ 1] 847 and a, (0x03, sp) 0084D2 27 0C [ 1] 848 jreq 00106$ 0084D4 0D 06 [ 1] 849 tnz (0x06, sp) 0084D6 26 04 [ 1] 850 jrne 00105$ 0084D8 0D 07 [ 1] 851 tnz (0x07, sp) 0084DA 27 04 [ 1] 852 jreq 00106$ 0084DC 853 00105$: 854 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1132: pendingbitstatus = SET; 0084DC A6 01 [ 1] 855 ld a, #0x01 0084DE 20 14 [ 2] 856 jra 00119$ 0084E0 857 00106$: 858 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1137: pendingbitstatus = RESET; 0084E0 4F [ 1] 859 clr a 0084E1 20 11 [ 2] 860 jra 00119$ 0084E3 861 00115$: 862 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1144: enablestatus = (uint8_t)((uint8_t)USARTx->CR2 & itmask2); 0084E3 6B 07 [ 1] 863 ld (0x07, sp), a 864 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1146: if (((USARTx->SR & itpos) != (uint8_t)0x00) && enablestatus) 0084E5 1E 04 [ 2] 865 ldw x, (0x04, sp) 0084E7 F6 [ 1] 866 ld a, (x) 0084E8 14 03 [ 1] 867 and a, (0x03, sp) 0084EA 27 07 [ 1] 868 jreq 00111$ 0084EC 0D 07 [ 1] 869 tnz (0x07, sp) 0084EE 27 03 [ 1] 870 jreq 00111$ 871 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1149: pendingbitstatus = SET; 0084F0 A6 01 [ 1] 872 ld a, #0x01 873 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1154: pendingbitstatus = RESET; 0084F2 21 874 .byte 0x21 0084F3 875 00111$: 0084F3 4F [ 1] 876 clr a 0084F4 877 00119$: 878 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1159: return pendingbitstatus; 879 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1160: } 0084F4 1E 0A [ 2] 880 ldw x, (10, sp) 0084F6 5B 0D [ 2] 881 addw sp, #13 0084F8 FC [ 2] 882 jp (x) 883 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1183: void USART_ClearITPendingBit(USART_TypeDef* USARTx, USART_IT_TypeDef USART_IT) 884 ; ----------------------------------------- 885 ; function USART_ClearITPendingBit 886 ; ----------------------------------------- 0084F9 887 _USART_ClearITPendingBit: 888 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1188: USARTx->SR &= (uint8_t)(~USART_SR_TC); 0084F9 F6 [ 1] 889 ld a, (x) 0084FA A4 BF [ 1] 890 and a, #0xbf 0084FC F7 [ 1] 891 ld (x), a 892 ; ../inc/stm8l151x/src/stm8l15x_usart.c: 1189: } 0084FD 1E 01 [ 2] 893 ldw x, (1, sp) 0084FF 5B 04 [ 2] 894 addw sp, #4 008501 FC [ 2] 895 jp (x) 896 .area CODE 897 .area CONST 898 .area INITIALIZER 899 .area CABS (ABS)