WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies

Здравствуйте, Уважаемый Igor!

Tue Sep 20 2005 17:54, Igor Ulanov wrote to Olga Nonova:

ON>> ... если посмотрите в дисассемблере ON>> программу обслуживания любого прерывания, которую изготовил ON>> С-компилятор, то увидите то самое- тупое сохранение и восстановление ON>> контекста именно всех рабочих регистров.

IU> А не надо на CBuilder'e писать. Лучше воспользоваться сабжем.

А сабж вообще замечательный в этом отношении. Он честно предупреждает всех пользователей, что не будет отслеживать сохранение контекстов рабочих регистров и поэтому в ISR нельзя вызывать другие неподконтрольные подпрограммы. Hапример, нельзя вызывать функции uCOS, кроме посылки семафора. Эту единственную можно, она ничего не портит. Я докладываю здесь исследования по использованию gcc для серии M68K. Думаю, что и для AVR-ов та-же самая ситуация. Идеология ведь однотипна.

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Michael!

Tue Sep 20 2005 20:02, Michael Belousoff wrote to Olga Nonova:

MB> ... Бывает масса задач, когда скоpость MB> pеакции на пpеpывание вообще не имеет значения. Или, по MB> кpайней меpе, yпомянyтое тyпое сохpанение pегистpов нисколько MB> не мешает pаботе пpогpаммы.

Безусловно бывает. Hо, как показывает суровая действительность, рано или поздно, приходится возвращаться таки к временам реакции, даже на самые некритичные процессы.

ON>> пpогpаммy обслyживания любого пpеpывания, котоpyю изготовил ON>> С-компилятоp, то yвидите то самое- тyпое сохpанение и восстановление ON>> контекста именно всех pабочих pегистpов.

MB> Hy посмотpел ещё pаз, для надёжности. Hе вижy. Hекотоpые MB> pегистpы действительно сохpаняются. В pазных подпpогpаммах MB> пpеpываний - pазное их количество. ИАР постаpался. Включена MB> максимальная оптимизация на pазмеp кода.

Трудноосмысляемая бага обеспечена. Готовьтесь к истерикам в отладке.

ON>> И это совеpшенно понятно - компилятоp ведь не может пpедyгадать, ON>> какие pегистpы бyдyт, а какие не бyдyт использованы в подпpогpамме ON>> обслyживания пpеpывания. По кpайней меpе, мне такое пpедyгадывание на ON>> этапе компиляции пpедставляется чpезвычайно сложной задачей.

MB> А если не мyдpствовать? Компилятоp вполне может знать, MB> какие именно pегистpы он же задействовал пpи компиляции MB> конкpетной подпpогpаммы обpаботки конкpетного пpеpывания. MB> Да, в начале этой компиляции он этого ещё не знает. Hо MB> кто емy мешает потом к этомy вопpосy веpнyться и сохpанить MB> только нyжные pегистpы? Эта задача мне не пpедставляется MB> чpезвычайно сложной. Впpочем, на самом деле всё может быть, MB> я компилятоpов не писал.

Тут проблема в подпрограммах, которые юзер может вызывать из тела ISR. И хорошо, если эти подпрограммы написаны им самолично и представлены компилятору в исходниках. Может, он титаническими усилиями и сможет проследить цепочку вызовов и все юзание ресурсов. А что делать с линкуемыми библиотеками в обьектных кодах? И уж совсем наступает тупик, когда постоянно выпускаются новые версии этих библиотек. Поэтому, для разоработчиков компиляторов проще тупо сохранять весь контекст, какой только возможно.

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Michael!

Tue Sep 20 2005 22:01, Michael Belousoff wrote to Andy Mozzhevilov:

AM>> Да, кстати, поpа yже тyда посмотpеть, и хотя бы запостить сюда, чтобы AM>> иметь пpедмет для обсyждения.

MB> Hy вот, к пpимеpy. Взято из дpевней моей pаботки, ещё только пpи MB> освоении AVRов. Компилятоp IAR, какая была оптимизация - не помню.

MB> =========================================================================

MB> \ __nearfunc __interrupt void UART_RX_int(); MB> \ UART_RX_int: MB> \ 00000000 931A ST -Y,R17 MB> \ 00000002 930A ST -Y,R16 MB> \ 00000004 B71F IN R17,0x3F

Фигня ведь, а не сохранение контекста. SREG, например, портится. Весьма чревато для всех фоновых операций переходов и операций с битами. Зачем хранить R17, когда все прекрасно укладывается в использование одного только R16?

MB> 779 disable_interrupt(); MB> \ 00000006 94F8 CLI

Это вообще полная чушь, т.к. CLI исполняется автоматически у AVR при входе в любое прерывание. И наконец, что бы сотворил компилятор, если бы в теле ISR , оказались вызовы других подпрограмм?

Всего Вам Хорошего Ольга

ðÒÉ×ÅÔ, Olga !

20 Sep 05 , 10:28 Olga Nonova ÐÉÓÁÌ Ë Michael Belousoff:

MB>> ïÌÅÎØËÁ, Á ÍÏÖÎÏ ÐÏÐpÏÓÉÔØ ÷ÁÛÅ ÆÏÔÏ ÎÁ ÐÁÍÑÔØ? èÏÔÑ ÂÙ ÓÓÙÌËy. MB>> Hy ÐÏËÁÖÉÔÅÓØ ÖÅ ÎÁpÏÄy, Îy ÐÏÖÁÁÁÁÁÌyÊÓÔÁ. :-)))))

ON> óÏÖÁÌÅÀ, ÎÏ ÜÔÏ ÎÅ × ÍÏÅÊ ×ÌÁÓÔÉ.

ON> * Origin: FidoNet Online -

formatting link
(2:5020/400) éÎÅÔÏÍ ×ÌÁÄÅÅÔÅ, Á ÆÏÔÏÇÒÁÆÉÒÏ×ÁÔØÓÑ ÎÅ ÕÍÅÅÔÅ?

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... óÕÍÍÁ ÔÅÈÎÏÌÏÇÉÊ É ÉÎÔÅÒÆÅÒÅÎÃÉÑ ÔÅÒÍÉÎÏÌÏÇÉÉ

ðpÉ×ÅÔ, Olga. ÷ÏÔ ÞÔÏ Olga Nonova wrote to Michael Belousoff:

MB>> ... âÙ×ÁÅÔ ÍÁÓÓÁ ÚÁÄÁÞ, ËÏÇÄÁ ÓËÏpÏÓÔØ MB>> pÅÁËÃÉÉ ÎÁ ÐpÅpÙ×ÁÎÉÅ ×ÏÏÂÝÅ ÎÅ ÉÍÅÅÔ ÚÎÁÞÅÎÉÑ. éÌÉ, ÐÏ MB>> ËpÁÊÎÅÊ ÍÅpÅ, yÐÏÍÑÎyÔÏÅ ÔyÐÏÅ ÓÏÈpÁÎÅÎÉÅ pÅÇÉÓÔpÏ× ÎÉÓËÏÌØËÏ MB>> ÎÅ ÍÅÛÁÅÔ pÁÂÏÔÅ ÐpÏÇpÁÍÍÙ.

ON> âÅÚyÓÌÏ×ÎÏ ÂÙ×ÁÅÔ. HÏ, ËÁË ÐÏËÁÚÙ×ÁÅÔ ÓypÏ×ÁÑ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔØ, pÁÎÏ ON> ÉÌÉ ÐÏÚÄÎÏ, ÐpÉÈÏÄÉÔÓÑ ×ÏÚ×pÁÝÁÔØÓÑ ÔÁËÉ Ë ×pÅÍÅÎÁÍ pÅÁËÃÉÉ, ÄÁÖÅ ÎÁ ON> ÓÁÍÙÅ ÎÅËpÉÔÉÞÎÙÅ ÐpÏÃÅÓÓÙ.

÷ÏÔ ËÏÇÄÁ ÓÔÏÌËΣÔÓÑ ÞÅÌÏ×ÅË Ó ÐpÏÂÌÅÍÏÊ - ÔÏÇÄÁ É ÂyÄÅÔ ÐÉÓÁÔØ ËyÓËÉ ÎÁ ÁÓÍÅ. é ÎÅ ÎÁÄÏ ÅÇÏ ÚÁpÁÎÅÅ ÔÙËÁÔØ ÍÏpÄÏÊ × "ÔyÐÏÅ ÓÏÈpÁÎÅÎÉÅ pÅÇÉÓÔpÏ×". ìÉÞÎÏ Ñ × ÜÔÏÍ ×ÏÏÂÝÅ ÎÅ ×ÉÖy ÎÉÞÅÇÏ ÐÌÏÈÏÇÏ. á×ÔÏÍÁÔ - ÏÎ É ÅÓÔØ Á×ÔÏÍÁÔ, É ÎÅÞÅÇÏ ÔpÅÂÏ×ÁÔØ ÏÔ ÎÅÇÏ pÁÚyÍÎÏÓÔÉ. åÇÏ ÄÅÌÏ - ÞÅÌÏ×ÅËy ÐÏÍÏÇÁÔØ.

ON>>> ÐpÏÇpÁÍÍy ÏÂÓÌyÖÉ×ÁÎÉÑ ÌÀÂÏÇÏ ÐpÅpÙ×ÁÎÉÑ, ËÏÔÏpyÀ ÉÚÇÏÔÏ×ÉÌ ON>>> ó-ËÏÍÐÉÌÑÔÏp, ÔÏ y×ÉÄÉÔÅ ÔÏ ÓÁÍÏÅ- ÔyÐÏÅ ÓÏÈpÁÎÅÎÉÅ É ON>>> ×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ËÏÎÔÅËÓÔÁ ÉÍÅÎÎÏ ×ÓÅÈ pÁÂÏÞÉÈ pÅÇÉÓÔpÏ×.

MB>> Hy ÐÏÓÍÏÔpÅÌ Åݣ pÁÚ, ÄÌÑ ÎÁģÖÎÏÓÔÉ. HÅ ×ÉÖy. HÅËÏÔÏpÙÅ MB>> pÅÇÉÓÔpÙ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÓÏÈpÁÎÑÀÔÓÑ. ÷ pÁÚÎÙÈ ÐÏÄÐpÏÇpÁÍÍÁÈ MB>> ÐpÅpÙ×ÁÎÉÊ - pÁÚÎÏÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï. éáò ÐÏÓÔÁpÁÌÓÑ. ÷ËÌÀÞÅÎÁ MB>> ÍÁËÓÉÍÁÌØÎÁÑ ÏÐÔÉÍÉÚÁÃÉÑ ÎÁ pÁÚÍÅp ËÏÄÁ.

ON> ôpyÄÎÏÏÓÍÙÓÌÑÅÍÁÑ ÂÁÇÁ ÏÂÅÓÐÅÞÅÎÁ. çÏÔÏרÔÅÓØ Ë ÉÓÔÅpÉËÁÍ × ÏÔÌÁÄËÅ.

þÔÏ ÉÎÔÅpÅÓÎÏ, ÎÉËÁËÏÊ ÂÁÇÉ ÎÅ ÂÙÌÏ. ðpÏÇpÁÍÍÁ (Ï ËÏÔÏpÏÊ ÛÌÁ pÅÞØ) ÎÁÐÉÓÁÎÁ, ÏÔÌÁÖÅÎÁ, ţ pÁÂÏÔÏÓÐÏÓÏÂÎÏÓÔØ ÐpÏ×ÅpÅÎÁ ÌÉÞÎÏ ÍÎÏÊ (Á ÜÔÏ - yÖÅ ÐpÁËÔÉÞÅÓËÉ ÇÁpÁÎÔÉÑ ÔÏÇÏ, ÞÔÏ É × ÄÁÌØÎÅÊÛÅÍ ÏÎÁ ÂyÄÅÔ pÁÂÏÔÁÔØ ÂÅÚÇÌÀÞÎÏ), yÓÔpÏÊÓÔ×Ï ÓÄÁÎÏ ÚÁËÁÚÞÉËy, ÄÅÎÀÖËÁ ÚÁ ÎÅÇÏ ÐÏÌyÞÅÎÁ. :-) é ÎÉËÁËÉÈ ÉÓÔÅpÉË. "þÔÏ Ñ ÎÅ ÔÁË ÄÅÌÁÀ?" (Ó)

Michael G. Belousoff mickbell(dog)r66(dot)ru

formatting link
... ==== ðpÏÂÌÅÍy ÎÁÄÏ pÅÛÁÔØ ÄÏ ÔÏÇÏ, ËÁË ÏÎÁ ÐÏÑ×ÉÔÓÑ. ====

"Alex Mogilnikov" <Alex snipped-for-privacy@f70.n.z2.fidonet.org> ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:MSGID_2=3A5054=2F70 snipped-for-privacy@fidonet.org...

õÇÕ.
ëÏÄ ×ÙÇÌÑÄÉÔ ÔÁË, ÅÄÉÎÓÔ×ÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÔÉÐÏ× Õ ÍÅÎÑ × ÉÎËÌÀÄÅ ÌÅÖÉÔ, Ñ ÅÇÏ ÓÀÄÁ ×ËÌÀÞÉÌ, ÜÔÏ, Õ×ÅÒÅÎ, ÎÅÐÒÉÎÃÉÐÉÁÌØÎÏ:

typedef unsigned char U8; typedef unsigned short int U16; typedef unsigned long int U32; typedef signed char S8; typedef short int S16; typedef long int S32;

#define NOTID 0x255

class obj { public: obj(void) { oid = NOTID; }; obj(U8 id) { oid = id; };

U8 GetID(void) {return oid; };

void virtual Set(S16 v) { ov = v; }; S16 virtual Get(void) { return ov; };

void virtual Process(void) {};

protected: S16 ov; U8 oid; };

class sensor : public obj { public: sensor(void) { NotFilled = true; }; sensor(U8 id) { NotFilled = true; oid = id; };

void virtual Set(S16 v);

private: S16 samples[8]; bool NotFilled; };

void sensor::Set(S16 v) {

} ñ ÓÅÊÞÁÓ ÐÏÜËÓÐÅÒÉÍÅÎÔÉÒÏ×ÁÌ, ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ ÐÏÑ×ÌÑÅÔÓÑ ÔÏÇÄÁ, ËÏÇÄÁ ×ÉÒÔÕÁÌØÎÁÑ ÆÕÎËÃÉÑ Set (ÏÞÅ×ÉÄÎÏ, ÌÀÂÁÑ ÄÒÕÇÁÑ) ÎÅ ÉÎÌÁÊÎÉÔÓÑ × ÏÂßÑ×ÌÅÎÉÉ ËÌÁÓÓÁ, Á ÒÁÓÐÉÓÙ×ÁÅÔÓÑ ËÁË sensor::Set().
óÔÏÉÔ package WinAVR 20050214, × ÎÅÍ GNU binutils 2.15, GNU GCC 3.4.3.
ðÏÓÍÏÔÒÅÌ, ×ÒÏÄÅ ÎÏ×ÅÅ ÎÅÔ. äÅÎÉÓ.

Hi, Olga !

ïÄÎÁÖÄÙ, × óÒÅÄÁ óÅÎÔÑÂÒØ 21 2005 11:08, Olga Nonova ÐÉÓÁÌ Igor Ulanov:

ON>>> æÉÇÎÑ ×ÅÄØ, Á ÎÅ ÓÏÈÒÁÎÅÎÉÅ ËÏÎÔÅËÓÔÁ. SREG, ÎÁÐÒÉÍÅÒ, ÐÏÒÔÉÔÓÑ. IU>> ÷ÏÔ ÔÅÂÅ É ÒÁÚ! é ÞÅÍ ÖÅ ÏÎ ÐÏÒÔÉÔÓÑ?

ON> ÷ ÔÅÌÅ ISR ÍÏÖÅÔ ÚÁÐÒÏÓÔÏ ÉÓÐÏÒÔÉÔØÓÑ. éÌÉ ÷Ù ÈÏÔÉÔÅ ÓËÁÚÁÔØ, ÞÔÏ ON> ËÏÍÐÉÌÑÔÏÒ "ÛÉÂËÏ ÕÍÎÙÊ" É ÐÒÏÓÌÅÄÉÌ, ËÁËÉÅ ÒÅÓÕÒÓÙ ÐÏÒÔÑÔÓÑ, Á ËÁËÉÅ ON> ÎÅÔ × ÔÅÌÅ ISR? äÁ.

ON>>> é ÎÁËÏÎÅÃ, ÞÔÏ ÂÙ ÓÏÔ×ÏÒÉÌ ËÏÍÐÉÌÑÔÏÒ, ÅÓÌÉ ÂÙ × ÔÅÌÅ ISR , ON>>> ÏËÁÚÁÌÉÓØ ×ÙÚÏ×Ù ÄÒÕÇÉÈ ÐÏÄÐÒÏÇÒÁÍÍ?

IU>> ÷ÙÚ×ÁÌ ÂÙ ÐÏÄÐÒÏÇÒÁÍÍÙ.

ON> ÷ÏÔ-×ÏÔ. á ÔÅ ÂÙ ×ÔÉÈÕÀ ÐÏÄÎÁÐÏÒÔÉÌÉ ÒÅÓÕÒÓÙ, ËÁËÉÅ ÔÏÌØËÏ ×ÏÚÍÏÖÎÏ. é ON> ËÁË ÐÏÔÏÍ ÂÕÄÅÔÅ ×ÏÚ×ÒÁÝÁÔØÓÑ ÉÚ ÐÒÅÒÙ×ÁÎÉÑ? âÒÅÄ. óÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ.

ON> ÷ÏÔ, Ï ÞÅÍ ÐÏÄÕÍÁÔØ ÎÁÄÏ, Á ÎÅ "ÄÕÒÏÞËÕ ×ÁÌÑÔØ". õÇÕ. é ÓÕÄÑ ÐÏ ×ÓÅÍÕ ÐÏÄÕÍÁÔØ ÎÕÖÎÏ ÈÏÒÏÛÏ... ðÅÒÅÄ ÔÅÍ ËÁË ÐÉÓÁÔØ ÂÒÅÄ.

HÅ ÐÒÏÝÁÀÓØ, Alexander Gribanov.

Здравствуйте, Уважаемый George!

Tue Sep 20 2005 15:35, George Shepelev wrote to Olga Nonova:

GS> Важный нюанс. Когда требуется быстродействие, иногда имеет смысл даже GS> увеличить размер кода (развернуть внутренние циклы программы). GS> Классический приём - размен размера на быстродействие. GS> А вот оставшийся код, не критичный к быстродействию, имеет смысл GS> оптимизировать по размеру...

Абсолютно согласна. Тезис: "наплевать на обьемы кода, лишь бы опередить конкурентов"- далеко не универсален и может сыграть злую шутку в задачах с реальным временем.

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Igor!

Wed Sep 21 2005 00:55, Igor Ulanov wrote to Olga Nonova:

MB>>> \ __nearfunc __interrupt void UART_RX_int(); MB>>> \ UART_RX_int: MB>>> \ 00000000 931A ST -Y,R17 MB>>> \ 00000002 930A ST -Y,R16 MB>>> \ 00000004 B71F IN R17,0x3F

ON>> Фигня ведь, а не сохранение контекста. SREG, например, портится. IU> Вот тебе и раз! И чем же он портится?

В теле ISR может запросто испортиться. Или Вы хотите сказать, что компилятор "шибко умный" и проследил, какие ресурсы портятся, а какие нет в теле ISR?

MB>>> 779 disable_interrupt(); MB>>> \ 00000006 94F8 CLI

ON>> Это вообще полная чушь, т.к. CLI исполняется автоматически у AVR при ON>> входе в любое прерывание.

IU> Что попросили, то и сделал.

Здесь претензии не к компилятору конечно, а к квалификации программера.

ON>> И наконец, что бы сотворил компилятор, если бы в теле ISR , оказались ON>> вызовы других подпрограмм?

IU> Вызвал бы подпрограммы.

Вот-вот. А те бы втихую поднапортили ресурсы, какие только возможно. И как потом будете возвращаться из прерывания? Вот, о чем подумать надо, а не "дурочку валять".

Всего Вам Хорошего Ольга

ðÒÉ×ÅÔ Dennis!

21 Sep 05 11:27, Dennis Opanasenko ÐÉÓÁÌ All:

DO> ëÏÄ ×ÙÇÌÑÄÉÔ ÔÁË, ÅÄÉÎÓÔ×ÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÔÉÐÏ× Õ ÍÅÎÑ × ÉÎËÌÀÄÅ DO> ÌÅÖÉÔ, Ñ ÅÇÏ ÓÀÄÁ ×ËÌÀÞÉÌ, ÜÔÏ, Õ×ÅÒÅÎ, ÎÅÐÒÉÎÃÉÐÉÁÌØÎÏ:

ñÓÎÏ. ðÏÈÏÖÅ, ÜÔÏ ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ ×ÙÄÁÅÔÓÑ ÐÒÉ ÌÀÂÏÊ ÐÏÐÙÔËÅ ÓÏÚÄÁÔØ ÔÁÂÌÉÃÕ ×ÉÒÔÕÁÌØÎÙÈ ÍÅÔÏÄÏ×. ôÏ ÅÓÔØ ÄÁÖÅ ×ÏÔ ÚÄÅÓØ:

class sensor { public: virtual void Set(short v); }; void sensor::Set(short v) { }

ôÅÍ ÎÅ ÍÅÎÅÅ, ËÏÎÓÔÒÕËÔÏÒ É ËÏÄ ÏÂÒÁÝÅÎÉÑ Ë ÔÁÂÌÉÃÅ (×ÙÚÏ×Ù ×ÉÒÔÕÁÌØÎÙÈ ÍÅÔÏÄÏ×) ÇÅÎÅÒÉÔÓÑ ÐÒÁ×ÉÌØÎÙÊ.

? ÷ÏÏÂÝÅ-ÔÏ ÅÓÔØ, ÎÏ ÎÅ ÓÉÌØÎÏ. binutils ÓÅÊÞÁÓ 2.16, gcc - 3.4.4.

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

21 Sep 05 19:26, Dennis Opanasenko ÐÉÓÁÌ All:

HÁ×ÅÒÎÏÅ ÉÍÅÅÔ ÓÍÙÓÌ × avr-gcc'ÛÎÕÀ ÒÁÓÓÙÌËÕ Ï ÜÔÏÍ ÎÁÐÉÓÁÔØ. ìÉÂÏ ÐÏÐÒÁ×ÑÔ, ÌÉÂÏ ÏÂßÑÓÎÑÔ, ÐÏÞÅÍÕ ÜÔÏÇÏ ÄÅÌÁÔØ ÎÅ ÓÌÅÄÕÅÔ. :)

HÕ, 3.4.3 Ñ ÓÔÁÒÙÍ ÎÅ ÓÞÉÔÁÀ. äÁ É ÎÁ 3.4.4 ÓÉÔÕÁÃÉÑ ÐÏ×ÔÏÒÑÅÔÓÑ. á ÔÏ ×ÅÄØ ÎÅËÏÔÏÒÙÅ ×ÓÅ ÅÝÅ 3.1.*, Á ÔÏ É 2.95.* ÉÓÐÏÌØÚÕÀÔ...

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÌÅÐÏÊ ðØÀ, çÌÕÈÏÊ åÍ...

"Alex Mogilnikov" <Alex snipped-for-privacy@f70.n.z2.fidonet.org> ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:MSGID_2=3A5054=2F70 snipped-for-privacy@fidonet.org...

õ ÍÅÎÑ ÔÁËÏÅ ÖÅ ÐÒÅÄÐÏÌÏÖÅÎÉÅ ×ÏÚÎÉËÌÏ.
õÇÕ. HÏ ×ÏÒÎÉÎÇ ÇÌÁÚ ÍÏÚÏÌÉÔ. HÁ×ÅÒÎÏÅ ÅÇÏ ×ÙÄÁÞÕ ÎÁÄÏ ÐÏÄÁ×ÉÔØ? ôÏÌØËÏ ÓÒÅÄÉ ÏÐÃÉÊ -W ÐÏÈÏÖÅÇÏ ÎÅ ÎÁÛÅÌ.
ñ ÓÍÁÌÏÄÕÛÎÉÞÁÌ: ÚÁÛÅÌ ÎÁ ÓÔÒÁÎÉÞËÕ WinAVR É ÐÏÓÍÏÔÒÅÌ ÔÁÍ. :) äÅÎÉÓ.

"Olga Nonova" snipped-for-privacy@starline.ee ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:dgr0s9$bej$ snipped-for-privacy@www.fido-online.com...

ëÏÍÁÎÄÁ IN R17, 0x3F ËÁË ÒÁÚ ÓÏÈÒÁÎÑÅÔ ÓÌÏ×Ï ÓÏÓÔÏÑÎÉÑ (SREG). HÅ ÍÏÒÏÞØÔÅ ÄÒÕÇÉÍ ÇÏÌÏ×Õ, void virtual OlgaNonova(void) {}. äÅÎÉÓ.

Hello, Olga!

(22 óÅÎ 05 00:13), Olga Nonova ÐÉÓáÌ Alexander Gribanov: ON> âÒÅÄÏÍ ×ÙÇÌÑÄÉÔ ËÁË ÒÁÚ ÓÌÅÐÁÑ ×ÅÒÁ × ÜÔÉ ÓÁÍÙÅ "ÓÏÇÌÁÛÅÎÉÑ Ï ON> ×ÙÚÏ×ÁÈ". ïÌÅÎØËÁ, ÅÓÌÉ ÔÅÂÅ ÔÁË ÐÒÅÔÉÔ ÜÔÏ ÓÌÏ×ÏÓÏÞÅÔÁÎÉÅ, ÔÏ ÓÔÏÉÔ ÚÁÑ×ÉÔØ Ï ÜÔÏÍ ÐÒÑÍÏ. HÁÍÅËÉ ÎÅ ×ÓÅÇÄÁ ÒÁÂÏÔÁÀÔ. íÙ ÐÏÐÙÔÁÅÍÓÑ ×ÏÚÄÅÒÖÁÔØÓÑ ÏÔ ÅÇÏ ÕÐÏÔÒÅÂÌÅÎÉÑ. åÓÌÉ ÞÅÓÔÎÏ, ÔÏ ÓÏ×ÓÅÍ ÎÅÄÁ×ÎÏ Ñ ÔÁËÖÅ ÄÏ×ÏÌØÎÏ ÂÏÌÅÚÎÅÎÏ ÒÅÁÇÉÒÏ×ÁÌ ÎÁ ÎÅÇÏ. ðÏÒÁÚÍÙÓÌÉ× Ñ ÐÒÉÛÅÌ Ë ×Ù×ÏÄÕ, ÞÔÏ ÜÔÏ ×ÉÄÉÍÏ ÍÕÒÁÛÅÞÎÙÅ ÏÔÇÏÌÏÓËÉ ÔÕÍÁÎÎÏÇÏ ÐÒÏÛÌÏÇÏ. ñ ÄÏ ÓÉÈ ÐÏÒ ÎÅ ÓÍÏÇ ÉÚÂÁ×ÉÔÓÑ ÏÔ ÓÔÒÁÈÁ ÐÅÒÅÄ ÎÁÞÁÌØÓÔ×ÏÍ É ×ÉÄÉÍÏ ÐÏÜÔÏÍÕ ÓÌÏ×Ï "Á×ÏÚÙ×" Õ ÍÅÎÑ ÓÒÁÚÕ ÖÅ ÁÓÓÏÃÉÉÒÕÅÔÓÑ Ó ÞÁÓÔÙÍÉ ÎÁËÏ×ÅÒÎÙÍÉ ×Ù×ÏÌÏÞËÁÍÉ... É ÓÏ ÓÔÒÏÇÏÊ ÓÅËÒÅÔÁÒÛÅÊ, ËÏÔÏÒÁÑ Ó ×ÙÓÏÔÙ Ó×ÏÅÇÏ ÒÏÓÔÁ ÒÏÎÑÌÁ ÎÁ ÍÅÎÑ ÐÏÕÞÅÎÉÑ Ï ÂÅÚÕÓÌÏ×ÎÏÍ Å×ÔÓØÌÅÔÁÛÁÌÇÏÓ Ó ÍÎÅÎÉÅÍ ÎÁÞÁÌØÓÔ×Á... ÂÒÒÒ... ÌÕÞÛÅ ÎÅ ×ÓÐÏÍÉÎÁÔØ. ON> á ÷Ù ÇÏ×ÏÒÉÔÅ "ÓÏÇÌÁÛÅÎÉÅ Ï ×ÙÚÏ×ÁÈ"! ëÌÉÎ-ËÌÉÎÏÍ ËÏÎÅÞÎÏ ÈÏÒÏÛÉÊ ÍÅÔÏÄ, ÎÏ Õ ÍÅÎÑ ÅÓÔØ ÌÕÞÛÅ. ðÒÁ×ÄÁ ÏÎ ÔÒÅÂÕÅÔ ÂÏÌØÛÅÊ ËÏÎÃÅÔÒÁÃÉÉ É ÂÏÌØÛÅÇÏ ×ÒÅÍÅÎÉ, ÎÏ ÒÁÂÏÔÁÅÔ ÂÅÚÏÔËÁÚÎÏ. ñ ÐÕÇÁÀÝÉÅ ÍÅÎÑ ÓÌÏ×ÏÓÏÞÅÔÁÎÉÑ ÞÉÔÁÀ Ó ÐÒÁ×Á ÎÁ ÌÅ×Ï. íÏÑ ÉÎÔÕÉÃÉÑ ÎÁÓÔÏÌØËÏ ÏÔÔÏÞÅÎÁ, ÞÔÏ ÕÖÅ ÚÁ Ä×Å ÓÔÒÏÞËÉ Ñ ÎÁÞÉÎÁÀ ÐÏÓÔÅÐÅÎÎÏ ÉÚÍÅÎÑÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÞÔÅÎÉÑ. ðÏÓÔÅÐÅÎÎÏÅ ÐÅÒÅ×ÏÒÁÞÉ×ÁÎÉÅ ÏÞÅÎØ ×ÙÇÏÄÎÏ, ÔÁË ËÁË ÏÎÏ ÐÒÏÉÓÈÏÄÉÔ ÎÅÚÁÍÅÔÎÏ. é ÅÓÌÉ ÒÁÎØÛÅ ÐÒÉ ÒÅÚËÏÍ ÉÚÍÅÎÅÎÉÉ ÞÔÅÎÉÑ ÂÙ×ÁÌÏ ËÒÕÖÉÌÁÓØ ÇÏÌÏ×Á, ÔÏ ÓÅÊÞÁÓ ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ ÎÁÓÔÏÌØËÏ ÇÌÁÄËÏ É ÎÅÚÁÍÅÔÎÏ, ÞÔÏ Ñ ÄÁÖÅ ÎÅ ÓÍÏÇÕ ÏÔ×ÅÔÉÔØ ËÏÇÄÁ Ñ ÐÏÓÌÅÄÎÉÊ ÒÁÚ ÓÔÁÌËÉ×ÁÌÓÑ Ó ÜÔÉÍ ÓÌÏ×ÏÓÏÞÅÔÁÎÉÅÍ.

With best regards, Igor. Time: 00:35 Date: 22 óÅÎ 05

Thu Sep 22 2005 00:13, Olga Nonova wrote to Alexander Gribanov:

ON>>> ÷ÏÔ-×ÏÔ. á ÔÅ ÂÙ ×ÔÉÈÕÀ ÐÏÄÎÁÐÏÒÔÉÌÉ ÒÅÓÕÒÓÙ, ËÁËÉÅ ÔÏÌØËÏ ×ÏÚÍÏÖÎÏ. é ON>>> ËÁË ÐÏÔÏÍ ÂÕÄÅÔÅ ×ÏÚ×ÒÁÝÁÔØÓÑ ÉÚ ÐÒÅÒÙ×ÁÎÉÑ?

AG>> âÒÅÄ. óÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ.

ON> âÒÅÄÏÍ ×ÙÇÌÑÄÉÔ ËÁË ÒÁÚ ÓÌÅÐÁÑ ×ÅÒÁ × ÜÔÉ ÓÁÍÙÅ "ÓÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ".

áÕÄÉÔÏÒÉÑ ÒÁÓÓÅÌÁÓØ ÐÏ ËÒÅÓÌÁÍ É ÚÁÐÁÓÌÁÓØ ÈÁÊÎÅËÅÎÏÍ. ðÒÏÄÏÌÖÁÊÔÅ ON, ÐÒÏÄÏÌÖÁÊÔÅ. ;-)

WBR, Yuriy.

Здравствуйте, Уважаемый Alexander!

Wed Sep 21 2005 11:39, Alexander Gribanov wrote to Olga Nonova:

ON>>>> И наконец, что бы сотворил компилятор, если бы в теле ISR , ON>>>> оказались вызовы других подпрограмм?

IU>>> Вызвал бы подпрограммы.

ON>> Вот-вот. А те бы втихую поднапортили ресурсы, какие только возможно. И ON>> как потом будете возвращаться из прерывания?

AG> Бред. Соглашения о вызовах никто не отменял.

Бредом выглядит как раз слепая вера в эти самые "соглашения о вызовах". Возмем к примеру текст дисассемблированной программы, что привел здесь Белоусов и еще, помню, хвастался, мол замечательно работает без сбоев. Как уже справедливо отметили здесь коллеги, С-компилятор IAR сохраняет в том примере статус-регистр SREG не в стеке, как положено всем грамотным системам, а в R17. Теперь представьте, что в теле ISR произведен вызов подпрограммы на Си с одним формальным параметром. Согласно Вашим любимым "соглашениям о вызовах" IAR, для передачи фактического параметра в подпрограмму будет задействованы R16 и R17. Что станет с SREG, которого до этого сохраняли тоже в R17? Я считаю, что Белоусову страшно повезло,- он обошелся без вызовов других подпрограмм с формальными параметрами из тела ISR. Повезло, и теперь он уверяет меня и всех, что такая перка будет всегда. Это что касается продукта IAR. А вот в мануалах C-компилятора GNU прямо и честно говорится, что ISR не гарантируют сохранность контекста при вызове из их тела сторонних подпрограмм. Иными словами, GNU-шники честно признали невозможность отследить сохранность контекста ISR в этом случае. А Вы говорите "соглашение о вызовах"!

Всего Вам Хорошего Ольга

Здравствуйте, Уважаемый Dennis!

Wed Sep 21 2005 19:38, Dennis Opanasenko wrote to All:

DO> Команда IN R17, 0x3F как раз сохраняет слово состояния (SREG).

Прочтите мои аргументы в соседнем письме. Думаю поймете, что назвать засовывание SREG в R17 "сохранением контекста ISR" - никак язык не поворачивается. Траблы обеспечены.

Всего Вам Хорошего Ольга

Hello Olga.

22 Sep 05 00:13, Olga Nonova wrote to Alexander Gribanov:

AG>> âÒÅÄ. óÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ.

ON> âÒÅÄÏÍ ×ÙÇÌÑÄÉÔ ËÁË ÒÁÚ ÓÌÅÐÁÑ ×ÅÒÁ × ÜÔÉ ÓÁÍÙÅ "ÓÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ". ON> ÷ÏÚÍÅÍ Ë ÐÒÉÍÅÒÕ ÔÅËÓÔ ÄÉÓÁÓÓÅÍÂÌÉÒÏ×ÁÎÎÏÊ ÐÒÏÇÒÁÍÍÙ, ÞÔÏ ÐÒÉ×ÅÌ ÚÄÅÓØ ON> âÅÌÏÕÓÏ× É ÅÝÅ, ÐÏÍÎÀ, È×ÁÓÔÁÌÓÑ, ÍÏÌ ÚÁÍÅÞÁÔÅÌØÎÏ ÒÁÂÏÔÁÅÔ ÂÅÚ ÓÂÏÅ×. ëÁË ON> ÕÖÅ ÓÐÒÁ×ÅÄÌÉ×Ï ÏÔÍÅÔÉÌÉ ÚÄÅÓØ ËÏÌÌÅÇÉ, ó-ËÏÍÐÉÌÑÔÏÒ IAR ÓÏÈÒÁÎÑÅÔ × ÔÏÍ ON> ÐÒÉÍÅÒÅ ÓÔÁÔÕÓ-ÒÅÇÉÓÔÒ SREG ÎÅ × ÓÔÅËÅ, ËÁË ÐÏÌÏÖÅÎÏ ×ÓÅÍ ÇÒÁÍÏÔÎÙÍ ON> ÓÉÓÔÅÍÁÍ, Á × R17. ôÅÐÅÒØ ÐÒÅÄÓÔÁרÔÅ, ÞÔÏ × ÔÅÌÅ ISR ÐÒÏÉÚ×ÅÄÅÎ ×ÙÚÏ× ON> ÐÏÄÐÒÏÇÒÁÍÍÙ ÎÁ óÉ Ó ÏÄÎÉÍ ÆÏÒÍÁÌØÎÙÍ ÐÁÒÁÍÅÔÒÏÍ. óÏÇÌÁÓÎÏ ÷ÁÛÉÍ ÌÀÂÉÍÙÍ ON> "ÓÏÇÌÁÛÅÎÉÑÍ Ï ×ÙÚÏ×ÁÈ" IAR, ÄÌÑ ÐÅÒÅÄÁÞÉ ÆÁËÔÉÞÅÓËÏÇÏ ÐÁÒÁÍÅÔÒÁ × ON> ÐÏÄÐÒÏÇÒÁÍÍÕ ÂÕÄÅÔ ÚÁÄÅÊÓÔ×Ï×ÁÎÙ R16 É R17. þÔÏ ÓÔÁÎÅÔ Ó SREG, ËÏÔÏÒÏÇÏ ÄÏ ON> ÜÔÏÇÏ ÓÏÈÒÁÎÑÌÉ ÔÏÖÅ × R17?

óËÏÍÐÉÌÉpyÊ É ÐÏÓÍÏÔpÉ. óËÏpÅÅ ×ÓÅÇÏ ËÏÍÐÉÌÑÔÏp ÓÏÈpÁÎÉÔ SREG × ÄpyÇÏÍ pÅÇÉÓÔpÅ.

ON> ñ ÓÞÉÔÁÀ, ÞÔÏ âÅÌÏÕÓÏ×Õ ÓÔÒÁÛÎÏ ÐÏ×ÅÚÌÏ,- ÏÎ ON> ÏÂÏÛÅÌÓÑ ÂÅÚ ×ÙÚÏ×Ï× ÄÒÕÇÉÈ ÐÏÄÐÒÏÇÒÁÍÍ Ó ÆÏÒÍÁÌØÎÙÍÉ ÐÁÒÁÍÅÔÒÁÍÉ ÉÚ ON> ÔÅÌÁ ISR. ðÏ×ÅÚÌÏ, É ÔÅÐÅÒØ ÏÎ Õ×ÅÒÑÅÔ ÍÅÎÑ É ×ÓÅÈ, ÞÔÏ ÔÁËÁÑ ÐÅÒËÁ ON> ÂÕÄÅÔ ×ÓÅÇÄÁ.

ñ ÓÞÉÔÁÀ, ÞÔÏ ÷ÁÍ ÐÏËÁ ÓÉÌØÎÏ ÐÏ×ÅÚÌÏ, ÞÔÏ Ñ ËÁË ËÏ-ÍÏÄÅpÁÔÏp ÚÁ ×ÁÛ ÂpÅÄ ÅÝÅ ÎÅ ÏÔËÌÀÞÉÌ ×ÁÛ ÁÄpÅÓ ÎÅ ÇÅÊÔÅ. é ÅÓÌÉ ×ÁÛÉ ÂpÅÄÏ×ÙÅ ÏÐyÓÙ ÂyÄyÔ ÐÏ×ÔÏpÑÔØÓÑ × ËÏÎÆÅpÅÎÃÉÉ, Ñ ÜÔÏ ÓÄÅÌÁÀ. ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

ðÒÉ×ÅÔ, Olga! ÷Ù ÐÉÓÁÌÉ to Alexander Gribanov on Wed, 21 Sep 2005 20:13:34 +0000 (UTC):

ON>>>>> é ÎÁËÏÎÅÃ, ÞÔÏ ÂÙ ÓÏÔ×ÏÒÉÌ ËÏÍÐÉÌÑÔÏÒ, ÅÓÌÉ ÂÙ × ÔÅÌÅ ISR , ON>>>>> ÏËÁÚÁÌÉÓØ ×ÙÚÏ×Ù ÄÒÕÇÉÈ ÐÏÄÐÒÏÇÒÁÍÍ? IU>>>> ÷ÙÚ×ÁÌ ÂÙ ÐÏÄÐÒÏÇÒÁÍÍÙ. ON>>> ÷ÏÔ-×ÏÔ. á ÔÅ ÂÙ ×ÔÉÈÕÀ ÐÏÄÎÁÐÏÒÔÉÌÉ ÒÅÓÕÒÓÙ, ËÁËÉÅ ÔÏÌØËÏ ON>>> ×ÏÚÍÏÖÎÏ. é ËÁË ÐÏÔÏÍ ÂÕÄÅÔÅ ×ÏÚ×ÒÁÝÁÔØÓÑ ÉÚ ÐÒÅÒÙ×ÁÎÉÑ? AG>> âÒÅÄ. óÏÇÌÁÛÅÎÉÑ Ï ×ÙÚÏ×ÁÈ ÎÉËÔÏ ÎÅ ÏÔÍÅÎÑÌ. ON> ëÁË ÕÖÅ ÓÐÒÁ×ÅÄÌÉ×Ï ÏÔÍÅÔÉÌÉ ÚÄÅÓØ ËÏÌÌÅÇÉ, ON> ó-ËÏÍÐÉÌÑÔÏÒ IAR ÓÏÈÒÁÎÑÅÔ × ÔÏÍ ÐÒÉÍÅÒÅ ÓÔÁÔÕÓ-ÒÅÇÉÓÔÒ SREG ÎÅ × ON> ÓÔÅËÅ, ËÁË ÐÏÌÏÖÅÎÏ ×ÓÅÍ ÇÒÁÍÏÔÎÙÍ ÓÉÓÔÅÍÁÍ, Á × R17. ôÅÐÅÒØ ON> ÐÒÅÄÓÔÁרÔÅ, ÞÔÏ × ÔÅÌÅ ISR ÐÒÏÉÚ×ÅÄÅÎ ×ÙÚÏ× ÐÏÄÐÒÏÇÒÁÍÍÙ ÎÁ óÉ ...

ôÏÇÄÁ ÏÎ ÓÏÈÒÁÎÉÔ ÅÇÏ × ÓÔÅËÅ. ôÁËÁÑ ÌÅÇËÏÓÔØ × ×ÙÂÏÒÅ ÎÁÉÂÏÌÅÅ ÏÐÔÉÍÁÌØÎÏÇÏ ÁÌÇÏÒÉÔÍÁ ÓÏÈÒÁÎÅÎÉÑ SREG É ÎÅ ÓÎÉÌÁÓØ ÐÒÏÇÒÁÍÍÉÓÔÁÍ ÎÁ ASM.

ON> á ×ÏÔ × ÍÁÎÕÁÌÁÈ ON> C-ËÏÍÐÉÌÑÔÏÒÁ GNU ÐÒÑÍÏ É ÞÅÓÔÎÏ ÇÏ×ÏÒÉÔÓÑ, ÞÔÏ ISR ÎÅ ÇÁÒÁÎÔÉÒÕÀÔ ON> ÓÏÈÒÁÎÎÏÓÔØ ËÏÎÔÅËÓÔÁ ÐÒÉ ×ÙÚÏ×Å ÉÚ ÉÈ ÔÅÌÁ ÓÔÏÒÏÎÎÉÈ ÐÏÄÐÒÏÇÒÁÍÍ. ON> éÎÙÍÉ ÓÌÏ×ÁÍÉ, GNU-ÛÎÉËÉ ÞÅÓÔÎÏ ÐÒÉÚÎÁÌÉ ÎÅ×ÏÚÍÏÖÎÏÓÔØ ÏÔÓÌÅÄÉÔØ ON> ÓÏÈÒÁÎÎÏÓÔØ ËÏÎÔÅËÓÔÁ ISR × ÜÔÏÍ ÓÌÕÞÁÅ.

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

With best regards, Leha Bishletov. E-mail: snipped-for-privacy@rol.ru

"Olga Nonova" snipped-for-privacy@starline.ee ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:dgsest$dhr$ snipped-for-privacy@www.fido-online.com...

÷Ù ÂÒÅÄÉÔÅ, void virtual OlgaNonova(void){}. HÅ ÐÅÊÔÅ ÂÏÌØÛÅ ÈÏÌÏÄÎÏÇÏ ËÌÀË×ÅÎÎÏÇÏ ÍÏÒÓÕ ÉÚ-ÐÏÄ ËÒÁÎÁ. void test(S16 fp) { ctime += fp; 5ae: 9c 01 movw r18, r24 5b0: 44 27 eor r20, r20 5b2: 37 fd sbrc r19, 7 5b4: 40 95 com r20 5b6: 54 2f mov r21, r20 5b8: 80 91 9a 00 lds r24, 0x009A 5bc: 90 91 9b 00 lds r25, 0x009B 5c0: a0 91 9c 00 lds r26, 0x009C 5c4: b0 91 9d 00 lds r27, 0x009D 5c8: 82 0f add r24, r18 5ca: 93 1f adc r25, r19 5cc: a4 1f adc r26, r20 5ce: b5 1f adc r27, r21 5d0: 80 93 9a 00 sts 0x009A, r24 5d4: 90 93 9b 00 sts 0x009B, r25 5d8: a0 93 9c 00 sts 0x009C, r26 5dc: b0 93 9d 00 sts 0x009D, r27 5e0: 08 95 ret 000005e2 <__vector_19>: }

SIGNAL(SIG_OUTPUT_COMPARE0) {

5e2: 1f 92 push r1 5e4: 0f 92 push r0 5e6: 0f b6 in r0, 0x3f ; 63 5e8: 0f 92 push r0 5ea: 11 24 eor r1, r1 5ec: 2f 93 push r18 5ee: 3f 93 push r19 5f0: 4f 93 push r20 5f2: 5f 93 push r21 5f4: 6f 93 push r22 5f6: 7f 93 push r23 5f8: 8f 93 push r24 5fa: 9f 93 push r25 5fc: af 93 push r26 5fe: bf 93 push r27 600: ef 93 push r30 602: ff 93 push r31 ctime++; 604: 80 91 9a 00 lds r24, 0x009A 608: 90 91 9b 00 lds r25, 0x009B 60c: a0 91 9c 00 lds r26, 0x009C 610: b0 91 9d 00 lds r27, 0x009D 614: 01 96 adiw r24, 0x01 ; 1 616: a1 1d adc r26, r1 618: b1 1d adc r27, r1 61a: 80 93 9a 00 sts 0x009A, r24 61e: 90 93 9b 00 sts 0x009B, r25 622: a0 93 9c 00 sts 0x009C, r26 626: b0 93 9d 00 sts 0x009D, r27 if(++msec == 1000) 62a: 80 91 98 00 lds r24, 0x0098 62e: 90 91 99 00 lds r25, 0x0099 632: 01 96 adiw r24, 0x01 ; 1 634: 90 93 99 00 sts 0x0099, r25 638: 80 93 98 00 sts 0x0098, r24 63c: 88 5e subi r24, 0xE8 ; 232 63e: 93 40 sbci r25, 0x03 ; 3 640: b9 f4 brne .+46 ; 0x670 { msec = 0; 642: 10 92 99 00 sts 0x0099, r1 646: 10 92 98 00 sts 0x0098, r1 seconds++; 64a: 80 91 94 00 lds r24, 0x0094 64e: 90 91 95 00 lds r25, 0x0095 652: a0 91 96 00 lds r26, 0x0096 656: b0 91 97 00 lds r27, 0x0097 65a: 01 96 adiw r24, 0x01 ; 1 65c: a1 1d adc r26, r1 65e: b1 1d adc r27, r1 660: 80 93 94 00 sts 0x0094, r24 664: 90 93 95 00 sts 0x0095, r25 668: a0 93 96 00 sts 0x0096, r26 66c: b0 93 97 00 sts 0x0097, r27 } test(0); 670: 80 e0 ldi r24, 0x00 ; 0 672: 90 e0 ldi r25, 0x00 ; 0 674: 0e 94 d7 02 call 0x5ae 678: ff 91 pop r31 67a: ef 91 pop r30 67c: bf 91 pop r27 67e: af 91 pop r26 680: 9f 91 pop r25 682: 8f 91 pop r24 684: 7f 91 pop r23 686: 6f 91 pop r22 688: 5f 91 pop r21 68a: 4f 91 pop r20 68c: 3f 91 pop r19 68e: 2f 91 pop r18 690: 0f 90 pop r0 692: 0f be out 0x3f, r0 ; 63 694: 0f 90 pop r0 696: 1f 90 pop r1 698: 18 95 reti

gcc 3.4.3. þÔÏ Ñ ÄÅÌÁÀ ÎÅ ÔÁË?

äÅÎÉÓ.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required