WinAVR

Mar 02, 2006 20 Replies
ðÒÉ×ÅÔ, All!
çÒÁÖÄÁÎÅ, ÐÌÚ, ÐÏÄÓËÁÖÉÔÅ ÐÏ ÓÁÂÖÕ: ËÁË ÓÄÅÌÁÔØ ÔÁË, ÞÔÏ ÂÙ ÎÅÉÓÐÏÌØÚÕÅÍÙÅ (ÎÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÅ × ÉÓÈÏÄÎÉËÅ) ÎÅ ËÏÍÐÉÌÉÌÉÓØ É ÎÅ ×ÌÅÚÁÌÉ × ÇÅÎÅÒÉÒÕÅÍÙÊ hex. á ÔÏ ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÌ ×ÙÚÏ× ÆÕÎËÃÉÉ - Á ÏÎÁ ÔÁË É ÏÓÔÁÌÁÓØ. íÅÒÔ×ÙÊ ËÏÄ, ÔÁË ÓËÁÚÁÔØ.


úÁÒÁÎÅÅ ÂÌÁÇÏÄÁÒÅÎ ÚÁ ÌÀÂÏÊ ÏÔ×ÅÔ!


úù: õ×ÅÒÅÎ, ÞÔÏ ÕÖÅ ÏÂÓÕÖÄÁÌÏÓØ, ÎÏ ÞÅÒÅÚ ÇÕÇÌ ÇÒÕÐ Ñ ÔÁË ÎÉÞÅÇÏ É ÎÅ ÎÁÛÅÌ.
ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... ëÁÖÄÙÊ ÐÉÒÁÔÓËÉÊ ÄÉÓË - ÜÔÏ ÌÉÛÎÉÊ Ç×ÏÚÄØ × ÇÒÏ ËÁÐÉÔÁÌÉÚÍÁ!!!
ðÒÉ×ÅÔ Andrey!

02 Mar 06 20:44, Andrey Samarin ÐÉÓÁÌ All:

AS> çÒÁÖÄÁÎÅ, ÐÌÚ, ÐÏÄÓËÁÖÉÔÅ ÐÏ ÓÁÂÖÕ: ËÁË ÓÄÅÌÁÔØ ÔÁË, ÞÔÏ ÂÙ AS> ÎÅÉÓÐÏÌØÚÕÅÍÙÅ (ÎÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÅ × ÉÓÈÏÄÎÉËÅ) ÎÅ ËÏÍÐÉÌÉÌÉÓØ É ÎÅ AS> ×ÌÅÚÁÌÉ × ÇÅÎÅÒÉÒÕÅÍÙÊ hex.

-funit-at-a-time.

AS> úù: õ×ÅÒÅÎ, ÞÔÏ ÕÖÅ ÏÂÓÕÖÄÁÌÏÓØ,

HÅ ÐÏÍÎÀ ÔÁËÏÇÏ.

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... þÅÍ ×ÅÔÅÒÉÎÁÒÙ ËÏÒÍÑÔ Ó×ÏÉÈ ÓÏÂÁË? âÅÌÙÊ ÆÏÓÆÏÒ. ÷ÁÛÁ ÓÏÂÁËÁ Ó×ÅÔÉÔÓÑ!
ðÒÉ×ÅÔ, Alex!

03 ÍÁÒÔÁ 2006 02:14, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AS>> çÒÁÖÄÁÎÅ, ÐÌÚ, ÐÏÄÓËÁÖÉÔÅ ÐÏ ÓÁÂÖÕ: ËÁË ÓÄÅÌÁÔØ ÔÁË, ÞÔÏ ÂÙ AS>> ÎÅÉÓÐÏÌØÚÕÅÍÙÅ (ÎÏ ÐÒÉÓÕÔÓÔ×ÕÀÝÉÅ × ÉÓÈÏÄÎÉËÅ) ÎÅ ËÏÍÐÉÌÉÌÉÓØ É AS>> ÎÅ AS>> ×ÌÅÚÁÌÉ × ÇÅÎÅÒÉÒÕÅÍÙÊ hex. AM> -funit-at-a-time. óÐÁÓÉÂÏ, ÎÏ ÎÅ ÐÏÌÕÞÉÌÏÓØ. :(

÷ ÏÂÝÅÍ, ×ÏÔ ×Ù×ÏÄ objdump:

=== Cut ===

Test2.o: file format elf32-avr

Disassembly of section .text:

00000000 <funkt>: //#include"timer.h"

int funkt(int k) {

0: cf 93 push r28 2: df 93 push r29 4: cd b7 in r28, 0x3d ; 61 6: de b7 in r29, 0x3e ; 62 8: 22 97 sbiw r28, 0x02 ; 2 a: 0f b6 in r0, 0x3f ; 63 c: f8 94 cli e: de bf out 0x3e, r29 ; 62 10: 0f be out 0x3f, r0 ; 63 12: cd bf out 0x3d, r28 ; 61 14: 9a 83 std Y+2, r25 ; 0x02 16: 89 83 std Y+1, r24 ; 0x01 return k*k; 18: 29 81 ldd r18, Y+1 ; 0x01 1a: 3a 81 ldd r19, Y+2 ; 0x02 1c: 89 81 ldd r24, Y+1 ; 0x01 1e: 9a 81 ldd r25, Y+2 ; 0x02 20: 28 9f mul r18, r24 22: a0 01 movw r20, r0 24: 29 9f mul r18, r25 26: 50 0d add r21, r0 28: 38 9f mul r19, r24 2a: 50 0d add r21, r0 2c: 11 24 eor r1, r1 2e: ca 01 movw r24, r20 30: 22 96 adiw r28, 0x02 ; 2 32: 0f b6 in r0, 0x3f ; 63 34: f8 94 cli 36: de bf out 0x3e, r29 ; 62 38: 0f be out 0x3f, r0 ; 63 3a: cd bf out 0x3d, r28 ; 61 3c: df 91 pop r29 3e: cf 91 pop r28 40: 08 95 ret

00000042 <main>:

}

int main (void) {

42: c0 e0 ldi r28, 0x00 ; 0 44: d0 e0 ldi r29, 0x00 ; 0 46: de bf out 0x3e, r29 ; 62 48: cd bf out 0x3d, r28 ; 61 // lcdInit(); int i,j; i=1; 4a: 81 e0 ldi r24, 0x01 ; 1 4c: 90 e0 ldi r25, 0x00 ; 0 4e: 9a 83 std Y+2, r25 ; 0x02 50: 89 83 std Y+1, r24 ; 0x01 j=++i; 52: 89 81 ldd r24, Y+1 ; 0x01 54: 9a 81 ldd r25, Y+2 ; 0x02 56: 01 96 adiw r24, 0x01 ; 1 58: 9a 83 std Y+2, r25 ; 0x02 5a: 89 83 std Y+1, r24 ; 0x01 5c: 9c 83 std Y+4, r25 ; 0x04 5e: 8b 83 std Y+3, r24 ; 0x03 // j=funkt(i);

DDRB = 0xFF;

60: 8f ef ldi r24, 0xFF ; 255 62: 80 93 37 00 sts 0x0037, r24 PORTB |= 1<<2; 66: 80 91 38 00 lds r24, 0x0038 6a: 84 60 ori r24, 0x04 ; 4 6c: 80 93 38 00 sts 0x0038, r24 PORTB = (char)j; 70: 8b 81 ldd r24, Y+3 ; 0x03 72: 80 93 38 00 sts 0x0038, r24

return 1;

76: 81 e0 ldi r24, 0x01 ; 1 78: 90 e0 ldi r25, 0x00 ; 0 7a: 00 c0 rjmp .+0 ; 0x7c <Letext>

=== Cut === ëÁË ×ÉÄÎÏ ÉÚ ÄÁÍÐÁ, funkt ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ. HÏ × ÏÂÖÅËÔÎÉËÅ ţ ËÏÄ ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × target, ÒÁÚÄÕ×ÁÑ ËÏÄ. ëÓÔÁÔÉ, ÚÄÅÓØ ÐÏËÁÚÁÎ ÄÁÍÐ ÄÌÑ ÕÒÏ×ÎÑ ÏÐÔÉÍÉÚÁÃÉÉ 0, ÎÏ ÐÅÒÅÈÏÄ Ë ÌÀÂÏÍÕ ÄÒÕÇÏÍÕ ÎÉÞÅÇÏ ÎÅ ÄÁÅÔ (ÐÏ ÄÏËÅ, ÏÐÃÉÑ -funit-at-a-time ÐÒÉÓÕÔÓÔ×ÕÅÔ ÐÒÉ ÕÒÏ×ÎÅ ÏÐÔÉÍÉÚÁÃÉÉ -O2). éÓÞÅÚÁÀÔ prologue É epilogue, ÎÏ ÓÁÍ ËÏÄ ÎÅÉÓÐÏÌØÚÕÅÍÏÊ ÆÕÎËÃÉÉ - ÖÉ×ÅÅ ×ÓÅÈ ÖÉ×ÙÈ. óÏÂÓÔ×ÅÎÎÏ, ÜÔÕ ÈÒÅÎØ Ñ ÚÁÍÅÔÉÌ ÐÏÓÌÅ ÐÏÄËÌÀÞÅÎÉÑ Ë ÔÅÓÔÏ×ÏÍÕ ÐÒÏÅËÔÕ ÍÏÄÕÌÑ ÄÌÑ ÒÁÂÏÔÙ Ó öëé ÉÚ AVRlib. ÷ ÒÅÚÕÌØÔÁÔÅ, ÎÁ ×ÙÈÏÄÅ ËÏÄ ÐÏÌÕÞÉÌÓÑ ÎÅÎÏÒÍÁÌØÎÏ ÂÏÌØÛÉÍ. äÁÌØÎÅÊÛÅÅ ÒÁÚÂÉÒÁÔÅÌØÓÔ×Ï ÐÏËÁÚÁÌÏ, ÞÔÏ × ÎÅÍ ÓÉÄÅÌÉ ×ÓÅ ÆÕÎËÃÉÉ ÉÚ lcd.c É timer.c. %)

ôÅÐÅÒØ, ÄÌÑ ÑÓÎÏÓÔÉ × ÒÅÖÉÍÁÈ ËÏÍÐÉÌÑÃÉÉ, ×Ù×ÏÄ GCC:

=== Cut === C:\WinAVR\MyProgram\Test2>make

-------- begin -------- avr-gcc (GCC) 3.4.5 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: Test2.c avr-gcc -c -mmcu=atmega8 -I. -gstabs -DF_CPU=8000000UL -O0 -funsigned-char

-fun signed-bitfields -fpack-struct -fshort-enums -funit-at-a-time -v -Wall

-Wstrict- prototypes -Wa,-adhlns=Test2.lst -IC:\winavr\AVRlib -std=gnu99 -MD -MP -MF .dep/ Test2.o.d Test2.c -o Test2.o Reading specs from C:/WinAVR/lib/gcc/avr/3.4.5/specs Configured with: ../gcc-3.4.5/configure --prefix=/c/WinAVR --target=avr

--enable

-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR Thread model: single gcc version 3.4.5 C:/WinAVR/libexec/gcc/avr/3.4.5/cc1.exe -quiet -v -I. -IC:\winavr\AVRlib

-ipref ix C:\WINAVR\BIN/../lib/gcc/avr/3.4.5/ -MD Test2.d -MF .dep/Test2.o.d -MP -MQ Te st2.o -DF_CPU=8000000UL Test2.c -quiet -dumpbase Test2.c -mmcu=atmega8

-auxbase- strip Test2.o -gstabs -O0 -Wall -Wstrict-prototypes -std=gnu99 -version

-funsign ed-char -funsigned-bitfields -fpack-struct -fshort-enums -funit-at-a-time -o C:\ TEMP/ccF6Tigb.s ignoring nonexistent directory "C:/WinAVR/avr/sys-include" #include "..." search starts here: #include <...> search starts here: . C:\winavr\AVRlib C:\WINAVR\BIN/../lib/gcc/avr/3.4.5/include C:/WinAVR/lib/gcc/avr/3.4.5/include C:/WinAVR/avr/include End of search list. GNU C version 3.4.5 (avr) compiled by GNU C version 3.4.2 (mingw-special). GGC heuristics: --param ggc-min-expand=38 --param ggc-min-heapsize=16307 C:/WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/bin/as.exe

--traditional-for mat -mmcu=atmega8 -adhlns=Test2.lst -o Test2.o C:\TEMP/ccF6Tigb.s

Linking: Test2.elf avr-gcc -mmcu=atmega8 -I. -gstabs -DF_CPU=8000000UL -O0 -funsigned-char

-funsig ned-bitfields -fpack-struct -fshort-enums -funit-at-a-time -v -Wall

-Wstrict-pro totypes -Wa,-adhlns=Test2.o -IC:\winavr\AVRlib -std=gnu99 -MD -MP -MF .dep/Test2 .elf.d Test2.o --output Test2.elf -Wl,-Map=Test2.map,--cref -lm Reading specs from C:/WinAVR/lib/gcc/avr/3.4.5/specs Configured with: ../gcc-3.4.5/configure --prefix=/c/WinAVR --target=avr

--enable

-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR Thread model: single gcc version 3.4.5 C:/WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/bin/ld.exe -m avr4 -o Test2. elf C:/WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/lib/avr4/crtm8.o

-LC:/Win AVR/lib/gcc/avr/3.4.5/avr4 -LC:/WinAVR/lib/gcc/avr/3.4.5 -LC:/WinAVR/lib/gcc

-Lc :/WinAVR/lib/gcc/avr/3.4.5/avr4 -Lc:/WinAVR/lib/gcc/avr/3.4.5

-LC:/WINAVR/BIN/.. /lib/gcc/avr/3.4.5/../../../../avr/lib/avr4

-LC:/WINAVR/BIN/../lib/gcc/avr/3.4.5 /../../../../avr/lib -Lc:/WinAVR/lib/gcc/avr/3.4.5/../../../../avr/lib/avr4

-Lc: /WinAVR/lib/gcc/avr/3.4.5/../../../../avr/lib Test2.o -Map=Test2.map --cref -lm

-lgcc -lc -lgcc

Creating load file for Flash: Test2.hex avr-objcopy -O ihex -R .eeprom Test2.elf Test2.hex

Creating load file for EEPROM: Test2.eep avr-objcopy -j .eeprom --set-section-flags .eeprom=alloc,load \

--change-section-lma .eeprom=0 -O ihex Test2.elf Test2.eep

Creating Extended Listing: Test2.lss avr-objdump -h -S Test2.elf > Test2.lss

Creating Symbol Table: Test2.sym avr-nm -n Test2.elf > Test2.sym

Size after: AVR Memory Usage

---------------- Device: atmega8

Program: 218 bytes (2.7% Full) (.text + .data + .bootloader)

Data: 0 bytes (0.0% Full) (.data + .bss + .noinit)

-------- end --------

=== Cut === ë ÓÏÖÁÌÅÎÉÀ, ËÏÐÉÒÏ×ÁÌ Ó ËÏÎÓÏÌÉ, ÐÏÜÔÏÍÕ ×Ù×ÏÄ ÎÅÍÎÏÇÏ ÐÏËÏÒÅÖÉÌÓÑ (ÐÏÑ×ÉÌÉÓØ ÐÅÒÅ×ÏÄÙ ÓÔÒÏËÉ, ÔÁÍ ÇÄÅ ÉÈ ÂÙÔØ ÎÅ ÄÏÌÖÎÏ).

AS>> úù: õ×ÅÒÅÎ, ÞÔÏ ÕÖÅ ÏÂÓÕÖÄÁÌÏÓØ, AM> HÅ ÐÏÍÎÀ ÔÁËÏÇÏ. HÅÕÖÅÌÉ ÎÉËÔÏ ÎÅ ÓÔÁÌËÉ×ÁÌÓÑ Ó ÔÁËÉÍÉ ÐÒÏÂÌÅÍÁÍÉ? éÌÉ ×ÓÅ ÒÅÛÁÌÉ ÉÈ "ÐÏ ÔÉÈÏÍÕ"?

åÝÅ ÒÁÚ ÓÐÁÓÉÂÏ ÚÁ ÏÔ×ÅÔ. ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... õÓÌÙÛÁ× ÌÁÊ ÄÅÍÏÎÁ, ÞÁÓÏ×ÏÊ ÄÕÂÌÉÒÕÅÔ ÅÇÏ ÇÏÌÏÓÏÍ.
ðÒÉ×ÅÔ, Alex!

03 ÍÁÒÔÁ 2006 17:48, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AM>>> -funit-at-a-time. AS>> óÐÁÓÉÂÏ, ÎÏ ÎÅ ÐÏÌÕÞÉÌÏÓØ. :( AM> äÙË! :) õ-ÕÇÕ... :(

AS>> ÷ ÏÂÝÅÍ, ×ÏÔ ×Ù×ÏÄ objdump: AS>> === Cut === AS>> int funkt(int k) AS>> { AS>> return k*k; AS>> } AS>> === Cut === AS>> ëÁË ×ÉÄÎÏ ÉÚ ÄÁÍÐÁ, funkt ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ. HÏ × ÏÂÖÅËÔÎÉËÅ AS>> ţ ËÏÄ AS>> ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × target, AS>> ÒÁÚÄÕ×ÁÑ ËÏÄ. AM> HÅ ×ÉÖÕ ÓÐÅÃÉÆÉËÁÔÏÒÁ static × ÏÐÒÅÄÅÌÅÎÉÉ funct(). ñ ÐÒÁ×ÉÌØÎÏ AM> ÐÏÎÑÌ, ÞÔÏ ÏÎÁ Õ ÔÅÂÑ ÎÅÓÔÁÔÉÞÅÓËÁÑ? åÓÌÉ ÄÁ, ÔÏ ÔÙ ÈÏÞÅÛØ AM> ÎÅ×ÏÚÍÏÖÎÏÇÏ. HÁ ËÁËÏÍ ÏÓÎÏ×ÁÎÉÉ ËÏÍÐÉÌÑÔÏÒ ÍÏÖÅÔ ÎÅ ÓÇÅÎÅÒÉÔØ ËÏÄ ÄÌÑ AM> ÎÅÓÔÁÔÉÞÅÓËÏÊ ÆÕÎËÃÉÉ, ÅÓÌÉ ÏÎÁ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØÓÑ ÉÚ ÄÒÕÇÉÈ ÍÏÄÕÌÅÊ? AM> éÎÁÞÅ ÂÙ ËÏÍÐÉÌÑÔÏÒ ×ÏÏÂÝÅ ÎÅ ÇÅÎÅÒÉÌ ËÏÄ ÄÌÑ ÍÏÄÕÌÅÊ, ÓÏÄÅÒÖÁÝÉÈ AM> ÔÏÌØËÏ ÏÐÒÅÄÅÌÅÎÉÅ ÆÕÎËÃÉÉ. ðÏÓÙÐÁÀ ÇÏÌÏ×Õ ÐÅÐÌÏÍ, ÜÔÏÇÏ ÎÅ ÕÞÅÌ. óÐÁÓÉÂÏ ÚÁ ÎÁÔÙÒËÕ.

AS>> ëÓÔÁÔÉ, ÚÄÅÓØ ÐÏËÁÚÁÎ ÄÁÍÐ ÄÌÑ ÕÒÏ×ÎÑ ÏÐÔÉÍÉÚÁÃÉÉ 0, ÎÏ AS>> ÐÅÒÅÈÏÄ Ë AS>> ÌÀÂÏÍÕ ÄÒÕÇÏÍÕ ÎÉÞÅÇÏ ÎÅ ÄÁÅÔ (ÐÏ ÄÏËÅ, ÏÐÃÉÑ -funit-at-a-time AS>> ÐÒÉÓÕÔÓÔ×ÕÅÔ ÐÒÉ ÕÒÏ×ÎÅ ÏÐÔÉÍÉÚÁÃÉÉ -O2). AM> ÷ÓÅ ÐÒÁ×ÉÌØÎÏ. -O2 É -Os ×ËÌÀÞÁÀÔ × ÓÅÂÑ -funit-at-a-time. ôÏ AM> ÅÓÔØ ÅÓÌÉ ÕËÁÚÁÎÏ -O2, -funit-at-a-time ÍÏÖÎÏ ÎÅ ÕËÁÚÙ×ÁÔØ. üÔÏ Ñ ÔÁË, ÕÔÏÞÎÑÌ ÎÁ ×ÓÑËÉÊ ÓÌÕÞÁÊ.

AS>> ôÅÐÅÒØ, ÄÌÑ ÑÓÎÏÓÔÉ × ÒÅÖÉÍÁÈ ËÏÍÐÉÌÑÃÉÉ, ×Ù×ÏÄ GCC:

AS>> HÅÕÖÅÌÉ ÎÉËÔÏ ÎÅ ÓÔÁÌËÉ×ÁÌÓÑ Ó ÔÁËÉÍÉ ÐÒÏÂÌÅÍÁÍÉ? éÌÉ ×ÓÅ AS>> ÒÅÛÁÌÉ AS>> ÉÈ "ÐÏ ÔÉÈÏÍÕ"? AM> HÅÔ ÎÉËÁËÏÊ ÐÒÏÂÌÅÍÙ. HÅÉÓÐÏÌØÚÕÅÍÙÅ ÓÔÁÔÉÞÅÓËÉÅ ÆÕÎËÃÉÉ AM> ÏÐÔÉÍÉÚÁÔÏÒ ÕÄÁÌÑÅÔ. äÌÑ ÎÅÓÔÁÔÉÞÅÓËÉÈ ÆÕÎËÃÉÊ ËÏÄ ÇÅÎÅÒÉÔÓÑ ×ÓÅÇÄÁ, AM> É ÜÔÏ ÐÒÁ×ÉÌØÎÏ. èÏÒÏÛÏ, ÓÐÁÓÉÂÏ. á ËÁË ÖÅ ÔÏÇÄÁ ËÏÒÒÅËÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ AVRLib, ÞÔÏ ÂÙ ÌÉÛÎÅÅ × hex ÎÅ ÌÅÚÌÏ? íÏÖÎÏ ÌÉ ÅÇÏ ×ÏÏÂÝÅ ÉÓÐÏÌØÚÏ×ÁÔØ × ËÁÞÅÓÔ×Å ÂÉÂÌÉÏÔÅËÉ, ÉÌÉ ÔÏÌØËÏ copy-paste? óÏÂÓÔ×ÅÎÎÏ, ×ÅÓØ ÓÙÒ-ÂÏÒ ÉÍÅÎÎÏ ÉÚ ÚÁ ÜÔÏÊ ÓÁÍÏÊ AVRLib.

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... HÁÛÅ ÄÅÌÏ ÐpÁ×ÏÅ, ÍÙ ÐÏÅÄÉÍ. ÷pÁÇ ÂyÄÅÔ pÁÓÐÉÔ!

Hi Andrey!

03 Mar 06 13:19, Andrey Samarin wrote to Alex Mogilnikov:

AS> ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × target, AS> ÒÁÚÄÕ×ÁÑ ËÏÄ. á ÐÏÞÅÍÕ ËÏÍÐÉÌÑÔÏÒ ÄÏÌÖÅÎ ÓÞÉÔÁÔØ ÞÔÏ ÜÔÁ ÆÕÎËÃÉÑ ÎÅ ÂÕÄÅÔ ×ÙÚ×ÁÎÁ ÉÚ ÄÒÕÇÏÇÏ ÏÂßÅËÔÎÉËÁ ÐÒÉ ÏËÏÎÞÁÔÅÌØÎÏÊ ÌÉÎËÏ×ËÅ? ÐÏÐÒÏÂÕÊ, ÎÁÐÒÉÍÅÒ, ÏÂßÑ×ÉÔØ ÅÅ static, ×ÏÚÍÏÖÎÏ ËÏÍÐÉÌÑÔÏÒ ÕÞÔÅÔ ÞÔÏ ÜÔÏÔ ËÕÓÏË ËÏÄÁ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØÓÑ ÔÏÌØËÏ ÚÄÅÓØ, ÎÏ ÎÅ ×ÙÚÙ×ÁÅÔÓÑ É ÐÏÜÔÏÍÕ ÅÇÏ ÍÏÖÎÏ ÐÒÏÐÕÓÔÉÔØ.

AM>> HÅ ÐÏÍÎÀ ÔÁËÏÇÏ. AS> HÅÕÖÅÌÉ ÎÉËÔÏ ÎÅ ÓÔÁÌËÉ×ÁÌÓÑ Ó ÔÁËÉÍÉ ÐÒÏÂÌÅÍÁÍÉ? éÌÉ ×ÓÅ ÒÅÛÁÌÉ AS> ÉÈ "ÐÏ ÔÉÈÏÍÕ"?

Ñ ×ÏÏÂÝÅ ÔÁËÉÅ "ÐÒÏÂÌÅÍÙ" ÒÅÛÁÀ ×ÙÎÏÓÏÍ ÆÕÎËÃÉÊ × ÏÔÄÅÌØÎÙÅ ÆÁÊÌÙ, ËÏÍÐÉÌÉÒÏ×ÁÎÉÅÍ × ÏÔÄÅÌØÎÙÅ ÏÂßÅËÔÎÉËÉ É ÓÏÂÉÒÁÎÉÅÍ × ÏÄÎÕ ÌÉÂÕ, ÉÚ ËÏÔÏÒÏÊ ÏÎÉ ÌÉÎËÅÒÏÍ ÐÏ ÍÅÒÅ ÎÁÄÏÂÎÏÓÔÉ ÂÅÒÕÔÓÑ. ìÉÂÏ ÕËÁÚÁÎÉÅÍ static, ÞÔÏ ÂÙ ËÏÍÐÉÌÑÔÏÒ ÎÅ ÄÅËÌÁÌÉÒÏ×ÁÌ ÉÈ ÄÏÓÔÕÐÎÏÓÔØ ×ÎÅ ÍÏÄÕÌÑ.

Slav.

ðÒÉ×ÅÔ Andrey!

03 Mar 06 13:19, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AM>> -funit-at-a-time. AS> óÐÁÓÉÂÏ, ÎÏ ÎÅ ÐÏÌÕÞÉÌÏÓØ. :(

äÙË! :)

AS> ÷ ÏÂÝÅÍ, ×ÏÔ ×Ù×ÏÄ objdump: AS> === Cut === AS> int funkt(int k) AS> { AS> return k*k; AS> } AS> === Cut === AS> ëÁË ×ÉÄÎÏ ÉÚ ÄÁÍÐÁ, funkt ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ. HÏ × ÏÂÖÅËÔÎÉËÅ ţ ËÏÄ AS> ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × target, AS> ÒÁÚÄÕ×ÁÑ ËÏÄ.

HÅ ×ÉÖÕ ÓÐÅÃÉÆÉËÁÔÏÒÁ static × ÏÐÒÅÄÅÌÅÎÉÉ funct(). ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ ÏÎÁ Õ ÔÅÂÑ ÎÅÓÔÁÔÉÞÅÓËÁÑ? åÓÌÉ ÄÁ, ÔÏ ÔÙ ÈÏÞÅÛØ ÎÅ×ÏÚÍÏÖÎÏÇÏ. HÁ ËÁËÏÍ ÏÓÎÏ×ÁÎÉÉ ËÏÍÐÉÌÑÔÏÒ ÍÏÖÅÔ ÎÅ ÓÇÅÎÅÒÉÔØ ËÏÄ ÄÌÑ ÎÅÓÔÁÔÉÞÅÓËÏÊ ÆÕÎËÃÉÉ, ÅÓÌÉ ÏÎÁ ÍÏÖÅÔ ×ÙÚÙ×ÁÔØÓÑ ÉÚ ÄÒÕÇÉÈ ÍÏÄÕÌÅÊ? éÎÁÞÅ ÂÙ ËÏÍÐÉÌÑÔÏÒ ×ÏÏÂÝÅ ÎÅ ÇÅÎÅÒÉÌ ËÏÄ ÄÌÑ ÍÏÄÕÌÅÊ, ÓÏÄÅÒÖÁÝÉÈ ÔÏÌØËÏ ÏÐÒÅÄÅÌÅÎÉÅ ÆÕÎËÃÉÉ.

AS> ëÓÔÁÔÉ, ÚÄÅÓØ ÐÏËÁÚÁÎ ÄÁÍÐ ÄÌÑ ÕÒÏ×ÎÑ ÏÐÔÉÍÉÚÁÃÉÉ 0, ÎÏ ÐÅÒÅÈÏÄ Ë AS> ÌÀÂÏÍÕ ÄÒÕÇÏÍÕ ÎÉÞÅÇÏ ÎÅ ÄÁÅÔ (ÐÏ ÄÏËÅ, ÏÐÃÉÑ -funit-at-a-time AS> ÐÒÉÓÕÔÓÔ×ÕÅÔ ÐÒÉ ÕÒÏ×ÎÅ ÏÐÔÉÍÉÚÁÃÉÉ -O2).

÷ÓÅ ÐÒÁ×ÉÌØÎÏ. -O2 É -Os ×ËÌÀÞÁÀÔ × ÓÅÂÑ -funit-at-a-time. ôÏ ÅÓÔØ ÅÓÌÉ ÕËÁÚÁÎÏ -O2, -funit-at-a-time ÍÏÖÎÏ ÎÅ ÕËÁÚÙ×ÁÔØ.

AS> ôÅÐÅÒØ, ÄÌÑ ÑÓÎÏÓÔÉ × ÒÅÖÉÍÁÈ ËÏÍÐÉÌÑÃÉÉ, ×Ù×ÏÄ GCC:

AS> HÅÕÖÅÌÉ ÎÉËÔÏ ÎÅ ÓÔÁÌËÉ×ÁÌÓÑ Ó ÔÁËÉÍÉ ÐÒÏÂÌÅÍÁÍÉ? éÌÉ ×ÓÅ ÒÅÛÁÌÉ AS> ÉÈ "ÐÏ ÔÉÈÏÍÕ"?

HÅÔ ÎÉËÁËÏÊ ÐÒÏÂÌÅÍÙ. HÅÉÓÐÏÌØÚÕÅÍÙÅ ÓÔÁÔÉÞÅÓËÉÅ ÆÕÎËÃÉÉ ÏÐÔÉÍÉÚÁÔÏÒ ÕÄÁÌÑÅÔ. äÌÑ ÎÅÓÔÁÔÉÞÅÓËÉÈ ÆÕÎËÃÉÊ ËÏÄ ÇÅÎÅÒÉÔÓÑ ×ÓÅÇÄÁ, É ÜÔÏ ÐÒÁ×ÉÌØÎÏ.

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÏÂÁËÁ - ×ÄÒÕÇ ÞÅÌÏ×ÅËÁ...
ðÒÉ×ÅÔ, Alex!

03 ÍÁÒÔÁ 2006 20:10, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AS>> èÏÒÏÛÏ, ÓÐÁÓÉÂÏ. á ËÁË ÖÅ ÔÏÇÄÁ ËÏÒÒÅËÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ AS>> AVRLib, AS>> ÞÔÏÂÙ ÌÉÛÎÅÅ × hex ÎÅ ÌÅÚÌÏ? íÏÖÎÏ ÌÉ ÅÇÏ ×ÏÏÂÝÅ ÉÓÐÏÌØÚÏ×ÁÔØ × AS>> ËÁÞÅÓÔ×Å ÂÉÂÌÉÏÔÅËÉ, ÉÌÉ ÔÏÌØËÏ copy-paste? AS>> óÏÂÓÔ×ÅÎÎÏ, ×ÅÓØ ÓÙÒ-ÂÏÒ ÉÍÅÎÎÏ ÉÚ ÚÁ ÜÔÏÊ ÓÁÍÏÊ AVRLib.

AM> ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ AVRlib - ÜÔÏ ËÁËÁÑ-ÔÏ ÂÉÂÌÉÏÔÅËÁ? óÏ×ÅÒÛÅÎÎÏ ×ÅÒÎÏ,

formatting link
.

AM> åÓÌÉ ÄÁ, AM> ÔÏ ×ÓÅ É ÄÏÌÖÎÏ ÒÁÂÏÔÁÔØ ÔÁË, ËÁË ÔÙ ÈÏÞÅÛØ. ìÉÎËÅÒ × ÐÒÏÃÅÓÓÅ AM> ÌÉÎËÏ×ËÉ ÚÁÇÒÕÖÁÅÔ ÍÏÄÕÌØ ÉÚ ÂÉÂÌÉÏÔÅËÉ ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÜÔÏÔ AM> ÍÏÄÕÌØ ÓÏÄÅÒÖÉÔ ËÁËÉÅ-ÌÉÂÏ ÓÉÍ×ÏÌÙ, ÎÁ ËÏÔÏÒÙÅ ÓÓÙÌÁÀÔÓÑ ÕÖÅ AM> ÚÁÇÒÕÖÅÎÎÙÅ ÍÏÄÕÌÉ. âÉÂÌÉÏÔÅÞÎÙÅ ÍÏÄÕÌÉ, ÎÁ ËÏÔÏÒÙÅ ÎÉËÔÏ ÎÅ AM> ÓÓÙÌÁÅÔÓÑ, ÌÉÎËÅÒ ÇÒÕÚÉÔØ ÎÅ ÂÕÄÅÔ. ëÔÏ (ËÁËÏÊ ÍÏÄÕÌØ) ÐÏÔÒÅÂÏ×ÁÌ AM> ÚÁÇÒÕÚËÉ ÂÉÂÌÉÏÔÅÞÎÏÇÏ ÍÏÄÕÌÑ, ÍÏÖÎÏ Õ×ÉÄÅÔØ × map ÆÁÊÌÅ (ÅÓÌÉ ÏÎ Õ AM> ÔÅÂÑ ÎÅ ÓÏÚÄÁÅÔÓÑ, ÏÂÑÚÁÔÅÌØÎÏ ÐÏÐÒÏÓÉ ÌÉÎËÅÒ ÜÔÏ ÄÅÌÁÔØ, ÔÁÍ ÍÎÏÇÏ AM> ×ÁÖÎÏÊ ÉÎÆÏÒÍÁÃÉÉ). ÷ map ÆÁÊÌÅ ÐÒÑÍÏ × ÅÇÏ ÎÁÞÁÌÅ ÄÏÌÖÎÏ ÂÙÔØ AM> ÐÒÉÍÅÒÎÏ ×ÏÔ ÔÁËÏÅ:

AM> ========================================== AM> Archive member included because of file (symbol)

AM> /usr/local/lib/gcc/arm-elf/3.4.5/../../../../arm-elf/lib/libc.a(memset AM> .o) AM> crt0.o (memset) AM> ==========================================

AM> üÔÏ ÚÎÁÞÉÔ, ÞÔÏ ÌÉÎËÅÒ ÚÁÇÒÕÚÉÌ ÍÏÄÕÌØ memset.o ÉÚ ÂÉÂÌÉÏÔÅËÉ AM> libc.a ÉÚ-ÚÁ ÔÏÇÏ ÞÔÏ ÍÏÄÕÌØ crt0.o ÚÁÈÏÔÅÌ ÓÉÍ×ÏÌ memset. ôÁËÉÍ AM> ÏÂÒÁÚÏÍ ÔÙ ÓÍÏÖÅÛØ Õ×ÉÄÅÔØ, ËÔÏ É ÞÔÏ ÚÁÈÏÔÅÌ ÉÚ ÍÏÄÕÌÑ timer.o É ÉÚ AM> ÍÏÄÕÌÑ lcd.o É, ÎÁÐÒÉÍÅÒ, ÏÔÏÒ×ÁÔØ ÅÍÕ ÜÔÏ ÖÅÌÁÎÉÅ.

AM> íÏÄÕÌØ, AFAIK, - ÍÉÎÉÍÁÌØÎÁÑ ÅÄÉÎÉÃÁ, ÚÁÇÒÕÖÁÅÍÁÑ ÌÉÎËÅÒÏÍ, AM> ÐÏÜÔÏÍÕ ÐÒÉ ÓÏÚÄÁÎÉÉ ÂÉÂÌÉÏÔÅËÉ ÎÅ ÓÔÏÉÔ ÐÏÍÅÝÁÔØ × ÏÄÉÎ ÍÏÄÕÌØ ÎÅ AM> ÉÍÅÀÝÉÅ ×ÎÕÔÒÅÎÎÅÊ Ó×ÑÚÉ ÏÂßÅËÔÙ. åÓÌÉ ÐÒÉÌÉÎËÏ×ÁÎÎÙÊ ÂÉÂÌÉÏÔÅÞÎÙÊ AM> timer.o ÓÏÄÅÒÖÉÔ ÐÏÓÔÏÒÏÎÎÉÊ ÎÉËÏÍÕ ÎÅ ÎÕÖÎÙÊ ËÏÄ - ÜÔÏ ×ÏÐÒÏÓ Ë AM> Á×ÔÏÒÕ ÂÉÂÌÉÏÔÅËÉ, ÐÏÞÅÍÕ ÏÎ ÎÅ ÒÁÚÂÉÌ ÅÇÏ ÎÁ ÎÅÓËÏÌØËÏ ÍÏÄÕÌÅÊ. AM> ðÏ-ÍÏÅÍÕ ÔÁË. ïÞÅÎØ ÂÌÁÇÏÄÁÒÅÎ ÚÁ ÐÏÄÒÏÂÎÙÅ ÒÁÚØÑÓÎÅÎÉÑ. HÏ ×ÏÚÎÉË ÅÝÅ ÏÄÉÎ ×ÏÐÒÏÓ: × ÜÔÏÊ ÂÉÂÌÉÏÔÅËÅ ÎÅÔ ÚÁÒÁÎÅÅ ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÙÈ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×. ôÁÍ ÔÏÌØËÏ *.c É *.h. ëÁË ÉÈ ÐÏÂÉÔØ ÎÁ ÍÏÄÕÌÉ? (õÒÌÙ É ÓÓÙÌËÉ ÎÁ ÄÏËÕÍÅÎÔÁÃÉÀ ÒÅÛÉÔÅÌØÎÏ ÐÒÉ×ÅÔÓÔ×ÕÀÔÓÑ.) é ×ÏÏÂÝÅ, ËÁË ÉÈ _ÉÄÅÏÌÏÇÉÞÅÓËÉ_ :) ÐÒÁ×ÉÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ?

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... ëÁÖÄÙÊ ÐÉÒÁÔÓËÉÊ ÄÉÓË - ÜÔÏ ÌÉÛÎÉÊ Ç×ÏÚÄØ × ÇÒÏ ËÁÐÉÔÁÌÉÚÍÁ!!!
ðÒÉ×ÅÔ Andrey!

03 Mar 06 15:41, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AS> èÏÒÏÛÏ, ÓÐÁÓÉÂÏ. á ËÁË ÖÅ ÔÏÇÄÁ ËÏÒÒÅËÔÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ AVRLib, AS> ÞÔÏÂÙ ÌÉÛÎÅÅ × hex ÎÅ ÌÅÚÌÏ? íÏÖÎÏ ÌÉ ÅÇÏ ×ÏÏÂÝÅ ÉÓÐÏÌØÚÏ×ÁÔØ × AS> ËÁÞÅÓÔ×Å ÂÉÂÌÉÏÔÅËÉ, ÉÌÉ ÔÏÌØËÏ copy-paste? AS> óÏÂÓÔ×ÅÎÎÏ, ×ÅÓØ ÓÙÒ-ÂÏÒ ÉÍÅÎÎÏ ÉÚ ÚÁ ÜÔÏÊ ÓÁÍÏÊ AVRLib.

ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ AVRlib - ÜÔÏ ËÁËÁÑ-ÔÏ ÂÉÂÌÉÏÔÅËÁ? åÓÌÉ ÄÁ, ÔÏ ×ÓÅ É ÄÏÌÖÎÏ ÒÁÂÏÔÁÔØ ÔÁË, ËÁË ÔÙ ÈÏÞÅÛØ. ìÉÎËÅÒ × ÐÒÏÃÅÓÓÅ ÌÉÎËÏ×ËÉ ÚÁÇÒÕÖÁÅÔ ÍÏÄÕÌØ ÉÚ ÂÉÂÌÉÏÔÅËÉ ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ÜÔÏÔ ÍÏÄÕÌØ ÓÏÄÅÒÖÉÔ ËÁËÉÅ-ÌÉÂÏ ÓÉÍ×ÏÌÙ, ÎÁ ËÏÔÏÒÙÅ ÓÓÙÌÁÀÔÓÑ ÕÖÅ ÚÁÇÒÕÖÅÎÎÙÅ ÍÏÄÕÌÉ. âÉÂÌÉÏÔÅÞÎÙÅ ÍÏÄÕÌÉ, ÎÁ ËÏÔÏÒÙÅ ÎÉËÔÏ ÎÅ ÓÓÙÌÁÅÔÓÑ, ÌÉÎËÅÒ ÇÒÕÚÉÔØ ÎÅ ÂÕÄÅÔ. ëÔÏ (ËÁËÏÊ ÍÏÄÕÌØ) ÐÏÔÒÅÂÏ×ÁÌ ÚÁÇÒÕÚËÉ ÂÉÂÌÉÏÔÅÞÎÏÇÏ ÍÏÄÕÌÑ, ÍÏÖÎÏ Õ×ÉÄÅÔØ × map ÆÁÊÌÅ (ÅÓÌÉ ÏÎ Õ ÔÅÂÑ ÎÅ ÓÏÚÄÁÅÔÓÑ, ÏÂÑÚÁÔÅÌØÎÏ ÐÏÐÒÏÓÉ ÌÉÎËÅÒ ÜÔÏ ÄÅÌÁÔØ, ÔÁÍ ÍÎÏÇÏ ×ÁÖÎÏÊ ÉÎÆÏÒÍÁÃÉÉ). ÷ map ÆÁÊÌÅ ÐÒÑÍÏ × ÅÇÏ ÎÁÞÁÌÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÒÉÍÅÒÎÏ ×ÏÔ ÔÁËÏÅ:

========================================== Archive member included because of file (symbol)

/usr/local/lib/gcc/arm-elf/3.4.5/../../../../arm-elf/lib/libc.a(memset.o) crt0.o (memset) ==========================================

üÔÏ ÚÎÁÞÉÔ, ÞÔÏ ÌÉÎËÅÒ ÚÁÇÒÕÚÉÌ ÍÏÄÕÌØ memset.o ÉÚ ÂÉÂÌÉÏÔÅËÉ libc.a ÉÚ-ÚÁ ÔÏÇÏ ÞÔÏ ÍÏÄÕÌØ crt0.o ÚÁÈÏÔÅÌ ÓÉÍ×ÏÌ memset. ôÁËÉÍ ÏÂÒÁÚÏÍ ÔÙ ÓÍÏÖÅÛØ Õ×ÉÄÅÔØ, ËÔÏ É ÞÔÏ ÚÁÈÏÔÅÌ ÉÚ ÍÏÄÕÌÑ timer.o É ÉÚ ÍÏÄÕÌÑ lcd.o É, ÎÁÐÒÉÍÅÒ, ÏÔÏÒ×ÁÔØ ÅÍÕ ÜÔÏ ÖÅÌÁÎÉÅ. íÏÄÕÌØ, AFAIK, - ÍÉÎÉÍÁÌØÎÁÑ ÅÄÉÎÉÃÁ, ÚÁÇÒÕÖÁÅÍÁÑ ÌÉÎËÅÒÏÍ, ÐÏÜÔÏÍÕ ÐÒÉ ÓÏÚÄÁÎÉÉ ÂÉÂÌÉÏÔÅËÉ ÎÅ ÓÔÏÉÔ ÐÏÍÅÝÁÔØ × ÏÄÉÎ ÍÏÄÕÌØ ÎÅ ÉÍÅÀÝÉÅ ×ÎÕÔÒÅÎÎÅÊ Ó×ÑÚÉ ÏÂßÅËÔÙ. åÓÌÉ ÐÒÉÌÉÎËÏ×ÁÎÎÙÊ ÂÉÂÌÉÏÔÅÞÎÙÊ timer.o ÓÏÄÅÒÖÉÔ ÐÏÓÔÏÒÏÎÎÉÊ ÎÉËÏÍÕ ÎÅ ÎÕÖÎÙÊ ËÏÄ - ÜÔÏ ×ÏÐÒÏÓ Ë Á×ÔÏÒÕ ÂÉÂÌÉÏÔÅËÉ, ÐÏÞÅÍÕ ÏÎ ÎÅ ÒÁÚÂÉÌ ÅÇÏ ÎÁ ÎÅÓËÏÌØËÏ ÍÏÄÕÌÅÊ. ðÏ-ÍÏÅÍÕ ÔÁË. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... þÅÍ ×ÅÔÅÒÉÎÁÒÙ ËÏÒÍÑÔ Ó×ÏÉÈ ÓÏÂÁË? âÅÌÙÊ ÆÏÓÆÏÒ. ÷ÁÛÁ ÓÏÂÁËÁ Ó×ÅÔÉÔÓÑ!
ðÒÉ×ÅÔ Andrey!

03 Mar 06 17:57, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AM>> ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ AVRlib - ÜÔÏ ËÁËÁÑ-ÔÏ ÂÉÂÌÉÏÔÅËÁ? AS> óÏ×ÅÒÛÅÎÎÏ ×ÅÒÎÏ,

formatting link
AS> .

AS> ïÞÅÎØ ÂÌÁÇÏÄÁÒÅÎ ÚÁ ÐÏÄÒÏÂÎÙÅ ÒÁÚØÑÓÎÅÎÉÑ. AS> HÏ ×ÏÚÎÉË ÅÝÅ ÏÄÉÎ ×ÏÐÒÏÓ: × ÜÔÏÊ ÂÉÂÌÉÏÔÅËÅ ÎÅÔ ÚÁÒÁÎÅÅ AS> ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÙÈ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×. ôÁÍ ÔÏÌØËÏ *.c É *.h. ëÁË ÉÈ ÐÏÂÉÔØ AS> ÎÁ ÍÏÄÕÌÉ?

HÕ ÔÁË ÜÔÏ, ÏÞÅ×ÉÄÎÏ, ÉÓÈÏÄÎÉËÉ ÂÉÂÌÉÏÔÅËÉ. HÁÐÒÉÍÅÒ, foo.c - ÜÔÏ ÉÓÈÏÄÎÙÊ ÔÅËÓÔ ÐÒÏÇÒÁÍÍÎÏÇÏ ÍÏÄÕÌÑ foo, ÐÏÓÌÅ ÅÇÏ ËÏÍÐÉÌÑÃÉÉ É ÁÓÓÅÍÂÌÉÒÏ×ÁÎÉÑ ÐÏÌÕÞÁÅÔÓÑ ÏÂßÅËÔÎÙÊ ÍÏÄÕÌØ foo.o, ÚÁÔÅÍ ËÕÞÁ ÔÁËÉÈ ÏÂßÅËÔÎÙÈ ÍÏÄÕÌÅÊ Ó ÐÏÍÏÝØÀ ÐÒÏÇÒÁÍÍÙ ar ÉÚ ËÏÍÐÌÅËÔÁ binutils (ÐÏÞÉÔÁÊ ÅÅ ÄÏËÕÍÅÎÔÁÃÉÀ) ÏÂßÅÄÉÎÑÅÔÓÑ × ÂÉÂÌÉÏÔÅËÕ (ÔÁËÖÅ ÎÁÚÙ×ÁÅÍÕÀ ÁÒÈÉ×), ÏÂÙÞÎÏ ÉÍÅÀÝÕÀ ÒÁÓÛÉÒÅÎÉÅ .a (ÏÔ ÓÌÏ×Á ÁÒÈÉ×). åÓÌÉ ÔÙ ÐÉÛÅÛØ ÎÁ C, Õ ÔÅÂÑ ÎÁ×ÅÒÎÑËÁ ÕÖÅ ÅÓÔØ ÓÔÁÎÄÁÒÔÎÙÅ ÂÉÂÌÉÏÔÅËÉ libc.a, libm.a...

ðÏ ÉÄÅÅ, avrlib ÄÏÌÖÅÎ ÉÍÅÔØ ×ÎÕÔÒÉ ÓÅÂÑ Makefile, ÞÔÏÂÙ Ó ÐÏÍÏÝØÀ make ×ÙÐÏÌÎÑÔØ ÓÂÏÒËÕ ÓÏÂÓÔ×ÅÎÎÏ ÂÉÂÌÉÏÔÅËÉ ÉÚ ÅÅ ÉÓÈÏÄÎÉËÏ×. ðÏÌÕÞÅÎÎÕÀ ÂÉÂÌÉÏÔÅËÕ ÐÏÔÏÍ ÍÏÖÎÏ ÂÕÄÅÔ ÐÒÉÌÉÎËÏ×Ù×ÁÔØ Ë ÉÓÐÏÌØÚÕÀÝÉÍ ÅÅ ÐÒÏÅËÔÁÍ. üÔÏ ËÁË ÏÂÙÞÎÏ ÂÙ×ÁÅÔ. ðÏ ÉÄÅÅ ÖÅ, ÔÁÍ ÄÏÌÖÎÁ ÂÙÔØ ÄÏËÕÍÅÎÔÁÃÉÑ, ÇÄÅ ÄÏÌÖÎÏ ÂÙÔØ ÏÐÉÓÁÎÏ, ËÁË ÜÔÕ ÂÉÂÌÉÏÔÅËÕ ÓÏÂÒÁÔØ É ËÁË ÅÊ ÐÏÔÏÍ ÐÏÌØÚÏ×ÁÔØÓÑ. óÊÅÞÁÓ Õ ÍÅÎÑ ÎÅÔ ×ÒÅÍÅÎÉ ÐÏÓÍÏÔÒÅÔØ ÐÒÉ×ÅÄÅÎÎÕÀ ÔÏÂÏÊ ÓÓÙÌËÕ, ÍÏÖÅÔ ÂÙÔØ ÐÏÚÖÅ ÐÏÓÍÏÔÒÀ, ÔÏÇÄÁ ×ÙÓËÁÖÕÔØ ËÏÎËÒÅÔÎÅÅ.

AS> é ×ÏÏÂÝÅ, ËÁË ÉÈ _ÉÄÅÏÌÏÇÉÞÅÓËÉ_ :) ÐÒÁ×ÉÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ?

óÍÏÔÒÉ ËÁË ÓÄÅÌÁÎÙ ÓÔÁÎÄÁÒÔÎÙÅ ÓÉÛÎÙÅ ÂÉÂÌÉÏÔÅËÉ. HÁÐÒÉÍÅÒ newlib
formatting link
÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ñ ÕÄÁÌÀ Ô×ÏÀ ÖÁÖÄÕ. âÅÚ ×ÏÚÍÏÖÎÏÓÔÉ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ.

Hello, Andrey! You wrote to Alex Mogilnikov on Fri, 03 Mar 2006 13:19:04 +0300:

AS> ëÁË ×ÉÄÎÏ ÉÚ ÄÁÍÐÁ, funkt ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ. HÏ × ÏÂÖÅËÔÎÉËÅ ţ ËÏÄ AS> ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × target, AS> ÒÁÚÄÕ×ÁÑ ËÏÄ. ïÂßÑ×ÉÔØ ţ ËÁË static? ÷ÙÎÅÓÔÉ × ÏÔÄÅÌØÎÙÊ ÍÏÄÕÌØ? åÓÌÉ Ñ ÎÅ ÏÛÉÂÁÀÓØ, ÌÉÎËÅÒ ÉÚ gcc ÎÅ ÕÍÅÅÔ ×ÙÒÅÚÁÔØ ÉÚ ÏÂßÅËÔÎÉËÏ× ÎÅÉÓÐÏÌØÚÕÅÍÙÅ ÆÕÎËÃÉÉ.

With best regards, Serg.

ðÒÉ×ÅÔ Andrey!

03 Mar 06 17:57, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AM>> ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ AVRlib - ÜÔÏ ËÁËÁÑ-ÔÏ ÂÉÂÌÉÏÔÅËÁ? AS> óÏ×ÅÒÛÅÎÎÏ ×ÅÒÎÏ,

formatting link
AS> .

ðÏÓÍÏÔÒÅÌ. ëÁË ÏËÁÚÁÌÏÓØ, ÜÔÏ ÎÅ ÂÉÂÌÉÏÔÅËÁ × ÐÒÏÇÒÁÍÍÉÓÔÓËÏÍ ÐÏÎÉÍÁÎÉÉ, Á ÐÒÏÓÔÏ ËÏÌÌÅËÃÉÑ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×. âÅÇÌÙÊ ×ÚÇÌÑÄ × timer.c ÐÏËÁÚÁÌ, ÞÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ, ÏÒÇÁÎÉÚÏ×ÁÎÏ ÏÎÏ ÎÅÏÐÔÉÍÁÌØÎÏ. ñ ÎÁÓÞÉÔÁÌ × ÜÔÏÍ ÆÁÊÌÅ 15 ËÏÒÎÅ×ÙÈ ÆÕÎËÃÉÊ (ÔÏ ÅÓÔØ ÆÕÎËÃÉÊ, Ë ËÏÔÏÒÙÍ ÎÅÔ ÏÂÒÁÝÅÎÉÊ ×ÎÕÔÒÉ ÜÔÏÇÏ ÍÏÄÕÌÑ), ÎÅ ÓÞÉÔÁÑ ×ÏÓØÍÉ ÏÂÒÁÂÏÔÞÉËÏ× ÐÒÅÒÙ×ÁÎÉÊ. åÓÌÉ ÅÓÔØ ÖÅÌÁÎÉÅ ÓÄÅÌÁÔØ ÉÚ ÜÔÏÇÏ ÎÏÒÍÁÌØÎÕÀ ÂÉÂÌÉÏÔÅËÕ, timer.c ÉÍÅÅÔ ÓÍÙÓÌ ÒÁÚÂÉÔØ ÎÁ ËÕÞÕ ÏÔÄÅÌØÎÙÈ ÍÏÄÕÌÅÊ, ÔÉÐÁ timerAttach.c, delay_us.c, timer1GetPrescaler.c, timer2GetPrescaler.c É Ô.Ð., ÐÏÓÌÅ ÞÅÇÏ ÏÔËÏÍÐÉÌÉÒÏ×ÁÔØ É ÐÒÏÁÓÓÅÍÂÌÉÒÏ×ÁÔØ ÉÈ ×ÓÅ É ÐÏÌÕÞÅÎÎÙÅ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ ÐÏÍÅÓÔÉÔØ × ÁÒÈÉ× libtimer.a. ÷ÏÔ ÐÏÓÌÅ ÜÔÏÇÏ, ÌÉÎËÕÑ Ô×ÏÊ ÐÒÏÅËÔ Ó libtimer.a, ÌÉÎËÅÒ ×ÏÚØÍÅÔ ÉÚ ÁÒÈÉ×Á ÔÏÌØËÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÕÖÎÏÅ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ï ÓËÏÌØËÏ ÎÁÍ ÏÔËÒÙÔÉÊ ÞÕÄÎÙÈ ÇÏÔÏ×ÉÔ ÏÔËÒÙ×ÁÛËÉ ËÒÀË!
ðÒÉ×ÅÔ, Sergey !

04 Mar 06 , 15:59 Sergey Mudry ÐÉÓÁÌ Ë Andrey Samarin:

AS>> ëÁË ×ÉÄÎÏ ÉÚ ÄÁÍÐÁ, funkt ÚÁËÏÍÍÅÎÔÉÒÏ×ÁÎÁ. HÏ × ÏÂÖÅËÔÎÉËÅ AS>> ţ ËÏÄ ÐÒÉÓÕÔÓÔ×ÕÅÔ. é ËÁË ëÒÁÓÎÏÅ ðÅÒÅÈÏÄÑÝÅÅ úÎÁÍÑ ÐÅÒÅÈÏÄÉÔ × AS>> target, ÒÁÚÄÕ×ÁÑ ËÏÄ. SM> ïÂßÑ×ÉÔØ ţ ËÁË static? SM> ÷ÙÎÅÓÔÉ × ÏÔÄÅÌØÎÙÊ ÍÏÄÕÌØ?

éÍÅÎÎÏ.

SM> åÓÌÉ Ñ ÎÅ ÏÛÉÂÁÀÓØ, ÌÉÎËÅÒ ÉÚ gcc ÎÅ ÕÍÅÅÔ ×ÙÒÅÚÁÔØ ÉÚ ÏÂßÅËÔÎÉËÏ× SM> ÎÅÉÓÐÏÌØÚÕÅÍÙÅ ÆÕÎËÃÉÉ.

÷ ÏÂÝÅÍ ÓÌÕÞÁÅ ÎÉ ÏÄÉÎ ÌÉÎËÅÒ ÔÁËÏÇÏ ÎÅ ÍÏÖÅÔ, ÐÏÓËÏÌØËÕ, ÎÁÐÒÉÍÅÒ, Õ Ä×ÕÈ ÐÏÈÏÖÉÈ ÆÕÎËÃÉÊ ÐÏÓÌÅ ËÏÍÐÉÌÑÃÉÉ ÍÏÇÕÔ ÏËÁÚÁÔØÓÑ ÏÂÝÉÅ ËÕÓËÉ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ñ ÍÁÔÅÒÎÕÌÓÑ ÞÔÏ ÕÚÎÁÔ ÎÅ ÍÁÔÜÒÎÕÌÁÓ ÌÉ ÏÎÏ ÞÔÏ ÕÚÎÁÔ ÎÅ ÍÁÔÜÒÎÕÌÓÑ ÌÉ Ñ

éÓÐÏÌØÚÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÉ. ïÓÔÁ×ÉÔØ ÏÄÉÎ ÏÂßÅËÔÎÉË, × ËÏÔÏÒÏÍ ÆÕÎËÃÉÑ main, ÉÚ ËÏÔÏÒÏÊ ×ÙÚÙ×ÁÅÔÓÑ ×ÓÅ ÏÓÔÁÌØÎÏÅ. ÷ÓÅ ÏÓÔÁÌØÎÙÅ ÏÂßÅËÔÎÉËÉ ÓÎÁÞÁÌÁ ÓÏÂÒÁÔØ × ÂÉÂÌÉÏÔÅËÕ, Á ÕÖÅ ÐÏÔÏÍ ÐÒÉÌÉÎËÏ×ÁÔØ ÂÉÂÌÉÏÔÅËÕ. âÉÂÌÉÏÔÅËÁ ÓÏÂÉÒÁÅÔÓÑ ÕÔÉÌÉÔÏÊ ar.
ðÒÉ×ÅÔ, Alex!

04 ÍÁÒÔÁ 2006 20:19, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AM>>> ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ AVRlib - ÜÔÏ ËÁËÁÑ-ÔÏ ÂÉÂÌÉÏÔÅËÁ? AS>> óÏ×ÅÒÛÅÎÎÏ ×ÅÒÎÏ, AS>>

formatting link
AM> ðÏÓÍÏÔÒÅÌ. ëÁË ÏËÁÚÁÌÏÓØ, ÜÔÏ ÎÅ ÂÉÂÌÉÏÔÅËÁ × ÐÒÏÇÒÁÍÍÉÓÔÓËÏÍ AM> ÐÏÎÉÍÁÎÉÉ, Á ÐÒÏÓÔÏ ËÏÌÌÅËÃÉÑ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×. âÅÇÌÙÊ ×ÚÇÌÑÄ × AM> timer.c ÐÏËÁÚÁÌ, ÞÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ, ÏÒÇÁÎÉÚÏ×ÁÎÏ ÏÎÏ ÎÅÏÐÔÉÍÁÌØÎÏ. ñ AM> ÎÁÓÞÉÔÁÌ × ÜÔÏÍ ÆÁÊÌÅ 15 ËÏÒÎÅ×ÙÈ ÆÕÎËÃÉÊ (ÔÏ ÅÓÔØ ÆÕÎËÃÉÊ, Ë ËÏÔÏÒÙÍ AM> ÎÅÔ ÏÂÒÁÝÅÎÉÊ ×ÎÕÔÒÉ ÜÔÏÇÏ ÍÏÄÕÌÑ), ÎÅ ÓÞÉÔÁÑ ×ÏÓØÍÉ ÏÂÒÁÂÏÔÞÉËÏ× AM> ÐÒÅÒÙ×ÁÎÉÊ. åÓÌÉ ÅÓÔØ ÖÅÌÁÎÉÅ ÓÄÅÌÁÔØ ÉÚ ÜÔÏÇÏ ÎÏÒÍÁÌØÎÕÀ ÂÉÂÌÉÏÔÅËÕ, AM> timer.c ÉÍÅÅÔ ÓÍÙÓÌ ÒÁÚÂÉÔØ ÎÁ ËÕÞÕ ÏÔÄÅÌØÎÙÈ ÍÏÄÕÌÅÊ, ÔÉÐÁ AM> timerAttach.c, delay_us.c, timer1GetPrescaler.c, timer2GetPrescaler.c AM> É Ô.Ð., ÐÏÓÌÅ ÞÅÇÏ ÏÔËÏÍÐÉÌÉÒÏ×ÁÔØ É ÐÒÏÁÓÓÅÍÂÌÉÒÏ×ÁÔØ ÉÈ ×ÓÅ É AM> ÐÏÌÕÞÅÎÎÙÅ ÏÂßÅËÔÎÙÅ ÆÁÊÌÙ ÐÏÍÅÓÔÉÔØ × ÁÒÈÉ× libtimer.a. ÷ÏÔ ÐÏÓÌÅ AM> ÜÔÏÇÏ, ÌÉÎËÕÑ Ô×ÏÊ ÐÒÏÅËÔ Ó libtimer.a, ÌÉÎËÅÒ ×ÏÚØÍÅÔ ÉÚ ÁÒÈÉ×Á AM> ÔÏÌØËÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÕÖÎÏÅ. âÏÌØÛÏÅ ÓÐÁÓÉÂÏ. óÄÅÌÁÌ ÐÏ Ô×ÏÅÍÕ ÓÏ×ÅÔÕ ÂÉÂÌÉÏÔÅËÕ (ÐÏËÁ ×ÒÕÞÎÕÀ), É ÔÅÐÅÒØ ÎÉËÁË ÎÅ ÍÏÇÕ ×ËÕÒÉÔØ, ËÁË ÖÅ ţ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÅËÔÕ? Makefile - ÓÔÁÎÄÁÒÔÎÙÊ ÓÁÂÖÅ×ÙÊ.

2ïÌÌ: ðÒÅÍÎÏÇÏ ÂÌÁÇÏÄÁÒÅÎ ×ÓÅÍ ÏÔ×ÅÔÉ×ÛÉÍ ÎÁ ÜÔÕ ×ÅÔËÕ! ïÞÅÎØ ÐÏÍÏÇÌÉ.

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... åÓÌÉ ÚףÚÄÙ ÚÁÖÉÇÁÀÔÓÑ × ÎÅÂÅ, ÚÎÁÞÉÔ ÜÔÏ ËÏÍÕ-ÎÉÂÕÄØ ÎÕÖÎÏ...

ðÒÉ×ÅÔ, Alex!

10 ÍÁÒÔÁ 2006 18:28, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AS>> âÏÌØÛÏÅ ÓÐÁÓÉÂÏ. óÄÅÌÁÌ ÐÏ Ô×ÏÅÍÕ ÓÏ×ÅÔÕ ÂÉÂÌÉÏÔÅËÕ (ÐÏËÁ AS>> ×ÒÕÞÎÕÀ), É ÔÅÐÅÒØ ÎÉËÁË ÎÅ ÍÏÇÕ ×ËÕÒÉÔØ, ËÁË ÖÅ ţ ÐÏÄËÌÀÞÉÔØ Ë AS>> ÐÒÏÅËÔÕ? AM> äÌÑ ÐÏÄËÌÀÞÅÎÉÑ ÂÉÂÌÉÏÔÅËÉ libtimer.a ÓËÁÖÉ -ltimer

AM> åÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÌÅÖÉÔ × ÎÅÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ, ÐÏÔÒÅÂÕÅÔÓÑ ÅÝÅ AM> -L/path/to/lib/dir/ üÔÏ ÐÏÎÑÔÎÏ, ÎÏ ÍÏÉ ÚÁÔÒÕÄÎÅÎÉÑ ÓÏÓÔÏÑÔ × ÔÏÍ, ÞÔÏ Ñ ÎÅ ÚÎÁÀ ËÕÄÁ ÜÔÏ ×ÐÉÓÁÔØ × makefile. %)

ðÏÐÒÏÂÏ×ÁÌ ×ÏÔ ÔÁË (makefile):

=== Cut === #---------------- Compiler Options ---------------- # -g*: generate debugging information # -O*: optimization level # -f...: tuning, see GCC manual and avr-libc documentation # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing CFLAGS = -g$(DEBUG) CFLAGS += $(CDEFS) $(CINCS) CFLAGS += -O$(OPT) #CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -v CFLAGS += -Wall -Wstrict-prototypes CFLAGS += -Wa,-adhlns=$(<:.c=.lst) CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) CFLAGS += -L./modules/ -ltest *<<<<<<<<<<* CFLAGS += $(CSTANDARD) === Cut ===

ÎÏ ÎÉÞÅÇÏ ÎÅ ÐÏÌÕÞÉÌÏÓØ:

17:45 === Cut === Linking: Test2.elf 17:45 avr-gcc -mmcu=atmega8 -I. -gstabs -DF_CPU=8000000UL -O0 -funsigned-char

-funsig ned-bitfields -fpack-struct -fshort-enums -v -Wall -Wstrict-prototypes

-Wa,-adhl ns=Test2.o -IC:\winavr\AVRlib -I/modules -L./modules/ -ltest -std=gnu99 -MD -MP

-MF .dep/Test2.elf.d Test2.o --output Test2.elf -Wl,-Map=Test2.map,--cref -lm

Reading specs from C:/WinAVR/lib/gcc/avr/3.4.5/specs Configured with: ../gcc-3.4.5/configure --prefix=/c/WinAVR --target=avr

--enable

-languages=c,c++ --with-dwarf2 --enable-win32-registry=WinAVR Thread model: single gcc version 3.4.5 C:/WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/bin/ld.exe -m avr4 -o Test2. elf C:/WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/lib/avr4/crtm8.o

-L./modu les/ -LC:/WinAVR/lib/gcc/avr/3.4.5/avr4 -LC:/WinAVR/lib/gcc/avr/3.4.5

-LC:/WinAV R/lib/gcc -Lc:/WinAVR/lib/gcc/avr/3.4.5/avr4 -Lc:/WinAVR/lib/gcc/avr/3.4.5

-LC:/ WINAVR/BIN/../lib/gcc/avr/3.4.5/../../../../avr/lib/avr4

-LC:/WINAVR/BIN/../lib/ gcc/avr/3.4.5/../../../../avr/lib

-Lc:/WinAVR/lib/gcc/avr/3.4.5/../../../../avr/ lib/avr4 -Lc:/WinAVR/lib/gcc/avr/3.4.5/../../../../avr/lib -ltest Test2.o

-Map=T est2.map --cref -lm -lgcc -lc -lgcc Test2.o: In function `main': Test2.c:30: undefined reference to `test_proc' C:\WINAVR\UTILS\BIN\MAKE.EXE: *** [Test2.elf] Error 1 === Cut ===

ðÒÉ ÜÔÏÍ "C:\WinAVR\MyProgram\Test2\modules>avr-ar t libtest.a" ×ÙÄÁÅÔ "test_lib.o" üÔÏ ÎÏÒÍÁÌØÎÏ? úÁÇÏÎÑÌ ÉÓÈÏÄÎÉË × ÂÉÂÌÉÏÔÅËÕ ÓÌÅÄÕÀÝÉÍÉ ËÏÍÁÎÄÁÍÉ:

avr-gcc -c test_lib.c avr-ar rc libtest.a test_lib.o

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... ëÁÖÄÙÊ ÐÉÒÁÔÓËÉÊ ÄÉÓË - ÜÔÏ ÌÉÛÎÉÊ Ç×ÏÚÄØ × ÇÒÏ ËÁÐÉÔÁÌÉÚÍÁ!!!
ðÒÉ×ÅÔ Andrey!

10 Mar 06 13:32, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AS> âÏÌØÛÏÅ ÓÐÁÓÉÂÏ. óÄÅÌÁÌ ÐÏ Ô×ÏÅÍÕ ÓÏ×ÅÔÕ ÂÉÂÌÉÏÔÅËÕ (ÐÏËÁ AS> ×ÒÕÞÎÕÀ), É ÔÅÐÅÒØ ÎÉËÁË ÎÅ ÍÏÇÕ ×ËÕÒÉÔØ, ËÁË ÖÅ ţ ÐÏÄËÌÀÞÉÔØ Ë AS> ÐÒÏÅËÔÕ?

äÌÑ ÐÏÄËÌÀÞÅÎÉÑ ÂÉÂÌÉÏÔÅËÉ libtimer.a ÓËÁÖÉ -ltimer åÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÌÅÖÉÔ × ÎÅÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ, ÐÏÔÒÅÂÕÅÔÓÑ ÅÝÅ

-L/path/to/lib/dir/

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... G8: ÉÎÏÇÄÁ ÌÕÞÛÅ ÄÉÒÉÖÉÒÏ×ÁÔØ, ÞÅÍ ÇÏ×ÏÒÉÔØ.
ðÒÉ×ÅÔ Andrey!

10 Mar 06 17:45, Andrey Samarin ÐÉÓÁÌ Alex Mogilnikov:

AM>> åÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÌÅÖÉÔ × ÎÅÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ, ÐÏÔÒÅÂÕÅÔÓÑ ÅÝÅ AM>> -L/path/to/lib/dir/ AS> üÔÏ ÐÏÎÑÔÎÏ, ÎÏ ÍÏÉ ÚÁÔÒÕÄÎÅÎÉÑ ÓÏÓÔÏÑÔ × ÔÏÍ, ÞÔÏ Ñ ÎÅ ÚÎÁÀ ËÕÄÁ AS> ÜÔÏ ×ÐÉÓÁÔØ × makefile. %)

ëÁË Ñ ÐÏÎÑÌ, ÔÙ ÎÅ ÓÁÍ ÄÅÌÁÌ Makefile, Á ×ÚÑÌ ÞÅÊ-ÔÏ ÇÏÔÏ×ÙÊ?

AS> === Cut === AS> CFLAGS += -L./modules/ -ltest *<<<<<<<<<<* AS> === Cut ===

AS> ÎÏ ÎÉÞÅÇÏ ÎÅ ÐÏÌÕÞÉÌÏÓØ:

AS> === Cut === AS> avr-gcc -L./modules/ -ltest Test2.o --output Test2.elf AS> -Wl,-Map=Test2.map,--cref -lm

AS> Test2.o: In function `main': Test2.c:30: undefined reference to AS> `test_proc' AS> === Cut ===

AS> üÔÏ ÎÏÒÍÁÌØÎÏ?

äÁ. ôÙ ÐÏÍÅÓÔÉÌ -ltest × CFLAGS, ÉÚ-ÚÁ ÜÔÏÇÏ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ -ltest ÎÁÈÏÄÉÔÓÑ _ÄÏ_ Test2.o. óÄÅÌÁÊ ÔÁË, ÞÔÏÂÙ -ltest ÛÅÌ _ÐÏÓÌÅ_ Test2.o, ÔÏ ÅÓÔØ ÒÑÄÏÍ Ó -lm. ÷ÏÏÂÝÅ-ÔÏ CFLAGS ÎÅ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÌÉÎËÏ×ËÉ, ÔÁÍ ÐÒÉÎÑÔÏ ÈÒÁÎÉÔØ ÆÌÁÇÉ ËÏÍÐÉÌÑÔÏÒÁ. æÌÁÇÉ ÌÉÎËÅÒÁ ÐÒÉÎÑÔÏ ÐÏÍÅÝÁÔØ × LDFLAGS. íÏÖÎÏ, ËÏÎÅÞÎÏ, Ó×ÁÌÉÔØ ×ÓÅ × ËÕÞÕ, gcc ÒÁÚÂÅÒÅÔÓÑ, ÎÏ ÐÏÔÏÍ ÓÁÍÏÍÕ ÖÅ ÂÕÄÅÔ ÔÒÕÄÎÏ × ÜÔÏÊ ËÕÞÅ ÞÔÏ-ÌÉÂÏ ÐÏÎÑÔØ. åÓÌÉ ÔÙ ÉÓÐÏÌØÚÕÅÛØ ÇÎÕÔÙÊ make, ×ÎÉÍÁÔÅÌØÎÏ ÐÒÏÞÉÔÁÊ ÅÇÏ ÄÏËÕÍÅÎÔÁÃÉÀ, ÔÁÍ ×ÓÅ ÜÔÏ ÈÏÒÏÛÏ ÏÐÉÓÁÎÏ, Ó ÍÎÏÇÏÞÉÓÌÅÎÎÙÍÉ ÐÒÉÍÅÒÁÍÉ. ñ ÎÅ ÚÎÁÀ, ËÁË Ô×ÏÊ Makefile ÓÄÅÌÁÎ, ÎÏ ÔÉÐÉÞÎÏ ÂÙ×ÁÅÔ ÐÒÉÍÅÒÎÏ ÔÁË:

========================== TARGET = test OBJ = test1.o test2.o test3.o LDFLAGS = -L/usr/local/lib -Wl,-Map=$<.map -o $< LDLIBS = -lm -ltest CC = avr-gcc

$(TARGET).elf: $(OBJ) $(CC) $(LDFLAGS) $^ $(LDLIBS) ==========================

÷ ÒÅÚÕÌØÔÁÔÅ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ -ltest ÂÕÄÅÔ ÐÏÓÌÅ ÓÐÉÓËÁ ÌÉÎËÕÅÍÙÈ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÍÏÔÒÀ ËÕÄÁ ÇÌÁÚÁ ÇÌÑÄÑÔ...
ðÒÉ×ÅÔ, Alex!

11 ÍÁÒÔÁ 2006 14:39, Alex Mogilnikov ÐÉÓÁÌ Andrey Samarin:

AM>>> åÓÌÉ ÂÉÂÌÉÏÔÅËÁ ÌÅÖÉÔ × ÎÅÓÔÁÎÄÁÒÔÎÏÍ ÍÅÓÔÅ, ÐÏÔÒÅÂÕÅÔÓÑ ÅÝÅ AM>>> -L/path/to/lib/dir/ AS>> üÔÏ ÐÏÎÑÔÎÏ, ÎÏ ÍÏÉ ÚÁÔÒÕÄÎÅÎÉÑ ÓÏÓÔÏÑÔ × ÔÏÍ, ÞÔÏ Ñ ÎÅ ÚÎÁÀ AS>> ËÕÄÁ AS>> ÜÔÏ ×ÐÉÓÁÔØ × makefile. %) AM> ëÁË Ñ ÐÏÎÑÌ, ÔÙ ÎÅ ÓÁÍ ÄÅÌÁÌ Makefile, Á ×ÚÑÌ ÞÅÊ-ÔÏ ÇÏÔÏ×ÙÊ? äÁ, ÓÔÁÎÄÁÒÔÎÙÊ ÓÁÂÖÅ×ÙÊ ÉÚ ÄÉÒÅËÔÏÒÉÉ ...\WinAVR\sample\.

AS>> üÔÏ ÎÏÒÍÁÌØÎÏ?

AM> äÁ. ôÙ ÐÏÍÅÓÔÉÌ -ltest × CFLAGS, ÉÚ-ÚÁ ÜÔÏÇÏ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ AM> -ltest ÎÁÈÏÄÉÔÓÑ _ÄÏ_ Test2.o. óÄÅÌÁÊ ÔÁË, ÞÔÏÂÙ -ltest ÛÅÌ _ÐÏÓÌÅ_ AM> Test2.o, ÔÏ ÅÓÔØ ÒÑÄÏÍ Ó -lm. AM> ÷ÏÏÂÝÅ-ÔÏ CFLAGS ÎÅ ÐÒÅÄÎÁÚÎÁÞÅÎ ÄÌÑ ÌÉÎËÏ×ËÉ, ÔÁÍ ÐÒÉÎÑÔÏ ÈÒÁÎÉÔØ AM> ÆÌÁÇÉ ËÏÍÐÉÌÑÔÏÒÁ. æÌÁÇÉ ÌÉÎËÅÒÁ ÐÒÉÎÑÔÏ ÐÏÍÅÝÁÔØ × LDFLAGS. íÏÖÎÏ, AM> ËÏÎÅÞÎÏ, Ó×ÁÌÉÔØ ×ÓÅ × ËÕÞÕ, gcc ÒÁÚÂÅÒÅÔÓÑ, ÎÏ ÐÏÔÏÍ ÓÁÍÏÍÕ ÖÅ ÂÕÄÅÔ AM> ÔÒÕÄÎÏ × ÜÔÏÊ ËÕÞÅ ÞÔÏ-ÌÉÂÏ ÐÏÎÑÔØ. åÓÌÉ ÔÙ ÉÓÐÏÌØÚÕÅÛØ ÇÎÕÔÙÊ make, AM> ×ÎÉÍÁÔÅÌØÎÏ ÐÒÏÞÉÔÁÊ ÅÇÏ ÄÏËÕÍÅÎÔÁÃÉÀ, ÔÁÍ ×ÓÅ ÜÔÏ ÈÏÒÏÛÏ ÏÐÉÓÁÎÏ, Ó AM> ÍÎÏÇÏÞÉÓÌÅÎÎÙÍÉ ÐÒÉÍÅÒÁÍÉ. ñ ÎÅ ÚÎÁÀ, ËÁË Ô×ÏÊ Makefile ÓÄÅÌÁÎ, ÎÏ AM> ÔÉÐÉÞÎÏ ÂÙ×ÁÅÔ ÐÒÉÍÅÒÎÏ ÔÁË:

AM> ========================== AM> TARGET = test AM> OBJ = test1.o test2.o test3.o AM> LDFLAGS = -L/usr/local/lib -Wl,-Map=$<.map -o $< AM> LDLIBS = -lm -ltest AM> CC = avr-gcc

AM> $(TARGET).elf: $(OBJ) AM> $(CC) $(LDFLAGS) $^ $(LDLIBS) AM> ==========================

AM> ÷ ÒÅÚÕÌØÔÁÔÅ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ -ltest ÂÕÄÅÔ ÐÏÓÌÅ ÓÐÉÓËÁ AM> ÌÉÎËÕÅÍÙÈ ÏÂßÅËÔÎÙÈ ÆÁÊÌÏ×. âÏÌØÛÏÅ ÔÅÂÅ ÓÐÁÓÉÂÏ ÚÁ ËÏÎÓÕÌØÔÁÃÉÀ. þÅÓÔÎÏ ÇÏ×ÏÒÑ, ×ÏÐÒÏÓ ÔÁË ÏÓÔÒÏ ÕÖÅ ÎÅ ÓÔÏÉÔ, ÐÏÓËÏÌØËÕ ÏËÁÚÁÌÏÓØ ÞÔÏ ×ÓÅ ÒÁ×ÎÏ ÉÓÈÏÄÎÉËÉ ÉÚ ÜÔÏÊ ÂÉÂÌÉÏÔÅËÉ ÎÁÄÏ ÄÏÒÁÂÁÔÙ×ÁÔØ ÎÁÐÉÌØÎÉËÏÍ ÄÏ ÀÚÁÂÅÌØÎÏÇÏ ×ÉÄÁ. ôÁË ÞÔÏ, ÐÏÄËÌÀÞÁÀ Ë ÐÒÏÅËÔÕ ËÁË ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÆÁÊÌÙ É ×ÙÒÅÚÁÀ ×ÓÅ ÎÅ ÎÕÖÎÏÅ ÄÌÑ ÔÅËÕÝÅÊ ÚÁÄÁÞÉ. :)

ðÏÞÅÍÕ ÔÏ ×ÓÐÏÍÎÉÌÏÓØ, ËÁË ÏÄÉÎ ×ÏÅÎÒÕË ËÁË ÔÏ ÓËÁÚÁÌ ÔÁËÕÀ ÆÒÁÚÏÞËÕ: "HÕ ÉÚÕÞÁÌ Ñ ÜÔÕ ×ÙÓÛÕÀ ÍÁÔÅÍÁÔÉËÕ. HÕ É ÞÔÏ? HÁ ÍÏÊ ×ÚÇÌÑÄ, ÍÎÏÇÏ ÌÉÛÎÅÇÏ..." ;)

ó Õ×ÁÖÅÎÉÅÍ, áÎÄÒÅÊ áëá èÏÍÉÞ, áëá UR3LTG. ... åÓÌÉ ÚףÚÄÙ ÚÁÖÉÇÁÀÔÓÑ × ÎÅÂÅ, ÚÎÁÞÉÔ ÜÔÏ ËÏÍÕ-ÎÉÂÕÄØ ÎÕÖÎÏ...

Hello, Alex!

óÁÂÖ ÎÅ ×ÙÄÁÅÔ ×ÁÒÎÉÎÇ ÎÁ ÐÏÄÏÂÎÕÀ ÏÐÅÞÁÔËÕ - "var==0;" ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ ÏÂßÑ×ÌÅÎÁ ËÁË volatile. üÔÏ ÍÏÖÎÏ ËÁË-ÎÉÂÕÄØ ÉÚÍÅÎÉÔØ? óÍÕÝÁÅÔ - ÏÄÉÎ ÒÁÚ ÏÂÖÅÇÓÑ.

With best regards, Igor. Time: 22:40 Date: 22 íÁÒ 06

ðÒÉ×ÅÔ Igor!

22 Mar 06 22:40, Igor Ulanov ÐÉÓÁÌ Alex Mogilnikov:

IU> óÁÂÖ ÎÅ ×ÙÄÁÅÔ ×ÁÒÎÉÎÇ ÎÁ ÐÏÄÏÂÎÕÀ ÏÐÅÞÁÔËÕ - "var==0;" ÅÓÌÉ IU> ÐÅÒÅÍÅÎÎÁÑ ÏÂßÑ×ÌÅÎÁ ËÁË volatile. üÔÏ ÍÏÖÎÏ ËÁË-ÎÉÂÕÄØ ÉÚÍÅÎÉÔØ?

AFAIK ÎÅÔ.

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ÷ÌÁÄÅÀ ÄÙÒÏËÏÌÏÍ ÎÁ ÕÒÏ×ÎÅ ÐÏÌØÚÏ×ÁÔÅÌÑ.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required