AVRGCC ICCAVR

Jul 27, 2008 Last reply: 17 years ago 17 Replies

All,


ñ ÄÁÖÅ ÏÔËÁÔÉÌÓÑ ÎÁ ×ÅÒÓÉÀ 20080430... ÄÕÍÁÌ ÇÌÀË ÔÏÌØËÏ × ÎÏ×ÙÈ...
ËÁË ×ÏÏÂÝÅ ÎÁÒÏÄ Ó ÜÔÉÍ avrgcc ÒÁÂÏÔÁÅÔ ËÏÌØ ÏÎ ÜÌÅÍÅÎÔÁÒÎÕÀ ÓÔÒÏËÕ:

while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character



ÎÅÐÒÁ×ÉÌØÎÏ ËÏÍÐÉÌÉÒÕÅÔ?


unsigned char getSer_0(void) {



292: 20 91 31 01 lds r18, 0x0131
296: 30 91 32 01 lds r19, 0x0132
29a: 80 91 4f 01 lds r24, 0x014F
29e: 90 91 50 01 lds r25, 0x0150
2a2: 28 17 cp r18, r24
2a4: 39 07 cpc r19, r25
2a6: 91 f0 breq .+36 ; 0x2cc <getSer_0+0x3a>


ó ÞÅÇÏ ÔÕÔ ÐÒÙÖÏË × ËÏÎÅÃ, Á ÎÅ × ÎÁÞÁÌÏ???


unsigned char received = 0x00;



while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character



received = SCRxBuf_0[SCRxRdIdx_0++];



2a8: f9 01 movw r30, r18
2aa: e9 5e subi r30, 0xE9 ; 233
2ac: fe 4f sbci r31, 0xFE ; 254
2ae: e0 81 ld r30, Z
2b0: c9 01 movw r24, r18
2b2: 01 96 adiw r24, 0x01 ; 1
2b4: 90 93 32 01 sts 0x0132, r25
2b8: 80 93 31 01 sts 0x0131, r24

if(SCRxRdIdx_0 >= SC0RXBUFSIZ)



2bc: 48 97 sbiw r24, 0x18 ; 24
2be: 20 f0 brcs .+8 ; 0x2c8 <getSer_0+0x36>

SCRxRdIdx_0 = 0;



2c0: 10 92 32 01 sts 0x0132, r1
2c4: 10 92 31 01 sts 0x0131, r1

return received; }



2c8: 8e 2f mov r24, r30
2ca: 08 95 ret
2cc: ff cf rjmp .-2 ; 0x2cc <getSer_0+0x3a>


// á ÔÕÔ É ×Ï×ÓÅ ÐÒÐÏÓÔÏ ÎÁÐÒÏÓÔÏ ×ÉÓÎÅÍ...


ôÏÔ ÖÅ ÉÓÈÏÄÎÉË, ÔÏÌØËÏ ÐÏÄ:

ICCAVR 6



(0092) unsigned char getSer_0(void) (0093) { (0094) unsigned char received = 0x00; _getSer_0: received --> R16



017D 2700 CLR R16 (0095) (0096) while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character
017E 9020016C LDS R2,_SCRxWrIdx_0
0180 9030016D LDS R3,_SCRxWrIdx_0+1
0182 9040016E LDS R4,_SCRxRdIdx_0
0184 9050016F LDS R5,_SCRxRdIdx_0+1
0186 1442 CP R4,R2
0187 0453 CPC R5,R3
0188 F3A9 BEQ 0x017E (0097) (0098) received = SCRxBuf_0[SCRxRdIdx_0++]; (0099) (0100) if(SCRxRdIdx_0 >= SC0RXBUFSIZ)
0189 01C2 MOVW R24,R4
018A 9601 ADIW R24,1
018B 9390016F STS _SCRxRdIdx_0+1,R25
018D 9380016E STS _SCRxRdIdx_0,R24
018F E780 LDI R24,0x70
0190 E091 LDI R25,1
0191 01F2 MOVW R30,R4
0192 0FE8 ADD R30,R24
0193 1FF9 ADC R31,R25
0194 8100 LDD R16,Z+0
0195 9180016E LDS R24,_SCRxRdIdx_0
0197 9190016F LDS R25,_SCRxRdIdx_0+1
0199 3188 CPI R24,0x18
019A E0E0 LDI R30,0
019B 079E CPC R25,R30
019C F030 BCS 0x01A3 (0101) SCRxRdIdx_0 = 0;
019D 2422 CLR R2
019E 2433 CLR R3
019F 9230016F STS _SCRxRdIdx_0+1,R3
01A1 9220016E STS _SCRxRdIdx_0,R2 (0102) (0103) return received;
01A3 9508 RET (0104) }

// ÷ӣ, ×ÒÏÄÅ, ÚÄÅÓØ ÌÏÇÉÞÎÏ.


Andrey


Hед.

Абсолютно правильно. Что самое смешное.

А с того, что умный шибко. GCC. Соптимизировал твой while(forver) в конструкцию вида jmp $. Ибо, следи за мыслью. Он их вначале загружает в регистры из ОЗУ и потом сравнивает. Первая стадия оптимизации, следи за мыслью -- не грузить в регистры уже там находящееся, ибо это бессмысленно и накладно по ресурсам:

lds r18, 0x0131 lds r19, 0x0132 lds r24, 0x014F lds r25, 0x0150 L1: cp r18, r24 cpc r19, r25 breq L1

Так сделает каждый разумный компилятор. Может не конкретно в таком выражении (вот IAR не делает, и это по совершенно отдельной причине), но в случае отсутствия циклов -- точно совершенно. Вторая стадия оптимизации -- выкинуть весь цикл ввиду абсурдности. Попробуй поставить разные -O0, -O1, -O2, -O3 ключи оптимизации и посмотреть что получается. Занимательно будет. И заодно почитай info gcc о ключиках, которые включают эти -Ox.

Hе виснем, а выполняем while(forever). В смысле jmp $.

google://volatile. Вобщем низачот. В очередной раз убеждаюсь, что модное @#$ (IAR) в красивой обёртке учит исключительно плохому. Если не дошло, то шибко умный в данном случае на самом деле IAR, а не GCC, который видит, что ты в данном случае сам облажался или не умеешь на C писать, но он панимашь-ли юзер-френдли должен быть, и подчищает все баги за тобой на ходу, отключая оптимизацию в явно абсурдных ситуациях.

Hello, Kirill! You wrote to Andrey Arnold on Tue, 29 Jul 2008 00:20:59 +0600:

??>> ñ ÄÁÖÅ ÏÔËÁÔÉÌÓÑ ÎÁ ×ÅÒÓÉÀ 20080430... ??>> ÄÕÍÁÌ ÇÌÀË ÔÏÌØËÏ × ÎÏ×ÙÈ... KF> HÅÄ. ??>> while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character ??>> ÎÅÐÒÁ×ÉÌØÎÏ ËÏÍÐÉÌÉÒÕÅÔ? KF> áÂÓÏÌÀÔÎÏ ÐÒÁ×ÉÌØÎÏ. þÔÏ ÓÁÍÏÅ ÓÍÅÛÎÏÅ. á ÞÅÇÏ ÔÕÔ ÐÒÁ×ÉÌØÎÏÇÏ? á ÕÖ ÔÅÍ ÂÏÌÅÅ ÓÍÅÛÎÏÇÏ?

(ñ ÔÕÔ ÖÄÕ, ËÏÇÄÁ × ÐÒÅÒÙ×ÁÎÉÉ, ÞÔÏ-ÎÉÂÕÄØ ÉÚÍÅÎÉÔÓÑ - ÜÔÏ ÖÅ ÐÏÞÔÉ ÏÞÅ×ÉÄÎÏ...)

??>> unsigned char getSer_0(void) ??>> { ??>> 292: 20 91 31 01 lds r18, 0x0131 ??>> 296: 30 91 32 01 lds r19, 0x0132 ??>> 29a: 80 91 4f 01 lds r24, 0x014F ??>> 29e: 90 91 50 01 lds r25, 0x0150 ??>> 2a2: 28 17 cp r18, r24 ??>> 2a4: 39 07 cpc r19, r25 ??>> 2a6: 91 f0 breq .+36 ; 0x2cc <getSer_0+0x3a>

??>> ó ÞÅÇÏ ÔÕÔ ÐÒÙÖÏË × ËÏÎÅÃ, Á ÎÅ × ÎÁÞÁÌÏ???

KF> á Ó ÔÏÇÏ, ÞÔÏ ÕÍÎÙÊ ÛÉÂËÏ. GCC. óÏÐÔÉÍÉÚÉÒÏ×ÁÌ Ô×ÏÊ while(forver) × KF> ËÏÎÓÔÒÕËÃÉÀ ×ÉÄÁ jmp $. éÂÏ, ÓÌÅÄÉ ÚÁ ÍÙÓÌØÀ. ïÎ ÉÈ ×ÎÁÞÁÌÅ ÚÁÇÒÕÖÁÅÔ × KF> ÒÅÇÉÓÔÒÙ ÉÚ ïúõ É ÐÏÔÏÍ ÓÒÁ×ÎÉ×ÁÅÔ. ðÅÒ×ÁÑ ÓÔÁÄÉÑ ÏÐÔÉÍÉÚÁÃÉÉ, ÓÌÅÄÉ ÚÁ KF> ÍÙÓÌØÀ -- ÎÅ ÇÒÕÚÉÔØ × ÒÅÇÉÓÔÒÙ ÕÖÅ ÔÁÍ ÎÁÈÏÄÑÝÅÅÓÑ, ÉÂÏ ÜÔÏ KF> ÂÅÓÓÍÙÓÌÅÎÎÏ É ÎÁËÌÁÄÎÏ ÐÏ ÒÅÓÕÒÓÁÍ:

éÚ ÏÄÎÏÊ ÍÎÉÍÏÊ ÂÅÓÓÍÙÓÌÉÃÙ, ÐÏÑ×ÌÑÅÔÓÑ ÂÙÓÓÍÙÓÌÉÃÁ ÒÅÁÌØÎÁÑ.

KF> lds r18, 0x0131 KF> lds r19, 0x0132 KF> lds r24, 0x014F KF> lds r25, 0x0150 KF> L1: cp r18, r24 KF> cpc r19, r25 KF> breq L1

KF> ôÁË ÓÄÅÌÁÅÔ ËÁÖÄÙÊ ÒÁÚÕÍÎÙÊ ËÏÍÐÉÌÑÔÏÒ. íÏÖÅÔ ÎÅ ËÏÎËÒÅÔÎÏ × ÔÁËÏÍ KF> ×ÙÒÁÖÅÎÉÉ (×ÏÔ IAR ÎÅ ÄÅÌÁÅÔ, É ÜÔÏ ÐÏ ÓÏ×ÅÒÛÅÎÎÏ ÏÔÄÅÌØÎÏÊ ÐÒÉÞÉÎÅ), KF> ÎÏ × ÓÌÕÞÁÅ ÏÔÓÕÔÓÔ×ÉÑ ÃÉËÌÏ× -- ÔÏÞÎÏ ÓÏ×ÅÒÛÅÎÎÏ.

KF> ÷ÔÏÒÁÑ ÓÔÁÄÉÑ ÏÐÔÉÍÉÚÁÃÉÉ -- ×ÙËÉÎÕÔØ ×ÅÓØ ÃÉËÌ ××ÉÄÕ ÁÂÓÕÒÄÎÏÓÔÉ. KF> ðÏÐÒÏÂÕÊ ÐÏÓÔÁ×ÉÔØ ÒÁÚÎÙÅ -O0, -O1, -O2, -O3 ËÌÀÞÉ ÏÐÔÉÍÉÚÁÃÉÉ É KF> ÐÏÓÍÏÔÒÅÔØ ÞÔÏ ÐÏÌÕÞÁÅÔÓÑ. úÁÎÉÍÁÔÅÌØÎÏ ÂÕÄÅÔ. é ÚÁÏÄÎÏ ÐÏÞÉÔÁÊ info KF> gcc Ï ËÌÀÞÉËÁÈ, ËÏÔÏÒÙÅ ×ËÌÀÞÁÀÔ ÜÔÉ -Ox.

??>> 2c8: 8e 2f mov r24, r30 ??>> 2ca: 08 95 ret ??>> 2cc: ff cf rjmp .-2 ; 0x2cc <getSer_0+0x3a>

??>> // á ÔÕÔ É ×Ï×ÓÅ ÐÒÐÏÓÔÏ ÎÁÐÒÏÓÔÏ ×ÉÓÎÅÍ...

KF> HÅ ×ÉÓÎÅÍ, Á ×ÙÐÏÌÎÑÅÍ while(forever). ÷ ÓÍÙÓÌÅ jmp $.

google://volatile. ÷ÏÂÝÅÍ ÎÉÚÁÞÏÔ. ÷ ÏÞÅÒÅÄÎÏÊ ÒÁÚ ÕÂÅÖÄÁÀÓØ, ÞÔÏ ÍÏÄÎÏÅ @#$ (IAR)

üÔÏ ÎÅ "ÍÏÄÎÏÅ" éáò, ÜÔÏ ÜÔÏ ÓÏ×ÓÅÍ ÎÅÍÏÄÎÏÅ... ICCAVR. × ËÒÁÓÉ×ÏÊ Ï£ÒÔËÅ ÕÞÉÔ ÉÓËÌÀÞÉÔÅÌØÎÏ ÐÌÏÈÏÍÕ. åÓÌÉ ÎÅ ÄÏÛÌÏ, ÔÏ ÛÉÂËÏ ÕÍÎÙÊ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÁ ÓÁÍÏÍ ÄÅÌÅ IAR, Á ÎÅ GCC, ËÏÔÏÒÙÊ ×ÉÄÉÔ, ÞÔÏ ÔÙ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÓÁÍ ÏÂÌÁÖÁÌÓÑ ÉÌÉ ÎÅ ÕÍÅÅÛØ ÎÁ C ÐÉÓÁÔØ, ÎÏ ÏÎ ÐÁÎÉÍÁÛØ-ÌÉ ÀÚÅÒ-ÆÒÅÎÄÌÉ ÄÏÌÖÅÎ ÂÙÔØ, É ÐÏÄÞÉÝÁÅÔ ×ÓÅ ÂÁÇÉ ÚÁ ÔÏÂÏÊ ÎÁ ÈÏÄÕ, ÏÔËÌÀÞÁÑ ÏÐÔÉÍÉÚÁÃÉÀ × Ñ×ÎÏ ÁÂÓÕÒÄÎÙÈ ÓÉÔÕÁÃÉÑÈ.

ñ ÎÅ ×ÉÖÕ ÏÛÉÂÏË Ó ÔÏÞËÉ ÚÒÅÎÉÑ ÓÉÎÔÁËÓÉÓÁ ãÅ, ÐÏÓÅÍÕ ÎÁ ÍÏÊ ×ÚÇÌÑÄ ÜÔÏ ÇÌÀË ËÏÍÐÉÌÑÔÏÒÁ ÞÉÓÔÏÊ ×ÏÄÙ ...

úù. ñ É ÒÁÎØÛÅ ÎÁÔÁÌËÉ×ÁÌÓÑ ÎÁ ËÁËÉÅ-ÔÏ ÚÁ×ÉÓÏÎÙ (ÉÌÉ ÍÏÖÅÔ ÏÛÉÂËÉ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ (ÔÁË ÓÒÁÚÕ ÎÅ ×ÓÐÏÍÎÀ)) Õ ÓÔÒÏË ÔÉÐÁ

while(1) {}

ÎÏ ÒÕËÉ ÎÅ ÄÏÈÏÄÉÌÉ ÒÁÚÏÂÒÁÔØÓÑ × ÉÓÔÉÎÎÏÊ ÐÒÉÞÉÎÅ.

With best regards, Andrej Arnold. E-mail: snipped-for-privacy@aol.com

Hello snipped-for-privacy@aol.com!

29 Jul 36 12:09, snipped-for-privacy@aol.com wrote to Kirill Frolov:

??>>> ñ ÄÁÖÅ ÏÔËÁÔÉÌÓÑ ÎÁ ×ÅÒÓÉÀ 20080430... ??>>> ÄÕÍÁÌ ÇÌÀË ÔÏÌØËÏ × ÎÏ×ÙÈ... KF>> HÅÄ. ??>>> while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character ??>>> ÎÅÐÒÁ×ÉÌØÎÏ ËÏÍÐÉÌÉÒÕÅÔ? KF>> áÂÓÏÌÀÔÎÏ ÐÒÁ×ÉÌØÎÏ. þÔÏ ÓÁÍÏÅ ÓÍÅÛÎÏÅ. b> á ÞÅÇÏ ÔÕÔ ÐÒÁ×ÉÌØÎÏÇÏ? á ÕÖ ÔÅÍ ÂÏÌÅÅ ÓÍÅÛÎÏÇÏ?

b> (ñ ÔÕÔ ÖÄÕ, ËÏÇÄÁ × ÐÒÅÒÙ×ÁÎÉÉ, ÞÔÏ-ÎÉÂÕÄØ ÉÚÍÅÎÉÔÓÑ - ÜÔÏ ÖÅ ÐÏÞÔÉ b> ÏÞÅ×ÉÄÎÏ...)

HÕ ÒÁÚ ÔÅÂÅ ÏÞÅ×ÉÄÎÏ - ÔÏ ÓÏÏÂÝÉ Ï ÜÔÏÍ ËÏÍÐÉÌÑÔÏÒÕ, ÏÂßÑ×É× ÐÅÒÅÍÅÎÎÕÀ volatile , ÔÏ ÅÓÔØ ÉÍÅÀÝÕÀ ×ÏÚÍÏÖÎÏÓÔØ ÉÚÍÅÎÉÔØÓÑ "ÓÎÁÒÕÖÉ".

âÅÚ ÔÁËÏÇÏ ÏÂßÑ×ÌÅÎÉÑ ËÏÍÐÉÌÑÔÏÒÕ "ÏÞÅ×ÉÄÎÏ" ÔÏ, ÞÔÏ ÐÅÒÅÍÅÎÎÁÑ ÎÅ ÍÏÖÅÔ ÉÚÍÅÎÉÔØÓÑ, ÔÁË ËÁË Ë ÎÅÊ ÎÅÔ ÏÂÒÁÝÅÎÉÊ ×ÎÕÔÒÉ ÃÉËÌÁ. ðÏÜÔÏÍÕ ÏÎ É ÎÅ ×ÙÐÏÌÎÑÅÔ "ÌÉÛÎÉÅ" ÓÒÁ×ÎÅÎÉÑ. ôÏ ÅÓÔØ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ - ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÂÁÇ, Á ÆÉÞÁ.

Sergei

Sergei,

You wrote to snipped-for-privacy@aol.com:

??>>>> ñ ÄÁÖÅ ÏÔËÁÔÉÌÓÑ ÎÁ ×ÅÒÓÉÀ 20080430... ??>>>> ÄÕÍÁÌ ÇÌÀË ÔÏÌØËÏ × ÎÏ×ÙÈ... KF>>> HÅÄ. ??>>>> while(SCRxRdIdx_0 == SCRxWrIdx_0); // wait for character ??>>>> ÎÅÐÒÁ×ÉÌØÎÏ ËÏÍÐÉÌÉÒÕÅÔ? KF>>> áÂÓÏÌÀÔÎÏ ÐÒÁ×ÉÌØÎÏ. þÔÏ ÓÁÍÏÅ ÓÍÅÛÎÏÅ. b>> á ÞÅÇÏ ÔÕÔ ÐÒÁ×ÉÌØÎÏÇÏ? á ÕÖ ÔÅÍ ÂÏÌÅÅ ÓÍÅÛÎÏÇÏ? SP>

b>> (ñ ÔÕÔ ÖÄÕ, ËÏÇÄÁ × ÐÒÅÒÙ×ÁÎÉÉ, ÞÔÏ-ÎÉÂÕÄØ ÉÚÍÅÎÉÔÓÑ - ÜÔÏ ÖÅ b>> ÐÏÞÔÉ ÏÞÅ×ÉÄÎÏ...) SP> HÕ ÒÁÚ ÔÅÂÅ ÏÞÅ×ÉÄÎÏ - ÔÏ ÓÏÏÂÝÉ Ï ÜÔÏÍ ËÏÍÐÉÌÑÔÏÒÕ, SP> ÏÂßÑ×É× ÐÅÒÅÍÅÎÎÕÀ volatile , ÔÏ ÅÓÔØ ÉÍÅÀÝÕÀ ×ÏÚÍÏÖÎÏÓÔØ SP> ÉÚÍÅÎÉÔØÓÑ "ÓÎÁÒÕÖÉ". SP>

SP> âÅÚ ÔÁËÏÇÏ ÏÂßÑ×ÌÅÎÉÑ ËÏÍÐÉÌÑÔÏÒÕ "ÏÞÅ×ÉÄÎÏ" ÔÏ, ÞÔÏ ÐÅÒÅÍÅÎÎÁÑ SP> ÎÅ ÍÏÖÅÔ ÉÚÍÅÎÉÔØÓÑ, ÔÁË ËÁË Ë ÎÅÊ ÎÅÔ ÏÂÒÁÝÅÎÉÊ ×ÎÕÔÒÉ ÃÉËÌÁ. SP>

SP> ðÏÜÔÏÍÕ ÏÎ É ÎÅ ×ÙÐÏÌÎÑÅÔ "ÌÉÛÎÉÅ" ÓÒÁ×ÎÅÎÉÑ. SP>

SP> ôÏ ÅÓÔØ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ - ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÂÁÇ, Á ÆÉÞÁ.

... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... óÐÁÓÉÂÏ.

Andrey

Hi, Andrey!

SP>> ôÏ ÅÓÔØ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ - ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÂÁÇ, Á ÆÉÞÁ.

AA> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA> óÐÁÓÉÂÏ.

ÎÁ ÓÏÂÓÔ×ÅÎÎÏÍ ÏÐÙÔÅ ÓËÁÖÕ, ÞÔÏ ÐÒÏÂÅÌ ÓÕÒأÚÎÙÊ. ÏÂÒÁÔÉ ×ÎÉÍÁÎÉÅ:
formatting link
ÔÁÍ ÍÎÏÇÏ ÞÅÇÏ Õ×ÉÄÉÛØ, ÅÓÌÉ ÅÓÔØ, ËÏÎÅÞÎÏ, Ë ÞÅÍÕ ÐÒÉËÏÐÁÔØÓÑ.

oleg

Hi, Kirill!

KF> google://volatile. ÷ÏÂÝÅÍ ÎÉÚÁÞÏÔ. ÷ ÏÞÅÒÅÄÎÏÊ ÒÁÚ ÕÂÅÖÄÁÀÓØ, ÞÔÏ KF> ÍÏÄÎÏÅ @#$ (IAR) × ËÒÁÓÉ×ÏÊ Ï£ÒÔËÅ ÕÞÉÔ ÉÓËÌÀÞÉÔÅÌØÎÏ ÐÌÏÈÏÍÕ. åÓÌÉ KF> ÎÅ ÄÏÛÌÏ, ÔÏ ÛÉÂËÏ ÕÍÎÙÊ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÁ ÓÁÍÏÍ ÄÅÌÅ IAR, Á ÎÅ GCC, KF> ËÏÔÏÒÙÊ ×ÉÄÉÔ, ÞÔÏ ÔÙ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÓÁÍ ÏÂÌÁÖÁÌÓÑ ÉÌÉ ÎÅ ÕÍÅÅÛØ ÎÁ C KF> ÐÉÓÁÔØ, ÎÏ ÏÎ ÐÁÎÉÍÁÛØ-ÌÉ ÀÚÅÒ-ÆÒÅÎÄÌÉ ÄÏÌÖÅÎ ÂÙÔØ, É ÐÏÄÞÉÝÁÅÔ ×ÓÅ KF> ÂÁÇÉ ÚÁ ÔÏÂÏÊ ÎÁ ÈÏÄÕ, ÏÔËÌÀÞÁÑ ÏÐÔÉÍÉÚÁÃÉÀ × Ñ×ÎÏ ÁÂÓÕÒÄÎÙÈ KF> ÓÉÔÕÁÃÉÑÈ.

Á ÍÏÒÁÔØ ÂÁÓÎÉ ËÁËÏ×Á? ÎÁ ޣÍ ÐÒÏÇÒÁÍÍÉÔØ? ÐÏÄ ARM ÞÔÏ ÌÕÞÛÅ? ÓÅÊÞÁÓ ÐÏÓÔÁ×ÉÌ keil uVision 3.22. þÔÏ ÓËÁÖÕÔØ ÚÎÁÔÏËÉ?

oleg

Hello Andrey Arnold!

SP>> ÏÂßÑ×É× ÐÅÒÅÍÅÎÎÕÀ volatile , ÔÏ ÅÓÔØ ÉÍÅÀÝÕÀ ×ÏÚÍÏÖÎÏÓÔØ

AA> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA> óÐÁÓÉÂÏ.

ïÔÍÅÞÕ, ÞÔÏ ÓÕÔØ ÐÒÉÍÅÎÅÎÉÑ volatile ÒÁÚßÑÓÎÑÌÁÓØ ÉÍÈÏ ÄÁÖÅ × ÔÏÎÀÓÅÎØËÏÍ "ÓÐÒÁ×ÏÞÎÉËÅ ÐÏ ÑÚÙËÕ ó" âÏÌÓËÉ ...

Oleg,

You wrote to Andrey Arnold:

SP>>> ôÏ ÅÓÔØ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ - ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÂÁÇ, Á ÆÉÞÁ. AA>> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA>> óÐÁÓÉÂÏ. od> ÎÁ ÓÏÂÓÔ×ÅÎÎÏÍ ÏÐÙÔÅ ÓËÁÖÕ, ÞÔÏ ÐÒÏÂÅÌ ÓÕÒأÚÎÙÊ.

ôÙ ×ÉÄÉÍÏ ÔÕÔ ÎÅÄÁ×ÎÏ, Á ÐÏÍÎÉÔÓÑ ÎÁ ÇÒÁÎÉÃÅ ÔÙÓÑÞÅÌÅÔÉÊ ÔÕÔ ÚÁËÌÅ×ÁÌÉ ÔÏÇÏ ÖÅ ÛÅÐÅÌÅ×Á, ÚÁ ÔÏ ÞÔÏ ÏÎ ÐÏÓÍÅÌ ÕÓÏÍÎÉÔÓÑ × ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ × ãÅ...

od> ÏÂÒÁÔÉ ×ÎÉÍÁÎÉÅ: od>

formatting link
á Ï ËÁËÏÍ ÔÁÍ ËÏÍÐÉÌÑÔÏÒÅ ÒÅÞØ-ÔÏ, Ñ ÞÔÏ-ÔÏ ÎÅ ÐÏÎÑÌ?

od> ÔÁÍ ÍÎÏÇÏ ÞÅÇÏ Õ×ÉÄÉÛØ, ÅÓÌÉ ÅÓÔØ, ËÏÎÅÞÎÏ, Ë ÞÅÍÕ ÐÒÉËÏÐÁÔØÓÑ.

ðÏËÁ Ñ ×ÉÖÕ, ÞÔÏ ICCAVR É AVRGCC ËÏÍÐÉÌÉÒÕÀÔ ÆÕÎËÃÉÏÎÁÌØÎÏ ÒÁÚÌÉÞÎÏ ÏÄÉÎÁËÏ×ÙÅ ÉÓÈÏÄÎÙÅ ÓÔÒÏËÉ... É ÅÓÌÉ ÕÖ ÎÁ ÔÏ ÐÏÛÌÏ, ÔÏ ICCAVR c extern ÏÂÒÁÝÁÅÔÓÑ ËÏÒÒÅËÔÎÏ, Á AVRGCC ÄÏÄÕÍÙ×ÁÅÔ ÚÁ ÐÒÏÇÒÁÍÍÉÓÔÁ ÓÅÊ ×ÏÐÒÏÓ (ÞÔÏ (ÄÏÄÕÍÙ×ÁÎÉÅ) ÔÕÔ ÓÔÁ×ÉÌÏÓØ ICCAVR × ÕËÏÒ ... ÔÉÐÁ).

Andrey

Alexander,

You wrote to Andrey Arnold:

SP>>> ÏÂßÑ×É× ÐÅÒÅÍÅÎÎÕÀ volatile , ÔÏ ÅÓÔØ ÉÍÅÀÝÕÀ ×ÏÚÍÏÖÎÏÓÔØ AA>> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA>> óÐÁÓÉÂÏ. AK> ïÔÍÅÞÕ, ÞÔÏ ÓÕÔØ ÐÒÉÍÅÎÅÎÉÑ volatile ÒÁÚßÑÓÎÑÌÁÓØ ÉÍÈÏ ÄÁÖÅ × AK> ÔÏÎÀÓÅÎØËÏÍ "ÓÐÒÁ×ÏÞÎÉËÅ ÐÏ ÑÚÙËÕ ó" âÏÌÓËÉ ...

á × ÍϣÍ ÓÐÒÁ×ÏÞÎÉËÅ ÄÌÑ ÷õúÏ× ÎÁÐÉÓÁÎÏ, ÞÔÏ ÜÔÏ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÎÅ ÓÔÁÎÄÁÒÔÉÚÉÒÏ×ÁÎÏ × ãÅ, É ÒÅÁÌÉÚÁÃÉÑ ÚÁ×ÉÓÉÔ ÏÔ ËÏÍÐÉÌÑÔÏÒÁ.

HÕ Á ÐÏÓËÏÌØËÕ ICCAVR ÐÏËÁ ÏÂÈÏÄÉÌÓÑ Õ ÍÅÎÑ ÂÅÚ "ÉÚÍÅÎÞÉ×ÏÓÔÉ"... ÄÒÕÇÏÅ ÐÏ×ÅÄÅÎÉÅ AVRGCC É ÐÏËÁÚÁÌÏÓØ ÉÚ ÒÑÄÁ ×ÏÎ... ÐÒÏ "ÉÚÍÅÎÞÉ×ÏÓÔØ" × ÔÏÔ ÍÏÍÅÎÔ Ñ É ÎÅ ÐÏÄÕÍÁÌ.

Andrey

Hello, Andrey! You wrote to Oleg Dozhdev on Sun, 03 Aug 2008 15:32:04 +0400:

AA> Oleg,

AA> You wrote to Andrey Arnold:

SP>>>> ôÏ ÅÓÔØ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ËÏÍÐÉÌÑÔÏÒÁ - ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÂÁÇ, Á ÆÉÞÁ. AA>>> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA>>> óÐÁÓÉÂÏ. od>> ÎÁ ÓÏÂÓÔ×ÅÎÎÏÍ ÏÐÙÔÅ ÓËÁÖÕ, ÞÔÏ ÐÒÏÂÅÌ ÓÕÒأÚÎÙÊ.

AA> ôÙ ×ÉÄÉÍÏ ÔÕÔ ÎÅÄÁ×ÎÏ, Á ÐÏÍÎÉÔÓÑ ÎÁ ÇÒÁÎÉÃÅ ÔÙÓÑÞÅÌÅÔÉÊ ÔÕÔ AA> ÚÁËÌÅ×ÁÌÉ ÔÏÇÏ ÖÅ ÛÅÐÅÌÅ×Á, ÚÁ ÔÏ ÞÔÏ ÏÎ ÐÏÓÍÅÌ ÕÓÏÍÎÉÔÓÑ × AA> ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ × ãÅ...

á ÞÔÏ "ÎÅÓÔÁÎÄÁÒÔÎÏÇÏ" × volatile ? òÁÚ×Å ÞÔÏ ÑÚÙË ÕÞÉÔØ ÎÁÄÏ.... ûÅÐÅÌÅ×Á "ÚÁËÌÅ×ÁÌÉ" ËÁË ÏÂÙÞÎÏ ÚÁ ÔÏ, ÞÔÏ ÏÎ ÇÏ×ÏÒÉÔ Ï ÔÏÍ, Ï ÞÅÍ É ÐÏÎÑÔÉÑ ÎÅ ÉÍÅÅÔ. ï ãÅ ÏÎ ÍÏÖÅÔ(ÍÏÇ) ÒÁÓÓÕÖÄÁÔØ ÓËÏÌØËÏ ÕÇÏÄÎÏ - ÏÎ ÅÇÏ ÎÅ ÚÎÁÅÔ, ÐÏ ËÒÁÊÎÅÊÍÅÒÅ - ÎÅ ÚÎÁÌ ÔÏÇÄÁ. HÁÄÅÀÓØ ÞÔÏ ÕÖÅ ×ÙÕÞÉÌ ÈÏÔØ ÞÔÏÔÏ.

With best regards, Alexander Torres.

formatting link
OR
formatting link

Hello, Andrey Arnold! You wrote in conference fido7.ru.embedded to Alexander Konosevich on Sun, 03 Aug 2008 15:44:05 +0400:

SP>>>> ÏÂßÑ×É× ÐÅÒÅÍÅÎÎÕÀ volatile , ÔÏ ÅÓÔØ ÉÍÅÀÝÕÀ ×ÏÚÍÏÖÎÏÓÔØ AA>>> ... ÔÕÔ Õ ÍÅÎÑ ×ÉÄÉÍÏ É × ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÂÅÌ × ÚÎÁÎÉÑÈ... AA>>> óÐÁÓÉÂÏ. AK>> ïÔÍÅÞÕ, ÞÔÏ ÓÕÔØ ÐÒÉÍÅÎÅÎÉÑ volatile ÒÁÚßÑÓÎÑÌÁÓØ ÉÍÈÏ ÄÁÖÅ × AK>> ÔÏÎÀÓÅÎØËÏÍ "ÓÐÒÁ×ÏÞÎÉËÅ ÐÏ ÑÚÙËÕ ó" âÏÌÓËÉ ...

AA> á × ÍϣÍ ÓÐÒÁ×ÏÞÎÉËÅ ÄÌÑ ÷õúÏ× ÎÁÐÉÓÁÎÏ, ÞÔÏ ÜÔÏ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÎÅ AA> ÓÔÁÎÄÁÒÔÉÚÉÒÏ×ÁÎÏ × ãÅ, É ÒÅÁÌÉÚÁÃÉÑ ÚÁ×ÉÓÉÔ ÏÔ ËÏÍÐÉÌÑÔÏÒÁ.

ëÌÀÞÅ×ÏÅ ÓÌÏ×Ï AFAIK ÓÔÁÎÄÁÒÔÉÚÏ×ÁÎÏ, ÒÅÁÌÉÚÁÃÉÑ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÚÁ×ÉÓÉÔ, ÔÁË ÏÎÁ Õ ÍÎÏÇÉÈ ÓÌÏ× ÚÁ×ÉÓÉÔ.

dima

formatting link

Hi, Andrey!

od>> ÏÂÒÁÔÉ ×ÎÉÍÁÎÉÅ: od>>

formatting link
AA> á Ï ËÁËÏÍ ÔÁÍ ËÏÍÐÉÌÑÔÏÒÅ ÒÅÞØ-ÔÏ, Ñ ÞÔÏ-ÔÏ ÎÅ ÐÏÎÑÌ?

od>> ÔÁÍ ÍÎÏÇÏ ÞÅÇÏ Õ×ÉÄÉÛØ, ÅÓÌÉ ÅÓÔØ, ËÏÎÅÞÎÏ, Ë ÞÅÍÕ ÐÒÉËÏÐÁÔØÓÑ.

ÎÉ Ï ËÁËÏÍ, ÐÒÏÓÔÏ Ó×ÏÊ ÕÒÏ×ÅÎØ ÐÒÏ×ÅÒÉÛØ É ÐÏÄÕÞÉÛØ ÇÄÅ ÎÁÄÏ. Ñ ×ÏÏÂÝÅ ÐÏÌÏ×ÉÎÕ ×ÏÐÒÏÓÏ× ÚÁ×ÁÌÉÌ, ÅÓÌÉ ÔÙ ÔÁË ÂÏÌÅÚÎÅÎÎÏ ÏÔÎÏÓÉÛÓÏ.

oleg

ðÒÉ×ÅÔ, oleg dozhdev!

02.08.2008 16:04 ÷Ù ÐÉÓÁÌÉ:

äÌÑ ARM ÉÓÐÏÌØÚÕÀ gcc (ÐÉÛÕ ÎÁ C É C++), ÎÁÒÅËÁÎÉÊ ÎÅ ÉÍÅÀ.

Hi, Alex!

AM> äÌÑ ARM ÉÓÐÏÌØÚÕÀ gcc (ÐÉÛÕ ÎÁ C É C++), ÎÁÒÅËÁÎÉÊ ÎÅ ÉÍÅÀ.

ÜÔÏ ÄÌÑ ×ÉÎÄÏ×? ÞÔÏ ÅÓÔØ × ËÏÍÐÌÅËÔÅ É ÏÔËÕÄÁ ÓËÁÞÁÔØ ÍÏÖÎÏ? ÅÓÌÉ ÅÓÔØ, ÄÁÊ ÓÓÙÌÏÞËÕ ÎÁ ËÏÍÐÉÌÑÔÏÒ. (ËÁË ÉÎÅÔ ÄÁÄÕÔ, ÓËÁÞÁÀ.) ×ÏÔ ÓÅÊÞÁÓ ÐÏÓÍÏÔÒÅÌ ÎÁ ÄÉÓËÅ, ËÏÌÌÅÇÁ ÂÙ×ÛÉÊ ÐÉÓÁÌ, ÅÓÔØ gccarm331.exe. ×ÉÄÉÍÏ, ÕÓÔÁÎÏ×ÏÞÎÉË, 21 ÍÅÔÒ. ÅÓÌÉ ÜÔÏ ÏÎÏ, ÔÏ, ËÁËÉÅ Õ ÎÅÇÏ ÐÌÀÓÙ ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó ËÅÉÌÏÍ? ×ÓÐÏÍÉÎÁÅÔÓÑ, ËÏÌÌÅÇÁ ÇÏ×ÏÒÉÌ, ÞÔÏ ËÏÄ, ÓÏÂÒÁÎÎÙÊ ËÅÊÌÏÍ É ÇÃà ÒÁÚÌÉÞÁÅÔÓÑ × 2 ÒÁÚÁ, ÎÅ × ÐÏÌØÚÕ ×ÔÏÒÏÇÏ. ÅÓÌÉ ÐÌÀÓÙ ×ӣ ÖÅ ÅÓÔØ (ÎÁÄÏ ÓËÁÚÁÔØ, ÍÎÅ ÓÁÍÏÍÕ ÎÅ ÎÒÁ×ÑÔÓÑ éäå, ÌÅÇÞÅ × ÎÏÔÐÁÄÅ++ ÎÁÂÒÁÔØ, Á ÚÁÔÅÍ ÉÚ ÆÁÒÁ ÚÁÐÕÓÔÉÔØ ËÏÍÐÉÌÑÔÏÒ), ÒÁÓÐÉÛÉ, ÐÏÖÁÌÕÊÓÔÁ.

oleg

Hа XXX -- лучше, а YYY -- однозначно дерьмо.

formatting link

Да конечно XXX -- говно и поделки финских студентов. (скромно умолчу, что насколько я знаю внутри uVision тот же gcc запрятан).

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required