From afddc11d9493ffa69c5fe4682a0ac5f01a710d4d Mon Sep 17 00:00:00 2001 From: Qukich <lezninroman@gmail.com> Date: Wed, 28 Feb 2024 10:10:17 +0300 Subject: [PATCH] fix to project, delete atmel, add arduino, need fix uart --- .gitignore | 14 - .vs/hdlc_screen/v14/.atsuo | Bin 35328 -> 36864 bytes Lcd_print.ino | 84 + hdlc_screen/LCD/lcd_headers.h => MyLCD.h | 16 +- .../UART/circular_buf.c => circular_buf.cpp | 7 +- .../UART/circular_buf.h => circular_buf.h | 4 +- hdlc_screen/hdlc/client.c => client.cpp | 3 +- hdlc_screen/hdlc/client.h => client.h | 0 hdlc_screen/hdlc/fcs.c => fcs.cpp | 0 hdlc_screen/hdlc/fcs.h => fcs.h | 0 hdlc_screen/hdlc/hdlc.c => hdlc.cpp | 0 hdlc_screen/hdlc/hdlc.h => hdlc.h | 0 hdlc_screen.atsln | 22 - hdlc_screen/.gitignore | 14 - hdlc_screen/Debug/LCD/Lcd_print.d | 155 - hdlc_screen/Debug/LCD/Lcd_print.o | Bin 11052 -> 0 bytes hdlc_screen/Debug/LCD/lcdpcf8574.d | 154 - hdlc_screen/Debug/LCD/lcdpcf8574.o | Bin 20988 -> 0 bytes hdlc_screen/Debug/LCD/pcf8574.d | 153 - hdlc_screen/Debug/LCD/pcf8574.o | Bin 16396 -> 0 bytes hdlc_screen/Debug/LCD/twimaster.d | 153 - hdlc_screen/Debug/LCD/twimaster.o | Bin 8316 -> 0 bytes hdlc_screen/Debug/Makefile | 305 -- hdlc_screen/Debug/UART/circular_buf.d | 50 - hdlc_screen/Debug/UART/circular_buf.o | Bin 6412 -> 0 bytes hdlc_screen/Debug/UART/uart.d | 94 - hdlc_screen/Debug/UART/uart.o | Bin 10572 -> 0 bytes hdlc_screen/Debug/hdlc/client.d | 64 - hdlc_screen/Debug/hdlc/client.o | Bin 14608 -> 0 bytes hdlc_screen/Debug/hdlc/fcs.d | 3 - hdlc_screen/Debug/hdlc/fcs.o | Bin 3520 -> 0 bytes hdlc_screen/Debug/hdlc/hdlc.d | 34 - hdlc_screen/Debug/hdlc/hdlc.o | Bin 21716 -> 0 bytes hdlc_screen/Debug/hdlc_screen.eep | 1 - hdlc_screen/Debug/hdlc_screen.elf | Bin 61776 -> 0 bytes hdlc_screen/Debug/hdlc_screen.hex | 508 -- hdlc_screen/Debug/hdlc_screen.lss | 4545 ----------------- hdlc_screen/Debug/hdlc_screen.map | 1242 ----- hdlc_screen/Debug/hdlc_screen.srec | 509 -- hdlc_screen/Debug/main.d | 86 - hdlc_screen/Debug/main.o | Bin 12308 -> 0 bytes hdlc_screen/Debug/makedep.mk | 26 - hdlc_screen/Debug/protocol/protocol.d | 57 - hdlc_screen/Debug/protocol/protocol.o | Bin 10584 -> 0 bytes hdlc_screen/LCD/Lcd_print.c | 93 - hdlc_screen/LCD/i2cmaster.h | 42 - hdlc_screen/LCD/lcdpcf8574.h | 110 - hdlc_screen/LCD/pcf8574.c | 115 - hdlc_screen/Readme.md | 15 - hdlc_screen/hdlc_screen.componentinfo.xml | 86 - hdlc_screen/hdlc_screen.cproj | 185 - hdlc_screen/keywords.txt | 10 - hdlc_screen/main.c | 110 - hdlc_screen/main_com.c | 175 - hdlc_screen/main_uart.c | 110 - i2cmaster.h | 42 + hdlc_screen/LCD/lcd.h => lcd.h | 4 +- .../LCD/lcdpcf8574.c => lcdpcf8574.cpp | 3 +- lcdpcf8574.h | 110 + pcf8574.cpp | 115 + hdlc_screen/LCD/pcf8574.h => pcf8574.h | 8 +- .../protocol/protocol.c => protocol.cpp | 0 hdlc_screen/protocol/protocol.h => protocol.h | 0 sketch_feb27a.ino | 109 + hdlc_screen/LCD/twimaster.c => twimaster.cpp | 2 +- uart.cpp | 63 + uart.h | 13 + 67 files changed, 555 insertions(+), 9268 deletions(-) delete mode 100644 .gitignore create mode 100644 Lcd_print.ino rename hdlc_screen/LCD/lcd_headers.h => MyLCD.h (66%) rename hdlc_screen/UART/circular_buf.c => circular_buf.cpp (96%) rename hdlc_screen/UART/circular_buf.h => circular_buf.h (82%) rename hdlc_screen/hdlc/client.c => client.cpp (99%) rename hdlc_screen/hdlc/client.h => client.h (100%) rename hdlc_screen/hdlc/fcs.c => fcs.cpp (100%) rename hdlc_screen/hdlc/fcs.h => fcs.h (100%) rename hdlc_screen/hdlc/hdlc.c => hdlc.cpp (100%) rename hdlc_screen/hdlc/hdlc.h => hdlc.h (100%) delete mode 100644 hdlc_screen.atsln delete mode 100644 hdlc_screen/.gitignore delete mode 100644 hdlc_screen/Debug/LCD/Lcd_print.d delete mode 100644 hdlc_screen/Debug/LCD/Lcd_print.o delete mode 100644 hdlc_screen/Debug/LCD/lcdpcf8574.d delete mode 100644 hdlc_screen/Debug/LCD/lcdpcf8574.o delete mode 100644 hdlc_screen/Debug/LCD/pcf8574.d delete mode 100644 hdlc_screen/Debug/LCD/pcf8574.o delete mode 100644 hdlc_screen/Debug/LCD/twimaster.d delete mode 100644 hdlc_screen/Debug/LCD/twimaster.o delete mode 100644 hdlc_screen/Debug/Makefile delete mode 100644 hdlc_screen/Debug/UART/circular_buf.d delete mode 100644 hdlc_screen/Debug/UART/circular_buf.o delete mode 100644 hdlc_screen/Debug/UART/uart.d delete mode 100644 hdlc_screen/Debug/UART/uart.o delete mode 100644 hdlc_screen/Debug/hdlc/client.d delete mode 100644 hdlc_screen/Debug/hdlc/client.o delete mode 100644 hdlc_screen/Debug/hdlc/fcs.d delete mode 100644 hdlc_screen/Debug/hdlc/fcs.o delete mode 100644 hdlc_screen/Debug/hdlc/hdlc.d delete mode 100644 hdlc_screen/Debug/hdlc/hdlc.o delete mode 100644 hdlc_screen/Debug/hdlc_screen.eep delete mode 100644 hdlc_screen/Debug/hdlc_screen.elf delete mode 100644 hdlc_screen/Debug/hdlc_screen.hex delete mode 100644 hdlc_screen/Debug/hdlc_screen.lss delete mode 100644 hdlc_screen/Debug/hdlc_screen.map delete mode 100644 hdlc_screen/Debug/hdlc_screen.srec delete mode 100644 hdlc_screen/Debug/main.d delete mode 100644 hdlc_screen/Debug/main.o delete mode 100644 hdlc_screen/Debug/makedep.mk delete mode 100644 hdlc_screen/Debug/protocol/protocol.d delete mode 100644 hdlc_screen/Debug/protocol/protocol.o delete mode 100644 hdlc_screen/LCD/Lcd_print.c delete mode 100644 hdlc_screen/LCD/i2cmaster.h delete mode 100644 hdlc_screen/LCD/lcdpcf8574.h delete mode 100644 hdlc_screen/LCD/pcf8574.c delete mode 100644 hdlc_screen/Readme.md delete mode 100644 hdlc_screen/hdlc_screen.componentinfo.xml delete mode 100644 hdlc_screen/hdlc_screen.cproj delete mode 100644 hdlc_screen/keywords.txt delete mode 100644 hdlc_screen/main.c delete mode 100644 hdlc_screen/main_com.c delete mode 100644 hdlc_screen/main_uart.c create mode 100644 i2cmaster.h rename hdlc_screen/LCD/lcd.h => lcd.h (65%) rename hdlc_screen/LCD/lcdpcf8574.c => lcdpcf8574.cpp (99%) create mode 100644 lcdpcf8574.h create mode 100644 pcf8574.cpp rename hdlc_screen/LCD/pcf8574.h => pcf8574.h (67%) rename hdlc_screen/protocol/protocol.c => protocol.cpp (100%) rename hdlc_screen/protocol/protocol.h => protocol.h (100%) create mode 100644 sketch_feb27a.ino rename hdlc_screen/LCD/twimaster.c => twimaster.cpp (99%) create mode 100644 uart.cpp create mode 100644 uart.h diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 14484fa..0000000 --- a/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -hdlc1.c -hdlc1.h -hdlc_frame.c -hdlc_frame.h -main1.c -uart.c -uart.h - -!./hdlc -/.idea/Display_Avr_3.iml -/.idea/.gitignore -/.idea/vcs.xml -/.idea/modules.xml -/CMakeLists.txt diff --git a/.vs/hdlc_screen/v14/.atsuo b/.vs/hdlc_screen/v14/.atsuo index 638c5df3f9404b9f7e7d026e4db081f941c0f926..06889226115cca55d71fe747845625ed9e7db08b 100644 GIT binary patch delta 3189 zcmc&$drVVT7{BM*2ekJ>fy#=!3i2q6!xoCpC&iW)WFjbvk|K{%v|C}DLL9hkyv!tX z3G^e&lD*7Kwq(f?=FPG{<{}dlmnGA%m>HLtxom&zpE*oQq9)UQ-)*Z`(kRX?JIycW zobR0bo!|M+_vp|RKXihh4)RHc!Xx899{7nRa@aCqkgtW=Wj3};THy7J3BXjDjmvTA zF1D;_Ph%~PlMyM1J0!rChGS7N&%kjeg4R;8PmhjG(4%s~v`)qDOg1(f-BB@Z^WZoM zG1+)6#0QgR3dbH~H^^G01x*_B>u}Rw_yL_A<3|dJ6Y*3d5)dSdHQH-L8Sx|;&56H~ zryl3=c^Z^F4Y+Nx@wbrfTY<C?Do_NMbQX~&RXEv#aKf-I4YKr>zz&@4L^L62$8PMs zh&_nCh!%t&5mQHfTXfzL?NM~MD?0ARem~*>B7k@v@d5%(x-%s7F*o!J^)SoZST!sN z+l72wqwlFf<FW#^0|l30K&%rA7cB`ZQIJel#r6bOq$^O1cg0pz-HBLyMfzrGS9FRT zLj|$NqB}jwr8SXD!|lxa1afX7PCB74t3fD1fuIx)wX5J})^l)<x2kvH!ciE=u9NMi zQEXH1!^wbjE3KH9%$5QsSa42}7E`V!!8<TevQ=bxQF&}lL$NTy!|m)^krgjmR5zpG z6b$4XVJ=w6sTVnN-0bMC2=Cmcgd&ANUx$;o5ZI)<tE>MZn@nUwf%SMcB2SNRBSE$i zk-`Qqww8ccn*^U6O#xSH1$;f4lX##j==1u50YBXEE=P$LW{MoF9hh;w+l4XH$@OC- zcrg;XxFF}lkq`R-uJm$!Tq#O3wuKGfdw+KO-#qzwdifXSbQGC6+M3{-e3$vbk9^!O ze(fKhT}hqh*G*m6dp!3H<gGMLwrfKcGniAG@cjPNdXZ5+p&UZ0$m~)$RbX&xWDiV_ zH^7Mz9q7FK;A~qKs78$u()CLt{r<1vqLou!IhWU7Ig@cb_xvK#<oopIR><3$y~5@1 z?BDObXQ|%4QVJqYv#}TE92?++aRJ`QFDPu|4xw=lqG`xDUap7h-~zH0E}st0w`3OW z-rRHrCi17DDv%BH-CFp4GzHd<Iboo6v#!*&-s=h+dMVfu%5nZHJ}D@Cl7qQA6I^W& z;pA8f434?sf_EdFKI#H1uQJ^E^15wQN%F>P^Go*@wR}gIbgYSZ%wlc-t;dwrB*aQo zBr?ky1geWv6JvhE?66SwIxC0%@_KNZHicHrQu3C<W`TvuTyl<nw30Qlk_uVLY{oV) z*zJ^}pwHd_=L)P+*pAvv=L9<SDaGj!Hf^U<VJKq)KPnd)m5W^Ejz0T#A_QUkMUhdW zp$Z&hFNG^^=|w7O<d%edc)87#+<^gj2!pZrzAW*c3{Gs>T@p89eH`UfQd48)B0mo1 z+bSi8^AZnJ)vNSWov4hfxe(m&H>bt%f0#R5!rq4A?f{fFYv9kV7U`p!tBgJL1C@qz zJ#>REfie-rmmGM;I0wrMaT&F|Vo}?yR@<vkc{pE3_oF+wK9orcwQHrX>Uxr4vNv6k z15ZEVy=EonnosrYEL^V&GC7m!6`2g)+tLExIkUj*G&2sWoKYM8u(}AYxizq3WPRb1 z(h*$r*`VF+f+o)@R5a|V)b6=RF2KQg&pN%~|9=k~CBo%#-s9;feUO`&Y98BAdPM<3 z<K-<QQ_Za|Mzbg6-7i+9Shk{u#3<Q}|DPj9-RXG-93BgFx=m^-x1G>9vO$(q8IAZC zLL>jXm8F&?Js=%F<T1g_*bMA&Tcu;e*BDfFr^CmsD-y{S?-i5EI5xy}Dke)h2{sMC UOUGyrViCp?436Rqc=lNP-)_xYv;Y7A delta 3342 zcmb_edu&^06~EVcJ9g$aNt?D==BCMN>NbAAwsnc^>-YPS*p50f$98PT*Ux+XY)cYN zz@U#&pCR@S8<Q$DQE4mnB;b#URGknKNCQy>D$-OT#6Lh)P=m%}E8k})T_QTfA3N6Z zch33F_uX^OJ@@y0>)+w5zsk8zbB5;rZTawe;tn}LAUXt%-Ub<KZE*%kau~?&BeF4M zeu(G@8b3kf6Wcl$jeNw1w{`3@g5*B<e)lkc5J^Lb4<R0hY`3u=uicNdE52a&srGok z$)Sh7@sj`1<JUWnPqemrhsne+a{3r8!V7nTKw?|R!C)B&gCEh47ze{cjQueQklcf~ zqka0n6B@RBc4*w6@)X;f;SJ$7S2QrUZ7{$FcevYvG#DQg`S5%IDM7^Zh!+rt5Qh;* z5HBLeKA2zFmY2}@;<miJJ;t}kPp<efO&&{{pv-f_Esl(&V2kJB;pEU3Z317{RF57R z;!x*1c%w)f-=4-(ykkfa;R+&Z{{OkyKCfI*4$SA8gODYoP!^(k^vYTfggo-bh>!z9 zVX!BPQp^B()Cf{ee^cB8wxd4)!BHhr1szq>RKCx{y*Z5-mk*Z+9w<GyxWF!b&>6KJ zK7ku;r=vSw$V%chU)a5t)m?1vxAq_1W83fL9Yltm-s~(#M*J?0@AB+9gOu}7A9nEY z#-d$Qy<bGi1_A#(XyX(3i^L9?@Mb-JWKcqV>?~=7t+94%0DCCd-*MS?av-Nm@Q+gt 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 diff --git a/Lcd_print.ino b/Lcd_print.ino new file mode 100644 index 0000000..35d46da --- /dev/null +++ b/Lcd_print.ino @@ -0,0 +1,84 @@ +#include "MyLCD.h" + +struct TextCounter { + unsigned long startTime; + int incrementValue; + int startIndex; // Новая переменная для отслеживания начального индекса строки +}; + +struct TextCounter textCounter; + +void init_lcd(){ + lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея + lcd_home(); // домой курсор + lcd_led(0); // вкл подсветки + textCounter.startTime = millis(); // Запоминаем время запуска программы + textCounter.startIndex = 0; // Инициализируем начальный индекс +} + +void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) { + int startIndex = incrementValue % strlen(source); // Определяем начальный индекс на основе incrementValue + int endIndex = startIndex + 16; + + for (int i = 0; i < 16; ++i) { + buffer[i] = source[(startIndex + i) % strlen(source)]; + } + buffer[16] = '\0'; +} + +void fillBuffer2(float value1, float value2, float value3, char* buffer, size_t bufferSize){ + int val1_int = (int) value1; + float val1_float = (abs(value1) - abs(val1_int)) * 10; + int val1_fra = (int)val1_float; + + int val2_int = (int) value2; + float val2_float = (abs(value2) - abs(val2_int)) * 10; + int val2_fra = (int)val2_float; + + int val3_int = (int) value3; + float val3_float = (abs(value3) - abs(val3_int)) * 10; + int val3_fra = (int)val3_float; + + snprintf(buffer, bufferSize, "%d.%d:%d.%d:%d.%d", + val1_int, val1_fra, + val2_int, val2_fra, + val3_int, val3_fra); +} + +void print_lcd(struct DisplayData* disp){ + unsigned long currentTime = millis(); // Текущее время + // Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue + if (currentTime - textCounter.startTime >= 500) { + textCounter.incrementValue++; // Увеличиваем incrementValue на 1 + textCounter.startTime = currentTime; // Обновляем время + } + + struct DisplayData displayData; + strncpy(displayData.topLine, disp->topLine, sizeof(displayData.topLine) - 1); + displayData.topLine[sizeof(displayData.topLine) - 1] = '\0'; + displayData.value1 = disp->value1; + displayData.value2 = disp->value2; + displayData.value3 = disp->value3; + + // Буферы для заполнения данных + char buffer1[17]; + char buffer2[17]; + + // Заполнение буфера 1 + fillBuffer1(displayData.topLine, buffer1, sizeof(buffer1), textCounter.incrementValue); + + // Заполнение буфера 2 + fillBuffer2(displayData.value1, displayData.value2, displayData.value3, buffer2, sizeof(buffer2)); + + // Создание массива для вывода на дисплей + char displayArray[32]; + strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray + strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16 + + // Вывод данных на экран + lcd_gotoxy(0, 0); + lcd_puts(displayArray); + + lcd_gotoxy(0, 1); + lcd_puts(displayArray + 16); +} \ No newline at end of file diff --git a/hdlc_screen/LCD/lcd_headers.h b/MyLCD.h similarity index 66% rename from hdlc_screen/LCD/lcd_headers.h rename to MyLCD.h index d4d9291..37a54a4 100644 --- a/hdlc_screen/LCD/lcd_headers.h +++ b/MyLCD.h @@ -1,14 +1,9 @@ -/* - * lcd_headers.h - * - * Created: 22.02.2024 15:16:19 - * Author: 79513 - */ + +#ifndef MYLCD_H_ +#define MYLCD_H_ -#ifndef LCD_HEADERS_H_ -#define LCD_HEADERS_H_ - +// ���������� ��� ���� #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> @@ -22,5 +17,6 @@ #include "lcdpcf8574.h" #include "pcf8574.h" #include "i2cmaster.h" +#include "lcd.h" -#endif /* LCD_HEADERS_H_ */ \ No newline at end of file +#endif \ No newline at end of file diff --git a/hdlc_screen/UART/circular_buf.c b/circular_buf.cpp similarity index 96% rename from hdlc_screen/UART/circular_buf.c rename to circular_buf.cpp index e1b91c7..4a58bde 100644 --- a/hdlc_screen/UART/circular_buf.c +++ b/circular_buf.cpp @@ -2,8 +2,7 @@ #include <stdlib.h> #include "circular_buf.h" - -void initialize_buffer(struct circular_buffer* cb) { +void clear_buffer(struct circular_buffer* cb) { cb->buf_head = 0; cb->buf_tail = 0; } @@ -31,6 +30,4 @@ int read_buffer(struct circular_buffer* cb) { int value = cb->buffer[cb->buf_head]; // чтение по индексу головы cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1 return value; -} - - +} \ No newline at end of file diff --git a/hdlc_screen/UART/circular_buf.h b/circular_buf.h similarity index 82% rename from hdlc_screen/UART/circular_buf.h rename to circular_buf.h index 22dc139..5a9628f 100644 --- a/hdlc_screen/UART/circular_buf.h +++ b/circular_buf.h @@ -9,10 +9,10 @@ struct circular_buffer{ unsigned char buf_tail; }; -void initialize_buffer(struct circular_buffer* cb); +void clear_buffer(struct circular_buffer* cb); int buffer_empty(const struct circular_buffer* cb); int buffer_full(const struct circular_buffer* cb); void write_buffer(struct circular_buffer* cb, int value); int read_buffer(struct circular_buffer* cb); -#endif /* CIRCULAR_BUFFER_H */ +#endif /* CIRCULAR_BUFFER_H */ \ No newline at end of file diff --git a/hdlc_screen/hdlc/client.c b/client.cpp similarity index 99% rename from hdlc_screen/hdlc/client.c rename to client.cpp index b2b7318..6339369 100644 --- a/hdlc_screen/hdlc/client.c +++ b/client.cpp @@ -1,6 +1,5 @@ #include "client.h" -#include "hdlc.h" -#include "stdio.h" +#include <stdio.h> #define SIZE_DATA_BUFFERS 64 diff --git a/hdlc_screen/hdlc/client.h b/client.h similarity index 100% rename from hdlc_screen/hdlc/client.h rename to client.h diff --git a/hdlc_screen/hdlc/fcs.c b/fcs.cpp similarity index 100% rename from hdlc_screen/hdlc/fcs.c rename to fcs.cpp diff --git a/hdlc_screen/hdlc/fcs.h b/fcs.h similarity index 100% rename from hdlc_screen/hdlc/fcs.h rename to fcs.h diff --git a/hdlc_screen/hdlc/hdlc.c b/hdlc.cpp similarity index 100% rename from hdlc_screen/hdlc/hdlc.c rename to hdlc.cpp diff --git a/hdlc_screen/hdlc/hdlc.h b/hdlc.h similarity index 100% rename from hdlc_screen/hdlc/hdlc.h rename to hdlc.h diff --git a/hdlc_screen.atsln b/hdlc_screen.atsln deleted file mode 100644 index 012050c..0000000 --- a/hdlc_screen.atsln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Atmel Studio Solution File, Format Version 11.00 -VisualStudioVersion = 14.0.23107.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "hdlc_screen", "hdlc_screen\hdlc_screen.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|AVR = Debug|AVR - Release|AVR = Release|AVR - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR - {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR - {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR - {DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/hdlc_screen/.gitignore b/hdlc_screen/.gitignore deleted file mode 100644 index 14484fa..0000000 --- a/hdlc_screen/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -hdlc1.c -hdlc1.h -hdlc_frame.c -hdlc_frame.h -main1.c -uart.c -uart.h - -!./hdlc -/.idea/Display_Avr_3.iml -/.idea/.gitignore -/.idea/vcs.xml -/.idea/modules.xml -/CMakeLists.txt diff --git a/hdlc_screen/Debug/LCD/Lcd_print.d b/hdlc_screen/Debug/LCD/Lcd_print.d deleted file mode 100644 index 6bc7f0f..0000000 --- a/hdlc_screen/Debug/LCD/Lcd_print.d +++ /dev/null @@ -1,155 +0,0 @@ -LCD/Lcd_print.d LCD/Lcd_print.o: ../LCD/Lcd_print.c ../LCD/lcd_headers.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - ../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h ../LCD/lcd.h - -../LCD/lcd_headers.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../LCD/lcdpcf8574.h: - -../LCD/pcf8574.h: - -../LCD/i2cmaster.h: - -../LCD/lcd.h: diff --git a/hdlc_screen/Debug/LCD/Lcd_print.o b/hdlc_screen/Debug/LCD/Lcd_print.o deleted file mode 100644 index 111ed77fa360ca75eb5287632cafe2555ddf32d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11052 zcmc(ldvM#;mB;UuY{ib1pJOKh=K)qi5=a}1*a;zoN1{BMz<Lr&5}?FXktNyIMwW~u zrwL2znDQujfE_`2Yyxe!Gi|4jge^nZnU)kfrBjBI?XWF$ONp6by6luL%~Gc9c9!h- zdw=Ij*A6>d{@J~gpYG?Jd+xdKbAOUEw7&CGT5DyKR$Ek6Qfli$rS3-IGGlOwYE^U8 z!7=YarTFYMRQJ%SL#GeDd+6+;#&T=<RQYuIfc_i(Q~iO~BPyc**#7WIy<_%m4Xn|t zBX2(M{d~^9=p#Bhb5;FBo1f|fjYnH)`GJ1B@jqJk4&PUPX~u7A^&kJFr|vsFdTO+F zv~l$8$h#w_M^25@J+vU&(G#tFsAGpt9&$U=T5c?#Mc3lx&E-|)OUqA`A1Du%^X0u` zBV*)~hmN7^rw*~fgC`z8vF32&(;qze_{qj+51w=zIyrI-jpYvw!G3%T9PZCfym8|B ztv|14-8WG8XD6@Hkx`|V;EBC?{n)cQA0OJxHr~^3Z$G<vZ10)9f#GSx%N~vlw-2uw z-U8Y&eB1Dy!{y<|=$SW<MW0;!hqe!O;c#BF*6NCnm-QD9Tg}t@W&I-~?HKbH!j>i~ zvS0r4_S2iIeLFp25;?Y^kvztCbB$5~v(PnW4}|Tmn3xA@U<q3t^0PW-!9Z;$S5kq% zB%`dU^)p|p^QAf?naZKp*2ADSum_(3Z9Eunoq?JkL*-YiB?c}MDYVE)tNpS`zO+sn z@THBajt+l;r=B0HY=4aJke*bFk(nC0Zj13IQvEeXs!@~8(DhV^CIt^g0{S{A8z_Dl zRH_|9Soi6x)fB24FdUE20-%10QjNZo7L&1zN&gC>@vB>iOd=M2Ni{LoEq(Y5rOG;8 z_WPk**gK|Xe(0Iw#aULI#!{x~8Kvh~Eob>O+MB_dk)F*P-?J@PcE2n0IFC$!k!brZ z#_TtfnU@7zW@&EW_~u@~Ec#Uz5}D59hhF{?#J~aVOPBjnvoEcF-IQHq)`1K13v@ah z>MQF^SqF9jd&;`Etb?OZ4uxg*bj)A2w_x6Y>f!Kb%Q{}xJIXo%%lExS;ZRpu-wFqJ zz`-qLy&ZVFEcQ~2;0o5Vjoi^>8wuQzue7n+Z-dso<E-aat>MF8Pc7ClSP#*f8z!uK z^b+68Cg>j-=cUOnV1?sug?4|}u|l<jbGg`iF_q>RaK_9rnCi>#Sh-c5Z{|DvI%mBW zYHZ)?H4xn73R_*_mYG$vnqvV+s(ntohBvvw4yBv)0&iMF(3|aT3pME*^i-V4z<kxv za1E4*9)bu2HRq|Ix3b~NhHJ5(Ya3xg2u;&Luc3i@4RO+xiqVS67_QdWPNTkluDW*G zrPw2rqk2`?_tT`C_3FtFuL;wj;l4XHI@4~f!~5>kDlmC;4O~n?fnouUv$eqnuDZE6 zY#fEe(bU>X4+0oVlOw`g^RjWJ(;CobGj`#0=<EE!vDS=*=q`4@V~xt^SH)G~02D1z zwJLm7_}<l?KO&`Oj@Ov*%2h-PDugT_eZefREx~s26U{2sD4;vl5)&gSvcyDZE7bc& zehK<EK82KjAgwl}{Ih1|8r*?>Pgu$3A?2Uls_dWBs+=q9d>QjMK7~|wStqM{dhh-S z@8kPqeFW8)rk-OQP)jPhkUF5gpypKMYQ_JD8RkNm*vDQ_s9et!Ovtq*<~p)MBY}x# zChA(j+%{G)H;WapCH=%Y(_LYPE11Ac1<g!Eu|kV$Hq#Ymxx#E$nBxlPY^<<sk?~6z zQtt)dKX1`FD-@QE;Rjvo*jP7zl(l;;jI;L6wGJu&%CL6abY184Af)`;#I?HR94k)T z|M^*EqaSxC1=Im&R~`6AJFH56?!mvYtZy2BG^+=H8S44tuEZn%-3EGGzb1WF@-fLj zPWD}dih%kpss!|(y~zsSaTq*wG<s?0+I1?mvMW*QPiMO>k1pvd<@4EOUm}z1O6)4E zFduEbxxuz^`mRhanH@}}KW^1*rn{>*nWWdQ%c9HBoOPr+ld1SX0q@MwB)@ZIlc{K* zz(BHR#buW-^W|bGmB|A!U&Rvado8C@=^n5N@3m$&gN-_<5uo`QGM_a{*CTvm^kQ*7 z%g#etP5p&vEl?8-1r?2b9IBs>vY=BNfuUM^E^ALUo)^ROJhyCt4o<I!7PWo<%Z**L z(RhaI@EJgV=%w;me+j){Xu0IT9);;Cr2Esk(v6AiV4AZM9~dkZ4fN(q`Q3X|F>`x5 zUNTu}&p=xBWU|>cgFQXzLWkPLTJ3%&(o)Bu-T2AmG9^{Y4|Ha7X;n(^F0IWE=1S>; z>dEF4C6&$RdL!n8Uue>~)U~-(dbh8p#@|Gjy6d;qagxdu2eOGh>k_4eD&_|Z$+TLx zvTNtgon7nvl6Y)aA-=S$FO^Nkix_P>*R?L)J=m*?IkO*n)L^cd>CL565$wx?l4`y~ zN8fG6j3HI}TdBuxjuVU{=~=8$NbE7&50jnAW)h`LKBs(dW`6qe{g`=r9p|H1N)$?4 zGbr1zX<KCN6<0*ej*hhT=h}L*iDKW??c{u0ac5?r4FiJIpB%gzd;hXXTW?3CZ8Hq8 zov+66LhZI5>%NWMbLH+#sV9@prixI)D#;$U71JiCE``Z;<$*+UCp;GhlO>cE`|^cS zTRJz`UzA~WNWKMI2d4<*@YmGLHx|+iJDW}^wPEerm61zgH{K9m5l1iL7;1d0jS%sr z(dE&Oc>Cp-uUO;{9zlh7>RBY5prQHUNZ@NY%$2(tWxQD#?`&dxi+RBVftXiwFc|Y{ z@2`n@p$BSX-lUOG%&Qxn6!Yqj)Wy8XN9zY{CFG2UsJD;x_Ospr);q|0_p{yutT)1X zqxCVbA?Af+-jtZ<#k|ItH#O!p#k}U2H!bE(k9jj<-g#@i^J891%$phWX2rbOF>lUw zh?GiQ@3cAQw|NiSyq9h6W1IWg<^i^OkZs=2HXmS{Ba_kUD4L#f1dV$~r>vPWXN~7N z6yFTSHr1#zXDu@iG6*^;C^v;w1!2M0o$B}7GiUiGa<w&pzgF-nM@EQo(wVbdk7_Fu z+ppe9tQ1t0H)G=?s4DNnB3E9CMXp?~B3E9{M6SG&iOd~TO~J}d=<9;2@&;xULI2Bg zr9x0u-nOK?@{T3)OcfJr?!{(RqdqM%Gq!%q1UWfD-YGKoZZqcNa}&z%5}A9nS=FnN z3FVK9JZ8!p)K`&n{yDQv>fg_P7r9OB&(l^wPWibB@{1GXUrmt5U9R!?mh0mi<8fu6 z(}x?@Z!l2mABY#yy@qd37xE%7xVzDj_mH_Z2!4D7Fk)11pLR4bn9A(x&!_q_%bbFa zYGkhj9QWF>cOQMr9Y-|xUOb-4$CLSiJ#of7v_LVNP88zZ#iBVG&GLTDxonoDXZ&fF zw`;yv2e2i%OBPap0X~pc<Dvd4<k#b|`fky$M9y;)l3?};@Fd|C;AS2&q$r-6xp<Iw z2=j|2&u6n7g%Vkg!98TWIWRql$MO;KMbs+wH9XDp4XSUGMgNqe=XmY!bnKSKca!g6 zQ}JsJ`CG{Ob%p#J<eVn{0>HEYkCtP#m<*e{kuMd#7=Ac@>ZgD=3f}<UEX+N8qwpy7 zw+in^o)W$i`i$@=k>4R4hkjUiHu#|MZOH#tcmwip3U5MwLU<eU*MvFW92@)jEb@O9 z{yX^mlQ5&zB*?V64LQf7<@;5WFylh2Fz2;Hm}VRU?RgG6$?($!-a?l3y-AqyVLMsA zTc*YSm(b@$|9Nmp^ux%%Ao}k?|3%U72q^WCF#G?6*!&L6`;~pz2^+rWvn`I}d!lEo z`GM#cA%C8XelCOl1!1nwD`ImE^52r-^GfJ{PnNxUMwoH!eKOkWMvlwg*mI5Q(GTi> ziQFT@57(<j^fh=vzd-ccpubr39ndcpJ?CM$=yyPWrRX^i>qUPL^w*KmH=fyTVzUc* z7ukaniFL?h;1n5s`!?$4$mrXP(C-%gt{SC2FZ!kE!+znLkv}S&g8u7d_*{d!94C1< zI1In!ec+YCkAVAxzYN|h{0;D<!pFf+3O@t>JsEx51O89)TmX_r|ETW+*E;M8e+hkS zc6he%5c=5a@Fl`EuwU%(a$&Z$(&2T&5$HEM{ApqS*s;xFh?TPdwPAF@yr*#Qk+BR$ z&vJ%o>d6-h^W0tR@F#`2|G9T*PhKI+vl(-Ey)a|pCWmhj#xkkx4#$Ogt~tN-PtFSS zEc2{V&oqpO%y%sluY^ZMKY;wG!(S1mAD(UN$HXzzod?~IL{I*Sa0&S<4!<f)Kfe=3 zrrs514E(dhXN75R;v3rf1b7D4o_$yeW?Uds-{$BU3#@*PqvzinY~4-5oF~Qt8!LK* zxz;Au;hd6-qUT!Q;qYEzuKRrs9~9<VA9naLVXiylJKH6HU6|{B+~KE$x$Y(&!k+w` z=(*M}I{dOQ?}Aqy{<Sc#%eNeUTbTR7#!0e?lW402{Gr&81DFi<c^0_A;YQ&((3_YE z8}b~{^L#9Dc#&`f`VNOp{6yV((616bd9Cn#aHqr93onHJGY;P>d<pbD4*#`q6#AmW zpA%jJ{a%Of66XFq=<uj8&-7ysKQ6o+dJ}Ik7V@`5&vXBj!_NqJLjRn@KNjYlWnwk_ zF#WUWdB?ru@E;s|-c@!#*9p^pmcthc(?9PpYrkB0EA$&3?sV*Vw^{p?@XfFvaJb~y z^UkyO`-J)KaoFL<9DCk#ypNdp*D^AOr~bj=9|-e2zTohS!aR?!IQ*(G&*PZGZwd1Z zn)?fFk<W;p=h56{(3APMWA+FC)Fd=+nSVeg^E^&>n14^Ep679{!~DZ4^*oPJhdYFM z2CsB@l`zksxyw+O+$nmVHFK9iPyUSPBjAL?Y2h*G`QE@jFx@U31K;EDKH)c@KkV>h z!eh{LuC;s}=J@S<DaRJUWOD56D`PJc`^Vp|8QUXx?B1A98T*`jlIPa;Z87!e=NNJ( z>mOY(O#fV0>!0gHrhn5PIXmnR+oFHd9~nFQ!?wndzenZ<K(coYd5gqAvbh(e?tejU z75gA;$efRQVHWXSoqG0@@8_-P8`pP%@G|fcVcu(eSEmj8852%{HwgEE|4Nu+yp@b` zajZ$<tH8a&^s|SIK65UIgx7%Y7TyisFT4*tD*OoeVc{=>j|zVS%=?QzkAuG{{0#Uz z!ed}F&m1h0nP*N2QiPApiCJs0VgKwpE}@OA;|}V@hI3)}4Clh`nSXL@UL(sIy-pkO z7;+UY?&&Wjx{;R(e%@z^-{w`+d_#}&dwH~w&L*PNMmzCM-u)%PDRO^0h!*m!PT%d( zcGp4Gs>4-Reo62hruYjo8tTcTABGd%-G%fnsp6}$`Q$h`QAp%^)3&?5%}1!R{GD99 zqJJuy%=hyr`f<K`3JLr&{4vsO*kZZOo@X`gWjC>mX)Ycz!lz09likHAt;6%b*|o!F zV!J$FHraN$pBN`rOTiEEJ!C%k0zB07VZ7+X<NEs)WS%XXtiKIVxc=UPKb|%E<GHu~ zc;;BA0}s;=@wmSjvW!nba@J)!g@<)*vhDUm;kFyWS(pzU+vP8pw%z-{tYiK0y?6|= zP1fICP`Liq!QXD^=nqG(;_oQf)&Z(1xQM%0QIait1hVVz`|x)F3i@OCWf|w${1$@T zrVKjDm}Qg2??YjkWiL&__ur3bm)}F&b~j=}u7EAuWjwU)z65st?M7!-KxdOJ`w0}T zzrFMP?^5)~{bl`)fo&b2Iu3t~V>a2cUqj*gdk6k@Ku3SmrHu1p?j7Vdy$0pqTPILj z{5P=cuk#}O?uSD9V|cXvGvA*eGlnwlL;SlJYiASv@tKSd=GLwWUvPQ0Y_fLzUvOlb z*1>MRqhPyC)1Y(vcVxaYzaz7Mv+&sdp?c+v1Jz>un8*9jCX39SZmT{l!T=N(Lf?Xi W{<zLO12$#=)oYmCw+WK0zyAiRSrpj- diff --git a/hdlc_screen/Debug/LCD/lcdpcf8574.d b/hdlc_screen/Debug/LCD/lcdpcf8574.d deleted file mode 100644 index 6fcc597..0000000 --- a/hdlc_screen/Debug/LCD/lcdpcf8574.d +++ /dev/null @@ -1,154 +0,0 @@ -LCD/lcdpcf8574.d LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c \ - ../LCD/lcd_headers.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - ../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h - -../LCD/lcd_headers.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../LCD/lcdpcf8574.h: - -../LCD/pcf8574.h: - -../LCD/i2cmaster.h: diff --git a/hdlc_screen/Debug/LCD/lcdpcf8574.o b/hdlc_screen/Debug/LCD/lcdpcf8574.o deleted file mode 100644 index 27e9af2a6bbe313308520a3e8d6bdb25614959c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20988 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 bzZn(FA;+U^?Qvb@-{o9;^9HB;r>_1l&SK8Q diff --git a/hdlc_screen/Debug/LCD/pcf8574.d b/hdlc_screen/Debug/LCD/pcf8574.d deleted file mode 100644 index 70f94d6..0000000 --- a/hdlc_screen/Debug/LCD/pcf8574.d +++ /dev/null @@ -1,153 +0,0 @@ -LCD/pcf8574.d LCD/pcf8574.o: ../LCD/pcf8574.c ../LCD/lcd_headers.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - ../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h - -../LCD/lcd_headers.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../LCD/lcdpcf8574.h: - -../LCD/pcf8574.h: - -../LCD/i2cmaster.h: diff --git a/hdlc_screen/Debug/LCD/pcf8574.o b/hdlc_screen/Debug/LCD/pcf8574.o deleted file mode 100644 index 7e76237ffaa4a248699a4996e8ea7a682a419fe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16396 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 diff --git a/hdlc_screen/Debug/LCD/twimaster.d b/hdlc_screen/Debug/LCD/twimaster.d deleted file mode 100644 index 1d9a9c4..0000000 --- a/hdlc_screen/Debug/LCD/twimaster.d +++ /dev/null @@ -1,153 +0,0 @@ -LCD/twimaster.d LCD/twimaster.o: ../LCD/twimaster.c ../LCD/lcd_headers.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - ../LCD/lcdpcf8574.h ../LCD/pcf8574.h ../LCD/i2cmaster.h - -../LCD/lcd_headers.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\compat\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\twi.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\pgmspace.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../LCD/lcdpcf8574.h: - -../LCD/pcf8574.h: - -../LCD/i2cmaster.h: diff --git a/hdlc_screen/Debug/LCD/twimaster.o b/hdlc_screen/Debug/LCD/twimaster.o deleted file mode 100644 index 95ff637baee788c1461e5c9a0fcbe71f0aa219d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8316 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 U_V9J7&%AA~4Tp?p)sV6GA73?07ytkO diff --git a/hdlc_screen/Debug/Makefile b/hdlc_screen/Debug/Makefile deleted file mode 100644 index 77f097f..0000000 --- a/hdlc_screen/Debug/Makefile +++ /dev/null @@ -1,305 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -SHELL := cmd.exe -RM := rm -rf - -USER_OBJS := - -LIBS := -PROJ := - -O_SRCS := -C_SRCS := -S_SRCS := -S_UPPER_SRCS := -OBJ_SRCS := -ASM_SRCS := -PREPROCESSING_SRCS := -OBJS := -OBJS_AS_ARGS := -C_DEPS := -C_DEPS_AS_ARGS := -EXECUTABLES := -OUTPUT_FILE_PATH := -OUTPUT_FILE_PATH_AS_ARGS := -AVR_APP_PATH :=$$$AVR_APP_PATH$$$ -QUOTE := " -ADDITIONAL_DEPENDENCIES:= -OUTPUT_FILE_DEP:= -LIB_DEP:= -LINKER_SCRIPT_DEP:= - -# Every subdirectory with source files must be described here -SUBDIRS := \ -../hdlc \ -../LCD \ -../UART \ -../protocol - - -# Add inputs and outputs from these tool invocations to the build variables -C_SRCS += \ -../hdlc/client.c \ -../hdlc/fcs.c \ -../hdlc/hdlc.c \ -../LCD/lcdpcf8574.c \ -../LCD/Lcd_print.c \ -../LCD/pcf8574.c \ -../LCD/twimaster.c \ -../main.c \ -../protocol/protocol.c \ -../UART/circular_buf.c \ -../UART/uart.c - - -PREPROCESSING_SRCS += - - -ASM_SRCS += - - -OBJS += \ -hdlc/client.o \ -hdlc/fcs.o \ -hdlc/hdlc.o \ -LCD/lcdpcf8574.o \ -LCD/Lcd_print.o \ -LCD/pcf8574.o \ -LCD/twimaster.o \ -main.o \ -protocol/protocol.o \ -UART/circular_buf.o \ -UART/uart.o - -OBJS_AS_ARGS += \ -hdlc/client.o \ -hdlc/fcs.o \ -hdlc/hdlc.o \ -LCD/lcdpcf8574.o \ -LCD/Lcd_print.o \ -LCD/pcf8574.o \ -LCD/twimaster.o \ -main.o \ -protocol/protocol.o \ -UART/circular_buf.o \ -UART/uart.o - -C_DEPS += \ -hdlc/client.d \ -hdlc/fcs.d \ -hdlc/hdlc.d \ -LCD/lcdpcf8574.d \ -LCD/Lcd_print.d \ -LCD/pcf8574.d \ -LCD/twimaster.d \ -main.d \ -protocol/protocol.d \ -UART/circular_buf.d \ -UART/uart.d - -C_DEPS_AS_ARGS += \ -hdlc/client.d \ -hdlc/fcs.d \ -hdlc/hdlc.d \ -LCD/lcdpcf8574.d \ -LCD/Lcd_print.d \ -LCD/pcf8574.d \ -LCD/twimaster.d \ -main.d \ -protocol/protocol.d \ -UART/circular_buf.d \ -UART/uart.d - -OUTPUT_FILE_PATH +=hdlc_screen.elf - -OUTPUT_FILE_PATH_AS_ARGS +=hdlc_screen.elf - -ADDITIONAL_DEPENDENCIES:= - -OUTPUT_FILE_DEP:= ./makedep.mk - -LIB_DEP+= - -LINKER_SCRIPT_DEP+= - - -# AVR32/GNU C Compiler -hdlc/client.o: ../hdlc/client.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -hdlc/fcs.o: ../hdlc/fcs.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -hdlc/hdlc.o: ../hdlc/hdlc.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -LCD/lcdpcf8574.o: ../LCD/lcdpcf8574.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -LCD/Lcd_print.o: ../LCD/Lcd_print.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -LCD/pcf8574.o: ../LCD/pcf8574.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -LCD/twimaster.o: ../LCD/twimaster.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -./main.o: .././main.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -protocol/protocol.o: ../protocol/protocol.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -UART/circular_buf.o: ../UART/circular_buf.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - -UART/uart.o: ../UART/uart.c - @echo Building file: $< - @echo Invoking: AVR/GNU C Compiler : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - @echo Finished building: $< - - - - - -# AVR32/GNU Preprocessing Assembler - - - -# AVR32/GNU Assembler - - - - -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(C_DEPS)),) --include $(C_DEPS) -endif -endif - -# Add inputs and outputs from these tool invocations to the build variables - -# All Target -all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES) - -$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) - @echo Building target: $@ - @echo Invoking: AVR/GNU Linker : 5.4.0 -<<<<<<< HEAD - $(QUOTE)D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="hdlc_screen.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p -B "D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" - @echo Finished building target: $@ - "D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.hex" - "D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "hdlc_screen.elf" "hdlc_screen.eep" || exit 0 - "D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "hdlc_screen.elf" > "hdlc_screen.lss" - "D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.srec" - "D:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "hdlc_screen.elf" -======= - $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="hdlc_screen.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p" - @echo Finished building target: $@ - "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.hex" - "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "hdlc_screen.elf" "hdlc_screen.eep" || exit 0 - "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "hdlc_screen.elf" > "hdlc_screen.lss" - "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "hdlc_screen.elf" "hdlc_screen.srec" - "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "hdlc_screen.elf" ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - - - - - - - -# Other Targets -clean: - -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES) - -$(RM) $(C_DEPS_AS_ARGS) - rm -rf "hdlc_screen.elf" "hdlc_screen.a" "hdlc_screen.hex" "hdlc_screen.lss" "hdlc_screen.eep" "hdlc_screen.map" "hdlc_screen.srec" "hdlc_screen.usersignatures" - \ No newline at end of file diff --git a/hdlc_screen/Debug/UART/circular_buf.d b/hdlc_screen/Debug/UART/circular_buf.d deleted file mode 100644 index 7115b76..0000000 --- a/hdlc_screen/Debug/UART/circular_buf.d +++ /dev/null @@ -1,50 +0,0 @@ -UART/circular_buf.d UART/circular_buf.o: ../UART/circular_buf.c \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - ../UART/circular_buf.h - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - ../UART/circular_buf.h - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../UART/circular_buf.h: diff --git a/hdlc_screen/Debug/UART/circular_buf.o b/hdlc_screen/Debug/UART/circular_buf.o deleted file mode 100644 index 60f1aaf0d3aaa579b65507e51ea4dae39b2188fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6412 zcmbVQZET!J5#GJmzMOr|`Qx1L1fSEi4N83eNYbQ%G<M^XSPG3vlTw7M)A@Y1uRh;7 zcjq)ImC}!Z2n5B(O$%yK>J(IoR-#a(f+~Rk(SJ}%rAquju@J4Iv{D<<R-pvK^Xxn8 z+p|*<G17XUnVp%PotfQxlM{FC|AN+9S<>nrRpyl1+N{*qvAESJY*a03t-7ik&NrS9 zoxQ3botv8Lm~EZyTA@F91emhc*^asP#O?#_M>>vexvA>I*8a|#SZ;Tova7m#wttRR z8&+&vVr^PxUZ1%z^PXPb9(h8kQ=9aMr)H<-{-ZC}|FfmxasA|(BU8t|4^R53M{?)# z`pHwzU6_7-x@DTX#bzI!-H6>g<}T>-^)I*VpYH$E-DA(4Y(Lu`I(z2*bMJ@FUcoT~ z=2TVYz;!kS3+I3iQWVf3PF|oolPjq}V2Ke{Rr{0Ag?ujLbG|_p71jrW=P>!pO9%ru z2^Z=xT+Cmq@wrwNB=`x&68>qi8-`4*Iyhe=@4K;p{u@+kQiDndiGrguIy0kHZD15! z*tZDl?O=2@xH@WviJ-#erPPaD#2-t>YX_F<Ke3_)>MLDu{8*vUyB{l!^jU9wa;?c% zj+)6T>mOUiD8nR0`A0_?8VSv&6t`U_X9%2zV7c#X&ElQSu4}Bb6|~kZ*4aw;KzeQY zBv5M9H%FpjFR~_bIM}EU>IRfJut9~xcR+|D3k)e$71drO9NroJTv#L8>ZQtykm-x= zs70!^?u$~sq*e7r+rvtQ;(B+TuX1Z$qi)jOwNKqyN0pjt<%N9H08DG^v0WeJVb`KB z8Z-OUm6cJSTi_fOitEm3h0FSC)fo*S_J&Fy6-td|S5$3sRgGd$0*pdY&PK)NQ;%sR zsuMde`_^Mx1!|}7MBK|=`@V8KO0C#hVZU;ngnM83D@e>d1(o!tNP;Riqx0z31$3i& zp28Kdwq!h)G1rd*u9!P!S2-`<BRiwV%du3cf9O$O*9r=%;Tb(rsWp5Zts6b((2P!( zz1gi6#`bwE_~)EIlR|?UG8YHPf2Nh%DRSEUzw|K-1Ip~G{}riK_?cjhbUfaExaZ&@ zrBazfYBHNFBnBsk<0<}ZR7ghsAChVlbF-&wV2i(1iUZ!1zv9(W8Zc`OSc7_bEy6Y5 zu50016W0)y=hcLab)EU!3_YZ!>|?d|ju`(9=C4;1bhK9kKWrq`CNi`8(PVZqt#GR0 zbRjW3na!#P3z<@y=Y)g{iBd9?Rg<}5W+ay$ils)A1tocDuSh~l?Y;YOY|rht$F{|{ z#yetd<GHrsY_d4ItCKk2RvgPrv<*&<fE!Ou?n)jlY>Tyxbj8{ZK%rO~+BK4!gmv4n z-K>q9x%^<JG@MCihl&tFD^<$mb8W@6nJF7emXa<%kxY%jb73-7!fJ6eUnsSubCcsm zmCffyVs@Vxf9Bk?@aVle2gb(626{8aiEQ$CqUUHKv1MR%D4R+YQ-yRoH_)5LS;~o_ z594*QYe{c<e4=z*WpbHPCYjAVG@s-maOwC&+A%i)G1E>RM$^e5Uxlk~ISN>@6;pfn z?AaOH*mLi}#Et~=l|WGvhw}L>a+%2`w#09XcO^QvZ{P7*zf5>g(dpMfc=k?gsEY-D zi0*d35P0!io)^&Nc@fuQSmK53iFnh2o=DX*UQeX@2UQjN*So0hi&&*DU$eeAdlg@4 z<o&0?>Ufaw40l)o>{kKra`^SYyB&VhJSMn&&3rJ-%NFimeuSvv`Cl{h+MY7sKn{;< z?2xD2p9I=3bymsOFW`BaGI^@0%m8`*x5K>5Q_JTufu~k3;8!o;SE*i+u(nOAO5H0w zYukkLrG#f~n{d9o@T_f<s!<OM&ssL|eD3YR1DQzN)1TOvNcdpC4-Ve7*MQRaM52%$ zG5Dc$Aur70i&1fJgjxJXx!upc3?Lk4j9Cmo@EOdT1$SY_54&oT1~xh<2j#a=2e<<> z^Af<<(QTMxg5#L+t)R4&hc5IorM`%{Q84u(GV;}EYW5*Nh)6eMXeJoMcxd}e=xh<Z z5p$2=9?16zehK)1;47F}E82bs^7{qf4Ll_HY2b|DTHr~+&jLR#_<7)I!7Z47Cio=e zzYtsi{xvZZ2KpTaF>`Z?7%`-wvkXH^i?0&QV{Rg5VnAKQ&}aU35ljAgPGa`ieWK4i zBt)Ne943}4^MGLXVNUe>fgcro8u%N;*o!nJ^4|iVC59iARlO)WzsLLvF@>O41+%aJ zNR0R|0>4QtKL09m{wv`fV%YLUx+Ivd#YdvE5i`l=hik;l1KY@A=8Kp!&u{Z%`ULr* zY=_8+8K2D?&u{Z{NHF6uy@B%*Cq>TvA8>F^Fynd9!Cw>1JTs@(|CC^s;~57(E13QN zqJv)&Oh2rF_4Arw`uVei-x5rH=H1riJ;98VcYt!@tAd#i)`Rlpz|Ddg4{Km+v{^9o zKzl7uuc?LfIcpG;K3_>4>Fu?YOO0Zbqb{Tk7%||jm`&|?D9~n%7%<P$fnm==y%^$T z%p`liOmE1(A<AW6Zex4H#3}nSPTK<}PT7}nGSA#MMvT2kjFXuA_7Tf@`PSRLP7sU# zr-{X<x%=YhOOUsS?Uw~J_OA+N?Bm3UpS@QU%)87UqnxpyB9^_*2=2l>Bba&m5iw%m zb}tB~pPvfm+y07R+P*57Xa55+VrC3)3TB*t5lo*K1hZ$}7R*|`E13OrSulNmB$zog zIj14W<XmzR18@7s^n>VZhTP_vd)QvuLAmJAug!lqb&wzCVISq9v!7V%(oY>=#y0Bc zWQnC-6V#Eqt9bGFcquuExm57yQHx6HV<i>mC$x$W7K<uQL45JAa=ehvCjG^VALzw$ z^IPqREB<NW$lYIXUp&Nb>qI6uoJT|kCkF=$>7&YB&gN4Ue6o<tjieE{3D7sYjwqYS zrL9+-UBy%R@$oc1sa?C_LUKHf#N8mRfgYX~^QO>*HFJq;q*e@Kj|}M3^lrr(@6rF# zGd%@8zGWo(qn#zYuet9KT0QnzvsJ=u^?HGMN4hacf5%-#3#xS()fikOpTwYz^~XMR z&tm-zK<@hc0RDJy=#O8`*55H;*WXF->}gBZAKwz!UkJf$fQ<fXWR3AnVYvQ&1)gWN zWc_^`0@vSW7~A*|>U@0916v#V_ypssBe3v1<gUM7_}hvHi1G2ta*gr5jA3m6)yL48 zbOaW@wm@$T4!Z54v-TTcci&^U@85$S_id0h?)w&oW3FC6QM)0tWY^w+!1dPvCnq7J zKfb?QqrXcS)&@|$3x6F1LU!$K@UFin;Ey$@KlY*Z_itcp1E|)Z!I*1HcI^rTuD`lQ zrFyYQe|#pbzZ%GBV`Ex|rhCIWft--Td@ne9@8A-3g12P#)&me*T8XABSq3xrC9Q*! z8(%+?_H)WHR%6)s5cd2X2gHBDD%I|6U?FF;$UL3KzJG#{zklpk`a??19k6c(ST%qq K{w9Ht_4i-cT)NZ% diff --git a/hdlc_screen/Debug/UART/uart.d b/hdlc_screen/Debug/UART/uart.d deleted file mode 100644 index df51e53..0000000 --- a/hdlc_screen/Debug/UART/uart.d +++ /dev/null @@ -1,94 +0,0 @@ -UART/uart.d UART/uart.o: ../UART/uart.c \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - ../UART/circular_buf.h ../UART/uart.h - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -D:\atmel\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - ../UART/circular_buf.h ../UART/uart.h - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include/avr/iom328p.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../UART/circular_buf.h: - -../UART/uart.h: diff --git a/hdlc_screen/Debug/UART/uart.o b/hdlc_screen/Debug/UART/uart.o deleted file mode 100644 index 34f763b0bb3dfa2f4384f77c8113c12f94e62ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10572 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 diff --git a/hdlc_screen/Debug/hdlc/client.d b/hdlc_screen/Debug/hdlc/client.d deleted file mode 100644 index 9d9053e..0000000 --- a/hdlc_screen/Debug/hdlc/client.d +++ /dev/null @@ -1,64 +0,0 @@ -hdlc/client.d hdlc/client.o: ../hdlc/client.c ../hdlc/client.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ - ../hdlc/hdlc.h ../hdlc/fcs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -../hdlc/client.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ - ../hdlc/hdlc.h ../hdlc/fcs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -../hdlc/client.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../hdlc/hdlc.h: - -../hdlc/fcs.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 diff --git a/hdlc_screen/Debug/hdlc/client.o b/hdlc_screen/Debug/hdlc/client.o deleted file mode 100644 index 50cde8e18c4bdf7fc9dd7ca92cfe1735bac0cda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14608 zcmc(m3wV^(na9sJGnrhOkOTt)lHnp=YKDtc5ic;12&ohh(6*R%m`o-YNhaxJg2GZD z2@tu5MDWpCu$OK7wAR|og7w)VwXNN{UFn70b^ElMTHEgS!HSC3TDI>0f6jX*CjnQt z&+fBFzwi9cd*1V&bKZ0NzHh>o>ZLb(o~LZ^)G9TUQtHIjN^M8x9IbG<nxZPyIj?JQ zYfri--qSvy)LLBIe$~@6rhEU(M_xYEv%ROUx3{Oix2t!|j<Ox)J1*LhckrCogA!YJ z-m_)v?ykY!-m-4Wwsv*T^v-TaPIS(#IqGaT^1FAJ?8@v;?7n?>_3pCnt%H4oc?b8v zZr(v!&pVh*r^C&uaAPtPYe>gilk>ut))%Og{m=Km-2Zle@j%7E$${qw)Q|t^*mK7= zdF#A2JvBY7X*+7F-g*1Z#LmpleO_^_V)-HO2VV40=w7AnpBgxOWMKaQYhz4Vai96` zk0{%NvbM~E!4-pR2ipgK;1$28vfD0LcJaHGWn0*S=MS7bP;sF6z}tN<_dVZtvM=x8 zjQ;uk%ll*fZT(yN_xB&^|7!me{pa`Jc%as+?YX6AO62OuTyO8u!$-dt`RB;qV~3CJ zx%gB0#Yf+~_wW<N$M-(*(y_lBn{{Z0_l)O1w8`7=9rC{H9rxN|Tb6&{3uIfWPVDOH zZSNa=-J9AqbFh2tK(2RY8%K37Ms<JpVDIi-7$J3HXIIxu?~FQwu|1<sygGPt{7>?{ zv+6`QN^b3e#QRL;H!7DFeRN{ifxQDSUi5m7clI^!C*3EycZkL|9gnoT^?*`+xL)`A zd%AkGf7pZL=)rM2S|h#nMBi8Yj`Z#C+tSz87wcQzH@|NNJb2EV+%>yv`h;r>XZK9* zDJ?Gx2F{w9wp-7!U*{<0)AK!`mqL+U93x|&7o^C~n{V^=ynA^}1bjKosf_aZa+&f4 zV33hX<(X8TPU*7#XKRq3<IzH3>>=E>U2`{e_)IN<33nkk*B6-dL&T=83KsB9Rr!ci zAWS2kKgT!KlOmHp4M}ccVEQcd#uT}Xh$00Ii4GOGe6CJO)2~<vb>CFK(Y(^6a!l%d zCY5VaSD944?X`4QcPUVL3T6s%Dc!A{(c4kU`Q0)O)c1hC=jeM-X{TSDGk&yB8l5xY z1E$fs@|=mLa?|LXOJ+Ka&Y3h{YX*#F1zqKvT5M8blPWQ($u#eqT4qvHTD0axCUvRN z9IHn8Xgvg*=uEzji2nYt&s&M|#U_KuFq$_npY01a40w$L9xSl;VqxrX3*A`@W32^M zV(O~!Xv79x->Iy2h1E9oRj?;gpGer7VEurXL<>rd#W}+)(z3TGV0$pfS~MM+LyHWO zq&bE%6DgI!NRLS;Gs?Thw(}z99mfQ}6M5yqrU9>c!1HY`DG$~ScnRPpNY@T{ao|>^ z#!~$sxgN4cf0;FU(|JaJHq2;oxpdc?SuWiqy-P*oSS5pL`OW85G8g_BYWdi|suJt& z73aHqF?wqpx?;GyR}6Re3hQoB9+68k3>Wj}-KwYR9&fzYDDnwfzVd^TG@V^-J3EoN ze?mvcG%K&sO4TJ4{~L;A`@b<@`|sPl*?QUkn%8h4KW9+xV*_4{BMw8OeC)y`uAQ~8 zS;5=msMBtXVG3lXZye?*J<}gXuIc+m>nJm?H?qBUWlaVvFP9=O2h&5TDML>)fjg%T zC4#$sZq`!em3Wti$_o9V38CA9CEiMJG`1e!G*wu56NFgb<;owLS9pD44JKzm<k%W= z0$w3x%<+&Dyc}v1vD4+2L2jjaqq2qP7ATcJlq@V9RajI=VF84BrUE7l1D-$RS}rQn z0&8+qF`CA<gd*PjBGa_Xib}jvZ$ZI*3yav6;+$-)K6GZZlSBn2Zn>JWVI@m1kQWrI zWrc86smBV&%*i&H6<oBl+e6;0GUk=<>h_ec;J`vuH5M5d+gT8gGo>+AQC9rvgUa|h zYEDs28O=;^a*&)@=-n2i#Y?PtOe4>$(X~`eRyAcakQts1P-^l}+4)7ZJ0+s#7u`_Q zyC7t0Q)=pP3FcKc1eMvMtRSdT16~{U%Msy!ThFg>c-T6a&{LNJCb&p+U?SUGCg7c+ z9Q^>nBy;qcWfS>E$>hK%CQz-&CVXm7maXjkUYg}>^8@NNujz<Q**K`=loLTv)ed+c z9r7VdHC&*SoJ>**?a6xGrw(*l>oy+Qw!c<RC;Y#7UOx-5)x(B?iBYyMOkm?NfeF3; zG0BA9{cNJdD4Cp6H-R-_0?UkX6WOB=zRt2$80p`jS~K9?F?<x?%h(Se)%QI1+4+yL zUuWB7<DfE!x=qt+-34Zpd9birL3R6p_o3lESbJV6zuL4VD@4L`6YnL*R_9Y0i+Fq3 z>hOi-R$-*$t=y+(W}D)2Q0;^DiP^kdq{92ul&oN+f;Bj@qLF*uyX9BGkXbnaYf{Y? zvh(a3NuQQ@p{(h!r2j9XSI{V*`V~z3yg!Eu6h3FLRxc8n(Ny1(Q1$a_<C)fEOYOCh znYEd=ww6Rwyg5}HU!R_<Z<URy&dOo(+U8WErL#WyKP}qQTvyweNYHBS`y+Euoi(Hq zEzQYPCX(RCm5xk3-VP&8^d`7I*#O1@U~56p5N*xWZZpbw_Rs?`*6-!}@RH}{2b_Bz z*e4Q`OUZB@=;z}MfrE@Ce>pX%ZA%7i8CY`kCRx1z%3E#2v}kkP+WgvXyUq>jdm&o~ zsblwQmYk%^oA!^h_4@<)hTp3^hx+;BUF#=d?DG7%xUbQU@#(7kQ1W2jG`logq3sBr z>Sr!q+3_ZwA42*Q`IuN}s*(DUU!?Q>{w><Fb&IjdyHAE_NMf9$EyEJ6Y6;rsIOI=S z3<(TS#i(!Ajr9-tuO*pU*xAsKOso22M<&*ss!!gnI+7ocrP}m7igje-nPe=335Hlf zJysvj#AD6ovzh8>-pE`|xmZUsRj+fkG_#={6F=Dk<xF#HQgx&gVqPojuWl&Wi77nS z*iYN~wL*O|(N>>~rIU%~^~w5JI)0b2y{dXym4bAAEYX(Aq}y6lOIxZjtZ)2SvMP4- z%IF8HW6Pq8Zjl9GG?*!Cc}8{_wWlF&P%xEBCNj;bM$<3d<hIUCtgb=nmMYzAbYE4? zt6jHlU2Ro!M|(?rLoB*J9lN^L^goeKCR4Rl$-2%)RaLWU(eh=>su!)US+-c!R4uKJ zty&#jU9A$G=`@zG@r8J?Gu6@Dm`c`%v8ANd%Iav<M?_m2me$#>!M#JuL!HkWVMm80 zoQ4>;r;~S@ArlwE|24*KYLVVxvaK}3&sM08rnYn@Jj`%&syP!gO_XA6zcrfdNW?J* zmQ*cWv`WvOck;5HR(7E2XzguPXC|iZ;jn5KFS{+g=(_8|dT$I@wx%i@TH+l|H_jrr zRd%dvZm+}`Ak~`ayb-(T`@@xuv%{6kp@41hMr_n5UD;rbR?_Wmx~@6X(41_k?|=|m zm>6xT$_`GDwiIP-qnmDzC)UAox-*eMu69&qGS%7IVZ6+*%zFOZ)tqTED@xtAtY%rw z>YC`%nl;r`GT2-{W(68&U?wc8xt;Sz4_l3~#?{2B*%VLJw_xGwyj4Rraiy3!t4GF+ zc-E`gl{?JeT-V}mwRq8@dEv{Wx37%NjlmHycssV*9(S>;BiBS`$7Wr7?c6Jj|ILT0 zw-K<<ZJAaS_I(Z~kNZx*!`)5ukayEO>~Fwj0}uUZ$iK%I4F&f4qoJIAfoLeWKPMW> z?F&Xjc?WW%q5KE)qM?FM<wrwB3rFEIM2jtqm=6mm-_7zpEWeHAx3l~XmhWZxdsu!a z$`|e`fRWvW(a@+pMbS`b@2F^~cwZ<Q8oj?b8Y<}<9SxNpD2ay39xRQ9#(b)5VQ3s` zblV?x>b8g`WJ5r`@^&@>@bhSPf?pnotjG@yzHHrO1t`y_@f)2qzr4(M(wAnL@XFh> za388=Wc@=AUexx>_f#^2UuEA2C7pc_lyvr0P|~h9SU&smA^F)?4oPQUG$fsU*O0XS z{HK{WzxlrBr1jS-C#}CyIcfa?%1KYm`jT_8R0Y&>#PkoJgG$t^Z`*eT&dpNz<8H(Z zoSUWaN3TvP#kpCE(Ro19jM%#`jYxk@(wvK>nC;Ju$p4+B!-z}auX7{v3x@{Jd<f2- zSh3iu6|p6;n9{J+z{={y8ZxczI58VFZ%n4!Bys*e{okB-!;T!C7&_Q>lH1ukZ!&VC zYRz{#!?R{a?ut5N<OUau)wkiWZ{J`Z08Fwa8BfRRIy&Gt&b|Pq0A0qhAT#hIhYy)o zBBq=?Q<xv-I18sy4qk(J9<I^~+z=Mvvhth3L3z1e0?rj)1}+WbhOibF_4ymhdR*4d zCP&^4wsy9Gt({%e595aLATHYZDdMl=vUVPG<j29*&Iz!!^Ay<HVZZ!%?VpaA7x{9; z?YK&(;D*3<`XJwknDd=F1#lwUL-|994?FVDiJWcuyznE4Irpjm0^)~p(axKQzbWz) zh>zl;{1jrg-|DcREc-O#K}Y_EFx&GM*pBI6ggMq6KOY8mJmMfOj{*eF2M<39{GE?$ z+wjYXxvNk<8-=-pco2+3%)Qeq#|_~sT)HfD^d1WRF34^Y`3}gJ3O@^8CHz~&YlJ_G zdgH?1L);|%9q6|TFF?#Wz`FP*L!Xns0-Zi#`sP023}X73I`~CSaSX`p6MaX13-VtI zuZGP(3GYOli#+P=#rxq!!goSWTa*`o=Lj!H+3SVh2VNk|Gv^lJ1mt%JZ-C9Xa3f+~ zw0SS$R^i_u?hyV6;tj%wQFe>)*I}RjW!Vzg?-#xT@`r?5A%8?Tjri|{$3gzI@ONR8 zV?#S%0RL9_CGc6{8L;U?8S0#YjOEEUA+8|PAqZ22XM<;n&hy~w$z{}le?-o<tr2E> z<7D|<mlWpt(jhvu^9eHSaBXfA`C{;XGAA;^fbccoPm2!AewmE2E5MJ6{654_3SWUX z{EP6@==-n8*jpHWBYYbCA7t3M8~mE+)Bb;ooWD2vP@evI5V9gN^s68*5joV=1d(rq zJWNJi+<T@8bA4PZI$wg$4I<~-S|_{`+$mfK=G>y4L*PAR)cYjL9uWCP$WICH13xEx z82o}T*U>9vl>Ir%z9I6XkY5)t_PK_t$>`%j@Cq{aC5F|)Jj*{!hMiZzb)rvSwTQd` zwm&X%`s!~)z5w#ABF{y<OXTYz-!JmF!1s&%^WeiG-vK*c6#0)J|BA?uq23cB_aXki z$nS&BNs-@z_&MPo#J?tU(?B>Y@=qdui;VtqpGn}S0{Y>0a7y?Q*xW$Ie#`I);V^i& z=+F-b$?(r<*n2?aG049n%zfx_vYgT15jlUZ{l3G`2rKCS)Zt$UuZ8}g!>A&=W>K|f z#%wOvGMQ_S%(cw*X4j_P^RZ5;Ggsu~8-!VoYs{|4)xy+S>u|j=*D2SMU2A*>AY&Ny z-#}UBzD%Z_eup{NDd(AX#Np2h=OKRB;YWqJWqr%xZwqr9dCFnVb=t@O>SqrBt1x{w z=<tierHEg0_!Z%D#BVvwGn)3fw{Y(uGn5KX0Z(#xiZIX6h{LmmX@`4_wX;Mx0{Lo( zKP>!v$m<<$5~dyQP1eq4;VU8E<?ue?=O91i@B_lM!~KhPxOY7w`~ficCd#=lJte#Y z%zcOQqu}R+p9FIsvHQ#$!ki~~nbvZ$A2;f7o)kIEpYkc^Jh|B6ON2R3raOG4Z~^33 zJAAEh5#;(TgH3Xk$kA-|L5FV@<~-5o9rVc`6FKKeqr>ZjxsEap-!07f)8+7X;c<}f zbGTo4JmjBr_=qr{Prm5z!@`pw=d&PvMgEp>7_84q$jMKMd<yua!#@+A2Kg@>9u($Y zqR&v+A-^Q@tH5tK{FX4!5uOuv+(W`u&>!#cB;lFRztZ7|FzxVMv39D2n_y>!!>ffm zAm_eGeR91p?eHA3b~Xw(Kxc=;yM)8g?|1l+FzxW%vUa{CTn{@(9e&)==XqxJe=J-F z{a-jdD9k@EJMHipVb;s@k9HQIY*6@{;9`f%gdc-^qQha~6OdowaHa4IkYD5QJmEJX z=lRNd*MOG`KMnqn!*>YNPQu|vVcKbPxI=gv`o%Mw_A}7w73O)uGn?{9z(<7HuP+Fn z0DoDS?fHho$Ao_b`F9=uf$%espK|zF;Zu<FT({2vXN1Q=e$HXVa~T@~*J+W%_%jkM z=Ng>oa9B7DIrlP;FKr0iQ|xm%_l__&E}q@2&z{{}^I@FbI-hcGTnN)}g~8V#=9;v7 zKG!6F8$XSBCgt!U!yH`vnVfTJF4*?*2FlTpFk%Mlb97fTeV!*wKeKx3&{w*hXfp%b zX`em9WO*-OJIQRnZYK>Ou$}A++ppWnO&EdgWM57r*6oz`vz@G$?O#Bq^AM_Vk;91p zK$iA!E!j4#B}=`Jk)^J3A6V@FkSsRefSn51fk=P1B6Hk)C`)D)dBQvk_zXZf_xUlx z^v!tTFgPqse@qvqKdus{Ke!Ll4(9;-SpmPX4SXITvkl9H*&RL`P|jxa*?>$x-${l7 z%eD)14A%>@>?UEhzgw7XzDJmIo6iZf!})x#@Dwng6DVh29umG1{CVM-;D?1do{tK1 zte+&q|FroJ!qdUe2;T%gCA<*K=L+g`{}~jn1M{7i@{Qor!kfW--k|&t_)X!%;J*kT z1qa|5>O2lE5dJARBzzh?nT)x?Ie3{c=U}BU+rwuJ>SVyz39~)(h4+A~h5Nv_2(xW` z#$ee8z#kHR2pkuF1k7g)>O2PKyEpkb_%7k6!F;Zu{26es@G0<K;h%#Cga^U*3%>y7 za|O%(JNR#f{{ZHDH|4K_zb5=9_?U1IzWlau0r)$@oU{D9+X`7nKNp6p)u1rv=Wm6_ zgHH=j0-q5MgE<#H-Vp5GLJsqiHKO+u(YXq8yWTnf?4CK7a?#Oy2<9!r0$g_gTmrT_ zOUZ07!U|k=FTDqBbvUke-{82~ef3R8=Nwu5px~G69vkV{(3*+YsR({fGjWrpO!990 zf~$YYitx*CB%N%DM<|V)_kr7p_2*>!>#3uz<wIY!Bk49;WtFocvs}B`57k58yGNRN zr*GUN^+tZxHu?4Zu^2!4HMF5;n&WkK>EwE8gb}s0C5ENr>3FI!X&qp6E+A@YP9?2X zbWKGPZLO{N>3Ntf^GhK{<GlsGwqv;TUds~Pzudq)hRL|dctq3To%Ak4ZXT|8)6?H# zp~pR*f%bR~*kJ4BJP+VnAQ_vmI5@q-xG3kvDX!-<Vr#Df%(Z8OwYL@mveo1M#eLca zt9J(kZoT(9_2x<*>+QtFGPdoHg3EE)z&u|1+W=x)?^EE@xNNZXZiB$B_hHogB4lA) z*aouw{Q{U}ti7)z!Trbvi=TnOwbzHA(yTqUpLvW=;&Sbs#oiQ#%m!<Zd$4OSgN=;k z!??JOSbHynZ5f~%g9-6FJQvzv^L`J3Yi}zzMszBSh}(&^_h+yz15|&;Bs=E_Eb`gJ zGWGrlr_H%Qz5M4I!|I)e^BDshMj3qW%GRsDYangI`_L%PH5+VQ7mu*F<SO&qPZ)~) zJZJl%zk%4oh&y0!g_E}SDo5CR5%x|%FN_PH^0M}-p=ZlLtiB6-uVd_Nuz3prZht>l zsTAMU!cgRIC$@dJLXTx;;$nCV&M0N31m^Lo9ijI$8pSnjgVp1+8QF$&&<i*MYdQ&; z+rD-fdlrSlxcKX@Z69AH?A`)YOR(_na_m`T?6^U9axDatA?G<vdvKNh$5F1mwb&5( J9BYHc{{qoeN3Z|@ diff --git a/hdlc_screen/Debug/hdlc/fcs.d b/hdlc_screen/Debug/hdlc/fcs.d deleted file mode 100644 index 3b73636..0000000 --- a/hdlc_screen/Debug/hdlc/fcs.d +++ /dev/null @@ -1,3 +0,0 @@ -hdlc/fcs.d hdlc/fcs.o: ../hdlc/fcs.c ../hdlc/fcs.h - -../hdlc/fcs.h: diff --git a/hdlc_screen/Debug/hdlc/fcs.o b/hdlc_screen/Debug/hdlc/fcs.o deleted file mode 100644 index 0ab82ea0e1a37be90614faee8a864fa438fecd80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3520 zcma)74SW>E6`#4igd>R|9}xLSVZo4#$ZZk`F$5Aq5(vQvX$VL$vfRgB?%=+<dr6a& zf`KANM1+VD5fPChQi_O35fLdxL_|bHK%__!DW!-hrIZ4_zPGn?SrC8ve!toIzwenh zZ)RtYsu)cvC5$MUKsq==j&&wv9w>8EgACGxq>vl*8*|9~ZI@7=uPVPQYROz?=9{yd z=a^f~rlo|mBqrUnd{Elx4G-l?JA-4M+_hrL#>4M=K0JG3*7>XdX-+WF*1<jdt(i2i zY-?SiW8Vu!3s3B<`oqO99Q#Ap>i=fwyC5sUuq-*fc4K``>5hqGH|&0A@>7Ra`YxRN z@5~Rb9G{yV!!J(i&aM5G;M`I@eANCO#lJuPV&$Ss*PVaAc`UfkSiEpTigjgxH?He8 z$h<wb;^RH1rd~XH!}a*-WlifZzdf%iuB7dky{E0}nh~}6{`~X<e<?k9>gJ?>oPTaw z%k}N@Yti;aa@V32KkwIneNI;Nw!6n&+WWtnkB*$2zV6H)8=h!iK3|EqEv-x)xq8Te zv`r~_oeqXZe|z%F>H`<H*<QW&d|-j;x6Mm?u5Ep5;GfnUE<C;UyCT!R9#!|9$ajpp zDAs#JGh3b^^OkQ-`rU?4({}G{&;4pw_c5Ih51TUJ>{QSAtG}7$iCHuE&F+saZWGR| z{paxawj3(HcYj`G%<*1M|D{>Mikput*kX8P*|Q1rH(pNv>yA%ycI_TIHsesw$+72V z`+QewW<D7A{=B2T&$j(5<Iz=%^H*<vqjc<nhbOsDHB5^;|1&xBdf~#)jeA#KN%?x+ z(|q&x&4XUvGo|8zqm5Htr&C>bT^`XS#Gjl0@6<mpJu+a`>eut;Y-$}n<6u+un3KP- zSuP9@#9!;P=xX#gD?aPGXZ@yrFKt_rHFxi?$4x&nxu*O~!SsRcy&Jl$f<7^*y<$|` zC{D$9_!v|*HB*O9$t~dxs(^Fa6++ESXG9xno`GK{i86FTK8l)fif)0=92lMO6JlBu z`a<)9hiN5zqd3GS8NW1<_K#1F<>GtAPmE5aRWu<QRxQvGaa??U?66pKTzPULO`=6H zZN+gknGi0Da3<80CmX=j2&`%dYz%}>BeAiC5DpeYX?Zewbm~jWlQUx>V>$p>NzN@U zxC)h`iK~^mTO(J_NG?+su2-d0_-fVEB!r;sho}S;2GSS5^m=>@ft!tysUT#!93DF% zP*%YnzTi=6U@o0<6v~9(6hb@0?kKfeJ$4aKplsYkzGUc7eu$7GWbqcS&*Jo06<0wv zV!uV1;SN}Ab+y2G?R5p#dU*(MsU5^y#)E+pbQIM3>cHFLtn(@ETA$>w*j-jx&)eKV zr(5zk6cB=yJ?QrPEQ+MgD05hYRy`lE+Gjvyxy~L0t>W^_L5t+8^D0EeJWIs8eL+%h z_0&luBEsB6aW_f9#(;#C2wH7Kt4wCNFs1o5rEVqQu{Me$>t%6p4OUH5?6M^JYDy*8 zDj{VhCHZ{D$VpXVo(Rhqp+;i0-|vC&Zl5?<$Q821?E8mg-5ahNls^GR2#6BH?6f%E z@CuxX{$AYaL?aCWzDCj>f+<4WEiW{5r`99PfCCBMkU}N^e_TU>j_(0@gpThQ!3f$z z0(?8xaC?3u8OH3PiztDv(GmAOUcIjo3od*wbv#@m9dWl*2lodzOGlhq(GCGek~$bb z9O-%+pG=B13D!CZD*AxV0&An)3{jj=DUK0EqJoMrs2WwKf}l4b%2KV0n<Uw<F<K`@ zE{!NU{G#0-XcVz~AvEr;vv%M(#b_9-MzyV>2;U8Su@W_W0p@NRz6LX%8AT;fe;8ET z_I-%K7bzD8)ykQ#Vcc^S;x6z3dI$#E?}Zr}TE%a|?9=c8nDL*FHYZ?Sq~Wh&UXEB> zKfp*Xe4#NfE(z<&FrEZrT!Xsby8r+&8^mbCYc|NU^|P4htM;R|uRP%UXc&7OaSF_M z#)#3rI}EC|0rD&+4>*!bP#V4JBLFW-cy=)qlp2CWP!CYBDGCu}$zv5zDnt%iko{;N zu%|>dao{T<x_wSRxU1M|v&mAu79lM1`0cmwR@v&Sl~|Ur%^gG@w@+eGVWC8@`@LQX zUb^t=!hTNK>Xl%ZKaF~U8QybtgL7_kV{brT%})J`0{$U8GwATQ{9|_6T0DJTJSRph z??4b>9~5Z{2RtQsws*roISy>cA{gjnfPqwrAI1P=@v3zgO)9}=4FZjr-FV>jd1pf2 z_dteu0Y>sp1I&B?k}D8zE&`31P63`_R5d_>(lr~Lm=5otKJRcSW){dWFSb0}FXmuA z0LhCGk4K;p)6D{2AI}5v(m;msux>0~8(`)Gkh}}=@QyNKx+Ngc$9o#$vGc&EjKzBm zF!R9}A49w{1R60N)?Od)Ro#9uKa2MkVD!OSAaw&pDhmQULL9ranb~DW5rVzOh}j(k z0b)iDuuEeM%$OJHLl}sQU?3gS)eoN+)L|X*S%xh}=myw*8R0r|VNP9JlE)$Mqaef@ Y;v0tXaNqbJ(8n`D(@g;xBewSc18iAKF#rGn diff --git a/hdlc_screen/Debug/hdlc/hdlc.d b/hdlc_screen/Debug/hdlc/hdlc.d deleted file mode 100644 index f5a6c9e..0000000 --- a/hdlc_screen/Debug/hdlc/hdlc.d +++ /dev/null @@ -1,34 +0,0 @@ -hdlc/hdlc.d hdlc/hdlc.o: ../hdlc/hdlc.c ../hdlc/hdlc.h ../hdlc/fcs.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -../hdlc/hdlc.h: - -../hdlc/fcs.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 diff --git a/hdlc_screen/Debug/hdlc/hdlc.o b/hdlc_screen/Debug/hdlc/hdlc.o deleted file mode 100644 index 94187cc87ba7dd6bb774f7c90bb07f9b3831494a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21716 zcmd6u3wV^pxyNUAH=BfnC4@VoSs(%`381L)N`i=5Q4lXhjV>YCkZ3NL1W=AbmWTo( zY!U(%p<ZfjtF8A-YrVui9<};dq>o4Np4tm|w1P^#pr@Swf4+BiXP0>C)6;X#<oR}f z^Ugc(%)B$-%<Q*cmYq6dy4G6Rpw+o5nNn)n*-EWI=47KVP93hsDz#DXIilw)eQVEs zJv!dE<M1xMx3wqUlhw7hr{k|#U0!}q&z_z)b#M9mbmy*{`gKfHd&99wv7hOgk;u$* z+DhBr(6{${uwcv1&7JXgSB*{0`%=H#?~{Vowydt3CbaHX-Pd(p*VVQ_?^)iXx??>Z zT^qVKE>PY4Z0*^&Agk*u9gnq7)O*yP4t{pWV%INN*{`)Ct1A{;-UV73o15fS;8wK% zE4^;_ExS9~Vr?7RR<x~eYirBDuK#s;*9}>ox11XBp3r)wvbv^p%<PDCG<GcOSl4k& z$Gsg-b!_c;r(<`={*Hc~1)W<v-|18@tCwGT^zBFCi@mD5V$c;CjLQa{V`4q1zlr}a z@S_0bCHf4#q^-7XbK4DVBL__~d8_r)<F}2kSwF4t)X$G9JZk-gdSuV-!|%_!JN9^N zz=j*!H@6Sm_=C}by`SsW*xF;+#}@{^5m0+$Ou^>+v9Ds+$Kos43)TI(p4D2sb9TPf z8W}4#TC_G~Ls9#Q?L#;I+>FH3A?IeY{NN2Ib{2OI+Nipp*m*I^(cZ-6s+%R&w67ek z_l)S6)p}lGw1_#eSVxS$VQ&70&7EsI`){;%ZEJlS#tk_RwpSEU^S#)<SbJM5+O~X1 zXJ%k8OAa&r8oqI}o)DQbbGT{2u#KPSUH!f&n6=#YNN<Q=e|_8j-CKvh)2CmgVCI^E zTLSDqE!eu?nLSmSB@T@p6FUli+O7}o7}3EQs=5QFC4oJ*<ttB!&(wRi>z6v-><IPb zL&M~(=vd*~xLx1axw$j9=-{FoVw+7LTPL(nP~D!T-aq@ry}x(bx3(9w_iNuD-yMG^ zzBT?-{NDI2@pbWK@y2*0J~KWgp4DY%&6RqU-lXr=k83;6Y{{&yZ<}lBGtJC1c*M>n zJKsw5Rr(@*re33Cn9G~mR<*6&`Gsz6YuwFw&rzw<_n2AmDDDKNpV$1HQ(QCQSwqQu zZxlKEV*OS3Z3FMe7+kAY=iWSGj{aO%w6D|YCH@9oT5BEL9@Klg*T1~p*0sjW2%Eam zq*lc?#Xd75U%WHirZ;?|Ia}zPuk$^9{>>i8+O*#Uu4b{IQa-b+1<Z<<Yq*yWpN6JV zet!6tp1@C?#YDiDQQOd>e7;Pke1Qxv@={q|D$AryS^thRppc<yAuwbEK8;=P)2qYh z)e<;pF>*6~fkS?a*sH661$?7bHX;=W(}?zG_(p3fGV(S^GIIiBCZRW8k+DP+=~G?V ztODaoOiG%5*i@+dM*BU@!@X37mpZ~rWqPUcUMk!6TDohx6exNHW^!N{tr@1NX@kEb z?9*2w$M{tbBbw0HHw7qVMju$_=ZP|-6J<iCupV!1C}aJzgywkml%XF#^myh3t2_1l zPVH4c{=aO|zCP;q^|7teh+{R~Y=bdf>az_$mY!zF<A*Lus7m2kW;~h4U<zN8C_IbE z;1xc{+Cu%bBi*XEZS#u%B2m0P;eh@|Mb{c*_%QXn1I2tw+5iKBHJ!S)Q)ifgQEH%9 zVrhzlsjPnk4bLk}t$j(_)(&cJs#JO@6&bwTWp!T4Cew1C7v;fC(H5m!r;4)I@t7T- z!L>>+KST0{FkXzCU<1ky(AB<$N*S3S{khA?YA8FPkAXG*^-$^Sn+OAaeQcO?chP~} zT^+DJSd`koMX5bloZ7#|X}Pw4rZMz<s>27!bn}0rYX$_XI(4*DgR2Jw=XL5z!&L)< zb31iKr}nj?@THwP0$iGG`}PCdUJd7X-rt_u_U);y+mYJ#9cj6??ezX@*8ASbyq-Ex zZ`c_+m}`c9vqYw5VyI?dS+hO&W$)*xW$*V!jW_NhX6qW}h(pjr>kr==?P>DvTIU*S zm4WAExW~=7I%Qt4h8<GFLYVdL@ZM^mp^s7xB^x;incq~H)l8udI)VoDUX7Ut)TGum zU#F#pVtkd(<C5pynZuH&?TkF7`|CqP19JSKgF@#A`|H^{5B2&ARZh;y5aK=`to)(l zb56)PV*pltkz-xX2<RNhn4^&s90#=#IoJROKyIa3eG`RC`Y4s1Oy=bD&B@K7un&Y; zUIk3%6zeIuUX5dO&lu2O=j+lw8>i;7lH81hIUictw;x)`W`*1`DJA+jC15;na*Bce z$#N;B@>ea_@XI8a9<X}3R=z&%Q&D<gQa#bMpfqg|Dw1BXX@gOblN@3VvKK?0M!@Q@ zVl^fA#N6vkLtd{rToQuHTTyK~pm1;BVpHFo``xs@n+>gMtT_j*D5$E;Vv|fabn3=V z%r`Hv)m4dBTd8A6tHiF7+CxVtHNzUopo5Y%^)de1;#XU6<4FjriMO~qIVN43s+3et zb$C#vb|u|i|I_)l9X>SDa<*El*Xv`4Pby4^9KZCYdGxnx=7`Os3rj|Rn^mVW+oW%E zgVpmZ9Kqa#?9e>Qc7(AjdVz_=fH8p^D4Ao9uS_z>90+Y9+f(v#a3^_zYFLMo3A24M z$(+8DVG>y0yuciDaAT4Qvo+a7e^1HFF{`f4!QJcymN7dNlRmX3!IF<7cIwQ6PQn@K zd8u>#|0*}xa&MEfX|z0XYX?<o9$Q|Wm{7Jv`T{|%<bv?cxk($|DJGeo)2S~^-ugk6 zn$J4s_0kgW{FAhDL8tz{Yb7<GR_69%#XCA#E7ZF50Ih(^3H?4HO-%(=YCYDHR_9x^ zv3rC2)zvy-F{sKr^(D!++X9@5|I|%q4W&=K-Ud6l8zoDnPKn-z_uHpPZ^N0KGReA9 z2R+@b-*plkIGhI#`akVf8u)*<mL--i+|vn8IyZI2N_TGh-bZIAr$hSW`QOS-wmy9t zrmh!kPjVXeHno$vNt@{hor^m4#mPI6Hj|UIw~3$3P1;PK!l{$7w;SPKwXV5KO{Qw4 zhejlpn@qJNU67{X7Wb)1iIP5bWP)wC{c5GVlBLcxpIU4660vLCStYe9w<=m)V$oH$ zGQY~+pJ+z<+L@ABg(BVpnmD1Tu$Zy&$&wx;@i7t~BC$P<%#fA1P~_iBY@H(b7etq! z**>)mmVNrmP#=X~S6HhqE}l?RRadF1jxVohsgKr`A6q=Jyrr?RuCk`0wxPUYQB#Te zD4O4}uqZ`dUfWPvx3DVuj~1<~omW1;vXWNIk1n2!>Z~EfmK5U=k5bJoRd|M3TtlCO ztD@CloQ;e|4K?r}03zeL4C7D#Q0><^{b_$7JAhA}jqkDktFwcAAW2C!)X-_s9`z4t zAEEs|lxLYN^Enisrk-qkl}=hchEnSJOdB$c_BDnxjXYo^%On??AgBCR6!jZLe|E@J z#OAZ<R&E=Rl=!4clr$L4!TiMK82%t(#v1VYfzQ+y>@tcdnvLn2?AYHS4rU(?hx-CL zh+6~g0{TEO0rDp(kRT{#WDitEA5$*qKg9I=-^`dSHrynQ&xd`}5yw7Dvy}lek_YB` zJ;}%(ZpxwpIEwD_i%m~Lw**aHKGEdZd9%Z3^aI(Wq%-FjryrG#*4TCcgJ@Z<W8E7P zw#?@YlHb_!?0Pfs(Pbw4C6zq_?i}yB^HXDvCNwKc_4RhG{h8T?$u=Z??NQRhczDCk z(o^)HoiuE%Wv>$Y!bsS!gs1(e9@ESWUy_y@e`lKhm^%j}fF5|dURnReCU;EsU^E`< znAW^ABh4)pEzwAexlJS0O%?UgNL58kg=(%{k`T|2wiscgDcX!@vZjbyR8hAOD@nAu zB~sf^6}?j7QE#L!+Mp^cV3rU4nCIDzHdj_Gh(^33rrOHJhL)zrI#j%{p}BT`L$oT4 z<*P}Z8<{@4?5tBGXP2FFraJBH^TVeccU;)4IpL!EhN9}aisqV=CXpM9nlG<iP&9Ah ze5C3t7oLRG>F99L{3F9fGogSb=p-zFC|y)-t0-a>ZhBsAOLc9uuBsVAXjQh<HZ~MB zM@>u_J>jMoR8(FL%S{U_Taepa)7aEf6m3{o->m8y8|H^?Jz@TsV|(cJT^Z$GHH_mt z7bZu<^IO94i)&kIyrELljxWFb^2^Jo)iy7vtGFsswx}s`RJm8MvMCyED4!OEPn7Hu zW~;ygZ4_wE8@!a3nzkR<fraQriJci3cPW~%WINb$)q<$ke`AAvk2X}vq>%A+r<cr$ zMBmJ$ia0$qHF#6;z&ea;IaAEc<9sukn6Jr6bcQ#HlAZQubo7cyLnCKzlby2av{Ozw zK0L1Mg4vOh2qr@WGcIzT-AW@z6(3W4WMtB@$Ce!C%|UFxe4@Z#{%{8_E6ff1?!bPQ zcrt;!Fs^S(^Tgri^W@>Cc>;0MJc+nzo=6f;@xVNpl!g3lzOqo@T7Ow6V@04W6ud5@ zER=bDuq>3dGP5j{y(+6L)Ms^eSt#d*K4qcYH92LWzBlHUg+golmWBGQ3zdcP;{D1( z{oC`(LiwBfmxTsw$)6e;GPUmr(;rl00#84vYc1<q$GYOIt36|`mu)_IGJ?(u>Rd;i z>#4Jn?ODb4tY&*|V0+fEJvXvFYuTQ4Y)_o+X=i&jvprkTo&jvdfdSPdLO^}AKal|V zu|B%NFXuoj^FxDApzP@nPx$xq;m}D|0qNo3DNcHHf(ak(pMcL~E$Q_K)QO_cM_BS> zg-F=G#FH^2^IDV0M!r3FdNO~?3}E@h6E7*Bc<3eR#G@`rr+zE+t3jS&`Sg3gXe4BQ z@5crwO>ZQFUmcW8fc)y<v~)pQdSqHU)ti2GXj*=uI!z>D#Q7?qE=WlSRaDX(!+eb9 zVoCFU%7_1Mlr-<BeE9FjlIH!C5C1(QX?i*zzxM8sH1DT;)n9!iX-2%~_eq-fK)xEF zvSjc%-}B+mp~=bM{YJ}G3=3~0a_+3i>5+&BGd!4m>S+dA>K9;7oo{$aw5d@NW&!jT zY7Y-we4X3_H&-sLDJ$pKt*A!+EemmKcIukyuG)!hKgFoK@S9aQ5~*rL;}%@y9W%_G z>BAs!hVh;Z%GBhzWD4_HEp@mKVtAAfKz-gtR-a{4^r1t2%6)iR%y|*O#oxlXo)}wT z+UEFDJ`geOl1Cw?eIITu+cq+FO<6E)LRI;}M<Qmh?O{7@dsuHi3nI|2AC+<*@gmdC zcw9d4M8w4+55UM|k(VImT&8{>$hp2yzZ5a=0m}0rpC<Ct5l<KSV8~~Pd=}!fMLq)Z zxgxJZJWu2sFqc=0`~k!r!W$6dwHs5{BIs-q`5lOFb@+BL+jA{+?h~f|W5ORI?#9LT zzkv8zho1-AvOOaI6XJIr`3J&3h0TwJze2oEn04`09NN!CJQ!F0SY#rcDDtxrmr~9F zM3@0)y(~K$7t4}6gf}2wkBd52L!bLTbsj?efN(eBCvj0H4BtL0@>dbRBK$7m9$eJ< z6!AV>c5e7k#+J=;IOOm^hle{1bBVdfd2Hw2U~oP&5xDmGkr_tJIp+f(j(8j{%Ja|` z&OORG-zGb3<{spOp=0JAxD@$j?tw=@Zss01G55fuAg_j=_5UKW{CYz_=HuRBxDJ=q z;XJcCw}RQWR}kNci)|zS5|`EI9J2bq7oB?$zw5~NILx<YXmbo=zV2apxWi$GgD9)z zry$<@dW2H9A?7Yieha!>s>qLkhmpBxAaG~XvR(2Xr_M_lw@JbUVET}9`hfQ-`AgV2 zSNJ~YTqMkST45RT8ez_tdSULy*9yM|IqzlKtOCb{*CXC2TnG7G!q0)}Tk7uy)3;>q zuWt!oiZ*;9{3&!Yk*3Z?;6cJG5#yCIBj>!BEc`3zoFL5Cl}d%7V(vlO84I27Q{IPC zr7ji@gKI^f^Rt;e6oAkw@(&Q-K;}RptP>7{w}=kQ{)CLOY}-8|=b7SRvdqt433Gg& z6CLt4GRm$5^WJ8g=Yn?$)8@yb!#T_6SJXKMG1q7<YYy*a@)+oh5*_wqJQ?=ignW|7 zS?>uV9|@hQBEJdoS!B77&JpJQ8WA1ZtR=(d72pPu)8>^T{{r$ABEJgp8gd>K5aPmz zfPW}DCE%ZuVUumRSLB6|KTMV*D94-3q2$~mXMs5{we0VIAj3Z#pAX2gUhNT{fp{+& zb#){DI~n?HLzdr@zlgXm8FKb_h{#t2;9ueAz(<JAOq4xZ<T)8i9WU~^kWUl&Igp<r z@+VQ}xgy^P`8?q#!1G0i{=7oud}nB>Z~zNP8yWrL8naP&8u)JEzk^>Uqy6;98)P}Q zzavcF{*eqn91WX)6@B*iGm$TaJcxc$=OJ(o88+G9K_dT8$cKx3F64zG=kHpFiJbjC zO5_(nUP4BDxU7ATEMvDu^m)r{Bx7A=xLKIz<6FpR&l=eIndr044~qO6Oo-nIpMdAV z94Fi6Z6aR>`KuzI3;R7H|0Cpo7CGCzTjYmf!hI#&2-X-6+MI^69B;Pgb;$EX&aoRV z@*I3=J4|>6xR{K7T?U=AgqMI93%7#f!mGje3U30xCj2<~W8vR{2V)Fq^Dp31;l1Gb zWVDm#j%Kp>d5Ors4;_v%b;t~MokVvHqig1zN;#QBLgv`<9=1G6n6hGrj}#6groZf3 zdb%)ep6Bo!VcMVPaJ4Y)H#y8R0Bwd5a}BlY?Hb`Rh&vrN`xGV^$LLOxBl7kv$hk~C zB69L$!dwHNb@&Bg+If>K>u`@ST%>k7{J!vD#2-8SsW65BMm#%Yo;hige&tKOmiq~_ zUtGH>=a?KSOutQZ*zA?ip-rw4)F+=V90s4~@El>*%k|yv1q+3-?5LQ-D}-5ZyTe_= ztm`(1e=N-Q-|w*5E3xm4gZycclmA_q^JtsH{~<gX@;^BIXJL*P_aV052j;8RWcuIi zp~B{O5-{iCP$*J|%<nT~_G`4mJWo(Q3i1gKA0=D}x!F&lL!K^j_Sf#MWV^Q(gD(^v z@+HC(!DerT9deV%=?CtqYy+8Z;F9SFv*!x05;^_AJ=N~Nn}vgrn>`nkocwc<^Zw$# zX!p%$gb|suCgtR9BIi2sy2Eb^)8<Zx-xtn;-0Z)wL;hUkyk9i;9mvUiFO|%rSIFUf zVN7Fnki!MSyl2NbJYE>4ygeE~K2GGkccwZ#U6}J^ro(2xMnTSva*>ng3Ui*+I$STz z`M=2FCBpQx-N(t-i#!aDJG@?a6y$h8(fEXXn=t1R-%6*i$oB{z4t~_(Ukmg6!}AUG z8MX>v4L0Wl$jRoM0OoUpouWg2UpNRh=LG1GzZ5y2CuCq!m~jN-r#Hj7U~^`GK6#kP zd4?VB@L1t|$jzAn`s8Cp&gTzh4xcK_d-oiN&ll!>9C5f(_z=h&9c~t;e|XNb{#hkV zpL99=17Z5)Hiv&K9ESXUhaVQEeRC#3zZhN=Iqh$E82>eA+Cck%cKAJE+W(uwUkKB_ zIg^NeyzOl4(EdRV7YNh-5e`ofru`Efo+3>9Jj+`DoG)Ar`xOpHg=zl^hZhRde$3$& z!nDsbv9*7*@MOq;;_%&$KF`h6e++B<)56{07lq#hZx!Y<6LXG&KA)MqC33ct=WN>H zbDqBmF9P$-O?f%`m?cbq^0j!%uZ7M);nm=S9UdvX0dk(R?K%87VN|Q8Iy_w%!>MLE ze6BDeRqpUyVXmdM4%Z78LT=7@a{gZ~a;|S{9qth3^M)Tfe7i91@H>EQ|1X8nef5mP z&kNJeD-Q1vrX7A~uy#Ha=DNMl;lB&hP9L20sZS0G(+<C5SUZKn+!rP~JXx4)Y^lT3 zglUK0NvxfVgt_ljJA9e&D99H%yhNCG_?^UlXNe1Qe1G8Z7U2NocRGBRFuJWCbofzW zj&HZa&j@p`e97T$!fgNR4!<o-|Lk=5ePQ~4ufv}UbA0*VdF&UN|BXlHz8P{jUzqdi zAcqTtxmS*Jc)T$8&7&PYPIv_5Qyrcz%yFFQ@VUZa$jcp`E6j1Jb+}%b-zE87(T-P4 z_yXwP=y1F6U65~a_%`8tApeEK_Y3p+=dT@pN|?_GUvzk@@L<SabNDS`e#d{$;lB#= z8R=&Ze<>V>Jd^K1VSvav!hCi*$l+nad~SKD!-omeKm7h|{WC>)9{PKx!!w2Hhl?GK z2-6R>4%Z8_-m4tGMws>T`?;;RQ@9rPZ*llX!mRgRhaVJXy-zs&v@q*^$>D9nte4;a zZM{2%YhnKrhd&dheLrqK>XS2tX@7vjLxgFc&k?NsBH`Jvf1JZ73Df2o4xc4V`xiQV zi7@S(XA@}8?XcM_a{A}r99|~;2;^%Vjtl<|@+}VECj1KI_XzI*KOp=U@M8`?DZCf* zXB~b)nEm3j68hnD=)5h=@4Gu4eqWf+*FSUkOJUmKvlZImJ>E}vIe3V}2MM#yqZ}S1 z%=Q;KJV}`LOB_B?nEvN;99!=!;X2s4(BVsjX{XlVdSTk(TCcfaB5?iXvlIq&Nrk~- z#9TM+GZU_fVJz&F^Rmx6*nj>P%gKnxQ69nv!gyR^@EF7saq)X1!(?3i-<D$#m*BGB z4Ns&T4KaHq<?`Hh8s+lb^>oU)5g^RK6$bOnHVbU`(DNwAe$95xp`0B;D905BbFMPj z{sx4@h_Q?%`irh6p6wX_@WCJg&9U$7uknxcm;Pbj+21f(`pb5Z*<a%y8bhFe*mw4K zB3b%7S(w9N{3HFPf7o~Sx0EbrD*A`adW?Uhzw{6L&i=klmht8J(vIozWa-yDvh?M4 zvb3MS-`FuKMBTQX<{7@UZ8g7tNqc@mmNx7{y#-S5hr;ytUSX>36Xss5P#5*-6W){L zFqr#O0S5$udk>j*xUZ0DXPhwY6bsYNk-}jxpFtI%zvzbX3z^NECGt_=3xqk27YUyX zt|P-gEZZc^dx-xqPB~q-RG4nzxtwygZM87xNL)A!=DD0Ytap<z>-_~8{%2he3Uk`< zcO1%j+dd`CImqW!l(X+I3ezT^Sy9fpv0a$<`8yxw#o#{*a}K^Id?a|c@MQ2O!kokW zzFmOEux+`*^dY||Q_jBg`!Jd9;dfv%$AZtS3S^%1nH8C3`JAc%1rG=F*%Wyq_+nw+ z2T|ctaHBBi`x0T^-!b88@Jiv!z-xsUfY%GRfHw(W4Zc-)E%;914dDBQH-mpEd<U4% z=-JMPz|ROj4&EyK8}O^bFM!_^{uB6J;Sa&Pg!h6!6#fd#=Tx*GgzxtWXMq*&FUolz z<7H^WT+efbPX_Zj6?M)A4;AKf)<c9Bf%%+@I-IA)!kmwMHbwbQ!KK0vf%$BT^2fk4 zguB7Bg`Wq{5q=eXsW89)RtdigzD$_ED=rZJ6uelN--Y>m6YC0tmkV><>mp;F$$}eh z7UmqgMVRya0rEg^&Oaf{dG(wy=hZf0&MQ85qJAm(UE$f_UBYw09}3rj_X;lo?-O1Q z=7K~!Yk>USio6M&Cwx1Yzg1CwADF*Yk)H$?3;zy0S@;$3@xnX6rNVo`(}jKT+YI48 z;Mv05_vZ+6Zj=jiFW`Ei<u$hv<UaU72=f9n9*4{7j3;A_WuWiu8GydCIwz84A1S2{ zm}@5QPpdP79Kr{}EL`?%Fb8aP%E?%l80O-#=Y$%t)u|)r;R9g-E_-IU5^Qy@Cd)e0 zN*!5eRysOs$e3dcaa{H+LH}AipOa-@`-(cU&+;8PtHb@s?ss8u;*3$;d{uo*#XMDv z_pH6R#!^f4$`(~@ULz}>*W9d%o1%3U#grDOy(gER!<X2+SLV`lQr@0R&phBox^#tJ z-cokjlltnM`?6fRom9;OI+n<G-je=069*Lb+UR+WpW-XN_b<9td}AChY*#nJyM`;~ z&1;G-O3AKktV~H)G*vXrkJ>@-iuEF@t8G9vUN**26<0Ra*GKV=xYvF!!+V7rGv&Jl zzD|QFW6t6%F_|AuU>?IrTx2XaCVZXVSmb8m`Zm2u&`Ga144DnK-tiD%=`d>}^Ga}d zn22~BF3Nf3;yM$TYwtXy!?<j)_NGJN+N*Kw1tpL6qPSdpEl6`cvBBD#3xR9zCfH+n zwvT?W?c@6F+Is+Ls3wB7cMT-2y*r%tahbICegt;y?LeAmBO9!}A41^Td&RNGc3OK+ zgI#<4-g$^MCV5Q0FC1h7VLbF?`8H|VVE79zx849IMj>SM3zt`0FZT?VvG$HZg8Qru z)?Nm{wKop-=0K13xXfC6Ja@B<wa2}i_1a+V9hPRV^{{07xZGNMr={7u6ZW`=*<f*M zn!P(<uLLr-kFOnAdzV1QGWP!1gA9BnP6XyLnD?<fG@oBWZ-wm?Bv!8hK-;B83unB; zmD&tF);koJt#=vpY#FMyqSEz_z#`w3uuQ#y*hiN-4YYYT0^EA9#0|Xw1HpQ^rr3IK zPqWv7M%B=;1Z$7)E4lV|O~pGW(4jpZ6|B8S((LVny*Xlwk+sL))?IslIz_2H$frHN zQE%=2HqG8_JY=t6rUYy6nKXN^Ov8OHejW*3YtQ^Hk2KdPh6mAjpB-$ZX^&SAJ{ViQ zhr>#7O|-%4eJFZXzANl~-?M4kRDN$Fmr6#@_uyy9*xy5O+4k{Xahjt}pW(e9DaA~i j$gCf?S0c<Eg)<`rnAQpZ<$<$tx%To<*;p2qVDY~JrjNek diff --git a/hdlc_screen/Debug/hdlc_screen.eep b/hdlc_screen/Debug/hdlc_screen.eep deleted file mode 100644 index 7c166a1..0000000 --- a/hdlc_screen/Debug/hdlc_screen.eep +++ /dev/null @@ -1 +0,0 @@ -:00000001FF diff --git a/hdlc_screen/Debug/hdlc_screen.elf b/hdlc_screen/Debug/hdlc_screen.elf deleted file mode 100644 index a459b27cd879dc89e90374c3bde8404e186c9b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61776 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 diff --git a/hdlc_screen/Debug/hdlc_screen.hex b/hdlc_screen/Debug/hdlc_screen.hex deleted file mode 100644 index bbba2b5..0000000 --- a/hdlc_screen/Debug/hdlc_screen.hex +++ /dev/null @@ -1,508 +0,0 @@ -:100000000C9434000C9451000C9451000C94510049 -:100010000C9451000C9451000C9451000C9451001C -:100020000C9451000C9451000C9451000C9451000C -:100030000C9451000C9451000C9451000C945100FC -:100040000C9451000C9451000C94100B0C94510022 -:100050000C94420B0C9451000C9451000C945100E0 -:100060000C9451000C94510011241FBECFEFD8E026 -:10007000DEBFCDBF13E0A0E0B1E0E2E5FDE102C0EC -:1000800005900D92A234B107D9F723E0A2E4B3E0C2 -:1000900001C01D92A639B207E1F70E9426070C9411 -:1000A000A70E0C940000FC0181E0808372836183C1 -:1000B000709344036093430384E1838314828FEF3E -:1000C0009FEF9683858390878783928781871486A5 -:1000D0001386168615860895FC0183E08083808947 -:1000E000887F808B81E0878713820895FC0180815F -:1000F000823089F485E080834134510578F4828927 -:10010000887F828B118A748B638B568B458B13820D -:1001100080E090E008958CEF9FEF08958FEF9FEFC0 -:100120000895CF92DF92EF92FF920F931F93CF9398 -:10013000DF9300D0CDB7DEB77C016B015A834983D2 -:10014000FC0180818530D1F44589568963897489A1 -:100150008E010F5F1F4F9601C70141960E94480311 -:10016000992364F49F938F9380E091E09F938F9302 -:100170000E94990B0F900F900F900F90F7018081C4 -:100180008330D1F48E010F5F1F4F960140E050E0A5 -:1001900060E070E0C7010F960E944803992364F461 -:1001A0009F938F9380E091E09F938F930E94990B90 -:1001B0000F900F900F900F90F70180818430D1F451 -:1001C0008E010F5F1F4F960140E050E060E070E04D -:1001D000C70147960E944803992364F49F938F9325 -:1001E00080E091E09F938F930E94990B0F900F9066 -:1001F0000F900F9080E090E00F900F90DF91CF91E3 -:100200001F910F91FF90EF90DF90CF9008952F9264 -:100210003F924F925F926F927F928F929F92AF9296 -:10022000BF92CF92DF92EF92FF920F931F93CF93E3 -:10023000DF9300D000D0CDB7DEB75C015C834B8389 -:10024000222E332E38018DB69EB6C42ED52E8DB7F4 -:100250009EB78C199D090FB6F8949EBF0FBE8DBF37 -:10026000EDB7FEB731962F01CE0103967C018F01C9 -:100270009601AB01BE016F5F7F4FC50104960E94DE -:10028000220299230CF448C08A81877090E0F5011E -:10029000238130E08217930751F084E08083808DC2 -:1002A000887F808F82E0878B8AEF9FEF35C08981BE -:1002B000813049F018F08230D9F025C0F2E0CF1A31 -:1002C000D10829F40EC082E0F50180831CC0F20140 -:1002D000A22DB32D4C0C5D1C81918D93E415F50579 -:1002E000D9F7F301D182C08286E0F50180830BC08B -:1002F00084E0F5018083808D887F808F82E0878B0A -:100300008AEF9FEF09C08091430390914403F50168 -:100310009283818380E090E00FB6F8949EBE0FBE7A -:100320008DBE0F900F900F900F90DF91CF911F9186 -:100330000F91FF90EF90DF90CF90BF90AF909F9084 -:100340008F907F906F905F904F903F902F90089587 -:10035000FC0121813281261B370B32832183121647 -:1003600013061CF480E090E008958BEF9FEF089552 -:10037000FC01E627FF27EE0FFF1FEA5EFE4F892FE5 -:10038000992720813181822793270895FA0193E8E4 -:10039000980F923070F420813181A9014F5F5F4F37 -:1003A00051834083DB01A20FB31F9DE79C9390E232 -:1003B000892720813181A9014F5F5F4F518340839D -:1003C000FB01E20FF31F80830895982F80FF0BC07D -:1003D00086958695837011F082E001C081E0929548 -:1003E0009695977003C09695977080E097700895E2 -:1003F000FC019081913049F018F0923061F011C009 -:1004000081818770880F8061089581818295880F2E -:10041000807E8160089581818295880F807E8960C9 -:10042000089580E00895FC018FEF9FEF9283818310 -:100430009683858394838383128611861086178220 -:10044000108208953F924F925F926F927F928F92A7 -:100450009F92AF92BF92CF92DF92EF92FF920F9353 -:100460001F93CF93DF9300D000D0CDB7DEB70097B6 -:1004700009F4EAC06115710509F4E9C04115510597 -:1004800009F4E8C00115110509F4E7C0E114F1040D -:1004900009F4E6C0380149017A8369839C838B8320 -:1004A0002115310509F499C08A01C12CD12C689419 -:1004B000442445F833243394590121E0A21AB108A9 -:1004C000AB81BC8113968D919C91149799239CF4D8 -:1004D000F80180818E3709F070C0CA14DB0420F463 -:1004E00081818E3709F470C0EB81FC818781908512 -:1004F0009483838362C0F80150802EE7521219C0A2 -:10050000CA14DB0420F421812E3709F45DC0AB81CD -:10051000BC8117962D913C911897AC014F5F5F4FAE -:100520004217530709F450C016963C932E93159723 -:100530005DC0BDE75B1204C0EB81FC8130823DC031 -:10054000AB81BC818C91882319F01C92508054247B -:10055000652DEB81FC81818192810E94B801AB8184 -:10056000BC8112969C938E93119717962D913C9176 -:10057000189713968D919C91149702962817390716 -:1005800041F4852D0E94E501E981FA819183808300 -:1005900014C0821793078CF4AB81BC8119968D919E -:1005A0009C911A979C012F5F3F4F1A963C932E9374 -:1005B0001997F301E80FF91F5082EB81FC818781C5 -:1005C0009085019690878783FFEFCF1ADF0A0F5F30 -:1005D0001F4F8C149D0409F073CFAB81BC8113961F -:1005E0008D919C91149799233CF06401EB81FC81DF -:1005F00025813681332334F4D7011D921C928EE07D -:1006000092ED30C00496281739073CF0EB81FC814D -:1006100081819281883B904F31F0D701CD92DC925D -:100620000EE012ED0AC0EB81FC8181859285029774 -:10063000D7018D939C930C2D1D2D8B819C810E9445 -:100640001302802F912F0EC08EE092ED0BC08EE032 -:1006500092ED08C08EE092ED05C08EE092ED02C0F2 -:100660008EE092ED0F900F900F900F90DF91CF9151 -:100670001F910F91FF90EF90DF90CF90BF90AF90C0 -:100680009F908F907F906F905F904F903F900895D4 -:100690005F926F927F928F929F92AF92BF92CF9212 -:1006A000DF92EF92FF920F931F93CF93DF9300D0CF -:1006B000CDB7DEB7009709F473C06115710521F459 -:1006C0004115510509F06FC02115310509F46EC0BF -:1006D0000115110509F46DC0380179015A014B016A -:1006E0008C0181E090E09A8389838EE7F901808311 -:1006F0006FEF8FEF9FEF0E94B8016C01AE014F5F6B -:100700005F4FB7018FEF0E94C601C8010E94F80138 -:10071000582E682FC6010E94B8016C01AE014F5FD0 -:100720005F4FB701852D0E94C601F80180818111BC -:1007300019C0A114B104B1F084018A0C9B1C5801AA -:10074000F80161918F01C6010E94B8016C01AE01F0 -:100750004F5F5F4FB701F50180810E94C60180168F -:10076000910669F7C094D094AE014F5F5F4FB70117 -:100770008C2D0E94C601AE014F5F5F4FB7018D2DDA -:100780000E94C60189819A81F701E80FF91F2EE7BF -:1007900020830196F3019183808380E090E00BC079 -:1007A0008EE092ED08C08EE092ED05C08EE092EDF5 -:1007B00002C08EE092ED0F900F90DF91CF911F91CC -:1007C0000F91FF90EF90DF90CF90BF90AF909F90F0 -:1007D0008F907F906F905F900895CF93882331F032 -:1007E0008091420381608093420305C0809142035F -:1007F0008E7F809342038091420382608093420304 -:100800006091420380E00E94950662E080E00E94D1 -:10081000D60600C064E080E00E948106C82F62E036 -:1008200080E00E94DA0600C062E080E00E94D60606 -:1008300000C064E080E00E948106C295C07F8F7096 -:10084000C82B62E080E00E94DA068C2FCF910895D9 -:1008500080E00E94ED038823DCF300C080E00E946A -:10086000ED03089562E080E00E94D60600C062E0D9 -:1008700080E00E94DA060895CF93C82F662331F0F6 -:100880008091420381608093420305C080914203BE -:100890008E7F80934203809142038D7F8093420339 -:1008A0006091420380E00E949506809142038F7719 -:1008B00080934203809142038F7B80934203809117 -:1008C00042038F7D80934203809142038F7E809309 -:1008D0004203CC232CF4809142038068809342032E -:1008E000C6FF05C080914203806480934203C5FF28 -:1008F00005C080914203806280934203C4FF05C01B -:10090000809142038061809342036091420380E0C2 -:100910000E9495060E943204809142038F77809353 -:100920004203809142038F7B809342038091420374 -:100930008F7D80934203809142038F7E8093420398 -:10094000C3FF05C080914203806880934203C2FFC9 -:1009500005C080914203806480934203C1FF05C0BB -:1009600080914203806280934203C0FF05C0809162 -:1009700042038061809342036091420380E00E94C1 -:1009800095060E9432048091420380618093420365 -:10099000809142038062809342038091420380648D -:1009A0008093420380914203806880934203609168 -:1009B000420380E00E949506CF910895CF93C82FFF -:1009C0000E94280460E08C2F0E943C04CF9108957F -:1009D000611104C080580E94DE04089580540E9472 -:1009E000DE04089581E00E94DE040895882331F03A -:1009F00080914203877F8093420305C08091420328 -:100A00008860809342036091420380E00E949506D3 -:100A1000089582E00E94DE040895CF93C82F0E94BB -:100A20002804CA3049F4803410F080E001C080E42A -:100A300080580E94DE0413C0803129F460E080EC0D -:100A40000E943C0406C0803521F460E080E80E94EA -:100A50003C040E94280461E08C2F0E943C04CF914A -:100A60000895CF93DF93EC012196FC0180818823C8 -:100A700029F00E940D0589918111FBCFDF91CF9163 -:100A800008951F93CF93DF93182F0E94780610923A -:100A900042036091420380E00E94950680EA9FE055 -:100AA0000197F1F780914203806280934203809125 -:100AB00042038061809342036091420380E00E9480 -:100AC00095060E94320480EE94E00197F1F70E94AF -:100AD0003204C0E1D0E0CE010197F1F70E94320468 -:100AE000CE010197F1F7809142038F7E80934203FC -:100AF0006091420380E00E9495060E943204219793 -:100B0000F1F788E20E94DE0488E00E94DE040E9481 -:100B1000F20486E00E94DE04812F0E94DE04DF9151 -:100B2000CF911F9108958DE00E9441050E94090513 -:100B300080E00E94F6040895CF92DF92EF92FF9238 -:100B40000F931F93CF93DF938C017B01C901F801B1 -:100B500001900020E9F73197BF01601B710B0E94E3 -:100B6000760B670120E1C20ED11CE7019C012E1912 -:100B70003F09F80101900020E9F73197BF01601BA0 -:100B8000710BC9018C0F9D1F0E94760BF801E80FB5 -:100B9000F91F80818993CC15DD0559F7F701108A7B -:100BA000DF91CF911F910F91FF90EF90DF90CF9049 -:100BB0000895AF92BF92CF92DF92EF92FF920F9380 -:100BC0001F931F930F93FF92EF925F934F933F9367 -:100BD0002F939F938F937F936F9386E193E09F93DF -:100BE0008F93BF92AF92DF92CF920E94AF0B8DB7DF -:100BF0009EB742960FB6F8949EBF0FBE8DBF1F9151 -:100C00000F91FF90EF90DF90CF90BF90AF9008953D -:100C10006F927F92AF92BF92CF92DF92EF92FF924C -:100C20000F931F93CF93DF93CDB7DEB7C254D10993 -:100C30000FB6F894DEBF0FBECDBF3C012091490333 -:100C400030914A0341E150E0BE016F5F7F4F0E9447 -:100C50009C05F301E85BFF4FE080F1800281138186 -:100C60003497208131814281538134976081718131 -:100C7000828193810F2EF1E1AF2EB12CF02DFE0178 -:100C800072966F010E94D90540E150E0BE016F5F8E -:100C90007F4FCE0183960E948A0B40E150E0B6015F -:100CA000CE01C3960E948A0B60E080E00E94E804B7 -:100CB000CE0183960E94310561E080E00E94E80445 -:100CC000CE01C3960E943105CE5BDF4F0FB6F8947C -:100CD000DEBF0FBECDBFDF91CF911F910F91FF906F -:100CE000EF90DF90CF90BF90AF907F906F9008957E -:100CF0000E94DE0683E08A95F1F7000010924B0314 -:100D0000089581110EC0683070F480914B03082E55 -:100D1000000C990B02C0959587956A95E2F7817052 -:100D200008958FEF08958FEF0895CF9381110DC02F -:100D3000C62F60934B038EE40E94E4068C2F0E9422 -:100D400014070E940B0780E001C08FEFCF91089538 -:100D5000CF93DF93811124C0683020F580914B033D -:100D6000442349F0C1E0D0E002C0CC0FDD1F6A95FA -:100D7000E2F7C82B09C0C1E0D0E002C0CC0FDD1FF4 -:100D80006A95E2F7C095C823C0934B038EE40E9496 -:100D9000E4068C2F0E9414070E940B0780E003C01A -:100DA0008FEF01C08FEFDF91CF91089541E00E9456 -:100DB000A806089540E00E94A80608951092B90080 -:100DC0008DEF8093B800089594EA9093BC00ECEB0B -:100DD000F0E090819923ECF79091B900987F9830DA -:100DE00011F09031A1F48093BB0084E88093BC00A3 -:100DF000ECEBF0E080818823ECF79091B900987FCC -:100E0000983139F081E0903429F480E0089581E050 -:100E1000089580E0089584E98093BC00ECEBF0E055 -:100E2000808184FDFDCF08958093BB0084E880938A -:100E3000BC00ECEBF0E080818823ECF79091B900E6 -:100E4000987F81E0983209F480E008954F925F9294 -:100E50006F927F928F929F92AF92BF92CF92DF92CA -:100E6000EF92FF920F931F93CF93DF93CDB7DEB72F -:100E7000C350D2400FB6F894DEBF0FBECDBF0E9464 -:100E800093050E949E0A68EC70E0CE0101960E94D4 -:100E90005300CE0101960E946C004AE050E0BE0172 -:100EA000665E7F4FCE0101960E9491006AE070E07D -:100EB000CE014A960E94AA0A64E170E0CE018051F8 -:100EC0009E4F0E94CE0A61E070E0CE0101960E9422 -:100ED000A801059681F44AE050E0BE01665E7F4FAE -:100EE000CE0101960E9491006AE070E0CE014A9620 -:100EF0000E94AA0AE1CF00E010E020E030E044E1E7 -:100F000050E0BE0160517E4FCE0101960E94070164 -:100F10008C019923ACF40A3F8FEF1807B1F444E138 -:100F200050E0BE01605A7E4FCE0101960E949100B2 -:100F300064E170E0CE01805A9E4F0E94AA0A05C06B -:100F40008981823009F0B8CF03C0802F912FFEC075 -:100F500084EA90E7ADE9BFE38CA39DA3AEA3BFA352 -:100F60008DEC9CECA0EBB1E488A799A7AAA7BBA73E -:100F700080E090E0A8ECB2E48CA79DA7AEA7BFA745 -:100F800083E090E099AB88AB85E293E09BAB8AABC2 -:100F900082E090E09DAB8CAB2E01E6E74E0E511C3B -:100FA0005F924F923E01F6E36F0E711C7F926F923B -:100FB0008CA09DA0AEA0BFA0C8A4D9A4EAA4FBA405 -:100FC0000CA51DA52EA53FA548A959A96AA97BA9CD -:100FD0008CA99DA90E945C09F20140815181B30155 -:100FE000CE0101960E94760048E450E0BE016858A8 -:100FF0007F4FCE0101960E94910068E470E0CE011F -:1010000088589F4F0E94AA0A0F900F900F900F9040 -:1010100060E970E0CE01805A9E4F0E94CE0A61E0E6 -:1010200070E0CE0101960E94A801059689F448E47B -:1010300050E0BE0168587F4FCE0101960E9491009A -:1010400068E470E0CE0188589F4F0E94AA0AE0CF62 -:101050008E0113959E0120543F4F40E950E0BE01A0 -:10106000605A7E4FCE0101960E9407018C019923A0 -:101070009CF40696B1F444E150E0BE0160517E4F0D -:10108000CE0101960E94910064E170E0CE01805192 -:101090009E4F0E94AA0A05C08981863009F0B8CF08 -:1010A00003C0802F912F52C0C050DF4F68817981DB -:1010B000C050D140AE014E5F5E4FCE0180549F4F75 -:1010C0000E94BE08CE5FDE4F88819981AA81BB81D4 -:1010D000C250D140CC5ADE4F88839983AA83BB8308 -:1010E000C455D140CA5FDE4F88819981AA81BB81F6 -:1010F000C650D140C85ADE4F88839983AA83BB83E8 -:10110000C855D140C65FDE4F88819981AA81BB81D5 -:10111000CA50D140C45ADE4F88839983AA83BB83C7 -:10112000CC55D140C05FDE4F68817981C051D1403C -:101130004FE350E0CE018C5E9E4F0E948A0BCE01A1 -:101140008C5E9E4F0E94080680E090E0CD5FDD4FF0 -:101150000FB6F894DEBF0FBECDBFDF91CF911F91C8 -:101160000F91FF90EF90DF90CF90BF90AF909F9046 -:101170008F907F906F905F904F9008958F929F9285 -:10118000AF92BF92CF92DF92EF92FF920F931F9395 -:10119000CF93DF93CDB7DEB7C054D1090FB6F89423 -:1011A000DEBF0FBECDBF4B01672B09F46CC020E042 -:1011B00030E060E070E0A12CB12C6E01E5E0CE0ED5 -:1011C000D11CFE0131967F01FC01E20FF31F20814B -:1011D000211127C0DB011196A80FB91FFE0131961E -:1011E0002D912193EC15FD05D9F76C5F7F4FF5012B -:1011F000EE0FFF1FEE0FFF1FE40FF51F09811A818D -:101200002B813C810083118322833383FA0124855F -:1012100035852F5F3F4F3587248795012F5F3F4FDF -:101220005901FC01E60FF71F2081213021F59B01B8 -:101230002F5F3F4FFC01E20FF31FE081EE2399F097 -:101240006E5F7F4FDC01A60FB71FF701B9016F5F1B -:101250007F4F2D91219330E08F010E191F09021746 -:101260001307ACF301C0B90129813A81FA0137872C -:101270002687118A108A6F5F7F4F9B016815790559 -:1012800008F4A2CF02C0A12CB12CFA01B586A48625 -:10129000C05CDF4F0FB6F894DEBF0FBECDBFDF914D -:1012A000CF911F910F91FF90EF90DF90CF90BF9063 -:1012B000AF909F908F9008954F925F926F927F9220 -:1012C0008F929F92AF92BF92CF92DF92EF92FF9256 -:1012D0000F931F93CF93DF93CDB7DEB7C255D109DC -:1012E0000FB6F894DEBF0FBECDBF22968FAE229709 -:1012F00023969FAE23972496AFAE24972596BFAE34 -:1013000025972696CFAE26972796DFAE2797289665 -:10131000EFAE28972996FFAE29972A960FAF2A9706 -:101320002B961FAF2B972C962FAF2C972D963FAF58 -:101330002D972E964FAF2E972F965FAF2F976096D3 -:101340006FAF609761967FAF619762968FAF62973C -:1013500063969FAF6397A7960EAD1FADA7972F9685 -:10136000CEACDFAC2F9763966EAD7FAD6397C114A3 -:10137000D10409F466C07801CE018F5B9F4F5601FE -:10138000AA0CBB1CAA0CBB1CA80EB91EAE014B5F5D -:101390005F4FF7011192DC014D905D906D907D9053 -:1013A000CD0149825A826B827C82DE0111963D9189 -:1013B0003193A417B507D9F7B5E0EB0EF11C8A15E8 -:1013C0009B0539F79601220F331F220F331F2C0D77 -:1013D0003D1D6115710509F1D801A20FB31F81E010 -:1013E0008C93D9011196A00FB11F2E5F3F4F6C93C4 -:1013F00061968EAD9FAD61979A838983DE011196C8 -:10140000F801E20FF31F80E090E02F5F3F4F4D9116 -:101410004193019686179707C0F3A996EEADFFADED -:10142000A9973183208313C081E0F8018083618311 -:1014300061968EAD9FAD61979A83898322E030E0FB -:10144000DDCF6115710581F720E030E0E6CFCE5A9F -:10145000DF4F0FB6F894DEBF0FBECDBFDF91CF9147 -:101460001F910F91FF90EF90DF90CF90BF90AF90C2 -:101470009F908F907F906F905F904F900895FC01A8 -:1014800081E090E030A121A1321711F080E090E0DE -:101490000895FC0121A130E02F5F3F4F2F7130787C -:1014A000332334F421503109206E3F6F2F5F3F4FBB -:1014B000FC0140A150E081E090E02417350711F0D5 -:1014C00080E090E008951F93CF93DF93EC01162FF7 -:1014D0000E94490A892B81F489A190E0FE01E80F5E -:1014E000F91F108301968F719078992324F4019746 -:1014F000806E9F6F019689A3DF91CF911F91089510 -:10150000FC0120A181A12817B1F030E0DF01A20F7A -:10151000B31F4C9150E02F5F3F4F2F713078332332 -:1015200034F421503109206E3F6F2F5F3F4F20A3CD -:10153000842F952F08958FEF9FEF089588EF809364 -:10154000C10086E08093C2001092C50087E68093B8 -:10155000C40008950F931F93CF93DF936115710516 -:1015600099F08C01EC01060F171F8EE693E00E94A4 -:10157000490A892B49F4699170E08EE693E00E9454 -:10158000630AC017D10789F7E1ECF0E0808180643D -:101590008083DF91CF911F910F9108958F929F9239 -:1015A000AF92BF92CF92DF92EF92FF920F931F9371 -:1015B000CF93DF938B01EC01C12CD12C76014B0131 -:1015C000A12CB12C0AC08CE493E00E94800A89937C -:1015D0008FEFC81AD80AE80AF80A8CE493E00E9450 -:1015E0003F0A892B29F4C814D904EA04FB0458F3F0 -:1015F00020E030E00C151D052E053F0510F0C6015A -:1016000002C08FEF9FEFDF91CF911F910F91FF905D -:10161000EF90DF90CF90BF90AF909F908F90089504 -:101620001F920F920FB60F9211242F933F934F9357 -:101630005F936F937F938F939F93AF93BF93CF935A -:10164000EF93FF93C091C6008CE493E00E94490A97 -:10165000892B31F46C2F70E08CE493E00E94630AD4 -:10166000FF91EF91CF91BF91AF919F918F917F911A -:101670006F915F914F913F912F910F900FBE0F90FF -:101680001F9018951F920F920FB60F9211242F934F -:101690003F934F935F936F937F938F939F93AF93FA -:1016A000BF93EF93FF938EE693E00E943F0A892B4E -:1016B00039F48EE693E00E94800A8093C60005C04C -:1016C000E1ECF0E080818F7B8083FF91EF91BF910F -:1016D000AF919F918F917F916F915F914F913F91CA -:1016E0002F910F900FBE0F901F901895AA1BBB1B38 -:1016F00051E107C0AA1FBB1FA617B70710F0A61B12 -:10170000B70B881F991F5A95A9F780959095BC0132 -:10171000CD010895FB01DC014150504048F001909B -:101720000D920020C9F701C01D9241505040E0F7D2 -:101730000895A0E0B0E0EFE9FBE00C94800EAE016C -:101740004B5F5F4FFA0161917191AF0180919203FC -:10175000909193030E94DF0BE2E00C949C0EAEE0AC -:10176000B0E0E5EBFBE00C947E0E0D891E898F89BD -:10177000988D26E02C831A83098397FF02C080E0AE -:1017800090E801979E838D83AE01455E5F4F698D22 -:101790007A8DCE0101960E94DF0B4D815E8157FD4F -:1017A0000AC02F813885421753070CF49A01F801BB -:1017B000E20FF31F10822E96E4E00C949A0EABE039 -:1017C000B0E0E5EEFBE00C94700E6C017B018A0149 -:1017D000FC0117821682838181FFCCC1CE01019664 -:1017E0003C01F6019381F70193FD859193FF81916F -:1017F0007F01882309F4BAC1853239F493FD8591BC -:1018000093FF81917F01853229F4B60190E00E9417 -:10181000D60DE7CF912C212C312CFFE1F315D8F018 -:101820008B3279F038F4803279F08332A1F4232DB1 -:1018300020611DC08D3261F0803369F4232D216059 -:1018400016C0832D8260382EE32DE4603E2E2AC020 -:10185000F32DF8601DC037FC2DC020ED280F2A3075 -:1018600040F08E32B9F436FC81C1232D2064322E33 -:1018700019C036FE06C08AE0989E200D1124922ED3 -:1018800011C0EAE02E9E200D1124222EF32DF062CD -:101890003F2E08C08C3621F4832D8068382E02C07C -:1018A000883641F4F70193FD859193FF81917F0183 -:1018B0008111B3CF982F9F7D9554933028F40C5FFE -:1018C0001F4F9FE399830DC0833631F0833771F04A -:1018D000833509F059C021C0F801808189830E5FEA -:1018E0001F4F88248394912C530113C02801F2E0E8 -:1018F0004F0E511CF801A080B18036FE03C0692D47 -:1019000070E002C06FEF7FEFC5010E94CB0D4C016C -:101910008201F32DFF773F2E16C0280122E0420EF0 -:10192000511CF801A080B18036FE03C0692D70E023 -:1019300002C06FEF7FEFC5010E94C00D4C01F32D77 -:10194000F0683F2E820133FC1BC0822D90E0881688 -:101950009906B0F4B60180E290E00E94D60D2A9478 -:10196000F4CFF50137FC859137FE81915F01B60117 -:1019700090E00E94D60D21102A9421E0821A91084D -:101980008114910471F7E8C0843611F0893641F56D -:10199000F80137FE07C060817181828193810C5FFD -:1019A0001F4F08C060817181072E000C880B990BB6 -:1019B0000E5F1F4FF32DFF763F2E97FF09C09095C6 -:1019C0008095709561957F4F8F4F9F4FF0683F2EA8 -:1019D0002AE030E0A3010E94120E882E861845C02E -:1019E000853731F4232D2F7EB22E2AE030E025C03A -:1019F000932D997FB92E8F36C1F018F4883579F080 -:101A0000B5C0803719F0883721F0B0C0E92FE06108 -:101A1000BE2EB4FE0DC0FB2DF460BF2E09C034FEF7 -:101A20000AC0292F2660B22E06C028E030E005C08B -:101A300020E130E002C020E132E0F801B7FE07C04B -:101A400060817181828193810C5F1F4F06C060812C -:101A5000718180E090E00E5F1F4FA3010E94120E83 -:101A6000882E8618FB2DFF773F2E36FE0DC0232DC6 -:101A70002E7FA22E891458F434FE0BC032FC09C00C -:101A8000832D8E7EA82E05C0B82CA32C03C0B82CA5 -:101A900001C0B92CA4FE0FC0FE01E80DF11D80812C -:101AA000803321F49A2D997EA92E09C0A2FE06C08A -:101AB000B394B39404C08A2D867809F0B394A3FC40 -:101AC00011C0A0FE06C0B21488F4280C922C9B18FA -:101AD0000EC0B21460F4B60180E290E00E94D60D10 -:101AE000B394F7CFB21418F42B1802C0982C212C01 -:101AF000A4FE10C0B60180E390E00E94D60DA2FEC5 -:101B000017C0A1FC03C088E790E002C088E590E020 -:101B1000B6010CC08A2D867859F0A1FE02C08BE276 -:101B200001C080E2A7FC8DE2B60190E00E94D60DD4 -:101B3000891438F4B60180E390E00E94D60D9A949F -:101B4000F7CF8A94F301E80DF11D8081B60190E092 -:101B50000E94D60D8110F5CF222009F442CEB601A5 -:101B600080E290E00E94D60D2A94F6CFF60186819D -:101B7000978102C08FEF9FEF2B96E2E10C948C0EC1 -:101B8000FC010590615070400110D8F78095909548 -:101B90008E0F9F1F0895FC0161507040019001104D -:101BA000D8F7809590958E0F9F1F08950F931F93E0 -:101BB000CF93DF93FB01238121FD03C08FEF9FEFC4 -:101BC0002CC022FF16C046815781248135814217DF -:101BD000530744F4A081B1819D012F5F3F4F3183B2 -:101BE00020838C93268137812F5F3F4F3783268355 -:101BF00014C08B01EC01FB010084F185E02D0995F7 -:101C0000892BE1F6D80116968D919C911797019634 -:101C100017969C938E931697CE01DF91CF911F91CB -:101C20000F910895FA01AA27283051F1203181F14E -:101C3000E8946F936E7F6E5F7F4F8F4F9F4FAF4FD4 -:101C4000B1E03ED0B4E03CD0670F781F891F9A1FE7 -:101C5000A11D680F791F8A1F911DA11D6A0F711D9B -:101C6000811D911DA11D20D009F468943F912AE0A7 -:101C7000269F11243019305D3193DEF6CF0108958F -:101C8000462F4770405D4193B3E00FD0C9F7F6CFC0 -:101C9000462F4F70405D4A3318F0495D31FD405288 -:101CA000419302D0A9F7EACFB4E0A695979587951E -:101CB00077956795BA95C9F70097610571050895FD -:101CC0009B01AC010A2E06945795479537952795A9 -:101CD000BA95C9F7620F731F841F951FA01D089541 -:101CE0002F923F924F925F926F927F928F929F922C -:101CF000AF92BF92CF92DF92EF92FF920F931F931A -:101D0000CF93DF93CDB7DEB7CA1BDB0B0FB6F894CA -:101D1000DEBF0FBECDBF09942A88398848885F840A -:101D20006E847D848C849B84AA84B984C884DF807B -:101D3000EE80FD800C811B81AA81B981CE0FD11D5F -:101D40000FB6F894DEBF0FBECDBFED010895F89435 -:021D5000FFCFC3 -:101D520065727220696E206765745F6672616D6577 -:101D62003A2025640A000000891112239B3224467E -:101D7200AD573665BF74488CC19D5AAFD3BE6CCA8D -:101D8200E5DB7EE9F7F88110080193331A22A556A4 -:101D92002C47B7753E64C99C408DDBBF52AEEDDA6D -:101DA20064CBFFF976E802218B3010029913266783 -:101DB200AF763444BD554AADC3BC588ED19F6EEB4D -:101DC200E7FA7CC8F5D983310A2091121803A77764 -:101DD2002E66B5543C45CBBD42ACD99E508FEFFB2D -:101DE20066EAFDD874C904428D5316619F702004BF -:101DF200A9153227BB364CCEC5DF5EEDD7FC68880D -:101E0200E1997AABF3BA85520C4397711E60A11423 -:101E12002805B3373A26CDDE44CFDFFD56ECE998EC -:101E22006089FBBB72AA06638F7214409D51222502 -:101E3200AB343006B9174EEFC7FE5CCCD5DD6AA9CC -:101E4200E3B8788AF19B87730E6295501C41A335E3 -:101E52002A24B1163807CFFF46EEDDDC54CDEBB9AC -:101E620062A8F99A708B088481951AA793B62CC23E -:101E7200A5D33EE1B7F04008C919522BDB3A644EB4 -:101E8200ED5F766DFF7C899400859BB712A6ADD27B -:101E920024C3BFF136E0C1184809D33B5A2AE55E94 -:101EA2006C4FF77D7E6C0AA583B4188691972EE35A -:101EB200A7F23CC0B5D14229CB38500AD91B666F74 -:101EC200EF7E744CFD5D8BB502A499961087AFF33B -:101ED20026E2BDD034C1C3394A28D11A580BE77F54 -:101EE2006E6EF55C7C4D0CC685D71EE597F4288096 -:101EF200A1913AA3B3B2444ACD5B5669DF78600C34 -:101F0200E91D722FFB3E8DD604C79FF516E4A990FA -:101F12002081BBB332A2C55A4C4BD7795E68E11C13 -:101F2200680DF33F7A2E0EE787F61CC495D52AA1D9 -:101F3200A3B03882B193466BCF7A5448DD59622DF3 -:101F4200EB3C700EF91F8FF706E69DD414C5ABB1BA -:101F520022A0B9923083C77B4E6AD5585C49E33DD3 -:101F62006A2CF11E780F252E32662E252E32662E11 -:101F7200252E326600776F72642077617220696E57 -:101F8200206E657720776F726C6420696F206578A8 -:021F920000004D -:00000001FF diff --git a/hdlc_screen/Debug/hdlc_screen.lss b/hdlc_screen/Debug/hdlc_screen.lss deleted file mode 100644 index 6805628..0000000 --- a/hdlc_screen/Debug/hdlc_screen.lss +++ /dev/null @@ -1,4545 +0,0 @@ - -hdlc_screen.elf: file format elf32-avr - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .data 00000242 00800100 00001d52 00001de6 2**0 - CONTENTS, ALLOC, LOAD, DATA - 1 .text 00001d52 00000000 00000000 00000094 2**1 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .bss 00000054 00800342 00800342 00002028 2**0 - ALLOC - 3 .comment 0000008c 00000000 00000000 00002028 2**0 - CONTENTS, READONLY - 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000020b4 2**2 - CONTENTS, READONLY - 5 .debug_aranges 00000320 00000000 00000000 000020f4 2**0 - CONTENTS, READONLY, DEBUGGING - 6 .debug_info 0000378f 00000000 00000000 00002414 2**0 - CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00001589 00000000 00000000 00005ba3 2**0 - CONTENTS, READONLY, DEBUGGING -<<<<<<< HEAD - 8 .debug_line 00001c87 00000000 00000000 0000712c 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 000009a0 00000000 00000000 00008db4 2**2 - CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000cc5 00000000 00000000 00009754 2**0 - CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00002fe7 00000000 00000000 0000a419 2**0 - CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 000002e8 00000000 00000000 0000d400 2**0 -======= - 8 .debug_line 00001e37 00000000 00000000 0000712c 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 000009a0 00000000 00000000 00008f64 2**2 - CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000cc5 00000000 00000000 00009904 2**0 - CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00002fe7 00000000 00000000 0000a5c9 2**0 - CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 000002e8 00000000 00000000 0000d5b0 2**0 ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - CONTENTS, READONLY, DEBUGGING - -Disassembly of section .text: - -00000000 <__vectors>: - 0: 0c 94 34 00 jmp 0x68 ; 0x68 <__ctors_end> - 4: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 8: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 10: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 14: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 18: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 1c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 20: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 24: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 28: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 2c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 30: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 34: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 38: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 3c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 40: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 44: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 48: 0c 94 10 0b jmp 0x1620 ; 0x1620 <__vector_18> - 4c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 50: 0c 94 42 0b jmp 0x1684 ; 0x1684 <__vector_20> - 54: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 58: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 5c: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 60: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - 64: 0c 94 51 00 jmp 0xa2 ; 0xa2 <__bad_interrupt> - -00000068 <__ctors_end>: - 68: 11 24 eor r1, r1 - 6a: 1f be out 0x3f, r1 ; 63 - 6c: cf ef ldi r28, 0xFF ; 255 - 6e: d8 e0 ldi r29, 0x08 ; 8 - 70: de bf out 0x3e, r29 ; 62 - 72: cd bf out 0x3d, r28 ; 61 - -00000074 <__do_copy_data>: - 74: 13 e0 ldi r17, 0x03 ; 3 - 76: a0 e0 ldi r26, 0x00 ; 0 - 78: b1 e0 ldi r27, 0x01 ; 1 - 7a: e2 e5 ldi r30, 0x52 ; 82 - 7c: fd e1 ldi r31, 0x1D ; 29 - 7e: 02 c0 rjmp .+4 ; 0x84 <__do_copy_data+0x10> - 80: 05 90 lpm r0, Z+ - 82: 0d 92 st X+, r0 - 84: a2 34 cpi r26, 0x42 ; 66 - 86: b1 07 cpc r27, r17 - 88: d9 f7 brne .-10 ; 0x80 <__do_copy_data+0xc> - -0000008a <__do_clear_bss>: - 8a: 23 e0 ldi r18, 0x03 ; 3 - 8c: a2 e4 ldi r26, 0x42 ; 66 - 8e: b3 e0 ldi r27, 0x03 ; 3 - 90: 01 c0 rjmp .+2 ; 0x94 <.do_clear_bss_start> - -00000092 <.do_clear_bss_loop>: - 92: 1d 92 st X+, r1 - -00000094 <.do_clear_bss_start>: - 94: a6 39 cpi r26, 0x96 ; 150 - 96: b2 07 cpc r27, r18 - 98: e1 f7 brne .-8 ; 0x92 <.do_clear_bss_loop> - 9a: 0e 94 26 07 call 0xe4c ; 0xe4c <main> - 9e: 0c 94 a7 0e jmp 0x1d4e ; 0x1d4e <_exit> - -000000a2 <__bad_interrupt>: - a2: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> - -000000a6 <init_hdlc_client>: - -#define SIZE_DATA_BUFFERS 64 - -int connecting_frame_timeout_bf; - -void init_hdlc_client(struct Client* client, int connecting_frame_timeout){ - a6: fc 01 movw r30, r24 - client->state = IDLE_STATE; - a8: 81 e0 ldi r24, 0x01 ; 1 - aa: 80 83 st Z, r24 - client->connecting_frame_timeout = connecting_frame_timeout; - ac: 72 83 std Z+2, r23 ; 0x02 - ae: 61 83 std Z+1, r22 ; 0x01 - connecting_frame_timeout_bf = connecting_frame_timeout; - b0: 70 93 44 03 sts 0x0344, r23 ; 0x800344 <connecting_frame_timeout_bf+0x1> - b4: 60 93 43 03 sts 0x0343, r22 ; 0x800343 <connecting_frame_timeout_bf> - client->current_index_frame = 20; - b8: 84 e1 ldi r24, 0x14 ; 20 - ba: 83 83 std Z+3, r24 ; 0x03 - - client->current_state_hdlc.control_escape = 0; - bc: 14 82 std Z+4, r1 ; 0x04 - client->current_state_hdlc.fcs = FCS_INIT_VALUE; - be: 8f ef ldi r24, 0xFF ; 255 - c0: 9f ef ldi r25, 0xFF ; 255 - c2: 96 83 std Z+6, r25 ; 0x06 - c4: 85 83 std Z+5, r24 ; 0x05 - client->current_state_hdlc.start_index = -1; - c6: 90 87 std Z+8, r25 ; 0x08 - c8: 87 83 std Z+7, r24 ; 0x07 - client->current_state_hdlc.end_index = -1; - ca: 92 87 std Z+10, r25 ; 0x0a - cc: 81 87 std Z+9, r24 ; 0x09 - client->current_state_hdlc.src_index = 0; - ce: 14 86 std Z+12, r1 ; 0x0c - d0: 13 86 std Z+11, r1 ; 0x0b - client->current_state_hdlc.dest_index = 0; - d2: 16 86 std Z+14, r1 ; 0x0e - d4: 15 86 std Z+13, r1 ; 0x0d - d6: 08 95 ret - -000000d8 <hdlc_connect>: -} - -void hdlc_connect(struct Client* client){ - d8: fc 01 movw r30, r24 - client->state = CONNECTING; - da: 83 e0 ldi r24, 0x03 ; 3 - dc: 80 83 st Z, r24 - - client->frameS.seq_no = 0; - de: 80 89 ldd r24, Z+16 ; 0x10 - e0: 88 7f andi r24, 0xF8 ; 248 - e2: 80 8b std Z+16, r24 ; 0x10 - client->frameS.frame = S_FRAME; - e4: 81 e0 ldi r24, 0x01 ; 1 - e6: 87 87 std Z+15, r24 ; 0x0f - client->current_index_frame = client->frameS.seq_no; - e8: 13 82 std Z+3, r1 ; 0x03 - ea: 08 95 ret - -000000ec <hdlc_send_data>: -} - -int hdlc_send_data(struct Client* client, uint8_t data[], size_t data_len){ - ec: fc 01 movw r30, r24 - if (client->state != READY_STATE){ - ee: 80 81 ld r24, Z - f0: 82 30 cpi r24, 0x02 ; 2 - f2: 89 f4 brne .+34 ; 0x116 <hdlc_send_data+0x2a> - return ERR_INVALID_STATE; - } - - client->state = RECIVING; - f4: 85 e0 ldi r24, 0x05 ; 5 - f6: 80 83 st Z, r24 - - if (SIZE_DATA_BUFFERS < data_len){ - f8: 41 34 cpi r20, 0x41 ; 65 - fa: 51 05 cpc r21, r1 - fc: 78 f4 brcc .+30 ; 0x11c <hdlc_send_data+0x30> - return ERR_INVALID_DATA_SIZE; - } - - client->frameI.seq_no = 0; - fe: 82 89 ldd r24, Z+18 ; 0x12 - 100: 88 7f andi r24, 0xF8 ; 248 - 102: 82 8b std Z+18, r24 ; 0x12 - client->frameI.frame = I_FRAME; - 104: 11 8a std Z+17, r1 ; 0x11 - client->data_i_frame = data; - 106: 74 8b std Z+20, r23 ; 0x14 - 108: 63 8b std Z+19, r22 ; 0x13 - client->len_data_i_frame = data_len; - 10a: 56 8b std Z+22, r21 ; 0x16 - 10c: 45 8b std Z+21, r20 ; 0x15 - client->current_index_frame = client->frameI.seq_no; - 10e: 13 82 std Z+3, r1 ; 0x03 - - client->state = RECIVING; - return 0; - 110: 80 e0 ldi r24, 0x00 ; 0 - 112: 90 e0 ldi r25, 0x00 ; 0 - 114: 08 95 ret - client->current_index_frame = client->frameS.seq_no; -} - -int hdlc_send_data(struct Client* client, uint8_t data[], size_t data_len){ - if (client->state != READY_STATE){ - return ERR_INVALID_STATE; - 116: 8c ef ldi r24, 0xFC ; 252 - 118: 9f ef ldi r25, 0xFF ; 255 - 11a: 08 95 ret - } - - client->state = RECIVING; - - if (SIZE_DATA_BUFFERS < data_len){ - return ERR_INVALID_DATA_SIZE; - 11c: 8f ef ldi r24, 0xFF ; 255 - 11e: 9f ef ldi r25, 0xFF ; 255 - client->len_data_i_frame = data_len; - client->current_index_frame = client->frameI.seq_no; - - client->state = RECIVING; - return 0; -} - 120: 08 95 ret - -00000122 <hdlc_get_raw_frame>: - -int hdlc_get_raw_frame(struct Client *client, uint8_t* buffer, size_t lenBuffer) { - 122: cf 92 push r12 - 124: df 92 push r13 - 126: ef 92 push r14 - 128: ff 92 push r15 - 12a: 0f 93 push r16 - 12c: 1f 93 push r17 - 12e: cf 93 push r28 - 130: df 93 push r29 - 132: 00 d0 rcall .+0 ; 0x134 <hdlc_get_raw_frame+0x12> - 134: cd b7 in r28, 0x3d ; 61 - 136: de b7 in r29, 0x3e ; 62 - 138: 7c 01 movw r14, r24 - 13a: 6b 01 movw r12, r22 - 13c: 5a 83 std Y+2, r21 ; 0x02 - 13e: 49 83 std Y+1, r20 ; 0x01 - if(client->state == RECIVING){ - 140: fc 01 movw r30, r24 - 142: 80 81 ld r24, Z - 144: 85 30 cpi r24, 0x05 ; 5 - 146: d1 f4 brne .+52 ; 0x17c <hdlc_get_raw_frame+0x5a> - int ret = hdlc_frame_data(&client->frameI, client->data_i_frame, - 148: 45 89 ldd r20, Z+21 ; 0x15 - 14a: 56 89 ldd r21, Z+22 ; 0x16 - 14c: 63 89 ldd r22, Z+19 ; 0x13 - 14e: 74 89 ldd r23, Z+20 ; 0x14 - 150: 8e 01 movw r16, r28 - 152: 0f 5f subi r16, 0xFF ; 255 - 154: 1f 4f sbci r17, 0xFF ; 255 - 156: 96 01 movw r18, r12 - 158: c7 01 movw r24, r14 - 15a: 41 96 adiw r24, 0x11 ; 17 - 15c: 0e 94 48 03 call 0x690 ; 0x690 <hdlc_frame_data> - client->len_data_i_frame, buffer, &lenBuffer); - if (ret < 0){ - 160: 99 23 and r25, r25 - 162: 64 f4 brge .+24 ; 0x17c <hdlc_get_raw_frame+0x5a> - printf("err in get_frame: %d\n", ret); - 164: 9f 93 push r25 - 166: 8f 93 push r24 - 168: 80 e0 ldi r24, 0x00 ; 0 - 16a: 91 e0 ldi r25, 0x01 ; 1 - 16c: 9f 93 push r25 - 16e: 8f 93 push r24 - 170: 0e 94 99 0b call 0x1732 ; 0x1732 <printf> - 174: 0f 90 pop r0 - 176: 0f 90 pop r0 - 178: 0f 90 pop r0 - 17a: 0f 90 pop r0 - } - } - - if (client->state == CONNECTING){ - 17c: f7 01 movw r30, r14 - 17e: 80 81 ld r24, Z - 180: 83 30 cpi r24, 0x03 ; 3 - 182: d1 f4 brne .+52 ; 0x1b8 <hdlc_get_raw_frame+0x96> - int ret = hdlc_frame_data(&client->frameS, NULL, 0, buffer, &lenBuffer); - 184: 8e 01 movw r16, r28 - 186: 0f 5f subi r16, 0xFF ; 255 - 188: 1f 4f sbci r17, 0xFF ; 255 - 18a: 96 01 movw r18, r12 - 18c: 40 e0 ldi r20, 0x00 ; 0 - 18e: 50 e0 ldi r21, 0x00 ; 0 - 190: 60 e0 ldi r22, 0x00 ; 0 - 192: 70 e0 ldi r23, 0x00 ; 0 - 194: c7 01 movw r24, r14 - 196: 0f 96 adiw r24, 0x0f ; 15 - 198: 0e 94 48 03 call 0x690 ; 0x690 <hdlc_frame_data> - - if (ret < 0){ - 19c: 99 23 and r25, r25 - 19e: 64 f4 brge .+24 ; 0x1b8 <hdlc_get_raw_frame+0x96> - printf("err in get_frame: %d\n", ret); - 1a0: 9f 93 push r25 - 1a2: 8f 93 push r24 - 1a4: 80 e0 ldi r24, 0x00 ; 0 - 1a6: 91 e0 ldi r25, 0x01 ; 1 - 1a8: 9f 93 push r25 - 1aa: 8f 93 push r24 - 1ac: 0e 94 99 0b call 0x1732 ; 0x1732 <printf> - 1b0: 0f 90 pop r0 - 1b2: 0f 90 pop r0 - 1b4: 0f 90 pop r0 - 1b6: 0f 90 pop r0 - } - } - - if (client->state == DISCONNECTING){ - 1b8: f7 01 movw r30, r14 - 1ba: 80 81 ld r24, Z - 1bc: 84 30 cpi r24, 0x04 ; 4 - 1be: d1 f4 brne .+52 ; 0x1f4 <hdlc_get_raw_frame+0xd2> - int ret = hdlc_frame_data(&client->frame_rej, NULL, 0, buffer, &lenBuffer); - 1c0: 8e 01 movw r16, r28 - 1c2: 0f 5f subi r16, 0xFF ; 255 - 1c4: 1f 4f sbci r17, 0xFF ; 255 - 1c6: 96 01 movw r18, r12 - 1c8: 40 e0 ldi r20, 0x00 ; 0 - 1ca: 50 e0 ldi r21, 0x00 ; 0 - 1cc: 60 e0 ldi r22, 0x00 ; 0 - 1ce: 70 e0 ldi r23, 0x00 ; 0 - 1d0: c7 01 movw r24, r14 - 1d2: 47 96 adiw r24, 0x17 ; 23 - 1d4: 0e 94 48 03 call 0x690 ; 0x690 <hdlc_frame_data> - - if (ret < 0){ - 1d8: 99 23 and r25, r25 - 1da: 64 f4 brge .+24 ; 0x1f4 <hdlc_get_raw_frame+0xd2> - printf("err in get_frame: %d\n", ret); - 1dc: 9f 93 push r25 - 1de: 8f 93 push r24 - 1e0: 80 e0 ldi r24, 0x00 ; 0 - 1e2: 91 e0 ldi r25, 0x01 ; 1 - 1e4: 9f 93 push r25 - 1e6: 8f 93 push r24 - 1e8: 0e 94 99 0b call 0x1732 ; 0x1732 <printf> - 1ec: 0f 90 pop r0 - 1ee: 0f 90 pop r0 - 1f0: 0f 90 pop r0 - 1f2: 0f 90 pop r0 - } - } - - return 0; -} - 1f4: 80 e0 ldi r24, 0x00 ; 0 - 1f6: 90 e0 ldi r25, 0x00 ; 0 - 1f8: 0f 90 pop r0 - 1fa: 0f 90 pop r0 - 1fc: df 91 pop r29 - 1fe: cf 91 pop r28 - 200: 1f 91 pop r17 - 202: 0f 91 pop r16 - 204: ff 90 pop r15 - 206: ef 90 pop r14 - 208: df 90 pop r13 - 20a: cf 90 pop r12 - 20c: 08 95 ret - -0000020e <hdlc_decode_recived_raw_data>: - -int hdlc_decode_recived_raw_data(struct Client* client, uint8_t* buffer, size_t len_buffer, uint8_t* recived_data, size_t* len_recived_data){ - 20e: 2f 92 push r2 - 210: 3f 92 push r3 - 212: 4f 92 push r4 - 214: 5f 92 push r5 - 216: 6f 92 push r6 - 218: 7f 92 push r7 - 21a: 8f 92 push r8 - 21c: 9f 92 push r9 - 21e: af 92 push r10 - 220: bf 92 push r11 - 222: cf 92 push r12 - 224: df 92 push r13 - 226: ef 92 push r14 - 228: ff 92 push r15 - 22a: 0f 93 push r16 - 22c: 1f 93 push r17 - 22e: cf 93 push r28 - 230: df 93 push r29 - 232: 00 d0 rcall .+0 ; 0x234 <hdlc_decode_recived_raw_data+0x26> - 234: 00 d0 rcall .+0 ; 0x236 <hdlc_decode_recived_raw_data+0x28> - 236: cd b7 in r28, 0x3d ; 61 - 238: de b7 in r29, 0x3e ; 62 - 23a: 5c 01 movw r10, r24 - 23c: 5c 83 std Y+4, r21 ; 0x04 - 23e: 4b 83 std Y+3, r20 ; 0x03 - 240: 22 2e mov r2, r18 - 242: 33 2e mov r3, r19 - 244: 38 01 movw r6, r16 - return ERR_INVALID_SEQ_NUMBER_FRAME; - } - - client->connecting_frame_timeout = connecting_frame_timeout_bf; - return 0; -} - 246: 8d b6 in r8, 0x3d ; 61 - 248: 9e b6 in r9, 0x3e ; 62 - return 0; -} - -int hdlc_decode_recived_raw_data(struct Client* client, uint8_t* buffer, size_t len_buffer, uint8_t* recived_data, size_t* len_recived_data){ - hdlc_control_t recv_control; - uint8_t recive[len_buffer]; - 24a: c4 2e mov r12, r20 - 24c: d5 2e mov r13, r21 - 24e: 8d b7 in r24, 0x3d ; 61 - 250: 9e b7 in r25, 0x3e ; 62 - 252: 8c 19 sub r24, r12 - 254: 9d 09 sbc r25, r13 - 256: 0f b6 in r0, 0x3f ; 63 - 258: f8 94 cli - 25a: 9e bf out 0x3e, r25 ; 62 - 25c: 0f be out 0x3f, r0 ; 63 - 25e: 8d bf out 0x3d, r24 ; 61 - 260: ed b7 in r30, 0x3d ; 61 - 262: fe b7 in r31, 0x3e ; 62 - 264: 31 96 adiw r30, 0x01 ; 1 - 266: 2f 01 movw r4, r30 - - int ret = hdlc_get_data_with_state(&client->current_state_hdlc,&recv_control, buffer, len_buffer, recive, - 268: ce 01 movw r24, r28 - 26a: 03 96 adiw r24, 0x03 ; 3 - 26c: 7c 01 movw r14, r24 - 26e: 8f 01 movw r16, r30 - 270: 96 01 movw r18, r12 - 272: ab 01 movw r20, r22 - 274: be 01 movw r22, r28 - 276: 6f 5f subi r22, 0xFF ; 255 - 278: 7f 4f sbci r23, 0xFF ; 255 - 27a: c5 01 movw r24, r10 - 27c: 04 96 adiw r24, 0x04 ; 4 - 27e: 0e 94 22 02 call 0x444 ; 0x444 <hdlc_get_data_with_state> - &len_buffer); - - if (ret < 0) { - 282: 99 23 and r25, r25 - 284: 0c f4 brge .+2 ; 0x288 <hdlc_decode_recived_raw_data+0x7a> - 286: 48 c0 rjmp .+144 ; 0x318 <hdlc_decode_recived_raw_data+0x10a> - return ret; - } - - if (recv_control.seq_no != client->current_index_frame){ - 288: 8a 81 ldd r24, Y+2 ; 0x02 - 28a: 87 70 andi r24, 0x07 ; 7 - 28c: 90 e0 ldi r25, 0x00 ; 0 - 28e: f5 01 movw r30, r10 - 290: 23 81 ldd r18, Z+3 ; 0x03 - 292: 30 e0 ldi r19, 0x00 ; 0 - 294: 82 17 cp r24, r18 - 296: 93 07 cpc r25, r19 - 298: 51 f0 breq .+20 ; 0x2ae <hdlc_decode_recived_raw_data+0xa0> - client->state = DISCONNECTING; - 29a: 84 e0 ldi r24, 0x04 ; 4 - 29c: 80 83 st Z, r24 - client->frame_rej.seq_no = 0; - 29e: 80 8d ldd r24, Z+24 ; 0x18 - 2a0: 88 7f andi r24, 0xF8 ; 248 - 2a2: 80 8f std Z+24, r24 ; 0x18 - client->frame_rej.frame = S_FRAME_NACK; - 2a4: 82 e0 ldi r24, 0x02 ; 2 - 2a6: 87 8b std Z+23, r24 ; 0x17 - return ERR_INVALID_SEQ_NUMBER_FRAME; - 2a8: 8a ef ldi r24, 0xFA ; 250 - 2aa: 9f ef ldi r25, 0xFF ; 255 - 2ac: 35 c0 rjmp .+106 ; 0x318 <hdlc_decode_recived_raw_data+0x10a> - } - - switch (recv_control.frame) { - 2ae: 89 81 ldd r24, Y+1 ; 0x01 - 2b0: 81 30 cpi r24, 0x01 ; 1 - 2b2: 49 f0 breq .+18 ; 0x2c6 <hdlc_decode_recived_raw_data+0xb8> - 2b4: 18 f0 brcs .+6 ; 0x2bc <hdlc_decode_recived_raw_data+0xae> - 2b6: 82 30 cpi r24, 0x02 ; 2 - 2b8: d9 f0 breq .+54 ; 0x2f0 <hdlc_decode_recived_raw_data+0xe2> - 2ba: 25 c0 rjmp .+74 ; 0x306 <hdlc_decode_recived_raw_data+0xf8> - case S_FRAME: - client->state = READY_STATE; - break; - case I_FRAME: - for (int i = 0; i < sizeof(recive)-2; i++){ - 2bc: f2 e0 ldi r31, 0x02 ; 2 - 2be: cf 1a sub r12, r31 - 2c0: d1 08 sbc r13, r1 - 2c2: 29 f4 brne .+10 ; 0x2ce <hdlc_decode_recived_raw_data+0xc0> - 2c4: 0e c0 rjmp .+28 ; 0x2e2 <hdlc_decode_recived_raw_data+0xd4> - return ERR_INVALID_SEQ_NUMBER_FRAME; - } - - switch (recv_control.frame) { - case S_FRAME: - client->state = READY_STATE; - 2c6: 82 e0 ldi r24, 0x02 ; 2 - 2c8: f5 01 movw r30, r10 - 2ca: 80 83 st Z, r24 - break; - 2cc: 1c c0 rjmp .+56 ; 0x306 <hdlc_decode_recived_raw_data+0xf8> - 2ce: f2 01 movw r30, r4 - 2d0: a2 2d mov r26, r2 - 2d2: b3 2d mov r27, r3 - 2d4: 4c 0c add r4, r12 - 2d6: 5d 1c adc r5, r13 - case I_FRAME: - for (int i = 0; i < sizeof(recive)-2; i++){ - recived_data[i] = recive[i]; - 2d8: 81 91 ld r24, Z+ - 2da: 8d 93 st X+, r24 - switch (recv_control.frame) { - case S_FRAME: - client->state = READY_STATE; - break; - case I_FRAME: - for (int i = 0; i < sizeof(recive)-2; i++){ - 2dc: e4 15 cp r30, r4 - 2de: f5 05 cpc r31, r5 - 2e0: d9 f7 brne .-10 ; 0x2d8 <hdlc_decode_recived_raw_data+0xca> - recived_data[i] = recive[i]; - } - - *len_recived_data = sizeof(recive)-2; - 2e2: f3 01 movw r30, r6 - 2e4: d1 82 std Z+1, r13 ; 0x01 - 2e6: c0 82 st Z, r12 - - client->state = SEND; - 2e8: 86 e0 ldi r24, 0x06 ; 6 - 2ea: f5 01 movw r30, r10 - 2ec: 80 83 st Z, r24 - break; - 2ee: 0b c0 rjmp .+22 ; 0x306 <hdlc_decode_recived_raw_data+0xf8> - case S_FRAME_NACK: - client->state = DISCONNECTING; - 2f0: 84 e0 ldi r24, 0x04 ; 4 - 2f2: f5 01 movw r30, r10 - 2f4: 80 83 st Z, r24 - client->frame_rej.seq_no = 0; - 2f6: 80 8d ldd r24, Z+24 ; 0x18 - 2f8: 88 7f andi r24, 0xF8 ; 248 - 2fa: 80 8f std Z+24, r24 ; 0x18 - client->frame_rej.frame = S_FRAME_NACK; - 2fc: 82 e0 ldi r24, 0x02 ; 2 - 2fe: 87 8b std Z+23, r24 ; 0x17 - return ERR_INVALID_SEQ_NUMBER_FRAME; - 300: 8a ef ldi r24, 0xFA ; 250 - 302: 9f ef ldi r25, 0xFF ; 255 - 304: 09 c0 rjmp .+18 ; 0x318 <hdlc_decode_recived_raw_data+0x10a> - } - - client->connecting_frame_timeout = connecting_frame_timeout_bf; - 306: 80 91 43 03 lds r24, 0x0343 ; 0x800343 <connecting_frame_timeout_bf> - 30a: 90 91 44 03 lds r25, 0x0344 ; 0x800344 <connecting_frame_timeout_bf+0x1> - 30e: f5 01 movw r30, r10 - 310: 92 83 std Z+2, r25 ; 0x02 - 312: 81 83 std Z+1, r24 ; 0x01 - return 0; - 314: 80 e0 ldi r24, 0x00 ; 0 - 316: 90 e0 ldi r25, 0x00 ; 0 -} - 318: 0f b6 in r0, 0x3f ; 63 - 31a: f8 94 cli - 31c: 9e be out 0x3e, r9 ; 62 - 31e: 0f be out 0x3f, r0 ; 63 - 320: 8d be out 0x3d, r8 ; 61 - 322: 0f 90 pop r0 - 324: 0f 90 pop r0 - 326: 0f 90 pop r0 - 328: 0f 90 pop r0 - 32a: df 91 pop r29 - 32c: cf 91 pop r28 - 32e: 1f 91 pop r17 - 330: 0f 91 pop r16 - 332: ff 90 pop r15 - 334: ef 90 pop r14 - 336: df 90 pop r13 - 338: cf 90 pop r12 - 33a: bf 90 pop r11 - 33c: af 90 pop r10 - 33e: 9f 90 pop r9 - 340: 8f 90 pop r8 - 342: 7f 90 pop r7 - 344: 6f 90 pop r6 - 346: 5f 90 pop r5 - 348: 4f 90 pop r4 - 34a: 3f 90 pop r3 - 34c: 2f 90 pop r2 - 34e: 08 95 ret - -00000350 <hdlc_timeout_handler>: - -int hdlc_timeout_handler(struct Client* client, int delta_time){ - client->connecting_frame_timeout -= delta_time; - 350: fc 01 movw r30, r24 - 352: 21 81 ldd r18, Z+1 ; 0x01 - 354: 32 81 ldd r19, Z+2 ; 0x02 - 356: 26 1b sub r18, r22 - 358: 37 0b sbc r19, r23 - 35a: 32 83 std Z+2, r19 ; 0x02 - 35c: 21 83 std Z+1, r18 ; 0x01 - - if (client->connecting_frame_timeout <= 0){ - 35e: 12 16 cp r1, r18 - 360: 13 06 cpc r1, r19 - 362: 1c f4 brge .+6 ; 0x36a <hdlc_timeout_handler+0x1a> - return ERR_FRAME_TIME_OUT; - } - return 0; - 364: 80 e0 ldi r24, 0x00 ; 0 - 366: 90 e0 ldi r25, 0x00 ; 0 - 368: 08 95 ret - -int hdlc_timeout_handler(struct Client* client, int delta_time){ - client->connecting_frame_timeout -= delta_time; - - if (client->connecting_frame_timeout <= 0){ - return ERR_FRAME_TIME_OUT; - 36a: 8b ef ldi r24, 0xFB ; 251 - 36c: 9f ef ldi r25, 0xFF ; 255 - } - return 0; - 36e: 08 95 ret - -00000370 <calc_fcs>: - 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, - 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, - 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 }; - -FCS_SIZE calc_fcs(FCS_SIZE fcs, unsigned char value) { - return (fcs >> 8) ^ fcstab[(fcs ^ value) & 0xff]; - 370: fc 01 movw r30, r24 - 372: e6 27 eor r30, r22 - 374: ff 27 eor r31, r31 - 376: ee 0f add r30, r30 - 378: ff 1f adc r31, r31 - 37a: ea 5e subi r30, 0xEA ; 234 - 37c: fe 4f sbci r31, 0xFE ; 254 - 37e: 89 2f mov r24, r25 - 380: 99 27 eor r25, r25 - 382: 20 81 ld r18, Z - 384: 31 81 ldd r19, Z+1 ; 0x01 - 386: 82 27 eor r24, r18 - 388: 93 27 eor r25, r19 - 38a: 08 95 ret - -0000038c <hdlc_escape_value>: -//int hdlc_get_data(hdlc_control_t *control, const char *src, -// unsigned int src_len, char *dest, unsigned int *dest_len) -int hdlc_get_data(hdlc_control_t *control, uint8_t *src, - size_t src_len, uint8_t *dest, size_t *dest_len){ - return hdlc_get_data_with_state(&hdlc_state, control, src, src_len, dest, dest_len); -} - 38c: fa 01 movw r30, r20 - 38e: 93 e8 ldi r25, 0x83 ; 131 - 390: 98 0f add r25, r24 - 392: 92 30 cpi r25, 0x02 ; 2 - 394: 70 f4 brcc .+28 ; 0x3b2 <hdlc_escape_value+0x26> - 396: 20 81 ld r18, Z - 398: 31 81 ldd r19, Z+1 ; 0x01 - 39a: a9 01 movw r20, r18 - 39c: 4f 5f subi r20, 0xFF ; 255 - 39e: 5f 4f sbci r21, 0xFF ; 255 - 3a0: 51 83 std Z+1, r21 ; 0x01 - 3a2: 40 83 st Z, r20 - 3a4: db 01 movw r26, r22 - 3a6: a2 0f add r26, r18 - 3a8: b3 1f adc r27, r19 - 3aa: 9d e7 ldi r25, 0x7D ; 125 - 3ac: 9c 93 st X, r25 - 3ae: 90 e2 ldi r25, 0x20 ; 32 - 3b0: 89 27 eor r24, r25 - 3b2: 20 81 ld r18, Z - 3b4: 31 81 ldd r19, Z+1 ; 0x01 - 3b6: a9 01 movw r20, r18 - 3b8: 4f 5f subi r20, 0xFF ; 255 - 3ba: 5f 4f sbci r21, 0xFF ; 255 - 3bc: 51 83 std Z+1, r21 ; 0x01 - 3be: 40 83 st Z, r20 - 3c0: fb 01 movw r30, r22 - 3c2: e2 0f add r30, r18 - 3c4: f3 1f adc r31, r19 - 3c6: 80 83 st Z, r24 - 3c8: 08 95 ret - -000003ca <hdlc_get_control_type>: - 3ca: 98 2f mov r25, r24 - 3cc: 80 ff sbrs r24, 0 - 3ce: 0b c0 rjmp .+22 ; 0x3e6 <hdlc_get_control_type+0x1c> - 3d0: 86 95 lsr r24 - 3d2: 86 95 lsr r24 - 3d4: 83 70 andi r24, 0x03 ; 3 - 3d6: 11 f0 breq .+4 ; 0x3dc <hdlc_get_control_type+0x12> - 3d8: 82 e0 ldi r24, 0x02 ; 2 - 3da: 01 c0 rjmp .+2 ; 0x3de <hdlc_get_control_type+0x14> - 3dc: 81 e0 ldi r24, 0x01 ; 1 - 3de: 92 95 swap r25 - 3e0: 96 95 lsr r25 - 3e2: 97 70 andi r25, 0x07 ; 7 - 3e4: 03 c0 rjmp .+6 ; 0x3ec <hdlc_get_control_type+0x22> - 3e6: 96 95 lsr r25 - 3e8: 97 70 andi r25, 0x07 ; 7 - 3ea: 80 e0 ldi r24, 0x00 ; 0 - 3ec: 97 70 andi r25, 0x07 ; 7 - 3ee: 08 95 ret - -000003f0 <hdlc_frame_control_type>: - 3f0: fc 01 movw r30, r24 - 3f2: 90 81 ld r25, Z - 3f4: 91 30 cpi r25, 0x01 ; 1 - 3f6: 49 f0 breq .+18 ; 0x40a <__LOCK_REGION_LENGTH__+0xa> - 3f8: 18 f0 brcs .+6 ; 0x400 <__LOCK_REGION_LENGTH__> - 3fa: 92 30 cpi r25, 0x02 ; 2 - 3fc: 61 f0 breq .+24 ; 0x416 <__LOCK_REGION_LENGTH__+0x16> - 3fe: 11 c0 rjmp .+34 ; 0x422 <__LOCK_REGION_LENGTH__+0x22> - 400: 81 81 ldd r24, Z+1 ; 0x01 - 402: 87 70 andi r24, 0x07 ; 7 - 404: 88 0f add r24, r24 - 406: 80 61 ori r24, 0x10 ; 16 - 408: 08 95 ret - 40a: 81 81 ldd r24, Z+1 ; 0x01 - 40c: 82 95 swap r24 - 40e: 88 0f add r24, r24 - 410: 80 7e andi r24, 0xE0 ; 224 - 412: 81 60 ori r24, 0x01 ; 1 - 414: 08 95 ret - 416: 81 81 ldd r24, Z+1 ; 0x01 - 418: 82 95 swap r24 - 41a: 88 0f add r24, r24 - 41c: 80 7e andi r24, 0xE0 ; 224 - 41e: 89 60 ori r24, 0x09 ; 9 - 420: 08 95 ret - 422: 80 e0 ldi r24, 0x00 ; 0 - 424: 08 95 ret - -00000426 <hdlc_get_data_reset_with_state>: - 426: fc 01 movw r30, r24 - 428: 8f ef ldi r24, 0xFF ; 255 - 42a: 9f ef ldi r25, 0xFF ; 255 - 42c: 92 83 std Z+2, r25 ; 0x02 - 42e: 81 83 std Z+1, r24 ; 0x01 - 430: 96 83 std Z+6, r25 ; 0x06 - 432: 85 83 std Z+5, r24 ; 0x05 - 434: 94 83 std Z+4, r25 ; 0x04 - 436: 83 83 std Z+3, r24 ; 0x03 - 438: 12 86 std Z+10, r1 ; 0x0a - 43a: 11 86 std Z+9, r1 ; 0x09 - 43c: 10 86 std Z+8, r1 ; 0x08 - 43e: 17 82 std Z+7, r1 ; 0x07 - 440: 10 82 st Z, r1 - 442: 08 95 ret - -00000444 <hdlc_get_data_with_state>: - 444: 3f 92 push r3 - 446: 4f 92 push r4 - 448: 5f 92 push r5 - 44a: 6f 92 push r6 - 44c: 7f 92 push r7 - 44e: 8f 92 push r8 - 450: 9f 92 push r9 - 452: af 92 push r10 - 454: bf 92 push r11 - 456: cf 92 push r12 - 458: df 92 push r13 - 45a: ef 92 push r14 - 45c: ff 92 push r15 - 45e: 0f 93 push r16 - 460: 1f 93 push r17 - 462: cf 93 push r28 - 464: df 93 push r29 - 466: 00 d0 rcall .+0 ; 0x468 <hdlc_get_data_with_state+0x24> - 468: 00 d0 rcall .+0 ; 0x46a <hdlc_get_data_with_state+0x26> - 46a: cd b7 in r28, 0x3d ; 61 - 46c: de b7 in r29, 0x3e ; 62 - 46e: 00 97 sbiw r24, 0x00 ; 0 - 470: 09 f4 brne .+2 ; 0x474 <hdlc_get_data_with_state+0x30> - 472: ea c0 rjmp .+468 ; 0x648 <hdlc_get_data_with_state+0x204> - 474: 61 15 cp r22, r1 - 476: 71 05 cpc r23, r1 - 478: 09 f4 brne .+2 ; 0x47c <hdlc_get_data_with_state+0x38> - 47a: e9 c0 rjmp .+466 ; 0x64e <hdlc_get_data_with_state+0x20a> - 47c: 41 15 cp r20, r1 - 47e: 51 05 cpc r21, r1 - 480: 09 f4 brne .+2 ; 0x484 <hdlc_get_data_with_state+0x40> - 482: e8 c0 rjmp .+464 ; 0x654 <hdlc_get_data_with_state+0x210> - 484: 01 15 cp r16, r1 - 486: 11 05 cpc r17, r1 - 488: 09 f4 brne .+2 ; 0x48c <hdlc_get_data_with_state+0x48> - 48a: e7 c0 rjmp .+462 ; 0x65a <hdlc_get_data_with_state+0x216> - 48c: e1 14 cp r14, r1 - 48e: f1 04 cpc r15, r1 - 490: 09 f4 brne .+2 ; 0x494 <hdlc_get_data_with_state+0x50> - 492: e6 c0 rjmp .+460 ; 0x660 <hdlc_get_data_with_state+0x21c> - 494: 38 01 movw r6, r16 - 496: 49 01 movw r8, r18 - 498: 7a 83 std Y+2, r23 ; 0x02 - 49a: 69 83 std Y+1, r22 ; 0x01 - 49c: 9c 83 std Y+4, r25 ; 0x04 - 49e: 8b 83 std Y+3, r24 ; 0x03 - 4a0: 21 15 cp r18, r1 - 4a2: 31 05 cpc r19, r1 - 4a4: 09 f4 brne .+2 ; 0x4a8 <hdlc_get_data_with_state+0x64> - 4a6: 99 c0 rjmp .+306 ; 0x5da <hdlc_get_data_with_state+0x196> - 4a8: 8a 01 movw r16, r20 - 4aa: c1 2c mov r12, r1 - 4ac: d1 2c mov r13, r1 - 4ae: 68 94 set - 4b0: 44 24 eor r4, r4 - 4b2: 45 f8 bld r4, 5 - 4b4: 33 24 eor r3, r3 - 4b6: 33 94 inc r3 - 4b8: 59 01 movw r10, r18 - 4ba: 21 e0 ldi r18, 0x01 ; 1 - 4bc: a2 1a sub r10, r18 - 4be: b1 08 sbc r11, r1 - 4c0: ab 81 ldd r26, Y+3 ; 0x03 - 4c2: bc 81 ldd r27, Y+4 ; 0x04 - 4c4: 13 96 adiw r26, 0x03 ; 3 - 4c6: 8d 91 ld r24, X+ - 4c8: 9c 91 ld r25, X - 4ca: 14 97 sbiw r26, 0x04 ; 4 - 4cc: 99 23 and r25, r25 - 4ce: 9c f4 brge .+38 ; 0x4f6 <hdlc_get_data_with_state+0xb2> - 4d0: f8 01 movw r30, r16 - 4d2: 80 81 ld r24, Z - 4d4: 8e 37 cpi r24, 0x7E ; 126 - 4d6: 09 f0 breq .+2 ; 0x4da <hdlc_get_data_with_state+0x96> - 4d8: 70 c0 rjmp .+224 ; 0x5ba <hdlc_get_data_with_state+0x176> - 4da: ca 14 cp r12, r10 - 4dc: db 04 cpc r13, r11 - 4de: 20 f4 brcc .+8 ; 0x4e8 <hdlc_get_data_with_state+0xa4> - 4e0: 81 81 ldd r24, Z+1 ; 0x01 - 4e2: 8e 37 cpi r24, 0x7E ; 126 - 4e4: 09 f4 brne .+2 ; 0x4e8 <hdlc_get_data_with_state+0xa4> - 4e6: 70 c0 rjmp .+224 ; 0x5c8 <hdlc_get_data_with_state+0x184> - 4e8: eb 81 ldd r30, Y+3 ; 0x03 - 4ea: fc 81 ldd r31, Y+4 ; 0x04 - 4ec: 87 81 ldd r24, Z+7 ; 0x07 - 4ee: 90 85 ldd r25, Z+8 ; 0x08 - 4f0: 94 83 std Z+4, r25 ; 0x04 - 4f2: 83 83 std Z+3, r24 ; 0x03 - 4f4: 62 c0 rjmp .+196 ; 0x5ba <hdlc_get_data_with_state+0x176> - 4f6: f8 01 movw r30, r16 - 4f8: 50 80 ld r5, Z - 4fa: 2e e7 ldi r18, 0x7E ; 126 - 4fc: 52 12 cpse r5, r18 - 4fe: 19 c0 rjmp .+50 ; 0x532 <hdlc_get_data_with_state+0xee> - 500: ca 14 cp r12, r10 - 502: db 04 cpc r13, r11 - 504: 20 f4 brcc .+8 ; 0x50e <hdlc_get_data_with_state+0xca> - 506: 21 81 ldd r18, Z+1 ; 0x01 - 508: 2e 37 cpi r18, 0x7E ; 126 - 50a: 09 f4 brne .+2 ; 0x50e <hdlc_get_data_with_state+0xca> - 50c: 5d c0 rjmp .+186 ; 0x5c8 <hdlc_get_data_with_state+0x184> - 50e: ab 81 ldd r26, Y+3 ; 0x03 - 510: bc 81 ldd r27, Y+4 ; 0x04 - 512: 17 96 adiw r26, 0x07 ; 7 - 514: 2d 91 ld r18, X+ - 516: 3c 91 ld r19, X - 518: 18 97 sbiw r26, 0x08 ; 8 - 51a: ac 01 movw r20, r24 - 51c: 4f 5f subi r20, 0xFF ; 255 - 51e: 5f 4f sbci r21, 0xFF ; 255 - 520: 42 17 cp r20, r18 - 522: 53 07 cpc r21, r19 - 524: 09 f4 brne .+2 ; 0x528 <hdlc_get_data_with_state+0xe4> - 526: 50 c0 rjmp .+160 ; 0x5c8 <hdlc_get_data_with_state+0x184> - 528: 16 96 adiw r26, 0x06 ; 6 - 52a: 3c 93 st X, r19 - 52c: 2e 93 st -X, r18 - 52e: 15 97 sbiw r26, 0x05 ; 5 - 530: 5d c0 rjmp .+186 ; 0x5ec <hdlc_get_data_with_state+0x1a8> - 532: bd e7 ldi r27, 0x7D ; 125 - 534: 5b 12 cpse r5, r27 - 536: 04 c0 rjmp .+8 ; 0x540 <hdlc_get_data_with_state+0xfc> - 538: eb 81 ldd r30, Y+3 ; 0x03 - 53a: fc 81 ldd r31, Y+4 ; 0x04 - 53c: 30 82 st Z, r3 - 53e: 3d c0 rjmp .+122 ; 0x5ba <hdlc_get_data_with_state+0x176> - 540: ab 81 ldd r26, Y+3 ; 0x03 - 542: bc 81 ldd r27, Y+4 ; 0x04 - 544: 8c 91 ld r24, X - 546: 88 23 and r24, r24 - 548: 19 f0 breq .+6 ; 0x550 <hdlc_get_data_with_state+0x10c> - 54a: 1c 92 st X, r1 - 54c: 50 80 ld r5, Z - 54e: 54 24 eor r5, r4 - 550: 65 2d mov r22, r5 - 552: eb 81 ldd r30, Y+3 ; 0x03 - 554: fc 81 ldd r31, Y+4 ; 0x04 - 556: 81 81 ldd r24, Z+1 ; 0x01 - 558: 92 81 ldd r25, Z+2 ; 0x02 - 55a: 0e 94 b8 01 call 0x370 ; 0x370 <calc_fcs> - 55e: ab 81 ldd r26, Y+3 ; 0x03 - 560: bc 81 ldd r27, Y+4 ; 0x04 - 562: 12 96 adiw r26, 0x02 ; 2 - 564: 9c 93 st X, r25 - 566: 8e 93 st -X, r24 - 568: 11 97 sbiw r26, 0x01 ; 1 - 56a: 17 96 adiw r26, 0x07 ; 7 - 56c: 2d 91 ld r18, X+ - 56e: 3c 91 ld r19, X - 570: 18 97 sbiw r26, 0x08 ; 8 - 572: 13 96 adiw r26, 0x03 ; 3 - 574: 8d 91 ld r24, X+ - 576: 9c 91 ld r25, X - 578: 14 97 sbiw r26, 0x04 ; 4 - 57a: 02 96 adiw r24, 0x02 ; 2 - 57c: 28 17 cp r18, r24 - 57e: 39 07 cpc r19, r25 - 580: 41 f4 brne .+16 ; 0x592 <hdlc_get_data_with_state+0x14e> - 582: 85 2d mov r24, r5 - 584: 0e 94 e5 01 call 0x3ca ; 0x3ca <hdlc_get_control_type> - 588: e9 81 ldd r30, Y+1 ; 0x01 - 58a: fa 81 ldd r31, Y+2 ; 0x02 - 58c: 91 83 std Z+1, r25 ; 0x01 - 58e: 80 83 st Z, r24 - 590: 14 c0 rjmp .+40 ; 0x5ba <hdlc_get_data_with_state+0x176> - 592: 82 17 cp r24, r18 - 594: 93 07 cpc r25, r19 - 596: 8c f4 brge .+34 ; 0x5ba <hdlc_get_data_with_state+0x176> - 598: ab 81 ldd r26, Y+3 ; 0x03 - 59a: bc 81 ldd r27, Y+4 ; 0x04 - 59c: 19 96 adiw r26, 0x09 ; 9 - 59e: 8d 91 ld r24, X+ - 5a0: 9c 91 ld r25, X - 5a2: 1a 97 sbiw r26, 0x0a ; 10 - 5a4: 9c 01 movw r18, r24 - 5a6: 2f 5f subi r18, 0xFF ; 255 - 5a8: 3f 4f sbci r19, 0xFF ; 255 - 5aa: 1a 96 adiw r26, 0x0a ; 10 - 5ac: 3c 93 st X, r19 - 5ae: 2e 93 st -X, r18 - 5b0: 19 97 sbiw r26, 0x09 ; 9 - 5b2: f3 01 movw r30, r6 - 5b4: e8 0f add r30, r24 - 5b6: f9 1f adc r31, r25 - 5b8: 50 82 st Z, r5 - 5ba: eb 81 ldd r30, Y+3 ; 0x03 - 5bc: fc 81 ldd r31, Y+4 ; 0x04 - 5be: 87 81 ldd r24, Z+7 ; 0x07 - 5c0: 90 85 ldd r25, Z+8 ; 0x08 - 5c2: 01 96 adiw r24, 0x01 ; 1 - 5c4: 90 87 std Z+8, r25 ; 0x08 - 5c6: 87 83 std Z+7, r24 ; 0x07 - 5c8: ff ef ldi r31, 0xFF ; 255 - 5ca: cf 1a sub r12, r31 - 5cc: df 0a sbc r13, r31 - 5ce: 0f 5f subi r16, 0xFF ; 255 - 5d0: 1f 4f sbci r17, 0xFF ; 255 - 5d2: 8c 14 cp r8, r12 - 5d4: 9d 04 cpc r9, r13 - 5d6: 09 f0 breq .+2 ; 0x5da <hdlc_get_data_with_state+0x196> - 5d8: 73 cf rjmp .-282 ; 0x4c0 <hdlc_get_data_with_state+0x7c> - 5da: ab 81 ldd r26, Y+3 ; 0x03 - 5dc: bc 81 ldd r27, Y+4 ; 0x04 - 5de: 13 96 adiw r26, 0x03 ; 3 - 5e0: 8d 91 ld r24, X+ - 5e2: 9c 91 ld r25, X - 5e4: 14 97 sbiw r26, 0x04 ; 4 - 5e6: 99 23 and r25, r25 - 5e8: 3c f0 brlt .+14 ; 0x5f8 <hdlc_get_data_with_state+0x1b4> - 5ea: 64 01 movw r12, r8 - 5ec: eb 81 ldd r30, Y+3 ; 0x03 - 5ee: fc 81 ldd r31, Y+4 ; 0x04 - 5f0: 25 81 ldd r18, Z+5 ; 0x05 - 5f2: 36 81 ldd r19, Z+6 ; 0x06 - 5f4: 33 23 and r19, r19 - 5f6: 34 f4 brge .+12 ; 0x604 <hdlc_get_data_with_state+0x1c0> - 5f8: d7 01 movw r26, r14 - 5fa: 1d 92 st X+, r1 - 5fc: 1c 92 st X, r1 - 5fe: 8e e0 ldi r24, 0x0E ; 14 - 600: 92 ed ldi r25, 0xD2 ; 210 - 602: 30 c0 rjmp .+96 ; 0x664 <hdlc_get_data_with_state+0x220> - 604: 04 96 adiw r24, 0x04 ; 4 - 606: 28 17 cp r18, r24 - 608: 39 07 cpc r19, r25 - 60a: 3c f0 brlt .+14 ; 0x61a <hdlc_get_data_with_state+0x1d6> - 60c: eb 81 ldd r30, Y+3 ; 0x03 - 60e: fc 81 ldd r31, Y+4 ; 0x04 - 610: 81 81 ldd r24, Z+1 ; 0x01 - 612: 92 81 ldd r25, Z+2 ; 0x02 - 614: 88 3b cpi r24, 0xB8 ; 184 - 616: 90 4f sbci r25, 0xF0 ; 240 - 618: 31 f0 breq .+12 ; 0x626 <hdlc_get_data_with_state+0x1e2> - 61a: d7 01 movw r26, r14 - 61c: cd 92 st X+, r12 - 61e: dc 92 st X, r13 - 620: 0e e0 ldi r16, 0x0E ; 14 - 622: 12 ed ldi r17, 0xD2 ; 210 - 624: 0a c0 rjmp .+20 ; 0x63a <hdlc_get_data_with_state+0x1f6> - 626: eb 81 ldd r30, Y+3 ; 0x03 - 628: fc 81 ldd r31, Y+4 ; 0x04 - 62a: 81 85 ldd r24, Z+9 ; 0x09 - 62c: 92 85 ldd r25, Z+10 ; 0x0a - 62e: 02 97 sbiw r24, 0x02 ; 2 - 630: d7 01 movw r26, r14 - 632: 8d 93 st X+, r24 - 634: 9c 93 st X, r25 - 636: 0c 2d mov r16, r12 - 638: 1d 2d mov r17, r13 - 63a: 8b 81 ldd r24, Y+3 ; 0x03 - 63c: 9c 81 ldd r25, Y+4 ; 0x04 - 63e: 0e 94 13 02 call 0x426 ; 0x426 <hdlc_get_data_reset_with_state> - 642: 80 2f mov r24, r16 - 644: 91 2f mov r25, r17 - 646: 0e c0 rjmp .+28 ; 0x664 <hdlc_get_data_with_state+0x220> - 648: 8e e0 ldi r24, 0x0E ; 14 - 64a: 92 ed ldi r25, 0xD2 ; 210 - 64c: 0b c0 rjmp .+22 ; 0x664 <hdlc_get_data_with_state+0x220> - 64e: 8e e0 ldi r24, 0x0E ; 14 - 650: 92 ed ldi r25, 0xD2 ; 210 - 652: 08 c0 rjmp .+16 ; 0x664 <hdlc_get_data_with_state+0x220> - 654: 8e e0 ldi r24, 0x0E ; 14 - 656: 92 ed ldi r25, 0xD2 ; 210 - 658: 05 c0 rjmp .+10 ; 0x664 <hdlc_get_data_with_state+0x220> - 65a: 8e e0 ldi r24, 0x0E ; 14 - 65c: 92 ed ldi r25, 0xD2 ; 210 - 65e: 02 c0 rjmp .+4 ; 0x664 <hdlc_get_data_with_state+0x220> - 660: 8e e0 ldi r24, 0x0E ; 14 - 662: 92 ed ldi r25, 0xD2 ; 210 - 664: 0f 90 pop r0 - 666: 0f 90 pop r0 - 668: 0f 90 pop r0 - 66a: 0f 90 pop r0 - 66c: df 91 pop r29 - 66e: cf 91 pop r28 - 670: 1f 91 pop r17 - 672: 0f 91 pop r16 - 674: ff 90 pop r15 - 676: ef 90 pop r14 - 678: df 90 pop r13 - 67a: cf 90 pop r12 - 67c: bf 90 pop r11 - 67e: af 90 pop r10 - 680: 9f 90 pop r9 - 682: 8f 90 pop r8 - 684: 7f 90 pop r7 - 686: 6f 90 pop r6 - 688: 5f 90 pop r5 - 68a: 4f 90 pop r4 - 68c: 3f 90 pop r3 - 68e: 08 95 ret - -00000690 <hdlc_frame_data>: -} - -//int hdlc_frame_data(hdlc_control_t *control, const char *src, -// unsigned int src_len, char *dest, unsigned int *dest_len) -int hdlc_frame_data(hdlc_control_t *control, uint8_t *src, - size_t src_len, uint8_t *dest, size_t *dest_len){ - 690: 5f 92 push r5 - 692: 6f 92 push r6 - 694: 7f 92 push r7 - 696: 8f 92 push r8 - 698: 9f 92 push r9 - 69a: af 92 push r10 - 69c: bf 92 push r11 - 69e: cf 92 push r12 - 6a0: df 92 push r13 - 6a2: ef 92 push r14 - 6a4: ff 92 push r15 - 6a6: 0f 93 push r16 - 6a8: 1f 93 push r17 - 6aa: cf 93 push r28 - 6ac: df 93 push r29 - 6ae: 00 d0 rcall .+0 ; 0x6b0 <hdlc_frame_data+0x20> - 6b0: cd b7 in r28, 0x3d ; 61 - 6b2: de b7 in r29, 0x3e ; 62 - int dest_index = 0; - unsigned char value = 0; - FCS_SIZE fcs = FCS_INIT_VALUE; - - // Make sure that all parameters are valid - if (!control || (!src && (src_len > 0)) || !dest || !dest_len) { - 6b4: 00 97 sbiw r24, 0x00 ; 0 - 6b6: 09 f4 brne .+2 ; 0x6ba <hdlc_frame_data+0x2a> - 6b8: 73 c0 rjmp .+230 ; 0x7a0 <hdlc_frame_data+0x110> - 6ba: 61 15 cp r22, r1 - 6bc: 71 05 cpc r23, r1 - 6be: 21 f4 brne .+8 ; 0x6c8 <hdlc_frame_data+0x38> - 6c0: 41 15 cp r20, r1 - 6c2: 51 05 cpc r21, r1 - 6c4: 09 f0 breq .+2 ; 0x6c8 <hdlc_frame_data+0x38> - 6c6: 6f c0 rjmp .+222 ; 0x7a6 <hdlc_frame_data+0x116> - 6c8: 21 15 cp r18, r1 - 6ca: 31 05 cpc r19, r1 - 6cc: 09 f4 brne .+2 ; 0x6d0 <hdlc_frame_data+0x40> - 6ce: 6e c0 rjmp .+220 ; 0x7ac <hdlc_frame_data+0x11c> - 6d0: 01 15 cp r16, r1 - 6d2: 11 05 cpc r17, r1 - 6d4: 09 f4 brne .+2 ; 0x6d8 <hdlc_frame_data+0x48> - 6d6: 6d c0 rjmp .+218 ; 0x7b2 <hdlc_frame_data+0x122> - 6d8: 38 01 movw r6, r16 - 6da: 79 01 movw r14, r18 - 6dc: 5a 01 movw r10, r20 - 6de: 4b 01 movw r8, r22 - 6e0: 8c 01 movw r16, r24 - return -EINVAL; - } - - // Start by adding the start flag sequence - dest[dest_index++] = HDLC_FLAG_SEQUENCE; - 6e2: 81 e0 ldi r24, 0x01 ; 1 - 6e4: 90 e0 ldi r25, 0x00 ; 0 - 6e6: 9a 83 std Y+2, r25 ; 0x02 - 6e8: 89 83 std Y+1, r24 ; 0x01 - 6ea: 8e e7 ldi r24, 0x7E ; 126 - 6ec: f9 01 movw r30, r18 - 6ee: 80 83 st Z, r24 - - // Add the all-station address from HDLC (broadcast) - fcs = calc_fcs(fcs, HDLC_ALL_STATION_ADDR); - 6f0: 6f ef ldi r22, 0xFF ; 255 - 6f2: 8f ef ldi r24, 0xFF ; 255 - 6f4: 9f ef ldi r25, 0xFF ; 255 - 6f6: 0e 94 b8 01 call 0x370 ; 0x370 <calc_fcs> - 6fa: 6c 01 movw r12, r24 - hdlc_escape_value(HDLC_ALL_STATION_ADDR, dest, &dest_index); - 6fc: ae 01 movw r20, r28 - 6fe: 4f 5f subi r20, 0xFF ; 255 - 700: 5f 4f sbci r21, 0xFF ; 255 - 702: b7 01 movw r22, r14 - 704: 8f ef ldi r24, 0xFF ; 255 - 706: 0e 94 c6 01 call 0x38c ; 0x38c <hdlc_escape_value> - - // Add the framed control field value - value = hdlc_frame_control_type(control); - 70a: c8 01 movw r24, r16 - 70c: 0e 94 f8 01 call 0x3f0 ; 0x3f0 <hdlc_frame_control_type> - 710: 58 2e mov r5, r24 - fcs = calc_fcs(fcs, value); - 712: 68 2f mov r22, r24 - 714: c6 01 movw r24, r12 - 716: 0e 94 b8 01 call 0x370 ; 0x370 <calc_fcs> - 71a: 6c 01 movw r12, r24 - hdlc_escape_value(value, dest, &dest_index); - 71c: ae 01 movw r20, r28 - 71e: 4f 5f subi r20, 0xFF ; 255 - 720: 5f 4f sbci r21, 0xFF ; 255 - 722: b7 01 movw r22, r14 - 724: 85 2d mov r24, r5 - 726: 0e 94 c6 01 call 0x38c ; 0x38c <hdlc_escape_value> - - // Only DATA frames should contain data - if (control->frame == I_FRAME) { - 72a: f8 01 movw r30, r16 - 72c: 80 81 ld r24, Z - 72e: 81 11 cpse r24, r1 - 730: 19 c0 rjmp .+50 ; 0x764 <hdlc_frame_data+0xd4> - // Calculate FCS and escape data - for (i = 0; i < src_len; i++) { - 732: a1 14 cp r10, r1 - 734: b1 04 cpc r11, r1 - 736: b1 f0 breq .+44 ; 0x764 <hdlc_frame_data+0xd4> - 738: 84 01 movw r16, r8 - 73a: 8a 0c add r8, r10 - 73c: 9b 1c adc r9, r11 - 73e: 58 01 movw r10, r16 - fcs = calc_fcs(fcs, src[i]); - 740: f8 01 movw r30, r16 - 742: 61 91 ld r22, Z+ - 744: 8f 01 movw r16, r30 - 746: c6 01 movw r24, r12 - 748: 0e 94 b8 01 call 0x370 ; 0x370 <calc_fcs> - 74c: 6c 01 movw r12, r24 - hdlc_escape_value(src[i], dest, &dest_index); - 74e: ae 01 movw r20, r28 - 750: 4f 5f subi r20, 0xFF ; 255 - 752: 5f 4f sbci r21, 0xFF ; 255 - 754: b7 01 movw r22, r14 - 756: f5 01 movw r30, r10 - 758: 80 81 ld r24, Z - 75a: 0e 94 c6 01 call 0x38c ; 0x38c <hdlc_escape_value> - hdlc_escape_value(value, dest, &dest_index); - - // Only DATA frames should contain data - if (control->frame == I_FRAME) { - // Calculate FCS and escape data - for (i = 0; i < src_len; i++) { - 75e: 80 16 cp r8, r16 - 760: 91 06 cpc r9, r17 - 762: 69 f7 brne .-38 ; 0x73e <hdlc_frame_data+0xae> - hdlc_escape_value(src[i], dest, &dest_index); - } - } - - // Invert the FCS value accordingly to the specification - fcs ^= FCS_INVERT_MASK; - 764: c0 94 com r12 - 766: d0 94 com r13 - - // Run through the FCS bytes and escape the values - for (i = 0; i < sizeof(fcs); i++) { - value = ((fcs >> (8 * i)) & 0xFF); - hdlc_escape_value(value, dest, &dest_index); - 768: ae 01 movw r20, r28 - 76a: 4f 5f subi r20, 0xFF ; 255 - 76c: 5f 4f sbci r21, 0xFF ; 255 - 76e: b7 01 movw r22, r14 - 770: 8c 2d mov r24, r12 - 772: 0e 94 c6 01 call 0x38c ; 0x38c <hdlc_escape_value> - 776: ae 01 movw r20, r28 - 778: 4f 5f subi r20, 0xFF ; 255 - 77a: 5f 4f sbci r21, 0xFF ; 255 - 77c: b7 01 movw r22, r14 - 77e: 8d 2d mov r24, r13 - 780: 0e 94 c6 01 call 0x38c ; 0x38c <hdlc_escape_value> - } - - // Add end flag sequence and update length of frame - dest[dest_index++] = HDLC_FLAG_SEQUENCE; - 784: 89 81 ldd r24, Y+1 ; 0x01 - 786: 9a 81 ldd r25, Y+2 ; 0x02 - 788: f7 01 movw r30, r14 - 78a: e8 0f add r30, r24 - 78c: f9 1f adc r31, r25 - 78e: 2e e7 ldi r18, 0x7E ; 126 - 790: 20 83 st Z, r18 - *dest_len = dest_index; - 792: 01 96 adiw r24, 0x01 ; 1 - 794: f3 01 movw r30, r6 - 796: 91 83 std Z+1, r25 ; 0x01 - 798: 80 83 st Z, r24 - - return 0; - 79a: 80 e0 ldi r24, 0x00 ; 0 - 79c: 90 e0 ldi r25, 0x00 ; 0 - 79e: 0b c0 rjmp .+22 ; 0x7b6 <hdlc_frame_data+0x126> - unsigned char value = 0; - FCS_SIZE fcs = FCS_INIT_VALUE; - - // Make sure that all parameters are valid - if (!control || (!src && (src_len > 0)) || !dest || !dest_len) { - return -EINVAL; - 7a0: 8e e0 ldi r24, 0x0E ; 14 - 7a2: 92 ed ldi r25, 0xD2 ; 210 - 7a4: 08 c0 rjmp .+16 ; 0x7b6 <hdlc_frame_data+0x126> - 7a6: 8e e0 ldi r24, 0x0E ; 14 - 7a8: 92 ed ldi r25, 0xD2 ; 210 - 7aa: 05 c0 rjmp .+10 ; 0x7b6 <hdlc_frame_data+0x126> - 7ac: 8e e0 ldi r24, 0x0E ; 14 - 7ae: 92 ed ldi r25, 0xD2 ; 210 - 7b0: 02 c0 rjmp .+4 ; 0x7b6 <hdlc_frame_data+0x126> - 7b2: 8e e0 ldi r24, 0x0E ; 14 - 7b4: 92 ed ldi r25, 0xD2 ; 210 - // Add end flag sequence and update length of frame - dest[dest_index++] = HDLC_FLAG_SEQUENCE; - *dest_len = dest_index; - - return 0; - 7b6: 0f 90 pop r0 - 7b8: 0f 90 pop r0 - 7ba: df 91 pop r29 - 7bc: cf 91 pop r28 - 7be: 1f 91 pop r17 - 7c0: 0f 91 pop r16 - 7c2: ff 90 pop r15 - 7c4: ef 90 pop r14 - 7c6: df 90 pop r13 - 7c8: cf 90 pop r12 - 7ca: bf 90 pop r11 - 7cc: af 90 pop r10 - 7ce: 9f 90 pop r9 - 7d0: 8f 90 pop r8 - 7d2: 7f 90 pop r7 - 7d4: 6f 90 pop r6 - 7d6: 5f 90 pop r5 - 7d8: 08 95 ret - -000007da <lcd_read>: - register char c; - - while ( (c = pgm_read_byte(progmem_s++)) ) { - lcd_putc(c); - } -} - 7da: cf 93 push r28 - 7dc: 88 23 and r24, r24 - 7de: 31 f0 breq .+12 ; 0x7ec <lcd_read+0x12> - 7e0: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 7e4: 81 60 ori r24, 0x01 ; 1 - 7e6: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 7ea: 05 c0 rjmp .+10 ; 0x7f6 <lcd_read+0x1c> - 7ec: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 7f0: 8e 7f andi r24, 0xFE ; 254 - 7f2: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 7f6: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 7fa: 82 60 ori r24, 0x02 ; 2 - 7fc: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 800: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - 804: 80 e0 ldi r24, 0x00 ; 0 - 806: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - 80a: 62 e0 ldi r22, 0x02 ; 2 - 80c: 80 e0 ldi r24, 0x00 ; 0 - 80e: 0e 94 d6 06 call 0xdac ; 0xdac <pcf8574_setoutputpinhigh> - 812: 00 c0 rjmp .+0 ; 0x814 <lcd_read+0x3a> - 814: 64 e0 ldi r22, 0x04 ; 4 - 816: 80 e0 ldi r24, 0x00 ; 0 - 818: 0e 94 81 06 call 0xd02 ; 0xd02 <pcf8574_getoutputpin> - 81c: c8 2f mov r28, r24 - 81e: 62 e0 ldi r22, 0x02 ; 2 - 820: 80 e0 ldi r24, 0x00 ; 0 - 822: 0e 94 da 06 call 0xdb4 ; 0xdb4 <pcf8574_setoutputpinlow> - 826: 00 c0 rjmp .+0 ; 0x828 <lcd_read+0x4e> - 828: 62 e0 ldi r22, 0x02 ; 2 - 82a: 80 e0 ldi r24, 0x00 ; 0 - 82c: 0e 94 d6 06 call 0xdac ; 0xdac <pcf8574_setoutputpinhigh> - 830: 00 c0 rjmp .+0 ; 0x832 <lcd_read+0x58> - 832: 64 e0 ldi r22, 0x04 ; 4 - 834: 80 e0 ldi r24, 0x00 ; 0 - 836: 0e 94 81 06 call 0xd02 ; 0xd02 <pcf8574_getoutputpin> - 83a: c2 95 swap r28 - 83c: c0 7f andi r28, 0xF0 ; 240 - 83e: 8f 70 andi r24, 0x0F ; 15 - 840: c8 2b or r28, r24 - 842: 62 e0 ldi r22, 0x02 ; 2 - 844: 80 e0 ldi r24, 0x00 ; 0 - 846: 0e 94 da 06 call 0xdb4 ; 0xdb4 <pcf8574_setoutputpinlow> - 84a: 8c 2f mov r24, r28 - 84c: cf 91 pop r28 - 84e: 08 95 ret - -00000850 <lcd_waitbusy>: - 850: 80 e0 ldi r24, 0x00 ; 0 - 852: 0e 94 ed 03 call 0x7da ; 0x7da <lcd_read> - 856: 88 23 and r24, r24 - 858: dc f3 brlt .-10 ; 0x850 <lcd_waitbusy> - 85a: 00 c0 rjmp .+0 ; 0x85c <lcd_waitbusy+0xc> - 85c: 80 e0 ldi r24, 0x00 ; 0 - 85e: 0e 94 ed 03 call 0x7da ; 0x7da <lcd_read> - 862: 08 95 ret - -00000864 <toggle_e>: - 864: 62 e0 ldi r22, 0x02 ; 2 - 866: 80 e0 ldi r24, 0x00 ; 0 - 868: 0e 94 d6 06 call 0xdac ; 0xdac <pcf8574_setoutputpinhigh> - 86c: 00 c0 rjmp .+0 ; 0x86e <toggle_e+0xa> - 86e: 62 e0 ldi r22, 0x02 ; 2 - 870: 80 e0 ldi r24, 0x00 ; 0 - 872: 0e 94 da 06 call 0xdb4 ; 0xdb4 <pcf8574_setoutputpinlow> - 876: 08 95 ret - -00000878 <lcd_write>: - 878: cf 93 push r28 - 87a: c8 2f mov r28, r24 - 87c: 66 23 and r22, r22 - 87e: 31 f0 breq .+12 ; 0x88c <lcd_write+0x14> - 880: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 884: 81 60 ori r24, 0x01 ; 1 - 886: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 88a: 05 c0 rjmp .+10 ; 0x896 <lcd_write+0x1e> - 88c: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 890: 8e 7f andi r24, 0xFE ; 254 - 892: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 896: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 89a: 8d 7f andi r24, 0xFD ; 253 - 89c: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8a0: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - 8a4: 80 e0 ldi r24, 0x00 ; 0 - 8a6: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - 8aa: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8ae: 8f 77 andi r24, 0x7F ; 127 - 8b0: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8b4: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8b8: 8f 7b andi r24, 0xBF ; 191 - 8ba: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8be: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8c2: 8f 7d andi r24, 0xDF ; 223 - 8c4: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8c8: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8cc: 8f 7e andi r24, 0xEF ; 239 - 8ce: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8d2: cc 23 and r28, r28 - 8d4: 2c f4 brge .+10 ; 0x8e0 <lcd_write+0x68> - 8d6: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8da: 80 68 ori r24, 0x80 ; 128 - 8dc: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8e0: c6 ff sbrs r28, 6 - 8e2: 05 c0 rjmp .+10 ; 0x8ee <lcd_write+0x76> - 8e4: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8e8: 80 64 ori r24, 0x40 ; 64 - 8ea: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8ee: c5 ff sbrs r28, 5 - 8f0: 05 c0 rjmp .+10 ; 0x8fc <lcd_write+0x84> - 8f2: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 8f6: 80 62 ori r24, 0x20 ; 32 - 8f8: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 8fc: c4 ff sbrs r28, 4 - 8fe: 05 c0 rjmp .+10 ; 0x90a <__stack+0xb> - 900: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 904: 80 61 ori r24, 0x10 ; 16 - 906: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 90a: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - 90e: 80 e0 ldi r24, 0x00 ; 0 - 910: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - 914: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> - 918: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 91c: 8f 77 andi r24, 0x7F ; 127 - 91e: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 922: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 926: 8f 7b andi r24, 0xBF ; 191 - 928: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 92c: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 930: 8f 7d andi r24, 0xDF ; 223 - 932: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 936: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 93a: 8f 7e andi r24, 0xEF ; 239 - 93c: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 940: c3 ff sbrs r28, 3 - 942: 05 c0 rjmp .+10 ; 0x94e <__stack+0x4f> - 944: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 948: 80 68 ori r24, 0x80 ; 128 - 94a: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 94e: c2 ff sbrs r28, 2 - 950: 05 c0 rjmp .+10 ; 0x95c <__stack+0x5d> - 952: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 956: 80 64 ori r24, 0x40 ; 64 - 958: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 95c: c1 ff sbrs r28, 1 - 95e: 05 c0 rjmp .+10 ; 0x96a <__stack+0x6b> - 960: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 964: 80 62 ori r24, 0x20 ; 32 - 966: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 96a: c0 ff sbrs r28, 0 - 96c: 05 c0 rjmp .+10 ; 0x978 <__stack+0x79> - 96e: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 972: 80 61 ori r24, 0x10 ; 16 - 974: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 978: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - 97c: 80 e0 ldi r24, 0x00 ; 0 - 97e: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - 982: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> - 986: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 98a: 80 61 ori r24, 0x10 ; 16 - 98c: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 990: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 994: 80 62 ori r24, 0x20 ; 32 - 996: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 99a: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 99e: 80 64 ori r24, 0x40 ; 64 - 9a0: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 9a4: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 9a8: 80 68 ori r24, 0x80 ; 128 - 9aa: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 9ae: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - 9b2: 80 e0 ldi r24, 0x00 ; 0 - 9b4: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - 9b8: cf 91 pop r28 - 9ba: 08 95 ret - -000009bc <lcd_command>: - 9bc: cf 93 push r28 - 9be: c8 2f mov r28, r24 - 9c0: 0e 94 28 04 call 0x850 ; 0x850 <lcd_waitbusy> - 9c4: 60 e0 ldi r22, 0x00 ; 0 - 9c6: 8c 2f mov r24, r28 - 9c8: 0e 94 3c 04 call 0x878 ; 0x878 <lcd_write> - 9cc: cf 91 pop r28 - 9ce: 08 95 ret - -000009d0 <lcd_gotoxy>: - 9d0: 61 11 cpse r22, r1 - 9d2: 04 c0 rjmp .+8 ; 0x9dc <lcd_gotoxy+0xc> - 9d4: 80 58 subi r24, 0x80 ; 128 - 9d6: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - 9da: 08 95 ret - 9dc: 80 54 subi r24, 0x40 ; 64 - 9de: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - 9e2: 08 95 ret - -000009e4 <lcd_clrscr>: - 9e4: 81 e0 ldi r24, 0x01 ; 1 - 9e6: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - 9ea: 08 95 ret - -000009ec <lcd_led>: - 9ec: 88 23 and r24, r24 - 9ee: 31 f0 breq .+12 ; 0x9fc <lcd_led+0x10> - 9f0: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - 9f4: 87 7f andi r24, 0xF7 ; 247 - 9f6: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - 9fa: 05 c0 rjmp .+10 ; 0xa06 <lcd_led+0x1a> - 9fc: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - a00: 88 60 ori r24, 0x08 ; 8 - a02: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - a06: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - a0a: 80 e0 ldi r24, 0x00 ; 0 - a0c: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - a10: 08 95 ret - -00000a12 <lcd_home>: - a12: 82 e0 ldi r24, 0x02 ; 2 - a14: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - a18: 08 95 ret - -00000a1a <lcd_putc>: - a1a: cf 93 push r28 - a1c: c8 2f mov r28, r24 - a1e: 0e 94 28 04 call 0x850 ; 0x850 <lcd_waitbusy> - a22: ca 30 cpi r28, 0x0A ; 10 - a24: 49 f4 brne .+18 ; 0xa38 <lcd_putc+0x1e> - a26: 80 34 cpi r24, 0x40 ; 64 - a28: 10 f0 brcs .+4 ; 0xa2e <lcd_putc+0x14> - a2a: 80 e0 ldi r24, 0x00 ; 0 - a2c: 01 c0 rjmp .+2 ; 0xa30 <lcd_putc+0x16> - a2e: 80 e4 ldi r24, 0x40 ; 64 - a30: 80 58 subi r24, 0x80 ; 128 - a32: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - a36: 13 c0 rjmp .+38 ; 0xa5e <lcd_putc+0x44> - a38: 80 31 cpi r24, 0x10 ; 16 - a3a: 29 f4 brne .+10 ; 0xa46 <lcd_putc+0x2c> - a3c: 60 e0 ldi r22, 0x00 ; 0 - a3e: 80 ec ldi r24, 0xC0 ; 192 - a40: 0e 94 3c 04 call 0x878 ; 0x878 <lcd_write> - a44: 06 c0 rjmp .+12 ; 0xa52 <lcd_putc+0x38> - a46: 80 35 cpi r24, 0x50 ; 80 - a48: 21 f4 brne .+8 ; 0xa52 <lcd_putc+0x38> - a4a: 60 e0 ldi r22, 0x00 ; 0 - a4c: 80 e8 ldi r24, 0x80 ; 128 - a4e: 0e 94 3c 04 call 0x878 ; 0x878 <lcd_write> - a52: 0e 94 28 04 call 0x850 ; 0x850 <lcd_waitbusy> - a56: 61 e0 ldi r22, 0x01 ; 1 - a58: 8c 2f mov r24, r28 - a5a: 0e 94 3c 04 call 0x878 ; 0x878 <lcd_write> - a5e: cf 91 pop r28 - a60: 08 95 ret - -00000a62 <lcd_puts>: - a62: cf 93 push r28 - a64: df 93 push r29 - a66: ec 01 movw r28, r24 - a68: 21 96 adiw r28, 0x01 ; 1 - a6a: fc 01 movw r30, r24 - a6c: 80 81 ld r24, Z - a6e: 88 23 and r24, r24 - a70: 29 f0 breq .+10 ; 0xa7c <lcd_puts+0x1a> - a72: 0e 94 0d 05 call 0xa1a ; 0xa1a <lcd_putc> - a76: 89 91 ld r24, Y+ - a78: 81 11 cpse r24, r1 - a7a: fb cf rjmp .-10 ; 0xa72 <lcd_puts+0x10> - a7c: df 91 pop r29 - a7e: cf 91 pop r28 - a80: 08 95 ret - -00000a82 <lcd_init>: - -// инициализация дисплея -void lcd_init(uint8_t dispAttr) -{ - a82: 1f 93 push r17 - a84: cf 93 push r28 - a86: df 93 push r29 - a88: 18 2f mov r17, r24 - #if LCD_PCF8574_INIT == 1 - //инициализация pcf - pcf8574_init(); - a8a: 0e 94 78 06 call 0xcf0 ; 0xcf0 <pcf8574_init> - #endif - - dataport = 0; - a8e: 10 92 42 03 sts 0x0342, r1 ; 0x800342 <__data_end> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - a92: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - a96: 80 e0 ldi r24, 0x00 ; 0 - a98: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> -static inline void _delayFourCycles(unsigned int __count) -{ - if ( __count == 0 ) - __asm__ __volatile__( "rjmp 1f\n 1:" ); - else - __asm__ __volatile__ ( - a9c: 80 ea ldi r24, 0xA0 ; 160 - a9e: 9f e0 ldi r25, 0x0F ; 15 - aa0: 01 97 sbiw r24, 0x01 ; 1 - aa2: f1 f7 brne .-4 ; 0xaa0 <lcd_init+0x1e> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - - delay(16000); - - // первоначальная запись на ЖК-дисплей — 8 бит - dataport |= _BV(LCD_DATA1_PIN); // _BV(LCD_FUNCTION)>>4; - aa4: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - aa8: 80 62 ori r24, 0x20 ; 32 - aaa: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - dataport |= _BV(LCD_DATA0_PIN); // _BV(LCD_FUNCTION_8BIT)>>4; - aae: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - ab2: 80 61 ori r24, 0x10 ; 16 - ab4: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - ab8: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - abc: 80 e0 ldi r24, 0x00 ; 0 - abe: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - - // дрючим дисплей чтобы он начал работать - lcd_e_toggle(); - ac2: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> -static inline void _delayFourCycles(unsigned int __count) -{ - if ( __count == 0 ) - __asm__ __volatile__( "rjmp 1f\n 1:" ); - else - __asm__ __volatile__ ( - ac6: 80 ee ldi r24, 0xE0 ; 224 - ac8: 94 e0 ldi r25, 0x04 ; 4 - aca: 01 97 sbiw r24, 0x01 ; 1 - acc: f1 f7 brne .-4 ; 0xaca <lcd_init+0x48> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - - // дрючим дисплей чтобы он начал работать - lcd_e_toggle(); - delay(4992); - lcd_e_toggle(); - ace: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> -static inline void _delayFourCycles(unsigned int __count) -{ - if ( __count == 0 ) - __asm__ __volatile__( "rjmp 1f\n 1:" ); - else - __asm__ __volatile__ ( - ad2: c0 e1 ldi r28, 0x10 ; 16 - ad4: d0 e0 ldi r29, 0x00 ; 0 - ad6: ce 01 movw r24, r28 - ad8: 01 97 sbiw r24, 0x01 ; 1 - ada: f1 f7 brne .-4 ; 0xad8 <lcd_init+0x56> - // дрючим дисплей чтобы он начал работать - lcd_e_toggle(); - delay(4992); - lcd_e_toggle(); - delay(64); - lcd_e_toggle(); - adc: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> -static inline void _delayFourCycles(unsigned int __count) -{ - if ( __count == 0 ) - __asm__ __volatile__( "rjmp 1f\n 1:" ); - else - __asm__ __volatile__ ( - ae0: ce 01 movw r24, r28 - ae2: 01 97 sbiw r24, 0x01 ; 1 - ae4: f1 f7 brne .-4 ; 0xae2 <lcd_init+0x60> - delay(64); - lcd_e_toggle(); - delay(64); - - // переходим в 4 битный режим - dataport &= ~_BV(LCD_DATA0_PIN); - ae6: 80 91 42 03 lds r24, 0x0342 ; 0x800342 <__data_end> - aea: 8f 7e andi r24, 0xEF ; 239 - aec: 80 93 42 03 sts 0x0342, r24 ; 0x800342 <__data_end> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - af0: 60 91 42 03 lds r22, 0x0342 ; 0x800342 <__data_end> - af4: 80 e0 ldi r24, 0x00 ; 0 - af6: 0e 94 95 06 call 0xd2a ; 0xd2a <pcf8574_setoutput> - lcd_e_toggle(); - afa: 0e 94 32 04 call 0x864 ; 0x864 <toggle_e> -static inline void _delayFourCycles(unsigned int __count) -{ - if ( __count == 0 ) - __asm__ __volatile__( "rjmp 1f\n 1:" ); - else - __asm__ __volatile__ ( - afe: 21 97 sbiw r28, 0x01 ; 1 - b00: f1 f7 brne .-4 ; 0xafe <lcd_init+0x7c> - pcf8574_setoutput(LCD_PCF8574_DEVICEID, dataport); - lcd_e_toggle(); - delay(64); - - - lcd_command(LCD_FUNCTION_DEFAULT); // настраиваем кол-во строк - b02: 88 e2 ldi r24, 0x28 ; 40 - b04: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - lcd_command(LCD_DISP_OFF); // вырубаем дисплей - b08: 88 e0 ldi r24, 0x08 ; 8 - b0a: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - lcd_clrscr(); // чистим экран - b0e: 0e 94 f2 04 call 0x9e4 ; 0x9e4 <lcd_clrscr> - lcd_command(LCD_MODE_DEFAULT); // запускаемся в стандартном режиме - b12: 86 e0 ldi r24, 0x06 ; 6 - b14: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> - lcd_command(dispAttr); // отправляем настройки - b18: 81 2f mov r24, r17 - b1a: 0e 94 de 04 call 0x9bc ; 0x9bc <lcd_command> -} - b1e: df 91 pop r29 - b20: cf 91 pop r28 - b22: 1f 91 pop r17 - b24: 08 95 ret - -00000b26 <Lcd_inciliation>: -struct TextCounter textCounter; - -//struct TextCounter textCounter; - -void Lcd_inciliation() { - lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея - b26: 8d e0 ldi r24, 0x0D ; 13 - b28: 0e 94 41 05 call 0xa82 ; 0xa82 <lcd_init> - lcd_home(); // домой курсор - b2c: 0e 94 09 05 call 0xa12 ; 0xa12 <lcd_home> - lcd_led(0); // вкл подсветки - b30: 80 e0 ldi r24, 0x00 ; 0 - b32: 0e 94 f6 04 call 0x9ec ; 0x9ec <lcd_led> - b36: 08 95 ret - -00000b38 <fillBuffer1>: - //textCounter.startTime = millis(); // Запоминаем время запуска программы - //Из за строчки выше все ломается -} - -void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) { - b38: cf 92 push r12 - b3a: df 92 push r13 - b3c: ef 92 push r14 - b3e: ff 92 push r15 - b40: 0f 93 push r16 - b42: 1f 93 push r17 - b44: cf 93 push r28 - b46: df 93 push r29 - b48: 8c 01 movw r16, r24 - b4a: 7b 01 movw r14, r22 - b4c: c9 01 movw r24, r18 - int startIndex = incrementValue % strlen(source); // Определяем начальный индекс на основе incrementValue - b4e: f8 01 movw r30, r16 - b50: 01 90 ld r0, Z+ - b52: 00 20 and r0, r0 - b54: e9 f7 brne .-6 ; 0xb50 <fillBuffer1+0x18> - b56: 31 97 sbiw r30, 0x01 ; 1 - b58: bf 01 movw r22, r30 - b5a: 60 1b sub r22, r16 - b5c: 71 0b sbc r23, r17 - b5e: 0e 94 76 0b call 0x16ec ; 0x16ec <__udivmodhi4> - b62: 67 01 movw r12, r14 - b64: 20 e1 ldi r18, 0x10 ; 16 - b66: c2 0e add r12, r18 - b68: d1 1c adc r13, r1 - b6a: e7 01 movw r28, r14 - int endIndex = startIndex + 16; - - for (int i = 0; i < 16; ++i) { - buffer[i] = source[(startIndex + i) % strlen(source)]; - b6c: 9c 01 movw r18, r24 - b6e: 2e 19 sub r18, r14 - b70: 3f 09 sbc r19, r15 - b72: f8 01 movw r30, r16 - b74: 01 90 ld r0, Z+ - b76: 00 20 and r0, r0 - b78: e9 f7 brne .-6 ; 0xb74 <fillBuffer1+0x3c> - b7a: 31 97 sbiw r30, 0x01 ; 1 - b7c: bf 01 movw r22, r30 - b7e: 60 1b sub r22, r16 - b80: 71 0b sbc r23, r17 - b82: c9 01 movw r24, r18 - b84: 8c 0f add r24, r28 - b86: 9d 1f adc r25, r29 - b88: 0e 94 76 0b call 0x16ec ; 0x16ec <__udivmodhi4> - b8c: f8 01 movw r30, r16 - b8e: e8 0f add r30, r24 - b90: f9 1f adc r31, r25 - b92: 80 81 ld r24, Z - b94: 89 93 st Y+, r24 - -void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) { - int startIndex = incrementValue % strlen(source); // Определяем начальный индекс на основе incrementValue - int endIndex = startIndex + 16; - - for (int i = 0; i < 16; ++i) { - b96: cc 15 cp r28, r12 - b98: dd 05 cpc r29, r13 - b9a: 59 f7 brne .-42 ; 0xb72 <fillBuffer1+0x3a> - buffer[i] = source[(startIndex + i) % strlen(source)]; - } - buffer[16] = '\0'; // Установка нулевого символа в конце буфера - b9c: f7 01 movw r30, r14 - b9e: 10 8a std Z+16, r1 ; 0x10 -} - ba0: df 91 pop r29 - ba2: cf 91 pop r28 - ba4: 1f 91 pop r17 - ba6: 0f 91 pop r16 - ba8: ff 90 pop r15 - baa: ef 90 pop r14 - bac: df 90 pop r13 - bae: cf 90 pop r12 - bb0: 08 95 ret - -00000bb2 <fillBuffer2>: - -void fillBuffer2(float value1, float value2, float value3, char* buffer, size_t bufferSize) { - bb2: af 92 push r10 - bb4: bf 92 push r11 - bb6: cf 92 push r12 - bb8: df 92 push r13 - bba: ef 92 push r14 - bbc: ff 92 push r15 - bbe: 0f 93 push r16 - bc0: 1f 93 push r17 - snprintf(buffer, bufferSize, "%.2f.%.2f.%.2f", value1, value2, value3); - bc2: 1f 93 push r17 - bc4: 0f 93 push r16 - bc6: ff 92 push r15 - bc8: ef 92 push r14 - bca: 5f 93 push r21 - bcc: 4f 93 push r20 - bce: 3f 93 push r19 - bd0: 2f 93 push r18 - bd2: 9f 93 push r25 - bd4: 8f 93 push r24 - bd6: 7f 93 push r23 - bd8: 6f 93 push r22 - bda: 86 e1 ldi r24, 0x16 ; 22 - bdc: 93 e0 ldi r25, 0x03 ; 3 - bde: 9f 93 push r25 - be0: 8f 93 push r24 - be2: bf 92 push r11 - be4: af 92 push r10 - be6: df 92 push r13 - be8: cf 92 push r12 - bea: 0e 94 af 0b call 0x175e ; 0x175e <snprintf> -} - bee: 8d b7 in r24, 0x3d ; 61 - bf0: 9e b7 in r25, 0x3e ; 62 - bf2: 42 96 adiw r24, 0x12 ; 18 - bf4: 0f b6 in r0, 0x3f ; 63 - bf6: f8 94 cli - bf8: 9e bf out 0x3e, r25 ; 62 - bfa: 0f be out 0x3f, r0 ; 63 - bfc: 8d bf out 0x3d, r24 ; 61 - bfe: 1f 91 pop r17 - c00: 0f 91 pop r16 - c02: ff 90 pop r15 - c04: ef 90 pop r14 - c06: df 90 pop r13 - c08: cf 90 pop r12 - c0a: bf 90 pop r11 - c0c: af 90 pop r10 - c0e: 08 95 ret - -00000c10 <printLcd>: - -void printLcd(struct DisplayData* displayData) { - c10: 6f 92 push r6 - c12: 7f 92 push r7 - c14: af 92 push r10 - c16: bf 92 push r11 - c18: cf 92 push r12 - c1a: df 92 push r13 - c1c: ef 92 push r14 - c1e: ff 92 push r15 - c20: 0f 93 push r16 - c22: 1f 93 push r17 - c24: cf 93 push r28 - c26: df 93 push r29 - c28: cd b7 in r28, 0x3d ; 61 - c2a: de b7 in r29, 0x3e ; 62 - c2c: c2 54 subi r28, 0x42 ; 66 - c2e: d1 09 sbc r29, r1 - c30: 0f b6 in r0, 0x3f ; 63 - c32: f8 94 cli - c34: de bf out 0x3e, r29 ; 62 - c36: 0f be out 0x3f, r0 ; 63 - c38: cd bf out 0x3d, r28 ; 61 - c3a: 3c 01 movw r6, r24 - // Буферы для заполнения данных - char buffer1[17]; - char buffer2[17]; - - // Заполнение буфера 1 - fillBuffer1(displayData->topLine, buffer1, sizeof(buffer1), textCounter.incrementValue); - c3c: 20 91 49 03 lds r18, 0x0349 ; 0x800349 <textCounter+0x4> - c40: 30 91 4a 03 lds r19, 0x034A ; 0x80034a <textCounter+0x5> - c44: 41 e1 ldi r20, 0x11 ; 17 - c46: 50 e0 ldi r21, 0x00 ; 0 - c48: be 01 movw r22, r28 - c4a: 6f 5f subi r22, 0xFF ; 255 - c4c: 7f 4f sbci r23, 0xFF ; 255 - c4e: 0e 94 9c 05 call 0xb38 ; 0xb38 <fillBuffer1> - - // Заполнение буфера 2 - fillBuffer2(displayData->value1, displayData->value2, displayData->value3, buffer2, sizeof(buffer2)); - c52: f3 01 movw r30, r6 - c54: e8 5b subi r30, 0xB8 ; 184 - c56: ff 4f sbci r31, 0xFF ; 255 - c58: e0 80 ld r14, Z - c5a: f1 80 ldd r15, Z+1 ; 0x01 - c5c: 02 81 ldd r16, Z+2 ; 0x02 - c5e: 13 81 ldd r17, Z+3 ; 0x03 - c60: 34 97 sbiw r30, 0x04 ; 4 - c62: 20 81 ld r18, Z - c64: 31 81 ldd r19, Z+1 ; 0x01 - c66: 42 81 ldd r20, Z+2 ; 0x02 - c68: 53 81 ldd r21, Z+3 ; 0x03 - c6a: 34 97 sbiw r30, 0x04 ; 4 - c6c: 60 81 ld r22, Z - c6e: 71 81 ldd r23, Z+1 ; 0x01 - c70: 82 81 ldd r24, Z+2 ; 0x02 - c72: 93 81 ldd r25, Z+3 ; 0x03 - c74: 0f 2e mov r0, r31 - c76: f1 e1 ldi r31, 0x11 ; 17 - c78: af 2e mov r10, r31 - c7a: b1 2c mov r11, r1 - c7c: f0 2d mov r31, r0 - c7e: fe 01 movw r30, r28 - c80: 72 96 adiw r30, 0x12 ; 18 - c82: 6f 01 movw r12, r30 - c84: 0e 94 d9 05 call 0xbb2 ; 0xbb2 <fillBuffer2> - - // Создание массива для вывода на дисплей - char displayArray[32]; - strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray - c88: 40 e1 ldi r20, 0x10 ; 16 - c8a: 50 e0 ldi r21, 0x00 ; 0 - c8c: be 01 movw r22, r28 - c8e: 6f 5f subi r22, 0xFF ; 255 - c90: 7f 4f sbci r23, 0xFF ; 255 - c92: ce 01 movw r24, r28 - c94: 83 96 adiw r24, 0x23 ; 35 - c96: 0e 94 8a 0b call 0x1714 ; 0x1714 <strncpy> - strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16 - c9a: 40 e1 ldi r20, 0x10 ; 16 - c9c: 50 e0 ldi r21, 0x00 ; 0 - c9e: b6 01 movw r22, r12 - ca0: ce 01 movw r24, r28 - ca2: c3 96 adiw r24, 0x33 ; 51 - ca4: 0e 94 8a 0b call 0x1714 ; 0x1714 <strncpy> - - // Вывод данных на экран - lcd_gotoxy(0, 0); - ca8: 60 e0 ldi r22, 0x00 ; 0 - caa: 80 e0 ldi r24, 0x00 ; 0 - cac: 0e 94 e8 04 call 0x9d0 ; 0x9d0 <lcd_gotoxy> - lcd_puts(displayArray); - cb0: ce 01 movw r24, r28 - cb2: 83 96 adiw r24, 0x23 ; 35 - cb4: 0e 94 31 05 call 0xa62 ; 0xa62 <lcd_puts> - - lcd_gotoxy(0, 1); - cb8: 61 e0 ldi r22, 0x01 ; 1 - cba: 80 e0 ldi r24, 0x00 ; 0 - cbc: 0e 94 e8 04 call 0x9d0 ; 0x9d0 <lcd_gotoxy> - lcd_puts(displayArray + 16); // Вывод второй половины displayArray - cc0: ce 01 movw r24, r28 - cc2: c3 96 adiw r24, 0x33 ; 51 - cc4: 0e 94 31 05 call 0xa62 ; 0xa62 <lcd_puts> -} - cc8: ce 5b subi r28, 0xBE ; 190 - cca: df 4f sbci r29, 0xFF ; 255 - ccc: 0f b6 in r0, 0x3f ; 63 - cce: f8 94 cli - cd0: de bf out 0x3e, r29 ; 62 - cd2: 0f be out 0x3f, r0 ; 63 - cd4: cd bf out 0x3d, r28 ; 61 - cd6: df 91 pop r29 - cd8: cf 91 pop r28 - cda: 1f 91 pop r17 - cdc: 0f 91 pop r16 - cde: ff 90 pop r15 - ce0: ef 90 pop r14 - ce2: df 90 pop r13 - ce4: cf 90 pop r12 - ce6: bf 90 pop r11 - ce8: af 90 pop r10 - cea: 7f 90 pop r7 - cec: 6f 90 pop r6 - cee: 08 95 ret - -00000cf0 <pcf8574_init>: - i2c_write(b); - i2c_stop(); - return 0; - } - return -1; -} - cf0: 0e 94 de 06 call 0xdbc ; 0xdbc <i2c_init> - cf4: 83 e0 ldi r24, 0x03 ; 3 - cf6: 8a 95 dec r24 - cf8: f1 f7 brne .-4 ; 0xcf6 <pcf8574_init+0x6> - cfa: 00 00 nop - cfc: 10 92 4b 03 sts 0x034B, r1 ; 0x80034b <pcf8574_pinstatus> - d00: 08 95 ret - -00000d02 <pcf8574_getoutputpin>: - d02: 81 11 cpse r24, r1 - d04: 0e c0 rjmp .+28 ; 0xd22 <pcf8574_getoutputpin+0x20> - d06: 68 30 cpi r22, 0x08 ; 8 - d08: 70 f4 brcc .+28 ; 0xd26 <pcf8574_getoutputpin+0x24> - d0a: 80 91 4b 03 lds r24, 0x034B ; 0x80034b <pcf8574_pinstatus> - d0e: 08 2e mov r0, r24 - d10: 00 0c add r0, r0 - d12: 99 0b sbc r25, r25 - d14: 02 c0 rjmp .+4 ; 0xd1a <pcf8574_getoutputpin+0x18> - d16: 95 95 asr r25 - d18: 87 95 ror r24 - d1a: 6a 95 dec r22 - d1c: e2 f7 brpl .-8 ; 0xd16 <pcf8574_getoutputpin+0x14> - d1e: 81 70 andi r24, 0x01 ; 1 - d20: 08 95 ret - d22: 8f ef ldi r24, 0xFF ; 255 - d24: 08 95 ret - d26: 8f ef ldi r24, 0xFF ; 255 - d28: 08 95 ret - -00000d2a <pcf8574_setoutput>: - d2a: cf 93 push r28 - d2c: 81 11 cpse r24, r1 - d2e: 0d c0 rjmp .+26 ; 0xd4a <pcf8574_setoutput+0x20> - d30: c6 2f mov r28, r22 - d32: 60 93 4b 03 sts 0x034B, r22 ; 0x80034b <pcf8574_pinstatus> - d36: 8e e4 ldi r24, 0x4E ; 78 - d38: 0e 94 e4 06 call 0xdc8 ; 0xdc8 <i2c_start> - d3c: 8c 2f mov r24, r28 - d3e: 0e 94 14 07 call 0xe28 ; 0xe28 <i2c_write> - d42: 0e 94 0b 07 call 0xe16 ; 0xe16 <i2c_stop> - d46: 80 e0 ldi r24, 0x00 ; 0 - d48: 01 c0 rjmp .+2 ; 0xd4c <pcf8574_setoutput+0x22> - d4a: 8f ef ldi r24, 0xFF ; 255 - d4c: cf 91 pop r28 - d4e: 08 95 ret - -00000d50 <pcf8574_setoutputpin>: - -// настройка пинов вывода -int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) { - d50: cf 93 push r28 - d52: df 93 push r29 - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { - d54: 81 11 cpse r24, r1 - d56: 24 c0 rjmp .+72 ; 0xda0 <pcf8574_setoutputpin+0x50> - d58: 68 30 cpi r22, 0x08 ; 8 - d5a: 20 f5 brcc .+72 ; 0xda4 <pcf8574_setoutputpin+0x54> - uint8_t b = 0; - b = pcf8574_pinstatus[deviceid]; - d5c: 80 91 4b 03 lds r24, 0x034B ; 0x80034b <pcf8574_pinstatus> - b = (data != 0) ? (b | (1 << pin)) : (b & ~(1 << pin)); - d60: 44 23 and r20, r20 - d62: 49 f0 breq .+18 ; 0xd76 <pcf8574_setoutputpin+0x26> - d64: c1 e0 ldi r28, 0x01 ; 1 - d66: d0 e0 ldi r29, 0x00 ; 0 - d68: 02 c0 rjmp .+4 ; 0xd6e <pcf8574_setoutputpin+0x1e> - d6a: cc 0f add r28, r28 - d6c: dd 1f adc r29, r29 - d6e: 6a 95 dec r22 - d70: e2 f7 brpl .-8 ; 0xd6a <pcf8574_setoutputpin+0x1a> - d72: c8 2b or r28, r24 - d74: 09 c0 rjmp .+18 ; 0xd88 <pcf8574_setoutputpin+0x38> - d76: c1 e0 ldi r28, 0x01 ; 1 - d78: d0 e0 ldi r29, 0x00 ; 0 - d7a: 02 c0 rjmp .+4 ; 0xd80 <pcf8574_setoutputpin+0x30> - d7c: cc 0f add r28, r28 - d7e: dd 1f adc r29, r29 - d80: 6a 95 dec r22 - d82: e2 f7 brpl .-8 ; 0xd7c <pcf8574_setoutputpin+0x2c> - d84: c0 95 com r28 - d86: c8 23 and r28, r24 - pcf8574_pinstatus[deviceid] = b; - d88: c0 93 4b 03 sts 0x034B, r28 ; 0x80034b <pcf8574_pinstatus> - //рестартим - i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); - d8c: 8e e4 ldi r24, 0x4E ; 78 - d8e: 0e 94 e4 06 call 0xdc8 ; 0xdc8 <i2c_start> - i2c_write(b); - d92: 8c 2f mov r24, r28 - d94: 0e 94 14 07 call 0xe28 ; 0xe28 <i2c_write> - i2c_stop(); - d98: 0e 94 0b 07 call 0xe16 ; 0xe16 <i2c_stop> - return 0; - d9c: 80 e0 ldi r24, 0x00 ; 0 - d9e: 03 c0 rjmp .+6 ; 0xda6 <pcf8574_setoutputpin+0x56> - } - return -1; - da0: 8f ef ldi r24, 0xFF ; 255 - da2: 01 c0 rjmp .+2 ; 0xda6 <pcf8574_setoutputpin+0x56> - da4: 8f ef ldi r24, 0xFF ; 255 -} - da6: df 91 pop r29 - da8: cf 91 pop r28 - daa: 08 95 ret - -00000dac <pcf8574_setoutputpinhigh>: - -// установка высокого уровня на выходных пинах -int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) { - return pcf8574_setoutputpin(deviceid, pin, 1); - dac: 41 e0 ldi r20, 0x01 ; 1 - dae: 0e 94 a8 06 call 0xd50 ; 0xd50 <pcf8574_setoutputpin> -} - db2: 08 95 ret - -00000db4 <pcf8574_setoutputpinlow>: - -// установка низкого уровня на выходных пинах -int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) { - return pcf8574_setoutputpin(deviceid, pin, 0); - db4: 40 e0 ldi r20, 0x00 ; 0 - db6: 0e 94 a8 06 call 0xd50 ; 0xd50 <pcf8574_setoutputpin> -} - dba: 08 95 ret - -00000dbc <i2c_init>: - -// тупа повторяем условие СТАРТ -unsigned char i2c_rep_start(unsigned char address) -{ - return i2c_start(address); -} - dbc: 10 92 b9 00 sts 0x00B9, r1 ; 0x8000b9 <__DATA_REGION_ORIGIN__+0x59> - dc0: 8d ef ldi r24, 0xFD ; 253 - dc2: 80 93 b8 00 sts 0x00B8, r24 ; 0x8000b8 <__DATA_REGION_ORIGIN__+0x58> - dc6: 08 95 ret - -00000dc8 <i2c_start>: - dc8: 94 ea ldi r25, 0xA4 ; 164 - dca: 90 93 bc 00 sts 0x00BC, r25 ; 0x8000bc <__DATA_REGION_ORIGIN__+0x5c> - dce: ec eb ldi r30, 0xBC ; 188 - dd0: f0 e0 ldi r31, 0x00 ; 0 - dd2: 90 81 ld r25, Z - dd4: 99 23 and r25, r25 - dd6: ec f7 brge .-6 ; 0xdd2 <i2c_start+0xa> - dd8: 90 91 b9 00 lds r25, 0x00B9 ; 0x8000b9 <__DATA_REGION_ORIGIN__+0x59> - ddc: 98 7f andi r25, 0xF8 ; 248 - dde: 98 30 cpi r25, 0x08 ; 8 - de0: 11 f0 breq .+4 ; 0xde6 <i2c_start+0x1e> - de2: 90 31 cpi r25, 0x10 ; 16 - de4: a1 f4 brne .+40 ; 0xe0e <i2c_start+0x46> - de6: 80 93 bb 00 sts 0x00BB, r24 ; 0x8000bb <__DATA_REGION_ORIGIN__+0x5b> - dea: 84 e8 ldi r24, 0x84 ; 132 - dec: 80 93 bc 00 sts 0x00BC, r24 ; 0x8000bc <__DATA_REGION_ORIGIN__+0x5c> - df0: ec eb ldi r30, 0xBC ; 188 - df2: f0 e0 ldi r31, 0x00 ; 0 - df4: 80 81 ld r24, Z - df6: 88 23 and r24, r24 - df8: ec f7 brge .-6 ; 0xdf4 <i2c_start+0x2c> - dfa: 90 91 b9 00 lds r25, 0x00B9 ; 0x8000b9 <__DATA_REGION_ORIGIN__+0x59> - dfe: 98 7f andi r25, 0xF8 ; 248 - e00: 98 31 cpi r25, 0x18 ; 24 - e02: 39 f0 breq .+14 ; 0xe12 <i2c_start+0x4a> - e04: 81 e0 ldi r24, 0x01 ; 1 - e06: 90 34 cpi r25, 0x40 ; 64 - e08: 29 f4 brne .+10 ; 0xe14 <i2c_start+0x4c> - e0a: 80 e0 ldi r24, 0x00 ; 0 - e0c: 08 95 ret - e0e: 81 e0 ldi r24, 0x01 ; 1 - e10: 08 95 ret - e12: 80 e0 ldi r24, 0x00 ; 0 - e14: 08 95 ret - -00000e16 <i2c_stop>: - -// передача условия СТОП на шину -void i2c_stop(void) -{ - // отправка условия СТОП - TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); - e16: 84 e9 ldi r24, 0x94 ; 148 - e18: 80 93 bc 00 sts 0x00BC, r24 ; 0x8000bc <__DATA_REGION_ORIGIN__+0x5c> - // ждем выполнения условия остановки - while(TWCR & (1<<TWSTO)); - e1c: ec eb ldi r30, 0xBC ; 188 - e1e: f0 e0 ldi r31, 0x00 ; 0 - e20: 80 81 ld r24, Z - e22: 84 fd sbrc r24, 4 - e24: fd cf rjmp .-6 ; 0xe20 <i2c_stop+0xa> -} - e26: 08 95 ret - -00000e28 <i2c_write>: -unsigned char i2c_write( unsigned char data ) -{ - uint8_t twst; - - // отправляем данные на уст-во - TWDR = data; - e28: 80 93 bb 00 sts 0x00BB, r24 ; 0x8000bb <__DATA_REGION_ORIGIN__+0x5b> - TWCR = (1<<TWINT) | (1<<TWEN); - e2c: 84 e8 ldi r24, 0x84 ; 132 - e2e: 80 93 bc 00 sts 0x00BC, r24 ; 0x8000bc <__DATA_REGION_ORIGIN__+0x5c> - // ждем завершения передачи - while(!(TWCR & (1<<TWINT))); - e32: ec eb ldi r30, 0xBC ; 188 - e34: f0 e0 ldi r31, 0x00 ; 0 - e36: 80 81 ld r24, Z - e38: 88 23 and r24, r24 - e3a: ec f7 brge .-6 ; 0xe36 <i2c_write+0xe> - // записываем ответ от ведомого уст-ва - twst = TW_STATUS & 0xF8; - e3c: 90 91 b9 00 lds r25, 0x00B9 ; 0x8000b9 <__DATA_REGION_ORIGIN__+0x59> - e40: 98 7f andi r25, 0xF8 ; 248 - e42: 81 e0 ldi r24, 0x01 ; 1 - e44: 98 32 cpi r25, 0x28 ; 40 - e46: 09 f4 brne .+2 ; 0xe4a <i2c_write+0x22> - e48: 80 e0 ldi r24, 0x00 ; 0 - if( twst != TW_MT_DATA_ACK) return 1; - return 0; -} - e4a: 08 95 ret - -00000e4c <main>: -#include "UART/uart.h" -#include "stdbool.h" -#include "LCD/lcd.h" -#include "Protocol/protocol.h" - -int main(void) { - e4c: 4f 92 push r4 - e4e: 5f 92 push r5 - e50: 6f 92 push r6 - e52: 7f 92 push r7 - e54: 8f 92 push r8 - e56: 9f 92 push r9 - e58: af 92 push r10 - e5a: bf 92 push r11 - e5c: cf 92 push r12 - e5e: df 92 push r13 - e60: ef 92 push r14 - e62: ff 92 push r15 - e64: 0f 93 push r16 - e66: 1f 93 push r17 - e68: cf 93 push r28 - e6a: df 93 push r29 - e6c: cd b7 in r28, 0x3d ; 61 - e6e: de b7 in r29, 0x3e ; 62 - e70: c3 50 subi r28, 0x03 ; 3 - e72: d2 40 sbci r29, 0x02 ; 2 - e74: 0f b6 in r0, 0x3f ; 63 - e76: f8 94 cli - e78: de bf out 0x3e, r29 ; 62 - e7a: 0f be out 0x3f, r0 ; 63 - e7c: cd bf out 0x3d, r28 ; 61 - struct Client hdlc; - bool flag_connection = false; - - Lcd_inciliation(); - e7e: 0e 94 93 05 call 0xb26 ; 0xb26 <Lcd_inciliation> - UART_init(); - e82: 0e 94 9e 0a call 0x153c ; 0x153c <UART_init> - init_hdlc_client(&hdlc, 200); - e86: 68 ec ldi r22, 0xC8 ; 200 - e88: 70 e0 ldi r23, 0x00 ; 0 - e8a: ce 01 movw r24, r28 - e8c: 01 96 adiw r24, 0x01 ; 1 - e8e: 0e 94 53 00 call 0xa6 ; 0xa6 <init_hdlc_client> -<<<<<<< HEAD -======= -// while(true){ -// if (!flag_connection){ -// } -// } ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - - hdlc_connect(&hdlc); - e92: ce 01 movw r24, r28 - e94: 01 96 adiw r24, 0x01 ; 1 - e96: 0e 94 6c 00 call 0xd8 ; 0xd8 <hdlc_connect> - uint8_t buffer[10]; - - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - e9a: 4a e0 ldi r20, 0x0A ; 10 - e9c: 50 e0 ldi r21, 0x00 ; 0 - e9e: be 01 movw r22, r28 - ea0: 66 5e subi r22, 0xE6 ; 230 - ea2: 7f 4f sbci r23, 0xFF ; 255 - ea4: ce 01 movw r24, r28 - ea6: 01 96 adiw r24, 0x01 ; 1 - ea8: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - - UART_send(buffer, sizeof buffer); - eac: 6a e0 ldi r22, 0x0A ; 10 - eae: 70 e0 ldi r23, 0x00 ; 0 - eb0: ce 01 movw r24, r28 - eb2: 4a 96 adiw r24, 0x1a ; 26 - eb4: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - - while(!flag_connection){ - uint8_t* buffer_recive[10]; - UART_receive(buffer_recive, sizeof buffer_recive); - eb8: 64 e1 ldi r22, 0x14 ; 20 - eba: 70 e0 ldi r23, 0x00 ; 0 - ebc: ce 01 movw r24, r28 - ebe: 80 51 subi r24, 0x10 ; 16 - ec0: 9e 4f sbci r25, 0xFE ; 254 - ec2: 0e 94 ce 0a call 0x159c ; 0x159c <UART_receive> - - int err = hdlc_timeout_handler(&hdlc, 1); - ec6: 61 e0 ldi r22, 0x01 ; 1 - ec8: 70 e0 ldi r23, 0x00 ; 0 - eca: ce 01 movw r24, r28 - ecc: 01 96 adiw r24, 0x01 ; 1 - ece: 0e 94 a8 01 call 0x350 ; 0x350 <hdlc_timeout_handler> - if (err == ERR_FRAME_TIME_OUT){ - ed2: 05 96 adiw r24, 0x05 ; 5 - ed4: 81 f4 brne .+32 ; 0xef6 <main+0xaa> - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - ed6: 4a e0 ldi r20, 0x0A ; 10 - ed8: 50 e0 ldi r21, 0x00 ; 0 - eda: be 01 movw r22, r28 - edc: 66 5e subi r22, 0xE6 ; 230 - ede: 7f 4f sbci r23, 0xFF ; 255 - ee0: ce 01 movw r24, r28 - ee2: 01 96 adiw r24, 0x01 ; 1 - ee4: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - UART_send(buffer, sizeof buffer); - ee8: 6a e0 ldi r22, 0x0A ; 10 - eea: 70 e0 ldi r23, 0x00 ; 0 - eec: ce 01 movw r24, r28 - eee: 4a 96 adiw r24, 0x1a ; 26 - ef0: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - ef4: e1 cf rjmp .-62 ; 0xeb8 <main+0x6c> - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0); - ef6: 00 e0 ldi r16, 0x00 ; 0 - ef8: 10 e0 ldi r17, 0x00 ; 0 - efa: 20 e0 ldi r18, 0x00 ; 0 - efc: 30 e0 ldi r19, 0x00 ; 0 - efe: 44 e1 ldi r20, 0x14 ; 20 - f00: 50 e0 ldi r21, 0x00 ; 0 - f02: be 01 movw r22, r28 - f04: 60 51 subi r22, 0x10 ; 16 - f06: 7e 4f sbci r23, 0xFE ; 254 - f08: ce 01 movw r24, r28 - f0a: 01 96 adiw r24, 0x01 ; 1 - f0c: 0e 94 07 01 call 0x20e ; 0x20e <hdlc_decode_recived_raw_data> - f10: 8c 01 movw r16, r24 - if (err < 0){ - f12: 99 23 and r25, r25 - f14: ac f4 brge .+42 ; 0xf40 <main+0xf4> - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - f16: 0a 3f cpi r16, 0xFA ; 250 - f18: 8f ef ldi r24, 0xFF ; 255 - f1a: 18 07 cpc r17, r24 - f1c: b1 f4 brne .+44 ; 0xf4a <main+0xfe> - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - f1e: 44 e1 ldi r20, 0x14 ; 20 - f20: 50 e0 ldi r21, 0x00 ; 0 - f22: be 01 movw r22, r28 - f24: 60 5a subi r22, 0xA0 ; 160 - f26: 7e 4f sbci r23, 0xFE ; 254 - f28: ce 01 movw r24, r28 - f2a: 01 96 adiw r24, 0x01 ; 1 - f2c: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - UART_send(buffer_rej, sizeof buffer_rej); - f30: 64 e1 ldi r22, 0x14 ; 20 - f32: 70 e0 ldi r23, 0x00 ; 0 - f34: ce 01 movw r24, r28 - f36: 80 5a subi r24, 0xA0 ; 160 - f38: 9e 4f sbci r25, 0xFE ; 254 - f3a: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - f3e: 05 c0 rjmp .+10 ; 0xf4a <main+0xfe> - return err; - } - return err; - } - - if (hdlc.state == READY_STATE){ - f40: 89 81 ldd r24, Y+1 ; 0x01 - - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - - UART_send(buffer, sizeof buffer); - - while(!flag_connection){ - f42: 82 30 cpi r24, 0x02 ; 2 - f44: 09 f0 breq .+2 ; 0xf48 <main+0xfc> - f46: b8 cf rjmp .-144 ; 0xeb8 <main+0x6c> - f48: 03 c0 rjmp .+6 ; 0xf50 <main+0x104> - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - UART_send(buffer, sizeof buffer); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0); - f4a: 80 2f mov r24, r16 - f4c: 91 2f mov r25, r17 - f4e: fe c0 rjmp .+508 ; 0x114c <main+0x300> - flag_connection = true; - } - } - - struct message mess; - mess.numbers[0] = 1.23; - f50: 84 ea ldi r24, 0xA4 ; 164 - f52: 90 e7 ldi r25, 0x70 ; 112 - f54: ad e9 ldi r26, 0x9D ; 157 - f56: bf e3 ldi r27, 0x3F ; 63 - f58: 8c a3 std Y+36, r24 ; 0x24 - f5a: 9d a3 std Y+37, r25 ; 0x25 - f5c: ae a3 std Y+38, r26 ; 0x26 - f5e: bf a3 std Y+39, r27 ; 0x27 - mess.numbers[1] = 22.1; - f60: 8d ec ldi r24, 0xCD ; 205 - f62: 9c ec ldi r25, 0xCC ; 204 - f64: a0 eb ldi r26, 0xB0 ; 176 - f66: b1 e4 ldi r27, 0x41 ; 65 - f68: 88 a7 std Y+40, r24 ; 0x28 - f6a: 99 a7 std Y+41, r25 ; 0x29 - f6c: aa a7 std Y+42, r26 ; 0x2a - f6e: bb a7 std Y+43, r27 ; 0x2b - mess.numbers[2] = 100; - f70: 80 e0 ldi r24, 0x00 ; 0 - f72: 90 e0 ldi r25, 0x00 ; 0 - f74: a8 ec ldi r26, 0xC8 ; 200 - f76: b2 e4 ldi r27, 0x42 ; 66 - f78: 8c a7 std Y+44, r24 ; 0x2c - f7a: 9d a7 std Y+45, r25 ; 0x2d - f7c: ae a7 std Y+46, r26 ; 0x2e - f7e: bf a7 std Y+47, r27 ; 0x2f - mess.len_numbers = 3; - f80: 83 e0 ldi r24, 0x03 ; 3 - f82: 90 e0 ldi r25, 0x00 ; 0 - f84: 99 ab std Y+49, r25 ; 0x31 - f86: 88 ab std Y+48, r24 ; 0x30 - mess.str = "word war in new world io ex"; - f88: 85 e2 ldi r24, 0x25 ; 37 - f8a: 93 e0 ldi r25, 0x03 ; 3 - f8c: 9b ab std Y+51, r25 ; 0x33 - f8e: 8a ab std Y+50, r24 ; 0x32 - mess.len_str = sizeof mess.str; - f90: 82 e0 ldi r24, 0x02 ; 2 - f92: 90 e0 ldi r25, 0x00 ; 0 - f94: 9d ab std Y+53, r25 ; 0x35 - f96: 8c ab std Y+52, r24 ; 0x34 - - uint8_t data[64]; - size_t len_data; - protocol_encode(mess, data, &len_data); - f98: 2e 01 movw r4, r28 - f9a: e6 e7 ldi r30, 0x76 ; 118 - f9c: 4e 0e add r4, r30 - f9e: 51 1c adc r5, r1 - fa0: 5f 92 push r5 - fa2: 4f 92 push r4 - fa4: 3e 01 movw r6, r28 - fa6: f6 e3 ldi r31, 0x36 ; 54 - fa8: 6f 0e add r6, r31 - faa: 71 1c adc r7, r1 - fac: 7f 92 push r7 - fae: 6f 92 push r6 - fb0: 8c a0 ldd r8, Y+36 ; 0x24 - fb2: 9d a0 ldd r9, Y+37 ; 0x25 - fb4: ae a0 ldd r10, Y+38 ; 0x26 - fb6: bf a0 ldd r11, Y+39 ; 0x27 - fb8: c8 a4 ldd r12, Y+40 ; 0x28 - fba: d9 a4 ldd r13, Y+41 ; 0x29 - fbc: ea a4 ldd r14, Y+42 ; 0x2a - fbe: fb a4 ldd r15, Y+43 ; 0x2b - fc0: 0c a5 ldd r16, Y+44 ; 0x2c - fc2: 1d a5 ldd r17, Y+45 ; 0x2d - fc4: 2e a5 ldd r18, Y+46 ; 0x2e - fc6: 3f a5 ldd r19, Y+47 ; 0x2f - fc8: 48 a9 ldd r20, Y+48 ; 0x30 - fca: 59 a9 ldd r21, Y+49 ; 0x31 - fcc: 6a a9 ldd r22, Y+50 ; 0x32 - fce: 7b a9 ldd r23, Y+51 ; 0x33 - fd0: 8c a9 ldd r24, Y+52 ; 0x34 - fd2: 9d a9 ldd r25, Y+53 ; 0x35 - fd4: 0e 94 5c 09 call 0x12b8 ; 0x12b8 <protocol_encode> - - hdlc_send_data(&hdlc, data, len_data); - fd8: f2 01 movw r30, r4 - fda: 40 81 ld r20, Z - fdc: 51 81 ldd r21, Z+1 ; 0x01 - fde: b3 01 movw r22, r6 - fe0: ce 01 movw r24, r28 - fe2: 01 96 adiw r24, 0x01 ; 1 - fe4: 0e 94 76 00 call 0xec ; 0xec <hdlc_send_data> - uint8_t buffer_data[72]; - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - fe8: 48 e4 ldi r20, 0x48 ; 72 - fea: 50 e0 ldi r21, 0x00 ; 0 - fec: be 01 movw r22, r28 - fee: 68 58 subi r22, 0x88 ; 136 - ff0: 7f 4f sbci r23, 0xFF ; 255 - ff2: ce 01 movw r24, r28 - ff4: 01 96 adiw r24, 0x01 ; 1 - ff6: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - - UART_send(buffer_data, sizeof buffer_data); - ffa: 68 e4 ldi r22, 0x48 ; 72 - ffc: 70 e0 ldi r23, 0x00 ; 0 - ffe: ce 01 movw r24, r28 - 1000: 88 58 subi r24, 0x88 ; 136 - 1002: 9f 4f sbci r25, 0xFF ; 255 - 1004: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - 1008: 0f 90 pop r0 - 100a: 0f 90 pop r0 - 100c: 0f 90 pop r0 - 100e: 0f 90 pop r0 - bool flag_recive = false; - uint8_t data_recive[64]; - size_t len_data_recive; - while (!flag_recive){ - uint8_t* buffer_recive_data[72]; - UART_receive(buffer_recive_data, sizeof buffer_recive_data); - 1010: 60 e9 ldi r22, 0x90 ; 144 - 1012: 70 e0 ldi r23, 0x00 ; 0 - 1014: ce 01 movw r24, r28 - 1016: 80 5a subi r24, 0xA0 ; 160 - 1018: 9e 4f sbci r25, 0xFE ; 254 - 101a: 0e 94 ce 0a call 0x159c ; 0x159c <UART_receive> - - int err = hdlc_timeout_handler(&hdlc, 1); - 101e: 61 e0 ldi r22, 0x01 ; 1 - 1020: 70 e0 ldi r23, 0x00 ; 0 - 1022: ce 01 movw r24, r28 - 1024: 01 96 adiw r24, 0x01 ; 1 - 1026: 0e 94 a8 01 call 0x350 ; 0x350 <hdlc_timeout_handler> - if (err == ERR_FRAME_TIME_OUT){ - 102a: 05 96 adiw r24, 0x05 ; 5 - 102c: 89 f4 brne .+34 ; 0x1050 <main+0x204> - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - 102e: 48 e4 ldi r20, 0x48 ; 72 - 1030: 50 e0 ldi r21, 0x00 ; 0 - 1032: be 01 movw r22, r28 - 1034: 68 58 subi r22, 0x88 ; 136 - 1036: 7f 4f sbci r23, 0xFF ; 255 - 1038: ce 01 movw r24, r28 - 103a: 01 96 adiw r24, 0x01 ; 1 - 103c: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - UART_send(buffer_data, sizeof buffer_data); - 1040: 68 e4 ldi r22, 0x48 ; 72 - 1042: 70 e0 ldi r23, 0x00 ; 0 - 1044: ce 01 movw r24, r28 - 1046: 88 58 subi r24, 0x88 ; 136 - 1048: 9f 4f sbci r25, 0xFF ; 255 - 104a: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - 104e: e0 cf rjmp .-64 ; 0x1010 <main+0x1c4> - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); - 1050: 8e 01 movw r16, r28 - 1052: 13 95 inc r17 - 1054: 9e 01 movw r18, r28 - 1056: 20 54 subi r18, 0x40 ; 64 - 1058: 3f 4f sbci r19, 0xFF ; 255 - 105a: 40 e9 ldi r20, 0x90 ; 144 - 105c: 50 e0 ldi r21, 0x00 ; 0 - 105e: be 01 movw r22, r28 - 1060: 60 5a subi r22, 0xA0 ; 160 - 1062: 7e 4f sbci r23, 0xFE ; 254 - 1064: ce 01 movw r24, r28 - 1066: 01 96 adiw r24, 0x01 ; 1 - 1068: 0e 94 07 01 call 0x20e ; 0x20e <hdlc_decode_recived_raw_data> - 106c: 8c 01 movw r16, r24 - if (err < 0){ - 106e: 99 23 and r25, r25 - 1070: 9c f4 brge .+38 ; 0x1098 <main+0x24c> - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - 1072: 06 96 adiw r24, 0x06 ; 6 - 1074: b1 f4 brne .+44 ; 0x10a2 <main+0x256> - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - 1076: 44 e1 ldi r20, 0x14 ; 20 - 1078: 50 e0 ldi r21, 0x00 ; 0 - 107a: be 01 movw r22, r28 - 107c: 60 51 subi r22, 0x10 ; 16 - 107e: 7e 4f sbci r23, 0xFE ; 254 - 1080: ce 01 movw r24, r28 - 1082: 01 96 adiw r24, 0x01 ; 1 - 1084: 0e 94 91 00 call 0x122 ; 0x122 <hdlc_get_raw_frame> - UART_send(buffer_rej, sizeof buffer_rej); - 1088: 64 e1 ldi r22, 0x14 ; 20 - 108a: 70 e0 ldi r23, 0x00 ; 0 - 108c: ce 01 movw r24, r28 - 108e: 80 51 subi r24, 0x10 ; 16 - 1090: 9e 4f sbci r25, 0xFE ; 254 - 1092: 0e 94 aa 0a call 0x1554 ; 0x1554 <UART_send> - 1096: 05 c0 rjmp .+10 ; 0x10a2 <main+0x256> - return err; - } - return err; - } - - if (hdlc.state == SEND){ - 1098: 89 81 ldd r24, Y+1 ; 0x01 - UART_send(buffer_data, sizeof buffer_data); - - bool flag_recive = false; - uint8_t data_recive[64]; - size_t len_data_recive; - while (!flag_recive){ - 109a: 86 30 cpi r24, 0x06 ; 6 - 109c: 09 f0 breq .+2 ; 0x10a0 <main+0x254> - 109e: b8 cf rjmp .-144 ; 0x1010 <main+0x1c4> - 10a0: 03 c0 rjmp .+6 ; 0x10a8 <main+0x25c> - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - UART_send(buffer_data, sizeof buffer_data); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); - 10a2: 80 2f mov r24, r16 - 10a4: 91 2f mov r25, r17 - 10a6: 52 c0 rjmp .+164 ; 0x114c <main+0x300> - flag_recive = true; - } - } - - struct message resp; - protocol_decode(data_recive, len_data_recive, &resp); - 10a8: c0 50 subi r28, 0x00 ; 0 - 10aa: df 4f sbci r29, 0xFF ; 255 - 10ac: 68 81 ld r22, Y - 10ae: 79 81 ldd r23, Y+1 ; 0x01 - 10b0: c0 50 subi r28, 0x00 ; 0 - 10b2: d1 40 sbci r29, 0x01 ; 1 - 10b4: ae 01 movw r20, r28 - 10b6: 4e 5f subi r20, 0xFE ; 254 - 10b8: 5e 4f sbci r21, 0xFE ; 254 - 10ba: ce 01 movw r24, r28 - 10bc: 80 54 subi r24, 0x40 ; 64 - 10be: 9f 4f sbci r25, 0xFF ; 255 - 10c0: 0e 94 be 08 call 0x117c ; 0x117c <protocol_decode> - - struct DisplayData disp; - disp.value1 = resp.numbers[0]; - 10c4: ce 5f subi r28, 0xFE ; 254 - 10c6: de 4f sbci r29, 0xFE ; 254 - 10c8: 88 81 ld r24, Y - 10ca: 99 81 ldd r25, Y+1 ; 0x01 - 10cc: aa 81 ldd r26, Y+2 ; 0x02 - 10ce: bb 81 ldd r27, Y+3 ; 0x03 - 10d0: c2 50 subi r28, 0x02 ; 2 - 10d2: d1 40 sbci r29, 0x01 ; 1 - 10d4: cc 5a subi r28, 0xAC ; 172 - 10d6: de 4f sbci r29, 0xFE ; 254 - 10d8: 88 83 st Y, r24 - 10da: 99 83 std Y+1, r25 ; 0x01 - 10dc: aa 83 std Y+2, r26 ; 0x02 - 10de: bb 83 std Y+3, r27 ; 0x03 - 10e0: c4 55 subi r28, 0x54 ; 84 - 10e2: d1 40 sbci r29, 0x01 ; 1 - disp.value2 = resp.numbers[1]; - 10e4: ca 5f subi r28, 0xFA ; 250 - 10e6: de 4f sbci r29, 0xFE ; 254 - 10e8: 88 81 ld r24, Y - 10ea: 99 81 ldd r25, Y+1 ; 0x01 - 10ec: aa 81 ldd r26, Y+2 ; 0x02 - 10ee: bb 81 ldd r27, Y+3 ; 0x03 - 10f0: c6 50 subi r28, 0x06 ; 6 - 10f2: d1 40 sbci r29, 0x01 ; 1 - 10f4: c8 5a subi r28, 0xA8 ; 168 - 10f6: de 4f sbci r29, 0xFE ; 254 - 10f8: 88 83 st Y, r24 - 10fa: 99 83 std Y+1, r25 ; 0x01 - 10fc: aa 83 std Y+2, r26 ; 0x02 - 10fe: bb 83 std Y+3, r27 ; 0x03 - 1100: c8 55 subi r28, 0x58 ; 88 - 1102: d1 40 sbci r29, 0x01 ; 1 - disp.value3 = resp.numbers[2]; - 1104: c6 5f subi r28, 0xF6 ; 246 - 1106: de 4f sbci r29, 0xFE ; 254 - 1108: 88 81 ld r24, Y - 110a: 99 81 ldd r25, Y+1 ; 0x01 - 110c: aa 81 ldd r26, Y+2 ; 0x02 - 110e: bb 81 ldd r27, Y+3 ; 0x03 - 1110: ca 50 subi r28, 0x0A ; 10 - 1112: d1 40 sbci r29, 0x01 ; 1 - 1114: c4 5a subi r28, 0xA4 ; 164 - 1116: de 4f sbci r29, 0xFE ; 254 - 1118: 88 83 st Y, r24 - 111a: 99 83 std Y+1, r25 ; 0x01 - 111c: aa 83 std Y+2, r26 ; 0x02 - 111e: bb 83 std Y+3, r27 ; 0x03 - 1120: cc 55 subi r28, 0x5C ; 92 - 1122: d1 40 sbci r29, 0x01 ; 1 - //disp.topLine = *resp.str; - strncpy(disp.topLine, resp.str, sizeof(disp.topLine) - 1); - 1124: c0 5f subi r28, 0xF0 ; 240 - 1126: de 4f sbci r29, 0xFE ; 254 - 1128: 68 81 ld r22, Y - 112a: 79 81 ldd r23, Y+1 ; 0x01 - 112c: c0 51 subi r28, 0x10 ; 16 - 112e: d1 40 sbci r29, 0x01 ; 1 - 1130: 4f e3 ldi r20, 0x3F ; 63 - 1132: 50 e0 ldi r21, 0x00 ; 0 - 1134: ce 01 movw r24, r28 - 1136: 8c 5e subi r24, 0xEC ; 236 - 1138: 9e 4f sbci r25, 0xFE ; 254 - 113a: 0e 94 8a 0b call 0x1714 ; 0x1714 <strncpy> - - printLcd(&disp); - 113e: ce 01 movw r24, r28 - 1140: 8c 5e subi r24, 0xEC ; 236 - 1142: 9e 4f sbci r25, 0xFE ; 254 - 1144: 0e 94 08 06 call 0xc10 ; 0xc10 <printLcd> - - return 0; - 1148: 80 e0 ldi r24, 0x00 ; 0 - 114a: 90 e0 ldi r25, 0x00 ; 0 - 114c: cd 5f subi r28, 0xFD ; 253 - 114e: dd 4f sbci r29, 0xFD ; 253 - 1150: 0f b6 in r0, 0x3f ; 63 - 1152: f8 94 cli - 1154: de bf out 0x3e, r29 ; 62 - 1156: 0f be out 0x3f, r0 ; 63 - 1158: cd bf out 0x3d, r28 ; 61 - 115a: df 91 pop r29 - 115c: cf 91 pop r28 - 115e: 1f 91 pop r17 - 1160: 0f 91 pop r16 - 1162: ff 90 pop r15 - 1164: ef 90 pop r14 - 1166: df 90 pop r13 - 1168: cf 90 pop r12 - 116a: bf 90 pop r11 - 116c: af 90 pop r10 - 116e: 9f 90 pop r9 - 1170: 8f 90 pop r8 - 1172: 7f 90 pop r7 - 1174: 6f 90 pop r6 - 1176: 5f 90 pop r5 - 1178: 4f 90 pop r4 - 117a: 08 95 ret - -0000117c <protocol_decode>: -#include "protocol.h" - -void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message){ - 117c: 8f 92 push r8 - 117e: 9f 92 push r9 - 1180: af 92 push r10 - 1182: bf 92 push r11 - 1184: cf 92 push r12 - 1186: df 92 push r13 - 1188: ef 92 push r14 - 118a: ff 92 push r15 - 118c: 0f 93 push r16 - 118e: 1f 93 push r17 - 1190: cf 93 push r28 - 1192: df 93 push r29 - 1194: cd b7 in r28, 0x3d ; 61 - 1196: de b7 in r29, 0x3e ; 62 - 1198: c0 54 subi r28, 0x40 ; 64 - 119a: d1 09 sbc r29, r1 - 119c: 0f b6 in r0, 0x3f ; 63 - 119e: f8 94 cli - 11a0: de bf out 0x3e, r29 ; 62 - 11a2: 0f be out 0x3f, r0 ; 63 - 11a4: cd bf out 0x3d, r28 ; 61 - 11a6: 4b 01 movw r8, r22 - int count_number = 0; - for(int i = 0; i < len_encode_message; i++){ - 11a8: 67 2b or r22, r23 - 11aa: 09 f4 brne .+2 ; 0x11ae <protocol_decode+0x32> - 11ac: 6c c0 rjmp .+216 ; 0x1286 <protocol_decode+0x10a> - 11ae: 20 e0 ldi r18, 0x00 ; 0 - 11b0: 30 e0 ldi r19, 0x00 ; 0 - 11b2: 60 e0 ldi r22, 0x00 ; 0 - 11b4: 70 e0 ldi r23, 0x00 ; 0 - 11b6: a1 2c mov r10, r1 - 11b8: b1 2c mov r11, r1 - 11ba: 6e 01 movw r12, r28 - 11bc: e5 e0 ldi r30, 0x05 ; 5 - 11be: ce 0e add r12, r30 - 11c0: d1 1c adc r13, r1 - 11c2: fe 01 movw r30, r28 - 11c4: 31 96 adiw r30, 0x01 ; 1 - 11c6: 7f 01 movw r14, r30 - if (encode_message[i] == FLAG_NUMBER){ - 11c8: fc 01 movw r30, r24 - 11ca: e2 0f add r30, r18 - 11cc: f3 1f adc r31, r19 - 11ce: 20 81 ld r18, Z - 11d0: 21 11 cpse r18, r1 - 11d2: 27 c0 rjmp .+78 ; 0x1222 <protocol_decode+0xa6> - 11d4: db 01 movw r26, r22 - 11d6: 11 96 adiw r26, 0x01 ; 1 - 11d8: a8 0f add r26, r24 - 11da: b9 1f adc r27, r25 - 11dc: fe 01 movw r30, r28 - 11de: 31 96 adiw r30, 0x01 ; 1 - union convert_float sample; - for (int z = 0; z < sizeof sample.buf; z++){ - i++; - sample.buf[z] = encode_message[i]; - 11e0: 2d 91 ld r18, X+ - 11e2: 21 93 st Z+, r18 -void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message){ - int count_number = 0; - for(int i = 0; i < len_encode_message; i++){ - if (encode_message[i] == FLAG_NUMBER){ - union convert_float sample; - for (int z = 0; z < sizeof sample.buf; z++){ - 11e4: ec 15 cp r30, r12 - 11e6: fd 05 cpc r31, r13 - 11e8: d9 f7 brne .-10 ; 0x11e0 <protocol_decode+0x64> - 11ea: 6c 5f subi r22, 0xFC ; 252 - 11ec: 7f 4f sbci r23, 0xFF ; 255 - i++; - sample.buf[z] = encode_message[i]; - } - decode_message->numbers[count_number++] = sample.fVal; - 11ee: f5 01 movw r30, r10 - 11f0: ee 0f add r30, r30 - 11f2: ff 1f adc r31, r31 - 11f4: ee 0f add r30, r30 - 11f6: ff 1f adc r31, r31 - 11f8: e4 0f add r30, r20 - 11fa: f5 1f adc r31, r21 - 11fc: 09 81 ldd r16, Y+1 ; 0x01 - 11fe: 1a 81 ldd r17, Y+2 ; 0x02 - 1200: 2b 81 ldd r18, Y+3 ; 0x03 - 1202: 3c 81 ldd r19, Y+4 ; 0x04 - 1204: 00 83 st Z, r16 - 1206: 11 83 std Z+1, r17 ; 0x01 - 1208: 22 83 std Z+2, r18 ; 0x02 - 120a: 33 83 std Z+3, r19 ; 0x03 - decode_message->len_numbers++; - 120c: fa 01 movw r30, r20 - 120e: 24 85 ldd r18, Z+12 ; 0x0c - 1210: 35 85 ldd r19, Z+13 ; 0x0d - 1212: 2f 5f subi r18, 0xFF ; 255 - 1214: 3f 4f sbci r19, 0xFF ; 255 - 1216: 35 87 std Z+13, r19 ; 0x0d - 1218: 24 87 std Z+12, r18 ; 0x0c - union convert_float sample; - for (int z = 0; z < sizeof sample.buf; z++){ - i++; - sample.buf[z] = encode_message[i]; - } - decode_message->numbers[count_number++] = sample.fVal; - 121a: 95 01 movw r18, r10 - 121c: 2f 5f subi r18, 0xFF ; 255 - 121e: 3f 4f sbci r19, 0xFF ; 255 - 1220: 59 01 movw r10, r18 - decode_message->len_numbers++; - } - - - if (encode_message[i] == FLAG_WORD){ - 1222: fc 01 movw r30, r24 - 1224: e6 0f add r30, r22 - 1226: f7 1f adc r31, r23 - 1228: 20 81 ld r18, Z - 122a: 21 30 cpi r18, 0x01 ; 1 - 122c: 21 f5 brne .+72 ; 0x1276 <protocol_decode+0xfa> - int count_word = 0; - i++; - 122e: 9b 01 movw r18, r22 - 1230: 2f 5f subi r18, 0xFF ; 255 - 1232: 3f 4f sbci r19, 0xFF ; 255 - union convert_char sample; - for (int z = 0; z < encode_message[i]; z++){ - 1234: fc 01 movw r30, r24 - 1236: e2 0f add r30, r18 - 1238: f3 1f adc r31, r19 - 123a: e0 81 ld r30, Z - 123c: ee 23 and r30, r30 - 123e: 99 f0 breq .+38 ; 0x1266 <protocol_decode+0xea> - 1240: 6e 5f subi r22, 0xFE ; 254 - 1242: 7f 4f sbci r23, 0xFF ; 255 - 1244: dc 01 movw r26, r24 - 1246: a6 0f add r26, r22 - 1248: b7 1f adc r27, r23 - 124a: f7 01 movw r30, r14 - 124c: b9 01 movw r22, r18 - i++; - 124e: 6f 5f subi r22, 0xFF ; 255 - 1250: 7f 4f sbci r23, 0xFF ; 255 - sample.buf[z] = encode_message[i]; - 1252: 2d 91 ld r18, X+ - 1254: 21 93 st Z+, r18 - - if (encode_message[i] == FLAG_WORD){ - int count_word = 0; - i++; - union convert_char sample; - for (int z = 0; z < encode_message[i]; z++){ - 1256: 30 e0 ldi r19, 0x00 ; 0 - 1258: 8f 01 movw r16, r30 - 125a: 0e 19 sub r16, r14 - 125c: 1f 09 sbc r17, r15 - 125e: 02 17 cp r16, r18 - 1260: 13 07 cpc r17, r19 - 1262: ac f3 brlt .-22 ; 0x124e <protocol_decode+0xd2> - 1264: 01 c0 rjmp .+2 ; 0x1268 <protocol_decode+0xec> - } - - - if (encode_message[i] == FLAG_WORD){ - int count_word = 0; - i++; - 1266: b9 01 movw r22, r18 - union convert_char sample; - for (int z = 0; z < encode_message[i]; z++){ - i++; - sample.buf[z] = encode_message[i]; - } - decode_message->str = sample.cVal; - 1268: 29 81 ldd r18, Y+1 ; 0x01 - 126a: 3a 81 ldd r19, Y+2 ; 0x02 - 126c: fa 01 movw r30, r20 - 126e: 37 87 std Z+15, r19 ; 0x0f - 1270: 26 87 std Z+14, r18 ; 0x0e - decode_message->len_str = count_word; - 1272: 11 8a std Z+17, r1 ; 0x11 - 1274: 10 8a std Z+16, r1 ; 0x10 -#include "protocol.h" - -void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message){ - int count_number = 0; - for(int i = 0; i < len_encode_message; i++){ - 1276: 6f 5f subi r22, 0xFF ; 255 - 1278: 7f 4f sbci r23, 0xFF ; 255 - 127a: 9b 01 movw r18, r22 - 127c: 68 15 cp r22, r8 - 127e: 79 05 cpc r23, r9 - 1280: 08 f4 brcc .+2 ; 0x1284 <protocol_decode+0x108> - 1282: a2 cf rjmp .-188 ; 0x11c8 <protocol_decode+0x4c> - 1284: 02 c0 rjmp .+4 ; 0x128a <protocol_decode+0x10e> -#include "protocol.h" - -void protocol_decode(uint8_t encode_message[], size_t len_encode_message, struct message* decode_message){ - int count_number = 0; - 1286: a1 2c mov r10, r1 - 1288: b1 2c mov r11, r1 - } - decode_message->str = sample.cVal; - decode_message->len_str = count_word; - } - } - decode_message->len_numbers = count_number; - 128a: fa 01 movw r30, r20 - 128c: b5 86 std Z+13, r11 ; 0x0d - 128e: a4 86 std Z+12, r10 ; 0x0c -} - 1290: c0 5c subi r28, 0xC0 ; 192 - 1292: df 4f sbci r29, 0xFF ; 255 - 1294: 0f b6 in r0, 0x3f ; 63 - 1296: f8 94 cli - 1298: de bf out 0x3e, r29 ; 62 - 129a: 0f be out 0x3f, r0 ; 63 - 129c: cd bf out 0x3d, r28 ; 61 - 129e: df 91 pop r29 - 12a0: cf 91 pop r28 - 12a2: 1f 91 pop r17 - 12a4: 0f 91 pop r16 - 12a6: ff 90 pop r15 - 12a8: ef 90 pop r14 - 12aa: df 90 pop r13 - 12ac: cf 90 pop r12 - 12ae: bf 90 pop r11 - 12b0: af 90 pop r10 - 12b2: 9f 90 pop r9 - 12b4: 8f 90 pop r8 - 12b6: 08 95 ret - -000012b8 <protocol_encode>: - -void protocol_encode(struct message message, uint8_t encode_message[], size_t* len_encode_message){ - 12b8: 4f 92 push r4 - 12ba: 5f 92 push r5 - 12bc: 6f 92 push r6 - 12be: 7f 92 push r7 - 12c0: 8f 92 push r8 - 12c2: 9f 92 push r9 - 12c4: af 92 push r10 - 12c6: bf 92 push r11 - 12c8: cf 92 push r12 - 12ca: df 92 push r13 - 12cc: ef 92 push r14 - 12ce: ff 92 push r15 - 12d0: 0f 93 push r16 - 12d2: 1f 93 push r17 - 12d4: cf 93 push r28 - 12d6: df 93 push r29 - 12d8: cd b7 in r28, 0x3d ; 61 - 12da: de b7 in r29, 0x3e ; 62 - 12dc: c2 55 subi r28, 0x52 ; 82 - 12de: d1 09 sbc r29, r1 - 12e0: 0f b6 in r0, 0x3f ; 63 - 12e2: f8 94 cli - 12e4: de bf out 0x3e, r29 ; 62 - 12e6: 0f be out 0x3f, r0 ; 63 - 12e8: cd bf out 0x3d, r28 ; 61 - 12ea: 22 96 adiw r28, 0x02 ; 2 - 12ec: 8f ae std Y+63, r8 ; 0x3f - 12ee: 22 97 sbiw r28, 0x02 ; 2 - 12f0: 23 96 adiw r28, 0x03 ; 3 - 12f2: 9f ae std Y+63, r9 ; 0x3f - 12f4: 23 97 sbiw r28, 0x03 ; 3 - 12f6: 24 96 adiw r28, 0x04 ; 4 - 12f8: af ae std Y+63, r10 ; 0x3f - 12fa: 24 97 sbiw r28, 0x04 ; 4 - 12fc: 25 96 adiw r28, 0x05 ; 5 - 12fe: bf ae std Y+63, r11 ; 0x3f - 1300: 25 97 sbiw r28, 0x05 ; 5 - 1302: 26 96 adiw r28, 0x06 ; 6 - 1304: cf ae std Y+63, r12 ; 0x3f - 1306: 26 97 sbiw r28, 0x06 ; 6 - 1308: 27 96 adiw r28, 0x07 ; 7 - 130a: df ae std Y+63, r13 ; 0x3f - 130c: 27 97 sbiw r28, 0x07 ; 7 - 130e: 28 96 adiw r28, 0x08 ; 8 - 1310: ef ae std Y+63, r14 ; 0x3f - 1312: 28 97 sbiw r28, 0x08 ; 8 - 1314: 29 96 adiw r28, 0x09 ; 9 - 1316: ff ae std Y+63, r15 ; 0x3f - 1318: 29 97 sbiw r28, 0x09 ; 9 - 131a: 2a 96 adiw r28, 0x0a ; 10 - 131c: 0f af std Y+63, r16 ; 0x3f - 131e: 2a 97 sbiw r28, 0x0a ; 10 - 1320: 2b 96 adiw r28, 0x0b ; 11 - 1322: 1f af std Y+63, r17 ; 0x3f - 1324: 2b 97 sbiw r28, 0x0b ; 11 - 1326: 2c 96 adiw r28, 0x0c ; 12 - 1328: 2f af std Y+63, r18 ; 0x3f - 132a: 2c 97 sbiw r28, 0x0c ; 12 - 132c: 2d 96 adiw r28, 0x0d ; 13 - 132e: 3f af std Y+63, r19 ; 0x3f - 1330: 2d 97 sbiw r28, 0x0d ; 13 - 1332: 2e 96 adiw r28, 0x0e ; 14 - 1334: 4f af std Y+63, r20 ; 0x3f - 1336: 2e 97 sbiw r28, 0x0e ; 14 - 1338: 2f 96 adiw r28, 0x0f ; 15 - 133a: 5f af std Y+63, r21 ; 0x3f - 133c: 2f 97 sbiw r28, 0x0f ; 15 - 133e: 60 96 adiw r28, 0x10 ; 16 - 1340: 6f af std Y+63, r22 ; 0x3f - 1342: 60 97 sbiw r28, 0x10 ; 16 - 1344: 61 96 adiw r28, 0x11 ; 17 - 1346: 7f af std Y+63, r23 ; 0x3f - 1348: 61 97 sbiw r28, 0x11 ; 17 - 134a: 62 96 adiw r28, 0x12 ; 18 - 134c: 8f af std Y+63, r24 ; 0x3f - 134e: 62 97 sbiw r28, 0x12 ; 18 - 1350: 63 96 adiw r28, 0x13 ; 19 - 1352: 9f af std Y+63, r25 ; 0x3f - 1354: 63 97 sbiw r28, 0x13 ; 19 - 1356: a7 96 adiw r28, 0x27 ; 39 - 1358: 0e ad ldd r16, Y+62 ; 0x3e - 135a: 1f ad ldd r17, Y+63 ; 0x3f - 135c: a7 97 sbiw r28, 0x27 ; 39 - 135e: 2f 96 adiw r28, 0x0f ; 15 - 1360: ce ac ldd r12, Y+62 ; 0x3e - 1362: df ac ldd r13, Y+63 ; 0x3f - 1364: 2f 97 sbiw r28, 0x0f ; 15 - 1366: 63 96 adiw r28, 0x13 ; 19 - 1368: 6e ad ldd r22, Y+62 ; 0x3e - 136a: 7f ad ldd r23, Y+63 ; 0x3f - 136c: 63 97 sbiw r28, 0x13 ; 19 - size_t count = 0; - if (message.len_numbers > 0){ - 136e: c1 14 cp r12, r1 - 1370: d1 04 cpc r13, r1 - 1372: 09 f4 brne .+2 ; 0x1376 <protocol_encode+0xbe> - 1374: 66 c0 rjmp .+204 ; 0x1442 <protocol_encode+0x18a> - 1376: 78 01 movw r14, r16 - 1378: ce 01 movw r24, r28 - 137a: 8f 5b subi r24, 0xBF ; 191 - 137c: 9f 4f sbci r25, 0xFF ; 255 - 137e: 56 01 movw r10, r12 - 1380: aa 0c add r10, r10 - 1382: bb 1c adc r11, r11 - 1384: aa 0c add r10, r10 - 1386: bb 1c adc r11, r11 - 1388: a8 0e add r10, r24 - 138a: b9 1e adc r11, r25 - 138c: ae 01 movw r20, r28 - 138e: 4b 5f subi r20, 0xFB ; 251 - 1390: 5f 4f sbci r21, 0xFF ; 255 - for (int i = 0; i < message.len_numbers; i++){ - encode_message[count++] = FLAG_NUMBER; - 1392: f7 01 movw r30, r14 - 1394: 11 92 st Z+, r1 - union convert_float sample; - sample.fVal = message.numbers[i]; - 1396: dc 01 movw r26, r24 - 1398: 4d 90 ld r4, X+ - 139a: 5d 90 ld r5, X+ - 139c: 6d 90 ld r6, X+ - 139e: 7d 90 ld r7, X+ - 13a0: cd 01 movw r24, r26 - 13a2: 49 82 std Y+1, r4 ; 0x01 - 13a4: 5a 82 std Y+2, r5 ; 0x02 - 13a6: 6b 82 std Y+3, r6 ; 0x03 - 13a8: 7c 82 std Y+4, r7 ; 0x04 - 13aa: de 01 movw r26, r28 - 13ac: 11 96 adiw r26, 0x01 ; 1 - for (int z = 0; z < sizeof sample.buf; z++){ - encode_message[count++] = sample.buf[z]; - 13ae: 3d 91 ld r19, X+ - 13b0: 31 93 st Z+, r19 - if (message.len_numbers > 0){ - for (int i = 0; i < message.len_numbers; i++){ - encode_message[count++] = FLAG_NUMBER; - union convert_float sample; - sample.fVal = message.numbers[i]; - for (int z = 0; z < sizeof sample.buf; z++){ - 13b2: a4 17 cp r26, r20 - 13b4: b5 07 cpc r27, r21 - 13b6: d9 f7 brne .-10 ; 0x13ae <protocol_encode+0xf6> - 13b8: b5 e0 ldi r27, 0x05 ; 5 - 13ba: eb 0e add r14, r27 - 13bc: f1 1c adc r15, r1 -} - -void protocol_encode(struct message message, uint8_t encode_message[], size_t* len_encode_message){ - size_t count = 0; - if (message.len_numbers > 0){ - for (int i = 0; i < message.len_numbers; i++){ - 13be: 8a 15 cp r24, r10 - 13c0: 9b 05 cpc r25, r11 - 13c2: 39 f7 brne .-50 ; 0x1392 <protocol_encode+0xda> - 13c4: 96 01 movw r18, r12 - 13c6: 22 0f add r18, r18 - 13c8: 33 1f adc r19, r19 - 13ca: 22 0f add r18, r18 - 13cc: 33 1f adc r19, r19 - 13ce: 2c 0d add r18, r12 - 13d0: 3d 1d adc r19, r13 - encode_message[count++] = sample.buf[z]; - } - } - } - - if (message.len_str > 0){ - 13d2: 61 15 cp r22, r1 - 13d4: 71 05 cpc r23, r1 - 13d6: 09 f1 breq .+66 ; 0x141a <protocol_encode+0x162> - encode_message[count++] = FLAG_WORD; - 13d8: d8 01 movw r26, r16 - 13da: a2 0f add r26, r18 - 13dc: b3 1f adc r27, r19 - 13de: 81 e0 ldi r24, 0x01 ; 1 - 13e0: 8c 93 st X, r24 - encode_message[count++] = message.len_str; - 13e2: d9 01 movw r26, r18 - 13e4: 11 96 adiw r26, 0x01 ; 1 - 13e6: a0 0f add r26, r16 - 13e8: b1 1f adc r27, r17 - 13ea: 2e 5f subi r18, 0xFE ; 254 - 13ec: 3f 4f sbci r19, 0xFF ; 255 - 13ee: 6c 93 st X, r22 - union convert_char sample; - sample.cVal = message.str; - 13f0: 61 96 adiw r28, 0x11 ; 17 - 13f2: 8e ad ldd r24, Y+62 ; 0x3e - 13f4: 9f ad ldd r25, Y+63 ; 0x3f - 13f6: 61 97 sbiw r28, 0x11 ; 17 - 13f8: 9a 83 std Y+2, r25 ; 0x02 - 13fa: 89 83 std Y+1, r24 ; 0x01 - 13fc: de 01 movw r26, r28 - 13fe: 11 96 adiw r26, 0x01 ; 1 - 1400: f8 01 movw r30, r16 - 1402: e2 0f add r30, r18 - 1404: f3 1f adc r31, r19 - } - } - - if (message.len_str > 0){ - encode_message[count++] = FLAG_WORD; - encode_message[count++] = message.len_str; - 1406: 80 e0 ldi r24, 0x00 ; 0 - 1408: 90 e0 ldi r25, 0x00 ; 0 - union convert_char sample; - sample.cVal = message.str; - for (int i = 0; i < message.len_str; i++){ - encode_message[count++] = sample.buf[i]; - 140a: 2f 5f subi r18, 0xFF ; 255 - 140c: 3f 4f sbci r19, 0xFF ; 255 - 140e: 4d 91 ld r20, X+ - 1410: 41 93 st Z+, r20 - if (message.len_str > 0){ - encode_message[count++] = FLAG_WORD; - encode_message[count++] = message.len_str; - union convert_char sample; - sample.cVal = message.str; - for (int i = 0; i < message.len_str; i++){ - 1412: 01 96 adiw r24, 0x01 ; 1 - 1414: 86 17 cp r24, r22 - 1416: 97 07 cpc r25, r23 - 1418: c0 f3 brcs .-16 ; 0x140a <protocol_encode+0x152> - encode_message[count++] = sample.buf[i]; - } - } - - *len_encode_message = count; - 141a: a9 96 adiw r28, 0x29 ; 41 - 141c: ee ad ldd r30, Y+62 ; 0x3e - 141e: ff ad ldd r31, Y+63 ; 0x3f - 1420: a9 97 sbiw r28, 0x29 ; 41 - 1422: 31 83 std Z+1, r19 ; 0x01 - 1424: 20 83 st Z, r18 - 1426: 13 c0 rjmp .+38 ; 0x144e <protocol_encode+0x196> - } - } - } - - if (message.len_str > 0){ - encode_message[count++] = FLAG_WORD; - 1428: 81 e0 ldi r24, 0x01 ; 1 - 142a: f8 01 movw r30, r16 - 142c: 80 83 st Z, r24 - encode_message[count++] = message.len_str; - 142e: 61 83 std Z+1, r22 ; 0x01 - union convert_char sample; - sample.cVal = message.str; - 1430: 61 96 adiw r28, 0x11 ; 17 - 1432: 8e ad ldd r24, Y+62 ; 0x3e - 1434: 9f ad ldd r25, Y+63 ; 0x3f - 1436: 61 97 sbiw r28, 0x11 ; 17 - 1438: 9a 83 std Y+2, r25 ; 0x02 - 143a: 89 83 std Y+1, r24 ; 0x01 - } - } - - if (message.len_str > 0){ - encode_message[count++] = FLAG_WORD; - encode_message[count++] = message.len_str; - 143c: 22 e0 ldi r18, 0x02 ; 2 - 143e: 30 e0 ldi r19, 0x00 ; 0 - 1440: dd cf rjmp .-70 ; 0x13fc <protocol_encode+0x144> - encode_message[count++] = sample.buf[z]; - } - } - } - - if (message.len_str > 0){ - 1442: 61 15 cp r22, r1 - 1444: 71 05 cpc r23, r1 - 1446: 81 f7 brne .-32 ; 0x1428 <protocol_encode+0x170> - } - decode_message->len_numbers = count_number; -} - -void protocol_encode(struct message message, uint8_t encode_message[], size_t* len_encode_message){ - size_t count = 0; - 1448: 20 e0 ldi r18, 0x00 ; 0 - 144a: 30 e0 ldi r19, 0x00 ; 0 - 144c: e6 cf rjmp .-52 ; 0x141a <protocol_encode+0x162> - encode_message[count++] = sample.buf[i]; - } - } - - *len_encode_message = count; - 144e: ce 5a subi r28, 0xAE ; 174 - 1450: df 4f sbci r29, 0xFF ; 255 - 1452: 0f b6 in r0, 0x3f ; 63 - 1454: f8 94 cli - 1456: de bf out 0x3e, r29 ; 62 - 1458: 0f be out 0x3f, r0 ; 63 - 145a: cd bf out 0x3d, r28 ; 61 - 145c: df 91 pop r29 - 145e: cf 91 pop r28 - 1460: 1f 91 pop r17 - 1462: 0f 91 pop r16 - 1464: ff 90 pop r15 - 1466: ef 90 pop r14 - 1468: df 90 pop r13 - 146a: cf 90 pop r12 - 146c: bf 90 pop r11 - 146e: af 90 pop r10 - 1470: 9f 90 pop r9 - 1472: 8f 90 pop r8 - 1474: 7f 90 pop r7 - 1476: 6f 90 pop r6 - 1478: 5f 90 pop r5 - 147a: 4f 90 pop r4 - 147c: 08 95 ret - -0000147e <buffer_empty>: -void initialize_buffer(struct circular_buffer* cb) { - cb->buf_head = 0; - cb->buf_tail = 0; -} -// Проверка, пустой ли буфер -int buffer_empty(const struct circular_buffer* cb) { - 147e: fc 01 movw r30, r24 - return cb->buf_head == cb->buf_tail; - 1480: 81 e0 ldi r24, 0x01 ; 1 - 1482: 90 e0 ldi r25, 0x00 ; 0 - 1484: 30 a1 ldd r19, Z+32 ; 0x20 - 1486: 21 a1 ldd r18, Z+33 ; 0x21 - 1488: 32 17 cp r19, r18 - 148a: 11 f0 breq .+4 ; 0x1490 <buffer_empty+0x12> - 148c: 80 e0 ldi r24, 0x00 ; 0 - 148e: 90 e0 ldi r25, 0x00 ; 0 -} - 1490: 08 95 ret - -00001492 <buffer_full>: -// Проверка, заполнен ли буфер -int buffer_full(const struct circular_buffer* cb) { - return (cb->buf_tail + 1) % BUFFER_SIZE == cb->buf_head; //проверяем следующее число, если оно будет совпадать с индексом головы то будет false, при совпадении вывод true - 1492: fc 01 movw r30, r24 - 1494: 21 a1 ldd r18, Z+33 ; 0x21 - 1496: 30 e0 ldi r19, 0x00 ; 0 - 1498: 2f 5f subi r18, 0xFF ; 255 - 149a: 3f 4f sbci r19, 0xFF ; 255 - 149c: 2f 71 andi r18, 0x1F ; 31 - 149e: 30 78 andi r19, 0x80 ; 128 - 14a0: 33 23 and r19, r19 - 14a2: 34 f4 brge .+12 ; 0x14b0 <buffer_full+0x1e> - 14a4: 21 50 subi r18, 0x01 ; 1 - 14a6: 31 09 sbc r19, r1 - 14a8: 20 6e ori r18, 0xE0 ; 224 - 14aa: 3f 6f ori r19, 0xFF ; 255 - 14ac: 2f 5f subi r18, 0xFF ; 255 - 14ae: 3f 4f sbci r19, 0xFF ; 255 - 14b0: fc 01 movw r30, r24 - 14b2: 40 a1 ldd r20, Z+32 ; 0x20 - 14b4: 50 e0 ldi r21, 0x00 ; 0 - 14b6: 81 e0 ldi r24, 0x01 ; 1 - 14b8: 90 e0 ldi r25, 0x00 ; 0 - 14ba: 24 17 cp r18, r20 - 14bc: 35 07 cpc r19, r21 - 14be: 11 f0 breq .+4 ; 0x14c4 <buffer_full+0x32> - 14c0: 80 e0 ldi r24, 0x00 ; 0 - 14c2: 90 e0 ldi r25, 0x00 ; 0 -} - 14c4: 08 95 ret - -000014c6 <write_buffer>: -// Запись в буфер -void write_buffer(struct circular_buffer* cb, int value) { - 14c6: 1f 93 push r17 - 14c8: cf 93 push r28 - 14ca: df 93 push r29 - 14cc: ec 01 movw r28, r24 - 14ce: 16 2f mov r17, r22 - if (buffer_full(cb)) { // проверяем, заполнен ли буфер - 14d0: 0e 94 49 0a call 0x1492 ; 0x1492 <buffer_full> - 14d4: 89 2b or r24, r25 - 14d6: 81 f4 brne .+32 ; 0x14f8 <write_buffer+0x32> - return; - } - cb->buffer[cb->buf_tail] = value;// записываем значение в элемент массива в хвост - 14d8: 89 a1 ldd r24, Y+33 ; 0x21 - 14da: 90 e0 ldi r25, 0x00 ; 0 - 14dc: fe 01 movw r30, r28 - 14de: e8 0f add r30, r24 - 14e0: f9 1f adc r31, r25 - 14e2: 10 83 st Z, r17 - cb->buf_tail = (cb->buf_tail + 1) % BUFFER_SIZE;// присваивается cb->buf_tail, обновляется его значение на следующий индекс в буфере - 14e4: 01 96 adiw r24, 0x01 ; 1 - 14e6: 8f 71 andi r24, 0x1F ; 31 - 14e8: 90 78 andi r25, 0x80 ; 128 - 14ea: 99 23 and r25, r25 - 14ec: 24 f4 brge .+8 ; 0x14f6 <write_buffer+0x30> - 14ee: 01 97 sbiw r24, 0x01 ; 1 - 14f0: 80 6e ori r24, 0xE0 ; 224 - 14f2: 9f 6f ori r25, 0xFF ; 255 - 14f4: 01 96 adiw r24, 0x01 ; 1 - 14f6: 89 a3 std Y+33, r24 ; 0x21 -} - 14f8: df 91 pop r29 - 14fa: cf 91 pop r28 - 14fc: 1f 91 pop r17 - 14fe: 08 95 ret - -00001500 <read_buffer>: -// Чтение элемента -int read_buffer(struct circular_buffer* cb) { - 1500: fc 01 movw r30, r24 - cb->buf_head = 0; - cb->buf_tail = 0; -} -// Проверка, пустой ли буфер -int buffer_empty(const struct circular_buffer* cb) { - return cb->buf_head == cb->buf_tail; - 1502: 20 a1 ldd r18, Z+32 ; 0x20 - cb->buffer[cb->buf_tail] = value;// записываем значение в элемент массива в хвост - cb->buf_tail = (cb->buf_tail + 1) % BUFFER_SIZE;// присваивается cb->buf_tail, обновляется его значение на следующий индекс в буфере -} -// Чтение элемента -int read_buffer(struct circular_buffer* cb) { - if (buffer_empty(cb)) { // проверка на пустоту - 1504: 81 a1 ldd r24, Z+33 ; 0x21 - 1506: 28 17 cp r18, r24 - 1508: b1 f0 breq .+44 ; 0x1536 <read_buffer+0x36> - return -1;// -1 как индикатор в случае ошибки - } - int value = cb->buffer[cb->buf_head]; // чтение по индексу головы - 150a: 30 e0 ldi r19, 0x00 ; 0 - 150c: df 01 movw r26, r30 - 150e: a2 0f add r26, r18 - 1510: b3 1f adc r27, r19 - 1512: 4c 91 ld r20, X - 1514: 50 e0 ldi r21, 0x00 ; 0 - cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1 - 1516: 2f 5f subi r18, 0xFF ; 255 - 1518: 3f 4f sbci r19, 0xFF ; 255 - 151a: 2f 71 andi r18, 0x1F ; 31 - 151c: 30 78 andi r19, 0x80 ; 128 - 151e: 33 23 and r19, r19 - 1520: 34 f4 brge .+12 ; 0x152e <read_buffer+0x2e> - 1522: 21 50 subi r18, 0x01 ; 1 - 1524: 31 09 sbc r19, r1 - 1526: 20 6e ori r18, 0xE0 ; 224 - 1528: 3f 6f ori r19, 0xFF ; 255 - 152a: 2f 5f subi r18, 0xFF ; 255 - 152c: 3f 4f sbci r19, 0xFF ; 255 - 152e: 20 a3 std Z+32, r18 ; 0x20 - return value; - 1530: 84 2f mov r24, r20 - 1532: 95 2f mov r25, r21 - 1534: 08 95 ret - cb->buf_tail = (cb->buf_tail + 1) % BUFFER_SIZE;// присваивается cb->buf_tail, обновляется его значение на следующий индекс в буфере -} -// Чтение элемента -int read_buffer(struct circular_buffer* cb) { - if (buffer_empty(cb)) { // проверка на пустоту - return -1;// -1 как индикатор в случае ошибки - 1536: 8f ef ldi r24, 0xFF ; 255 - 1538: 9f ef ldi r25, 0xFF ; 255 - } - int value = cb->buffer[cb->buf_head]; // чтение по индексу головы - cb->buf_head = (cb->buf_head + 1) % BUFFER_SIZE; // увеличиваем индекс на 1 - return value; -} - 153a: 08 95 ret - -0000153c <UART_init>: - -struct circular_buffer uartRxBuffer; -struct circular_buffer uartTxBuffer; - -void UART_init(void) { - UCSR0B = (1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0) | (1<<TXCIE0) | (1 << UDRIE0); // прерывание по приему и передаче - 153c: 88 ef ldi r24, 0xF8 ; 248 - 153e: 80 93 c1 00 sts 0x00C1, r24 ; 0x8000c1 <__DATA_REGION_ORIGIN__+0x61> - UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); - 1542: 86 e0 ldi r24, 0x06 ; 6 - 1544: 80 93 c2 00 sts 0x00C2, r24 ; 0x8000c2 <__DATA_REGION_ORIGIN__+0x62> - UBRR0H = 0; - 1548: 10 92 c5 00 sts 0x00C5, r1 ; 0x8000c5 <__DATA_REGION_ORIGIN__+0x65> - UBRR0L = 103; - 154c: 87 e6 ldi r24, 0x67 ; 103 - 154e: 80 93 c4 00 sts 0x00C4, r24 ; 0x8000c4 <__DATA_REGION_ORIGIN__+0x64> - 1552: 08 95 ret - -00001554 <UART_send>: -} - -void UART_send(uint8_t* data, size_t length) { - 1554: 0f 93 push r16 - 1556: 1f 93 push r17 - 1558: cf 93 push r28 - 155a: df 93 push r29 - for (size_t i = 0; i < length; i++) { - 155c: 61 15 cp r22, r1 - 155e: 71 05 cpc r23, r1 - 1560: 99 f0 breq .+38 ; 0x1588 <UART_send+0x34> - 1562: 8c 01 movw r16, r24 - 1564: ec 01 movw r28, r24 - 1566: 06 0f add r16, r22 - 1568: 17 1f adc r17, r23 - if (!buffer_full(&uartTxBuffer)) { - 156a: 8e e6 ldi r24, 0x6E ; 110 - 156c: 93 e0 ldi r25, 0x03 ; 3 - 156e: 0e 94 49 0a call 0x1492 ; 0x1492 <buffer_full> - 1572: 89 2b or r24, r25 - 1574: 49 f4 brne .+18 ; 0x1588 <UART_send+0x34> - write_buffer(&uartTxBuffer, data[i]); - 1576: 69 91 ld r22, Y+ - 1578: 70 e0 ldi r23, 0x00 ; 0 - 157a: 8e e6 ldi r24, 0x6E ; 110 - 157c: 93 e0 ldi r25, 0x03 ; 3 - 157e: 0e 94 63 0a call 0x14c6 ; 0x14c6 <write_buffer> - UBRR0H = 0; - UBRR0L = 103; -} - -void UART_send(uint8_t* data, size_t length) { - for (size_t i = 0; i < length; i++) { - 1582: c0 17 cp r28, r16 - 1584: d1 07 cpc r29, r17 - 1586: 89 f7 brne .-30 ; 0x156a <UART_send+0x16> - write_buffer(&uartTxBuffer, data[i]); - } else { - break; // если буфер передачи заполнен, то отправка прерывается - } - } - UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи - 1588: e1 ec ldi r30, 0xC1 ; 193 - 158a: f0 e0 ldi r31, 0x00 ; 0 - 158c: 80 81 ld r24, Z - 158e: 80 64 ori r24, 0x40 ; 64 - 1590: 80 83 st Z, r24 -} - 1592: df 91 pop r29 - 1594: cf 91 pop r28 - 1596: 1f 91 pop r17 - 1598: 0f 91 pop r16 - 159a: 08 95 ret - -0000159c <UART_receive>: - -// Получение данных из буфера -int UART_receive(uint8_t* data, size_t length) { - 159c: 8f 92 push r8 - 159e: 9f 92 push r9 - 15a0: af 92 push r10 - 15a2: bf 92 push r11 - 15a4: cf 92 push r12 - 15a6: df 92 push r13 - 15a8: ef 92 push r14 - 15aa: ff 92 push r15 - 15ac: 0f 93 push r16 - 15ae: 1f 93 push r17 - 15b0: cf 93 push r28 - 15b2: df 93 push r29 - 15b4: 8b 01 movw r16, r22 - 15b6: ec 01 movw r28, r24 - char overflow = 0; // Флаг переполнения, который устанавливается, если превышен размер массива - uint32_t byteCount = 0; // Счетчик байтов, принятых из буфера приема - 15b8: c1 2c mov r12, r1 - 15ba: d1 2c mov r13, r1 - 15bc: 76 01 movw r14, r12 - // Пока буфер приема не пуст и не превышен лимит длины массива, - // функция продолжает читать байты из буфера и сохранять их в массив data. - while (!buffer_empty(&uartRxBuffer) && byteCount < length) { - 15be: 4b 01 movw r8, r22 - 15c0: a1 2c mov r10, r1 - 15c2: b1 2c mov r11, r1 - 15c4: 0a c0 rjmp .+20 ; 0x15da <UART_receive+0x3e> - int reader = read_buffer(&uartRxBuffer); // Прием и запись символа в переменную - 15c6: 8c e4 ldi r24, 0x4C ; 76 - 15c8: 93 e0 ldi r25, 0x03 ; 3 - 15ca: 0e 94 80 0a call 0x1500 ; 0x1500 <read_buffer> - data[byteCount] = reader; // Запись в массив с индексом byteCount - 15ce: 89 93 st Y+, r24 - byteCount++; - 15d0: 8f ef ldi r24, 0xFF ; 255 - 15d2: c8 1a sub r12, r24 - 15d4: d8 0a sbc r13, r24 - 15d6: e8 0a sbc r14, r24 - 15d8: f8 0a sbc r15, r24 -int UART_receive(uint8_t* data, size_t length) { - char overflow = 0; // Флаг переполнения, который устанавливается, если превышен размер массива - uint32_t byteCount = 0; // Счетчик байтов, принятых из буфера приема - // Пока буфер приема не пуст и не превышен лимит длины массива, - // функция продолжает читать байты из буфера и сохранять их в массив data. - while (!buffer_empty(&uartRxBuffer) && byteCount < length) { - 15da: 8c e4 ldi r24, 0x4C ; 76 - 15dc: 93 e0 ldi r25, 0x03 ; 3 - 15de: 0e 94 3f 0a call 0x147e ; 0x147e <buffer_empty> - 15e2: 89 2b or r24, r25 - 15e4: 29 f4 brne .+10 ; 0x15f0 <UART_receive+0x54> - 15e6: c8 14 cp r12, r8 - 15e8: d9 04 cpc r13, r9 - 15ea: ea 04 cpc r14, r10 - 15ec: fb 04 cpc r15, r11 - 15ee: 58 f3 brcs .-42 ; 0x15c6 <UART_receive+0x2a> - } - // Проверка переполнения - if (byteCount > length) { - overflow = 1; - } - return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения - 15f0: 20 e0 ldi r18, 0x00 ; 0 - 15f2: 30 e0 ldi r19, 0x00 ; 0 - 15f4: 0c 15 cp r16, r12 - 15f6: 1d 05 cpc r17, r13 - 15f8: 2e 05 cpc r18, r14 - 15fa: 3f 05 cpc r19, r15 - 15fc: 10 f0 brcs .+4 ; 0x1602 <UART_receive+0x66> - 15fe: c6 01 movw r24, r12 - 1600: 02 c0 rjmp .+4 ; 0x1606 <UART_receive+0x6a> - 1602: 8f ef ldi r24, 0xFF ; 255 - 1604: 9f ef ldi r25, 0xFF ; 255 -} - 1606: df 91 pop r29 - 1608: cf 91 pop r28 - 160a: 1f 91 pop r17 - 160c: 0f 91 pop r16 - 160e: ff 90 pop r15 - 1610: ef 90 pop r14 - 1612: df 90 pop r13 - 1614: cf 90 pop r12 - 1616: bf 90 pop r11 - 1618: af 90 pop r10 - 161a: 9f 90 pop r9 - 161c: 8f 90 pop r8 - 161e: 08 95 ret - -00001620 <__vector_18>: - -// прерывание по завершению приема -ISR(USART_RX_vect) { - 1620: 1f 92 push r1 - 1622: 0f 92 push r0 - 1624: 0f b6 in r0, 0x3f ; 63 - 1626: 0f 92 push r0 - 1628: 11 24 eor r1, r1 - 162a: 2f 93 push r18 - 162c: 3f 93 push r19 - 162e: 4f 93 push r20 - 1630: 5f 93 push r21 - 1632: 6f 93 push r22 - 1634: 7f 93 push r23 - 1636: 8f 93 push r24 - 1638: 9f 93 push r25 - 163a: af 93 push r26 - 163c: bf 93 push r27 - 163e: cf 93 push r28 - 1640: ef 93 push r30 - 1642: ff 93 push r31 - uint8_t data = UDR0; // читаем из регистра UDR0 - 1644: c0 91 c6 00 lds r28, 0x00C6 ; 0x8000c6 <__DATA_REGION_ORIGIN__+0x66> - if (!buffer_full(&uartRxBuffer)) { - 1648: 8c e4 ldi r24, 0x4C ; 76 - 164a: 93 e0 ldi r25, 0x03 ; 3 - 164c: 0e 94 49 0a call 0x1492 ; 0x1492 <buffer_full> - 1650: 89 2b or r24, r25 - 1652: 31 f4 brne .+12 ; 0x1660 <__vector_18+0x40> - write_buffer(&uartRxBuffer, data);// записываем символ в буфер приема - 1654: 6c 2f mov r22, r28 - 1656: 70 e0 ldi r23, 0x00 ; 0 - 1658: 8c e4 ldi r24, 0x4C ; 76 - 165a: 93 e0 ldi r25, 0x03 ; 3 - 165c: 0e 94 63 0a call 0x14c6 ; 0x14c6 <write_buffer> - } -} - 1660: ff 91 pop r31 - 1662: ef 91 pop r30 - 1664: cf 91 pop r28 - 1666: bf 91 pop r27 - 1668: af 91 pop r26 - 166a: 9f 91 pop r25 - 166c: 8f 91 pop r24 - 166e: 7f 91 pop r23 - 1670: 6f 91 pop r22 - 1672: 5f 91 pop r21 - 1674: 4f 91 pop r20 - 1676: 3f 91 pop r19 - 1678: 2f 91 pop r18 - 167a: 0f 90 pop r0 - 167c: 0f be out 0x3f, r0 ; 63 - 167e: 0f 90 pop r0 - 1680: 1f 90 pop r1 - 1682: 18 95 reti - -00001684 <__vector_20>: - -ISR(USART_TX_vect) { - 1684: 1f 92 push r1 - 1686: 0f 92 push r0 - 1688: 0f b6 in r0, 0x3f ; 63 - 168a: 0f 92 push r0 - 168c: 11 24 eor r1, r1 - 168e: 2f 93 push r18 - 1690: 3f 93 push r19 - 1692: 4f 93 push r20 - 1694: 5f 93 push r21 - 1696: 6f 93 push r22 - 1698: 7f 93 push r23 - 169a: 8f 93 push r24 - 169c: 9f 93 push r25 - 169e: af 93 push r26 - 16a0: bf 93 push r27 - 16a2: ef 93 push r30 - 16a4: ff 93 push r31 - if (!buffer_empty(&uartTxBuffer)) { - 16a6: 8e e6 ldi r24, 0x6E ; 110 - 16a8: 93 e0 ldi r25, 0x03 ; 3 - 16aa: 0e 94 3f 0a call 0x147e ; 0x147e <buffer_empty> - 16ae: 89 2b or r24, r25 - 16b0: 39 f4 brne .+14 ; 0x16c0 <__vector_20+0x3c> - UDR0 = read_buffer(&uartTxBuffer); - 16b2: 8e e6 ldi r24, 0x6E ; 110 - 16b4: 93 e0 ldi r25, 0x03 ; 3 - 16b6: 0e 94 80 0a call 0x1500 ; 0x1500 <read_buffer> - 16ba: 80 93 c6 00 sts 0x00C6, r24 ; 0x8000c6 <__DATA_REGION_ORIGIN__+0x66> - 16be: 05 c0 rjmp .+10 ; 0x16ca <__vector_20+0x46> - } else { - UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены - 16c0: e1 ec ldi r30, 0xC1 ; 193 - 16c2: f0 e0 ldi r31, 0x00 ; 0 - 16c4: 80 81 ld r24, Z - 16c6: 8f 7b andi r24, 0xBF ; 191 - 16c8: 80 83 st Z, r24 - } - 16ca: ff 91 pop r31 - 16cc: ef 91 pop r30 - 16ce: bf 91 pop r27 - 16d0: af 91 pop r26 - 16d2: 9f 91 pop r25 - 16d4: 8f 91 pop r24 - 16d6: 7f 91 pop r23 - 16d8: 6f 91 pop r22 - 16da: 5f 91 pop r21 - 16dc: 4f 91 pop r20 - 16de: 3f 91 pop r19 - 16e0: 2f 91 pop r18 - 16e2: 0f 90 pop r0 - 16e4: 0f be out 0x3f, r0 ; 63 - 16e6: 0f 90 pop r0 - 16e8: 1f 90 pop r1 - 16ea: 18 95 reti - -000016ec <__udivmodhi4>: - 16ec: aa 1b sub r26, r26 - 16ee: bb 1b sub r27, r27 - 16f0: 51 e1 ldi r21, 0x11 ; 17 - 16f2: 07 c0 rjmp .+14 ; 0x1702 <__udivmodhi4_ep> - -000016f4 <__udivmodhi4_loop>: - 16f4: aa 1f adc r26, r26 - 16f6: bb 1f adc r27, r27 - 16f8: a6 17 cp r26, r22 - 16fa: b7 07 cpc r27, r23 - 16fc: 10 f0 brcs .+4 ; 0x1702 <__udivmodhi4_ep> - 16fe: a6 1b sub r26, r22 - 1700: b7 0b sbc r27, r23 - -00001702 <__udivmodhi4_ep>: - 1702: 88 1f adc r24, r24 - 1704: 99 1f adc r25, r25 - 1706: 5a 95 dec r21 - 1708: a9 f7 brne .-22 ; 0x16f4 <__udivmodhi4_loop> - 170a: 80 95 com r24 - 170c: 90 95 com r25 - 170e: bc 01 movw r22, r24 - 1710: cd 01 movw r24, r26 - 1712: 08 95 ret - -00001714 <strncpy>: - 1714: fb 01 movw r30, r22 - 1716: dc 01 movw r26, r24 - 1718: 41 50 subi r20, 0x01 ; 1 - 171a: 50 40 sbci r21, 0x00 ; 0 - 171c: 48 f0 brcs .+18 ; 0x1730 <strncpy+0x1c> - 171e: 01 90 ld r0, Z+ - 1720: 0d 92 st X+, r0 - 1722: 00 20 and r0, r0 - 1724: c9 f7 brne .-14 ; 0x1718 <strncpy+0x4> - 1726: 01 c0 rjmp .+2 ; 0x172a <strncpy+0x16> - 1728: 1d 92 st X+, r1 - 172a: 41 50 subi r20, 0x01 ; 1 - 172c: 50 40 sbci r21, 0x00 ; 0 - 172e: e0 f7 brcc .-8 ; 0x1728 <strncpy+0x14> - 1730: 08 95 ret - -00001732 <printf>: - 1732: a0 e0 ldi r26, 0x00 ; 0 - 1734: b0 e0 ldi r27, 0x00 ; 0 - 1736: ef e9 ldi r30, 0x9F ; 159 - 1738: fb e0 ldi r31, 0x0B ; 11 - 173a: 0c 94 80 0e jmp 0x1d00 ; 0x1d00 <__prologue_saves__+0x20> - 173e: ae 01 movw r20, r28 - 1740: 4b 5f subi r20, 0xFB ; 251 - 1742: 5f 4f sbci r21, 0xFF ; 255 - 1744: fa 01 movw r30, r20 - 1746: 61 91 ld r22, Z+ - 1748: 71 91 ld r23, Z+ - 174a: af 01 movw r20, r30 - 174c: 80 91 92 03 lds r24, 0x0392 ; 0x800392 <__iob+0x2> - 1750: 90 91 93 03 lds r25, 0x0393 ; 0x800393 <__iob+0x3> - 1754: 0e 94 df 0b call 0x17be ; 0x17be <vfprintf> - 1758: e2 e0 ldi r30, 0x02 ; 2 - 175a: 0c 94 9c 0e jmp 0x1d38 ; 0x1d38 <__epilogue_restores__+0x20> - -0000175e <snprintf>: - 175e: ae e0 ldi r26, 0x0E ; 14 - 1760: b0 e0 ldi r27, 0x00 ; 0 - 1762: e5 eb ldi r30, 0xB5 ; 181 - 1764: fb e0 ldi r31, 0x0B ; 11 - 1766: 0c 94 7e 0e jmp 0x1cfc ; 0x1cfc <__prologue_saves__+0x1c> - 176a: 0d 89 ldd r16, Y+21 ; 0x15 - 176c: 1e 89 ldd r17, Y+22 ; 0x16 - 176e: 8f 89 ldd r24, Y+23 ; 0x17 - 1770: 98 8d ldd r25, Y+24 ; 0x18 - 1772: 26 e0 ldi r18, 0x06 ; 6 - 1774: 2c 83 std Y+4, r18 ; 0x04 - 1776: 1a 83 std Y+2, r17 ; 0x02 - 1778: 09 83 std Y+1, r16 ; 0x01 - 177a: 97 ff sbrs r25, 7 - 177c: 02 c0 rjmp .+4 ; 0x1782 <snprintf+0x24> - 177e: 80 e0 ldi r24, 0x00 ; 0 - 1780: 90 e8 ldi r25, 0x80 ; 128 - 1782: 01 97 sbiw r24, 0x01 ; 1 - 1784: 9e 83 std Y+6, r25 ; 0x06 - 1786: 8d 83 std Y+5, r24 ; 0x05 - 1788: ae 01 movw r20, r28 - 178a: 45 5e subi r20, 0xE5 ; 229 - 178c: 5f 4f sbci r21, 0xFF ; 255 - 178e: 69 8d ldd r22, Y+25 ; 0x19 - 1790: 7a 8d ldd r23, Y+26 ; 0x1a - 1792: ce 01 movw r24, r28 - 1794: 01 96 adiw r24, 0x01 ; 1 - 1796: 0e 94 df 0b call 0x17be ; 0x17be <vfprintf> - 179a: 4d 81 ldd r20, Y+5 ; 0x05 - 179c: 5e 81 ldd r21, Y+6 ; 0x06 - 179e: 57 fd sbrc r21, 7 - 17a0: 0a c0 rjmp .+20 ; 0x17b6 <snprintf+0x58> - 17a2: 2f 81 ldd r18, Y+7 ; 0x07 - 17a4: 38 85 ldd r19, Y+8 ; 0x08 - 17a6: 42 17 cp r20, r18 - 17a8: 53 07 cpc r21, r19 - 17aa: 0c f4 brge .+2 ; 0x17ae <snprintf+0x50> - 17ac: 9a 01 movw r18, r20 - 17ae: f8 01 movw r30, r16 - 17b0: e2 0f add r30, r18 - 17b2: f3 1f adc r31, r19 - 17b4: 10 82 st Z, r1 - 17b6: 2e 96 adiw r28, 0x0e ; 14 - 17b8: e4 e0 ldi r30, 0x04 ; 4 - 17ba: 0c 94 9a 0e jmp 0x1d34 ; 0x1d34 <__epilogue_restores__+0x1c> - -000017be <vfprintf>: - 17be: ab e0 ldi r26, 0x0B ; 11 - 17c0: b0 e0 ldi r27, 0x00 ; 0 - 17c2: e5 ee ldi r30, 0xE5 ; 229 - 17c4: fb e0 ldi r31, 0x0B ; 11 - 17c6: 0c 94 70 0e jmp 0x1ce0 ; 0x1ce0 <__prologue_saves__> - 17ca: 6c 01 movw r12, r24 - 17cc: 7b 01 movw r14, r22 - 17ce: 8a 01 movw r16, r20 - 17d0: fc 01 movw r30, r24 - 17d2: 17 82 std Z+7, r1 ; 0x07 - 17d4: 16 82 std Z+6, r1 ; 0x06 - 17d6: 83 81 ldd r24, Z+3 ; 0x03 - 17d8: 81 ff sbrs r24, 1 - 17da: cc c1 rjmp .+920 ; 0x1b74 <vfprintf+0x3b6> - 17dc: ce 01 movw r24, r28 - 17de: 01 96 adiw r24, 0x01 ; 1 - 17e0: 3c 01 movw r6, r24 - 17e2: f6 01 movw r30, r12 - 17e4: 93 81 ldd r25, Z+3 ; 0x03 - 17e6: f7 01 movw r30, r14 - 17e8: 93 fd sbrc r25, 3 - 17ea: 85 91 lpm r24, Z+ - 17ec: 93 ff sbrs r25, 3 - 17ee: 81 91 ld r24, Z+ - 17f0: 7f 01 movw r14, r30 - 17f2: 88 23 and r24, r24 - 17f4: 09 f4 brne .+2 ; 0x17f8 <vfprintf+0x3a> - 17f6: ba c1 rjmp .+884 ; 0x1b6c <vfprintf+0x3ae> - 17f8: 85 32 cpi r24, 0x25 ; 37 - 17fa: 39 f4 brne .+14 ; 0x180a <vfprintf+0x4c> - 17fc: 93 fd sbrc r25, 3 - 17fe: 85 91 lpm r24, Z+ - 1800: 93 ff sbrs r25, 3 - 1802: 81 91 ld r24, Z+ - 1804: 7f 01 movw r14, r30 - 1806: 85 32 cpi r24, 0x25 ; 37 - 1808: 29 f4 brne .+10 ; 0x1814 <vfprintf+0x56> - 180a: b6 01 movw r22, r12 - 180c: 90 e0 ldi r25, 0x00 ; 0 - 180e: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1812: e7 cf rjmp .-50 ; 0x17e2 <vfprintf+0x24> - 1814: 91 2c mov r9, r1 - 1816: 21 2c mov r2, r1 - 1818: 31 2c mov r3, r1 - 181a: ff e1 ldi r31, 0x1F ; 31 - 181c: f3 15 cp r31, r3 - 181e: d8 f0 brcs .+54 ; 0x1856 <vfprintf+0x98> - 1820: 8b 32 cpi r24, 0x2B ; 43 - 1822: 79 f0 breq .+30 ; 0x1842 <vfprintf+0x84> - 1824: 38 f4 brcc .+14 ; 0x1834 <vfprintf+0x76> - 1826: 80 32 cpi r24, 0x20 ; 32 - 1828: 79 f0 breq .+30 ; 0x1848 <vfprintf+0x8a> - 182a: 83 32 cpi r24, 0x23 ; 35 - 182c: a1 f4 brne .+40 ; 0x1856 <vfprintf+0x98> - 182e: 23 2d mov r18, r3 - 1830: 20 61 ori r18, 0x10 ; 16 - 1832: 1d c0 rjmp .+58 ; 0x186e <vfprintf+0xb0> - 1834: 8d 32 cpi r24, 0x2D ; 45 - 1836: 61 f0 breq .+24 ; 0x1850 <vfprintf+0x92> - 1838: 80 33 cpi r24, 0x30 ; 48 - 183a: 69 f4 brne .+26 ; 0x1856 <vfprintf+0x98> - 183c: 23 2d mov r18, r3 - 183e: 21 60 ori r18, 0x01 ; 1 - 1840: 16 c0 rjmp .+44 ; 0x186e <vfprintf+0xb0> - 1842: 83 2d mov r24, r3 - 1844: 82 60 ori r24, 0x02 ; 2 - 1846: 38 2e mov r3, r24 - 1848: e3 2d mov r30, r3 - 184a: e4 60 ori r30, 0x04 ; 4 - 184c: 3e 2e mov r3, r30 - 184e: 2a c0 rjmp .+84 ; 0x18a4 <vfprintf+0xe6> - 1850: f3 2d mov r31, r3 - 1852: f8 60 ori r31, 0x08 ; 8 - 1854: 1d c0 rjmp .+58 ; 0x1890 <vfprintf+0xd2> - 1856: 37 fc sbrc r3, 7 - 1858: 2d c0 rjmp .+90 ; 0x18b4 <vfprintf+0xf6> - 185a: 20 ed ldi r18, 0xD0 ; 208 - 185c: 28 0f add r18, r24 - 185e: 2a 30 cpi r18, 0x0A ; 10 - 1860: 40 f0 brcs .+16 ; 0x1872 <vfprintf+0xb4> - 1862: 8e 32 cpi r24, 0x2E ; 46 - 1864: b9 f4 brne .+46 ; 0x1894 <vfprintf+0xd6> - 1866: 36 fc sbrc r3, 6 - 1868: 81 c1 rjmp .+770 ; 0x1b6c <vfprintf+0x3ae> - 186a: 23 2d mov r18, r3 - 186c: 20 64 ori r18, 0x40 ; 64 - 186e: 32 2e mov r3, r18 - 1870: 19 c0 rjmp .+50 ; 0x18a4 <vfprintf+0xe6> - 1872: 36 fe sbrs r3, 6 - 1874: 06 c0 rjmp .+12 ; 0x1882 <vfprintf+0xc4> - 1876: 8a e0 ldi r24, 0x0A ; 10 - 1878: 98 9e mul r9, r24 - 187a: 20 0d add r18, r0 - 187c: 11 24 eor r1, r1 - 187e: 92 2e mov r9, r18 - 1880: 11 c0 rjmp .+34 ; 0x18a4 <vfprintf+0xe6> - 1882: ea e0 ldi r30, 0x0A ; 10 - 1884: 2e 9e mul r2, r30 - 1886: 20 0d add r18, r0 - 1888: 11 24 eor r1, r1 - 188a: 22 2e mov r2, r18 - 188c: f3 2d mov r31, r3 - 188e: f0 62 ori r31, 0x20 ; 32 - 1890: 3f 2e mov r3, r31 - 1892: 08 c0 rjmp .+16 ; 0x18a4 <vfprintf+0xe6> - 1894: 8c 36 cpi r24, 0x6C ; 108 - 1896: 21 f4 brne .+8 ; 0x18a0 <vfprintf+0xe2> - 1898: 83 2d mov r24, r3 - 189a: 80 68 ori r24, 0x80 ; 128 - 189c: 38 2e mov r3, r24 - 189e: 02 c0 rjmp .+4 ; 0x18a4 <vfprintf+0xe6> - 18a0: 88 36 cpi r24, 0x68 ; 104 - 18a2: 41 f4 brne .+16 ; 0x18b4 <vfprintf+0xf6> - 18a4: f7 01 movw r30, r14 - 18a6: 93 fd sbrc r25, 3 - 18a8: 85 91 lpm r24, Z+ - 18aa: 93 ff sbrs r25, 3 - 18ac: 81 91 ld r24, Z+ - 18ae: 7f 01 movw r14, r30 - 18b0: 81 11 cpse r24, r1 - 18b2: b3 cf rjmp .-154 ; 0x181a <vfprintf+0x5c> - 18b4: 98 2f mov r25, r24 - 18b6: 9f 7d andi r25, 0xDF ; 223 - 18b8: 95 54 subi r25, 0x45 ; 69 - 18ba: 93 30 cpi r25, 0x03 ; 3 - 18bc: 28 f4 brcc .+10 ; 0x18c8 <vfprintf+0x10a> - 18be: 0c 5f subi r16, 0xFC ; 252 - 18c0: 1f 4f sbci r17, 0xFF ; 255 - 18c2: 9f e3 ldi r25, 0x3F ; 63 - 18c4: 99 83 std Y+1, r25 ; 0x01 - 18c6: 0d c0 rjmp .+26 ; 0x18e2 <vfprintf+0x124> - 18c8: 83 36 cpi r24, 0x63 ; 99 - 18ca: 31 f0 breq .+12 ; 0x18d8 <vfprintf+0x11a> - 18cc: 83 37 cpi r24, 0x73 ; 115 - 18ce: 71 f0 breq .+28 ; 0x18ec <vfprintf+0x12e> - 18d0: 83 35 cpi r24, 0x53 ; 83 - 18d2: 09 f0 breq .+2 ; 0x18d6 <vfprintf+0x118> - 18d4: 59 c0 rjmp .+178 ; 0x1988 <vfprintf+0x1ca> - 18d6: 21 c0 rjmp .+66 ; 0x191a <vfprintf+0x15c> - 18d8: f8 01 movw r30, r16 - 18da: 80 81 ld r24, Z - 18dc: 89 83 std Y+1, r24 ; 0x01 - 18de: 0e 5f subi r16, 0xFE ; 254 - 18e0: 1f 4f sbci r17, 0xFF ; 255 - 18e2: 88 24 eor r8, r8 - 18e4: 83 94 inc r8 - 18e6: 91 2c mov r9, r1 - 18e8: 53 01 movw r10, r6 - 18ea: 13 c0 rjmp .+38 ; 0x1912 <vfprintf+0x154> - 18ec: 28 01 movw r4, r16 - 18ee: f2 e0 ldi r31, 0x02 ; 2 - 18f0: 4f 0e add r4, r31 - 18f2: 51 1c adc r5, r1 - 18f4: f8 01 movw r30, r16 - 18f6: a0 80 ld r10, Z - 18f8: b1 80 ldd r11, Z+1 ; 0x01 - 18fa: 36 fe sbrs r3, 6 - 18fc: 03 c0 rjmp .+6 ; 0x1904 <vfprintf+0x146> - 18fe: 69 2d mov r22, r9 - 1900: 70 e0 ldi r23, 0x00 ; 0 - 1902: 02 c0 rjmp .+4 ; 0x1908 <vfprintf+0x14a> - 1904: 6f ef ldi r22, 0xFF ; 255 - 1906: 7f ef ldi r23, 0xFF ; 255 - 1908: c5 01 movw r24, r10 - 190a: 0e 94 cb 0d call 0x1b96 ; 0x1b96 <strnlen> - 190e: 4c 01 movw r8, r24 - 1910: 82 01 movw r16, r4 - 1912: f3 2d mov r31, r3 - 1914: ff 77 andi r31, 0x7F ; 127 - 1916: 3f 2e mov r3, r31 - 1918: 16 c0 rjmp .+44 ; 0x1946 <vfprintf+0x188> - 191a: 28 01 movw r4, r16 - 191c: 22 e0 ldi r18, 0x02 ; 2 - 191e: 42 0e add r4, r18 - 1920: 51 1c adc r5, r1 - 1922: f8 01 movw r30, r16 - 1924: a0 80 ld r10, Z - 1926: b1 80 ldd r11, Z+1 ; 0x01 - 1928: 36 fe sbrs r3, 6 - 192a: 03 c0 rjmp .+6 ; 0x1932 <vfprintf+0x174> - 192c: 69 2d mov r22, r9 - 192e: 70 e0 ldi r23, 0x00 ; 0 - 1930: 02 c0 rjmp .+4 ; 0x1936 <vfprintf+0x178> - 1932: 6f ef ldi r22, 0xFF ; 255 - 1934: 7f ef ldi r23, 0xFF ; 255 - 1936: c5 01 movw r24, r10 - 1938: 0e 94 c0 0d call 0x1b80 ; 0x1b80 <strnlen_P> - 193c: 4c 01 movw r8, r24 - 193e: f3 2d mov r31, r3 - 1940: f0 68 ori r31, 0x80 ; 128 - 1942: 3f 2e mov r3, r31 - 1944: 82 01 movw r16, r4 - 1946: 33 fc sbrc r3, 3 - 1948: 1b c0 rjmp .+54 ; 0x1980 <vfprintf+0x1c2> - 194a: 82 2d mov r24, r2 - 194c: 90 e0 ldi r25, 0x00 ; 0 - 194e: 88 16 cp r8, r24 - 1950: 99 06 cpc r9, r25 - 1952: b0 f4 brcc .+44 ; 0x1980 <vfprintf+0x1c2> - 1954: b6 01 movw r22, r12 - 1956: 80 e2 ldi r24, 0x20 ; 32 - 1958: 90 e0 ldi r25, 0x00 ; 0 - 195a: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 195e: 2a 94 dec r2 - 1960: f4 cf rjmp .-24 ; 0x194a <vfprintf+0x18c> - 1962: f5 01 movw r30, r10 - 1964: 37 fc sbrc r3, 7 - 1966: 85 91 lpm r24, Z+ - 1968: 37 fe sbrs r3, 7 - 196a: 81 91 ld r24, Z+ - 196c: 5f 01 movw r10, r30 - 196e: b6 01 movw r22, r12 - 1970: 90 e0 ldi r25, 0x00 ; 0 - 1972: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1976: 21 10 cpse r2, r1 - 1978: 2a 94 dec r2 - 197a: 21 e0 ldi r18, 0x01 ; 1 - 197c: 82 1a sub r8, r18 - 197e: 91 08 sbc r9, r1 - 1980: 81 14 cp r8, r1 - 1982: 91 04 cpc r9, r1 - 1984: 71 f7 brne .-36 ; 0x1962 <vfprintf+0x1a4> - 1986: e8 c0 rjmp .+464 ; 0x1b58 <vfprintf+0x39a> - 1988: 84 36 cpi r24, 0x64 ; 100 - 198a: 11 f0 breq .+4 ; 0x1990 <vfprintf+0x1d2> - 198c: 89 36 cpi r24, 0x69 ; 105 - 198e: 41 f5 brne .+80 ; 0x19e0 <vfprintf+0x222> - 1990: f8 01 movw r30, r16 - 1992: 37 fe sbrs r3, 7 - 1994: 07 c0 rjmp .+14 ; 0x19a4 <vfprintf+0x1e6> - 1996: 60 81 ld r22, Z - 1998: 71 81 ldd r23, Z+1 ; 0x01 - 199a: 82 81 ldd r24, Z+2 ; 0x02 - 199c: 93 81 ldd r25, Z+3 ; 0x03 - 199e: 0c 5f subi r16, 0xFC ; 252 - 19a0: 1f 4f sbci r17, 0xFF ; 255 - 19a2: 08 c0 rjmp .+16 ; 0x19b4 <vfprintf+0x1f6> - 19a4: 60 81 ld r22, Z - 19a6: 71 81 ldd r23, Z+1 ; 0x01 - 19a8: 07 2e mov r0, r23 - 19aa: 00 0c add r0, r0 - 19ac: 88 0b sbc r24, r24 - 19ae: 99 0b sbc r25, r25 - 19b0: 0e 5f subi r16, 0xFE ; 254 - 19b2: 1f 4f sbci r17, 0xFF ; 255 - 19b4: f3 2d mov r31, r3 - 19b6: ff 76 andi r31, 0x6F ; 111 - 19b8: 3f 2e mov r3, r31 - 19ba: 97 ff sbrs r25, 7 - 19bc: 09 c0 rjmp .+18 ; 0x19d0 <vfprintf+0x212> - 19be: 90 95 com r25 - 19c0: 80 95 com r24 - 19c2: 70 95 com r23 - 19c4: 61 95 neg r22 - 19c6: 7f 4f sbci r23, 0xFF ; 255 - 19c8: 8f 4f sbci r24, 0xFF ; 255 - 19ca: 9f 4f sbci r25, 0xFF ; 255 - 19cc: f0 68 ori r31, 0x80 ; 128 - 19ce: 3f 2e mov r3, r31 - 19d0: 2a e0 ldi r18, 0x0A ; 10 - 19d2: 30 e0 ldi r19, 0x00 ; 0 - 19d4: a3 01 movw r20, r6 - 19d6: 0e 94 12 0e call 0x1c24 ; 0x1c24 <__ultoa_invert> - 19da: 88 2e mov r8, r24 - 19dc: 86 18 sub r8, r6 - 19de: 45 c0 rjmp .+138 ; 0x1a6a <vfprintf+0x2ac> - 19e0: 85 37 cpi r24, 0x75 ; 117 - 19e2: 31 f4 brne .+12 ; 0x19f0 <vfprintf+0x232> - 19e4: 23 2d mov r18, r3 - 19e6: 2f 7e andi r18, 0xEF ; 239 - 19e8: b2 2e mov r11, r18 - 19ea: 2a e0 ldi r18, 0x0A ; 10 - 19ec: 30 e0 ldi r19, 0x00 ; 0 - 19ee: 25 c0 rjmp .+74 ; 0x1a3a <vfprintf+0x27c> - 19f0: 93 2d mov r25, r3 - 19f2: 99 7f andi r25, 0xF9 ; 249 - 19f4: b9 2e mov r11, r25 - 19f6: 8f 36 cpi r24, 0x6F ; 111 - 19f8: c1 f0 breq .+48 ; 0x1a2a <vfprintf+0x26c> - 19fa: 18 f4 brcc .+6 ; 0x1a02 <vfprintf+0x244> - 19fc: 88 35 cpi r24, 0x58 ; 88 - 19fe: 79 f0 breq .+30 ; 0x1a1e <vfprintf+0x260> - 1a00: b5 c0 rjmp .+362 ; 0x1b6c <vfprintf+0x3ae> - 1a02: 80 37 cpi r24, 0x70 ; 112 - 1a04: 19 f0 breq .+6 ; 0x1a0c <vfprintf+0x24e> - 1a06: 88 37 cpi r24, 0x78 ; 120 - 1a08: 21 f0 breq .+8 ; 0x1a12 <vfprintf+0x254> - 1a0a: b0 c0 rjmp .+352 ; 0x1b6c <vfprintf+0x3ae> - 1a0c: e9 2f mov r30, r25 - 1a0e: e0 61 ori r30, 0x10 ; 16 - 1a10: be 2e mov r11, r30 - 1a12: b4 fe sbrs r11, 4 - 1a14: 0d c0 rjmp .+26 ; 0x1a30 <vfprintf+0x272> - 1a16: fb 2d mov r31, r11 - 1a18: f4 60 ori r31, 0x04 ; 4 - 1a1a: bf 2e mov r11, r31 - 1a1c: 09 c0 rjmp .+18 ; 0x1a30 <vfprintf+0x272> - 1a1e: 34 fe sbrs r3, 4 - 1a20: 0a c0 rjmp .+20 ; 0x1a36 <vfprintf+0x278> - 1a22: 29 2f mov r18, r25 - 1a24: 26 60 ori r18, 0x06 ; 6 - 1a26: b2 2e mov r11, r18 - 1a28: 06 c0 rjmp .+12 ; 0x1a36 <vfprintf+0x278> - 1a2a: 28 e0 ldi r18, 0x08 ; 8 - 1a2c: 30 e0 ldi r19, 0x00 ; 0 - 1a2e: 05 c0 rjmp .+10 ; 0x1a3a <vfprintf+0x27c> - 1a30: 20 e1 ldi r18, 0x10 ; 16 - 1a32: 30 e0 ldi r19, 0x00 ; 0 - 1a34: 02 c0 rjmp .+4 ; 0x1a3a <vfprintf+0x27c> - 1a36: 20 e1 ldi r18, 0x10 ; 16 - 1a38: 32 e0 ldi r19, 0x02 ; 2 - 1a3a: f8 01 movw r30, r16 - 1a3c: b7 fe sbrs r11, 7 - 1a3e: 07 c0 rjmp .+14 ; 0x1a4e <vfprintf+0x290> - 1a40: 60 81 ld r22, Z - 1a42: 71 81 ldd r23, Z+1 ; 0x01 - 1a44: 82 81 ldd r24, Z+2 ; 0x02 - 1a46: 93 81 ldd r25, Z+3 ; 0x03 - 1a48: 0c 5f subi r16, 0xFC ; 252 - 1a4a: 1f 4f sbci r17, 0xFF ; 255 - 1a4c: 06 c0 rjmp .+12 ; 0x1a5a <vfprintf+0x29c> - 1a4e: 60 81 ld r22, Z - 1a50: 71 81 ldd r23, Z+1 ; 0x01 - 1a52: 80 e0 ldi r24, 0x00 ; 0 - 1a54: 90 e0 ldi r25, 0x00 ; 0 - 1a56: 0e 5f subi r16, 0xFE ; 254 - 1a58: 1f 4f sbci r17, 0xFF ; 255 - 1a5a: a3 01 movw r20, r6 - 1a5c: 0e 94 12 0e call 0x1c24 ; 0x1c24 <__ultoa_invert> - 1a60: 88 2e mov r8, r24 - 1a62: 86 18 sub r8, r6 - 1a64: fb 2d mov r31, r11 - 1a66: ff 77 andi r31, 0x7F ; 127 - 1a68: 3f 2e mov r3, r31 - 1a6a: 36 fe sbrs r3, 6 - 1a6c: 0d c0 rjmp .+26 ; 0x1a88 <vfprintf+0x2ca> - 1a6e: 23 2d mov r18, r3 - 1a70: 2e 7f andi r18, 0xFE ; 254 - 1a72: a2 2e mov r10, r18 - 1a74: 89 14 cp r8, r9 - 1a76: 58 f4 brcc .+22 ; 0x1a8e <vfprintf+0x2d0> - 1a78: 34 fe sbrs r3, 4 - 1a7a: 0b c0 rjmp .+22 ; 0x1a92 <vfprintf+0x2d4> - 1a7c: 32 fc sbrc r3, 2 - 1a7e: 09 c0 rjmp .+18 ; 0x1a92 <vfprintf+0x2d4> - 1a80: 83 2d mov r24, r3 - 1a82: 8e 7e andi r24, 0xEE ; 238 - 1a84: a8 2e mov r10, r24 - 1a86: 05 c0 rjmp .+10 ; 0x1a92 <vfprintf+0x2d4> - 1a88: b8 2c mov r11, r8 - 1a8a: a3 2c mov r10, r3 - 1a8c: 03 c0 rjmp .+6 ; 0x1a94 <vfprintf+0x2d6> - 1a8e: b8 2c mov r11, r8 - 1a90: 01 c0 rjmp .+2 ; 0x1a94 <vfprintf+0x2d6> - 1a92: b9 2c mov r11, r9 - 1a94: a4 fe sbrs r10, 4 - 1a96: 0f c0 rjmp .+30 ; 0x1ab6 <vfprintf+0x2f8> - 1a98: fe 01 movw r30, r28 - 1a9a: e8 0d add r30, r8 - 1a9c: f1 1d adc r31, r1 - 1a9e: 80 81 ld r24, Z - 1aa0: 80 33 cpi r24, 0x30 ; 48 - 1aa2: 21 f4 brne .+8 ; 0x1aac <vfprintf+0x2ee> - 1aa4: 9a 2d mov r25, r10 - 1aa6: 99 7e andi r25, 0xE9 ; 233 - 1aa8: a9 2e mov r10, r25 - 1aaa: 09 c0 rjmp .+18 ; 0x1abe <vfprintf+0x300> - 1aac: a2 fe sbrs r10, 2 - 1aae: 06 c0 rjmp .+12 ; 0x1abc <vfprintf+0x2fe> - 1ab0: b3 94 inc r11 - 1ab2: b3 94 inc r11 - 1ab4: 04 c0 rjmp .+8 ; 0x1abe <vfprintf+0x300> - 1ab6: 8a 2d mov r24, r10 - 1ab8: 86 78 andi r24, 0x86 ; 134 - 1aba: 09 f0 breq .+2 ; 0x1abe <vfprintf+0x300> - 1abc: b3 94 inc r11 - 1abe: a3 fc sbrc r10, 3 - 1ac0: 11 c0 rjmp .+34 ; 0x1ae4 <vfprintf+0x326> - 1ac2: a0 fe sbrs r10, 0 - 1ac4: 06 c0 rjmp .+12 ; 0x1ad2 <vfprintf+0x314> - 1ac6: b2 14 cp r11, r2 - 1ac8: 88 f4 brcc .+34 ; 0x1aec <vfprintf+0x32e> - 1aca: 28 0c add r2, r8 - 1acc: 92 2c mov r9, r2 - 1ace: 9b 18 sub r9, r11 - 1ad0: 0e c0 rjmp .+28 ; 0x1aee <vfprintf+0x330> - 1ad2: b2 14 cp r11, r2 - 1ad4: 60 f4 brcc .+24 ; 0x1aee <vfprintf+0x330> - 1ad6: b6 01 movw r22, r12 - 1ad8: 80 e2 ldi r24, 0x20 ; 32 - 1ada: 90 e0 ldi r25, 0x00 ; 0 - 1adc: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1ae0: b3 94 inc r11 - 1ae2: f7 cf rjmp .-18 ; 0x1ad2 <vfprintf+0x314> - 1ae4: b2 14 cp r11, r2 - 1ae6: 18 f4 brcc .+6 ; 0x1aee <vfprintf+0x330> - 1ae8: 2b 18 sub r2, r11 - 1aea: 02 c0 rjmp .+4 ; 0x1af0 <vfprintf+0x332> - 1aec: 98 2c mov r9, r8 - 1aee: 21 2c mov r2, r1 - 1af0: a4 fe sbrs r10, 4 - 1af2: 10 c0 rjmp .+32 ; 0x1b14 <vfprintf+0x356> - 1af4: b6 01 movw r22, r12 - 1af6: 80 e3 ldi r24, 0x30 ; 48 - 1af8: 90 e0 ldi r25, 0x00 ; 0 - 1afa: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1afe: a2 fe sbrs r10, 2 - 1b00: 17 c0 rjmp .+46 ; 0x1b30 <vfprintf+0x372> - 1b02: a1 fc sbrc r10, 1 - 1b04: 03 c0 rjmp .+6 ; 0x1b0c <vfprintf+0x34e> - 1b06: 88 e7 ldi r24, 0x78 ; 120 - 1b08: 90 e0 ldi r25, 0x00 ; 0 - 1b0a: 02 c0 rjmp .+4 ; 0x1b10 <vfprintf+0x352> - 1b0c: 88 e5 ldi r24, 0x58 ; 88 - 1b0e: 90 e0 ldi r25, 0x00 ; 0 - 1b10: b6 01 movw r22, r12 - 1b12: 0c c0 rjmp .+24 ; 0x1b2c <vfprintf+0x36e> - 1b14: 8a 2d mov r24, r10 - 1b16: 86 78 andi r24, 0x86 ; 134 - 1b18: 59 f0 breq .+22 ; 0x1b30 <vfprintf+0x372> - 1b1a: a1 fe sbrs r10, 1 - 1b1c: 02 c0 rjmp .+4 ; 0x1b22 <vfprintf+0x364> - 1b1e: 8b e2 ldi r24, 0x2B ; 43 - 1b20: 01 c0 rjmp .+2 ; 0x1b24 <vfprintf+0x366> - 1b22: 80 e2 ldi r24, 0x20 ; 32 - 1b24: a7 fc sbrc r10, 7 - 1b26: 8d e2 ldi r24, 0x2D ; 45 - 1b28: b6 01 movw r22, r12 - 1b2a: 90 e0 ldi r25, 0x00 ; 0 - 1b2c: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1b30: 89 14 cp r8, r9 - 1b32: 38 f4 brcc .+14 ; 0x1b42 <vfprintf+0x384> - 1b34: b6 01 movw r22, r12 - 1b36: 80 e3 ldi r24, 0x30 ; 48 - 1b38: 90 e0 ldi r25, 0x00 ; 0 - 1b3a: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1b3e: 9a 94 dec r9 - 1b40: f7 cf rjmp .-18 ; 0x1b30 <vfprintf+0x372> - 1b42: 8a 94 dec r8 - 1b44: f3 01 movw r30, r6 - 1b46: e8 0d add r30, r8 - 1b48: f1 1d adc r31, r1 - 1b4a: 80 81 ld r24, Z - 1b4c: b6 01 movw r22, r12 - 1b4e: 90 e0 ldi r25, 0x00 ; 0 - 1b50: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1b54: 81 10 cpse r8, r1 - 1b56: f5 cf rjmp .-22 ; 0x1b42 <vfprintf+0x384> - 1b58: 22 20 and r2, r2 - 1b5a: 09 f4 brne .+2 ; 0x1b5e <vfprintf+0x3a0> - 1b5c: 42 ce rjmp .-892 ; 0x17e2 <vfprintf+0x24> - 1b5e: b6 01 movw r22, r12 - 1b60: 80 e2 ldi r24, 0x20 ; 32 - 1b62: 90 e0 ldi r25, 0x00 ; 0 - 1b64: 0e 94 d6 0d call 0x1bac ; 0x1bac <fputc> - 1b68: 2a 94 dec r2 - 1b6a: f6 cf rjmp .-20 ; 0x1b58 <vfprintf+0x39a> - 1b6c: f6 01 movw r30, r12 - 1b6e: 86 81 ldd r24, Z+6 ; 0x06 - 1b70: 97 81 ldd r25, Z+7 ; 0x07 - 1b72: 02 c0 rjmp .+4 ; 0x1b78 <vfprintf+0x3ba> - 1b74: 8f ef ldi r24, 0xFF ; 255 - 1b76: 9f ef ldi r25, 0xFF ; 255 - 1b78: 2b 96 adiw r28, 0x0b ; 11 - 1b7a: e2 e1 ldi r30, 0x12 ; 18 - 1b7c: 0c 94 8c 0e jmp 0x1d18 ; 0x1d18 <__epilogue_restores__> - -00001b80 <strnlen_P>: - 1b80: fc 01 movw r30, r24 - 1b82: 05 90 lpm r0, Z+ - 1b84: 61 50 subi r22, 0x01 ; 1 - 1b86: 70 40 sbci r23, 0x00 ; 0 - 1b88: 01 10 cpse r0, r1 - 1b8a: d8 f7 brcc .-10 ; 0x1b82 <strnlen_P+0x2> - 1b8c: 80 95 com r24 - 1b8e: 90 95 com r25 - 1b90: 8e 0f add r24, r30 - 1b92: 9f 1f adc r25, r31 - 1b94: 08 95 ret - -00001b96 <strnlen>: - 1b96: fc 01 movw r30, r24 - 1b98: 61 50 subi r22, 0x01 ; 1 - 1b9a: 70 40 sbci r23, 0x00 ; 0 - 1b9c: 01 90 ld r0, Z+ - 1b9e: 01 10 cpse r0, r1 - 1ba0: d8 f7 brcc .-10 ; 0x1b98 <strnlen+0x2> - 1ba2: 80 95 com r24 - 1ba4: 90 95 com r25 - 1ba6: 8e 0f add r24, r30 - 1ba8: 9f 1f adc r25, r31 - 1baa: 08 95 ret - -00001bac <fputc>: - 1bac: 0f 93 push r16 - 1bae: 1f 93 push r17 - 1bb0: cf 93 push r28 - 1bb2: df 93 push r29 - 1bb4: fb 01 movw r30, r22 - 1bb6: 23 81 ldd r18, Z+3 ; 0x03 - 1bb8: 21 fd sbrc r18, 1 - 1bba: 03 c0 rjmp .+6 ; 0x1bc2 <fputc+0x16> - 1bbc: 8f ef ldi r24, 0xFF ; 255 - 1bbe: 9f ef ldi r25, 0xFF ; 255 - 1bc0: 2c c0 rjmp .+88 ; 0x1c1a <fputc+0x6e> - 1bc2: 22 ff sbrs r18, 2 - 1bc4: 16 c0 rjmp .+44 ; 0x1bf2 <fputc+0x46> - 1bc6: 46 81 ldd r20, Z+6 ; 0x06 - 1bc8: 57 81 ldd r21, Z+7 ; 0x07 - 1bca: 24 81 ldd r18, Z+4 ; 0x04 - 1bcc: 35 81 ldd r19, Z+5 ; 0x05 - 1bce: 42 17 cp r20, r18 - 1bd0: 53 07 cpc r21, r19 - 1bd2: 44 f4 brge .+16 ; 0x1be4 <fputc+0x38> - 1bd4: a0 81 ld r26, Z - 1bd6: b1 81 ldd r27, Z+1 ; 0x01 - 1bd8: 9d 01 movw r18, r26 - 1bda: 2f 5f subi r18, 0xFF ; 255 - 1bdc: 3f 4f sbci r19, 0xFF ; 255 - 1bde: 31 83 std Z+1, r19 ; 0x01 - 1be0: 20 83 st Z, r18 - 1be2: 8c 93 st X, r24 - 1be4: 26 81 ldd r18, Z+6 ; 0x06 - 1be6: 37 81 ldd r19, Z+7 ; 0x07 - 1be8: 2f 5f subi r18, 0xFF ; 255 - 1bea: 3f 4f sbci r19, 0xFF ; 255 - 1bec: 37 83 std Z+7, r19 ; 0x07 - 1bee: 26 83 std Z+6, r18 ; 0x06 - 1bf0: 14 c0 rjmp .+40 ; 0x1c1a <fputc+0x6e> - 1bf2: 8b 01 movw r16, r22 - 1bf4: ec 01 movw r28, r24 - 1bf6: fb 01 movw r30, r22 - 1bf8: 00 84 ldd r0, Z+8 ; 0x08 - 1bfa: f1 85 ldd r31, Z+9 ; 0x09 - 1bfc: e0 2d mov r30, r0 - 1bfe: 09 95 icall - 1c00: 89 2b or r24, r25 - 1c02: e1 f6 brne .-72 ; 0x1bbc <fputc+0x10> - 1c04: d8 01 movw r26, r16 - 1c06: 16 96 adiw r26, 0x06 ; 6 - 1c08: 8d 91 ld r24, X+ - 1c0a: 9c 91 ld r25, X - 1c0c: 17 97 sbiw r26, 0x07 ; 7 - 1c0e: 01 96 adiw r24, 0x01 ; 1 - 1c10: 17 96 adiw r26, 0x07 ; 7 - 1c12: 9c 93 st X, r25 - 1c14: 8e 93 st -X, r24 - 1c16: 16 97 sbiw r26, 0x06 ; 6 - 1c18: ce 01 movw r24, r28 - 1c1a: df 91 pop r29 - 1c1c: cf 91 pop r28 - 1c1e: 1f 91 pop r17 - 1c20: 0f 91 pop r16 - 1c22: 08 95 ret - -00001c24 <__ultoa_invert>: - 1c24: fa 01 movw r30, r20 - 1c26: aa 27 eor r26, r26 - 1c28: 28 30 cpi r18, 0x08 ; 8 - 1c2a: 51 f1 breq .+84 ; 0x1c80 <__ultoa_invert+0x5c> - 1c2c: 20 31 cpi r18, 0x10 ; 16 - 1c2e: 81 f1 breq .+96 ; 0x1c90 <__ultoa_invert+0x6c> - 1c30: e8 94 clt - 1c32: 6f 93 push r22 - 1c34: 6e 7f andi r22, 0xFE ; 254 - 1c36: 6e 5f subi r22, 0xFE ; 254 - 1c38: 7f 4f sbci r23, 0xFF ; 255 - 1c3a: 8f 4f sbci r24, 0xFF ; 255 - 1c3c: 9f 4f sbci r25, 0xFF ; 255 - 1c3e: af 4f sbci r26, 0xFF ; 255 - 1c40: b1 e0 ldi r27, 0x01 ; 1 - 1c42: 3e d0 rcall .+124 ; 0x1cc0 <__ultoa_invert+0x9c> - 1c44: b4 e0 ldi r27, 0x04 ; 4 - 1c46: 3c d0 rcall .+120 ; 0x1cc0 <__ultoa_invert+0x9c> - 1c48: 67 0f add r22, r23 - 1c4a: 78 1f adc r23, r24 - 1c4c: 89 1f adc r24, r25 - 1c4e: 9a 1f adc r25, r26 - 1c50: a1 1d adc r26, r1 - 1c52: 68 0f add r22, r24 - 1c54: 79 1f adc r23, r25 - 1c56: 8a 1f adc r24, r26 - 1c58: 91 1d adc r25, r1 - 1c5a: a1 1d adc r26, r1 - 1c5c: 6a 0f add r22, r26 - 1c5e: 71 1d adc r23, r1 - 1c60: 81 1d adc r24, r1 - 1c62: 91 1d adc r25, r1 - 1c64: a1 1d adc r26, r1 - 1c66: 20 d0 rcall .+64 ; 0x1ca8 <__ultoa_invert+0x84> - 1c68: 09 f4 brne .+2 ; 0x1c6c <__ultoa_invert+0x48> - 1c6a: 68 94 set - 1c6c: 3f 91 pop r19 - 1c6e: 2a e0 ldi r18, 0x0A ; 10 - 1c70: 26 9f mul r18, r22 - 1c72: 11 24 eor r1, r1 - 1c74: 30 19 sub r19, r0 - 1c76: 30 5d subi r19, 0xD0 ; 208 - 1c78: 31 93 st Z+, r19 - 1c7a: de f6 brtc .-74 ; 0x1c32 <__ultoa_invert+0xe> - 1c7c: cf 01 movw r24, r30 - 1c7e: 08 95 ret - 1c80: 46 2f mov r20, r22 - 1c82: 47 70 andi r20, 0x07 ; 7 - 1c84: 40 5d subi r20, 0xD0 ; 208 - 1c86: 41 93 st Z+, r20 - 1c88: b3 e0 ldi r27, 0x03 ; 3 - 1c8a: 0f d0 rcall .+30 ; 0x1caa <__ultoa_invert+0x86> - 1c8c: c9 f7 brne .-14 ; 0x1c80 <__ultoa_invert+0x5c> - 1c8e: f6 cf rjmp .-20 ; 0x1c7c <__ultoa_invert+0x58> - 1c90: 46 2f mov r20, r22 - 1c92: 4f 70 andi r20, 0x0F ; 15 - 1c94: 40 5d subi r20, 0xD0 ; 208 - 1c96: 4a 33 cpi r20, 0x3A ; 58 - 1c98: 18 f0 brcs .+6 ; 0x1ca0 <__ultoa_invert+0x7c> - 1c9a: 49 5d subi r20, 0xD9 ; 217 - 1c9c: 31 fd sbrc r19, 1 - 1c9e: 40 52 subi r20, 0x20 ; 32 - 1ca0: 41 93 st Z+, r20 - 1ca2: 02 d0 rcall .+4 ; 0x1ca8 <__ultoa_invert+0x84> - 1ca4: a9 f7 brne .-22 ; 0x1c90 <__ultoa_invert+0x6c> - 1ca6: ea cf rjmp .-44 ; 0x1c7c <__ultoa_invert+0x58> - 1ca8: b4 e0 ldi r27, 0x04 ; 4 - 1caa: a6 95 lsr r26 - 1cac: 97 95 ror r25 - 1cae: 87 95 ror r24 - 1cb0: 77 95 ror r23 - 1cb2: 67 95 ror r22 - 1cb4: ba 95 dec r27 - 1cb6: c9 f7 brne .-14 ; 0x1caa <__ultoa_invert+0x86> - 1cb8: 00 97 sbiw r24, 0x00 ; 0 - 1cba: 61 05 cpc r22, r1 - 1cbc: 71 05 cpc r23, r1 - 1cbe: 08 95 ret - 1cc0: 9b 01 movw r18, r22 - 1cc2: ac 01 movw r20, r24 - 1cc4: 0a 2e mov r0, r26 - 1cc6: 06 94 lsr r0 - 1cc8: 57 95 ror r21 - 1cca: 47 95 ror r20 - 1ccc: 37 95 ror r19 - 1cce: 27 95 ror r18 - 1cd0: ba 95 dec r27 - 1cd2: c9 f7 brne .-14 ; 0x1cc6 <__ultoa_invert+0xa2> - 1cd4: 62 0f add r22, r18 - 1cd6: 73 1f adc r23, r19 - 1cd8: 84 1f adc r24, r20 - 1cda: 95 1f adc r25, r21 - 1cdc: a0 1d adc r26, r0 - 1cde: 08 95 ret - -00001ce0 <__prologue_saves__>: - 1ce0: 2f 92 push r2 - 1ce2: 3f 92 push r3 - 1ce4: 4f 92 push r4 - 1ce6: 5f 92 push r5 - 1ce8: 6f 92 push r6 - 1cea: 7f 92 push r7 - 1cec: 8f 92 push r8 - 1cee: 9f 92 push r9 - 1cf0: af 92 push r10 - 1cf2: bf 92 push r11 - 1cf4: cf 92 push r12 - 1cf6: df 92 push r13 - 1cf8: ef 92 push r14 - 1cfa: ff 92 push r15 - 1cfc: 0f 93 push r16 - 1cfe: 1f 93 push r17 - 1d00: cf 93 push r28 - 1d02: df 93 push r29 - 1d04: cd b7 in r28, 0x3d ; 61 - 1d06: de b7 in r29, 0x3e ; 62 - 1d08: ca 1b sub r28, r26 - 1d0a: db 0b sbc r29, r27 - 1d0c: 0f b6 in r0, 0x3f ; 63 - 1d0e: f8 94 cli - 1d10: de bf out 0x3e, r29 ; 62 - 1d12: 0f be out 0x3f, r0 ; 63 - 1d14: cd bf out 0x3d, r28 ; 61 - 1d16: 09 94 ijmp - -00001d18 <__epilogue_restores__>: - 1d18: 2a 88 ldd r2, Y+18 ; 0x12 - 1d1a: 39 88 ldd r3, Y+17 ; 0x11 - 1d1c: 48 88 ldd r4, Y+16 ; 0x10 - 1d1e: 5f 84 ldd r5, Y+15 ; 0x0f - 1d20: 6e 84 ldd r6, Y+14 ; 0x0e - 1d22: 7d 84 ldd r7, Y+13 ; 0x0d - 1d24: 8c 84 ldd r8, Y+12 ; 0x0c - 1d26: 9b 84 ldd r9, Y+11 ; 0x0b - 1d28: aa 84 ldd r10, Y+10 ; 0x0a - 1d2a: b9 84 ldd r11, Y+9 ; 0x09 - 1d2c: c8 84 ldd r12, Y+8 ; 0x08 - 1d2e: df 80 ldd r13, Y+7 ; 0x07 - 1d30: ee 80 ldd r14, Y+6 ; 0x06 - 1d32: fd 80 ldd r15, Y+5 ; 0x05 - 1d34: 0c 81 ldd r16, Y+4 ; 0x04 - 1d36: 1b 81 ldd r17, Y+3 ; 0x03 - 1d38: aa 81 ldd r26, Y+2 ; 0x02 - 1d3a: b9 81 ldd r27, Y+1 ; 0x01 - 1d3c: ce 0f add r28, r30 - 1d3e: d1 1d adc r29, r1 - 1d40: 0f b6 in r0, 0x3f ; 63 - 1d42: f8 94 cli - 1d44: de bf out 0x3e, r29 ; 62 - 1d46: 0f be out 0x3f, r0 ; 63 - 1d48: cd bf out 0x3d, r28 ; 61 - 1d4a: ed 01 movw r28, r26 - 1d4c: 08 95 ret - -00001d4e <_exit>: - 1d4e: f8 94 cli - -00001d50 <__stop_program>: - 1d50: ff cf rjmp .-2 ; 0x1d50 <__stop_program> diff --git a/hdlc_screen/Debug/hdlc_screen.map b/hdlc_screen/Debug/hdlc_screen.map deleted file mode 100644 index 91bccae..0000000 --- a/hdlc_screen/Debug/hdlc_screen.map +++ /dev/null @@ -1,1242 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -<<<<<<< HEAD -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - LCD/Lcd_print.o (__udivmodhi4) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o (exit) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - hdlc/client.o (__do_copy_data) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - hdlc/client.o (__do_clear_bss) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - LCD/Lcd_print.o (strncpy) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - hdlc/client.o (printf) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - LCD/Lcd_print.o (snprintf) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (vfprintf) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen_P) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (fputc) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__iob) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (__ultoa_invert) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__prologue_saves__) -d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__epilogue_restores__) -======= -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - LCD/Lcd_print.o (__udivmodhi4) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o (exit) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - hdlc/client.o (__do_copy_data) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - hdlc/client.o (__do_clear_bss) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - LCD/Lcd_print.o (strncpy) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - hdlc/client.o (printf) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - LCD/Lcd_print.o (snprintf) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (vfprintf) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen_P) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (strnlen) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (fputc) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__iob) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) (__ultoa_invert) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__prologue_saves__) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) (__epilogue_restores__) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -Allocating common symbols -Common symbol size file - -uartRxBuffer 0x22 UART/uart.o -pcf8574_pinstatus 0x1 LCD/pcf8574.o -textCounter 0x6 LCD/Lcd_print.o -uartTxBuffer 0x22 UART/uart.o -<<<<<<< HEAD -__iob 0x6 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) -======= -__iob 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 -connecting_frame_timeout_bf - 0x2 hdlc/client.o - -Discarded input sections - -<<<<<<< HEAD - .data 0x00000000 0x0 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - .bss 0x00000000 0x0 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - .bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - .text 0x00000000 0x0 hdlc/client.o - .data 0x00000000 0x0 hdlc/client.o - .bss 0x00000000 0x0 hdlc/client.o - .text 0x00000000 0x0 hdlc/fcs.o - .data 0x00000000 0x0 hdlc/fcs.o - .bss 0x00000000 0x0 hdlc/fcs.o - .text 0x00000000 0x0 hdlc/hdlc.o - .data 0x00000000 0x0 hdlc/hdlc.o - .bss 0x00000000 0x0 hdlc/hdlc.o - .text.hdlc_set_state - 0x00000000 0x20 hdlc/hdlc.o - .text.hdlc_get_state - 0x00000000 0x20 hdlc/hdlc.o - .text.hdlc_get_data_reset - 0x00000000 0xa hdlc/hdlc.o - .text.hdlc_get_data - 0x00000000 0x24 hdlc/hdlc.o - .data.hdlc_state - 0x00000000 0xb hdlc/hdlc.o - .text 0x00000000 0x0 LCD/lcdpcf8574.o - .data 0x00000000 0x0 LCD/lcdpcf8574.o - .bss 0x00000000 0x0 LCD/lcdpcf8574.o - .text.lcd_data - 0x00000000 0x14 LCD/lcdpcf8574.o - .text.lcd_getxy - 0x00000000 0x8 LCD/lcdpcf8574.o - .text.lcd_puts_p - 0x00000000 0x24 LCD/lcdpcf8574.o - .text 0x00000000 0x0 LCD/Lcd_print.o - .data 0x00000000 0x0 LCD/Lcd_print.o - .bss 0x00000000 0x0 LCD/Lcd_print.o - .text 0x00000000 0x0 LCD/pcf8574.o - .data 0x00000000 0x0 LCD/pcf8574.o - .bss 0x00000000 0x0 LCD/pcf8574.o - .text.pcf8574_getoutput - 0x00000000 0xe LCD/pcf8574.o - .text.pcf8574_setoutputpins - 0x00000000 0x80 LCD/pcf8574.o - .text.pcf8574_getinput - 0x00000000 0x22 LCD/pcf8574.o - .text.pcf8574_getinputpin - 0x00000000 0x32 LCD/pcf8574.o - .text 0x00000000 0x0 LCD/twimaster.o - .data 0x00000000 0x0 LCD/twimaster.o - .bss 0x00000000 0x0 LCD/twimaster.o - .text.i2c_start_wait - 0x00000000 0x50 LCD/twimaster.o - .text.i2c_rep_start - 0x00000000 0x6 LCD/twimaster.o - .text.i2c_readAck - 0x00000000 0x16 LCD/twimaster.o - .text.i2c_readNak - 0x00000000 0x16 LCD/twimaster.o - .text 0x00000000 0x0 main.o - .data 0x00000000 0x0 main.o - .bss 0x00000000 0x0 main.o - .text 0x00000000 0x0 protocol/protocol.o - .data 0x00000000 0x0 protocol/protocol.o - .bss 0x00000000 0x0 protocol/protocol.o - .text 0x00000000 0x0 UART/circular_buf.o - .data 0x00000000 0x0 UART/circular_buf.o - .bss 0x00000000 0x0 UART/circular_buf.o - .text.initialize_buffer - 0x00000000 0x8 UART/circular_buf.o - .text 0x00000000 0x0 UART/uart.o - .data 0x00000000 0x0 UART/uart.o - .bss 0x00000000 0x0 UART/uart.o -<<<<<<< HEAD - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.prologue - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.div - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.prologue - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.div - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.prologue - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.div - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.prologue - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.div - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .data 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .bss 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.mul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.div - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.builtins - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.fmul - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.fixed - 0x00000000 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) -======= - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -Memory Configuration - -Name Origin Length Attributes -text 0x00000000 0x00020000 xr -data 0x00800060 0x0000ffa0 rw !x -eeprom 0x00810000 0x00010000 rw !x -fuse 0x00820000 0x00000003 rw !x -lock 0x00830000 0x00000400 rw !x -signature 0x00840000 0x00000400 rw !x -user_signatures 0x00850000 0x00000400 rw !x -*default* 0x00000000 0xffffffff - -Linker script and memory map - -Address of section .data set to 0x800100 -<<<<<<< HEAD -LOAD D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= -LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 -LOAD hdlc/client.o -LOAD hdlc/fcs.o -LOAD hdlc/hdlc.o -LOAD LCD/lcdpcf8574.o -LOAD LCD/Lcd_print.o -LOAD LCD/pcf8574.o -LOAD LCD/twimaster.o -LOAD main.o -LOAD protocol/protocol.o -LOAD UART/circular_buf.o -LOAD UART/uart.o -START GROUP -<<<<<<< HEAD -LOAD d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a -END GROUP -START GROUP -LOAD d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a -LOAD d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a -LOAD d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a -LOAD D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5\libatmega328p.a -======= -LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a -END GROUP -START GROUP -LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a -LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a -LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a -LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5\libatmega328p.a ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 -END GROUP - 0x00000000 __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0 - 0x00800060 __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800060 - 0x00020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000 - 0x0000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0 - 0x00010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000 - [0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400 - 0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400 - 0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400 - 0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400 - -.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 0x00000000 0x1d52 - *(.vectors) -<<<<<<< HEAD - .vectors 0x00000000 0x68 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .vectors 0x00000000 0x68 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x00000000 __vector_default - 0x00000000 __vectors - *(.vectors) - *(.progmem.gcc*) - 0x00000068 . = ALIGN (0x2) - 0x00000068 __trampolines_start = . - *(.trampolines) - .trampolines 0x00000068 0x0 linker stubs - *(.trampolines*) - 0x00000068 __trampolines_end = . - *libprintf_flt.a:*(.progmem.data) - *libc.a:*(.progmem.data) - *(.progmem*) - 0x00000068 . = ALIGN (0x2) - *(.jumptables) - *(.jumptables*) - *(.lowtext) - *(.lowtext*) - 0x00000068 __ctors_start = . - *(.ctors) - 0x00000068 __ctors_end = . - 0x00000068 __dtors_start = . - *(.dtors) - 0x00000068 __dtors_end = . - SORT(*)(.ctors) - SORT(*)(.dtors) - *(.init0) -<<<<<<< HEAD - .init0 0x00000068 0x0 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .init0 0x00000068 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x00000068 __init - *(.init0) - *(.init1) - *(.init1) - *(.init2) -<<<<<<< HEAD - .init2 0x00000068 0xc D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .init2 0x00000068 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - *(.init2) - *(.init3) - *(.init3) - *(.init4) -<<<<<<< HEAD - .init4 0x00000074 0x16 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - 0x00000074 __do_copy_data - .init4 0x0000008a 0x10 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) -======= - .init4 0x00000074 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o) - 0x00000074 __do_copy_data - .init4 0x0000008a 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x0000008a __do_clear_bss - *(.init4) - *(.init5) - *(.init5) - *(.init6) - *(.init6) - *(.init7) - *(.init7) - *(.init8) - *(.init8) - *(.init9) -<<<<<<< HEAD - .init9 0x0000009a 0x8 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - *(.init9) - *(.text) - .text 0x000000a2 0x4 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .init9 0x0000009a 0x8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - *(.init9) - *(.text) - .text 0x000000a2 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x000000a2 __vector_22 - 0x000000a2 __vector_1 - 0x000000a2 __vector_24 - 0x000000a2 __vector_12 - 0x000000a2 __bad_interrupt - 0x000000a2 __vector_6 - 0x000000a2 __vector_3 - 0x000000a2 __vector_23 - 0x000000a2 __vector_25 - 0x000000a2 __vector_11 - 0x000000a2 __vector_13 - 0x000000a2 __vector_17 - 0x000000a2 __vector_19 - 0x000000a2 __vector_7 - 0x000000a2 __vector_5 - 0x000000a2 __vector_4 - 0x000000a2 __vector_9 - 0x000000a2 __vector_2 - 0x000000a2 __vector_21 - 0x000000a2 __vector_15 - 0x000000a2 __vector_8 - 0x000000a2 __vector_14 - 0x000000a2 __vector_10 - 0x000000a2 __vector_16 - 0x000000a6 . = ALIGN (0x2) - *(.text.*) - .text.init_hdlc_client - 0x000000a6 0x32 hdlc/client.o - 0x000000a6 init_hdlc_client - .text.hdlc_connect - 0x000000d8 0x14 hdlc/client.o - 0x000000d8 hdlc_connect - .text.hdlc_send_data - 0x000000ec 0x36 hdlc/client.o - 0x000000ec hdlc_send_data - .text.hdlc_get_raw_frame - 0x00000122 0xec hdlc/client.o - 0x00000122 hdlc_get_raw_frame - .text.hdlc_decode_recived_raw_data - 0x0000020e 0x142 hdlc/client.o - 0x0000020e hdlc_decode_recived_raw_data - .text.hdlc_timeout_handler - 0x00000350 0x20 hdlc/client.o - 0x00000350 hdlc_timeout_handler - .text.calc_fcs - 0x00000370 0x1c hdlc/fcs.o - 0x00000370 calc_fcs - .text.hdlc_escape_value - 0x0000038c 0x3e hdlc/hdlc.o - 0x0000038c hdlc_escape_value - .text.hdlc_get_control_type - 0x000003ca 0x26 hdlc/hdlc.o - 0x000003ca hdlc_get_control_type - .text.hdlc_frame_control_type - 0x000003f0 0x36 hdlc/hdlc.o - 0x000003f0 hdlc_frame_control_type - .text.hdlc_get_data_reset_with_state - 0x00000426 0x1e hdlc/hdlc.o - 0x00000426 hdlc_get_data_reset_with_state - .text.hdlc_get_data_with_state - 0x00000444 0x24c hdlc/hdlc.o - 0x00000444 hdlc_get_data_with_state - .text.hdlc_frame_data - 0x00000690 0x14a hdlc/hdlc.o - 0x00000690 hdlc_frame_data - .text.lcd_read - 0x000007da 0x76 LCD/lcdpcf8574.o - .text.lcd_waitbusy - 0x00000850 0x14 LCD/lcdpcf8574.o - .text.toggle_e - 0x00000864 0x14 LCD/lcdpcf8574.o - .text.lcd_write - 0x00000878 0x144 LCD/lcdpcf8574.o - .text.lcd_command - 0x000009bc 0x14 LCD/lcdpcf8574.o - 0x000009bc lcd_command - .text.lcd_gotoxy - 0x000009d0 0x14 LCD/lcdpcf8574.o - 0x000009d0 lcd_gotoxy - .text.lcd_clrscr - 0x000009e4 0x8 LCD/lcdpcf8574.o - 0x000009e4 lcd_clrscr - .text.lcd_led 0x000009ec 0x26 LCD/lcdpcf8574.o - 0x000009ec lcd_led - .text.lcd_home - 0x00000a12 0x8 LCD/lcdpcf8574.o - 0x00000a12 lcd_home - .text.lcd_putc - 0x00000a1a 0x48 LCD/lcdpcf8574.o - 0x00000a1a lcd_putc - .text.lcd_puts - 0x00000a62 0x20 LCD/lcdpcf8574.o - 0x00000a62 lcd_puts - .text.lcd_init - 0x00000a82 0xa4 LCD/lcdpcf8574.o - 0x00000a82 lcd_init - .text.Lcd_inciliation - 0x00000b26 0x12 LCD/Lcd_print.o - 0x00000b26 Lcd_inciliation - .text.fillBuffer1 - 0x00000b38 0x7a LCD/Lcd_print.o - 0x00000b38 fillBuffer1 - .text.fillBuffer2 - 0x00000bb2 0x5e LCD/Lcd_print.o - 0x00000bb2 fillBuffer2 - .text.printLcd - 0x00000c10 0xe0 LCD/Lcd_print.o - 0x00000c10 printLcd - .text.pcf8574_init - 0x00000cf0 0x12 LCD/pcf8574.o - 0x00000cf0 pcf8574_init - .text.pcf8574_getoutputpin - 0x00000d02 0x28 LCD/pcf8574.o - 0x00000d02 pcf8574_getoutputpin - .text.pcf8574_setoutput - 0x00000d2a 0x26 LCD/pcf8574.o - 0x00000d2a pcf8574_setoutput - .text.pcf8574_setoutputpin - 0x00000d50 0x5c LCD/pcf8574.o - 0x00000d50 pcf8574_setoutputpin - .text.pcf8574_setoutputpinhigh - 0x00000dac 0x8 LCD/pcf8574.o - 0x00000dac pcf8574_setoutputpinhigh - .text.pcf8574_setoutputpinlow - 0x00000db4 0x8 LCD/pcf8574.o - 0x00000db4 pcf8574_setoutputpinlow - .text.i2c_init - 0x00000dbc 0xc LCD/twimaster.o - 0x00000dbc i2c_init - .text.i2c_start - 0x00000dc8 0x4e LCD/twimaster.o - 0x00000dc8 i2c_start - .text.i2c_stop - 0x00000e16 0x12 LCD/twimaster.o - 0x00000e16 i2c_stop - .text.i2c_write - 0x00000e28 0x24 LCD/twimaster.o - 0x00000e28 i2c_write - .text.main 0x00000e4c 0x330 main.o - 0x00000e4c main - .text.protocol_decode - 0x0000117c 0x13c protocol/protocol.o - 0x0000117c protocol_decode - .text.protocol_encode - 0x000012b8 0x1c6 protocol/protocol.o - 0x000012b8 protocol_encode - .text.buffer_empty - 0x0000147e 0x14 UART/circular_buf.o - 0x0000147e buffer_empty - .text.buffer_full - 0x00001492 0x34 UART/circular_buf.o - 0x00001492 buffer_full - .text.write_buffer - 0x000014c6 0x3a UART/circular_buf.o - 0x000014c6 write_buffer - .text.read_buffer - 0x00001500 0x3c UART/circular_buf.o - 0x00001500 read_buffer - .text.UART_init - 0x0000153c 0x18 UART/uart.o - 0x0000153c UART_init - .text.UART_send - 0x00001554 0x48 UART/uart.o - 0x00001554 UART_send - .text.UART_receive - 0x0000159c 0x84 UART/uart.o - 0x0000159c UART_receive - .text.__vector_18 - 0x00001620 0x64 UART/uart.o - 0x00001620 __vector_18 - .text.__vector_20 - 0x00001684 0x68 UART/uart.o - 0x00001684 __vector_20 - .text.libgcc.div -<<<<<<< HEAD - 0x000016ec 0x28 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - 0x000016ec __udivmodhi4 - .text.avr-libc - 0x00001714 0x1e d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - 0x00001714 strncpy - .text.avr-libc - 0x00001732 0x2c d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - 0x00001732 printf - .text.avr-libc - 0x0000175e 0x60 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - 0x0000175e snprintf - .text.avr-libc - 0x000017be 0x3c2 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - 0x000017be vfprintf - .text.avr-libc - 0x00001b80 0x16 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - 0x00001b80 strnlen_P - .text.avr-libc - 0x00001b96 0x16 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - 0x00001b96 strnlen - .text.avr-libc - 0x00001bac 0x78 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - 0x00001bac fputc - .text.avr-libc - 0x00001c24 0xbc d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - 0x00001c24 __ultoa_invert - .text.libgcc.prologue - 0x00001ce0 0x38 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - 0x00001ce0 __prologue_saves__ - .text.libgcc.prologue - 0x00001d18 0x36 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - 0x00001d18 __epilogue_restores__ - 0x00001d4e . = ALIGN (0x2) - *(.fini9) - .fini9 0x00001d4e 0x0 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) -======= - 0x000016ec 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_udivmodhi4.o) - 0x000016ec __udivmodhi4 - .text.avr-libc - 0x00001714 0x1e c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strncpy.o) - 0x00001714 strncpy - .text.avr-libc - 0x00001732 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - 0x00001732 printf - .text.avr-libc - 0x0000175e 0x60 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - 0x0000175e snprintf - .text.avr-libc - 0x000017be 0x3c2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - 0x000017be vfprintf - .text.avr-libc - 0x00001b80 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen_P.o) - 0x00001b80 strnlen_P - .text.avr-libc - 0x00001b96 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(strnlen.o) - 0x00001b96 strnlen - .text.avr-libc - 0x00001bac 0x78 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - 0x00001bac fputc - .text.avr-libc - 0x00001c24 0xbc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(ultoa_invert.o) - 0x00001c24 __ultoa_invert - .text.libgcc.prologue - 0x00001ce0 0x38 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_prologue.o) - 0x00001ce0 __prologue_saves__ - .text.libgcc.prologue - 0x00001d18 0x36 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_epilogue.o) - 0x00001d18 __epilogue_restores__ - 0x00001d4e . = ALIGN (0x2) - *(.fini9) - .fini9 0x00001d4e 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x00001d4e _exit - 0x00001d4e exit - *(.fini9) - *(.fini8) - *(.fini8) - *(.fini7) - *(.fini7) - *(.fini6) - *(.fini6) - *(.fini5) - *(.fini5) - *(.fini4) - *(.fini4) - *(.fini3) - *(.fini3) - *(.fini2) - *(.fini2) - *(.fini1) - *(.fini1) - *(.fini0) -<<<<<<< HEAD - .fini0 0x00001d4e 0x4 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) -======= - .fini0 0x00001d4e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - *(.fini0) - 0x00001d52 _etext = . - -.data 0x00800100 0x242 load address 0x00001d52 - 0x00800100 PROVIDE (__data_start, .) - *(.data) - *(.data*) - *(.gnu.linkonce.d*) - *(.rodata) - *(.rodata*) - .rodata.str1.1 - 0x00800100 0x16 hdlc/client.o - .rodata.fcstab - 0x00800116 0x200 hdlc/fcs.o - .rodata.str1.1 - 0x00800316 0xf LCD/Lcd_print.o - .rodata.str1.1 - 0x00800325 0x1c main.o - *(.gnu.linkonce.r*) - 0x00800342 . = ALIGN (0x2) - *fill* 0x00800341 0x1 - 0x00800342 _edata = . - 0x00800342 PROVIDE (__data_end, .) - -.bss 0x00800342 0x54 - 0x00800342 PROVIDE (__bss_start, .) - *(.bss) - *(.bss*) - .bss.dataport 0x00800342 0x1 LCD/lcdpcf8574.o - 0x00800342 dataport - *(COMMON) - COMMON 0x00800343 0x2 hdlc/client.o - 0x00800343 connecting_frame_timeout_bf - COMMON 0x00800345 0x6 LCD/Lcd_print.o - 0x00800345 textCounter - COMMON 0x0080034b 0x1 LCD/pcf8574.o - 0x0080034b pcf8574_pinstatus - COMMON 0x0080034c 0x44 UART/uart.o - 0x0080034c uartRxBuffer - 0x0080036e uartTxBuffer -<<<<<<< HEAD - COMMON 0x00800390 0x6 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) -======= - COMMON 0x00800390 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - 0x00800390 __iob - 0x00800396 PROVIDE (__bss_end, .) - 0x00001d52 __data_load_start = LOADADDR (.data) - 0x00001f94 __data_load_end = (__data_load_start + SIZEOF (.data)) - -.noinit 0x00800396 0x0 - [!provide] PROVIDE (__noinit_start, .) - *(.noinit*) - [!provide] PROVIDE (__noinit_end, .) - 0x00800396 _end = . - [!provide] PROVIDE (__heap_start, .) - -.eeprom 0x00810000 0x0 - *(.eeprom*) - 0x00810000 __eeprom_end = . - -.fuse - *(.fuse) - *(.lfuse) - *(.hfuse) - *(.efuse) - -.lock - *(.lock*) - -.signature - *(.signature*) - -.user_signatures - *(.user_signatures*) - -.stab - *(.stab) - -.stabstr - *(.stabstr) - -.stab.excl - *(.stab.excl) - -.stab.exclstr - *(.stab.exclstr) - -.stab.index - *(.stab.index) - -.stab.indexstr - *(.stab.indexstr) - -.comment 0x00000000 0x8c - *(.comment) - .comment 0x00000000 0x30 hdlc/client.o - 0x31 (size before relaxing) - .comment 0x00000030 0x30 hdlc/fcs.o - 0x31 (size before relaxing) - .comment 0x00000060 0x31 hdlc/hdlc.o - .comment 0x00000060 0x31 LCD/lcdpcf8574.o - .comment 0x00000060 0x31 LCD/Lcd_print.o - .comment 0x00000060 0x31 LCD/pcf8574.o - .comment 0x00000060 0x31 LCD/twimaster.o - .comment 0x00000060 0x31 main.o - .comment 0x00000060 0x31 protocol/protocol.o - .comment 0x00000060 0x31 UART/circular_buf.o - .comment 0x00000060 0x31 UART/uart.o -<<<<<<< HEAD - .comment 0x00000060 0x31 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .comment 0x00000060 0x31 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .comment 0x00000060 0x2c d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - 0x2d (size before relaxing) - .comment 0x0000008c 0x31 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .comment 0x0000008c 0x31 d:/atmel/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) -======= - .comment 0x00000060 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(printf.o) - .comment 0x00000060 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(snprintf.o) - .comment 0x00000060 0x2c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(vfprintf_std.o) - 0x2d (size before relaxing) - .comment 0x0000008c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(fputc.o) - .comment 0x0000008c 0x31 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a(iob.o) ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -.note.gnu.avr.deviceinfo - 0x00000000 0x40 - .note.gnu.avr.deviceinfo -<<<<<<< HEAD - 0x00000000 0x40 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - 0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -.note.gnu.build-id - *(.note.gnu.build-id) - -.debug - *(.debug) - -.line - *(.line) - -.debug_srcinfo - *(.debug_srcinfo) - -.debug_sfnames - *(.debug_sfnames) - -.debug_aranges 0x00000000 0x320 - *(.debug_aranges) - .debug_aranges - 0x00000000 0x48 hdlc/client.o - .debug_aranges - 0x00000048 0x20 hdlc/fcs.o - .debug_aranges - 0x00000068 0x68 hdlc/hdlc.o - .debug_aranges - 0x000000d0 0x90 LCD/lcdpcf8574.o - .debug_aranges - 0x00000160 0x38 LCD/Lcd_print.o - .debug_aranges - 0x00000198 0x68 LCD/pcf8574.o - .debug_aranges - 0x00000200 0x58 LCD/twimaster.o - .debug_aranges - 0x00000258 0x20 main.o - .debug_aranges - 0x00000278 0x28 protocol/protocol.o - .debug_aranges - 0x000002a0 0x40 UART/circular_buf.o - .debug_aranges - 0x000002e0 0x40 UART/uart.o - -.debug_pubnames - *(.debug_pubnames) - -.debug_info 0x00000000 0x378f - *(.debug_info .gnu.linkonce.wi.*) -<<<<<<< HEAD - .debug_info 0x00000000 0x5f4 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .debug_info 0x00000000 0x5f4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - .debug_info 0x000005f4 0x5e7 hdlc/client.o - .debug_info 0x00000bdb 0xa5 hdlc/fcs.o - .debug_info 0x00000c80 0x685 hdlc/hdlc.o - .debug_info 0x00001305 0x7d2 LCD/lcdpcf8574.o - .debug_info 0x00001ad7 0x45c LCD/Lcd_print.o - .debug_info 0x00001f33 0x54c LCD/pcf8574.o - .debug_info 0x0000247f 0x1c4 LCD/twimaster.o - .debug_info 0x00002643 0x91f main.o - .debug_info 0x00002f62 0x30c protocol/protocol.o - .debug_info 0x0000326e 0x1fc UART/circular_buf.o - .debug_info 0x0000346a 0x325 UART/uart.o - -.debug_abbrev 0x00000000 0x1589 - *(.debug_abbrev) -<<<<<<< HEAD - .debug_abbrev 0x00000000 0x5a2 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .debug_abbrev 0x00000000 0x5a2 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - .debug_abbrev 0x000005a2 0x1fc hdlc/client.o - .debug_abbrev 0x0000079e 0x83 hdlc/fcs.o - .debug_abbrev 0x00000821 0x194 hdlc/hdlc.o - .debug_abbrev 0x000009b5 0x266 LCD/lcdpcf8574.o - .debug_abbrev 0x00000c1b 0x163 LCD/Lcd_print.o - .debug_abbrev 0x00000d7e 0x1b6 LCD/pcf8574.o - .debug_abbrev 0x00000f34 0xe5 LCD/twimaster.o - .debug_abbrev 0x00001019 0x17c main.o - .debug_abbrev 0x00001195 0x137 protocol/protocol.o - .debug_abbrev 0x000012cc 0x175 UART/circular_buf.o - .debug_abbrev 0x00001441 0x148 UART/uart.o - -<<<<<<< HEAD -.debug_line 0x00000000 0x1c87 - *(.debug_line .debug_line.* .debug_line_end) - .debug_line 0x00000000 0x133 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - .debug_line 0x00000133 0x2f5 hdlc/client.o - .debug_line 0x00000428 0x47 hdlc/fcs.o - .debug_line 0x0000046f 0x461 hdlc/hdlc.o - .debug_line 0x000008d0 0x4a0 LCD/lcdpcf8574.o - .debug_line 0x00000d70 0x1b2 LCD/Lcd_print.o - .debug_line 0x00000f22 0x336 LCD/pcf8574.o - .debug_line 0x00001258 0x2a4 LCD/twimaster.o - .debug_line 0x000014fc 0x279 main.o - .debug_line 0x00001775 0x228 protocol/protocol.o - .debug_line 0x0000199d 0xfa UART/circular_buf.o - .debug_line 0x00001a97 0x1f0 UART/uart.o -======= -.debug_line 0x00000000 0x1e37 - *(.debug_line .debug_line.* .debug_line_end) - .debug_line 0x00000000 0x133 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o - .debug_line 0x00000133 0x32b hdlc/client.o - .debug_line 0x0000045e 0x47 hdlc/fcs.o - .debug_line 0x000004a5 0x497 hdlc/hdlc.o - .debug_line 0x0000093c 0x4bb LCD/lcdpcf8574.o - .debug_line 0x00000df7 0x1e8 LCD/Lcd_print.o - .debug_line 0x00000fdf 0x36c LCD/pcf8574.o - .debug_line 0x0000134b 0x2bf LCD/twimaster.o - .debug_line 0x0000160a 0x2af main.o - .debug_line 0x000018b9 0x25e protocol/protocol.o - .debug_line 0x00001b17 0xfa UART/circular_buf.o - .debug_line 0x00001c11 0x226 UART/uart.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -.debug_frame 0x00000000 0x9a0 - *(.debug_frame) - .debug_frame 0x00000000 0x104 hdlc/client.o - .debug_frame 0x00000104 0x24 hdlc/fcs.o - .debug_frame 0x00000128 0x178 hdlc/hdlc.o - .debug_frame 0x000002a0 0x154 LCD/lcdpcf8574.o - .debug_frame 0x000003f4 0x124 LCD/Lcd_print.o - .debug_frame 0x00000518 0xe0 LCD/pcf8574.o - .debug_frame 0x000005f8 0xa0 LCD/twimaster.o - .debug_frame 0x00000698 0x7c main.o - .debug_frame 0x00000714 0xd0 protocol/protocol.o - .debug_frame 0x000007e4 0x74 UART/circular_buf.o - .debug_frame 0x00000858 0x148 UART/uart.o - -.debug_str 0x00000000 0xcc5 - *(.debug_str) -<<<<<<< HEAD - .debug_str 0x00000000 0x208 D:/atmel/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o -======= - .debug_str 0x00000000 0x208 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.209/gcc/dev/atmega328p/avr5/crtatmega328p.o ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - .debug_str 0x00000208 0x387 hdlc/client.o - 0x412 (size before relaxing) - .debug_str 0x0000058f 0x41 hdlc/fcs.o - 0x11c (size before relaxing) - .debug_str 0x000005d0 0xcf hdlc/hdlc.o - 0x302 (size before relaxing) - .debug_str 0x0000069f 0x17f LCD/lcdpcf8574.o - 0x2ca (size before relaxing) - .debug_str 0x0000081e 0xfe LCD/Lcd_print.o - 0x287 (size before relaxing) - .debug_str 0x0000091c 0x123 LCD/pcf8574.o - 0x2e3 (size before relaxing) - .debug_str 0x00000a3f 0x49 LCD/twimaster.o - 0x1c6 (size before relaxing) - .debug_str 0x00000a88 0xe8 main.o - 0x4ac (size before relaxing) - .debug_str 0x00000b70 0x7d protocol/protocol.o - 0x232 (size before relaxing) - .debug_str 0x00000bed 0x7d UART/circular_buf.o - 0x1d1 (size before relaxing) - .debug_str 0x00000c6a 0x5b UART/uart.o - 0x242 (size before relaxing) - -.debug_loc 0x00000000 0x2fe7 - *(.debug_loc) - .debug_loc 0x00000000 0x534 hdlc/client.o - .debug_loc 0x00000534 0x26 hdlc/fcs.o - .debug_loc 0x0000055a 0xb7e hdlc/hdlc.o - .debug_loc 0x000010d8 0x5b5 LCD/lcdpcf8574.o - .debug_loc 0x0000168d 0x4ac LCD/Lcd_print.o - .debug_loc 0x00001b39 0x69d LCD/pcf8574.o - .debug_loc 0x000021d6 0x12d LCD/twimaster.o - .debug_loc 0x00002303 0x21a main.o - .debug_loc 0x0000251d 0x578 protocol/protocol.o - .debug_loc 0x00002a95 0x140 UART/circular_buf.o - .debug_loc 0x00002bd5 0x412 UART/uart.o - -.debug_macinfo - *(.debug_macinfo) - -.debug_weaknames - *(.debug_weaknames) - -.debug_funcnames - *(.debug_funcnames) - -.debug_typenames - *(.debug_typenames) - -.debug_varnames - *(.debug_varnames) - -.debug_pubtypes - *(.debug_pubtypes) - -.debug_ranges 0x00000000 0x2e8 - *(.debug_ranges) - .debug_ranges 0x00000000 0x50 hdlc/client.o - .debug_ranges 0x00000050 0x10 hdlc/fcs.o - .debug_ranges 0x00000060 0x58 hdlc/hdlc.o - .debug_ranges 0x000000b8 0x98 LCD/lcdpcf8574.o - .debug_ranges 0x00000150 0x28 LCD/Lcd_print.o - .debug_ranges 0x00000178 0x58 LCD/pcf8574.o - .debug_ranges 0x000001d0 0x48 LCD/twimaster.o - .debug_ranges 0x00000218 0x40 main.o - .debug_ranges 0x00000258 0x30 protocol/protocol.o - .debug_ranges 0x00000288 0x30 UART/circular_buf.o - .debug_ranges 0x000002b8 0x30 UART/uart.o - -.debug_macro - *(.debug_macro) -OUTPUT(hdlc_screen.elf elf32-avr) -LOAD linker stubs diff --git a/hdlc_screen/Debug/hdlc_screen.srec b/hdlc_screen/Debug/hdlc_screen.srec deleted file mode 100644 index 33acdeb..0000000 --- a/hdlc_screen/Debug/hdlc_screen.srec +++ /dev/null @@ -1,509 +0,0 @@ -S013000068646C635F73637265656E2E7372656397 -S11300000C9434000C9451000C9451000C94510045 -S11300100C9451000C9451000C9451000C94510018 -S11300200C9451000C9451000C9451000C94510008 -S11300300C9451000C9451000C9451000C945100F8 -S11300400C9451000C9451000C94100B0C9451001E -S11300500C94420B0C9451000C9451000C945100DC -S11300600C9451000C94510011241FBECFEFD8E022 -S1130070DEBFCDBF13E0A0E0B1E0E2E5FDE102C0E8 -S113008005900D92A234B107D9F723E0A2E4B3E0BE -S113009001C01D92A639B207E1F70E9426070C940D -S11300A0A70E0C940000FC0181E0808372836183BD -S11300B0709344036093430384E1838314828FEF3A -S11300C09FEF9683858390878783928781871486A1 -S11300D01386168615860895FC0183E08083808943 -S11300E0887F808B81E0878713820895FC0180815B -S11300F0823089F485E080834134510578F4828923 -S1130100887F828B118A748B638B568B458B138209 -S113011080E090E008958CEF9FEF08958FEF9FEFBC -S11301200895CF92DF92EF92FF920F931F93CF9394 -S1130130DF9300D0CDB7DEB77C016B015A834983CE -S1130140FC0180818530D1F445895689638974899D -S11301508E010F5F1F4F9601C70141960E9448030D -S1130160992364F49F938F9380E091E09F938F93FE -S11301700E94990B0F900F900F900F90F7018081C0 -S11301808330D1F48E010F5F1F4F960140E050E0A1 -S113019060E070E0C7010F960E944803992364F45D -S11301A09F938F9380E091E09F938F930E94990B8C -S11301B00F900F900F900F90F70180818430D1F44D -S11301C08E010F5F1F4F960140E050E060E070E049 -S11301D0C70147960E944803992364F49F938F9321 -S11301E080E091E09F938F930E94990B0F900F9062 -S11301F00F900F9080E090E00F900F90DF91CF91DF -S11302001F910F91FF90EF90DF90CF9008952F9260 -S11302103F924F925F926F927F928F929F92AF9292 -S1130220BF92CF92DF92EF92FF920F931F93CF93DF -S1130230DF9300D000D0CDB7DEB75C015C834B8385 -S1130240222E332E38018DB69EB6C42ED52E8DB7F0 -S11302509EB78C199D090FB6F8949EBF0FBE8DBF33 -S1130260EDB7FEB731962F01CE0103967C018F01C5 -S11302709601AB01BE016F5F7F4FC50104960E94DA -S1130280220299230CF448C08A81877090E0F5011A -S1130290238130E08217930751F084E08083808DBE -S11302A0887F808F82E0878B8AEF9FEF35C08981BA -S11302B0813049F018F08230D9F025C0F2E0CF1A2D -S11302C0D10829F40EC082E0F50180831CC0F2013C -S11302D0A22DB32D4C0C5D1C81918D93E415F50575 -S11302E0D9F7F301D182C08286E0F50180830BC087 -S11302F084E0F5018083808D887F808F82E0878B06 -S11303008AEF9FEF09C08091430390914403F50164 -S11303109283818380E090E00FB6F8949EBE0FBE76 -S11303208DBE0F900F900F900F90DF91CF911F9182 -S11303300F91FF90EF90DF90CF90BF90AF909F9080 -S11303408F907F906F905F904F903F902F90089583 -S1130350FC0121813281261B370B32832183121643 -S113036013061CF480E090E008958BEF9FEF08954E -S1130370FC01E627FF27EE0FFF1FEA5EFE4F892FE1 -S1130380992720813181822793270895FA0193E8E0 -S1130390980F923070F420813181A9014F5F5F4F33 -S11303A051834083DB01A20FB31F9DE79C9390E22E -S11303B0892720813181A9014F5F5F4F5183408399 -S11303C0FB01E20FF31F80830895982F80FF0BC079 -S11303D086958695837011F082E001C081E0929544 -S11303E09695977003C09695977080E097700895DE -S11303F0FC019081913049F018F0923061F011C005 -S113040081818770880F8061089581818295880F2A -S1130410807E8160089581818295880F807E8960C5 -S1130420089580E00895FC018FEF9FEF928381830C -S1130430968385839483838312861186108617821C -S1130440108208953F924F925F926F927F928F92A3 -S11304509F92AF92BF92CF92DF92EF92FF920F934F -S11304601F93CF93DF9300D000D0CDB7DEB70097B2 -S113047009F4EAC06115710509F4E9C04115510593 -S113048009F4E8C00115110509F4E7C0E114F10409 -S113049009F4E6C0380149017A8369839C838B831C -S11304A02115310509F499C08A01C12CD12C689415 -S11304B0442445F833243394590121E0A21AB108A5 -S11304C0AB81BC8113968D919C91149799239CF4D4 -S11304D0F80180818E3709F070C0CA14DB0420F45F -S11304E081818E3709F470C0EB81FC81878190850E -S11304F09483838362C0F80150802EE7521219C09E -S1130500CA14DB0420F421812E3709F45DC0AB81C9 -S1130510BC8117962D913C911897AC014F5F5F4FAA -S11305204217530709F450C016963C932E9315971F -S11305305DC0BDE75B1204C0EB81FC8130823DC02D -S1130540AB81BC818C91882319F01C925080542477 -S1130550652DEB81FC81818192810E94B801AB8180 -S1130560BC8112969C938E93119717962D913C9172 -S1130570189713968D919C91149702962817390712 -S113058041F4852D0E94E501E981FA8191838083FC -S113059014C0821793078CF4AB81BC8119968D919A -S11305A09C911A979C012F5F3F4F1A963C932E9370 -S11305B01997F301E80FF91F5082EB81FC818781C1 -S11305C09085019690878783FFEFCF1ADF0A0F5F2C -S11305D01F4F8C149D0409F073CFAB81BC8113961B -S11305E08D919C91149799233CF06401EB81FC81DB -S11305F025813681332334F4D7011D921C928EE079 -S113060092ED30C00496281739073CF0EB81FC8149 -S113061081819281883B904F31F0D701CD92DC9259 -S11306200EE012ED0AC0EB81FC8181859285029770 -S1130630D7018D939C930C2D1D2D8B819C810E9441 -S11306401302802F912F0EC08EE092ED0BC08EE02E -S113065092ED08C08EE092ED05C08EE092ED02C0EE -S11306608EE092ED0F900F900F900F90DF91CF914D -S11306701F910F91FF90EF90DF90CF90BF90AF90BC -S11306809F908F907F906F905F904F903F900895D0 -S11306905F926F927F928F929F92AF92BF92CF920E -S11306A0DF92EF92FF920F931F93CF93DF9300D0CB -S11306B0CDB7DEB7009709F473C06115710521F455 -S11306C04115510509F06FC02115310509F46EC0BB -S11306D00115110509F46DC0380179015A014B0166 -S11306E08C0181E090E09A8389838EE7F90180830D -S11306F06FEF8FEF9FEF0E94B8016C01AE014F5F67 -S11307005F4FB7018FEF0E94C601C8010E94F80134 -S1130710582E682FC6010E94B8016C01AE014F5FCC -S11307205F4FB701852D0E94C601F80180818111B8 -S113073019C0A114B104B1F084018A0C9B1C5801A6 -S1130740F80161918F01C6010E94B8016C01AE01EC -S11307504F5F5F4FB701F50180810E94C60180168B -S1130760910669F7C094D094AE014F5F5F4FB70113 -S11307708C2D0E94C601AE014F5F5F4FB7018D2DD6 -S11307800E94C60189819A81F701E80FF91F2EE7BB -S113079020830196F3019183808380E090E00BC075 -S11307A08EE092ED08C08EE092ED05C08EE092EDF1 -S11307B002C08EE092ED0F900F90DF91CF911F91C8 -S11307C00F91FF90EF90DF90CF90BF90AF909F90EC -S11307D08F907F906F905F900895CF93882331F02E -S11307E08091420381608093420305C0809142035B -S11307F08E7F809342038091420382608093420300 -S11308006091420380E00E94950662E080E00E94CD -S1130810D60600C064E080E00E948106C82F62E032 -S113082080E00E94DA0600C062E080E00E94D60602 -S113083000C064E080E00E948106C295C07F8F7092 -S1130840C82B62E080E00E94DA068C2FCF910895D5 -S113085080E00E94ED038823DCF300C080E00E9466 -S1130860ED03089562E080E00E94D60600C062E0D5 -S113087080E00E94DA060895CF93C82F662331F0F2 -S11308808091420381608093420305C080914203BA -S11308908E7F80934203809142038D7F8093420335 -S11308A06091420380E00E949506809142038F7715 -S11308B080934203809142038F7B80934203809113 -S11308C042038F7D80934203809142038F7E809305 -S11308D04203CC232CF4809142038068809342032A -S11308E0C6FF05C080914203806480934203C5FF24 -S11308F005C080914203806280934203C4FF05C017 -S1130900809142038061809342036091420380E0BE -S11309100E9495060E943204809142038F7780934F -S11309204203809142038F7B809342038091420370 -S11309308F7D80934203809142038F7E8093420394 -S1130940C3FF05C080914203806880934203C2FFC5 -S113095005C080914203806480934203C1FF05C0B7 -S113096080914203806280934203C0FF05C080915E -S113097042038061809342036091420380E00E94BD -S113098095060E9432048091420380618093420361 -S11309908091420380628093420380914203806489 -S11309A08093420380914203806880934203609164 -S11309B0420380E00E949506CF910895CF93C82FFB -S11309C00E94280460E08C2F0E943C04CF9108957B -S11309D0611104C080580E94DE04089580540E946E -S11309E0DE04089581E00E94DE040895882331F036 -S11309F080914203877F8093420305C08091420324 -S1130A008860809342036091420380E00E949506CF -S1130A10089582E00E94DE040895CF93C82F0E94B7 -S1130A202804CA3049F4803410F080E001C080E426 -S1130A3080580E94DE0413C0803129F460E080EC09 -S1130A400E943C0406C0803521F460E080E80E94E6 -S1130A503C040E94280461E08C2F0E943C04CF9146 -S1130A600895CF93DF93EC012196FC0180818823C4 -S1130A7029F00E940D0589918111FBCFDF91CF915F -S1130A8008951F93CF93DF93182F0E947806109236 -S1130A9042036091420380E00E94950680EA9FE051 -S1130AA00197F1F780914203806280934203809121 -S1130AB042038061809342036091420380E00E947C -S1130AC095060E94320480EE94E00197F1F70E94AB -S1130AD03204C0E1D0E0CE010197F1F70E94320464 -S1130AE0CE010197F1F7809142038F7E80934203F8 -S1130AF06091420380E00E9495060E94320421978F -S1130B00F1F788E20E94DE0488E00E94DE040E947D -S1130B10F20486E00E94DE04812F0E94DE04DF914D -S1130B20CF911F9108958DE00E9441050E9409050F -S1130B3080E00E94F6040895CF92DF92EF92FF9234 -S1130B400F931F93CF93DF938C017B01C901F801AD -S1130B5001900020E9F73197BF01601B710B0E94DF -S1130B60760B670120E1C20ED11CE7019C012E190E -S1130B703F09F80101900020E9F73197BF01601B9C -S1130B80710BC9018C0F9D1F0E94760BF801E80FB1 -S1130B90F91F80818993CC15DD0559F7F701108A77 -S1130BA0DF91CF911F910F91FF90EF90DF90CF9045 -S1130BB00895AF92BF92CF92DF92EF92FF920F937C -S1130BC01F931F930F93FF92EF925F934F933F9363 -S1130BD02F939F938F937F936F9386E193E09F93DB -S1130BE08F93BF92AF92DF92CF920E94AF0B8DB7DB -S1130BF09EB742960FB6F8949EBF0FBE8DBF1F914D -S1130C000F91FF90EF90DF90CF90BF90AF90089539 -S1130C106F927F92AF92BF92CF92DF92EF92FF9248 -S1130C200F931F93CF93DF93CDB7DEB7C254D1098F -S1130C300FB6F894DEBF0FBECDBF3C01209149032F -S1130C4030914A0341E150E0BE016F5F7F4F0E9443 -S1130C509C05F301E85BFF4FE080F1800281138182 -S1130C60349720813181428153813497608171812D -S1130C70828193810F2EF1E1AF2EB12CF02DFE0174 -S1130C8072966F010E94D90540E150E0BE016F5F8A -S1130C907F4FCE0183960E948A0B40E150E0B6015B -S1130CA0CE01C3960E948A0B60E080E00E94E804B3 -S1130CB0CE0183960E94310561E080E00E94E80441 -S1130CC0CE01C3960E943105CE5BDF4F0FB6F89478 -S1130CD0DEBF0FBECDBFDF91CF911F910F91FF906B -S1130CE0EF90DF90CF90BF90AF907F906F9008957A -S1130CF00E94DE0683E08A95F1F7000010924B0310 -S1130D00089581110EC0683070F480914B03082E51 -S1130D10000C990B02C0959587956A95E2F781704E -S1130D2008958FEF08958FEF0895CF9381110DC02B -S1130D30C62F60934B038EE40E94E4068C2F0E941E -S1130D4014070E940B0780E001C08FEFCF91089534 -S1130D50CF93DF93811124C0683020F580914B0339 -S1130D60442349F0C1E0D0E002C0CC0FDD1F6A95F6 -S1130D70E2F7C82B09C0C1E0D0E002C0CC0FDD1FF0 -S1130D806A95E2F7C095C823C0934B038EE40E9492 -S1130D90E4068C2F0E9414070E940B0780E003C016 -S1130DA08FEF01C08FEFDF91CF91089541E00E9452 -S1130DB0A806089540E00E94A80608951092B9007C -S1130DC08DEF8093B800089594EA9093BC00ECEB07 -S1130DD0F0E090819923ECF79091B900987F9830D6 -S1130DE011F09031A1F48093BB0084E88093BC009F -S1130DF0ECEBF0E080818823ECF79091B900987FC8 -S1130E00983139F081E0903429F480E0089581E04C -S1130E10089580E0089584E98093BC00ECEBF0E051 -S1130E20808184FDFDCF08958093BB0084E8809386 -S1130E30BC00ECEBF0E080818823ECF79091B900E2 -S1130E40987F81E0983209F480E008954F925F9290 -S1130E506F927F928F929F92AF92BF92CF92DF92C6 -S1130E60EF92FF920F931F93CF93DF93CDB7DEB72B -S1130E70C350D2400FB6F894DEBF0FBECDBF0E9460 -S1130E8093050E949E0A68EC70E0CE0101960E94D0 -S1130E905300CE0101960E946C004AE050E0BE016E -S1130EA0665E7F4FCE0101960E9491006AE070E079 -S1130EB0CE014A960E94AA0A64E170E0CE018051F4 -S1130EC09E4F0E94CE0A61E070E0CE0101960E941E -S1130ED0A801059681F44AE050E0BE01665E7F4FAA -S1130EE0CE0101960E9491006AE070E0CE014A961C -S1130EF00E94AA0AE1CF00E010E020E030E044E1E3 -S1130F0050E0BE0160517E4FCE0101960E94070160 -S1130F108C019923ACF40A3F8FEF1807B1F444E134 -S1130F2050E0BE01605A7E4FCE0101960E949100AE -S1130F3064E170E0CE01805A9E4F0E94AA0A05C067 -S1130F408981823009F0B8CF03C0802F912FFEC071 -S1130F5084EA90E7ADE9BFE38CA39DA3AEA3BFA34E -S1130F608DEC9CECA0EBB1E488A799A7AAA7BBA73A -S1130F7080E090E0A8ECB2E48CA79DA7AEA7BFA741 -S1130F8083E090E099AB88AB85E293E09BAB8AABBE -S1130F9082E090E09DAB8CAB2E01E6E74E0E511C37 -S1130FA05F924F923E01F6E36F0E711C7F926F9237 -S1130FB08CA09DA0AEA0BFA0C8A4D9A4EAA4FBA401 -S1130FC00CA51DA52EA53FA548A959A96AA97BA9C9 -S1130FD08CA99DA90E945C09F20140815181B30151 -S1130FE0CE0101960E94760048E450E0BE016858A4 -S1130FF07F4FCE0101960E94910068E470E0CE011B -S113100088589F4F0E94AA0A0F900F900F900F903C -S113101060E970E0CE01805A9E4F0E94CE0A61E0E2 -S113102070E0CE0101960E94A801059689F448E477 -S113103050E0BE0168587F4FCE0101960E94910096 -S113104068E470E0CE0188589F4F0E94AA0AE0CF5E -S11310508E0113959E0120543F4F40E950E0BE019C -S1131060605A7E4FCE0101960E9407018C0199239C -S11310709CF40696B1F444E150E0BE0160517E4F09 -S1131080CE0101960E94910064E170E0CE0180518E -S11310909E4F0E94AA0A05C08981863009F0B8CF04 -S11310A003C0802F912F52C0C050DF4F68817981D7 -S11310B0C050D140AE014E5F5E4FCE0180549F4F71 -S11310C00E94BE08CE5FDE4F88819981AA81BB81D0 -S11310D0C250D140CC5ADE4F88839983AA83BB8304 -S11310E0C455D140CA5FDE4F88819981AA81BB81F2 -S11310F0C650D140C85ADE4F88839983AA83BB83E4 -S1131100C855D140C65FDE4F88819981AA81BB81D1 -S1131110CA50D140C45ADE4F88839983AA83BB83C3 -S1131120CC55D140C05FDE4F68817981C051D14038 -S11311304FE350E0CE018C5E9E4F0E948A0BCE019D -S11311408C5E9E4F0E94080680E090E0CD5FDD4FEC -S11311500FB6F894DEBF0FBECDBFDF91CF911F91C4 -S11311600F91FF90EF90DF90CF90BF90AF909F9042 -S11311708F907F906F905F904F9008958F929F9281 -S1131180AF92BF92CF92DF92EF92FF920F931F9391 -S1131190CF93DF93CDB7DEB7C054D1090FB6F8941F -S11311A0DEBF0FBECDBF4B01672B09F46CC020E03E -S11311B030E060E070E0A12CB12C6E01E5E0CE0ED1 -S11311C0D11CFE0131967F01FC01E20FF31F208147 -S11311D0211127C0DB011196A80FB91FFE0131961A -S11311E02D912193EC15FD05D9F76C5F7F4FF50127 -S11311F0EE0FFF1FEE0FFF1FE40FF51F09811A8189 -S11312002B813C810083118322833383FA0124855B -S113121035852F5F3F4F3587248795012F5F3F4FDB -S11312205901FC01E60FF71F2081213021F59B01B4 -S11312302F5F3F4FFC01E20FF31FE081EE2399F093 -S11312406E5F7F4FDC01A60FB71FF701B9016F5F17 -S11312507F4F2D91219330E08F010E191F09021742 -S11312601307ACF301C0B90129813A81FA01378728 -S11312702687118A108A6F5F7F4F9B016815790555 -S113128008F4A2CF02C0A12CB12CFA01B586A48621 -S1131290C05CDF4F0FB6F894DEBF0FBECDBFDF9149 -S11312A0CF911F910F91FF90EF90DF90CF90BF905F -S11312B0AF909F908F9008954F925F926F927F921C -S11312C08F929F92AF92BF92CF92DF92EF92FF9252 -S11312D00F931F93CF93DF93CDB7DEB7C255D109D8 -S11312E00FB6F894DEBF0FBECDBF22968FAE229705 -S11312F023969FAE23972496AFAE24972596BFAE30 -S113130025972696CFAE26972796DFAE2797289661 -S1131310EFAE28972996FFAE29972A960FAF2A9702 -S11313202B961FAF2B972C962FAF2C972D963FAF54 -S11313302D972E964FAF2E972F965FAF2F976096CF -S11313406FAF609761967FAF619762968FAF629738 -S113135063969FAF6397A7960EAD1FADA7972F9681 -S1131360CEACDFAC2F9763966EAD7FAD6397C1149F -S1131370D10409F466C07801CE018F5B9F4F5601FA -S1131380AA0CBB1CAA0CBB1CA80EB91EAE014B5F59 -S11313905F4FF7011192DC014D905D906D907D904F -S11313A0CD0149825A826B827C82DE0111963D9185 -S11313B03193A417B507D9F7B5E0EB0EF11C8A15E4 -S11313C09B0539F79601220F331F220F331F2C0D73 -S11313D03D1D6115710509F1D801A20FB31F81E00C -S11313E08C93D9011196A00FB11F2E5F3F4F6C93C0 -S11313F061968EAD9FAD61979A838983DE011196C4 -S1131400F801E20FF31F80E090E02F5F3F4F4D9112 -S11314104193019686179707C0F3A996EEADFFADE9 -S1131420A9973183208313C081E0F801808361830D -S113143061968EAD9FAD61979A83898322E030E0F7 -S1131440DDCF6115710581F720E030E0E6CFCE5A9B -S1131450DF4F0FB6F894DEBF0FBECDBFDF91CF9143 -S11314601F910F91FF90EF90DF90CF90BF90AF90BE -S11314709F908F907F906F905F904F900895FC01A4 -S113148081E090E030A121A1321711F080E090E0DA -S11314900895FC0121A130E02F5F3F4F2F71307878 -S11314A0332334F421503109206E3F6F2F5F3F4FB7 -S11314B0FC0140A150E081E090E02417350711F0D1 -S11314C080E090E008951F93CF93DF93EC01162FF3 -S11314D00E94490A892B81F489A190E0FE01E80F5A -S11314E0F91F108301968F719078992324F4019742 -S11314F0806E9F6F019689A3DF91CF911F9108950C -S1131500FC0120A181A12817B1F030E0DF01A20F76 -S1131510B31F4C9150E02F5F3F4F2F71307833232E -S113152034F421503109206E3F6F2F5F3F4F20A3C9 -S1131530842F952F08958FEF9FEF089588EF809360 -S1131540C10086E08093C2001092C50087E68093B4 -S1131550C40008950F931F93CF93DF936115710512 -S113156099F08C01EC01060F171F8EE693E00E94A0 -S1131570490A892B49F4699170E08EE693E00E9450 -S1131580630AC017D10789F7E1ECF0E08081806439 -S11315908083DF91CF911F910F9108958F929F9235 -S11315A0AF92BF92CF92DF92EF92FF920F931F936D -S11315B0CF93DF938B01EC01C12CD12C76014B012D -S11315C0A12CB12C0AC08CE493E00E94800A899378 -S11315D08FEFC81AD80AE80AF80A8CE493E00E944C -S11315E03F0A892B29F4C814D904EA04FB0458F3EC -S11315F020E030E00C151D052E053F0510F0C60156 -S113160002C08FEF9FEFDF91CF911F910F91FF9059 -S1131610EF90DF90CF90BF90AF909F908F90089500 -S11316201F920F920FB60F9211242F933F934F9353 -S11316305F936F937F938F939F93AF93BF93CF9356 -S1131640EF93FF93C091C6008CE493E00E94490A93 -S1131650892B31F46C2F70E08CE493E00E94630AD0 -S1131660FF91EF91CF91BF91AF919F918F917F9116 -S11316706F915F914F913F912F910F900FBE0F90FB -S11316801F9018951F920F920FB60F9211242F934B -S11316903F934F935F936F937F938F939F93AF93F6 -S11316A0BF93EF93FF938EE693E00E943F0A892B4A -S11316B039F48EE693E00E94800A8093C60005C048 -S11316C0E1ECF0E080818F7B8083FF91EF91BF910B -S11316D0AF919F918F917F916F915F914F913F91C6 -S11316E02F910F900FBE0F901F901895AA1BBB1B34 -S11316F051E107C0AA1FBB1FA617B70710F0A61B0E -S1131700B70B881F991F5A95A9F780959095BC012E -S1131710CD010895FB01DC014150504048F0019097 -S11317200D920020C9F701C01D9241505040E0F7CE -S11317300895A0E0B0E0EFE9FBE00C94800EAE0168 -S11317404B5F5F4FFA0161917191AF0180919203F8 -S1131750909193030E94DF0BE2E00C949C0EAEE0A8 -S1131760B0E0E5EBFBE00C947E0E0D891E898F89B9 -S1131770988D26E02C831A83098397FF02C080E0AA -S113178090E801979E838D83AE01455E5F4F698D1E -S11317907A8DCE0101960E94DF0B4D815E8157FD4B -S11317A00AC02F813885421753070CF49A01F801B7 -S11317B0E20FF31F10822E96E4E00C949A0EABE035 -S11317C0B0E0E5EEFBE00C94700E6C017B018A0145 -S11317D0FC0117821682838181FFCCC1CE01019660 -S11317E03C01F6019381F70193FD859193FF81916B -S11317F07F01882309F4BAC1853239F493FD8591B8 -S113180093FF81917F01853229F4B60190E00E9413 -S1131810D60DE7CF912C212C312CFFE1F315D8F014 -S11318208B3279F038F4803279F08332A1F4232DAD -S113183020611DC08D3261F0803369F4232D216055 -S113184016C0832D8260382EE32DE4603E2E2AC01C -S1131850F32DF8601DC037FC2DC020ED280F2A3071 -S113186040F08E32B9F436FC81C1232D2064322E2F -S113187019C036FE06C08AE0989E200D1124922ECF -S113188011C0EAE02E9E200D1124222EF32DF062C9 -S11318903F2E08C08C3621F4832D8068382E02C078 -S11318A0883641F4F70193FD859193FF81917F017F -S11318B08111B3CF982F9F7D9554933028F40C5FFA -S11318C01F4F9FE399830DC0833631F0833771F046 -S11318D0833509F059C021C0F801808189830E5FE6 -S11318E01F4F88248394912C530113C02801F2E0E4 -S11318F04F0E511CF801A080B18036FE03C0692D43 -S113190070E002C06FEF7FEFC5010E94CB0D4C0168 -S11319108201F32DFF773F2E16C0280122E0420EEC -S1131920511CF801A080B18036FE03C0692D70E01F -S113193002C06FEF7FEFC5010E94C00D4C01F32D73 -S1131940F0683F2E820133FC1BC0822D90E0881684 -S11319509906B0F4B60180E290E00E94D60D2A9474 -S1131960F4CFF50137FC859137FE81915F01B60113 -S113197090E00E94D60D21102A9421E0821A910849 -S11319808114910471F7E8C0843611F0893641F569 -S1131990F80137FE07C060817181828193810C5FF9 -S11319A01F4F08C060817181072E000C880B990BB2 -S11319B00E5F1F4FF32DFF763F2E97FF09C09095C2 -S11319C08095709561957F4F8F4F9F4FF0683F2EA4 -S11319D02AE030E0A3010E94120E882E861845C02A -S11319E0853731F4232D2F7EB22E2AE030E025C036 -S11319F0932D997FB92E8F36C1F018F4883579F07C -S1131A00B5C0803719F0883721F0B0C0E92FE06104 -S1131A10BE2EB4FE0DC0FB2DF460BF2E09C034FEF3 -S1131A200AC0292F2660B22E06C028E030E005C087 -S1131A3020E130E002C020E132E0F801B7FE07C047 -S1131A4060817181828193810C5F1F4F06C0608128 -S1131A50718180E090E00E5F1F4FA3010E94120E7F -S1131A60882E8618FB2DFF773F2E36FE0DC0232DC2 -S1131A702E7FA22E891458F434FE0BC032FC09C008 -S1131A80832D8E7EA82E05C0B82CA32C03C0B82CA1 -S1131A9001C0B92CA4FE0FC0FE01E80DF11D808128 -S1131AA0803321F49A2D997EA92E09C0A2FE06C086 -S1131AB0B394B39404C08A2D867809F0B394A3FC3C -S1131AC011C0A0FE06C0B21488F4280C922C9B18F6 -S1131AD00EC0B21460F4B60180E290E00E94D60D0C -S1131AE0B394F7CFB21418F42B1802C0982C212CFD -S1131AF0A4FE10C0B60180E390E00E94D60DA2FEC1 -S1131B0017C0A1FC03C088E790E002C088E590E01C -S1131B10B6010CC08A2D867859F0A1FE02C08BE272 -S1131B2001C080E2A7FC8DE2B60190E00E94D60DD0 -S1131B30891438F4B60180E390E00E94D60D9A949B -S1131B40F7CF8A94F301E80DF11D8081B60190E08E -S1131B500E94D60D8110F5CF222009F442CEB601A1 -S1131B6080E290E00E94D60D2A94F6CFF601868199 -S1131B70978102C08FEF9FEF2B96E2E10C948C0EBD -S1131B80FC010590615070400110D8F78095909544 -S1131B908E0F9F1F0895FC01615070400190011049 -S1131BA0D8F7809590958E0F9F1F08950F931F93DC -S1131BB0CF93DF93FB01238121FD03C08FEF9FEFC0 -S1131BC02CC022FF16C046815781248135814217DB -S1131BD0530744F4A081B1819D012F5F3F4F3183AE -S1131BE020838C93268137812F5F3F4F3783268351 -S1131BF014C08B01EC01FB010084F185E02D0995F3 -S1131C00892BE1F6D80116968D919C911797019630 -S1131C1017969C938E931697CE01DF91CF911F91C7 -S1131C200F910895FA01AA27283051F1203181F14A -S1131C30E8946F936E7F6E5F7F4F8F4F9F4FAF4FD0 -S1131C40B1E03ED0B4E03CD0670F781F891F9A1FE3 -S1131C50A11D680F791F8A1F911DA11D6A0F711D97 -S1131C60811D911DA11D20D009F468943F912AE0A3 -S1131C70269F11243019305D3193DEF6CF0108958B -S1131C80462F4770405D4193B3E00FD0C9F7F6CFBC -S1131C90462F4F70405D4A3318F0495D31FD405284 -S1131CA0419302D0A9F7EACFB4E0A695979587951A -S1131CB077956795BA95C9F70097610571050895F9 -S1131CC09B01AC010A2E06945795479537952795A5 -S1131CD0BA95C9F7620F731F841F951FA01D08953D -S1131CE02F923F924F925F926F927F928F929F9228 -S1131CF0AF92BF92CF92DF92EF92FF920F931F9316 -S1131D00CF93DF93CDB7DEB7CA1BDB0B0FB6F894C6 -S1131D10DEBF0FBECDBF09942A88398848885F8406 -S1131D206E847D848C849B84AA84B984C884DF8077 -S1131D30EE80FD800C811B81AA81B981CE0FD11D5B -S1131D400FB6F894DEBF0FBECDBFED010895F89431 -S1051D50FFCFBF -S1131D5265727220696E206765745F6672616D6573 -S1131D623A2025640A000000891112239B3224467A -S1131D72AD573665BF74488CC19D5AAFD3BE6CCA89 -S1131D82E5DB7EE9F7F88110080193331A22A556A0 -S1131D922C47B7753E64C99C408DDBBF52AEEDDA69 -S1131DA264CBFFF976E802218B301002991326677F -S1131DB2AF763444BD554AADC3BC588ED19F6EEB49 -S1131DC2E7FA7CC8F5D983310A2091121803A77760 -S1131DD22E66B5543C45CBBD42ACD99E508FEFFB29 -S1131DE266EAFDD874C904428D5316619F702004BB -S1131DF2A9153227BB364CCEC5DF5EEDD7FC688809 -S1131E02E1997AABF3BA85520C4397711E60A1141F -S1131E122805B3373A26CDDE44CFDFFD56ECE998E8 -S1131E226089FBBB72AA06638F7214409D512225FE -S1131E32AB343006B9174EEFC7FE5CCCD5DD6AA9C8 -S1131E42E3B8788AF19B87730E6295501C41A335DF -S1131E522A24B1163807CFFF46EEDDDC54CDEBB9A8 -S1131E6262A8F99A708B088481951AA793B62CC23A -S1131E72A5D33EE1B7F04008C919522BDB3A644EB0 -S1131E82ED5F766DFF7C899400859BB712A6ADD277 -S1131E9224C3BFF136E0C1184809D33B5A2AE55E90 -S1131EA26C4FF77D7E6C0AA583B4188691972EE356 -S1131EB2A7F23CC0B5D14229CB38500AD91B666F70 -S1131EC2EF7E744CFD5D8BB502A499961087AFF337 -S1131ED226E2BDD034C1C3394A28D11A580BE77F50 -S1131EE26E6EF55C7C4D0CC685D71EE597F4288092 -S1131EF2A1913AA3B3B2444ACD5B5669DF78600C30 -S1131F02E91D722FFB3E8DD604C79FF516E4A990F6 -S1131F122081BBB332A2C55A4C4BD7795E68E11C0F -S1131F22680DF33F7A2E0EE787F61CC495D52AA1D5 -S1131F32A3B03882B193466BCF7A5448DD59622DEF -S1131F42EB3C700EF91F8FF706E69DD414C5ABB1B6 -S1131F5222A0B9923083C77B4E6AD5585C49E33DCF -S1131F626A2CF11E780F252E32662E252E32662E0D -S1131F72252E326600776F72642077617220696E53 -S1131F82206E657720776F726C6420696F206578A4 -S1051F92000049 -S9030000FC diff --git a/hdlc_screen/Debug/main.d b/hdlc_screen/Debug/main.d deleted file mode 100644 index 62e6098..0000000 --- a/hdlc_screen/Debug/main.d +++ /dev/null @@ -1,86 +0,0 @@ -main.d main.o: .././main.c .././hdlc/client.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ - .././hdlc/hdlc.h .././hdlc/fcs.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - .././UART/uart.h .././LCD/lcd.h .././Protocol/protocol.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -.././hdlc/client.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h \ - .././hdlc/hdlc.h .././hdlc/fcs.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - .././UART/uart.h .././LCD/lcd.h .././Protocol/protocol.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -.././hdlc/client.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdbool.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -.././hdlc/hdlc.h: - -.././hdlc/fcs.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\errno.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 - -.././UART/uart.h: - -.././LCD/lcd.h: - -.././Protocol/protocol.h: - -<<<<<<< HEAD -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 diff --git a/hdlc_screen/Debug/main.o b/hdlc_screen/Debug/main.o deleted file mode 100644 index 2525d10ce8cddfeeb175af752681bec93db81905..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12308 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 OJw6icdQMR0;r{|Z*+L8e diff --git a/hdlc_screen/Debug/makedep.mk b/hdlc_screen/Debug/makedep.mk deleted file mode 100644 index 3b06a79..0000000 --- a/hdlc_screen/Debug/makedep.mk +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Automatically-generated file. Do not edit or delete the file -################################################################################ - -hdlc\client.c - -hdlc\fcs.c - -hdlc\hdlc.c - -LCD\lcdpcf8574.c - -LCD\Lcd_print.c - -LCD\pcf8574.c - -LCD\twimaster.c - -main.c - -protocol\protocol.c - -UART\circular_buf.c - -UART\uart.c - diff --git a/hdlc_screen/Debug/protocol/protocol.d b/hdlc_screen/Debug/protocol/protocol.d deleted file mode 100644 index 426cff7..0000000 --- a/hdlc_screen/Debug/protocol/protocol.d +++ /dev/null @@ -1,57 +0,0 @@ -protocol/protocol.d protocol/protocol.o: ../protocol/protocol.c \ - ../protocol/protocol.h \ -<<<<<<< HEAD - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -../protocol/protocol.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -d:\atmel\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: -======= - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \ - c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h - -../protocol/protocol.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\string.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h: - -c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h: ->>>>>>> 2ad07a39c5b52693c7d6572f447e17d76787e562 diff --git a/hdlc_screen/Debug/protocol/protocol.o b/hdlc_screen/Debug/protocol/protocol.o deleted file mode 100644 index 614c3469a1fd6822b6035bb407377fb28a07056f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10584 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 diff --git a/hdlc_screen/LCD/Lcd_print.c b/hdlc_screen/LCD/Lcd_print.c deleted file mode 100644 index 848976e..0000000 --- a/hdlc_screen/LCD/Lcd_print.c +++ /dev/null @@ -1,93 +0,0 @@ -#include "lcd_headers.h" -#include "lcd.h" -//#include "time.h" -// #include <Arduino.h> -//#include <cstddef> - -struct TextCounter { - unsigned long startTime; - int incrementValue; -}; - -struct TextCounter textCounter; - -//struct TextCounter textCounter; - -void Lcd_inciliation() { - lcd_init(LCD_DISP_ON_BLINK); // инициализация дисплея - lcd_home(); // домой курсор - lcd_led(0); // вкл подсветки - //textCounter.startTime = millis(); // Запоминаем время запуска программы - //Из за строчки выше все ломается -} - -void fillBuffer1(const char* source, char* buffer, size_t bufferSize, int incrementValue) { - int startIndex = incrementValue % strlen(source); // Определяем начальный индекс на основе incrementValue - int endIndex = startIndex + 16; - - for (int i = 0; i < 16; ++i) { - buffer[i] = source[(startIndex + i) % strlen(source)]; - } - buffer[16] = '\0'; // Установка нулевого символа в конце буфера -} - -void fillBuffer2(float value1, float value2, float value3, char* buffer, size_t bufferSize) { - snprintf(buffer, bufferSize, "%.2f.%.2f.%.2f", value1, value2, value3); -} - -void printLcd(struct DisplayData* displayData) { - //unsigned long currentTime = millis(); // Текущее время - // Проверяем, прошло ли 500 мс с момента последнего увеличения incrementValue - //if (currentTime - textCounter.startTime >= 500) { - // textCounter.incrementValue++; // Увеличиваем incrementValue на 1 - // textCounter.startTime = currentTime; // Обновляем время - //} - - //struct DisplayData displayData; - //strncpy(displayData.topLine, decode_message->str, sizeof(displayData.topLine) - 1); - //displayData.topLine[sizeof(displayData.topLine) - 1] = '\0'; - //displayData.value1 = displayDataResp->value1; - //displayData.value2 = displayDataResp->value2; - //displayData.value3 = displayDataResp->value3; - - // Буферы для заполнения данных - char buffer1[17]; - char buffer2[17]; - - // Заполнение буфера 1 - fillBuffer1(displayData->topLine, buffer1, sizeof(buffer1), textCounter.incrementValue); - - // Заполнение буфера 2 - fillBuffer2(displayData->value1, displayData->value2, displayData->value3, buffer2, sizeof(buffer2)); - - // Создание массива для вывода на дисплей - char displayArray[32]; - strncpy(displayArray, buffer1, 16); // Копирование первых 16 символов из buffer1 в displayArray - strncpy(displayArray + 16, buffer2, 16); // Копирование первых 16 символов из buffer2 в displayArray, начиная с позиции 16 - - // Вывод данных на экран - lcd_gotoxy(0, 0); - lcd_puts(displayArray); - - lcd_gotoxy(0, 1); - lcd_puts(displayArray + 16); // Вывод второй половины displayArray -} - -//void dder() { -// Lcd_inciliation(); -// -// uint8_t encode_message[100]; -// size_t len_encode_message = 0; -// struct message message; -// -// -// // Получаем данные из протокола -// protocol_encode(message, encode_message, &len_encode_message); -// -// // Декодируем данные из протокола -// struct message decode_message; -// protocol_decode(encode_message, len_encode_message, &decode_message); -// -// // Выводим данные на экран -// printLcd(&decode_message); -//} \ No newline at end of file diff --git a/hdlc_screen/LCD/i2cmaster.h b/hdlc_screen/LCD/i2cmaster.h deleted file mode 100644 index e1f01af..0000000 --- a/hdlc_screen/LCD/i2cmaster.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef _I2CMASTER_H -#define _I2CMASTER_H - -// ����, ���������� �� ������ ������ �� i2c -#define I2C_READ 1 - -// ����, ���������� �� �������� ������ �� i2c -#define I2C_WRITE 0 - -// ������� ������������ ����� � ������ -#define SCL_CLOCK 100000L - -// ������������� ���������� -void i2c_init(void); - -// �������� ������� ���� �� ���� -void i2c_stop(void); - -// �������� ������� ����� �� ���� -unsigned char i2c_start(unsigned char addr); - -// ��������� �����(����������) -unsigned char i2c_rep_start(unsigned char addr); - -// ����, ���� ������-�� ������, � ����� �������� ������� ����� �� ���� -void i2c_start_wait(unsigned char addr); - - // �������� ������ -unsigned char i2c_write(unsigned char data); - -// ������ ������ � ���������� ������� -unsigned char i2c_readAck(void); - -// ������ ������ � ����� �� ��������� �������� ������ ���� -unsigned char i2c_readNak(void); - -// ������ ������ � ���� -unsigned char i2c_read(unsigned char ack); - -// �������� ����� ������ ������ ������ ����� -#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); -#endif diff --git a/hdlc_screen/LCD/lcdpcf8574.h b/hdlc_screen/LCD/lcdpcf8574.h deleted file mode 100644 index d5c35b0..0000000 --- a/hdlc_screen/LCD/lcdpcf8574.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef LCD_H -#define LCD_H - -#define LCD_PCF8574_INIT 1 //������������� pcf - -#define LCD_PCF8574_DEVICEID 0 //id ���-�� -#define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES - -// ��������� ������ �����: ���������/���������� �������� �������, ����������� ����������� ������� ���������/����������� -#define LCD_ENTRY_DEC 0x04 // �������� ������� ���������, ������ ������������ �� ������� -#define LCD_ENTRY_DEC_SHIFT 0x05 // ��������� ������ �������, ����������� ������� �� ������� -#define LCD_ENTRY_INC_ 0x06 // �������� ������� ���������, ���. ����������� ������� � ����������� -#define LCD_ENTRY_INC_SHIFT 0x07 // ��������� �������� �������, ���������� ����������� ����������� ������� - -// ���������/���������� �������, ���������/���������� �������, �������� ������ � ������� ������� -#define LCD_DISP_OFF 0x08 // ������� �������� -#define LCD_DISP_ON 0x0C // ������� ���, ������ ���� -#define LCD_DISP_ON_BLINK 0x0D // ������� ���, ������ ����, ���� �������� ����� -#define LCD_DISP_ON_CURSOR 0x0E // ������� ���, ������ ��� -#define LCD_DISP_ON_CURSOR_BLINK 0x0F // ������� ���, ������ ���, ���� �������� ����� - -// ����������� �������/�������� ������� -#define LCD_MOVE_CURSOR_LEFT 0x10 // ������ ������ -#define LCD_MOVE_CURSOR_RIGHT 0x14 // ������ ������� -#define LCD_MOVE_DISP_LEFT 0x18 // ����� ����� -#define LCD_MOVE_DISP_RIGHT 0x1C // ����� ������ - -// ����� �������: ��������� ����� ������ ���������� � ���������� ����� ����������� -#define LCD_FUNCTION_4BIT_1LINE 0x20 // 4-������ ���������, ���� ������, 5x7 ����� -#define LCD_FUNCTION_4BIT_2LINES 0x28 // 4-������ ���������, ������������, 5x7 ����� -#define LCD_FUNCTION_8BIT_1LINE 0x30 // 8-������ ���������, ���� ������, 5x7 ����� -#define LCD_FUNCTION_8BIT_2LINES 0x38 // 8-������ ���������, ������������, 5x7 ����� - -#define LCD_LINES 2 // ���-�� ����� -#define LCD_DISP_LENGTH 16 // ���-�� �������� � ������ -#define LCD_LINE_LENGTH 0x40 // ���������� ����� ������ ������� -#define LCD_START_LINE1 0x00 // DDRM ����� ��� 1 ������ -#define LCD_START_LINE2 0x40 // DDRM ����� ��� 2 ������ -#define LCD_WRAP_LINES 1 // ������� ������ - - - -#define LCD_DATA0_PIN 4 // ��� ��� ������ -#define LCD_DATA1_PIN 5 // ��� ��� ������ -#define LCD_DATA2_PIN 6 // ��� ��� ������ -#define LCD_DATA3_PIN 7 // ��� ��� ������ -#define LCD_RS_PIN 0 // ��� ����� RS -#define LCD_RW_PIN 1 // ��� ����� RW -#define LCD_E_PIN 2 // ��� ����� ������������ -#define LCD_LED_PIN 3 // ��� ��������� - - -// ������� ����� �������� ������ HD44780U. -#define LCD_CLR 0 // ��������� ������� -#define LCD_HOME 1 // ������� ������ ����� -#define LCD_ENTRY_MODE 2 // ��������� ������ ����� -#define LCD_ENTRY_INC 1 // ��������� -#define LCD_ENTRY_SHIFT 0 // ��� �������� -#define LCD_ON 3 // ��� ������� -#define LCD_ON_DISPLAY 2 // ���� ������� -#define LCD_ON_CURSOR 1 // ���� ������ -#define LCD_ON_BLINK 0 // ������� ������� -#define LCD_MOVE 4 // ������������ ������� -#define LCD_MOVE_DISP 3 // ������������ ������� -#define LCD_MOVE_RIGHT 2 // ������������ ������� ������� -#define LCD_FUNCTION 5 // ��������� ������� -#define LCD_FUNCTION_8BIT 4 // 8 ������ ����� -#define LCD_FUNCTION_2LINES 3 // ��������� ����� -#define LCD_FUNCTION_10DOTS 2 // ������ -#define LCD_CGRAM 6 // ��������� ������ CG RAM -#define LCD_DDRAM 7 // ��������� ������ DD RAM -#define LCD_BUSY 7 // ������� ����� - -// ����������� ����� -#define LCD_MODE_DEFAULT ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) ) - -// ������������� ������� -void lcd_init(uint8_t dispAttr); - -// ������� ������� -void lcd_clrscr(void); - -// ������ � ������ ��������� -void lcd_home(void); - -// ����������� ������� �� ����������� -void lcd_gotoxy(uint8_t x, uint8_t y); - -// ��� � ���� ��������� -void lcd_led(uint8_t onoff); - -// ����������� ������� � ������� ������� ������� -void lcd_putc(char c); - -// ����� ������ �� ������� -void lcd_puts(const char *s); - -// ����� ������ �� ������ -void lcd_puts_p(const char *progmem_s); - -// ��������� ������� ��� �������� ������ ������� -void lcd_command(uint8_t cmd); - -// �������� ����� �� ������� -void lcd_data(uint8_t data); - -// ������� ��� ��������������� ���������� ��������� ��������� � ������ ��������� -#define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) - -#endif diff --git a/hdlc_screen/LCD/pcf8574.c b/hdlc_screen/LCD/pcf8574.c deleted file mode 100644 index de5ebf6..0000000 --- a/hdlc_screen/LCD/pcf8574.c +++ /dev/null @@ -1,115 +0,0 @@ -#include "lcd_headers.h" -uint8_t pcf8574_pinstatus[PCF8574_MAXDEVICES]; - -// инициализация pcf -void pcf8574_init() { - #if PCF8574_I2CINIT == 1 - // инитим i2c - i2c_init(); - _delay_us(10); - #endif - uint8_t i = 0; - for(i=0; i<PCF8574_MAXDEVICES; i++) - pcf8574_pinstatus[i] = 0; - -} - -// получаем статус вывода -int8_t pcf8574_getoutput(uint8_t deviceid) { - int8_t data = -1; - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { - data = pcf8574_pinstatus[deviceid]; - } - return data; -} - -// получаем статус пинов вывода -int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) { - int8_t data = -1; - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { - data = pcf8574_pinstatus[deviceid]; - data = (data >> pin) & 0b00000001; - } - return data; -} - -// настройка вывода -int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) { - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { - pcf8574_pinstatus[deviceid] = data; - i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); - i2c_write(data); - i2c_stop(); - return 0; - } - return -1; -} - -// установить выходные контакты, заменить фактический статус устройства из pinstart для i2c -int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t pinlength, int8_t data) { - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pinstart - pinlength + 1 >= 0 && pinstart - pinlength + 1 >= 0 && pinstart < PCF8574_MAXPINS && pinstart > 0 && pinlength > 0)) { - uint8_t b = 0; - b = pcf8574_pinstatus[deviceid]; - uint8_t mask = ((1 << pinlength) - 1) << (pinstart - pinlength + 1); - data <<= (pinstart - pinlength + 1); - data &= mask; - b &= ~(mask); - b |= data; - pcf8574_pinstatus[deviceid] = b; - //рестартим - i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); - i2c_write(b); - i2c_stop(); - return 0; - } - return -1; -} - -// настройка пинов вывода -int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) { - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { - uint8_t b = 0; - b = pcf8574_pinstatus[deviceid]; - b = (data != 0) ? (b | (1 << pin)) : (b & ~(1 << pin)); - pcf8574_pinstatus[deviceid] = b; - //рестартим - i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); - i2c_write(b); - i2c_stop(); - return 0; - } - return -1; -} - -// установка высокого уровня на выходных пинах -int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) { - return pcf8574_setoutputpin(deviceid, pin, 1); -} - -// установка низкого уровня на выходных пинах -int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) { - return pcf8574_setoutputpin(deviceid, pin, 0); -} - -// получение входных данных -int8_t pcf8574_getinput(uint8_t deviceid) { - int8_t data = -1; - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { - i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_READ); - data = ~i2c_readNak(); - i2c_stop(); - } - return data; -} - -// получение входного контакта (высокий или низкий) -int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) { - int8_t data = -1; - if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { - data = pcf8574_getinput(deviceid); - if(data != -1) { - data = (data >> pin) & 0b00000001; - } - } - return data; -} \ No newline at end of file diff --git a/hdlc_screen/Readme.md b/hdlc_screen/Readme.md deleted file mode 100644 index e63e9d8..0000000 --- a/hdlc_screen/Readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# Устройство с дисплеем на AVR -* Команда: Лежнин Роман, Куршаков Кирилл, Деркачев Андрей, Чертков Максим - -Лежнин Роман -* Главный в группе -* Внедрение протокола HDLC и разработка протокола - -Куршаков Кирилл -* Внедрение протокола UART - -Чертков Максим -* Отрисовка данных на дисплей - -Деркачев Андрей -* Соединения и рефактор блоков UART, HDLC и вывода \ No newline at end of file diff --git a/hdlc_screen/hdlc_screen.componentinfo.xml b/hdlc_screen/hdlc_screen.componentinfo.xml deleted file mode 100644 index 7473b85..0000000 --- a/hdlc_screen/hdlc_screen.componentinfo.xml +++ /dev/null @@ -1,86 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement"> - <ProjectComponents> - <ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"> - <CApiVersion></CApiVersion> - <CBundle></CBundle> - <CClass>Device</CClass> - <CGroup>Startup</CGroup> - <CSub></CSub> - <CVariant></CVariant> - <CVendor>Atmel</CVendor> - <CVersion>1.2.0</CVersion> - <DefaultRepoPath>D:/atmelstudio\7.0\Packs</DefaultRepoPath> - <DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" /> - <Description></Description> - <Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> - <d4p1:anyType i:type="FileInfo"> - <AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include</AbsolutePath> - <Attribute></Attribute> - <Category>include</Category> - <Condition>C</Condition> - <FileContentHash i:nil="true" /> - <FileVersion></FileVersion> - <Name>include</Name> - <SelectString></SelectString> - <SourcePath></SourcePath> - </d4p1:anyType> - <d4p1:anyType i:type="FileInfo"> - <AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\include\avr\iom328p.h</AbsolutePath> - <Attribute></Attribute> - <Category>header</Category> - <Condition>C</Condition> - <FileContentHash>UMk4QUzkkuShabuoYtNl/Q==</FileContentHash> - <FileVersion></FileVersion> - <Name>include/avr/iom328p.h</Name> - <SelectString></SelectString> - <SourcePath></SourcePath> - </d4p1:anyType> - <d4p1:anyType i:type="FileInfo"> - <AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.c</AbsolutePath> - <Attribute>template</Attribute> - <Category>source</Category> - <Condition>C Exe</Condition> - <FileContentHash>7MqOviI+fX8DsJg4frGlyg==</FileContentHash> - <FileVersion></FileVersion> - <Name>templates/main.c</Name> - <SelectString>Main file (.c)</SelectString> - <SourcePath></SourcePath> - </d4p1:anyType> - <d4p1:anyType i:type="FileInfo"> - <AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\templates\main.cpp</AbsolutePath> - <Attribute>template</Attribute> - <Category>source</Category> - <Condition>C Exe</Condition> - <FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash> - <FileVersion></FileVersion> - <Name>templates/main.cpp</Name> - <SelectString>Main file (.cpp)</SelectString> - <SourcePath></SourcePath> - </d4p1:anyType> - <d4p1:anyType i:type="FileInfo"> - <AbsolutePath>D:/atmelstudio\7.0\Packs\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p</AbsolutePath> - <Attribute></Attribute> - <Category>libraryPrefix</Category> - <Condition>GCC</Condition> - <FileContentHash i:nil="true" /> - <FileVersion></FileVersion> - <Name>gcc/dev/atmega328p</Name> - <SelectString></SelectString> - <SourcePath></SourcePath> - </d4p1:anyType> - </Files> - <PackName>ATmega_DFP</PackName> - <PackPath>D:/atmelstudio/7.0/Packs/atmel/ATmega_DFP/1.2.209/Atmel.ATmega_DFP.pdsc</PackPath> - <PackVersion>1.2.209</PackVersion> - <PresentInProject>true</PresentInProject> - <ReferenceConditionId>ATmega328P</ReferenceConditionId> - <RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> - <d4p1:string></d4p1:string> - </RteComponents> - <Status>Resolved</Status> - <VersionMode>Fixed</VersionMode> - <IsComponentInAtProject>true</IsComponentInAtProject> - </ProjectComponent> - </ProjectComponents> -</Store> \ No newline at end of file diff --git a/hdlc_screen/hdlc_screen.cproj b/hdlc_screen/hdlc_screen.cproj deleted file mode 100644 index 541f3ef..0000000 --- a/hdlc_screen/hdlc_screen.cproj +++ /dev/null @@ -1,185 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0"> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - <ProjectVersion>7.0</ProjectVersion> - <ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName> - <ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid> - <avrdevice>ATmega328P</avrdevice> - <avrdeviceseries>none</avrdeviceseries> - <OutputType>Executable</OutputType> - <Language>C</Language> - <OutputFileName>$(MSBuildProjectName)</OutputFileName> - <OutputFileExtension>.elf</OutputFileExtension> - <OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory> - <AssemblyName>hdlc_screen</AssemblyName> - <Name>hdlc_screen</Name> - <RootNamespace>hdlc_screen</RootNamespace> - <ToolchainFlavour>Native</ToolchainFlavour> - <KeepTimersRunning>true</KeepTimersRunning> - <OverrideVtor>false</OverrideVtor> - <CacheFlash>true</CacheFlash> - <ProgFlashFromRam>true</ProgFlashFromRam> - <RamSnippetAddress>0x20000000</RamSnippetAddress> - <UncachedRange /> - <preserveEEPROM>true</preserveEEPROM> - <OverrideVtorValue>exception_table</OverrideVtorValue> - <BootSegment>2</BootSegment> - <ResetRule>0</ResetRule> - <eraseonlaunchrule>0</eraseonlaunchrule> - <EraseKey /> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)' == 'Release' "> - <ToolchainSettings> - <AvrGcc> - <avrgcc.common.Device>-mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"</avrgcc.common.Device> - <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> - <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> - <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> - <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> - <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> - <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> - <avrgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>NDEBUG</Value> - </ListValues> - </avrgcc.compiler.symbols.DefSymbols> - <avrgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value> - </ListValues> - </avrgcc.compiler.directories.IncludePaths> - <avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level> - <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> - <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> - <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> - <avrgcc.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </avrgcc.linker.libraries.Libraries> - <avrgcc.assembler.general.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value> - </ListValues> - </avrgcc.assembler.general.IncludePaths> - </AvrGcc> - </ToolchainSettings> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> - <ToolchainSettings> - <AvrGcc> - <avrgcc.common.Device>-mmcu=atmega328p -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\gcc\dev\atmega328p"</avrgcc.common.Device> - <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> - <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> - <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> - <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> - <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> - <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> - <avrgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - </ListValues> - </avrgcc.compiler.symbols.DefSymbols> - <avrgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value> - </ListValues> - </avrgcc.compiler.directories.IncludePaths> - <avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level> - <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> - <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> - <avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel> - <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> - <avrgcc.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </avrgcc.linker.libraries.Libraries> - <avrgcc.assembler.general.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.209\include</Value> - </ListValues> - </avrgcc.assembler.general.IncludePaths> - <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> - </AvrGcc> - </ToolchainSettings> - </PropertyGroup> - <ItemGroup> - <Compile Include="hdlc\client.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="hdlc\client.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="hdlc\fcs.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="hdlc\fcs.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="hdlc\hdlc.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="hdlc\hdlc.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\i2cmaster.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\lcd.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\lcdpcf8574.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\lcdpcf8574.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\lcd_headers.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\Lcd_print.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\pcf8574.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\pcf8574.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="LCD\twimaster.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="main.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="protocol\protocol.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="protocol\protocol.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="UART\circular_buf.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="UART\circular_buf.h"> - <SubType>compile</SubType> - </Compile> - <Compile Include="UART\uart.c"> - <SubType>compile</SubType> - </Compile> - <Compile Include="UART\uart.h"> - <SubType>compile</SubType> - </Compile> - </ItemGroup> - <ItemGroup> - <Folder Include="hdlc" /> - <Folder Include="LCD" /> - <Folder Include="UART" /> - <Folder Include="protocol" /> - </ItemGroup> - <Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" /> -</Project> \ No newline at end of file diff --git a/hdlc_screen/keywords.txt b/hdlc_screen/keywords.txt deleted file mode 100644 index 26f60da..0000000 --- a/hdlc_screen/keywords.txt +++ /dev/null @@ -1,10 +0,0 @@ -lcd_init KEYWORD2 -lcd_clrscr KEYWORD2 -lcd_home KEYWORD2 -lcd_gotoxy KEYWORD2 -lcd_led KEYWORD2 -lcd_putc KEYWORD2 -lcd_puts KEYWORD2 -lcd_puts_p KEYWORD2 -lcd_command KEYWORD2 -lcd_data KEYWORD2 \ No newline at end of file diff --git a/hdlc_screen/main.c b/hdlc_screen/main.c deleted file mode 100644 index 8a30f50..0000000 --- a/hdlc_screen/main.c +++ /dev/null @@ -1,110 +0,0 @@ -#include "hdlc/client.h" -#include "UART/uart.h" -#include "stdbool.h" -#include "LCD/lcd.h" -#include "Protocol/protocol.h" - -int main(void) { - struct Client hdlc; - bool flag_connection = false; - - Lcd_inciliation(); - UART_init(); - init_hdlc_client(&hdlc, 200); - - hdlc_connect(&hdlc); - uint8_t buffer[10]; - - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - - UART_send(buffer, sizeof buffer); - - while(!flag_connection){ - uint8_t* buffer_recive[10]; - UART_receive(buffer_recive, sizeof buffer_recive); - - int err = hdlc_timeout_handler(&hdlc, 1); - if (err == ERR_FRAME_TIME_OUT){ - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - UART_send(buffer, sizeof buffer); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0); - if (err < 0){ - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - UART_send(buffer_rej, sizeof buffer_rej); - return err; - } - return err; - } - - if (hdlc.state == READY_STATE){ - flag_connection = true; - } - } - - struct message mess; - mess.numbers[0] = 1.23; - mess.numbers[1] = 22.1; - mess.numbers[2] = 100; - mess.len_numbers = 3; - mess.str = "word war in new world io ex"; - mess.len_str = sizeof mess.str; - - uint8_t data[64]; - size_t len_data; - protocol_encode(mess, data, &len_data); - - hdlc_send_data(&hdlc, data, len_data); - uint8_t buffer_data[72]; - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - - UART_send(buffer_data, sizeof buffer_data); - - bool flag_recive = false; - uint8_t data_recive[64]; - size_t len_data_recive; - while (!flag_recive){ - uint8_t* buffer_recive_data[72]; - UART_receive(buffer_recive_data, sizeof buffer_recive_data); - - int err = hdlc_timeout_handler(&hdlc, 1); - if (err == ERR_FRAME_TIME_OUT){ - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - UART_send(buffer_data, sizeof buffer_data); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); - if (err < 0){ - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - UART_send(buffer_rej, sizeof buffer_rej); - return err; - } - return err; - } - - if (hdlc.state == SEND){ - flag_recive = true; - } - } - - struct message resp; - protocol_decode(data_recive, len_data_recive, &resp); - - struct DisplayData disp; - disp.value1 = resp.numbers[0]; - disp.value2 = resp.numbers[1]; - disp.value3 = resp.numbers[2]; - //disp.topLine = *resp.str; - strncpy(disp.topLine, resp.str, sizeof(disp.topLine) - 1); - - printLcd(&disp); - - return 0; -} \ No newline at end of file diff --git a/hdlc_screen/main_com.c b/hdlc_screen/main_com.c deleted file mode 100644 index d4ff80d..0000000 --- a/hdlc_screen/main_com.c +++ /dev/null @@ -1,175 +0,0 @@ -#include <windows.h> -#include <stdio.h> -#include "hdlc/client.h" -#include "stdint.h" -#include "stdbool.h" -#include "protocol/protocol.h" - -int main() { - struct Client hdlc; - HANDLE Port_1; - HANDLE Port_2; - init_hdlc_client(&hdlc, 200); - - //Открыть COM-порт - Port_1 = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, - 0, NULL, OPEN_EXISTING, - 0, NULL); - - if (Port_1 == INVALID_HANDLE_VALUE) { - DWORD errorCode = GetLastError(); - //printf("Create file err: %d.\n", INVALID_HANDLE_VALUE); - printf("Create file err: %lu.\n", errorCode); - return 1; - } - - COMMTIMEOUTS timeouts1 = {0}; - // Установка таймаутов чтения/записи - timeouts1.ReadIntervalTimeout = 100; - timeouts1.ReadTotalTimeoutConstant = 100; - timeouts1.ReadTotalTimeoutMultiplier = 50; - timeouts1.WriteTotalTimeoutConstant = 100; - timeouts1.WriteTotalTimeoutMultiplier = 50; - - if (!SetCommTimeouts(Port_1, &timeouts1)) { - printf("err add timeout COM port.\n"); - CloseHandle(Port_1); - return 1; - } - - // Открыть COM-порт - Port_2 = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE, - 0, NULL, OPEN_EXISTING, - 0, NULL); - - if (Port_2 == INVALID_HANDLE_VALUE) { - DWORD errorCode = GetLastError(); - //printf("Create file err: %d.\n", INVALID_HANDLE_VALUE); - printf("Create file err: %lu.\n", errorCode); - return 1; - } - - if (!SetCommTimeouts(Port_2, &timeouts1)) { - printf("Ошибка при установке таймаутов COM-порта.\n"); - CloseHandle(Port_1); - return 1; - } - hdlc_connect(&hdlc); - uint8_t buffer_send_connect[10]; - - hdlc_get_raw_frame(&hdlc, buffer_send_connect, sizeof buffer_send_connect); - - //Write frame from port 1 - DWORD written; - BOOL success_write_send = WriteFile(Port_1, buffer_send_connect, sizeof buffer_send_connect, - &written, NULL); - - if (!success_write_send){ - DWORD errorCode = GetLastError(); - printf("WriteFile err: %lu.\n", errorCode); - return -1; - } - if (written != sizeof buffer_send_connect){ - printf("Failed to write all bytes to port"); - return -1; - } - - bool flag_connection = false; - while(!flag_connection){ - uint8_t buffer_recive_connect[10]; - DWORD received; - BOOL success = ReadFile(Port_2, buffer_recive_connect, sizeof buffer_recive_connect, - &received, NULL); - if (!success) - { - printf("Failed to read from port"); - return -1; - } - - int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_connect, sizeof buffer_recive_connect, - 0, 0); - if (err < 0){ -// if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ -// uint8_t* buffer_rej[10]; -// hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); -// //UART_send(buffer_rej, sizeof buffer_rej); -// return err; -// } - return err; - } - - if (hdlc.state == READY_STATE){ - flag_connection = true; - } - } - - struct message mess; - mess.numbers[0] = 12133.23; - mess.numbers[1] = 21232.1; - mess.numbers[2] = 100; - mess.len_numbers = 3; - mess.str = "word war"; - mess.len_str = sizeof mess.str; - - uint8_t data[23]; - size_t len_data; - protocol_encode(mess, data, &len_data); - hdlc_send_data(&hdlc, data, sizeof(data)); - uint8_t buffer_for_ex_data[29]; - - hdlc_get_raw_frame(&hdlc, buffer_for_ex_data, sizeof buffer_for_ex_data); - - DWORD written_data; - BOOL success_write_data = WriteFile(Port_1, buffer_for_ex_data, sizeof buffer_for_ex_data, - &written_data, NULL); - - if (!success_write_data){ - DWORD errorCode = GetLastError(); - printf("WriteFile err: %lu.\n", errorCode); - return -1; - } - if (written_data != sizeof buffer_for_ex_data){ - printf("Failed to write all bytes to port"); - return -1; - } - - bool flag_data = false; - while(!flag_data){ - uint8_t buffer_recive_data[29]; - DWORD received_data; - BOOL success = ReadFile(Port_2, buffer_recive_data, sizeof buffer_recive_data, - &received_data, NULL); - if (!success) - { - printf("Failed to read from port"); - return -1; - } - - uint8_t data_recive[23]; - size_t len_data_recive; - int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, - data_recive, &len_data_recive); - if (err < 0){ -// if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ -// uint8_t* buffer_rej[10]; -// hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); -// //UART_send(buffer_rej, sizeof buffer_rej); -// return err; -// } - return err; - } - - struct message resp; - protocol_decode(data_recive, sizeof data_recive, &resp); - printf("1: %f\n", resp.numbers[0]); - printf("2: %f\n", resp.numbers[1]); - printf("3: %f\n", resp.numbers[2]); - printf("str: %s\n", resp.str); - flag_data = true; - } - - CloseHandle(Port_1); - CloseHandle(Port_2); - - return 0; -} \ No newline at end of file diff --git a/hdlc_screen/main_uart.c b/hdlc_screen/main_uart.c deleted file mode 100644 index 8a30f50..0000000 --- a/hdlc_screen/main_uart.c +++ /dev/null @@ -1,110 +0,0 @@ -#include "hdlc/client.h" -#include "UART/uart.h" -#include "stdbool.h" -#include "LCD/lcd.h" -#include "Protocol/protocol.h" - -int main(void) { - struct Client hdlc; - bool flag_connection = false; - - Lcd_inciliation(); - UART_init(); - init_hdlc_client(&hdlc, 200); - - hdlc_connect(&hdlc); - uint8_t buffer[10]; - - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - - UART_send(buffer, sizeof buffer); - - while(!flag_connection){ - uint8_t* buffer_recive[10]; - UART_receive(buffer_recive, sizeof buffer_recive); - - int err = hdlc_timeout_handler(&hdlc, 1); - if (err == ERR_FRAME_TIME_OUT){ - hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); - UART_send(buffer, sizeof buffer); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0); - if (err < 0){ - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - UART_send(buffer_rej, sizeof buffer_rej); - return err; - } - return err; - } - - if (hdlc.state == READY_STATE){ - flag_connection = true; - } - } - - struct message mess; - mess.numbers[0] = 1.23; - mess.numbers[1] = 22.1; - mess.numbers[2] = 100; - mess.len_numbers = 3; - mess.str = "word war in new world io ex"; - mess.len_str = sizeof mess.str; - - uint8_t data[64]; - size_t len_data; - protocol_encode(mess, data, &len_data); - - hdlc_send_data(&hdlc, data, len_data); - uint8_t buffer_data[72]; - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - - UART_send(buffer_data, sizeof buffer_data); - - bool flag_recive = false; - uint8_t data_recive[64]; - size_t len_data_recive; - while (!flag_recive){ - uint8_t* buffer_recive_data[72]; - UART_receive(buffer_recive_data, sizeof buffer_recive_data); - - int err = hdlc_timeout_handler(&hdlc, 1); - if (err == ERR_FRAME_TIME_OUT){ - hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); - UART_send(buffer_data, sizeof buffer_data); - continue; - } - - err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); - if (err < 0){ - if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ - uint8_t* buffer_rej[10]; - hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); - UART_send(buffer_rej, sizeof buffer_rej); - return err; - } - return err; - } - - if (hdlc.state == SEND){ - flag_recive = true; - } - } - - struct message resp; - protocol_decode(data_recive, len_data_recive, &resp); - - struct DisplayData disp; - disp.value1 = resp.numbers[0]; - disp.value2 = resp.numbers[1]; - disp.value3 = resp.numbers[2]; - //disp.topLine = *resp.str; - strncpy(disp.topLine, resp.str, sizeof(disp.topLine) - 1); - - printLcd(&disp); - - return 0; -} \ No newline at end of file diff --git a/i2cmaster.h b/i2cmaster.h new file mode 100644 index 0000000..72efb7c --- /dev/null +++ b/i2cmaster.h @@ -0,0 +1,42 @@ +#ifndef _I2CMASTER_H +#define _I2CMASTER_H + +// ����, ���������� �� ������ ������ �� i2c +#define I2C_READ 1 + +// ����, ���������� �� �������� ������ �� i2c +#define I2C_WRITE 0 + +// ������� ������������ ����� � ������ +#define SCL_CLOCK 100000L + +// ������������� ���������� +void i2c_init(void); + +// �������� ������� ���� �� ���� +void i2c_stop(void); + +// �������� ������� ����� �� ���� +unsigned char i2c_start(unsigned char addr); + +// ��������� �����(����������) +unsigned char i2c_rep_start(unsigned char addr); + +// ����, ���� ������-�� ������, � ����� �������� ������� ����� �� ���� +void i2c_start_wait(unsigned char addr); + + // �������� ������ +unsigned char i2c_write(unsigned char data); + +// ������ ������ � ���������� ������� +unsigned char i2c_readAck(void); + +// ������ ������ � ����� �� ��������� �������� ������ ���� +unsigned char i2c_readNak(void); + +// ������ ������ � ���� +unsigned char i2c_read(unsigned char ack); + +// �������� ����� ������ ������ ������ ����� +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); +#endif diff --git a/hdlc_screen/LCD/lcd.h b/lcd.h similarity index 65% rename from hdlc_screen/LCD/lcd.h rename to lcd.h index f3ca4bc..e44079e 100644 --- a/hdlc_screen/LCD/lcd.h +++ b/lcd.h @@ -8,7 +8,7 @@ struct DisplayData { float value3; }; -void Lcd_inciliation(); -void printLcd(struct DisplayData* displayData); +void init_lcd(); +void print_lcd(struct DisplayData* displayData); #endif \ No newline at end of file diff --git a/hdlc_screen/LCD/lcdpcf8574.c b/lcdpcf8574.cpp similarity index 99% rename from hdlc_screen/LCD/lcdpcf8574.c rename to lcdpcf8574.cpp index 24d09ff..cedea71 100644 --- a/hdlc_screen/LCD/lcdpcf8574.c +++ b/lcdpcf8574.cpp @@ -1,10 +1,9 @@ -#include "lcd_headers.h" +#include "MyLCD.h" // задержеки через асемблер #define lcd_e_delay() __asm__ __volatile__( "rjmp 1f\n 1:" ); #define lcd_e_toggle() toggle_e() - volatile uint8_t dataport = 0; static void toggle_e(void); diff --git a/lcdpcf8574.h b/lcdpcf8574.h new file mode 100644 index 0000000..cff8714 --- /dev/null +++ b/lcdpcf8574.h @@ -0,0 +1,110 @@ +#ifndef LCD_H +#define LCD_H + +#define LCD_PCF8574_INIT 1 //������������� pcf + +#define LCD_PCF8574_DEVICEID 0 //id ���-�� +#define LCD_FUNCTION_DEFAULT LCD_FUNCTION_4BIT_2LINES + +// ��������� ������ �����: ���������/���������� �������� �������, ����������� ����������� ������� ���������/����������� +#define LCD_ENTRY_DEC 0x04 // �������� ������� ���������, ������ ������������ �� ������� +#define LCD_ENTRY_DEC_SHIFT 0x05 // ��������� ������ �������, ����������� ������� �� ������� +#define LCD_ENTRY_INC_ 0x06 // �������� ������� ���������, ���. ����������� ������� � ����������� +#define LCD_ENTRY_INC_SHIFT 0x07 // ��������� �������� �������, ���������� ����������� ����������� ������� + +// ���������/���������� �������, ���������/���������� �������, �������� ������ � ������� ������� +#define LCD_DISP_OFF 0x08 // ������� �������� +#define LCD_DISP_ON 0x0C // ������� ���, ������ ���� +#define LCD_DISP_ON_BLINK 0x0D // ������� ���, ������ ����, ���� �������� ����� +#define LCD_DISP_ON_CURSOR 0x0E // ������� ���, ������ ��� +#define LCD_DISP_ON_CURSOR_BLINK 0x0F // ������� ���, ������ ���, ���� �������� ����� + +// ����������� �������/�������� ������� +#define LCD_MOVE_CURSOR_LEFT 0x10 // ������ ������ +#define LCD_MOVE_CURSOR_RIGHT 0x14 // ������ ������� +#define LCD_MOVE_DISP_LEFT 0x18 // ����� ����� +#define LCD_MOVE_DISP_RIGHT 0x1C // ����� ������ + +// ����� �������: ��������� ����� ������ ���������� � ���������� ����� ����������� +#define LCD_FUNCTION_4BIT_1LINE 0x20 // 4-������ ���������, ���� ������, 5x7 ����� +#define LCD_FUNCTION_4BIT_2LINES 0x28 // 4-������ ���������, ������������, 5x7 ����� +#define LCD_FUNCTION_8BIT_1LINE 0x30 // 8-������ ���������, ���� ������, 5x7 ����� +#define LCD_FUNCTION_8BIT_2LINES 0x38 // 8-������ ���������, ������������, 5x7 ����� + +#define LCD_LINES 2 // ���-�� ����� +#define LCD_DISP_LENGTH 16 // ���-�� �������� � ������ +#define LCD_LINE_LENGTH 0x40 // ���������� ����� ������ ������� +#define LCD_START_LINE1 0x00 // DDRM ����� ��� 1 ������ +#define LCD_START_LINE2 0x40 // DDRM ����� ��� 2 ������ +#define LCD_WRAP_LINES 1 // ������� ������ + + + +#define LCD_DATA0_PIN 4 // ��� ��� ������ +#define LCD_DATA1_PIN 5 // ��� ��� ������ +#define LCD_DATA2_PIN 6 // ��� ��� ������ +#define LCD_DATA3_PIN 7 // ��� ��� ������ +#define LCD_RS_PIN 0 // ��� ����� RS +#define LCD_RW_PIN 1 // ��� ����� RW +#define LCD_E_PIN 2 // ��� ����� ������������ +#define LCD_LED_PIN 3 // ��� ��������� + + +// ������� ����� �������� ������ HD44780U. +#define LCD_CLR 0 // ��������� ������� +#define LCD_HOME 1 // ������� ������ ����� +#define LCD_ENTRY_MODE 2 // ��������� ������ ����� +#define LCD_ENTRY_INC 1 // ��������� +#define LCD_ENTRY_SHIFT 0 // ��� �������� +#define LCD_ON 3 // ��� ������� +#define LCD_ON_DISPLAY 2 // ���� ������� +#define LCD_ON_CURSOR 1 // ���� ������ +#define LCD_ON_BLINK 0 // ������� ������� +#define LCD_MOVE 4 // ������������ ������� +#define LCD_MOVE_DISP 3 // ������������ ������� +#define LCD_MOVE_RIGHT 2 // ������������ ������� ������� +#define LCD_FUNCTION 5 // ��������� ������� +#define LCD_FUNCTION_8BIT 4 // 8 ������ ����� +#define LCD_FUNCTION_2LINES 3 // ��������� ����� +#define LCD_FUNCTION_10DOTS 2 // ������ +#define LCD_CGRAM 6 // ��������� ������ CG RAM +#define LCD_DDRAM 7 // ��������� ������ DD RAM +#define LCD_BUSY 7 // ������� ����� + +// ����������� ����� +#define LCD_MODE_DEFAULT ((1<<LCD_ENTRY_MODE) | (1<<LCD_ENTRY_INC) ) + +// ������������� ������� +void lcd_init(uint8_t dispAttr); + +// ������� ������� +void lcd_clrscr(void); + +// ������ � ������ ��������� +void lcd_home(void); + +// ����������� ������� �� ����������� +void lcd_gotoxy(uint8_t x, uint8_t y); + +// ��� � ���� ��������� +void lcd_led(uint8_t onoff); + +// ����������� ������� � ������� ������� ������� +void lcd_putc(char c); + +// ����� ������ �� ������� +void lcd_puts(const char *s); + +// ����� ������ �� ������ +void lcd_puts_p(const char *progmem_s); + +// ��������� ������� ��� �������� ������ ������� +void lcd_command(uint8_t cmd); + +// �������� ����� �� ������� +void lcd_data(uint8_t data); + +// ������� ��� ��������������� ���������� ��������� ��������� � ������ ��������� +#define lcd_puts_P(__s) lcd_puts_p(PSTR(__s)) + +#endif diff --git a/pcf8574.cpp b/pcf8574.cpp new file mode 100644 index 0000000..b7814d3 --- /dev/null +++ b/pcf8574.cpp @@ -0,0 +1,115 @@ +#include "MyLCD.h" +uint8_t pcf8574_pinstatus[PCF8574_MAXDEVICES]; + +// инициализация pcf +void pcf8574_init() { + #if PCF8574_I2CINIT == 1 + // инитим i2c + i2c_init(); + _delay_us(10); + #endif + uint8_t i = 0; + for(i=0; i<PCF8574_MAXDEVICES; i++) + pcf8574_pinstatus[i] = 0; + +} + +// получаем статус вывода +int8_t pcf8574_getoutput(uint8_t deviceid) { + int8_t data = -1; + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { + data = pcf8574_pinstatus[deviceid]; + } + return data; +} + +// получаем статус пинов вывода +int8_t pcf8574_getoutputpin(uint8_t deviceid, uint8_t pin) { + int8_t data = -1; + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { + data = pcf8574_pinstatus[deviceid]; + data = (data >> pin) & 0b00000001; + } + return data; +} + +// настройка вывода +int8_t pcf8574_setoutput(uint8_t deviceid, uint8_t data) { + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { + pcf8574_pinstatus[deviceid] = data; + i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); + i2c_write(data); + i2c_stop(); + return 0; + } + return -1; +} + +// установить выходные контакты, заменить фактический статус устройства из pinstart для i2c +int8_t pcf8574_setoutputpins(uint8_t deviceid, uint8_t pinstart, uint8_t pinlength, int8_t data) { + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pinstart - pinlength + 1 >= 0 && pinstart - pinlength + 1 >= 0 && pinstart < PCF8574_MAXPINS && pinstart > 0 && pinlength > 0)) { + uint8_t b = 0; + b = pcf8574_pinstatus[deviceid]; + uint8_t mask = ((1 << pinlength) - 1) << (pinstart - pinlength + 1); + data <<= (pinstart - pinlength + 1); + data &= mask; + b &= ~(mask); + b |= data; + pcf8574_pinstatus[deviceid] = b; + //рестартим + i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); + i2c_write(b); + i2c_stop(); + return 0; + } + return -1; +} + +// настройка пинов вывода +int8_t pcf8574_setoutputpin(uint8_t deviceid, uint8_t pin, uint8_t data) { + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { + uint8_t b = 0; + b = pcf8574_pinstatus[deviceid]; + b = (data != 0) ? (b | (1 << pin)) : (b & ~(1 << pin)); + pcf8574_pinstatus[deviceid] = b; + //рестартим + i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_WRITE); + i2c_write(b); + i2c_stop(); + return 0; + } + return -1; +} + +// установка высокого уровня на выходных пинах +int8_t pcf8574_setoutputpinhigh(uint8_t deviceid, uint8_t pin) { + return pcf8574_setoutputpin(deviceid, pin, 1); +} + +// установка низкого уровня на выходных пинах +int8_t pcf8574_setoutputpinlow(uint8_t deviceid, uint8_t pin) { + return pcf8574_setoutputpin(deviceid, pin, 0); +} + +// получение входных данных +int8_t pcf8574_getinput(uint8_t deviceid) { + int8_t data = -1; + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES)) { + i2c_start(((PCF8574_ADDRBASE+deviceid)<<1) | I2C_READ); + data = ~i2c_readNak(); + i2c_stop(); + } + return data; +} + +// получение входного контакта (высокий или низкий) +int8_t pcf8574_getinputpin(uint8_t deviceid, uint8_t pin) { + int8_t data = -1; + if((deviceid >= 0 && deviceid < PCF8574_MAXDEVICES) && (pin >= 0 && pin < PCF8574_MAXPINS)) { + data = pcf8574_getinput(deviceid); + if(data != -1) { + data = (data >> pin) & 0b00000001; + } + } + return data; +} diff --git a/hdlc_screen/LCD/pcf8574.h b/pcf8574.h similarity index 67% rename from hdlc_screen/LCD/pcf8574.h rename to pcf8574.h index 420cc49..74af505 100644 --- a/hdlc_screen/LCD/pcf8574.h +++ b/pcf8574.h @@ -1,12 +1,12 @@ #ifndef PCF8574_H_ #define PCF8574_H_ -#define PCF8574_ADDRBASE (0x27) // ����� ���-�� +#define PCF8574_ADDRBASE (0x27) // ����� ���-�� -#define PCF8574_I2CINIT 1 // ������������� i2c +#define PCF8574_I2CINIT 1 // ������������� i2c -#define PCF8574_MAXDEVICES 1 // ���� ���-�� �������� -#define PCF8574_MAXPINS 8 // ���� ���-�� ����� +#define PCF8574_MAXDEVICES 1 // ���� ���-�� �������� +#define PCF8574_MAXPINS 8 // ���� ���-�� ����� void pcf8574_init(); int8_t pcf8574_getoutput(uint8_t deviceid); diff --git a/hdlc_screen/protocol/protocol.c b/protocol.cpp similarity index 100% rename from hdlc_screen/protocol/protocol.c rename to protocol.cpp diff --git a/hdlc_screen/protocol/protocol.h b/protocol.h similarity index 100% rename from hdlc_screen/protocol/protocol.h rename to protocol.h diff --git a/sketch_feb27a.ino b/sketch_feb27a.ino new file mode 100644 index 0000000..f32c0d5 --- /dev/null +++ b/sketch_feb27a.ino @@ -0,0 +1,109 @@ +#include "client.h" +#include "protocol.h" +#include "uart.h" +#include "MyLCD.h" + +struct Client hdlc; +struct DisplayData wait; +struct DisplayData recive_data; +bool wait_for_connect = false; + +void setup() { + init_lcd(); + init_hdlc_client(&hdlc, 200); + char str[] = "wait for connect... "; + strncpy(wait.topLine, str, sizeof(str)); + wait.value1 = 1.0f; + wait.value2 = 20.0f; + wait.value3 = 300.0f; + UART_init(); +} + +void loop() { + if (!wait_for_connect){ + print_lcd(&wait); + + hdlc_connect(&hdlc); + uint8_t buffer[10]; + + hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); + + UART_send(buffer, sizeof buffer); + + wait.value2 = 21.0f; + + bool recive_connect = false; + + while(!recive_connect){ + print_lcd(&wait); + + uint8_t buffer_recive[10]; + UART_receive(buffer_recive, sizeof buffer_recive); + + int err = hdlc_timeout_handler(&hdlc, 1); + if (err == ERR_FRAME_TIME_OUT){ + hdlc_get_raw_frame(&hdlc, buffer, sizeof buffer); + UART_send(buffer, sizeof buffer); + continue; + } + + err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive, sizeof buffer_recive, 0, 0); + if (err < 0){ + if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ + uint8_t buffer_rej[10]; + hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); + UART_send(buffer_rej, sizeof buffer_rej); + return err; + } + return err; + } + + if (hdlc.state == READY_STATE){ + wait_for_connect = true; + recive_connect = true; + } + } + } else { + bool flag_recive = false; + uint8_t data_recive[64]; + size_t len_data_recive; + + recive_data.value1 = 4.0f; + recive_data.value2 = 50.0f; + recive_data.value3 = 600.0f; + strncpy(recive_data.topLine, "Wait for data", sizeof(recive_data.topLine) - 1); + + while (!flag_recive){ + print_lcd(&recive_data); + + uint8_t buffer_recive_data[72]; + UART_receive(buffer_recive_data, sizeof buffer_recive_data); + + // int err = hdlc_timeout_handler(&hdlc, 1); + // if (err == ERR_FRAME_TIME_OUT){ + // hdlc_get_raw_frame(&hdlc, buffer_data, sizeof buffer_data); + // UART_send(buffer_data, sizeof buffer_data); + // continue; + // } + + int err = hdlc_decode_recived_raw_data(&hdlc, buffer_recive_data, sizeof buffer_recive_data, data_recive, &len_data_recive); + if (err < 0){ + if (err == ERR_INVALID_SEQ_NUMBER_FRAME){ + uint8_t buffer_rej[10]; + hdlc_get_raw_frame(&hdlc, buffer_rej, sizeof buffer_rej); + UART_send(buffer_rej, sizeof buffer_rej); + return err; + } + return err; + } + + struct message resp; + protocol_decode(data_recive, len_data_recive, &resp); + + recive_data.value1 = resp.numbers[0]; + recive_data.value2 = resp.numbers[1]; + recive_data.value3 = resp.numbers[2]; + strncpy(recive_data.topLine, resp.str, sizeof(recive_data.topLine) - 1); + } + } +} \ No newline at end of file diff --git a/hdlc_screen/LCD/twimaster.c b/twimaster.cpp similarity index 99% rename from hdlc_screen/LCD/twimaster.c rename to twimaster.cpp index 6019a42..2fad0d7 100644 --- a/hdlc_screen/LCD/twimaster.c +++ b/twimaster.cpp @@ -1,4 +1,4 @@ -#include "lcd_headers.h" +#include "MyLCD.h" // инициализация интерфейса i2c void i2c_init(void) diff --git a/uart.cpp b/uart.cpp new file mode 100644 index 0000000..258d644 --- /dev/null +++ b/uart.cpp @@ -0,0 +1,63 @@ +#include <avr/io.h> +#include <avr/interrupt.h> +#include <stdint.h> +#include <string.h> +#include "circular_buf.h" +#include "uart.h" + +struct circular_buffer uartRxBuffer; +struct circular_buffer uartTxBuffer; + +void UART_init(void) { + UCSR0B = (1 << RXEN0) | (1 << TXEN0) | (1 << RXCIE0) | (1<<TXCIE0); // прерывание по приему и передаче + UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); + UBRR0H = 0; + UBRR0L = 103; +} + +void UART_send(uint8_t* data, size_t length) { + for (size_t i = 0; i < length; i++) { + if (!buffer_full(&uartTxBuffer)) { + write_buffer(&uartTxBuffer, data[i]); + } else { + break; // если буфер передачи заполнен, то отправка прерывается + } + } + UCSR0B |= (1 << TXCIE0); // включаем прерывание по завершении передачи + //clear_buffer(&uartTxBuffer); +} + +// Получение данных из буфера +int UART_receive(uint8_t* data, size_t length) { + char overflow = 0; // Флаг переполнения, который устанавливается, если превышен размер массива + uint32_t byteCount = 0; // Счетчик байтов, принятых из буфера приема + // Пока буфер приема не пуст и не превышен лимит длины массива, + // функция продолжает читать байты из буфера и сохранять их в массив data. + while (!buffer_empty(&uartRxBuffer) && byteCount < length) { + int reader = read_buffer(&uartRxBuffer); // Прием и запись символа в переменную + data[byteCount] = reader; // Запись в массив с индексом byteCount + byteCount++; + } + // Проверка переполнения + if (byteCount > length) { + overflow = 1; + } + clear_buffer(&uartRxBuffer); + return overflow ? -1 : byteCount; // Возвращает количество успешно принятых байт или -1 в случае переполнения +} + +// прерывание по завершению приема +ISR(USART_RX_vect) { + uint8_t data = UDR0; // читаем из регистра UDR0 + if (!buffer_full(&uartRxBuffer)) { + write_buffer(&uartRxBuffer, data);// записываем символ в буфер приема + } +} + +ISR(USART_TX_vect) { + if (!buffer_empty(&uartTxBuffer)) { + UDR0 = read_buffer(&uartTxBuffer); + } else { + UCSR0B &= ~(1 << TXCIE0); // отключаем прерывание, когда все данные отправлены + } +} \ No newline at end of file diff --git a/uart.h b/uart.h new file mode 100644 index 0000000..99fd06c --- /dev/null +++ b/uart.h @@ -0,0 +1,13 @@ +#ifndef UART_H +#define UART_H +#include <stdint.h> +#include <stddef.h> + +#define F_CPU 16000000 + +void UART_init(void); +void UART_send(uint8_t* data, size_t length); +int UART_receive(uint8_t* data, size_t length); + + +#endif /* UART_H */ \ No newline at end of file