Initial commit - sync AliceRC to Gitea
This commit is contained in:
@@ -0,0 +1,680 @@
|
||||
1 ;--------------------------------------------------------
|
||||
2 ; File Created by SDCC : free open source ANSI-C Compiler
|
||||
3 ; Version 4.2.0 #13081 (Linux)
|
||||
4 ;--------------------------------------------------------
|
||||
5 .module sbus
|
||||
6 .optsdcc -mmcs51 --model-small
|
||||
7
|
||||
8 ;--------------------------------------------------------
|
||||
9 ; Public variables in this module
|
||||
10 ;--------------------------------------------------------
|
||||
11 .globl _sbus_make_uart_frame_PARM_2
|
||||
12 .globl _sbus_unpack_channels_PARM_2
|
||||
13 .globl _EADC
|
||||
14 .globl _ET1
|
||||
15 .globl _ET0
|
||||
16 .globl _ES
|
||||
17 .globl _EA
|
||||
18 .globl _REN
|
||||
19 .globl _RI
|
||||
20 .globl _TI
|
||||
21 .globl _TR1
|
||||
22 .globl _TF1
|
||||
23 .globl _IT0
|
||||
24 .globl _IE0
|
||||
25 .globl _TR0
|
||||
26 .globl _TF0
|
||||
27 .globl _CMPCR2
|
||||
28 .globl _CMPCR1
|
||||
29 .globl _TA
|
||||
30 .globl _IRCBAND_REG
|
||||
31 .globl _IAP_TPS
|
||||
32 .globl _IAP_CONTR
|
||||
33 .globl _IAP_TRIG
|
||||
34 .globl _IAP_CMD
|
||||
35 .globl _IAP_ADDRL
|
||||
36 .globl _IAP_ADDRH
|
||||
37 .globl _IAP_DATA
|
||||
38 .globl _WDT_CONTR
|
||||
39 .globl _PCA_PWM3
|
||||
40 .globl _PCA_PWM2
|
||||
41 .globl _PCA_PWM1
|
||||
42 .globl _PCA_PWM0
|
||||
43 .globl _CCAP3L
|
||||
44 .globl _CCAP2L
|
||||
45 .globl _CCAP1L
|
||||
46 .globl _CCAP0L
|
||||
47 .globl _CCAPM3
|
||||
48 .globl _CCAPM2
|
||||
49 .globl _CCAPM1
|
||||
50 .globl _CCAPM0
|
||||
51 .globl _CMOD
|
||||
52 .globl _CCON
|
||||
53 .globl _ADCTIM_X
|
||||
54 .globl _ADCCFG
|
||||
55 .globl _ADC_RESL
|
||||
56 .globl _ADC_RES
|
||||
57 .globl _ADC_CONTR
|
||||
58 .globl _SPDAT
|
||||
59 .globl _SPCTL
|
||||
60 .globl _SPSTAT
|
||||
61 .globl _IP2H
|
||||
62 .globl _IP2
|
||||
63 .globl _IP
|
||||
64 .globl _IE2
|
||||
65 .globl _IE
|
||||
66 .globl _BRT
|
||||
67 .globl _P_SW1
|
||||
68 .globl _SADEN
|
||||
69 .globl _SADDR
|
||||
70 .globl _S2BUF
|
||||
71 .globl _S2CON
|
||||
72 .globl _SBUF
|
||||
73 .globl _SCON
|
||||
74 .globl _TM4PS_X
|
||||
75 .globl _TM3PS_X
|
||||
76 .globl _TM2PS_X
|
||||
77 .globl _T4T3M
|
||||
78 .globl _T4L
|
||||
79 .globl _T4H
|
||||
80 .globl _T3L
|
||||
81 .globl _T3H
|
||||
82 .globl _T2L
|
||||
83 .globl _T2H
|
||||
84 .globl _INTCLKO
|
||||
85 .globl _AUXR
|
||||
86 .globl _TH1
|
||||
87 .globl _TH0
|
||||
88 .globl _TL1
|
||||
89 .globl _TL0
|
||||
90 .globl _TMOD
|
||||
91 .globl _TCON
|
||||
92 .globl _P_SW2
|
||||
93 .globl _P5M0
|
||||
94 .globl _P5M1
|
||||
95 .globl _P4M0
|
||||
96 .globl _P4M1
|
||||
97 .globl _P3M0
|
||||
98 .globl _P3M1
|
||||
99 .globl _P2M0
|
||||
100 .globl _P2M1
|
||||
101 .globl _P1M0
|
||||
102 .globl _P1M1
|
||||
103 .globl _P0M0
|
||||
104 .globl _P0M1
|
||||
105 .globl _PSW
|
||||
106 .globl _B
|
||||
107 .globl _ACC
|
||||
108 .globl _PCON
|
||||
109 .globl _DPH
|
||||
110 .globl _DPL
|
||||
111 .globl _SP
|
||||
112 .globl _P5
|
||||
113 .globl _P4
|
||||
114 .globl _P3
|
||||
115 .globl _P2
|
||||
116 .globl _P1
|
||||
117 .globl _P0
|
||||
118 .globl _sbus_unpack_channels
|
||||
119 .globl _sbus_make_uart_frame
|
||||
120 ;--------------------------------------------------------
|
||||
121 ; special function registers
|
||||
122 ;--------------------------------------------------------
|
||||
123 .area RSEG (ABS,DATA)
|
||||
000000 124 .org 0x0000
|
||||
000080 125 _P0 = 0x0080
|
||||
000090 126 _P1 = 0x0090
|
||||
0000A0 127 _P2 = 0x00a0
|
||||
0000B0 128 _P3 = 0x00b0
|
||||
0000C0 129 _P4 = 0x00c0
|
||||
0000C8 130 _P5 = 0x00c8
|
||||
000081 131 _SP = 0x0081
|
||||
000082 132 _DPL = 0x0082
|
||||
000083 133 _DPH = 0x0083
|
||||
000087 134 _PCON = 0x0087
|
||||
0000E0 135 _ACC = 0x00e0
|
||||
0000F0 136 _B = 0x00f0
|
||||
0000D0 137 _PSW = 0x00d0
|
||||
000093 138 _P0M1 = 0x0093
|
||||
000094 139 _P0M0 = 0x0094
|
||||
000091 140 _P1M1 = 0x0091
|
||||
000092 141 _P1M0 = 0x0092
|
||||
000095 142 _P2M1 = 0x0095
|
||||
000096 143 _P2M0 = 0x0096
|
||||
0000B1 144 _P3M1 = 0x00b1
|
||||
0000B2 145 _P3M0 = 0x00b2
|
||||
0000B3 146 _P4M1 = 0x00b3
|
||||
0000B4 147 _P4M0 = 0x00b4
|
||||
0000C9 148 _P5M1 = 0x00c9
|
||||
0000CA 149 _P5M0 = 0x00ca
|
||||
0000BA 150 _P_SW2 = 0x00ba
|
||||
000088 151 _TCON = 0x0088
|
||||
000089 152 _TMOD = 0x0089
|
||||
00008A 153 _TL0 = 0x008a
|
||||
00008B 154 _TL1 = 0x008b
|
||||
00008C 155 _TH0 = 0x008c
|
||||
00008D 156 _TH1 = 0x008d
|
||||
00008E 157 _AUXR = 0x008e
|
||||
00008F 158 _INTCLKO = 0x008f
|
||||
0000D6 159 _T2H = 0x00d6
|
||||
0000D7 160 _T2L = 0x00d7
|
||||
0000D4 161 _T3H = 0x00d4
|
||||
0000D5 162 _T3L = 0x00d5
|
||||
0000D2 163 _T4H = 0x00d2
|
||||
0000D3 164 _T4L = 0x00d3
|
||||
0000D1 165 _T4T3M = 0x00d1
|
||||
00FEA1 166 _TM2PS_X = 0xfea1
|
||||
00FEA2 167 _TM3PS_X = 0xfea2
|
||||
00FEA3 168 _TM4PS_X = 0xfea3
|
||||
000098 169 _SCON = 0x0098
|
||||
000099 170 _SBUF = 0x0099
|
||||
00009A 171 _S2CON = 0x009a
|
||||
00009B 172 _S2BUF = 0x009b
|
||||
0000A9 173 _SADDR = 0x00a9
|
||||
0000B9 174 _SADEN = 0x00b9
|
||||
0000A2 175 _P_SW1 = 0x00a2
|
||||
00009C 176 _BRT = 0x009c
|
||||
0000A8 177 _IE = 0x00a8
|
||||
0000AF 178 _IE2 = 0x00af
|
||||
0000B8 179 _IP = 0x00b8
|
||||
0000B6 180 _IP2 = 0x00b6
|
||||
0000B7 181 _IP2H = 0x00b7
|
||||
0000CD 182 _SPSTAT = 0x00cd
|
||||
0000CE 183 _SPCTL = 0x00ce
|
||||
0000CF 184 _SPDAT = 0x00cf
|
||||
0000BC 185 _ADC_CONTR = 0x00bc
|
||||
0000BD 186 _ADC_RES = 0x00bd
|
||||
0000BE 187 _ADC_RESL = 0x00be
|
||||
0000DE 188 _ADCCFG = 0x00de
|
||||
00FEA8 189 _ADCTIM_X = 0xfea8
|
||||
0000D8 190 _CCON = 0x00d8
|
||||
0000D9 191 _CMOD = 0x00d9
|
||||
0000DA 192 _CCAPM0 = 0x00da
|
||||
0000DB 193 _CCAPM1 = 0x00db
|
||||
0000DC 194 _CCAPM2 = 0x00dc
|
||||
0000DD 195 _CCAPM3 = 0x00dd
|
||||
0000EA 196 _CCAP0L = 0x00ea
|
||||
0000EB 197 _CCAP1L = 0x00eb
|
||||
0000EC 198 _CCAP2L = 0x00ec
|
||||
0000ED 199 _CCAP3L = 0x00ed
|
||||
0000F2 200 _PCA_PWM0 = 0x00f2
|
||||
0000F3 201 _PCA_PWM1 = 0x00f3
|
||||
0000F4 202 _PCA_PWM2 = 0x00f4
|
||||
0000F5 203 _PCA_PWM3 = 0x00f5
|
||||
0000C1 204 _WDT_CONTR = 0x00c1
|
||||
0000C2 205 _IAP_DATA = 0x00c2
|
||||
0000C3 206 _IAP_ADDRH = 0x00c3
|
||||
0000C4 207 _IAP_ADDRL = 0x00c4
|
||||
0000C5 208 _IAP_CMD = 0x00c5
|
||||
0000C6 209 _IAP_TRIG = 0x00c6
|
||||
0000C7 210 _IAP_CONTR = 0x00c7
|
||||
0000F7 211 _IAP_TPS = 0x00f7
|
||||
00009D 212 _IRCBAND_REG = 0x009d
|
||||
0000AE 213 _TA = 0x00ae
|
||||
0000E6 214 _CMPCR1 = 0x00e6
|
||||
0000E7 215 _CMPCR2 = 0x00e7
|
||||
216 ;--------------------------------------------------------
|
||||
217 ; special function bits
|
||||
218 ;--------------------------------------------------------
|
||||
219 .area RSEG (ABS,DATA)
|
||||
000000 220 .org 0x0000
|
||||
00008D 221 _TF0 = 0x008d
|
||||
00008C 222 _TR0 = 0x008c
|
||||
000089 223 _IE0 = 0x0089
|
||||
000088 224 _IT0 = 0x0088
|
||||
00008F 225 _TF1 = 0x008f
|
||||
00008E 226 _TR1 = 0x008e
|
||||
000099 227 _TI = 0x0099
|
||||
000098 228 _RI = 0x0098
|
||||
00009C 229 _REN = 0x009c
|
||||
0000AF 230 _EA = 0x00af
|
||||
0000AC 231 _ES = 0x00ac
|
||||
0000A9 232 _ET0 = 0x00a9
|
||||
0000AB 233 _ET1 = 0x00ab
|
||||
0000AD 234 _EADC = 0x00ad
|
||||
235 ;--------------------------------------------------------
|
||||
236 ; overlayable register banks
|
||||
237 ;--------------------------------------------------------
|
||||
238 .area REG_BANK_0 (REL,OVR,DATA)
|
||||
000000 239 .ds 8
|
||||
240 ;--------------------------------------------------------
|
||||
241 ; internal ram data
|
||||
242 ;--------------------------------------------------------
|
||||
243 .area DSEG (DATA)
|
||||
244 ;--------------------------------------------------------
|
||||
245 ; overlayable items in internal ram
|
||||
246 ;--------------------------------------------------------
|
||||
247 .area OSEG (OVR,DATA)
|
||||
000000 248 _sbus_unpack_channels_PARM_2:
|
||||
000000 249 .ds 3
|
||||
000003 250 _sbus_unpack_channels_in_65536_3:
|
||||
000003 251 .ds 3
|
||||
000006 252 _sbus_unpack_channels_bit_buf_65536_4:
|
||||
000006 253 .ds 4
|
||||
00000A 254 _sbus_unpack_channels_in_idx_65536_4:
|
||||
00000A 255 .ds 1
|
||||
00000B 256 _sbus_unpack_channels_i_65536_4:
|
||||
00000B 257 .ds 1
|
||||
258 .area OSEG (OVR,DATA)
|
||||
000000 259 _sbus_make_uart_frame_PARM_2:
|
||||
000000 260 .ds 3
|
||||
000003 261 _sbus_make_uart_frame_ch_65536_8:
|
||||
000003 262 .ds 3
|
||||
000006 263 _sbus_make_uart_frame_bit_buf_65536_9:
|
||||
000006 264 .ds 4
|
||||
00000A 265 _sbus_make_uart_frame_bit_count_65536_9:
|
||||
00000A 266 .ds 1
|
||||
00000B 267 _sbus_make_uart_frame_out_idx_65536_9:
|
||||
00000B 268 .ds 1
|
||||
00000C 269 _sbus_make_uart_frame_i_65536_9:
|
||||
00000C 270 .ds 1
|
||||
271 ;--------------------------------------------------------
|
||||
272 ; indirectly addressable internal ram data
|
||||
273 ;--------------------------------------------------------
|
||||
274 .area ISEG (DATA)
|
||||
275 ;--------------------------------------------------------
|
||||
276 ; absolute internal ram data
|
||||
277 ;--------------------------------------------------------
|
||||
278 .area IABS (ABS,DATA)
|
||||
279 .area IABS (ABS,DATA)
|
||||
280 ;--------------------------------------------------------
|
||||
281 ; bit data
|
||||
282 ;--------------------------------------------------------
|
||||
283 .area BSEG (BIT)
|
||||
284 ;--------------------------------------------------------
|
||||
285 ; paged external ram data
|
||||
286 ;--------------------------------------------------------
|
||||
287 .area PSEG (PAG,XDATA)
|
||||
288 ;--------------------------------------------------------
|
||||
289 ; external ram data
|
||||
290 ;--------------------------------------------------------
|
||||
291 .area XSEG (XDATA)
|
||||
292 ;--------------------------------------------------------
|
||||
293 ; absolute external ram data
|
||||
294 ;--------------------------------------------------------
|
||||
295 .area XABS (ABS,XDATA)
|
||||
296 ;--------------------------------------------------------
|
||||
297 ; external initialized ram data
|
||||
298 ;--------------------------------------------------------
|
||||
299 .area XISEG (XDATA)
|
||||
300 .area HOME (CODE)
|
||||
301 .area GSINIT0 (CODE)
|
||||
302 .area GSINIT1 (CODE)
|
||||
303 .area GSINIT2 (CODE)
|
||||
304 .area GSINIT3 (CODE)
|
||||
305 .area GSINIT4 (CODE)
|
||||
306 .area GSINIT5 (CODE)
|
||||
307 .area GSINIT (CODE)
|
||||
308 .area GSFINAL (CODE)
|
||||
309 .area CSEG (CODE)
|
||||
310 ;--------------------------------------------------------
|
||||
311 ; global & static initialisations
|
||||
312 ;--------------------------------------------------------
|
||||
313 .area HOME (CODE)
|
||||
314 .area GSINIT (CODE)
|
||||
315 .area GSFINAL (CODE)
|
||||
316 .area GSINIT (CODE)
|
||||
317 ;--------------------------------------------------------
|
||||
318 ; Home
|
||||
319 ;--------------------------------------------------------
|
||||
320 .area HOME (CODE)
|
||||
321 .area HOME (CODE)
|
||||
322 ;--------------------------------------------------------
|
||||
323 ; code
|
||||
324 ;--------------------------------------------------------
|
||||
325 .area CSEG (CODE)
|
||||
326 ;------------------------------------------------------------
|
||||
327 ;Allocation info for local variables in function 'sbus_unpack_channels'
|
||||
328 ;------------------------------------------------------------
|
||||
329 ;ch Allocated with name '_sbus_unpack_channels_PARM_2'
|
||||
330 ;in Allocated with name '_sbus_unpack_channels_in_65536_3'
|
||||
331 ;bit_buf Allocated with name '_sbus_unpack_channels_bit_buf_65536_4'
|
||||
332 ;bit_count Allocated to registers r0
|
||||
333 ;in_idx Allocated with name '_sbus_unpack_channels_in_idx_65536_4'
|
||||
334 ;i Allocated with name '_sbus_unpack_channels_i_65536_4'
|
||||
335 ;------------------------------------------------------------
|
||||
336 ; src/sbus.c:7: void sbus_unpack_channels(const uint8_t in[22], uint16_t ch[SBUS_CH_COUNT])
|
||||
337 ; -----------------------------------------
|
||||
338 ; function sbus_unpack_channels
|
||||
339 ; -----------------------------------------
|
||||
000000 340 _sbus_unpack_channels:
|
||||
000007 341 ar7 = 0x07
|
||||
000006 342 ar6 = 0x06
|
||||
000005 343 ar5 = 0x05
|
||||
000004 344 ar4 = 0x04
|
||||
000003 345 ar3 = 0x03
|
||||
000002 346 ar2 = 0x02
|
||||
000001 347 ar1 = 0x01
|
||||
000000 348 ar0 = 0x00
|
||||
000000 85 82*03 [24] 349 mov _sbus_unpack_channels_in_65536_3,dpl
|
||||
000003 85 83*04 [24] 350 mov (_sbus_unpack_channels_in_65536_3 + 1),dph
|
||||
000006 85 F0*05 [24] 351 mov (_sbus_unpack_channels_in_65536_3 + 2),b
|
||||
352 ; src/sbus.c:10: uint32_t bit_buf = 0;
|
||||
000009 E4 [12] 353 clr a
|
||||
00000A F5*06 [12] 354 mov _sbus_unpack_channels_bit_buf_65536_4,a
|
||||
00000C F5*07 [12] 355 mov (_sbus_unpack_channels_bit_buf_65536_4 + 1),a
|
||||
00000E F5*08 [12] 356 mov (_sbus_unpack_channels_bit_buf_65536_4 + 2),a
|
||||
000010 F5*09 [12] 357 mov (_sbus_unpack_channels_bit_buf_65536_4 + 3),a
|
||||
358 ; src/sbus.c:11: uint8_t bit_count = 0;
|
||||
000012 78 00 [12] 359 mov r0,#0x00
|
||||
360 ; src/sbus.c:16: while (bit_count < 11) {
|
||||
361 ; 1-genFromRTrack replaced mov _sbus_unpack_channels_in_idx_65536_4,#0x00
|
||||
000014 F5*0A [12] 362 mov _sbus_unpack_channels_in_idx_65536_4,a
|
||||
363 ; 1-genFromRTrack replaced mov _sbus_unpack_channels_i_65536_4,#0x00
|
||||
000016 F5*0B [12] 364 mov _sbus_unpack_channels_i_65536_4,a
|
||||
000018 365 00101$:
|
||||
000018 B8 0B 00 [24] 366 cjne r0,#0x0b,00118$
|
||||
00001B 367 00118$:
|
||||
00001B 50 46 [24] 368 jnc 00103$
|
||||
369 ; src/sbus.c:17: bit_buf |= ((uint32_t)in[in_idx++]) << bit_count;
|
||||
00001D E5*0A [12] 370 mov a,_sbus_unpack_channels_in_idx_65536_4
|
||||
00001F 25*03 [12] 371 add a,_sbus_unpack_channels_in_65536_3
|
||||
000021 FD [12] 372 mov r5,a
|
||||
000022 E4 [12] 373 clr a
|
||||
000023 35*04 [12] 374 addc a,(_sbus_unpack_channels_in_65536_3 + 1)
|
||||
000025 FE [12] 375 mov r6,a
|
||||
000026 AF*05 [24] 376 mov r7,(_sbus_unpack_channels_in_65536_3 + 2)
|
||||
000028 05*0A [12] 377 inc _sbus_unpack_channels_in_idx_65536_4
|
||||
00002A 8D 82 [24] 378 mov dpl,r5
|
||||
00002C 8E 83 [24] 379 mov dph,r6
|
||||
00002E 8F F0 [24] 380 mov b,r7
|
||||
000030 12r00r00 [24] 381 lcall __gptrget
|
||||
000033 FF [12] 382 mov r7,a
|
||||
000034 7D 00 [12] 383 mov r5,#0x00
|
||||
000036 7E 00 [12] 384 mov r6,#0x00
|
||||
000038 7C 00 [12] 385 mov r4,#0x00
|
||||
00003A 88 F0 [24] 386 mov b,r0
|
||||
00003C 05 F0 [12] 387 inc b
|
||||
00003E 80 0C [24] 388 sjmp 00121$
|
||||
000040 389 00120$:
|
||||
000040 EF [12] 390 mov a,r7
|
||||
000041 2F [12] 391 add a,r7
|
||||
000042 FF [12] 392 mov r7,a
|
||||
000043 ED [12] 393 mov a,r5
|
||||
000044 33 [12] 394 rlc a
|
||||
000045 FD [12] 395 mov r5,a
|
||||
000046 EE [12] 396 mov a,r6
|
||||
000047 33 [12] 397 rlc a
|
||||
000048 FE [12] 398 mov r6,a
|
||||
000049 EC [12] 399 mov a,r4
|
||||
00004A 33 [12] 400 rlc a
|
||||
00004B FC [12] 401 mov r4,a
|
||||
00004C 402 00121$:
|
||||
00004C D5 F0 F1 [24] 403 djnz b,00120$
|
||||
00004F EF [12] 404 mov a,r7
|
||||
000050 42*06 [12] 405 orl _sbus_unpack_channels_bit_buf_65536_4,a
|
||||
000052 ED [12] 406 mov a,r5
|
||||
000053 42*07 [12] 407 orl (_sbus_unpack_channels_bit_buf_65536_4 + 1),a
|
||||
000055 EE [12] 408 mov a,r6
|
||||
000056 42*08 [12] 409 orl (_sbus_unpack_channels_bit_buf_65536_4 + 2),a
|
||||
000058 EC [12] 410 mov a,r4
|
||||
000059 42*09 [12] 411 orl (_sbus_unpack_channels_bit_buf_65536_4 + 3),a
|
||||
412 ; src/sbus.c:18: bit_count += 8;
|
||||
00005B 88 07 [24] 413 mov ar7,r0
|
||||
00005D 74 08 [12] 414 mov a,#0x08
|
||||
00005F 2F [12] 415 add a,r7
|
||||
000060 F8 [12] 416 mov r0,a
|
||||
000061 80 B5 [24] 417 sjmp 00101$
|
||||
000063 418 00103$:
|
||||
419 ; src/sbus.c:20: ch[i] = (uint16_t)(bit_buf & 0x07FF);
|
||||
000063 E5*0B [12] 420 mov a,_sbus_unpack_channels_i_65536_4
|
||||
000065 75 F0 02 [24] 421 mov b,#0x02
|
||||
000068 A4 [48] 422 mul ab
|
||||
000069 25*00 [12] 423 add a,_sbus_unpack_channels_PARM_2
|
||||
00006B FD [12] 424 mov r5,a
|
||||
00006C E5*01 [12] 425 mov a,(_sbus_unpack_channels_PARM_2 + 1)
|
||||
00006E 35 F0 [12] 426 addc a,b
|
||||
000070 FE [12] 427 mov r6,a
|
||||
000071 AF*02 [24] 428 mov r7,(_sbus_unpack_channels_PARM_2 + 2)
|
||||
000073 A9*06 [24] 429 mov r1,_sbus_unpack_channels_bit_buf_65536_4
|
||||
000075 AA*07 [24] 430 mov r2,(_sbus_unpack_channels_bit_buf_65536_4 + 1)
|
||||
000077 53 02 07 [24] 431 anl ar2,#0x07
|
||||
00007A 8D 82 [24] 432 mov dpl,r5
|
||||
00007C 8E 83 [24] 433 mov dph,r6
|
||||
00007E 8F F0 [24] 434 mov b,r7
|
||||
000080 E9 [12] 435 mov a,r1
|
||||
000081 12r00r00 [24] 436 lcall __gptrput
|
||||
000084 A3 [24] 437 inc dptr
|
||||
000085 EA [12] 438 mov a,r2
|
||||
000086 12r00r00 [24] 439 lcall __gptrput
|
||||
440 ; src/sbus.c:21: bit_buf >>= 11;
|
||||
000089 85*07*06 [24] 441 mov _sbus_unpack_channels_bit_buf_65536_4,(_sbus_unpack_channels_bit_buf_65536_4 + 1)
|
||||
00008C E5*08 [12] 442 mov a,(_sbus_unpack_channels_bit_buf_65536_4 + 2)
|
||||
00008E C4 [12] 443 swap a
|
||||
00008F 23 [12] 444 rl a
|
||||
000090 C5*06 [12] 445 xch a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
000092 C4 [12] 446 swap a
|
||||
000093 23 [12] 447 rl a
|
||||
000094 54 1F [12] 448 anl a,#0x1f
|
||||
000096 65*06 [12] 449 xrl a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
000098 C5*06 [12] 450 xch a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
00009A 54 1F [12] 451 anl a,#0x1f
|
||||
00009C C5*06 [12] 452 xch a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
00009E 65*06 [12] 453 xrl a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
0000A0 C5*06 [12] 454 xch a,_sbus_unpack_channels_bit_buf_65536_4
|
||||
0000A2 F5*07 [12] 455 mov (_sbus_unpack_channels_bit_buf_65536_4 + 1),a
|
||||
0000A4 E5*09 [12] 456 mov a,(_sbus_unpack_channels_bit_buf_65536_4 + 3)
|
||||
0000A6 C4 [12] 457 swap a
|
||||
0000A7 23 [12] 458 rl a
|
||||
0000A8 54 E0 [12] 459 anl a,#0xe0
|
||||
0000AA 45*07 [12] 460 orl a,(_sbus_unpack_channels_bit_buf_65536_4 + 1)
|
||||
0000AC F5*07 [12] 461 mov (_sbus_unpack_channels_bit_buf_65536_4 + 1),a
|
||||
0000AE E5*09 [12] 462 mov a,(_sbus_unpack_channels_bit_buf_65536_4 + 3)
|
||||
0000B0 C4 [12] 463 swap a
|
||||
0000B1 23 [12] 464 rl a
|
||||
0000B2 54 1F [12] 465 anl a,#0x1f
|
||||
0000B4 F5*08 [12] 466 mov (_sbus_unpack_channels_bit_buf_65536_4 + 2),a
|
||||
0000B6 75*09 00 [24] 467 mov (_sbus_unpack_channels_bit_buf_65536_4 + 3),#0x00
|
||||
468 ; src/sbus.c:22: bit_count -= 11;
|
||||
0000B9 88 07 [24] 469 mov ar7,r0
|
||||
0000BB EF [12] 470 mov a,r7
|
||||
0000BC 24 F5 [12] 471 add a,#0xf5
|
||||
0000BE F8 [12] 472 mov r0,a
|
||||
473 ; src/sbus.c:15: for (i = 0; i < SBUS_CH_COUNT; i++) {
|
||||
0000BF 05*0B [12] 474 inc _sbus_unpack_channels_i_65536_4
|
||||
0000C1 74 F0 [12] 475 mov a,#0x100 - 0x10
|
||||
0000C3 25*0B [12] 476 add a,_sbus_unpack_channels_i_65536_4
|
||||
0000C5 40 03 [24] 477 jc 00122$
|
||||
0000C7 02r00r18 [24] 478 ljmp 00101$
|
||||
0000CA 479 00122$:
|
||||
480 ; src/sbus.c:24: }
|
||||
0000CA 22 [24] 481 ret
|
||||
482 ;------------------------------------------------------------
|
||||
483 ;Allocation info for local variables in function 'sbus_make_uart_frame'
|
||||
484 ;------------------------------------------------------------
|
||||
485 ;out Allocated with name '_sbus_make_uart_frame_PARM_2'
|
||||
486 ;ch Allocated with name '_sbus_make_uart_frame_ch_65536_8'
|
||||
487 ;bit_buf Allocated with name '_sbus_make_uart_frame_bit_buf_65536_9'
|
||||
488 ;bit_count Allocated with name '_sbus_make_uart_frame_bit_count_65536_9'
|
||||
489 ;out_idx Allocated with name '_sbus_make_uart_frame_out_idx_65536_9'
|
||||
490 ;i Allocated with name '_sbus_make_uart_frame_i_65536_9'
|
||||
491 ;------------------------------------------------------------
|
||||
492 ; src/sbus.c:26: void sbus_make_uart_frame(const uint16_t ch[SBUS_CH_COUNT], uint8_t out[25])
|
||||
493 ; -----------------------------------------
|
||||
494 ; function sbus_make_uart_frame
|
||||
495 ; -----------------------------------------
|
||||
0000CB 496 _sbus_make_uart_frame:
|
||||
0000CB 85 82*03 [24] 497 mov _sbus_make_uart_frame_ch_65536_8,dpl
|
||||
0000CE 85 83*04 [24] 498 mov (_sbus_make_uart_frame_ch_65536_8 + 1),dph
|
||||
0000D1 85 F0*05 [24] 499 mov (_sbus_make_uart_frame_ch_65536_8 + 2),b
|
||||
500 ; src/sbus.c:28: uint32_t bit_buf = 0;
|
||||
0000D4 E4 [12] 501 clr a
|
||||
0000D5 F5*06 [12] 502 mov _sbus_make_uart_frame_bit_buf_65536_9,a
|
||||
0000D7 F5*07 [12] 503 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 1),a
|
||||
0000D9 F5*08 [12] 504 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 2),a
|
||||
0000DB F5*09 [12] 505 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 3),a
|
||||
506 ; src/sbus.c:29: uint8_t bit_count = 0;
|
||||
507 ; 1-genFromRTrack replaced mov _sbus_make_uart_frame_bit_count_65536_9,#0x00
|
||||
0000DD F5*0A [12] 508 mov _sbus_make_uart_frame_bit_count_65536_9,a
|
||||
509 ; src/sbus.c:30: uint8_t out_idx = 0;
|
||||
510 ; 1-genFromRTrack replaced mov _sbus_make_uart_frame_out_idx_65536_9,#0x00
|
||||
0000DF F5*0B [12] 511 mov _sbus_make_uart_frame_out_idx_65536_9,a
|
||||
512 ; src/sbus.c:33: out[0] = 0x0F; /* start byte */
|
||||
0000E1 AD*00 [24] 513 mov r5,_sbus_make_uart_frame_PARM_2
|
||||
0000E3 AE*01 [24] 514 mov r6,(_sbus_make_uart_frame_PARM_2 + 1)
|
||||
0000E5 AF*02 [24] 515 mov r7,(_sbus_make_uart_frame_PARM_2 + 2)
|
||||
0000E7 8D 82 [24] 516 mov dpl,r5
|
||||
0000E9 8E 83 [24] 517 mov dph,r6
|
||||
0000EB 8F F0 [24] 518 mov b,r7
|
||||
0000ED 74 0F [12] 519 mov a,#0x0f
|
||||
0000EF 12r00r00 [24] 520 lcall __gptrput
|
||||
521 ; src/sbus.c:35: for (i = 0; i < SBUS_CH_COUNT; i++) {
|
||||
0000F2 75*0C 00 [24] 522 mov _sbus_make_uart_frame_i_65536_9,#0x00
|
||||
0000F5 523 00107$:
|
||||
524 ; src/sbus.c:36: bit_buf |= ((uint32_t)(ch[i] & 0x07FF)) << bit_count;
|
||||
0000F5 E5*0C [12] 525 mov a,_sbus_make_uart_frame_i_65536_9
|
||||
0000F7 75 F0 02 [24] 526 mov b,#0x02
|
||||
0000FA A4 [48] 527 mul ab
|
||||
0000FB 25*03 [12] 528 add a,_sbus_make_uart_frame_ch_65536_8
|
||||
0000FD F9 [12] 529 mov r1,a
|
||||
0000FE E5*04 [12] 530 mov a,(_sbus_make_uart_frame_ch_65536_8 + 1)
|
||||
000100 35 F0 [12] 531 addc a,b
|
||||
000102 FA [12] 532 mov r2,a
|
||||
000103 AB*05 [24] 533 mov r3,(_sbus_make_uart_frame_ch_65536_8 + 2)
|
||||
000105 89 82 [24] 534 mov dpl,r1
|
||||
000107 8A 83 [24] 535 mov dph,r2
|
||||
000109 8B F0 [24] 536 mov b,r3
|
||||
00010B 12r00r00 [24] 537 lcall __gptrget
|
||||
00010E F9 [12] 538 mov r1,a
|
||||
00010F A3 [24] 539 inc dptr
|
||||
000110 12r00r00 [24] 540 lcall __gptrget
|
||||
000113 FA [12] 541 mov r2,a
|
||||
000114 53 02 07 [24] 542 anl ar2,#0x07
|
||||
000117 7B 00 [12] 543 mov r3,#0x00
|
||||
000119 7C 00 [12] 544 mov r4,#0x00
|
||||
00011B 85*0A F0 [24] 545 mov b,_sbus_make_uart_frame_bit_count_65536_9
|
||||
00011E 05 F0 [12] 546 inc b
|
||||
000120 80 0C [24] 547 sjmp 00134$
|
||||
000122 548 00133$:
|
||||
000122 E9 [12] 549 mov a,r1
|
||||
000123 29 [12] 550 add a,r1
|
||||
000124 F9 [12] 551 mov r1,a
|
||||
000125 EA [12] 552 mov a,r2
|
||||
000126 33 [12] 553 rlc a
|
||||
000127 FA [12] 554 mov r2,a
|
||||
000128 EB [12] 555 mov a,r3
|
||||
000129 33 [12] 556 rlc a
|
||||
00012A FB [12] 557 mov r3,a
|
||||
00012B EC [12] 558 mov a,r4
|
||||
00012C 33 [12] 559 rlc a
|
||||
00012D FC [12] 560 mov r4,a
|
||||
00012E 561 00134$:
|
||||
00012E D5 F0 F1 [24] 562 djnz b,00133$
|
||||
000131 E9 [12] 563 mov a,r1
|
||||
000132 42*06 [12] 564 orl _sbus_make_uart_frame_bit_buf_65536_9,a
|
||||
000134 EA [12] 565 mov a,r2
|
||||
000135 42*07 [12] 566 orl (_sbus_make_uart_frame_bit_buf_65536_9 + 1),a
|
||||
000137 EB [12] 567 mov a,r3
|
||||
000138 42*08 [12] 568 orl (_sbus_make_uart_frame_bit_buf_65536_9 + 2),a
|
||||
00013A EC [12] 569 mov a,r4
|
||||
00013B 42*09 [12] 570 orl (_sbus_make_uart_frame_bit_buf_65536_9 + 3),a
|
||||
571 ; src/sbus.c:37: bit_count += 11;
|
||||
00013D AC*0A [24] 572 mov r4,_sbus_make_uart_frame_bit_count_65536_9
|
||||
00013F 74 0B [12] 573 mov a,#0x0b
|
||||
000141 2C [12] 574 add a,r4
|
||||
000142 F5*0A [12] 575 mov _sbus_make_uart_frame_bit_count_65536_9,a
|
||||
576 ; src/sbus.c:38: while (bit_count >= 8) {
|
||||
000144 AC*0B [24] 577 mov r4,_sbus_make_uart_frame_out_idx_65536_9
|
||||
000146 578 00101$:
|
||||
000146 74 F8 [12] 579 mov a,#0x100 - 0x08
|
||||
000148 25*0A [12] 580 add a,_sbus_make_uart_frame_bit_count_65536_9
|
||||
00014A 50 33 [24] 581 jnc 00116$
|
||||
582 ; src/sbus.c:39: out[1 + out_idx++] = (uint8_t)(bit_buf & 0xFF);
|
||||
00014C 8C 02 [24] 583 mov ar2,r4
|
||||
00014E 7B 00 [12] 584 mov r3,#0x00
|
||||
000150 0C [12] 585 inc r4
|
||||
000151 0A [12] 586 inc r2
|
||||
000152 BA 00 01 [24] 587 cjne r2,#0x00,00136$
|
||||
000155 0B [12] 588 inc r3
|
||||
000156 589 00136$:
|
||||
000156 EA [12] 590 mov a,r2
|
||||
000157 2D [12] 591 add a,r5
|
||||
000158 FA [12] 592 mov r2,a
|
||||
000159 EB [12] 593 mov a,r3
|
||||
00015A 3E [12] 594 addc a,r6
|
||||
00015B F9 [12] 595 mov r1,a
|
||||
00015C 8F 03 [24] 596 mov ar3,r7
|
||||
00015E A8*06 [24] 597 mov r0,_sbus_make_uart_frame_bit_buf_65536_9
|
||||
000160 8A 82 [24] 598 mov dpl,r2
|
||||
000162 89 83 [24] 599 mov dph,r1
|
||||
000164 8B F0 [24] 600 mov b,r3
|
||||
000166 E8 [12] 601 mov a,r0
|
||||
000167 12r00r00 [24] 602 lcall __gptrput
|
||||
603 ; src/sbus.c:40: bit_buf >>= 8;
|
||||
00016A 85*07*06 [24] 604 mov _sbus_make_uart_frame_bit_buf_65536_9,(_sbus_make_uart_frame_bit_buf_65536_9 + 1)
|
||||
00016D 85*08*07 [24] 605 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 1),(_sbus_make_uart_frame_bit_buf_65536_9 + 2)
|
||||
000170 85*09*08 [24] 606 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 2),(_sbus_make_uart_frame_bit_buf_65536_9 + 3)
|
||||
000173 75*09 00 [24] 607 mov (_sbus_make_uart_frame_bit_buf_65536_9 + 3),#0x00
|
||||
608 ; src/sbus.c:41: bit_count -= 8;
|
||||
000176 E5*0A [12] 609 mov a,_sbus_make_uart_frame_bit_count_65536_9
|
||||
000178 F8 [12] 610 mov r0,a
|
||||
000179 24 F8 [12] 611 add a,#0xf8
|
||||
00017B F5*0A [12] 612 mov _sbus_make_uart_frame_bit_count_65536_9,a
|
||||
00017D 80 C7 [24] 613 sjmp 00101$
|
||||
00017F 614 00116$:
|
||||
00017F 8C*0B [24] 615 mov _sbus_make_uart_frame_out_idx_65536_9,r4
|
||||
616 ; src/sbus.c:35: for (i = 0; i < SBUS_CH_COUNT; i++) {
|
||||
000181 05*0C [12] 617 inc _sbus_make_uart_frame_i_65536_9
|
||||
000183 74 F0 [12] 618 mov a,#0x100 - 0x10
|
||||
000185 25*0C [12] 619 add a,_sbus_make_uart_frame_i_65536_9
|
||||
000187 40 03 [24] 620 jc 00137$
|
||||
000189 02r00rF5 [24] 621 ljmp 00107$
|
||||
00018C 622 00137$:
|
||||
623 ; src/sbus.c:45: if (bit_count > 0) out[1 + out_idx++] = (uint8_t)(bit_buf & 0xFF);
|
||||
00018C E5*0A [12] 624 mov a,_sbus_make_uart_frame_bit_count_65536_9
|
||||
00018E 60 1B [24] 625 jz 00106$
|
||||
000190 7B 00 [12] 626 mov r3,#0x00
|
||||
000192 0C [12] 627 inc r4
|
||||
000193 BC 00 01 [24] 628 cjne r4,#0x00,00139$
|
||||
000196 0B [12] 629 inc r3
|
||||
000197 630 00139$:
|
||||
000197 EC [12] 631 mov a,r4
|
||||
000198 2D [12] 632 add a,r5
|
||||
000199 FC [12] 633 mov r4,a
|
||||
00019A EB [12] 634 mov a,r3
|
||||
00019B 3E [12] 635 addc a,r6
|
||||
00019C FB [12] 636 mov r3,a
|
||||
00019D 8F 02 [24] 637 mov ar2,r7
|
||||
00019F A9*06 [24] 638 mov r1,_sbus_make_uart_frame_bit_buf_65536_9
|
||||
0001A1 8C 82 [24] 639 mov dpl,r4
|
||||
0001A3 8B 83 [24] 640 mov dph,r3
|
||||
0001A5 8A F0 [24] 641 mov b,r2
|
||||
0001A7 E9 [12] 642 mov a,r1
|
||||
0001A8 12r00r00 [24] 643 lcall __gptrput
|
||||
0001AB 644 00106$:
|
||||
645 ; src/sbus.c:47: out[23] = 0x00; /* flags (no failsafe) */
|
||||
0001AB 74 17 [12] 646 mov a,#0x17
|
||||
0001AD 2D [12] 647 add a,r5
|
||||
0001AE FA [12] 648 mov r2,a
|
||||
0001AF E4 [12] 649 clr a
|
||||
0001B0 3E [12] 650 addc a,r6
|
||||
0001B1 FB [12] 651 mov r3,a
|
||||
0001B2 8F 04 [24] 652 mov ar4,r7
|
||||
0001B4 8A 82 [24] 653 mov dpl,r2
|
||||
0001B6 8B 83 [24] 654 mov dph,r3
|
||||
0001B8 8C F0 [24] 655 mov b,r4
|
||||
0001BA E4 [12] 656 clr a
|
||||
0001BB 12r00r00 [24] 657 lcall __gptrput
|
||||
658 ; src/sbus.c:48: out[24] = 0x00; /* end */
|
||||
0001BE 74 18 [12] 659 mov a,#0x18
|
||||
0001C0 2D [12] 660 add a,r5
|
||||
0001C1 FD [12] 661 mov r5,a
|
||||
0001C2 E4 [12] 662 clr a
|
||||
0001C3 3E [12] 663 addc a,r6
|
||||
0001C4 FE [12] 664 mov r6,a
|
||||
0001C5 8D 82 [24] 665 mov dpl,r5
|
||||
0001C7 8E 83 [24] 666 mov dph,r6
|
||||
0001C9 8F F0 [24] 667 mov b,r7
|
||||
0001CB E4 [12] 668 clr a
|
||||
669 ; src/sbus.c:49: }
|
||||
0001CC 02r00r00 [24] 670 ljmp __gptrput
|
||||
671 .area CSEG (CODE)
|
||||
672 .area CONST (CODE)
|
||||
000000 673 _DEFAULT_ADDR:
|
||||
000000 E7 674 .db #0xe7 ; 231
|
||||
000001 E7 675 .db #0xe7 ; 231
|
||||
000002 E7 676 .db #0xe7 ; 231
|
||||
000003 E7 677 .db #0xe7 ; 231
|
||||
000004 C2 678 .db #0xc2 ; 194
|
||||
679 .area XINIT (CODE)
|
||||
680 .area CABS (ABS,CODE)
|
||||
Reference in New Issue
Block a user