| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 |
- GAS LISTING /tmp/ccH4CVSw.s page 1
- 1 .file "hd44780_bus.c"
- 2 __SP_H__ = 0x3e
- 3 __SP_L__ = 0x3d
- 4 __SREG__ = 0x3f
- 5 __RAMPZ__ = 0x3b
- 6 __tmp_reg__ = 0
- 7 __zero_reg__ = 1
- 8 .section .text.LcdBusyWait,"ax",@progbits
- 9 .type LcdBusyWait, @function
- 10 LcdBusyWait:
- 11 /* prologue: function */
- 12 /* frame size = 0 */
- 13 /* stack size = 0 */
- 14 .L__stack_usage = 0
- 15 0000 E091 0000 lds r30,lcd_base
- 16 0004 F091 0000 lds r31,lcd_base+1
- 17 0008 3296 adiw r30,2
- 18 .L2:
- 19 000a 8081 ld r24,Z
- 20 000c 87FF sbrs r24,7
- 21 000e 00C0 rjmp .L5
- 22 /* #APP */
- 23 ; 109 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 24 0010 0000 nop
- 25 ; 0 "" 2
- 26 /* #NOAPP */
- 27 0012 00C0 rjmp .L2
- 28 .L5:
- 29 /* #APP */
- 30 ; 109 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 31 0014 0000 nop
- 32 ; 0 "" 2
- 33 ; 110 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 34 0016 0000 nop
- 35 ; 0 "" 2
- 36 ; 110 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 37 0018 0000 nop
- 38 ; 0 "" 2
- 39 ; 111 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 40 001a 0000 nop
- 41 ; 0 "" 2
- 42 ; 111 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 43 001c 0000 nop
- 44 ; 0 "" 2
- 45 ; 112 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 46 001e 0000 nop
- 47 ; 0 "" 2
- 48 ; 112 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 49 0020 0000 nop
- 50 ; 0 "" 2
- 51 ; 113 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 52 0022 0000 nop
- 53 ; 0 "" 2
- 54 ; 113 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 55 0024 0000 nop
- 56 ; 0 "" 2
- 57 ; 114 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- GAS LISTING /tmp/ccH4CVSw.s page 2
- 58 0026 0000 nop
- 59 ; 0 "" 2
- 60 ; 114 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 61 0028 0000 nop
- 62 ; 0 "" 2
- 63 ; 115 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 64 002a 0000 nop
- 65 ; 0 "" 2
- 66 ; 115 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 67 002c 0000 nop
- 68 ; 0 "" 2
- 69 ; 116 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 70 002e 0000 nop
- 71 ; 0 "" 2
- 72 ; 116 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 73 0030 0000 nop
- 74 ; 0 "" 2
- 75 ; 117 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 76 0032 0000 nop
- 77 ; 0 "" 2
- 78 ; 117 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 79 0034 0000 nop
- 80 ; 0 "" 2
- 81 ; 118 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 82 0036 0000 nop
- 83 ; 0 "" 2
- 84 ; 118 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 85 0038 0000 nop
- 86 ; 0 "" 2
- 87 ; 119 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 88 003a 0000 nop
- 89 ; 0 "" 2
- 90 ; 119 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 91 003c 0000 nop
- 92 ; 0 "" 2
- 93 ; 120 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 94 003e 0000 nop
- 95 ; 0 "" 2
- 96 ; 120 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 97 0040 0000 nop
- 98 ; 0 "" 2
- 99 ; 121 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 100 0042 0000 nop
- 101 ; 0 "" 2
- 102 ; 121 "../../nut/arch/avr/dev/hd44780_bus.c" 1
- 103 0044 0000 nop
- 104 ; 0 "" 2
- 105 /* #NOAPP */
- 106 0046 0895 ret
- 107 .size LcdBusyWait, .-LcdBusyWait
- 108 .section .text.LcdWriteData,"ax",@progbits
- 109 .type LcdWriteData, @function
- 110 LcdWriteData:
- 111 0000 CF93 push r28
- 112 0002 DF93 push r29
- 113 0004 1F92 push __zero_reg__
- 114 0006 CDB7 in r28,__SP_L__
- GAS LISTING /tmp/ccH4CVSw.s page 3
- 115 0008 DEB7 in r29,__SP_H__
- 116 /* prologue: function */
- 117 /* frame size = 1 */
- 118 /* stack size = 3 */
- 119 .L__stack_usage = 3
- 120 000a 8983 std Y+1,r24
- 121 000c 0E94 0000 call LcdBusyWait
- 122 0010 E091 0000 lds r30,lcd_base
- 123 0014 F091 0000 lds r31,lcd_base+1
- 124 0018 8981 ldd r24,Y+1
- 125 001a 8183 std Z+1,r24
- 126 /* epilogue start */
- 127 001c 0F90 pop __tmp_reg__
- 128 001e DF91 pop r29
- 129 0020 CF91 pop r28
- 130 0022 0895 ret
- 131 .size LcdWriteData, .-LcdWriteData
- 132 .section .text.LcdWriteCmd,"ax",@progbits
- 133 .type LcdWriteCmd, @function
- 134 LcdWriteCmd:
- 135 0000 CF93 push r28
- 136 0002 DF93 push r29
- 137 0004 1F92 push __zero_reg__
- 138 0006 CDB7 in r28,__SP_L__
- 139 0008 DEB7 in r29,__SP_H__
- 140 /* prologue: function */
- 141 /* frame size = 1 */
- 142 /* stack size = 3 */
- 143 .L__stack_usage = 3
- 144 000a 8983 std Y+1,r24
- 145 000c 0E94 0000 call LcdBusyWait
- 146 0010 E091 0000 lds r30,lcd_base
- 147 0014 F091 0000 lds r31,lcd_base+1
- 148 0018 8981 ldd r24,Y+1
- 149 001a 8083 st Z,r24
- 150 /* epilogue start */
- 151 001c 0F90 pop __tmp_reg__
- 152 001e DF91 pop r29
- 153 0020 CF91 pop r28
- 154 0022 0895 ret
- 155 .size LcdWriteCmd, .-LcdWriteCmd
- 156 .section .text.LcdSetCursor,"ax",@progbits
- 157 .type LcdSetCursor, @function
- 158 LcdSetCursor:
- 159 0000 1F93 push r17
- 160 0002 CF93 push r28
- 161 0004 DF93 push r29
- 162 0006 00D0 rcall .
- 163 0008 1F92 push __zero_reg__
- 164 000a CDB7 in r28,__SP_L__
- 165 000c DEB7 in r29,__SP_H__
- 166 /* prologue: function */
- 167 /* frame size = 4 */
- 168 /* stack size = 7 */
- 169 .L__stack_usage = 7
- 170 000e 1982 std Y+1,__zero_reg__
- 171 0010 90E4 ldi r25,lo8(64)
- GAS LISTING /tmp/ccH4CVSw.s page 4
- 172 0012 9A83 std Y+2,r25
- 173 0014 90E1 ldi r25,lo8(16)
- 174 0016 9B83 std Y+3,r25
- 175 0018 90E5 ldi r25,lo8(80)
- 176 001a 9C83 std Y+4,r25
- 177 001c 182F mov r17,r24
- 178 001e 1F70 andi r17,lo8(15)
- 179 0020 8295 swap r24
- 180 0022 8F70 andi r24,lo8(15)
- 181 0024 8430 cpi r24,lo8(4)
- 182 0026 00F0 brlo .L9
- 183 0028 83E0 ldi r24,lo8(3)
- 184 .L9:
- 185 002a FE01 movw r30,r28
- 186 002c E80F add r30,r24
- 187 002e F11D adc r31,__zero_reg__
- 188 0030 8181 ldd r24,Z+1
- 189 0032 180F add r17,r24
- 190 0034 1068 ori r17,lo8(-128)
- 191 0036 0E94 0000 call LcdBusyWait
- 192 003a E091 0000 lds r30,lcd_base
- 193 003e F091 0000 lds r31,lcd_base+1
- 194 0042 1083 st Z,r17
- 195 /* epilogue start */
- 196 0044 0F90 pop __tmp_reg__
- 197 0046 0F90 pop __tmp_reg__
- 198 0048 0F90 pop __tmp_reg__
- 199 004a 0F90 pop __tmp_reg__
- 200 004c DF91 pop r29
- 201 004e CF91 pop r28
- 202 0050 1F91 pop r17
- 203 0052 0895 ret
- 204 .size LcdSetCursor, .-LcdSetCursor
- 205 .section .text.LcdCursorHome,"ax",@progbits
- 206 .type LcdCursorHome, @function
- 207 LcdCursorHome:
- 208 /* prologue: function */
- 209 /* frame size = 0 */
- 210 /* stack size = 0 */
- 211 .L__stack_usage = 0
- 212 0000 0E94 0000 call LcdBusyWait
- 213 0004 E091 0000 lds r30,lcd_base
- 214 0008 F091 0000 lds r31,lcd_base+1
- 215 000c 82E0 ldi r24,lo8(2)
- 216 000e 8083 st Z,r24
- 217 0010 0895 ret
- 218 .size LcdCursorHome, .-LcdCursorHome
- 219 .section .text.LcdCursorLeft,"ax",@progbits
- 220 .type LcdCursorLeft, @function
- 221 LcdCursorLeft:
- 222 /* prologue: function */
- 223 /* frame size = 0 */
- 224 /* stack size = 0 */
- 225 .L__stack_usage = 0
- 226 0000 0E94 0000 call LcdBusyWait
- 227 0004 E091 0000 lds r30,lcd_base
- 228 0008 F091 0000 lds r31,lcd_base+1
- GAS LISTING /tmp/ccH4CVSw.s page 5
- 229 000c 80E1 ldi r24,lo8(16)
- 230 000e 8083 st Z,r24
- 231 0010 0895 ret
- 232 .size LcdCursorLeft, .-LcdCursorLeft
- 233 .section .text.LcdCursorRight,"ax",@progbits
- 234 .type LcdCursorRight, @function
- 235 LcdCursorRight:
- 236 /* prologue: function */
- 237 /* frame size = 0 */
- 238 /* stack size = 0 */
- 239 .L__stack_usage = 0
- 240 0000 0E94 0000 call LcdBusyWait
- 241 0004 E091 0000 lds r30,lcd_base
- 242 0008 F091 0000 lds r31,lcd_base+1
- 243 000c 84E1 ldi r24,lo8(20)
- 244 000e 8083 st Z,r24
- 245 0010 0895 ret
- 246 .size LcdCursorRight, .-LcdCursorRight
- 247 .section .text.LcdClear,"ax",@progbits
- 248 .type LcdClear, @function
- 249 LcdClear:
- 250 /* prologue: function */
- 251 /* frame size = 0 */
- 252 /* stack size = 0 */
- 253 .L__stack_usage = 0
- 254 0000 0E94 0000 call LcdBusyWait
- 255 0004 E091 0000 lds r30,lcd_base
- 256 0008 F091 0000 lds r31,lcd_base+1
- 257 000c 81E0 ldi r24,lo8(1)
- 258 000e 8083 st Z,r24
- 259 0010 0895 ret
- 260 .size LcdClear, .-LcdClear
- 261 .section .text.LcdCursorMode,"ax",@progbits
- 262 .type LcdCursorMode, @function
- 263 LcdCursorMode:
- 264 /* prologue: function */
- 265 /* frame size = 0 */
- 266 /* stack size = 0 */
- 267 .L__stack_usage = 0
- 268 0000 0E94 0000 call LcdBusyWait
- 269 0004 E091 0000 lds r30,lcd_base
- 270 0008 F091 0000 lds r31,lcd_base+1
- 271 000c 82E0 ldi r24,lo8(2)
- 272 000e 8083 st Z,r24
- 273 0010 0895 ret
- 274 .size LcdCursorMode, .-LcdCursorMode
- 275 .section .text.LcdInit,"ax",@progbits
- 276 .type LcdInit, @function
- 277 LcdInit:
- 278 0000 0F93 push r16
- 279 0002 1F93 push r17
- 280 0004 CF93 push r28
- 281 0006 DF93 push r29
- 282 /* prologue: function */
- 283 /* frame size = 0 */
- 284 /* stack size = 4 */
- 285 .L__stack_usage = 4
- GAS LISTING /tmp/ccH4CVSw.s page 6
- 286 0008 FC01 movw r30,r24
- 287 000a 0485 ldd r16,Z+12
- 288 000c 1585 ldd r17,Z+13
- 289 000e 1093 0000 sts lcd_base+1,r17
- 290 0012 0093 0000 sts lcd_base,r16
- 291 0016 0E94 0000 call LcdBusyWait
- 292 001a C8E3 ldi r28,lo8(56)
- 293 001c F801 movw r30,r16
- 294 001e C083 st Z,r28
- 295 0020 82E3 ldi r24,lo8(50)
- 296 0022 0E94 0000 call NutDelay
- 297 0026 0E94 0000 call LcdBusyWait
- 298 002a E091 0000 lds r30,lcd_base
- 299 002e F091 0000 lds r31,lcd_base+1
- 300 0032 C083 st Z,r28
- 301 0034 82E3 ldi r24,lo8(50)
- 302 0036 0E94 0000 call NutDelay
- 303 003a 0E94 0000 call LcdBusyWait
- 304 003e E091 0000 lds r30,lcd_base
- 305 0042 F091 0000 lds r31,lcd_base+1
- 306 0046 C083 st Z,r28
- 307 0048 82E3 ldi r24,lo8(50)
- 308 004a 0E94 0000 call NutDelay
- 309 004e 0E94 0000 call LcdBusyWait
- 310 0052 C091 0000 lds r28,lcd_base
- 311 0056 D091 0000 lds r29,lcd_base+1
- 312 005a 81E0 ldi r24,lo8(1)
- 313 005c 8883 st Y,r24
- 314 005e 0E94 0000 call LcdBusyWait
- 315 0062 86E0 ldi r24,lo8(6)
- 316 0064 8883 st Y,r24
- 317 0066 0E94 0000 call LcdBusyWait
- 318 006a 8CE0 ldi r24,lo8(12)
- 319 006c 8883 st Y,r24
- 320 006e 0E94 0000 call LcdBusyWait
- 321 0072 82E0 ldi r24,lo8(2)
- 322 0074 8883 st Y,r24
- 323 0076 0E94 0000 call LcdBusyWait
- 324 007a 80E8 ldi r24,lo8(-128)
- 325 007c 8883 st Y,r24
- 326 007e 80E0 ldi r24,0
- 327 0080 90E0 ldi r25,0
- 328 /* epilogue start */
- 329 0082 DF91 pop r29
- 330 0084 CF91 pop r28
- 331 0086 1F91 pop r17
- 332 0088 0F91 pop r16
- 333 008a 0895 ret
- 334 .size LcdInit, .-LcdInit
- 335 .global devLcdBus
- 336 .data
- 337 .type devLcdBus, @object
- 338 .size devLcdBus, 37
- 339 devLcdBus:
- 340 0000 0000 .word 0
- 341 0002 6C .byte 108
- 342 0003 63 .byte 99
- GAS LISTING /tmp/ccH4CVSw.s page 7
- 343 0004 64 .byte 100
- 344 0005 62 .byte 98
- 345 0006 75 .byte 117
- 346 0007 73 .byte 115
- 347 0008 00 .byte 0
- 348 0009 00 .byte 0
- 349 000a 00 .byte 0
- 350 000b 02 .byte 2
- 351 000c 0000 .word 0
- 352 000e 00 .byte 0
- 353 000f 0000 .word 0
- 354 0011 0000 .word dcb_term
- 355 0013 0000 .word gs(TermInit)
- 356 0015 0000 .word gs(TermIOCtl)
- 357 0017 0000 .word 0
- 358 0019 0000 .word gs(TermWrite)
- 359 001b 0000 .word gs(TermWrite_P)
- 360 001d 0000 .word gs(TermOpen)
- 361 001f 0000 .word gs(TermClose)
- 362 0021 0000 .word 0
- 363 0023 0000 .word 0
- 364 .global dcb_term
- 365 .type dcb_term, @object
- 366 .size dcb_term, 32
- 367 dcb_term:
- 368 0025 0000 .word gs(LcdInit)
- 369 0027 0000 .word gs(LcdWriteData)
- 370 0029 0000 .word gs(LcdWriteCmd)
- 371 002b 0000 .word gs(LcdClear)
- 372 002d 0000 .word gs(LcdSetCursor)
- 373 002f 0000 .word gs(LcdCursorHome)
- 374 0031 0000 .word gs(LcdCursorLeft)
- 375 0033 0000 .word gs(LcdCursorRight)
- 376 0035 0000 .word gs(LcdCursorMode)
- 377 0037 00 .byte 0
- 378 0038 00 .byte 0
- 379 0039 00 .byte 0
- 380 003a 00 .byte 0
- 381 003b 00 .byte 0
- 382 003c 02 .byte 2
- 383 003d 10 .byte 16
- 384 003e 10 .byte 16
- 385 003f 00 .byte 0
- 386 0040 00 .byte 0
- 387 0041 0000 .word 0
- 388 0043 0000 .zero 2
- 389 .local lcd_base
- 390 .comm lcd_base,2,1
- 391 .ident "GCC: (GNU) 5.3.0"
- 392 .global __do_copy_data
- 393 .global __do_clear_bss
- GAS LISTING /tmp/ccH4CVSw.s page 8
- DEFINED SYMBOLS
- *ABS*:0000000000000000 hd44780_bus.c
- /tmp/ccH4CVSw.s:2 *ABS*:000000000000003e __SP_H__
- /tmp/ccH4CVSw.s:3 *ABS*:000000000000003d __SP_L__
- /tmp/ccH4CVSw.s:4 *ABS*:000000000000003f __SREG__
- /tmp/ccH4CVSw.s:5 *ABS*:000000000000003b __RAMPZ__
- /tmp/ccH4CVSw.s:6 *ABS*:0000000000000000 __tmp_reg__
- /tmp/ccH4CVSw.s:7 *ABS*:0000000000000001 __zero_reg__
- /tmp/ccH4CVSw.s:10 .text.LcdBusyWait:0000000000000000 LcdBusyWait
- .bss:0000000000000000 lcd_base
- /tmp/ccH4CVSw.s:110 .text.LcdWriteData:0000000000000000 LcdWriteData
- /tmp/ccH4CVSw.s:134 .text.LcdWriteCmd:0000000000000000 LcdWriteCmd
- /tmp/ccH4CVSw.s:158 .text.LcdSetCursor:0000000000000000 LcdSetCursor
- /tmp/ccH4CVSw.s:207 .text.LcdCursorHome:0000000000000000 LcdCursorHome
- /tmp/ccH4CVSw.s:221 .text.LcdCursorLeft:0000000000000000 LcdCursorLeft
- /tmp/ccH4CVSw.s:235 .text.LcdCursorRight:0000000000000000 LcdCursorRight
- /tmp/ccH4CVSw.s:249 .text.LcdClear:0000000000000000 LcdClear
- /tmp/ccH4CVSw.s:263 .text.LcdCursorMode:0000000000000000 LcdCursorMode
- /tmp/ccH4CVSw.s:277 .text.LcdInit:0000000000000000 LcdInit
- /tmp/ccH4CVSw.s:339 .data:0000000000000000 devLcdBus
- /tmp/ccH4CVSw.s:367 .data:0000000000000025 dcb_term
- UNDEFINED SYMBOLS
- NutDelay
- TermInit
- TermIOCtl
- TermWrite
- TermWrite_P
- TermOpen
- TermClose
- __do_copy_data
- __do_clear_bss
|