Code for two daisychained shift registers.
This commit is contained in:
parent
e270477397
commit
2eb4976f3d
62
tpic6b595_shiftout/.dep/main.o.d
Normal file
62
tpic6b595_shiftout/.dep/main.o.d
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
main.o: main.c \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdlib.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h \
|
||||||
|
main.h uart.h pins.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h \
|
||||||
|
digital.h
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdlib.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h:
|
||||||
|
|
||||||
|
main.h:
|
||||||
|
|
||||||
|
uart.h:
|
||||||
|
|
||||||
|
pins.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h:
|
||||||
|
|
||||||
|
digital.h:
|
49
tpic6b595_shiftout/.dep/uart_async.o.d
Normal file
49
tpic6b595_shiftout/.dep/uart_async.o.d
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
uart_async.o: uart_async.c \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h \
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/setbaud.h
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/io.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/sfr_defs.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/inttypes.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdint.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/iom328p.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/portpins.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/common.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/version.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/fuse.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/lock.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/avr/interrupt.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stdarg.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/include/stddef.h:
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/setbaud.h:
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Code to write data to TPIC6B595 SIPO shift register.
|
* Code to write data to two daisychained TPIC6B595 SIPO shift registers.
|
||||||
*
|
*
|
||||||
* The TPIC6B595 is a monolithic, high-voltage, medium-current power 8-bit
|
* The TPIC6B595 is a monolithic, high-voltage, medium-current power 8-bit
|
||||||
* shift register designed for use in systems that require relatively high
|
* shift register designed for use in systems that require relatively high
|
||||||
@ -39,9 +39,9 @@
|
|||||||
#include "pins.h"
|
#include "pins.h"
|
||||||
#include "digital.h"
|
#include "digital.h"
|
||||||
|
|
||||||
#define LATCH 8 /* RCK */
|
#define LATCH 10 /* RCK */
|
||||||
#define CLOCK 12 /* SRCK */
|
|
||||||
#define DATA 11 /* SER IN */
|
#define DATA 11 /* SER IN */
|
||||||
|
#define CLOCK 13 /* SRCK */
|
||||||
|
|
||||||
static void init(void) {
|
static void init(void) {
|
||||||
pin_mode(LATCH, OUTPUT);
|
pin_mode(LATCH, OUTPUT);
|
||||||
@ -72,24 +72,32 @@ int main(void) {
|
|||||||
stdout = &uart_output;
|
stdout = &uart_output;
|
||||||
stdin = &uart_input;
|
stdin = &uart_input;
|
||||||
|
|
||||||
uint8_t binary[9];
|
char binary[17];
|
||||||
|
|
||||||
|
/* Show pattern for 5 seconds. */
|
||||||
|
shift_out(0b10101010);
|
||||||
|
shift_out(0b11110000);
|
||||||
|
digital_write(LATCH, LOW);
|
||||||
|
digital_write(LATCH, HIGH);
|
||||||
|
_delay_ms(5000);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
for(uint8_t i = 0; i < 256; i++) {
|
for(uint16_t i = 0; i < 0xffff; i++) {
|
||||||
|
|
||||||
/* Print the number to serial for debugging. */
|
/* Print the number to serial for debugging. */
|
||||||
itoa(i, binary, 2);
|
itoa(i, binary, 2);
|
||||||
printf("%s %d \n", binary, i);
|
printf("%s %d \n", binary, i);
|
||||||
|
|
||||||
/* Shift current number to shift register. */
|
/* Shift high byte first to shift register. */
|
||||||
shift_out(i);
|
shift_out(i >> 8);
|
||||||
|
shift_out(i & 0xff);
|
||||||
|
|
||||||
/* Pulse latch to transfer data from shift registers */
|
/* Pulse latch to transfer data from shift registers */
|
||||||
/* to storage registers (should this be inside shift_out()?). */
|
/* to storage registers (should this be inside shift_out()?). */
|
||||||
digital_write(LATCH, LOW);
|
digital_write(LATCH, LOW);
|
||||||
digital_write(LATCH, HIGH);
|
digital_write(LATCH, HIGH);
|
||||||
|
|
||||||
_delay_ms(250);
|
_delay_ms(50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
1
tpic6b595_shiftout/main.eep
Normal file
1
tpic6b595_shiftout/main.eep
Normal file
@ -0,0 +1 @@
|
|||||||
|
:00000001FF
|
BIN
tpic6b595_shiftout/main.elf
Executable file
BIN
tpic6b595_shiftout/main.elf
Executable file
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
static void init(void);
|
static void init(void);
|
||||||
int shiftin(void);
|
void shift_out(uint8_t data);
|
||||||
int main(void);
|
int main(void);
|
||||||
|
161
tpic6b595_shiftout/main.hex
Normal file
161
tpic6b595_shiftout/main.hex
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
:100000000C9434000C9451000C9451000C94510049
|
||||||
|
:100010000C9451000C9451000C9451000C9451001C
|
||||||
|
:100020000C9451000C9451000C9451000C9451000C
|
||||||
|
:100030000C9451000C9451000C9451000C945100FC
|
||||||
|
:100040000C9451000C9451000C94C9000C940901BB
|
||||||
|
:100050000C9451000C9451000C9451000C945100DC
|
||||||
|
:100060000C9451000C94510011241FBECFEFD8E026
|
||||||
|
:10007000DEBFCDBF11E0A0E0B1E0E8ECF9E002C0E6
|
||||||
|
:1000800005900D92A432B107D9F715E0A4E2B1E0D2
|
||||||
|
:1000900001C01D92A237B107E1F70E944B010C94F9
|
||||||
|
:1000A000E2040C94000027E030E090E0AC01022E66
|
||||||
|
:1000B00002C0559547950A94E2F740FD02C02B987F
|
||||||
|
:1000C00001C02B9A2D982D9A215030404FEF2F3F91
|
||||||
|
:1000D000340761F7089510922505109224051092B7
|
||||||
|
:1000E0002705109226051092690510926805109256
|
||||||
|
:1000F0006B0510926A051092C50087E68093C400D4
|
||||||
|
:1001000086E08093C20088E18093C10078940895CE
|
||||||
|
:100110001F93182F8A3019F48DE00E9488002091D7
|
||||||
|
:10012000260530912705C901019660E072E00E9422
|
||||||
|
:10013000BE0140912405509125058417950781F053
|
||||||
|
:10014000F901EE0FFF1FEC5DFE4F108311829093BB
|
||||||
|
:100150002705809326058091C10080628093C100AD
|
||||||
|
:1001600080E090E01F910895809168059091690565
|
||||||
|
:10017000019660E270E00E94BE0190936905809351
|
||||||
|
:100180006805FC01EE0FFF1FE85DFA4F8081918149
|
||||||
|
:1001900008951F920F920FB60F9211242F933F9341
|
||||||
|
:1001A0004F935F936F937F938F939F93AF93BF937F
|
||||||
|
:1001B000EF93FF9320916A0530916B05C901019679
|
||||||
|
:1001C00060E270E00E94BE014091680550916905AF
|
||||||
|
:1001D0008417950769F04091C600F901EE0FFF1FE3
|
||||||
|
:1001E000E85DFA4F4083118290936B0580936A0516
|
||||||
|
:1001F000FF91EF91BF91AF919F918F917F916F91FF
|
||||||
|
:100200005F914F913F912F910F900FBE0F901F90D4
|
||||||
|
:1002100018951F920F920FB60F9211242F933F93B0
|
||||||
|
:100220005F936F937F938F939F93AF93BF93EF935E
|
||||||
|
:10023000FF938091240590912505019660E072E07E
|
||||||
|
:100240000E94BE0120912605309127058217930751
|
||||||
|
:1002500069F0FC01EE0FFF1FEC5DFE4F2081209343
|
||||||
|
:10026000C600909325058093240505C08091C100A8
|
||||||
|
:100270008F7D8093C100FF91EF91BF91AF919F91CE
|
||||||
|
:100280008F917F916F915F913F912F910F900FBE52
|
||||||
|
:100290000F901F901895CF93DF93CDB7DEB761977E
|
||||||
|
:1002A0000FB6F894DEBF0FBECDBF229A259A239ACF
|
||||||
|
:1002B0000E946B0086E191E090936F0580936E053C
|
||||||
|
:1002C00088E091E090936D0580936C058AEA0E9426
|
||||||
|
:1002D000530080EF0E9453002A982A9A80E593ECFD
|
||||||
|
:1002E00020E931E0F9013197F1F70197D9F700E002
|
||||||
|
:1002F00010E07E010894E11CF11C80E0C82E81E032
|
||||||
|
:10030000D82E90E9A92E91E0B92EC801B70142E09C
|
||||||
|
:1003100050E00E94E50100D000D000D0EDB7FEB75C
|
||||||
|
:100320003196ADB7BEB71296DC92CE921197F3829A
|
||||||
|
:10033000E282158304830E9406028DB79EB706965B
|
||||||
|
:100340000FB6F8949EBF0FBE8DBF812F0E94530041
|
||||||
|
:10035000802F0E9453002A982A9A24EF31E0C50189
|
||||||
|
:100360000197F1F721503040D1F70F5F1F4F9FEFFA
|
||||||
|
:100370000F3F190751F600E010E0C7CF97FB092E99
|
||||||
|
:1003800007260AD077FD04D00CD006D000201AF43E
|
||||||
|
:10039000709561957F4F0895F6F7909581959F4FE1
|
||||||
|
:1003A0000895AA1BBB1B51E107C0AA1FBB1FA617BC
|
||||||
|
:1003B000B70710F0A61BB70B881F991F5A95A9F70E
|
||||||
|
:1003C00080959095BC01CD010895FB019F01E894B3
|
||||||
|
:1003D0004230C4F04532B4F44A3029F497FB1EF49D
|
||||||
|
:1003E000909581959F4F642F77270E94D101805D62
|
||||||
|
:1003F0008A330CF0895D8193CB010097A1F716F445
|
||||||
|
:100400005DE251931082C9010C941104A0E0B0E0A8
|
||||||
|
:10041000ECE0F2E00C94BB04FE0135966191719121
|
||||||
|
:1004200080916E0590916F05AF010E941B0220968E
|
||||||
|
:10043000E2E00C94D704ADE0B0E0E1E2F2E00C942D
|
||||||
|
:10044000AB043C017D876C875A01FC011782168240
|
||||||
|
:10045000838181FFCAC13FE3C32E2E010894411C52
|
||||||
|
:10046000511CF3019381EC85FD8593FD859193FFEC
|
||||||
|
:100470008191FD87EC87882309F4B3C1853241F46B
|
||||||
|
:1004800093FD859193FF8191FD87EC87853229F457
|
||||||
|
:1004900090E0B3010E942104E4CFEE24DD2410E0BB
|
||||||
|
:1004A0001032B0F48B3269F08C3228F4803251F083
|
||||||
|
:1004B000833271F40BC08D3239F0803349F411600E
|
||||||
|
:1004C0002CC01260146029C0186027C0106125C0BC
|
||||||
|
:1004D00017FD2EC0282F20532A3098F416FF08C08D
|
||||||
|
:1004E0008E2D880FE82EEE0CEE0CE80EE20E15C0F5
|
||||||
|
:1004F0008D2D880FD82EDD0CDD0CD80ED20E10629B
|
||||||
|
:100500000CC08E3221F416FD6CC1106406C08C360E
|
||||||
|
:1005100011F4106802C0883659F4EC85FD8593FD0E
|
||||||
|
:10052000859193FF8191FD87EC87882309F0B8CFEF
|
||||||
|
:10053000982F9554933018F09052933030F424E073
|
||||||
|
:1005400030E0A20EB31EC9820FC0833631F083376C
|
||||||
|
:1005500081F0833509F05AC022C0F501808189837A
|
||||||
|
:1005600022E030E0A20EB31E21E0E22EF12C420187
|
||||||
|
:1005700014C092E0292E312C2A0C3B1CF5018080FE
|
||||||
|
:10058000918016FF03C06E2D70E002C06FEF7FEF09
|
||||||
|
:10059000C4010E9406047C0151011F7715C082E04E
|
||||||
|
:1005A000282E312C2A0C3B1CF5018080918016FFEF
|
||||||
|
:1005B00003C06E2D70E002C06FEF7FEFC4010E9498
|
||||||
|
:1005C000FB037C011068510113FD1CC006C080E2D2
|
||||||
|
:1005D00090E0B3010E942104DA948D2D90E0E8169A
|
||||||
|
:1005E000F906A8F30FC0F40117FD859117FF81915B
|
||||||
|
:1005F0004F0190E0B3010E942104D110DA940894D5
|
||||||
|
:10060000E108F108E114F10471F7E8C0843611F053
|
||||||
|
:10061000893659F5F50117FF07C080819181A281C4
|
||||||
|
:10062000B38124E030E009C060817181CB01AA2749
|
||||||
|
:1006300097FDA095BA2F22E030E0A20EB31E012F45
|
||||||
|
:100640000F76B7FF08C0B095A095909581959F4F04
|
||||||
|
:10065000AF4FBF4F0068BC01CD01A2012AE030E0DE
|
||||||
|
:100660000E944D04F82EF4183FC0853721F41F7EF8
|
||||||
|
:100670002AE030E020C0197F8F36A9F0803720F4BF
|
||||||
|
:10068000883509F0AEC00BC0803721F0883709F0FB
|
||||||
|
:10069000A8C001C0106114FF09C0146007C014FF96
|
||||||
|
:1006A00008C0166006C028E030E005C020E130E058
|
||||||
|
:1006B00002C020E132E0F50117FF07C060817181BF
|
||||||
|
:1006C0008281938144E050E006C06081718180E0C6
|
||||||
|
:1006D00090E042E050E0A40EB51EA2010E944D043D
|
||||||
|
:1006E000F82EF418012F0F7706FF09C00E7FFE14B5
|
||||||
|
:1006F00030F404FF06C002FD04C00F7E02C01F2DAF
|
||||||
|
:1007000001C01E2D802F90E004FF0CC0FE01EF0DF4
|
||||||
|
:10071000F11D2081203311F4097E09C002FF06C0BB
|
||||||
|
:100720001E5F05C086789070009709F01F5F802ECD
|
||||||
|
:10073000992403FD12C000FF0DC0EF2C1D1550F4CD
|
||||||
|
:10074000ED0CE11A1D2D06C080E290E0B3010E947D
|
||||||
|
:1007500021041F5F1D15C0F304C01D1510F4D11A2C
|
||||||
|
:1007600001C0DD2484FE0FC080E390E0B3010E944D
|
||||||
|
:10077000210482FE1FC081FE03C088E590E010C006
|
||||||
|
:1007800088E790E00DC0C40186789070009791F0E2
|
||||||
|
:1007900081FC02C080E201C08BE207FD8DE290E0A7
|
||||||
|
:1007A000B3010E94210406C080E390E0B3010E94DF
|
||||||
|
:1007B0002104EA94FE14C0F3FA94F201EF0DF11D46
|
||||||
|
:1007C000808190E0B3010E942104FF20A9F706C0B8
|
||||||
|
:1007D00080E290E0B3010E942104DA94DD20C1F7A9
|
||||||
|
:1007E00040CEF3018681978102C08FEF9FEF2D9657
|
||||||
|
:1007F000E2E10C94C704FC010590615070400110C7
|
||||||
|
:10080000D8F7809590958E0F9F1F0895FC01615039
|
||||||
|
:10081000704001900110D8F7809590958E0F9F1F22
|
||||||
|
:100820000895DC01FC01672F71917723E1F732977E
|
||||||
|
:1008300004C07C916D9370836291AE17BF07C8F3BB
|
||||||
|
:1008400008950F931F93CF93DF938C01EB018B815E
|
||||||
|
:1008500081FF1BC082FF0DC02E813F818C819D8155
|
||||||
|
:100860002817390764F4E881F9810193F983E88353
|
||||||
|
:1008700006C0E885F985802F0995009731F48E81AF
|
||||||
|
:100880009F8101969F838E8302C00FEF1FEFC801E7
|
||||||
|
:10089000DF91CF911F910F910895FA01AA27283077
|
||||||
|
:1008A00051F1203181F1E8946F936E7F6E5F7F4F3D
|
||||||
|
:1008B0008F4F9F4FAF4FB1E03ED0B4E03CD0670FB9
|
||||||
|
:1008C000781F891F9A1FA11D680F791F8A1F911D0C
|
||||||
|
:1008D000A11D6A0F711D811D911DA11D20D009F45C
|
||||||
|
:1008E00068943F912AE0269F11243019305D31939E
|
||||||
|
:1008F000DEF6CF010895462F4770405D4193B3E087
|
||||||
|
:100900000FD0C9F7F6CF462F4F70405D4A3318F02D
|
||||||
|
:10091000495D31FD4052419302D0A9F7EACFB4E0DE
|
||||||
|
:10092000A6959795879577956795BA95C9F7009796
|
||||||
|
:100930006105710508959B01AC010A2E0694579537
|
||||||
|
:10094000479537952795BA95C9F7620F731F841F8E
|
||||||
|
:10095000951FA01D08952F923F924F925F926F9224
|
||||||
|
:100960007F928F929F92AF92BF92CF92DF92EF923F
|
||||||
|
:10097000FF920F931F93CF93DF93CDB7DEB7CA1BC0
|
||||||
|
:10098000DB0B0FB6F894DEBF0FBECDBF09942A88EB
|
||||||
|
:10099000398848885F846E847D848C849B84AA8493
|
||||||
|
:1009A000B984C884DF80EE80FD800C811B81AA8120
|
||||||
|
:1009B000B981CE0FD11D0FB6F894DEBF0FBECDBFEB
|
||||||
|
:0809C000ED010895F894FFCF4A
|
||||||
|
:1009C8002573202564200A000000000100000000B3
|
||||||
|
:1009D8000000B400000000000002000000008800D1
|
||||||
|
:0409E800000000000B
|
||||||
|
:00000001FF
|
1407
tpic6b595_shiftout/main.lss
Normal file
1407
tpic6b595_shiftout/main.lss
Normal file
File diff suppressed because it is too large
Load Diff
673
tpic6b595_shiftout/main.lst
Normal file
673
tpic6b595_shiftout/main.lst
Normal file
@ -0,0 +1,673 @@
|
|||||||
|
1 .file "main.c"
|
||||||
|
2 __SREG__ = 0x3f
|
||||||
|
3 __SP_H__ = 0x3e
|
||||||
|
4 __SP_L__ = 0x3d
|
||||||
|
5 __tmp_reg__ = 0
|
||||||
|
6 __zero_reg__ = 1
|
||||||
|
7 .global __do_copy_data
|
||||||
|
8 .global __do_clear_bss
|
||||||
|
9 .text
|
||||||
|
10 .Ltext0:
|
||||||
|
11 .global shift_out
|
||||||
|
13 shift_out:
|
||||||
|
14 .LFB6:
|
||||||
|
15 .file 1 "main.c"
|
||||||
|
1:main.c **** /*
|
||||||
|
2:main.c **** * Code to write data to TPIC6B595 SIPO shift register.
|
||||||
|
3:main.c **** *
|
||||||
|
4:main.c **** * The TPIC6B595 is a monolithic, high-voltage, medium-current power 8-bit
|
||||||
|
5:main.c **** * shift register designed for use in systems that require relatively high
|
||||||
|
6:main.c **** * load power.
|
||||||
|
7:main.c **** *
|
||||||
|
8:main.c **** * This device contains an 8-bit serial-in, parallel-out shift register that
|
||||||
|
9:main.c **** * feeds an 8-bit D-type storage register. Data transfers through both the
|
||||||
|
10:main.c **** * shift and storage registers on the rising edge of the shift-register clock
|
||||||
|
11:main.c **** * (SRCK) and the register clock (RCK), respectively. The storage register
|
||||||
|
12:main.c **** * transfers data to the output buffer when shift-register clear (SRCLR) is
|
||||||
|
13:main.c **** * high. When SRCLR is low, the input shift register is cleared. When output
|
||||||
|
14:main.c **** * enable (G) is held high, all data in the output buffers is held low and all
|
||||||
|
15:main.c **** * drain outputs are off. When G is held low, data from the storage register
|
||||||
|
16:main.c **** * is transparent to the output buffers. When data in the output buffers is
|
||||||
|
17:main.c **** * low, the DMOS-transistor outputs are off. When data is high, the DMOS-
|
||||||
|
18:main.c **** * transistor outputs have sink-current capability. The serial output (SER
|
||||||
|
19:main.c **** * OUT) allows for cascading of the data from the shift register to additional
|
||||||
|
20:main.c **** * devices.
|
||||||
|
21:main.c **** *
|
||||||
|
22:main.c **** * http://www.adafruit.com/datasheets/tpic6b595.pdf
|
||||||
|
23:main.c **** *
|
||||||
|
24:main.c **** * To compile and upload run: make clean; make; make program;
|
||||||
|
25:main.c **** *
|
||||||
|
26:main.c **** * Copyright 2011 Mika Tuupola
|
||||||
|
27:main.c **** *
|
||||||
|
28:main.c **** * Licensed under the MIT license:
|
||||||
|
29:main.c **** * http://www.opensource.org/licenses/mit-license.php
|
||||||
|
30:main.c **** *
|
||||||
|
31:main.c **** */
|
||||||
|
32:main.c ****
|
||||||
|
33:main.c **** #include <stdlib.h>
|
||||||
|
34:main.c **** #include <stdio.h>
|
||||||
|
35:main.c **** #include <util/delay.h>
|
||||||
|
36:main.c ****
|
||||||
|
37:main.c **** #include "main.h"
|
||||||
|
38:main.c **** #include "uart.h"
|
||||||
|
39:main.c **** #include "pins.h"
|
||||||
|
40:main.c **** #include "digital.h"
|
||||||
|
41:main.c ****
|
||||||
|
42:main.c **** #define LATCH 10 /* RCK */
|
||||||
|
43:main.c **** #define DATA 11 /* SER IN */
|
||||||
|
44:main.c **** #define CLOCK 13 /* SRCK */
|
||||||
|
45:main.c ****
|
||||||
|
46:main.c **** static void init(void) {
|
||||||
|
47:main.c **** pin_mode(LATCH, OUTPUT);
|
||||||
|
48:main.c **** pin_mode(CLOCK, OUTPUT);
|
||||||
|
49:main.c **** pin_mode(DATA, OUTPUT);
|
||||||
|
50:main.c **** }
|
||||||
|
51:main.c ****
|
||||||
|
52:main.c **** /* Assumes MSB first. */
|
||||||
|
53:main.c **** void shift_out(uint8_t data) {
|
||||||
|
16 .loc 1 53 0
|
||||||
|
17 .LVL0:
|
||||||
|
18 /* prologue: function */
|
||||||
|
19 /* frame size = 0 */
|
||||||
|
20 /* stack size = 0 */
|
||||||
|
21 .L__stack_usage = 0
|
||||||
|
22 .loc 1 53 0
|
||||||
|
23 0000 27E0 ldi r18,lo8(7)
|
||||||
|
24 0002 30E0 ldi r19,hi8(7)
|
||||||
|
25 .LBB21:
|
||||||
|
54:main.c **** for(uint8_t i = 0; i < 8; i++) {
|
||||||
|
55:main.c **** /* Write bit to data port. */
|
||||||
|
56:main.c **** if (0 == (data & _BV(7 - i))) {
|
||||||
|
26 .loc 1 56 0
|
||||||
|
27 0004 90E0 ldi r25,lo8(0)
|
||||||
|
28 .LVL1:
|
||||||
|
29 .L4:
|
||||||
|
30 0006 AC01 movw r20,r24
|
||||||
|
31 0008 022E mov r0,r18
|
||||||
|
32 000a 00C0 rjmp 2f
|
||||||
|
33 000c 5595 1: asr r21
|
||||||
|
34 000e 4795 ror r20
|
||||||
|
35 0010 0A94 2: dec r0
|
||||||
|
36 0012 02F4 brpl 1b
|
||||||
|
37 0014 40FD sbrc r20,0
|
||||||
|
38 0016 00C0 rjmp .L2
|
||||||
|
57:main.c **** digital_write(DATA, LOW);
|
||||||
|
39 .loc 1 57 0
|
||||||
|
40 0018 2B98 cbi 37-0x20,3
|
||||||
|
41 001a 00C0 rjmp .L3
|
||||||
|
42 .L2:
|
||||||
|
58:main.c **** } else {
|
||||||
|
59:main.c **** digital_write(DATA, HIGH);
|
||||||
|
43 .loc 1 59 0
|
||||||
|
44 001c 2B9A sbi 37-0x20,3
|
||||||
|
45 .L3:
|
||||||
|
60:main.c **** }
|
||||||
|
61:main.c ****
|
||||||
|
62:main.c **** /* Pulse clock input to write next bit. */
|
||||||
|
63:main.c **** digital_write(CLOCK, LOW);
|
||||||
|
46 .loc 1 63 0
|
||||||
|
47 001e 2D98 cbi 37-0x20,5
|
||||||
|
64:main.c **** digital_write(CLOCK, HIGH);
|
||||||
|
48 .loc 1 64 0
|
||||||
|
49 0020 2D9A sbi 37-0x20,5
|
||||||
|
50 0022 2150 subi r18,lo8(-(-1))
|
||||||
|
51 0024 3040 sbci r19,hi8(-(-1))
|
||||||
|
54:main.c **** for(uint8_t i = 0; i < 8; i++) {
|
||||||
|
52 .loc 1 54 0
|
||||||
|
53 0026 4FEF ldi r20,hi8(-1)
|
||||||
|
54 0028 2F3F cpi r18,lo8(-1)
|
||||||
|
55 002a 3407 cpc r19,r20
|
||||||
|
56 002c 01F4 brne .L4
|
||||||
|
57 /* epilogue start */
|
||||||
|
58 .LBE21:
|
||||||
|
65:main.c **** }
|
||||||
|
66:main.c **** }
|
||||||
|
59 .loc 1 66 0
|
||||||
|
60 002e 0895 ret
|
||||||
|
61 .LFE6:
|
||||||
|
63 .data
|
||||||
|
64 .LC0:
|
||||||
|
65 0000 2573 2025 .string "%s %d \n"
|
||||||
|
65 6420 0A00
|
||||||
|
66 .section .text.startup,"ax",@progbits
|
||||||
|
67 .global main
|
||||||
|
69 main:
|
||||||
|
70 .LFB7:
|
||||||
|
67:main.c ****
|
||||||
|
68:main.c **** int main(void) {
|
||||||
|
71 .loc 1 68 0
|
||||||
|
72 0000 CF93 push r28
|
||||||
|
73 .LCFI0:
|
||||||
|
74 0002 DF93 push r29
|
||||||
|
75 .LCFI1:
|
||||||
|
76 0004 CDB7 in r28,__SP_L__
|
||||||
|
77 0006 DEB7 in r29,__SP_H__
|
||||||
|
78 0008 6197 sbiw r28,17
|
||||||
|
79 .LCFI2:
|
||||||
|
80 000a 0FB6 in __tmp_reg__,__SREG__
|
||||||
|
81 000c F894 cli
|
||||||
|
82 000e DEBF out __SP_H__,r29
|
||||||
|
83 0010 0FBE out __SREG__,__tmp_reg__
|
||||||
|
84 0012 CDBF out __SP_L__,r28
|
||||||
|
85 /* prologue: function */
|
||||||
|
86 /* frame size = 17 */
|
||||||
|
87 /* stack size = 19 */
|
||||||
|
88 .L__stack_usage = 19
|
||||||
|
89 .LBB22:
|
||||||
|
90 .LBB23:
|
||||||
|
47:main.c **** pin_mode(LATCH, OUTPUT);
|
||||||
|
91 .loc 1 47 0
|
||||||
|
92 0014 229A sbi 36-0x20,2
|
||||||
|
48:main.c **** pin_mode(CLOCK, OUTPUT);
|
||||||
|
93 .loc 1 48 0
|
||||||
|
94 0016 259A sbi 36-0x20,5
|
||||||
|
49:main.c **** pin_mode(DATA, OUTPUT);
|
||||||
|
95 .loc 1 49 0
|
||||||
|
96 0018 239A sbi 36-0x20,3
|
||||||
|
97 .LBE23:
|
||||||
|
98 .LBE22:
|
||||||
|
69:main.c ****
|
||||||
|
70:main.c **** init();
|
||||||
|
71:main.c **** uart_init();
|
||||||
|
99 .loc 1 71 0
|
||||||
|
100 001a 0E94 0000 call uart_init
|
||||||
|
72:main.c **** stdout = &uart_output;
|
||||||
|
101 .loc 1 72 0
|
||||||
|
102 001e 80E0 ldi r24,lo8(uart_output)
|
||||||
|
103 0020 90E0 ldi r25,hi8(uart_output)
|
||||||
|
104 0022 9093 0000 sts __iob+2+1,r25
|
||||||
|
105 0026 8093 0000 sts __iob+2,r24
|
||||||
|
73:main.c **** stdin = &uart_input;
|
||||||
|
106 .loc 1 73 0
|
||||||
|
107 002a 80E0 ldi r24,lo8(uart_input)
|
||||||
|
108 002c 90E0 ldi r25,hi8(uart_input)
|
||||||
|
109 002e 9093 0000 sts __iob+1,r25
|
||||||
|
110 0032 8093 0000 sts __iob,r24
|
||||||
|
74:main.c ****
|
||||||
|
75:main.c **** char binary[17];
|
||||||
|
76:main.c ****
|
||||||
|
77:main.c **** /* Show pattern for 5 seconds. */
|
||||||
|
78:main.c **** shift_out(0b10101010);
|
||||||
|
111 .loc 1 78 0
|
||||||
|
112 0036 8AEA ldi r24,lo8(-86)
|
||||||
|
113 0038 0E94 0000 call shift_out
|
||||||
|
79:main.c **** shift_out(0b11110000);
|
||||||
|
114 .loc 1 79 0
|
||||||
|
115 003c 80EF ldi r24,lo8(-16)
|
||||||
|
116 003e 0E94 0000 call shift_out
|
||||||
|
80:main.c **** digital_write(LATCH, LOW);
|
||||||
|
117 .loc 1 80 0
|
||||||
|
118 0042 2A98 cbi 37-0x20,2
|
||||||
|
81:main.c **** digital_write(LATCH, HIGH);
|
||||||
|
119 .loc 1 81 0
|
||||||
|
120 0044 2A9A sbi 37-0x20,2
|
||||||
|
121 .LVL2:
|
||||||
|
122 0046 80E5 ldi r24,lo8(-15536)
|
||||||
|
123 0048 93EC ldi r25,hi8(-15536)
|
||||||
|
124 .LBB24:
|
||||||
|
125 .LBB25:
|
||||||
|
126 .LBB26:
|
||||||
|
127 .LBB27:
|
||||||
|
128 .file 2 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basi
|
||||||
|
1:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /* Copyright (c) 2002, Marek Michalkiewicz
|
||||||
|
2:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Copyright (c) 2007 Joerg Wunsch
|
||||||
|
3:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** All rights reserved.
|
||||||
|
4:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
5:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Redistribution and use in source and binary forms, with or without
|
||||||
|
6:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** modification, are permitted provided that the following conditions are met:
|
||||||
|
7:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
8:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** * Redistributions of source code must retain the above copyright
|
||||||
|
9:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer.
|
||||||
|
10:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
11:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** * Redistributions in binary form must reproduce the above copyright
|
||||||
|
12:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** notice, this list of conditions and the following disclaimer in
|
||||||
|
13:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** the documentation and/or other materials provided with the
|
||||||
|
14:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** distribution.
|
||||||
|
15:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
16:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** * Neither the name of the copyright holders nor the names of
|
||||||
|
17:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** contributors may be used to endorse or promote products derived
|
||||||
|
18:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** from this software without specific prior written permission.
|
||||||
|
19:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
20:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
21:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
22:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
23:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
24:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
25:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
26:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
27:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
28:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
29:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
30:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** POSSIBILITY OF SUCH DAMAGE. */
|
||||||
|
31:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
32:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /* $Id: delay_basic.h 2143 2010-06-08 21:19:51Z joerg_wunsch $ */
|
||||||
|
33:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
34:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #ifndef _UTIL_DELAY_BASIC_H_
|
||||||
|
35:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #define _UTIL_DELAY_BASIC_H_ 1
|
||||||
|
36:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
37:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #include <inttypes.h>
|
||||||
|
38:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
39:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #if !defined(__DOXYGEN__)
|
||||||
|
40:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** static inline void _delay_loop_1(uint8_t __count) __attribute__((always_inline));
|
||||||
|
41:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** static inline void _delay_loop_2(uint16_t __count) __attribute__((always_inline));
|
||||||
|
42:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #endif
|
||||||
|
43:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
44:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /** \file */
|
||||||
|
45:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /** \defgroup util_delay_basic <util/delay_basic.h>: Basic busy-wait delay loops
|
||||||
|
46:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** \code
|
||||||
|
47:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** #include <util/delay_basic.h>
|
||||||
|
48:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** \endcode
|
||||||
|
49:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
50:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** The functions in this header file implement simple delay loops
|
||||||
|
51:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** that perform a busy-waiting. They are typically used to
|
||||||
|
52:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** facilitate short delays in the program execution. They are
|
||||||
|
53:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** implemented as count-down loops with a well-known CPU cycle
|
||||||
|
54:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** count per loop iteration. As such, no other processing can
|
||||||
|
55:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** occur simultaneously. It should be kept in mind that the
|
||||||
|
56:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** functions described here do not disable interrupts.
|
||||||
|
57:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
58:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** In general, for long delays, the use of hardware timers is
|
||||||
|
59:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** much preferrable, as they free the CPU, and allow for
|
||||||
|
60:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** concurrent processing of other events while the timer is
|
||||||
|
61:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** running. However, in particular for very short delays, the
|
||||||
|
62:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** overhead of setting up a hardware timer is too much compared
|
||||||
|
63:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** to the overall delay time.
|
||||||
|
64:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
65:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Two inline functions are provided for the actual delay algorithms.
|
||||||
|
66:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
67:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** */
|
||||||
|
68:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
69:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
|
||||||
|
70:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
71:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Delay loop using an 8-bit counter \c __count, so up to 256
|
||||||
|
72:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** iterations are possible. (The value 256 would have to be passed
|
||||||
|
73:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** as 0.) The loop executes three CPU cycles per iteration, not
|
||||||
|
74:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** including the overhead the compiler needs to setup the counter
|
||||||
|
75:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** register.
|
||||||
|
76:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
77:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to 768 microseconds
|
||||||
|
78:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** can be achieved.
|
||||||
|
79:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** */
|
||||||
|
80:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** void
|
||||||
|
81:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
|
||||||
|
82:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** {
|
||||||
|
83:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** __asm__ volatile (
|
||||||
|
84:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** "1: dec %0" "\n\t"
|
||||||
|
85:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** "brne 1b"
|
||||||
|
86:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** : "=r" (__count)
|
||||||
|
87:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** : "0" (__count)
|
||||||
|
88:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** );
|
||||||
|
89:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** }
|
||||||
|
90:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
91:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
|
||||||
|
92:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
93:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
|
||||||
|
94:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** iterations are possible. (The value 65536 would have to be
|
||||||
|
95:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
|
||||||
|
96:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** not including the overhead the compiler requires to setup the
|
||||||
|
97:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** counter register pair.
|
||||||
|
98:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h ****
|
||||||
|
99:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
|
||||||
|
100:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** milliseconds can be achieved.
|
||||||
|
101:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** */
|
||||||
|
102:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** void
|
||||||
|
103:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
|
||||||
|
104:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** {
|
||||||
|
105:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic.h **** __asm__ volatile (
|
||||||
|
129 .loc 2 105 0
|
||||||
|
130 004a 20E9 ldi r18,lo8(400)
|
||||||
|
131 004c 31E0 ldi r19,hi8(400)
|
||||||
|
132 .LVL3:
|
||||||
|
133 .L7:
|
||||||
|
134 004e F901 movw r30,r18
|
||||||
|
135 /* #APP */
|
||||||
|
136 ; 105 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic
|
||||||
|
137 0050 3197 1: sbiw r30,1
|
||||||
|
138 0052 01F4 brne 1b
|
||||||
|
139 ; 0 "" 2
|
||||||
|
140 .LVL4:
|
||||||
|
141 /* #NOAPP */
|
||||||
|
142 0054 0197 sbiw r24,1
|
||||||
|
143 .LBE27:
|
||||||
|
144 .LBE26:
|
||||||
|
145 .file 3 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h"
|
||||||
|
1:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
|
||||||
|
2:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Copyright (c) 2004,2005,2007 Joerg Wunsch
|
||||||
|
3:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Copyright (c) 2007 Florin-Viorel Petrov
|
||||||
|
4:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** All rights reserved.
|
||||||
|
5:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
6:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Redistribution and use in source and binary forms, with or without
|
||||||
|
7:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** modification, are permitted provided that the following conditions are met:
|
||||||
|
8:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
9:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** * Redistributions of source code must retain the above copyright
|
||||||
|
10:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** notice, this list of conditions and the following disclaimer.
|
||||||
|
11:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
12:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** * Redistributions in binary form must reproduce the above copyright
|
||||||
|
13:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** notice, this list of conditions and the following disclaimer in
|
||||||
|
14:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** the documentation and/or other materials provided with the
|
||||||
|
15:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** distribution.
|
||||||
|
16:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
17:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** * Neither the name of the copyright holders nor the names of
|
||||||
|
18:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** contributors may be used to endorse or promote products derived
|
||||||
|
19:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** from this software without specific prior written permission.
|
||||||
|
20:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
21:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
22:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
23:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
24:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
25:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
26:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
27:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
28:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
29:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
30:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
31:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** POSSIBILITY OF SUCH DAMAGE. */
|
||||||
|
32:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
33:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /* $Id: delay.h.in 2189 2010-10-13 09:39:34Z aboyapati $ */
|
||||||
|
34:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
35:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #ifndef _UTIL_DELAY_H_
|
||||||
|
36:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #define _UTIL_DELAY_H_ 1
|
||||||
|
37:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
38:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #ifndef __HAS_DELAY_CYCLES
|
||||||
|
39:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #define __HAS_DELAY_CYCLES 0
|
||||||
|
40:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #endif
|
||||||
|
41:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
42:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #include <inttypes.h>
|
||||||
|
43:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #include <util/delay_basic.h>
|
||||||
|
44:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
45:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /** \file */
|
||||||
|
46:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /** \defgroup util_delay <util/delay.h>: Convenience functions for busy-wait delay loops
|
||||||
|
47:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** \code
|
||||||
|
48:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #define F_CPU 1000000UL // 1 MHz
|
||||||
|
49:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** //#define F_CPU 14.7456E6
|
||||||
|
50:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #include <util/delay.h>
|
||||||
|
51:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** \endcode
|
||||||
|
52:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
53:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** \note As an alternative method, it is possible to pass the
|
||||||
|
54:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** F_CPU macro down to the compiler from the Makefile.
|
||||||
|
55:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Obviously, in that case, no \c \#define statement should be
|
||||||
|
56:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** used.
|
||||||
|
57:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
58:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** The functions in this header file are wrappers around the basic
|
||||||
|
59:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** busy-wait functions from <util/delay_basic.h>. They are meant as
|
||||||
|
60:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** convenience functions where actual time values can be specified
|
||||||
|
61:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** rather than a number of cycles to wait for. The idea behind is
|
||||||
|
62:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** that compile-time constant expressions will be eliminated by
|
||||||
|
63:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** compiler optimization so floating-point expressions can be used
|
||||||
|
64:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** to calculate the number of delay cycles needed based on the CPU
|
||||||
|
65:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** frequency passed by the macro F_CPU.
|
||||||
|
66:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
67:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** \note In order for these functions to work as intended, compiler
|
||||||
|
68:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** optimizations <em>must</em> be enabled, and the delay time
|
||||||
|
69:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** <em>must</em> be an expression that is a known constant at
|
||||||
|
70:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** compile-time. If these requirements are not met, the resulting
|
||||||
|
71:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** delay will be much longer (and basically unpredictable), and
|
||||||
|
72:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** applications that otherwise do not use floating-point calculations
|
||||||
|
73:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** will experience severe code bloat by the floating-point library
|
||||||
|
74:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** routines linked into the application.
|
||||||
|
75:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
76:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** The functions available allow the specification of microsecond, and
|
||||||
|
77:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** millisecond delays directly, using the application-supplied macro
|
||||||
|
78:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** F_CPU as the CPU clock frequency (in Hertz).
|
||||||
|
79:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
80:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** */
|
||||||
|
81:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
82:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #if !defined(__DOXYGEN__)
|
||||||
|
83:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** static inline void _delay_us(double __us) __attribute__((always_inline));
|
||||||
|
84:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** static inline void _delay_ms(double __ms) __attribute__((always_inline));
|
||||||
|
85:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #endif
|
||||||
|
86:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
87:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #ifndef F_CPU
|
||||||
|
88:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /* prevent compiler error by supplying a default */
|
||||||
|
89:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** # warning "F_CPU not defined for <util/delay.h>"
|
||||||
|
90:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** # define F_CPU 1000000UL
|
||||||
|
91:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #endif
|
||||||
|
92:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
93:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #ifndef __OPTIMIZE__
|
||||||
|
94:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** # warning "Compiler optimizations disabled; functions from <util/delay.h> won't work as designed"
|
||||||
|
95:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #endif
|
||||||
|
96:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
97:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** /**
|
||||||
|
98:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** \ingroup util_delay
|
||||||
|
99:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
100:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Perform a delay of \c __ms milliseconds, using _delay_loop_2().
|
||||||
|
101:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
102:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** The macro F_CPU is supposed to be defined to a
|
||||||
|
103:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** constant defining the CPU clock frequency (in Hertz).
|
||||||
|
104:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
105:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** The maximal possible delay is 262.14 ms / F_CPU in MHz.
|
||||||
|
106:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
107:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** When the user request delay which exceed the maximum possible one,
|
||||||
|
108:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** _delay_ms() provides a decreased resolution functionality. In this
|
||||||
|
109:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** mode _delay_ms() will work with a resolution of 1/10 ms, providing
|
||||||
|
110:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** delays up to 6.5535 seconds (independent from CPU frequency). The
|
||||||
|
111:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** user will not be informed about decreased resolution.
|
||||||
|
112:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
113:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** If the avr-gcc toolchain has __builtin_avr_delay_cycles(unsigned long)
|
||||||
|
114:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** support, maximal possible delay is 4294967.295 ms/ F_CPU in MHz. For
|
||||||
|
115:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** values greater than the maximal possible delay, overflows results in
|
||||||
|
116:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** no delay i.e., 0ms.
|
||||||
|
117:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
118:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Conversion of __us into clock cycles may not always result in integer.
|
||||||
|
119:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** By default, the clock cycles rounded up to next integer. This ensures that
|
||||||
|
120:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** the user gets atleast __us microseconds of delay.
|
||||||
|
121:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
122:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Alternatively, user can define __DELAY_ROUND_DOWN__ and __DELAY_ROUND_CLOSEST__
|
||||||
|
123:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** to round down and round to closest integer.
|
||||||
|
124:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
125:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** Note: The new implementation of _delay_ms(double __ms) with
|
||||||
|
126:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __builtin_avr_delay_cycles(unsigned long) support is not backward compatible.
|
||||||
|
127:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** User can define __DELAY_BACKWARD_COMPATIBLE__ to get a backward compatible delay
|
||||||
|
128:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** although this will be deprecated in future.
|
||||||
|
129:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
130:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** */
|
||||||
|
131:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** void
|
||||||
|
132:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** _delay_ms(double __ms)
|
||||||
|
133:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** {
|
||||||
|
134:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** uint16_t __ticks;
|
||||||
|
135:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** double __tmp ;
|
||||||
|
136:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #if __HAS_DELAY_CYCLES && defined(__OPTIMIZE__) && !defined(__DELAY_BACKWARD_COMPATIBLE__)
|
||||||
|
137:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** uint32_t __ticks_dc;
|
||||||
|
138:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** extern void __builtin_avr_delay_cycles(unsigned long);
|
||||||
|
139:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __tmp = ((F_CPU) / 1e3) * __ms;
|
||||||
|
140:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
141:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #if defined(__DELAY_ROUND_DOWN__)
|
||||||
|
142:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __ticks_dc = (uint32_t)fabs(__tmp);
|
||||||
|
143:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
144:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #elif defined(__DELAY_ROUND_CLOSEST__)
|
||||||
|
145:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __ticks_dc = (uint32_t)(fabs(__tmp)+0.5);
|
||||||
|
146:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
147:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #else
|
||||||
|
148:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** //round up by default
|
||||||
|
149:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
|
||||||
|
150:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #endif
|
||||||
|
151:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
152:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __builtin_avr_delay_cycles(__ticks_dc);
|
||||||
|
153:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h ****
|
||||||
|
154:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** #elif !__HAS_DELAY_CYCLES || (__HAS_DELAY_CYCLES && !defined(__OPTIMIZE__)) || defined (__DELAY_BAC
|
||||||
|
155:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __tmp = ((F_CPU) / 4e3) * __ms;
|
||||||
|
156:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** if (__tmp < 1.0)
|
||||||
|
157:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __ticks = 1;
|
||||||
|
158:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** else if (__tmp > 65535)
|
||||||
|
159:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** {
|
||||||
|
160:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** // __ticks = requested delay in 1/10 ms
|
||||||
|
161:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** __ticks = (uint16_t) (__ms * 10.0);
|
||||||
|
162:/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay.h **** while(__ticks)
|
||||||
|
146 .loc 3 162 0
|
||||||
|
147 0056 01F4 brne .L7
|
||||||
|
148 0058 00E0 ldi r16,lo8(0)
|
||||||
|
149 005a 10E0 ldi r17,hi8(0)
|
||||||
|
150 .LBE25:
|
||||||
|
151 .LBE24:
|
||||||
|
152 .LBB28:
|
||||||
|
82:main.c **** _delay_ms(5000);
|
||||||
|
83:main.c ****
|
||||||
|
84:main.c **** while (1) {
|
||||||
|
85:main.c **** for(uint16_t i = 0; i < 0xffff; i++) {
|
||||||
|
86:main.c ****
|
||||||
|
87:main.c **** /* Print the number to serial for debugging. */
|
||||||
|
88:main.c **** itoa(i, binary, 2);
|
||||||
|
153 .loc 1 88 0
|
||||||
|
154 005c 7E01 movw r14,r28
|
||||||
|
155 005e 0894 sec
|
||||||
|
156 0060 E11C adc r14,__zero_reg__
|
||||||
|
157 0062 F11C adc r15,__zero_reg__
|
||||||
|
89:main.c **** printf("%s %d \n", binary, i);
|
||||||
|
158 .loc 1 89 0
|
||||||
|
159 0064 80E0 ldi r24,lo8(.LC0)
|
||||||
|
160 0066 C82E mov r12,r24
|
||||||
|
161 0068 80E0 ldi r24,hi8(.LC0)
|
||||||
|
162 006a D82E mov r13,r24
|
||||||
|
163 .LBB29:
|
||||||
|
164 .LBB30:
|
||||||
|
165 .LBB31:
|
||||||
|
166 .LBB32:
|
||||||
|
167 .loc 2 105 0
|
||||||
|
168 006c 90E9 ldi r25,lo8(400)
|
||||||
|
169 006e A92E mov r10,r25
|
||||||
|
170 0070 91E0 ldi r25,hi8(400)
|
||||||
|
171 0072 B92E mov r11,r25
|
||||||
|
172 .L15:
|
||||||
|
173 .LBE32:
|
||||||
|
174 .LBE31:
|
||||||
|
175 .LBE30:
|
||||||
|
176 .LBE29:
|
||||||
|
88:main.c **** itoa(i, binary, 2);
|
||||||
|
177 .loc 1 88 0 discriminator 2
|
||||||
|
178 0074 C801 movw r24,r16
|
||||||
|
179 0076 B701 movw r22,r14
|
||||||
|
180 0078 42E0 ldi r20,lo8(2)
|
||||||
|
181 007a 50E0 ldi r21,hi8(2)
|
||||||
|
182 007c 0E94 0000 call itoa
|
||||||
|
183 .loc 1 89 0 discriminator 2
|
||||||
|
184 0080 00D0 rcall .
|
||||||
|
185 0082 00D0 rcall .
|
||||||
|
186 0084 00D0 rcall .
|
||||||
|
187 0086 EDB7 in r30,__SP_L__
|
||||||
|
188 0088 FEB7 in r31,__SP_H__
|
||||||
|
189 008a 3196 adiw r30,1
|
||||||
|
190 008c ADB7 in r26,__SP_L__
|
||||||
|
191 008e BEB7 in r27,__SP_H__
|
||||||
|
192 0090 1296 adiw r26,1+1
|
||||||
|
193 0092 DC92 st X,r13
|
||||||
|
194 0094 CE92 st -X,r12
|
||||||
|
195 0096 1197 sbiw r26,1
|
||||||
|
196 0098 F382 std Z+3,r15
|
||||||
|
197 009a E282 std Z+2,r14
|
||||||
|
198 009c 1583 std Z+5,r17
|
||||||
|
199 009e 0483 std Z+4,r16
|
||||||
|
200 .LCFI3:
|
||||||
|
201 00a0 0E94 0000 call printf
|
||||||
|
90:main.c ****
|
||||||
|
91:main.c **** /* Shift high byte first to shift register. */
|
||||||
|
92:main.c **** shift_out(i >> 8);
|
||||||
|
202 .loc 1 92 0 discriminator 2
|
||||||
|
203 00a4 8DB7 in r24,__SP_L__
|
||||||
|
204 00a6 9EB7 in r25,__SP_H__
|
||||||
|
205 00a8 0696 adiw r24,6
|
||||||
|
206 00aa 0FB6 in __tmp_reg__,__SREG__
|
||||||
|
207 00ac F894 cli
|
||||||
|
208 00ae 9EBF out __SP_H__,r25
|
||||||
|
209 00b0 0FBE out __SREG__,__tmp_reg__
|
||||||
|
210 00b2 8DBF out __SP_L__,r24
|
||||||
|
211 00b4 812F mov r24,r17
|
||||||
|
212 .LCFI4:
|
||||||
|
213 00b6 0E94 0000 call shift_out
|
||||||
|
93:main.c **** shift_out(i & 0xff);
|
||||||
|
214 .loc 1 93 0 discriminator 2
|
||||||
|
215 00ba 802F mov r24,r16
|
||||||
|
216 00bc 0E94 0000 call shift_out
|
||||||
|
94:main.c ****
|
||||||
|
95:main.c **** /* Pulse latch to transfer data from shift registers */
|
||||||
|
96:main.c **** /* to storage registers (should this be inside shift_out()?). */
|
||||||
|
97:main.c **** digital_write(LATCH, LOW);
|
||||||
|
217 .loc 1 97 0 discriminator 2
|
||||||
|
218 00c0 2A98 cbi 37-0x20,2
|
||||||
|
98:main.c **** digital_write(LATCH, HIGH);
|
||||||
|
219 .loc 1 98 0 discriminator 2
|
||||||
|
220 00c2 2A9A sbi 37-0x20,2
|
||||||
|
221 .LVL5:
|
||||||
|
222 00c4 24EF ldi r18,lo8(500)
|
||||||
|
223 00c6 31E0 ldi r19,hi8(500)
|
||||||
|
224 .LVL6:
|
||||||
|
225 .L9:
|
||||||
|
226 .LBB36:
|
||||||
|
227 .LBB35:
|
||||||
|
228 .LBB34:
|
||||||
|
229 .LBB33:
|
||||||
|
230 .loc 2 105 0
|
||||||
|
231 00c8 C501 movw r24,r10
|
||||||
|
232 /* #APP */
|
||||||
|
233 ; 105 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/util/delay_basic
|
||||||
|
234 00ca 0197 1: sbiw r24,1
|
||||||
|
235 00cc 01F4 brne 1b
|
||||||
|
236 ; 0 "" 2
|
||||||
|
237 .LVL7:
|
||||||
|
238 /* #NOAPP */
|
||||||
|
239 00ce 2150 subi r18,lo8(-(-1))
|
||||||
|
240 00d0 3040 sbci r19,hi8(-(-1))
|
||||||
|
241 .LBE33:
|
||||||
|
242 .LBE34:
|
||||||
|
243 .loc 3 162 0
|
||||||
|
244 00d2 01F4 brne .L9
|
||||||
|
245 .LBE35:
|
||||||
|
246 .LBE36:
|
||||||
|
85:main.c **** for(uint16_t i = 0; i < 0xffff; i++) {
|
||||||
|
247 .loc 1 85 0 discriminator 2
|
||||||
|
248 00d4 0F5F subi r16,lo8(-(1))
|
||||||
|
249 00d6 1F4F sbci r17,hi8(-(1))
|
||||||
|
250 .LVL8:
|
||||||
|
251 00d8 9FEF ldi r25,hi8(-1)
|
||||||
|
252 00da 0F3F cpi r16,lo8(-1)
|
||||||
|
253 00dc 1907 cpc r17,r25
|
||||||
|
254 00de 01F4 brne .L15
|
||||||
|
85:main.c **** for(uint16_t i = 0; i < 0xffff; i++) {
|
||||||
|
255 .loc 1 85 0 is_stmt 0
|
||||||
|
256 00e0 00E0 ldi r16,lo8(0)
|
||||||
|
257 00e2 10E0 ldi r17,hi8(0)
|
||||||
|
258 .LVL9:
|
||||||
|
259 00e4 00C0 rjmp .L15
|
||||||
|
260 .LBE28:
|
||||||
|
261 .LFE7:
|
||||||
|
263 .global uart_input
|
||||||
|
264 .data
|
||||||
|
267 uart_input:
|
||||||
|
268 0008 0000 00 .skip 3,0
|
||||||
|
269 000b 01 .byte 1
|
||||||
|
270 000c 0000 0000 .skip 4,0
|
||||||
|
271 0010 0000 .word 0
|
||||||
|
272 0012 0000 .word gs(uart_getchar)
|
||||||
|
273 0014 0000 .word 0
|
||||||
|
274 .global uart_output
|
||||||
|
277 uart_output:
|
||||||
|
278 0016 0000 00 .skip 3,0
|
||||||
|
279 0019 02 .byte 2
|
||||||
|
280 001a 0000 0000 .skip 4,0
|
||||||
|
281 001e 0000 .word gs(uart_putchar)
|
||||||
|
282 0020 0000 .word 0
|
||||||
|
283 0022 0000 .word 0
|
||||||
|
343 .Letext0:
|
||||||
|
344 .file 4 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h"
|
||||||
|
345 .file 5 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h"
|
||||||
|
346 .file 6 "uart.h"
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
*ABS*:0000000000000000 main.c
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:2 *ABS*:000000000000003f __SREG__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:3 *ABS*:000000000000003e __SP_H__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:4 *ABS*:000000000000003d __SP_L__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:5 *ABS*:0000000000000000 __tmp_reg__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:6 *ABS*:0000000000000001 __zero_reg__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:13 .text:0000000000000000 shift_out
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:69 .text.startup:0000000000000000 main
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:277 .data:0000000000000016 uart_output
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cclunMq8.s:267 .data:0000000000000008 uart_input
|
||||||
|
|
||||||
|
UNDEFINED SYMBOLS
|
||||||
|
__do_copy_data
|
||||||
|
__do_clear_bss
|
||||||
|
uart_init
|
||||||
|
__iob
|
||||||
|
itoa
|
||||||
|
printf
|
||||||
|
uart_getchar
|
||||||
|
uart_putchar
|
659
tpic6b595_shiftout/main.map
Normal file
659
tpic6b595_shiftout/main.map
Normal file
@ -0,0 +1,659 @@
|
|||||||
|
Archive member included because of file (symbol)
|
||||||
|
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
uart_async.o (__divmodhi4)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o (exit)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
main.o (__do_copy_data)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
main.o (__do_clear_bss)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o) (__udivmodhi4)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
main.o (itoa)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
main.o (__iob)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
main.o (printf)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (vfprintf)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen_P)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (strnlen)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o) (strrev)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (fputc)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o) (__ultoa_invert)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (__prologue_saves__)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o) (__epilogue_restores__)
|
||||||
|
|
||||||
|
Allocating common symbols
|
||||||
|
Common symbol size file
|
||||||
|
|
||||||
|
__iob 0x6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
|
||||||
|
Memory Configuration
|
||||||
|
|
||||||
|
Name Origin Length Attributes
|
||||||
|
text 0x0000000000000000 0x0000000000020000 xr
|
||||||
|
data 0x0000000000800060 0x000000000000ffa0 rw !x
|
||||||
|
eeprom 0x0000000000810000 0x0000000000010000 rw !x
|
||||||
|
*default* 0x0000000000000000 0xffffffffffffffff
|
||||||
|
|
||||||
|
Linker script and memory map
|
||||||
|
|
||||||
|
Address of section .data set to 0x800100
|
||||||
|
LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
LOAD main.o
|
||||||
|
LOAD uart_async.o
|
||||||
|
LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libm.a
|
||||||
|
LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a
|
||||||
|
LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a
|
||||||
|
LOAD /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a
|
||||||
|
|
||||||
|
.hash
|
||||||
|
*(.hash)
|
||||||
|
|
||||||
|
.dynsym
|
||||||
|
*(.dynsym)
|
||||||
|
|
||||||
|
.dynstr
|
||||||
|
*(.dynstr)
|
||||||
|
|
||||||
|
.gnu.version
|
||||||
|
*(.gnu.version)
|
||||||
|
|
||||||
|
.gnu.version_d
|
||||||
|
*(.gnu.version_d)
|
||||||
|
|
||||||
|
.gnu.version_r
|
||||||
|
*(.gnu.version_r)
|
||||||
|
|
||||||
|
.rel.init
|
||||||
|
*(.rel.init)
|
||||||
|
|
||||||
|
.rela.init
|
||||||
|
*(.rela.init)
|
||||||
|
|
||||||
|
.rel.text
|
||||||
|
*(.rel.text)
|
||||||
|
*(.rel.text.*)
|
||||||
|
*(.rel.gnu.linkonce.t*)
|
||||||
|
|
||||||
|
.rela.text
|
||||||
|
*(.rela.text)
|
||||||
|
*(.rela.text.*)
|
||||||
|
*(.rela.gnu.linkonce.t*)
|
||||||
|
|
||||||
|
.rel.fini
|
||||||
|
*(.rel.fini)
|
||||||
|
|
||||||
|
.rela.fini
|
||||||
|
*(.rela.fini)
|
||||||
|
|
||||||
|
.rel.rodata
|
||||||
|
*(.rel.rodata)
|
||||||
|
*(.rel.rodata.*)
|
||||||
|
*(.rel.gnu.linkonce.r*)
|
||||||
|
|
||||||
|
.rela.rodata
|
||||||
|
*(.rela.rodata)
|
||||||
|
*(.rela.rodata.*)
|
||||||
|
*(.rela.gnu.linkonce.r*)
|
||||||
|
|
||||||
|
.rel.data
|
||||||
|
*(.rel.data)
|
||||||
|
*(.rel.data.*)
|
||||||
|
*(.rel.gnu.linkonce.d*)
|
||||||
|
|
||||||
|
.rela.data
|
||||||
|
*(.rela.data)
|
||||||
|
*(.rela.data.*)
|
||||||
|
*(.rela.gnu.linkonce.d*)
|
||||||
|
|
||||||
|
.rel.ctors
|
||||||
|
*(.rel.ctors)
|
||||||
|
|
||||||
|
.rela.ctors
|
||||||
|
*(.rela.ctors)
|
||||||
|
|
||||||
|
.rel.dtors
|
||||||
|
*(.rel.dtors)
|
||||||
|
|
||||||
|
.rela.dtors
|
||||||
|
*(.rela.dtors)
|
||||||
|
|
||||||
|
.rel.got
|
||||||
|
*(.rel.got)
|
||||||
|
|
||||||
|
.rela.got
|
||||||
|
*(.rela.got)
|
||||||
|
|
||||||
|
.rel.bss
|
||||||
|
*(.rel.bss)
|
||||||
|
|
||||||
|
.rela.bss
|
||||||
|
*(.rela.bss)
|
||||||
|
|
||||||
|
.rel.plt
|
||||||
|
*(.rel.plt)
|
||||||
|
|
||||||
|
.rela.plt
|
||||||
|
*(.rela.plt)
|
||||||
|
|
||||||
|
.text 0x0000000000000000 0x9c8
|
||||||
|
*(.vectors)
|
||||||
|
.vectors 0x0000000000000000 0x68 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x0000000000000000 __vectors
|
||||||
|
0x0000000000000000 __vector_default
|
||||||
|
*(.vectors)
|
||||||
|
*(.progmem.gcc*)
|
||||||
|
*(.progmem*)
|
||||||
|
0x0000000000000068 . = ALIGN (0x2)
|
||||||
|
0x0000000000000068 __trampolines_start = .
|
||||||
|
*(.trampolines)
|
||||||
|
.trampolines 0x0000000000000068 0x0 linker stubs
|
||||||
|
*(.trampolines*)
|
||||||
|
0x0000000000000068 __trampolines_end = .
|
||||||
|
*(.jumptables)
|
||||||
|
*(.jumptables*)
|
||||||
|
*(.lowtext)
|
||||||
|
*(.lowtext*)
|
||||||
|
0x0000000000000068 __ctors_start = .
|
||||||
|
*(.ctors)
|
||||||
|
0x0000000000000068 __ctors_end = .
|
||||||
|
0x0000000000000068 __dtors_start = .
|
||||||
|
*(.dtors)
|
||||||
|
0x0000000000000068 __dtors_end = .
|
||||||
|
SORT(*)(.ctors)
|
||||||
|
SORT(*)(.dtors)
|
||||||
|
*(.init0)
|
||||||
|
.init0 0x0000000000000068 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x0000000000000068 __init
|
||||||
|
*(.init0)
|
||||||
|
*(.init1)
|
||||||
|
*(.init1)
|
||||||
|
*(.init2)
|
||||||
|
.init2 0x0000000000000068 0xc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
*(.init2)
|
||||||
|
*(.init3)
|
||||||
|
*(.init3)
|
||||||
|
*(.init4)
|
||||||
|
.init4 0x0000000000000074 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
0x0000000000000074 __do_copy_data
|
||||||
|
.init4 0x000000000000008a 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
0x000000000000008a __do_clear_bss
|
||||||
|
*(.init4)
|
||||||
|
*(.init5)
|
||||||
|
*(.init5)
|
||||||
|
*(.init6)
|
||||||
|
*(.init6)
|
||||||
|
*(.init7)
|
||||||
|
*(.init7)
|
||||||
|
*(.init8)
|
||||||
|
*(.init8)
|
||||||
|
*(.init9)
|
||||||
|
.init9 0x000000000000009a 0x8 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
*(.init9)
|
||||||
|
*(.text)
|
||||||
|
.text 0x00000000000000a2 0x4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
0x00000000000000a2 __vector_20
|
||||||
|
0x00000000000000a2 __vector_1
|
||||||
|
0x00000000000000a2 __vector_24
|
||||||
|
0x00000000000000a2 __vector_12
|
||||||
|
0x00000000000000a2 __bad_interrupt
|
||||||
|
0x00000000000000a2 __vector_6
|
||||||
|
0x00000000000000a2 __vector_3
|
||||||
|
0x00000000000000a2 __vector_23
|
||||||
|
0x00000000000000a2 __vector_25
|
||||||
|
0x00000000000000a2 __vector_11
|
||||||
|
0x00000000000000a2 __vector_13
|
||||||
|
0x00000000000000a2 __vector_17
|
||||||
|
0x00000000000000a2 __vector_7
|
||||||
|
0x00000000000000a2 __vector_5
|
||||||
|
0x00000000000000a2 __vector_4
|
||||||
|
0x00000000000000a2 __vector_9
|
||||||
|
0x00000000000000a2 __vector_2
|
||||||
|
0x00000000000000a2 __vector_21
|
||||||
|
0x00000000000000a2 __vector_15
|
||||||
|
0x00000000000000a2 __vector_8
|
||||||
|
0x00000000000000a2 __vector_14
|
||||||
|
0x00000000000000a2 __vector_10
|
||||||
|
0x00000000000000a2 __vector_16
|
||||||
|
0x00000000000000a2 __vector_22
|
||||||
|
.text 0x00000000000000a6 0x30 main.o
|
||||||
|
0x00000000000000a6 shift_out
|
||||||
|
.text 0x00000000000000d6 0x1c0 uart_async.o
|
||||||
|
0x00000000000000d6 uart_init
|
||||||
|
0x0000000000000110 uart_putchar
|
||||||
|
0x0000000000000168 uart_getchar
|
||||||
|
0x0000000000000192 __vector_18
|
||||||
|
0x0000000000000212 __vector_19
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.text 0x0000000000000296 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
0x0000000000000296 . = ALIGN (0x2)
|
||||||
|
*(.text.*)
|
||||||
|
.text.startup 0x0000000000000296 0xe6 main.o
|
||||||
|
0x0000000000000296 main
|
||||||
|
.text.libgcc 0x000000000000037c 0x26 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
0x000000000000037c __divmodhi4
|
||||||
|
0x000000000000037c _div
|
||||||
|
.text.libgcc 0x00000000000003a2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.text.libgcc 0x00000000000003a2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.text.libgcc 0x00000000000003a2 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.text.libgcc 0x00000000000003a2 0x28 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
0x00000000000003a2 __udivmodhi4
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000000003ca 0x42 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
0x00000000000003ca itoa
|
||||||
|
.text.avr-libc
|
||||||
|
0x000000000000040c 0x2a /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
0x000000000000040c printf
|
||||||
|
.text.avr-libc
|
||||||
|
0x0000000000000436 0x3c0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
0x0000000000000436 vfprintf
|
||||||
|
.text.avr-libc
|
||||||
|
0x00000000000007f6 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
0x00000000000007f6 strnlen_P
|
||||||
|
.text.avr-libc
|
||||||
|
0x000000000000080c 0x16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
0x000000000000080c strnlen
|
||||||
|
.text.avr-libc
|
||||||
|
0x0000000000000822 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
0x0000000000000822 strrev
|
||||||
|
.text.avr-libc
|
||||||
|
0x0000000000000842 0x58 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
0x0000000000000842 fputc
|
||||||
|
.text.avr-libc
|
||||||
|
0x000000000000089a 0xbc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
0x000000000000089a __ultoa_invert
|
||||||
|
.text.libgcc 0x0000000000000956 0x38 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
0x0000000000000956 __prologue_saves__
|
||||||
|
.text.libgcc 0x000000000000098e 0x36 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
0x000000000000098e __epilogue_restores__
|
||||||
|
0x00000000000009c4 . = ALIGN (0x2)
|
||||||
|
*(.fini9)
|
||||||
|
.fini9 0x00000000000009c4 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
0x00000000000009c4 exit
|
||||||
|
0x00000000000009c4 _exit
|
||||||
|
*(.fini9)
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini8)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini7)
|
||||||
|
*(.fini6)
|
||||||
|
*(.fini6)
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini5)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini4)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini3)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini2)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini1)
|
||||||
|
*(.fini0)
|
||||||
|
.fini0 0x00000000000009c4 0x4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
*(.fini0)
|
||||||
|
0x00000000000009c8 _etext = .
|
||||||
|
|
||||||
|
.data 0x0000000000800100 0x24 load address 0x00000000000009c8
|
||||||
|
0x0000000000800100 PROVIDE (__data_start, .)
|
||||||
|
*(.data)
|
||||||
|
.data 0x0000000000800100 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
.data 0x0000000000800100 0x24 main.o
|
||||||
|
0x0000000000800108 uart_input
|
||||||
|
0x0000000000800116 uart_output
|
||||||
|
.data 0x0000000000800124 0x0 uart_async.o
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.data 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
*(.data*)
|
||||||
|
*(.rodata)
|
||||||
|
*(.rodata*)
|
||||||
|
*(.gnu.linkonce.d*)
|
||||||
|
0x0000000000800124 . = ALIGN (0x2)
|
||||||
|
0x0000000000800124 _edata = .
|
||||||
|
0x0000000000800124 PROVIDE (__data_end, .)
|
||||||
|
|
||||||
|
.bss 0x0000000000800124 0x44e
|
||||||
|
0x0000000000800124 PROVIDE (__bss_start, .)
|
||||||
|
*(.bss)
|
||||||
|
.bss 0x0000000000800124 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
.bss 0x0000000000800124 0x0 main.o
|
||||||
|
.bss 0x0000000000800124 0x448 uart_async.o
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.bss 0x000000000080056c 0x0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
*(.bss*)
|
||||||
|
*(COMMON)
|
||||||
|
COMMON 0x000000000080056c 0x6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
0x000000000080056c __iob
|
||||||
|
0x0000000000800572 PROVIDE (__bss_end, .)
|
||||||
|
0x00000000000009c8 __data_load_start = LOADADDR (.data)
|
||||||
|
0x00000000000009ec __data_load_end = (__data_load_start + SIZEOF (.data))
|
||||||
|
|
||||||
|
.noinit 0x0000000000800572 0x0
|
||||||
|
0x0000000000800572 PROVIDE (__noinit_start, .)
|
||||||
|
*(.noinit*)
|
||||||
|
0x0000000000800572 PROVIDE (__noinit_end, .)
|
||||||
|
0x0000000000800572 _end = .
|
||||||
|
0x0000000000800572 PROVIDE (__heap_start, .)
|
||||||
|
|
||||||
|
.eeprom 0x0000000000810000 0x0
|
||||||
|
*(.eeprom*)
|
||||||
|
0x0000000000810000 __eeprom_end = .
|
||||||
|
|
||||||
|
.stab 0x0000000000000000 0xf0c
|
||||||
|
*(.stab)
|
||||||
|
.stab 0x0000000000000000 0x6cc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
.stab 0x00000000000006cc 0x1b0 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
0x1bc (size before relaxing)
|
||||||
|
.stab 0x000000000000087c 0x9c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
0xa8 (size before relaxing)
|
||||||
|
.stab 0x0000000000000918 0x9c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
0xa8 (size before relaxing)
|
||||||
|
.stab 0x00000000000009b4 0xd8 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
0xe4 (size before relaxing)
|
||||||
|
.stab 0x0000000000000a8c 0x480 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
0x48c (size before relaxing)
|
||||||
|
|
||||||
|
.stabstr 0x0000000000000000 0x257
|
||||||
|
*(.stabstr)
|
||||||
|
.stabstr 0x0000000000000000 0x257 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
|
||||||
|
.stab.excl
|
||||||
|
*(.stab.excl)
|
||||||
|
|
||||||
|
.stab.exclstr
|
||||||
|
*(.stab.exclstr)
|
||||||
|
|
||||||
|
.stab.index
|
||||||
|
*(.stab.index)
|
||||||
|
|
||||||
|
.stab.indexstr
|
||||||
|
*(.stab.indexstr)
|
||||||
|
|
||||||
|
.comment
|
||||||
|
*(.comment)
|
||||||
|
|
||||||
|
.debug
|
||||||
|
*(.debug)
|
||||||
|
|
||||||
|
.line
|
||||||
|
*(.line)
|
||||||
|
|
||||||
|
.debug_srcinfo
|
||||||
|
*(.debug_srcinfo)
|
||||||
|
|
||||||
|
.debug_sfnames
|
||||||
|
*(.debug_sfnames)
|
||||||
|
|
||||||
|
.debug_aranges 0x0000000000000000 0x188
|
||||||
|
*(.debug_aranges)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000000 0x28 main.o
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000028 0x20 uart_async.o
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000048 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000068 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000088 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x00000000000000a8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x00000000000000c8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x00000000000000e8 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000108 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000128 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000148 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.debug_aranges
|
||||||
|
0x0000000000000168 0x20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
|
||||||
|
.debug_pubnames
|
||||||
|
*(.debug_pubnames)
|
||||||
|
|
||||||
|
.debug_info 0x0000000000000000 0x1243
|
||||||
|
*(.debug_info)
|
||||||
|
.debug_info 0x0000000000000000 0x33d main.o
|
||||||
|
.debug_info 0x000000000000033d 0x2d1 uart_async.o
|
||||||
|
.debug_info 0x000000000000060e 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.debug_info 0x00000000000006ad 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.debug_info 0x000000000000074c 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.debug_info 0x00000000000007eb 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.debug_info 0x000000000000088a 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.debug_info 0x0000000000000929 0x153 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.debug_info 0x0000000000000a7c 0x1ca /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_info 0x0000000000000c46 0x354 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_info 0x0000000000000f9a 0x16b /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.debug_info 0x0000000000001105 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.debug_info 0x00000000000011a4 0x9f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
*(.gnu.linkonce.wi.*)
|
||||||
|
|
||||||
|
.debug_abbrev 0x0000000000000000 0x810
|
||||||
|
*(.debug_abbrev)
|
||||||
|
.debug_abbrev 0x0000000000000000 0x1f9 main.o
|
||||||
|
.debug_abbrev 0x00000000000001f9 0x168 uart_async.o
|
||||||
|
.debug_abbrev 0x0000000000000361 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.debug_abbrev 0x0000000000000375 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.debug_abbrev 0x0000000000000389 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.debug_abbrev 0x000000000000039d 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.debug_abbrev 0x00000000000003b1 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.debug_abbrev 0x00000000000003c5 0xc7 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.debug_abbrev 0x000000000000048c 0x11e /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_abbrev 0x00000000000005aa 0x163 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_abbrev 0x000000000000070d 0xdb /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.debug_abbrev 0x00000000000007e8 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.debug_abbrev 0x00000000000007fc 0x14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
|
||||||
|
.debug_line 0x0000000000000000 0x8dd
|
||||||
|
*(.debug_line)
|
||||||
|
.debug_line 0x0000000000000000 0x183 main.o
|
||||||
|
.debug_line 0x0000000000000183 0xc4 uart_async.o
|
||||||
|
.debug_line 0x0000000000000247 0x70 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
.debug_line 0x00000000000002b7 0x5f /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
.debug_line 0x0000000000000316 0x68 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
.debug_line 0x000000000000037e 0x65 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
.debug_line 0x00000000000003e3 0x71 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
.debug_line 0x0000000000000454 0x62 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
.debug_line 0x00000000000004b6 0xbc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_line 0x0000000000000572 0x1fe /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_line 0x0000000000000770 0x7c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
.debug_line 0x00000000000007ec 0x79 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
.debug_line 0x0000000000000865 0x78 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
|
||||||
|
.debug_frame 0x0000000000000000 0x1f4
|
||||||
|
*(.debug_frame)
|
||||||
|
.debug_frame 0x0000000000000000 0x4c main.o
|
||||||
|
.debug_frame 0x000000000000004c 0xf8 uart_async.o
|
||||||
|
.debug_frame 0x0000000000000144 0x2c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_frame 0x0000000000000170 0x4c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_frame 0x00000000000001bc 0x38 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
|
||||||
|
.debug_str 0x0000000000000000 0x2e0
|
||||||
|
*(.debug_str)
|
||||||
|
.debug_str 0x0000000000000000 0x116 main.o
|
||||||
|
0x159 (size before relaxing)
|
||||||
|
.debug_str 0x0000000000000116 0x95 uart_async.o
|
||||||
|
0x16e (size before relaxing)
|
||||||
|
.debug_str 0x00000000000001ab 0x60 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
0x104 (size before relaxing)
|
||||||
|
.debug_str 0x000000000000020b 0x3e /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
0x137 (size before relaxing)
|
||||||
|
.debug_str 0x0000000000000249 0x75 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
0x189 (size before relaxing)
|
||||||
|
.debug_str 0x00000000000002be 0x22 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
0x10d (size before relaxing)
|
||||||
|
|
||||||
|
.debug_loc 0x0000000000000000 0x90c
|
||||||
|
*(.debug_loc)
|
||||||
|
.debug_loc 0x0000000000000000 0xbf main.o
|
||||||
|
.debug_loc 0x00000000000000bf 0x277 uart_async.o
|
||||||
|
.debug_loc 0x0000000000000336 0x21 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_loc 0x0000000000000357 0x51c /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_loc 0x0000000000000873 0x99 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
|
||||||
|
.debug_macinfo
|
||||||
|
*(.debug_macinfo)
|
||||||
|
OUTPUT(main.elf elf32-avr)
|
||||||
|
LOAD linker stubs
|
||||||
|
|
||||||
|
.debug_ranges 0x0000000000000000 0x90
|
||||||
|
.debug_ranges 0x0000000000000000 0x60 main.o
|
||||||
|
.debug_ranges 0x0000000000000060 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
.debug_ranges 0x0000000000000070 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
.debug_ranges 0x0000000000000080 0x10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
|
||||||
|
Cross Reference Table
|
||||||
|
|
||||||
|
Symbol File
|
||||||
|
__bad_interrupt /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__bss_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
__bss_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
__data_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
__data_load_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
__data_start /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
__divmodhi4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
uart_async.o
|
||||||
|
__do_clear_bss /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_clear_bss.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
uart_async.o
|
||||||
|
main.o
|
||||||
|
__do_copy_data /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_copy_data.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
uart_async.o
|
||||||
|
main.o
|
||||||
|
__epilogue_restores__ /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_epilogue.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
__heap_end /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__init /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__iob /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(iob.o)
|
||||||
|
main.o
|
||||||
|
__prologue_saves__ /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_prologue.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
__stack /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__udivmodhi4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_udivmodhi4.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
__ultoa_invert /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
__vector_1 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_10 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_11 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_12 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_13 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_14 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_15 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_16 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_17 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_18 uart_async.o
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_19 uart_async.o
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_2 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_20 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_21 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_22 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_23 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_24 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_25 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_3 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_4 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_5 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_6 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_7 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_8 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_9 /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vector_default /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
__vectors /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
_div /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_divmodhi4.o)
|
||||||
|
_exit /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
exit /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/avr5/libgcc.a(_exit.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
fputc /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(fputc.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
itoa /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
main.o
|
||||||
|
main main.o
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/crtm328p.o
|
||||||
|
printf /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
||||||
|
main.o
|
||||||
|
shift_out main.o
|
||||||
|
strnlen /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
strnlen_P /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
strrev /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(strrev.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(itoa.o)
|
||||||
|
uart_getchar uart_async.o
|
||||||
|
main.o
|
||||||
|
uart_init uart_async.o
|
||||||
|
main.o
|
||||||
|
uart_input main.o
|
||||||
|
uart_output main.o
|
||||||
|
uart_putchar uart_async.o
|
||||||
|
main.o
|
||||||
|
vfprintf /usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
|
||||||
|
/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/lib/avr5/libc.a(printf.o)
|
BIN
tpic6b595_shiftout/main.o
Normal file
BIN
tpic6b595_shiftout/main.o
Normal file
Binary file not shown.
112
tpic6b595_shiftout/main.sym
Normal file
112
tpic6b595_shiftout/main.sym
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
00000000 W __heap_end
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 a __tmp_reg__
|
||||||
|
00000000 W __vector_default
|
||||||
|
00000000 T __vectors
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
00000001 a __zero_reg__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003d a __SP_L__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003e a __SP_H__
|
||||||
|
0000003f a __SREG__
|
||||||
|
0000003f a __SREG__
|
||||||
|
0000003f a __SREG__
|
||||||
|
0000003f a __SREG__
|
||||||
|
0000003f a __SREG__
|
||||||
|
0000003f a __SREG__
|
||||||
|
00000068 T __ctors_end
|
||||||
|
00000068 T __ctors_start
|
||||||
|
00000068 T __dtors_end
|
||||||
|
00000068 T __dtors_start
|
||||||
|
00000068 W __init
|
||||||
|
00000068 T __trampolines_end
|
||||||
|
00000068 T __trampolines_start
|
||||||
|
00000074 T __do_copy_data
|
||||||
|
0000008a T __do_clear_bss
|
||||||
|
00000092 t .do_clear_bss_loop
|
||||||
|
00000094 t .do_clear_bss_start
|
||||||
|
000000a2 T __bad_interrupt
|
||||||
|
000000a2 W __vector_1
|
||||||
|
000000a2 W __vector_10
|
||||||
|
000000a2 W __vector_11
|
||||||
|
000000a2 W __vector_12
|
||||||
|
000000a2 W __vector_13
|
||||||
|
000000a2 W __vector_14
|
||||||
|
000000a2 W __vector_15
|
||||||
|
000000a2 W __vector_16
|
||||||
|
000000a2 W __vector_17
|
||||||
|
000000a2 W __vector_2
|
||||||
|
000000a2 W __vector_20
|
||||||
|
000000a2 W __vector_21
|
||||||
|
000000a2 W __vector_22
|
||||||
|
000000a2 W __vector_23
|
||||||
|
000000a2 W __vector_24
|
||||||
|
000000a2 W __vector_25
|
||||||
|
000000a2 W __vector_3
|
||||||
|
000000a2 W __vector_4
|
||||||
|
000000a2 W __vector_5
|
||||||
|
000000a2 W __vector_6
|
||||||
|
000000a2 W __vector_7
|
||||||
|
000000a2 W __vector_8
|
||||||
|
000000a2 W __vector_9
|
||||||
|
000000a6 T shift_out
|
||||||
|
000000d6 T uart_init
|
||||||
|
00000110 T uart_putchar
|
||||||
|
00000168 T uart_getchar
|
||||||
|
00000192 T __vector_18
|
||||||
|
00000212 T __vector_19
|
||||||
|
00000296 T main
|
||||||
|
0000037c T __divmodhi4
|
||||||
|
0000037c T _div
|
||||||
|
00000390 t __divmodhi4_neg2
|
||||||
|
00000396 t __divmodhi4_exit
|
||||||
|
00000398 t __divmodhi4_neg1
|
||||||
|
000003a2 T __udivmodhi4
|
||||||
|
000003aa t __udivmodhi4_loop
|
||||||
|
000003b8 t __udivmodhi4_ep
|
||||||
|
000003ca T itoa
|
||||||
|
0000040c T printf
|
||||||
|
00000436 T vfprintf
|
||||||
|
000007f6 T strnlen_P
|
||||||
|
0000080c T strnlen
|
||||||
|
00000822 T strrev
|
||||||
|
00000842 T fputc
|
||||||
|
0000089a T __ultoa_invert
|
||||||
|
000008ff W __stack
|
||||||
|
00000956 T __prologue_saves__
|
||||||
|
0000098e T __epilogue_restores__
|
||||||
|
000009c4 T _exit
|
||||||
|
000009c4 W exit
|
||||||
|
000009c6 t __stop_program
|
||||||
|
000009c8 A __data_load_start
|
||||||
|
000009c8 T _etext
|
||||||
|
000009ec A __data_load_end
|
||||||
|
00800100 D __data_start
|
||||||
|
00800108 D uart_input
|
||||||
|
00800116 D uart_output
|
||||||
|
00800124 B __bss_start
|
||||||
|
00800124 D __data_end
|
||||||
|
00800124 D _edata
|
||||||
|
00800124 b tx_buffer
|
||||||
|
00800528 b rx_buffer
|
||||||
|
0080056c B __iob
|
||||||
|
00800572 B __bss_end
|
||||||
|
00800572 N _end
|
||||||
|
00810000 N __eeprom_end
|
449
tpic6b595_shiftout/uart_async.lst
Normal file
449
tpic6b595_shiftout/uart_async.lst
Normal file
@ -0,0 +1,449 @@
|
|||||||
|
1 .file "uart_async.c"
|
||||||
|
2 __SREG__ = 0x3f
|
||||||
|
3 __SP_H__ = 0x3e
|
||||||
|
4 __SP_L__ = 0x3d
|
||||||
|
5 __tmp_reg__ = 0
|
||||||
|
6 __zero_reg__ = 1
|
||||||
|
7 .global __do_copy_data
|
||||||
|
8 .global __do_clear_bss
|
||||||
|
9 .text
|
||||||
|
10 .Ltext0:
|
||||||
|
11 .global uart_init
|
||||||
|
13 uart_init:
|
||||||
|
14 .LFB1:
|
||||||
|
15 .file 1 "uart_async.c"
|
||||||
|
1:uart_async.c **** /* Based on Atmel Application Note AVR 306 */
|
||||||
|
2:uart_async.c ****
|
||||||
|
3:uart_async.c **** #include <avr/io.h>
|
||||||
|
4:uart_async.c **** #include <avr/interrupt.h>
|
||||||
|
5:uart_async.c **** #include <stdio.h>
|
||||||
|
6:uart_async.c ****
|
||||||
|
7:uart_async.c **** #ifndef BAUD
|
||||||
|
8:uart_async.c **** #define BAUD 9600
|
||||||
|
9:uart_async.c **** #endif
|
||||||
|
10:uart_async.c **** #include <util/setbaud.h>
|
||||||
|
11:uart_async.c ****
|
||||||
|
12:uart_async.c **** #ifndef UART_RX_BUFFER_SIZE
|
||||||
|
13:uart_async.c **** #define UART_RX_BUFFER_SIZE 32
|
||||||
|
14:uart_async.c **** #endif
|
||||||
|
15:uart_async.c ****
|
||||||
|
16:uart_async.c **** #ifndef UART_TX_BUFFER_SIZE
|
||||||
|
17:uart_async.c **** #define UART_TX_BUFFER_SIZE 512
|
||||||
|
18:uart_async.c **** #endif
|
||||||
|
19:uart_async.c ****
|
||||||
|
20:uart_async.c **** struct tx_ring {
|
||||||
|
21:uart_async.c **** int buffer[UART_TX_BUFFER_SIZE];
|
||||||
|
22:uart_async.c **** int start;
|
||||||
|
23:uart_async.c **** int end;
|
||||||
|
24:uart_async.c **** };
|
||||||
|
25:uart_async.c ****
|
||||||
|
26:uart_async.c **** struct rx_ring {
|
||||||
|
27:uart_async.c **** int buffer[UART_RX_BUFFER_SIZE];
|
||||||
|
28:uart_async.c **** int start;
|
||||||
|
29:uart_async.c **** int end;
|
||||||
|
30:uart_async.c **** };
|
||||||
|
31:uart_async.c ****
|
||||||
|
32:uart_async.c **** static struct tx_ring tx_buffer;
|
||||||
|
33:uart_async.c **** static struct rx_ring rx_buffer;
|
||||||
|
34:uart_async.c ****
|
||||||
|
35:uart_async.c **** /* http://www.cs.mun.ca/~rod/Winter2007/4723/notes/serial/serial.html */
|
||||||
|
36:uart_async.c ****
|
||||||
|
37:uart_async.c **** void uart_init(void) {
|
||||||
|
16 .loc 1 37 0
|
||||||
|
17 /* prologue: function */
|
||||||
|
18 /* frame size = 0 */
|
||||||
|
19 /* stack size = 0 */
|
||||||
|
20 .L__stack_usage = 0
|
||||||
|
38:uart_async.c ****
|
||||||
|
39:uart_async.c **** tx_buffer.start = 0;
|
||||||
|
21 .loc 1 39 0
|
||||||
|
22 0000 1092 0000 sts tx_buffer+1024+1,__zero_reg__
|
||||||
|
23 0004 1092 0000 sts tx_buffer+1024,__zero_reg__
|
||||||
|
40:uart_async.c **** tx_buffer.end = 0;
|
||||||
|
24 .loc 1 40 0
|
||||||
|
25 0008 1092 0000 sts tx_buffer+1026+1,__zero_reg__
|
||||||
|
26 000c 1092 0000 sts tx_buffer+1026,__zero_reg__
|
||||||
|
41:uart_async.c ****
|
||||||
|
42:uart_async.c **** rx_buffer.start = 0;
|
||||||
|
27 .loc 1 42 0
|
||||||
|
28 0010 1092 0000 sts rx_buffer+64+1,__zero_reg__
|
||||||
|
29 0014 1092 0000 sts rx_buffer+64,__zero_reg__
|
||||||
|
43:uart_async.c **** rx_buffer.end = 0;
|
||||||
|
30 .loc 1 43 0
|
||||||
|
31 0018 1092 0000 sts rx_buffer+66+1,__zero_reg__
|
||||||
|
32 001c 1092 0000 sts rx_buffer+66,__zero_reg__
|
||||||
|
44:uart_async.c ****
|
||||||
|
45:uart_async.c **** UBRR0H = UBRRH_VALUE;
|
||||||
|
33 .loc 1 45 0
|
||||||
|
34 0020 1092 C500 sts 197,__zero_reg__
|
||||||
|
46:uart_async.c **** UBRR0L = UBRRL_VALUE;
|
||||||
|
35 .loc 1 46 0
|
||||||
|
36 0024 87E6 ldi r24,lo8(103)
|
||||||
|
37 0026 8093 C400 sts 196,r24
|
||||||
|
47:uart_async.c ****
|
||||||
|
48:uart_async.c **** UCSR0C = _BV(UCSZ01) | _BV(UCSZ00); /* 8-bit data */
|
||||||
|
38 .loc 1 48 0
|
||||||
|
39 002a 86E0 ldi r24,lo8(6)
|
||||||
|
40 002c 8093 C200 sts 194,r24
|
||||||
|
49:uart_async.c **** UCSR0B = _BV(RXEN0) | _BV(TXEN0); /* Enable RX and TX */
|
||||||
|
41 .loc 1 49 0
|
||||||
|
42 0030 88E1 ldi r24,lo8(24)
|
||||||
|
43 0032 8093 C100 sts 193,r24
|
||||||
|
50:uart_async.c ****
|
||||||
|
51:uart_async.c **** sei();
|
||||||
|
44 .loc 1 51 0
|
||||||
|
45 /* #APP */
|
||||||
|
46 ; 51 "uart_async.c" 1
|
||||||
|
47 0036 7894 sei
|
||||||
|
48 ; 0 "" 2
|
||||||
|
49 /* epilogue start */
|
||||||
|
52:uart_async.c **** }
|
||||||
|
50 .loc 1 52 0
|
||||||
|
51 /* #NOAPP */
|
||||||
|
52 0038 0895 ret
|
||||||
|
53 .LFE1:
|
||||||
|
55 .global uart_putchar
|
||||||
|
57 uart_putchar:
|
||||||
|
58 .LFB2:
|
||||||
|
53:uart_async.c ****
|
||||||
|
54:uart_async.c **** int uart_putchar(char c, FILE *stream) {
|
||||||
|
59 .loc 1 54 0
|
||||||
|
60 .LVL0:
|
||||||
|
61 003a 1F93 push r17
|
||||||
|
62 .LCFI0:
|
||||||
|
63 /* prologue: function */
|
||||||
|
64 /* frame size = 0 */
|
||||||
|
65 /* stack size = 1 */
|
||||||
|
66 .L__stack_usage = 1
|
||||||
|
67 003c 182F mov r17,r24
|
||||||
|
55:uart_async.c **** if (c == '\n') {
|
||||||
|
68 .loc 1 55 0
|
||||||
|
69 003e 8A30 cpi r24,lo8(10)
|
||||||
|
70 0040 01F4 brne .L3
|
||||||
|
71 .LVL1:
|
||||||
|
56:uart_async.c **** uart_putchar('\r', stream);
|
||||||
|
72 .loc 1 56 0
|
||||||
|
73 0042 8DE0 ldi r24,lo8(13)
|
||||||
|
74 0044 0E94 0000 call uart_putchar
|
||||||
|
75 .LVL2:
|
||||||
|
76 .L3:
|
||||||
|
57:uart_async.c **** }
|
||||||
|
58:uart_async.c ****
|
||||||
|
59:uart_async.c **** int write_pointer = (tx_buffer.end + 1) % UART_TX_BUFFER_SIZE;
|
||||||
|
77 .loc 1 59 0
|
||||||
|
78 0048 2091 0000 lds r18,tx_buffer+1026
|
||||||
|
79 004c 3091 0000 lds r19,tx_buffer+1026+1
|
||||||
|
80 0050 C901 movw r24,r18
|
||||||
|
81 0052 0196 adiw r24,1
|
||||||
|
82 0054 60E0 ldi r22,lo8(512)
|
||||||
|
83 0056 72E0 ldi r23,hi8(512)
|
||||||
|
84 0058 0E94 0000 call __divmodhi4
|
||||||
|
85 .LVL3:
|
||||||
|
60:uart_async.c ****
|
||||||
|
61:uart_async.c **** if (write_pointer != tx_buffer.start){
|
||||||
|
86 .loc 1 61 0
|
||||||
|
87 005c 4091 0000 lds r20,tx_buffer+1024
|
||||||
|
88 0060 5091 0000 lds r21,tx_buffer+1024+1
|
||||||
|
89 0064 8417 cp r24,r20
|
||||||
|
90 0066 9507 cpc r25,r21
|
||||||
|
91 0068 01F0 breq .L4
|
||||||
|
62:uart_async.c **** tx_buffer.buffer[tx_buffer.end] = c;
|
||||||
|
92 .loc 1 62 0
|
||||||
|
93 006a F901 movw r30,r18
|
||||||
|
94 006c EE0F lsl r30
|
||||||
|
95 006e FF1F rol r31
|
||||||
|
96 0070 E050 subi r30,lo8(-(tx_buffer))
|
||||||
|
97 0072 F040 sbci r31,hi8(-(tx_buffer))
|
||||||
|
98 0074 1083 st Z,r17
|
||||||
|
99 0076 1182 std Z+1,__zero_reg__
|
||||||
|
63:uart_async.c **** tx_buffer.end = write_pointer;
|
||||||
|
100 .loc 1 63 0
|
||||||
|
101 0078 9093 0000 sts tx_buffer+1026+1,r25
|
||||||
|
102 007c 8093 0000 sts tx_buffer+1026,r24
|
||||||
|
64:uart_async.c ****
|
||||||
|
65:uart_async.c **** /* Data available. Enable the transmit interrupt for serial port 0. */
|
||||||
|
66:uart_async.c **** UCSR0B |= _BV(UDRIE0);
|
||||||
|
103 .loc 1 66 0
|
||||||
|
104 0080 8091 C100 lds r24,193
|
||||||
|
105 .LVL4:
|
||||||
|
106 0084 8062 ori r24,lo8(32)
|
||||||
|
107 0086 8093 C100 sts 193,r24
|
||||||
|
108 .LVL5:
|
||||||
|
109 .L4:
|
||||||
|
67:uart_async.c **** }
|
||||||
|
68:uart_async.c ****
|
||||||
|
69:uart_async.c **** return 0;
|
||||||
|
70:uart_async.c **** }
|
||||||
|
110 .loc 1 70 0
|
||||||
|
111 008a 80E0 ldi r24,lo8(0)
|
||||||
|
112 008c 90E0 ldi r25,hi8(0)
|
||||||
|
113 /* epilogue start */
|
||||||
|
114 008e 1F91 pop r17
|
||||||
|
115 .LVL6:
|
||||||
|
116 0090 0895 ret
|
||||||
|
117 .LFE2:
|
||||||
|
119 .global uart_getchar
|
||||||
|
121 uart_getchar:
|
||||||
|
122 .LFB3:
|
||||||
|
71:uart_async.c ****
|
||||||
|
72:uart_async.c **** int uart_getchar(FILE *stream) {
|
||||||
|
123 .loc 1 72 0
|
||||||
|
124 .LVL7:
|
||||||
|
125 /* prologue: function */
|
||||||
|
126 /* frame size = 0 */
|
||||||
|
127 /* stack size = 0 */
|
||||||
|
128 .L__stack_usage = 0
|
||||||
|
73:uart_async.c **** int read_pointer = (rx_buffer.start + 1) % UART_RX_BUFFER_SIZE;
|
||||||
|
129 .loc 1 73 0
|
||||||
|
130 0092 8091 0000 lds r24,rx_buffer+64
|
||||||
|
131 0096 9091 0000 lds r25,rx_buffer+64+1
|
||||||
|
132 .LVL8:
|
||||||
|
133 009a 0196 adiw r24,1
|
||||||
|
134 009c 60E2 ldi r22,lo8(32)
|
||||||
|
135 009e 70E0 ldi r23,hi8(32)
|
||||||
|
136 00a0 0E94 0000 call __divmodhi4
|
||||||
|
137 .LVL9:
|
||||||
|
74:uart_async.c ****
|
||||||
|
75:uart_async.c **** rx_buffer.start = read_pointer;
|
||||||
|
138 .loc 1 75 0
|
||||||
|
139 00a4 9093 0000 sts rx_buffer+64+1,r25
|
||||||
|
140 00a8 8093 0000 sts rx_buffer+64,r24
|
||||||
|
76:uart_async.c **** return rx_buffer.buffer[read_pointer];
|
||||||
|
141 .loc 1 76 0
|
||||||
|
142 00ac FC01 movw r30,r24
|
||||||
|
143 00ae EE0F lsl r30
|
||||||
|
144 00b0 FF1F rol r31
|
||||||
|
145 00b2 E050 subi r30,lo8(-(rx_buffer))
|
||||||
|
146 00b4 F040 sbci r31,hi8(-(rx_buffer))
|
||||||
|
77:uart_async.c **** }
|
||||||
|
147 .loc 1 77 0
|
||||||
|
148 00b6 8081 ld r24,Z
|
||||||
|
149 .LVL10:
|
||||||
|
150 00b8 9181 ldd r25,Z+1
|
||||||
|
151 /* epilogue start */
|
||||||
|
152 00ba 0895 ret
|
||||||
|
153 .LFE3:
|
||||||
|
155 .global __vector_18
|
||||||
|
157 __vector_18:
|
||||||
|
158 .LFB4:
|
||||||
|
78:uart_async.c ****
|
||||||
|
79:uart_async.c **** ISR(USART_RX_vect) {
|
||||||
|
159 .loc 1 79 0
|
||||||
|
160 00bc 1F92 push r1
|
||||||
|
161 .LCFI1:
|
||||||
|
162 00be 0F92 push r0
|
||||||
|
163 .LCFI2:
|
||||||
|
164 00c0 0FB6 in r0,__SREG__
|
||||||
|
165 00c2 0F92 push r0
|
||||||
|
166 00c4 1124 clr __zero_reg__
|
||||||
|
167 00c6 2F93 push r18
|
||||||
|
168 .LCFI3:
|
||||||
|
169 00c8 3F93 push r19
|
||||||
|
170 .LCFI4:
|
||||||
|
171 00ca 4F93 push r20
|
||||||
|
172 .LCFI5:
|
||||||
|
173 00cc 5F93 push r21
|
||||||
|
174 .LCFI6:
|
||||||
|
175 00ce 6F93 push r22
|
||||||
|
176 .LCFI7:
|
||||||
|
177 00d0 7F93 push r23
|
||||||
|
178 .LCFI8:
|
||||||
|
179 00d2 8F93 push r24
|
||||||
|
180 .LCFI9:
|
||||||
|
181 00d4 9F93 push r25
|
||||||
|
182 .LCFI10:
|
||||||
|
183 00d6 AF93 push r26
|
||||||
|
184 .LCFI11:
|
||||||
|
185 00d8 BF93 push r27
|
||||||
|
186 .LCFI12:
|
||||||
|
187 00da EF93 push r30
|
||||||
|
188 .LCFI13:
|
||||||
|
189 00dc FF93 push r31
|
||||||
|
190 .LCFI14:
|
||||||
|
191 /* prologue: Signal */
|
||||||
|
192 /* frame size = 0 */
|
||||||
|
193 /* stack size = 15 */
|
||||||
|
194 .L__stack_usage = 15
|
||||||
|
80:uart_async.c **** int write_pointer = (rx_buffer.end + 1) % UART_RX_BUFFER_SIZE;
|
||||||
|
195 .loc 1 80 0
|
||||||
|
196 00de 2091 0000 lds r18,rx_buffer+66
|
||||||
|
197 00e2 3091 0000 lds r19,rx_buffer+66+1
|
||||||
|
198 00e6 C901 movw r24,r18
|
||||||
|
199 00e8 0196 adiw r24,1
|
||||||
|
200 00ea 60E2 ldi r22,lo8(32)
|
||||||
|
201 00ec 70E0 ldi r23,hi8(32)
|
||||||
|
202 00ee 0E94 0000 call __divmodhi4
|
||||||
|
203 .LVL11:
|
||||||
|
81:uart_async.c ****
|
||||||
|
82:uart_async.c **** /* Add next byte to ringbuffer if it has space available. */
|
||||||
|
83:uart_async.c **** if (write_pointer != rx_buffer.start){
|
||||||
|
204 .loc 1 83 0
|
||||||
|
205 00f2 4091 0000 lds r20,rx_buffer+64
|
||||||
|
206 00f6 5091 0000 lds r21,rx_buffer+64+1
|
||||||
|
207 00fa 8417 cp r24,r20
|
||||||
|
208 00fc 9507 cpc r25,r21
|
||||||
|
209 00fe 01F0 breq .L6
|
||||||
|
84:uart_async.c **** rx_buffer.buffer[rx_buffer.end] = UDR0;
|
||||||
|
210 .loc 1 84 0
|
||||||
|
211 0100 4091 C600 lds r20,198
|
||||||
|
212 0104 F901 movw r30,r18
|
||||||
|
213 0106 EE0F lsl r30
|
||||||
|
214 0108 FF1F rol r31
|
||||||
|
215 010a E050 subi r30,lo8(-(rx_buffer))
|
||||||
|
216 010c F040 sbci r31,hi8(-(rx_buffer))
|
||||||
|
217 010e 4083 st Z,r20
|
||||||
|
218 0110 1182 std Z+1,__zero_reg__
|
||||||
|
85:uart_async.c **** rx_buffer.end = write_pointer;
|
||||||
|
219 .loc 1 85 0
|
||||||
|
220 0112 9093 0000 sts rx_buffer+66+1,r25
|
||||||
|
221 0116 8093 0000 sts rx_buffer+66,r24
|
||||||
|
222 .L6:
|
||||||
|
223 /* epilogue start */
|
||||||
|
86:uart_async.c **** }
|
||||||
|
87:uart_async.c **** }
|
||||||
|
224 .loc 1 87 0
|
||||||
|
225 011a FF91 pop r31
|
||||||
|
226 011c EF91 pop r30
|
||||||
|
227 011e BF91 pop r27
|
||||||
|
228 0120 AF91 pop r26
|
||||||
|
229 0122 9F91 pop r25
|
||||||
|
230 0124 8F91 pop r24
|
||||||
|
231 .LVL12:
|
||||||
|
232 0126 7F91 pop r23
|
||||||
|
233 0128 6F91 pop r22
|
||||||
|
234 012a 5F91 pop r21
|
||||||
|
235 012c 4F91 pop r20
|
||||||
|
236 012e 3F91 pop r19
|
||||||
|
237 0130 2F91 pop r18
|
||||||
|
238 0132 0F90 pop r0
|
||||||
|
239 0134 0FBE out __SREG__,r0
|
||||||
|
240 0136 0F90 pop r0
|
||||||
|
241 0138 1F90 pop r1
|
||||||
|
242 013a 1895 reti
|
||||||
|
243 .LFE4:
|
||||||
|
245 .global __vector_19
|
||||||
|
247 __vector_19:
|
||||||
|
248 .LFB5:
|
||||||
|
88:uart_async.c ****
|
||||||
|
89:uart_async.c **** ISR(USART_UDRE_vect){
|
||||||
|
249 .loc 1 89 0
|
||||||
|
250 013c 1F92 push r1
|
||||||
|
251 .LCFI15:
|
||||||
|
252 013e 0F92 push r0
|
||||||
|
253 .LCFI16:
|
||||||
|
254 0140 0FB6 in r0,__SREG__
|
||||||
|
255 0142 0F92 push r0
|
||||||
|
256 0144 1124 clr __zero_reg__
|
||||||
|
257 0146 2F93 push r18
|
||||||
|
258 .LCFI17:
|
||||||
|
259 0148 3F93 push r19
|
||||||
|
260 .LCFI18:
|
||||||
|
261 014a 5F93 push r21
|
||||||
|
262 .LCFI19:
|
||||||
|
263 014c 6F93 push r22
|
||||||
|
264 .LCFI20:
|
||||||
|
265 014e 7F93 push r23
|
||||||
|
266 .LCFI21:
|
||||||
|
267 0150 8F93 push r24
|
||||||
|
268 .LCFI22:
|
||||||
|
269 0152 9F93 push r25
|
||||||
|
270 .LCFI23:
|
||||||
|
271 0154 AF93 push r26
|
||||||
|
272 .LCFI24:
|
||||||
|
273 0156 BF93 push r27
|
||||||
|
274 .LCFI25:
|
||||||
|
275 0158 EF93 push r30
|
||||||
|
276 .LCFI26:
|
||||||
|
277 015a FF93 push r31
|
||||||
|
278 .LCFI27:
|
||||||
|
279 /* prologue: Signal */
|
||||||
|
280 /* frame size = 0 */
|
||||||
|
281 /* stack size = 14 */
|
||||||
|
282 .L__stack_usage = 14
|
||||||
|
90:uart_async.c **** int read_pointer = (tx_buffer.start + 1) % UART_TX_BUFFER_SIZE;
|
||||||
|
283 .loc 1 90 0
|
||||||
|
284 015c 8091 0000 lds r24,tx_buffer+1024
|
||||||
|
285 0160 9091 0000 lds r25,tx_buffer+1024+1
|
||||||
|
286 0164 0196 adiw r24,1
|
||||||
|
287 0166 60E0 ldi r22,lo8(512)
|
||||||
|
288 0168 72E0 ldi r23,hi8(512)
|
||||||
|
289 016a 0E94 0000 call __divmodhi4
|
||||||
|
290 .LVL13:
|
||||||
|
91:uart_async.c ****
|
||||||
|
92:uart_async.c **** /* Transmit next byte if data available in ringbuffer. */
|
||||||
|
93:uart_async.c **** if (read_pointer != tx_buffer.end) {
|
||||||
|
291 .loc 1 93 0
|
||||||
|
292 016e 2091 0000 lds r18,tx_buffer+1026
|
||||||
|
293 0172 3091 0000 lds r19,tx_buffer+1026+1
|
||||||
|
294 0176 8217 cp r24,r18
|
||||||
|
295 0178 9307 cpc r25,r19
|
||||||
|
296 017a 01F0 breq .L9
|
||||||
|
94:uart_async.c **** UDR0 = tx_buffer.buffer[read_pointer];
|
||||||
|
297 .loc 1 94 0
|
||||||
|
298 017c FC01 movw r30,r24
|
||||||
|
299 017e EE0F lsl r30
|
||||||
|
300 0180 FF1F rol r31
|
||||||
|
301 0182 E050 subi r30,lo8(-(tx_buffer))
|
||||||
|
302 0184 F040 sbci r31,hi8(-(tx_buffer))
|
||||||
|
303 0186 2081 ld r18,Z
|
||||||
|
304 0188 2093 C600 sts 198,r18
|
||||||
|
95:uart_async.c **** tx_buffer.start = read_pointer;
|
||||||
|
305 .loc 1 95 0
|
||||||
|
306 018c 9093 0000 sts tx_buffer+1024+1,r25
|
||||||
|
307 0190 8093 0000 sts tx_buffer+1024,r24
|
||||||
|
308 0194 00C0 rjmp .L8
|
||||||
|
309 .L9:
|
||||||
|
96:uart_async.c **** } else {
|
||||||
|
97:uart_async.c **** /* Nothing to send. Disable the transmit interrupt for serial port 0. */
|
||||||
|
98:uart_async.c **** UCSR0B &= ~_BV(UDRIE0);
|
||||||
|
310 .loc 1 98 0
|
||||||
|
311 0196 8091 C100 lds r24,193
|
||||||
|
312 .LVL14:
|
||||||
|
313 019a 8F7D andi r24,lo8(-33)
|
||||||
|
314 019c 8093 C100 sts 193,r24
|
||||||
|
315 .L8:
|
||||||
|
316 /* epilogue start */
|
||||||
|
99:uart_async.c **** }
|
||||||
|
100:uart_async.c **** }
|
||||||
|
317 .loc 1 100 0
|
||||||
|
318 01a0 FF91 pop r31
|
||||||
|
319 01a2 EF91 pop r30
|
||||||
|
320 01a4 BF91 pop r27
|
||||||
|
321 01a6 AF91 pop r26
|
||||||
|
322 01a8 9F91 pop r25
|
||||||
|
323 01aa 8F91 pop r24
|
||||||
|
324 01ac 7F91 pop r23
|
||||||
|
325 01ae 6F91 pop r22
|
||||||
|
326 01b0 5F91 pop r21
|
||||||
|
327 01b2 3F91 pop r19
|
||||||
|
328 01b4 2F91 pop r18
|
||||||
|
329 01b6 0F90 pop r0
|
||||||
|
330 01b8 0FBE out __SREG__,r0
|
||||||
|
331 01ba 0F90 pop r0
|
||||||
|
332 01bc 1F90 pop r1
|
||||||
|
333 01be 1895 reti
|
||||||
|
334 .LFE5:
|
||||||
|
336 .lcomm tx_buffer,1028
|
||||||
|
337 .lcomm rx_buffer,68
|
||||||
|
564 .Letext0:
|
||||||
|
565 .file 2 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdio.h"
|
||||||
|
566 .file 3 "/usr/local/Cellar/avr-gcc/4.6.1/lib/gcc/avr/4.6.1/../../../../avr/include/stdint.h"
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
*ABS*:0000000000000000 uart_async.c
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:2 *ABS*:000000000000003f __SREG__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:3 *ABS*:000000000000003e __SP_H__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:4 *ABS*:000000000000003d __SP_L__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:5 *ABS*:0000000000000000 __tmp_reg__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:6 *ABS*:0000000000000001 __zero_reg__
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:13 .text:0000000000000000 uart_init
|
||||||
|
.bss:0000000000000000 tx_buffer
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:336 .bss:0000000000000404 rx_buffer
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:57 .text:000000000000003a uart_putchar
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:121 .text:0000000000000092 uart_getchar
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:157 .text:00000000000000bc __vector_18
|
||||||
|
/var/folders/6p/hvps1d6n58jfd6qghfhb96600000gn/T//cchq05jZ.s:247 .text:000000000000013c __vector_19
|
||||||
|
|
||||||
|
UNDEFINED SYMBOLS
|
||||||
|
__do_copy_data
|
||||||
|
__do_clear_bss
|
||||||
|
__divmodhi4
|
BIN
tpic6b595_shiftout/uart_async.o
Normal file
BIN
tpic6b595_shiftout/uart_async.o
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user