Ошибка в вычислениях адресов у GCC ?

Jan 27, 2005 Last reply: 21 years ago 566 Replies

Hello Vladimir!

23.02.2005 2:44:57, Vladimir Vassilevsky wrote to Vitaly Mihno in area MY.AREA:

VV>

VV>>> Видишь ли, модель дизеля - это очень непpосто VV>>> поэтому твоя модель - типичный сфеpический конь в вакууме. VV>

VM>> ПОзвольте вклиниться в Ваш споp и задать один вопpос. Что вы (оба VM>> собеседника) подpазумеваете под моделью дизеля: набоp пеpеменных и их VM>> связи, описывающее зависимость выходных паpаметpов, или набоp _значений VM>> пеpеменных_. VV>

VV> Hабоp взаимосвязей, описывающих поведение дизеля. Чтобы можно было VV> тестиpовать VV> pегулятоp, а не пpосто пpовеpить аpифметику. VV>

Минуточку, чтобы тестиpовать pегулятоp необходимо иметь _две компоненты_: модель дизеля и набоp пеpеменных для этой модели. Пеpвое беpется из книжек пpо упpавление ЭУ, или доктоpских (то, что это есть я-видел). Втоpое создается на основе пpогона набоpа тестов на дизеле, для заполнения таблицы этих пеpеменных. Если пеpвое не тpивиально, но имеется в литеpатуpе, то втоpое-повод пpисесть, подумать и создать тест.

Bye, Vitaly.

Hello Anton.

23 Feb 05 11:48, Anton Abrosimov wrote to Andy Mozzhevilov:

AM>> ÐÏÌy-ÓÌÏ×ÁÍÉ ÅÓÔØ. èÏÔÑ ÜÔÏ ÖÅ 32-ÂÉÔÎÊ ÐpÏÃÅÓÓÏp, ÏÎ É ÄÏÌÖÅÎ ÂÙÔØ AM>> ÏÐÔÉÍÉÚÉpÏ×ÁÎ ÄÌÑ 32 ÂÉÔÎÙÈ ÏÐÅpÁÃÉÊ. AA> ôÏÇÄÁ ÓÔpÁÎÎÏ. ëÏÍÐÉÌÑÔÏp ×ÅÚÄÅ ÇÅÎÅpÉÔ ËÏÍÁÎÄÙ ÓÄ×ÉÇÁ (ÓÎÁÞÁÌÁ ×ÌÅ×Ï, AA> ÐÏÔÏÍ ÏÂpÁÔÎÏ ×ÐpÁ×Ï) ÄÌÑ ÏÂÎÕÌÅÎÉÑ ÌÉÛÎÉÈ ÂÉÔ ÐpÉ ÐÏÍÅÝÅÎÉÉ × pÅÇÉÓÔp AA> ÍÁÌÏpÁÚpÑÄÎÏÊ ÐÅpÅÍÅÎÎÏÊ. ÷ÉÄÉÍÏ, ËÏÎÔpÏÌÌÅp ÎÅ ÕÍÅÅÔ ÏÐÅpÉpÏ×ÁÔØ ÞÁÓÔÑÍÉ AA> pÅÇÉÓÔpÏ×, ËÁË, ÎÁÐpÉÍÅp, x86.

HÅ yÍÅÅÔ ËÏÎÅÞÎÏ, ÐÏÄÄÅpÖËÁ ÐÏÌy-ÓÌÏ× É ÂÁÊÔ ÓÏÓÔÏÉÔ × ×ÏÚÍÏÖÎÏÓÔÉ ÉÈ ÞÔÅÎÉÑ É ÚÁÐÉÓÉ ÉÚ ÐÁÍÑÔÉ.

AA> ÷ pÅÚÕÌØÔÁÔÅ pÁÂÏÔÁ Ó 8-16ÂÉÔ ÄÁÎÎÙÍÉ × pÁÚÙ ÍÅÄÌÅÎÅÅ.

äyÍÁÀ "pÁÚÙ" - ÜÔÏ ÐpÅy×ÅÌÉÞÅÎÏ ×ÓÅ-ÖÅ

AM>> ÅÓÔØ, Ó ËÏÎÓÔÁÎÔÁÍÉ ÛÉpÉÎÏÊ 12 ÂÉÔ, ÜÔÏ ÄÌÑ ÁpÍ pÅÖÉÍÁ, ÄÌÑ thumb ÎÁÄÏ AM>> yÔÏÞÎÉÔØ. AA> äÌÑ thumb ÚÎÁÞÉÔ ÎÅ ×ÌÅÚÅÔ × ÏÐËÏÄ.

ðÏÓÍÏÔpÅÌ, ÔÁÍ ÄÏ 8 ÂÉÔ ypÅÚÁÎÁ ËÏÎÓÔÁÎÔÁ ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

Hello Anton.

23 Feb 05 12:10, Anton Abrosimov wrote to Leha Bishletov:

LB>> åÓÔØ, ÔÏÌØËÏ ËÏÎÓÔÁÎÔÁ 8ÂÉÔ. ÷ ARM ÅÝÅ + ÓÄ×ÉÇ. AA> á ÞÔÏ ÚÎÁÞÉÔ "+ÓÄ×ÉÇ"?

íÏÖÎÏ ÓÄ×ÉÎyÔØ ËÏÎÓÔÁÎÔy ÎÁ ÎÅÓËÏÌØËÏ ÂÉÔ, ÔÏ ÅÓÔØ ÉÚ 0xff ÐÏÌyÞÉÔ ÂÙÓÔpÏ 0xff000000 ÎÁÐpÉÍÅp. ìÀÂyÀ 32-ÂÉÔÎyÀ ËÏÎÓÔÁÎÔy ËÏÎÅÞÎÏ ÔÁË ÎÅ ÚÁÄÁÛØ, ÎÏ ËÁËyÀ-ÌÉÂÏ ÉÚ ÏÐpÅÄÅÌÅÎÎÏÇÏ ÎÁÂÏpÁ - ÍÏÖÎÏ, ÔÏ ÅÓÔØ ÎÁÐpÉÍÅp Ó yÓÔÁÎÏ×ÌÅÎÎÙÍ ÂÉÔÏÍ (ÓÏÓÅÄÎÉÍÉ ÂÉÔÁÍÉ) ÔÁËÉÍÉ-ÔÏ

AA> ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ ÂÏÌØÛÉÈ ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ ÔÁË? AA> ðpÉÞÅÍ ÐÏ ËÏÄÕ Õ ÍÅÎÑ ÏÖÉÄÁÅÔÓÑ ÚÁÐÁÓ pÁÚÁ × Ä×Á, Á ÐpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ AA> ÌÉÛÎÅÊ ÎÉËÏÇÄÁ ÎÅ ÂÙ×ÁÅÔ. :)

ðÏ ÍÏÉÍ ÏÃÅÎËÁÍ pÁÚÍÅp ËÏÄÁ × thumb × ~1.5 pÁÚÁ ÍÅÛØÛÅ, ÞÅÍ × arm. ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ × thumb ÐÁÄÁÅÔ ~20% ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

Hello Anton.

23 Feb 05 15:15, Anton Abrosimov wrote to Dmitry Kuznetsov:

DK>> æÉÌÉÐÐÙ ÎÅ ËÏ ×ÓÅÍ ËÁÍÎÑÍ ÜÒÒÁÔÔÙ ÐÏÄËÌÅÉÌÉ. DK>> ðÏÌÚÅÛØ ÎÁ ÉÈÎÉÊ ÓÁÊÔÉË. ÷ ÐÏÉÓËÅ ÎÁÂÉÒÁÅÛØ DK>> ÎÕÖÎÙÊ ÔÉÐ "LPC2124" É ÓÌÏ×Ï "errata"... AA> óÐÁÓÉÂÏ, ÐpÏÞÉÔÁÌ. åppÁÔÁ ÏËÁÚÁÌÁÓØ ÚÁÍÅÔÎÏ ÍÅÎØÛÅ, ÞÅÍ Ñ ÏÖÉÄÁÌ. :) ñ ÅÝÅ AA> Ó ×ÓÔpÏÅÎÎÙÍ ÁÃÐ ÎÅËÏÔÏpÙÅ ÐpÏÂÌÅÍÙ ÉÓÐÙÔÙ×ÁÀ, ÎÏ ÎÉÞÅÇÏ ÐÏÈÏÖÅÇÏ × ÅppÁÔÅ AA> ÎÅ ÎÁÛÅÌ.

ëÁËÉÅ ÐpÏÂÌÅÍÙ? íÏÖÅÛØ ÏÐÉÓÁÔØ? ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

ðÒÉ×ÅÔ, Anton! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Wed, 23 Feb 2005 12:10:07 +0300:

AA>>> õ ×ÓÅÇÏ ÄÏÌÖÎÁ ÂÙÔØ ÍÅpÁ. :) HÁÐpÉÍÅp, Ó 8ÍÉ-16ÔÉ ÂÉÔÎÙÍÉ ÄÁÎÎÙÍÉ AA>>> pÁÂÏÔÁ ÎÅÏÐÔÉÍÁÌØÎÁ. LB>> ïÒÇÁÎÉÚÏ×ÁÎÁ ÔÁË ÖÅ ËÁË É Ó 32ÂÉÔÎÙÍÉ. AA> ñ ÜÔÏÇÏ ÎÅ ×ÉÖÕ. :) äÏÓÔÁÔÏÞÎÏ ÓpÁ×ÎÉÔØ ËÏÄ ÄÌÑ Ä×ÕÈ ÓÔpÏÞÅË: AA> u8 a = 100; while (a--!=0) {}; AA> u32 b = 100; while (b--!=0) {};

äÁ×ÁÊ ÓÒÁ×ÎÉÍ (ÒÅÖÉÍ Thumb, ËÏÍÐÉÌÑÔÏÒ GCC): U8 U32 sub r2, r7, #1 mov r2, r7 mov r3, #100 sub r2, r2, #8 strb r3, [r2] mov r3, #100 .L2: str r3, [r2] sub r2, r7, #1 .L5: sub r3, r7, #1 mov r2, r7 ldrb r3, [r3] sub r2, r2, #8 sub r3, r3, #1 mov r3, r7 strb r3, [r2] sub r3, r3, #8 lsl r3, r3, #24 ldr r3, [r3] lsr r3, r3, #24 sub r3, r3, #1 cmp r3, #0 str r3, [r2] bne .L2 cmp r3, #0 bne .L5

U32 ÐÏÌÕÞÉÌÏÓØ ÄÌÉÎÎÅÅ :) îÏ ÜÔÏ ÐÏÔÏÍÕ, ÞÔÏ 'sub r2, r7, #8' ÎÅ ×ÏÚÍÏÖÅÎ. á ÔÁË, "ÌÉÛÎÉÅ" ÔÏÌØËÏ lsl - lsr, Ô.Å. ×ÙÄÅÌÅÎÉÅ ÍÌÁÄÛÅÇÏ ÂÁÊÔÁ ÐÒÉ ÓÒÁ×ÎÅÎÉÉ. ÷ ÏÓÔÁÌØÎÏÍ, ÁÒÉÆÍÅÔÉËÁ É ÞÔÅÎÉÅ-ÚÁÐÉÓØ ÏÄÉÎÁËÏ×ÙÅ.

AA>>> ëÓÔÁÔÉ, ÎÅ ÐÏÍÎÀ, Á Õ ÎÅÇÏ ËÏÍÁÎÄÙ ÁpÉÆÍÅÔÉÞÅÓËÉÈ ÏÐÅpÁÃÉÊ ÍÅÖÄÕ AA>>> pÅÇÉÓÔpÏÍ É ËÏÎÓÔÁÎÔÏÊ ÅÓÔØ? LB>> åÓÔØ, ÔÏÌØËÏ ËÏÎÓÔÁÎÔÁ 8ÂÉÔ. ÷ ARM ÅÝÅ + ÓÄ×ÉÇ. AA> á ÞÔÏ ÚÎÁÞÉÔ "+ÓÄ×ÉÇ"?

þÉÓÌÏ ÐÏÌÕÞÁÅÔÓÑ ËÁË (ËÏÎÓÔÁÎÔÁ)<<(ÓÄ×ÉÇ)

LB>> á ÐÏÞÅÍÕ ÔÙ ×ÓÅ × Thumb ÄÅÌÁÅÛØ? AA> ÈÚ. üÔÏ ÎÁÓÔpÏÊËÁ ÐÏ-ÕÍÏÌÞÁÎÉÀ. ëÏÇÄÁ Ñ ÔÏÌØËÏ ÎÁÞÉÎÁÌ ÐpÏÅËÔ, AA> ÐÏÐpÏÂÏ×ÁÌ Ó ÏÂÏÉÍÉ ×ÁpÉÁÎÔÁÍÉ, ËÏÄ Ó Thumb ÂÙÌ × ÐÏÌÔÏpÁ pÁÚÁ AA> ÍÅÎØÛÅ ÐpÉ ÔÏÊ-ÖÅ ÓËÏpÏÓÔÉ pÁÂÏÔÙ. äÁ É ×ÏÏÂÝÅ, ×Ï ×ÓÅÈ ÏÐÉÓÁÎÉÑÈ AA> pÅÖÉÍ thumb ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ ÂÏÌØÛÉÈ AA> ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ ÔÁË?

äÁ×ÁÊ ÓÒÁ×ÎÉÍ ÎÁ Ô×ÏÅÍ ÖÅ ÐÒÉÍÅÒÅ:

Thumb ARM mov r3, #100 mov r3, #100 strb r3, [r2] strb r3, [fp, #-13] .L2: .L2: sub r2, r7, #1 ldrb r3, [fp, #-13] sub r3, r7, #1 sub r3, r3, #1 ldrb r3, [r3] strb r3, [fp, #-13] sub r3, r3, #1 and r3, r3, #255 strb r3, [r2] cmp r3, #255 lsl r3, r3, #24 bne .L2 lsr r3, r3, #24 mov r3, #100 cmp r3, #0 str r3, [fp, #-20] bne .L2 .L5: mov r2, r7 ldr r3, [fp, #-20] sub r2, r2, #8 sub r3, r3, #1 mov r3, #100 str r3, [fp, #-20] str r3, [r2] cmn r3, #1 .L5: bne .L5 mov r2, r7 sub r2, r2, #8 mov r3, r7 sub r3, r3, #8 ldr r3, [r3] sub r3, r3, #1 str r3, [r2] cmp r3, #0 bne .L5

---------------------------------------------------------------

24 ËÏÍÁÎÄÙ 15 ËÏÍÁÎÄ 48 ÂÁÊÔ 60 ÂÁÊÔ úÄÅÓØ ÐÏÌÕÞÁÅÔÓÑ, ÞÔÏ Thumb ÐÒÏÉÇÒÙ×ÁÅÔ ÐÏ ÓËÏÒÏÓÔÉ (ËÏÍÁÎÄÙ ×ÙÐÏÌÎÑÀÔÓÑ ÐÒÉÍÅÒÎÏ ÏÄÉÎÁËÏ×ÏÅ ×ÒÅÍÑ), ÎÏ, ÞÅÓÔÎÏ ÇÏ×ÏÒÑ, ËÏÄ, ÇÅÎÅÒÉÒÕÅÍÙÊ GCC × ÒÅÖÉÍÅ Thumb ÍÎÅ ËÁÖÅÔÓÑ ÏÞÅÎØ ÎÅ ÏÐÔÉÍÁÌØÎÙÍ. ÷ ÒÅÖÉÍÅ Thumb ÎÅÔ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ Ó ÏÔÒÉÃÁÔÅÌØÎÙÍ ÓÍÅÝÅÎÉÅÍ, ÎÏ ÂÅÚ ÜÔÏÇÏ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÏÂÈÏÄÉÔØÓÑ, ÅÓÌÉ ÁÄÒÅÓÏ×ÁÔØÓÑ ÏÔÎÏÓÉÔÅÌØÎÏ SP. á ÚÄÅÓØ ×ÉÄÉÍ ÓÐÏÌÛÎÕÀ ÁÒÉÆÍÅÔÉËÕ. ëÓÔÁÔÉ, ÐÒÉ ÍÁËÓÉÍÁÌØÎÏÊ ÏÐÔÉÍÉÚÁÃÉÉ ËÏÄ ÏÓÔÁÅÔÓÑ ÐÒÉÍÅÒÎÏ ÔÁËÉÍ ÖÅ. éÚ ÏÂßÅËÔÉ×ÎÙÈ ÏÇÒÁÎÉÞÅÎÉÊ, ÐÒÉ ÉÄÅÁÌØÎÏÍ ËÏÍÐÉÌÑÔÏÒÅ:
  1. ÷ ÒÅÖÉÍÅ ARM ÂÏÌØÛÅ ÐÒÑÍÏ ÄÏÓÔÕÐÎÙÈ ÒÅÇÉÓÔÒÏ×, ÜÔÏ ÏÞÅÎØ ÂÏÌØÛÏÊ +
  2. ÷ ÒÅÖÉÍÅ ARM ÅÓÔØ "ÕÓÌÏ×ÎÏÅ" ×ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄÙ, ÍÏÇÌÏ ÂÙ ÓÉÌØÎÏ ÐÏÍÏÇÁÔØ ÎÁ ÐÒÏÓÔÙÈ ËÏÎÔÓÒÕËÃÉÑÈ ÔÉÐÁ if(a>max) a=max; ÉÌÉ if(flag) f();
  3. ÷ ARM ÂÏÌØÛÅ ÄÉÁÐÁÚÏÎ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ ÓÏ ÓÍÅÝÅÎÉÅÍ
+-2047ÂÁÊÔ(*4ÓÌÏ×) vs +31(*4), ÓËÁÖÅÔÓÑ ÐÒÉ ÎÁÌÉÞÉÉ ÂÏÌØÛÉÈ ÓÔÒÕËÔÕÒ.
  1. ÷ ARM ÕÓÌÏ×ÎÙÅ/ÂÅÚÕÓÌÏ×ÎÙÅ ÐÅÒÅÈÏÄÙ ÍÏÇÕÔ ÂÙÔØ +-ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, vs +-127 ÕÓÌÏ×ÎÙÊ ÐÅÒÅÈÏÄ, +-2048 ÂÅÚÕÓÌÏ×ÎÙÊ. íÏÖÅÔ ÐÒÏÑ×ÉÔØÓÑ, ÎÏ ×ÌÉÑÎÉÅ ÂÕÄÅÔ ÍÁÌÅÎØËÉÍ. îÏ ÉÄÅÁÌØÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× ÎÅÔ. ðÏ GCC ×ÉÄÎÏ, ÞÔÏ ÏÎ ÎÅ ÌÀÂÉÔ Thumb É ÉÓÐÏÌØÚÏ×ÁÎÉÅ Thumb × ÎÅÍ ÂÅÓÓÍÙÓÌÅÎÎÏ. ðÏÓÍÏÔÒÅÌ ÞÔÏ ×ÙÄÁÅÔ IAR. úÎÁÞÉÔÅÌØÎÏ ÌÕÞÛÅ ÞÅÍ GCC. õ ÎÅÇÏ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÁÄÒÅÓÕÀÔÓÑ × +, × ÉÔÏÇÅ ËÏÄ ÍÅÎØÛÅ. ô.Å. ÄÌÑ IAR ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÍÏÖÎÏ ÏÖÉÄÁÔØ, ÞÔÏ ËÏÄ Thumb ÂÕÄÅÔ ÚÎÁÞÉÔÅÌØÎÏ ÍÅÎØÛÅ, ÐÒÉ ÐÒÉÍÅÒÎÏ ÔÏÊ ÖÅ ÓËÏÒÏÓÔÉ ×ÙÐÏÌÎÅÎÉÑ. ðÏÒÁ ÐÅÒÅÈÏÄÉÔØ ÎÁ IAR ... èÏÔÑ, × ÚÁÝÉÔÕ GCC, ÍÏÖÎÏ ÓËÁÚÁÔØ, ÞÔÏ ÏÐÔÉÍÉÚÁÃÉÑ, ÎÅ Ó×ÑÚÁÎÎÁÑ Ó ÏËÏÎÞÁÔÅÌØÎÙÍ ËÏÄÏÍ, ËÁÖÅÔÓÑ ÌÕÞÛÅ. îÁÐÒÉÍÅÒ ÃÉËÌÙ for(i=0;i<10;++i){ÞÔÏ-ÔÏ} ÐÒÅ×ÒÁÝÁÅÔ × i=0;do{ÞÔÏ-ÔÏ}while(++i<10);

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

Hello Anton.

23 Feb 05 11:48, you wrote to Andy Mozzhevilov:

AA> ôÏÇÄÁ ÓÔpÁÎÎÏ. ëÏÍÐÉÌÑÔÏp ×ÅÚÄÅ ÇÅÎÅpÉÔ ËÏÍÁÎÄÙ ÓÄ×ÉÇÁ (ÓÎÁÞÁÌÁ ×ÌÅ×Ï, AA> ÐÏÔÏÍ ÏÂpÁÔÎÏ ×ÐpÁ×Ï) ÄÌÑ ÏÂÎÕÌÅÎÉÑ ÌÉÛÎÉÈ ÂÉÔ ÐpÉ ÐÏÍÅÝÅÎÉÉ × pÅÇÉÓÔp AA> ÍÁÌÏpÁÚpÑÄÎÏÊ ÐÅpÅÍÅÎÎÏÊ.

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

AA> ÷ÉÄÉÍÏ, ËÏÎÔpÏÌÌÅp ÎÅ ÕÍÅÅÔ ÏÐÅpÉpÏ×ÁÔØ ÞÁÓÔÑÍÉ pÅÇÉÓÔpÏ×, ËÁË, AA> ÎÁÐpÉÍÅp, x86.

HÅÔ, ÎÅ ÕÍÅÅÔ. HÏ ÜÔÏ ÎÅ ÏÞÅÎØ É ÎÁÄÏ. çÌÁ×ÎÏÅ, ÏÎ ÕÍÅÅÔ ÚÁÇÒÕÚÉÔØ/ÓÏÈÒÁÎÉÔØ ÔÏÌØËÏ ÎÕÖÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÂÉÔ.

AA> ÷ pÅÚÕÌØÔÁÔÅ pÁÂÏÔÁ Ó 8-16ÂÉÔ ÄÁÎÎÙÍÉ × pÁÚÙ ÍÅÄÌÅÎÅÅ.

HÅ ÄÏÌÖÎÏ × ÒÁÚÙ.

Alexey

Привет, *Vitaly*!

/четверг, 24 февраля 2005/ *Vitaly Mihno* писал(а) к *Vladimir Vassilevsky* по поводу *Re: юнит-тестиpование:*

[кусь]

VM>>> ПОзвольте вклиниться в Ваш споp и задать один вопpос. Что вы (оба VM>>> собеседника) подpазумеваете под моделью дизеля: набоp пеpеменных и их VM>>> связи, описывающее зависимость выходных паpаметpов, или набоp VM>>> _значений пеpеменных_.

VV>> Hабоp взаимосвязей, описывающих поведение дизеля. Чтобы можно было VV>> тестиpовать VV>> pегулятоp, а не пpосто пpовеpить аpифметику.

VM> Минуточку, чтобы тестиpовать pегулятоp необходимо иметь _две VM> компоненты_: модель дизеля и набоp пеpеменных для этой модели. VM> Пеpвое беpется из книжек пpо упpавление ЭУ, или доктоpских (то, что VM> это есть я-видел).

Я бы уточнил, что модели бывают двух типов - "физические" (где на основе _реальных_ исходных физических параметров и их _реальных_ _физических_ взаимосвязей получаются выходные параметры) и, назовём их так, "математические" - берём некоторый набор, описывающий режим работы двигателя (обороты, угловое ускорение, температуру охл. жидкости, расход воздуха, топлива) - и тупо забиваем таблицы зависимости выходных параметров от входных. Первые - вещь _оччень_ нетривиальная (если реализовывать для целей калибровки). Вторые - на их основе строятся все ЭСУД.

VM> Втоpое создается на основе пpогона набоpа тестов на дизеле, для VM> заполнения таблицы этих пеpеменных.

А вот это называется "калибровками". Строится, обычно, на основе прогона тестов не только на "голом" двигателе - но и "реальной езде".

[кусь]
ðÒÉ×ÅÔ Andy! þÅÔ æÅ× 24 2005 09:09, Andy Mozzhevilov -> Anton Abrosimov:

LB>>> åÓÔØ, ÔÏÌØËÏ ËÏÎÓÔÁÎÔÁ 8ÂÉÔ. ÷ ARM ÅÝÅ + ÓÄ×ÉÇ. AA>> á ÞÔÏ ÚÎÁÞÉÔ "+ÓÄ×ÉÇ"? AM> íÏÖÎÏ ÓÄ×ÉÎyÔØ ËÏÎÓÔÁÎÔy ÎÁ ÎÅÓËÏÌØËÏ ÂÉÔ, ÔÏ ÅÓÔØ ÉÚ 0xff ÐÏÌyÞÉÔ AM> ÂÙÓÔpÏ 0xff000000 ÎÁÐpÉÍÅp. ìÀÂyÀ 32-ÂÉÔÎyÀ ËÏÎÓÔÁÎÔy ËÏÎÅÞÎÏ ÔÁË ÎÅ AM> ÚÁÄÁÛØ, ÎÏ ËÁËyÀ-ÌÉÂÏ ÉÚ ÏÐpÅÄÅÌÅÎÎÏÇÏ ÎÁÂÏpÁ - ÍÏÖÎÏ, ÔÏ ÅÓÔØ AM> ÎÁÐpÉÍÅp Ó yÓÔÁÎÏ×ÌÅÎÎÙÍ ÂÉÔÏÍ (ÓÏÓÅÄÎÉÍÉ ÂÉÔÁÍÉ) ÔÁËÉÍÉ-ÔÏ áÇÁ, ÐÏÎÑÌ, Ñ ×ÉÄÅÌ ÔÁËÉÅ ËÏÍÁÎÄÙ × ÌÉÓÔÉÎÇÅ.

AA>> ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ ÂÏÌØÛÉÈ ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ AA>> ÔÁË? ðpÉÞÅÍ ÐÏ ËÏÄÕ Õ ÍÅÎÑ ÏÖÉÄÁÅÔÓÑ ÚÁÐÁÓ pÁÚÁ × Ä×Á, Á AA>> ÐpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÌÉÛÎÅÊ ÎÉËÏÇÄÁ ÎÅ ÂÙ×ÁÅÔ. :) AM> ðÏ ÍÏÉÍ ÏÃÅÎËÁÍ pÁÚÍÅp ËÏÄÁ × thumb × ~1.5 pÁÚÁ ÍÅÛØÛÅ, ÞÅÍ × arm. AM> ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ × thumb ÐÁÄÁÅÔ ~20% õ ÍÅÎÑ ÏÃÅÎËÉ ×ÙÛÌÉ ÄpÕÇÉÅ - ÐpÉ ÐÅpÅËÌÀÞÅÎÉÉ × arm pÁÚÍÅp ËÏÄÁ ×ÙpÏÓ Ó 20Ë ÄÏ

24Ë. ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÏÃÅÎÉÔØ ÎÅ ÍÏÇÕ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... HÅÔ ÐÏ×ÅÓÔÉ ÐÅÞÁÌØÎÅÅ ÎÁ Ó×ÅÔÅ, ÞÅÍ ÐÏ×ÅÓÔØ Ï ÚÁËÌÉÎÉ×ÛÅÍ Reset'Å

ðÒÉ×ÅÔ Andy! þÅÔ æÅ× 24 2005 09:18, Andy Mozzhevilov -> Anton Abrosimov:

AA>> óÐÁÓÉÂÏ, ÐpÏÞÉÔÁÌ. åppÁÔÁ ÏËÁÚÁÌÁÓØ ÚÁÍÅÔÎÏ ÍÅÎØÛÅ, ÞÅÍ Ñ ÏÖÉÄÁÌ. AA>> :) ñ ÅÝÅ Ó ×ÓÔpÏÅÎÎÙÍ ÁÃÐ ÎÅËÏÔÏpÙÅ ÐpÏÂÌÅÍÙ ÉÓÐÙÔÙ×ÁÀ, ÎÏ ÎÉÞÅÇÏ AA>> ÐÏÈÏÖÅÇÏ × ÅppÁÔÅ ÎÅ ÎÁÛÅÌ. AM> ëÁËÉÅ ÐpÏÂÌÅÍÙ? íÏÖÅÛØ ÏÐÉÓÁÔØ? ñ ÉÓÐÏÌØÚÕÀ ÏÄÎÏËpÁÔÎÏÅ(ÐpÏÇpÁÍÍÎÏÅ) ÓÅÍÐÌÉpÏ×ÁÎÉÅ, Ä×Á ËÁÎÁÌÁ. áãð ÚÁ×ÉÓÁÌ (ÎÅ ×ÙÓÔÁ×ÌÑÅÔÓÑ ÂÉÔ DONE), ÐÕÔÁÌ ËÁÎÁÌÙ (× ADDR ÎÏÍÅp ËÁÎÁÌÁ ÕËÁÚÁÎ ×ÅpÎÏ, Á ÚÎÁÞÅÎÉÅ Ñ×ÎÏ Ó ÄpÕÇÏÇÏ), ÛÕÍÙ ÓÏÓÔÁ×ÌÑÌÉ 20% ÏÔ FSR.

ðpÏÂÌÅÍÁ ÕÖÅ pÅÛÅÎÁ, ÄÅÌÏ ÂÙÌÏ × ÐÉÔÁÎÉÉ - ÐÕÌØÓÁÃÉÉ 400Í× ÎÁ 3.3÷ (ÏÔÌÁÄÏÞÎÁÑ ÐÌÁÔÁ ÏÔ íô-ÓÉÓÔÅÍ ÂÙÌÁ ÐpÏÓÔÏ ×ÐÁÑÎÁ × ÍÁËÅÔËÕ, ÐpÉÛÌÏÓØ ÄÏpÁÂÏÔÁÔØ ÅÅ ÎÁÐÉÌØÎÉËÏÍ, ÏÂ×ÅÓÉ× ÔÁÎÔÁÌÏÍ É ÐÏÓÔÁ×ÉÔØ LC-ÆÉÌØÔp ÎÁ ÅÅ ×ÈÏÄÅ). èÏÔÑ ÓÉÔÕÁÃÉÑ ÍÎÅ ÄÏ ÓÉÈ ÐÏp ÎÅ ÐÏÎÑÔÎÁ, ÐÉÌÁ 85Ëçà 100Í×AC Ó ×ÙÈÏÄÁ 5÷ ÉÍÐÕÌØÓÎÏÇÏ pÅÇÕÌÑÔÏpÁ ËÁËÉÍ-ÔÏ ÏÂpÁÚÏÍ ÐpÅ×pÁÝÁÌÁÓØ × ÓÉÎÕÓÏÉÄÕ 85Ëçà 400Í×AC ÐÏÓÌÅ ÐpÏÈÏÖÄÅÎÉÑ 3.3÷ ÌÉÎÅÊÎÏÇÏ pÅÇÕÌÑÔÏpÁ. ïÓÔÁÌÓÑ ÌÉÛØ ÏÄÉÎ ÎÅÄÏËÕÍÅÎÔÉpÏ×ÁÎÎÙÊ ÜÆÆÅËÔ - ÐÅp×ÏÅ ÉÚÍÅpÅÎÉÅ ÐÏÓÌÅ ÐÅpÅËÌÀÞÅÎÉÑ ËÁÎÁÌÁ ÄÌÉÔÓÑ × 4-5 pÁÚ ÍÅÎØÛÅ ÎÏÍÉÎÁÌÁ É ÐÏËÁÚÙ×ÁÅÔ ÐÏÇÏÄÕ ÎÁ ÍÁpÓÅ, ÎÏ ÜÔÏ ÕÖÅ ÍÅÌÏÞÉ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... õÍ ÎÁ ÚÅÍÌÅ - ×ÅÌÉÞÉÎÁ ÐÏÓÔÏÑÎÎÁÑ. á ÎÁÓÅÌÅÎÉÅ-ÔÏ ÒÁÓÔÅÔ!

ðÒÉ×ÅÔ Leha! þÅÔ æÅ× 24 2005 17:15, Leha Bishletov -> Anton Abrosimov:

LB>>> ïÒÇÁÎÉÚÏ×ÁÎÁ ÔÁË ÖÅ ËÁË É Ó 32ÂÉÔÎÙÍÉ. AA>> ñ ÜÔÏÇÏ ÎÅ ×ÉÖÕ. :) äÏÓÔÁÔÏÞÎÏ ÓpÁ×ÎÉÔØ ËÏÄ ÄÌÑ Ä×ÕÈ ÓÔpÏÞÅË: AA>> u8 a = 100; while (a--!=0) {}; AA>> u32 b = 100; while (b--!=0) {}; LB> äÁ×ÁÊ ÓÒÁ×ÎÉÍ (ÒÅÖÉÍ Thumb, ËÏÍÐÉÌÑÔÏÒ GCC): ë ÓÏÖÁÌÅÎÉÀ, ÁÎÁÌÏÇÉÞÎÏ ÐpÉ×ÅÓÔÉ ËÏÄ Ñ ÎÅ ÓÍÏÇÕ, Ô.Ë. ÁpÍÏ×ÏÇÏ ËÏÍÐÉÌÑÔÏpÁ ÄÏÍÁ ÎÅÔ. ôÁË ÞÔÏ ÐÏÐpÏÂÕÅÍ pÁÚÏÂpÁÔØ ÜÔÏÔ.

LB> U8 U32 LB> sub r2, r7, #1 mov r2, r7 LB> mov r3, #100 sub r2, r2, #8 LB> strb r3, [r2] mov r3, #100 LB> .L2: str r3, [r2] LB> sub r2, r7, #1 .L5: LB> sub r3, r7, #1 mov r2, r7 LB> ldrb r3, [r3] sub r2, r2, #8 LB> sub r3, r3, #1 mov r3, r7 LB> strb r3, [r2] sub r3, r3, #8 LB> lsl r3, r3, #24 ldr r3, [r3] LB> lsr r3, r3, #24 sub r3, r3, #1 LB> cmp r3, #0 str r3, [r2] LB> bne .L2 cmp r3, #0 LB> bne .L5 þÔÏ-ÔÏ ËÏÄ ÓÏ×ÓÅÍ ËpÉ×ÏÊ ×ÙÛÅÌ. HÁÆÉÇÁ ÌÏËÁÌØÎÕÀ ÐÅpÅÍÅÎÎÕÀ pÁÚÍÅÝÁÔØ × ÐÁÍÑÔÉ?

ñ ÎÁÂÌÀÄÁÌ ÞÔÏ-ÔÏ ÔÉÐÁ: mov ÍÅÔËÁ: sub cmp bne × ÓÌÕÞÁÅ u32, É:

mov lsl lsr ÍÅÔËÁ: sub lsl lsr cmp bne × ÓÌÕÞÁÅ u8.

ðpÉÞÅÍ ÍÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ×Ï ×ÔÏpÏÍ ÓÌÕÞÁÅ ËÏÍÁÎÄ ÂÙÌÏ ÅÝÅ ÂÏÌØÛÅ, É ÐpÉ ÚÁÍÅÎÅ ÓÞÅÔÞÉËÁ ÃÉËÌÁ ÎÁ u32 ËÏÄ ÓÏËpÁÔÉÌÓÑ pÁÚÁ × 3.

LB> U32 ÐÏÌÕÞÉÌÏÓØ ÄÌÉÎÎÅÅ :) HÏ ÜÔÏ ÐÏÔÏÍÕ, ÞÔÏ 'sub r2, r7, #8' ÎÅ LB> ×ÏÚÍÏÖÅÎ. á ÔÁË, "ÌÉÛÎÉÅ" ÔÏÌØËÏ lsl - lsr, Ô.Å. ×ÙÄÅÌÅÎÉÅ ÍÌÁÄÛÅÇÏ LB> ÂÁÊÔÁ ÐÒÉ ÓÒÁ×ÎÅÎÉÉ. ÷ ÏÓÔÁÌØÎÏÍ, ÁÒÉÆÍÅÔÉËÁ É ÞÔÅÎÉÅ-ÚÁÐÉÓØ LB> ÏÄÉÎÁËÏ×ÙÅ. ÷ ÄÁÎÎÏÊ ÓÉÔÕÁÃÉÉ - ÄÁ. :)

LB>>> á ÐÏÞÅÍÕ ÔÙ ×ÓÅ × Thumb ÄÅÌÁÅÛØ? AA>> ÈÚ. üÔÏ ÎÁÓÔpÏÊËÁ ÐÏ-ÕÍÏÌÞÁÎÉÀ. ëÏÇÄÁ Ñ ÔÏÌØËÏ ÎÁÞÉÎÁÌ ÐpÏÅËÔ, AA>> ÐÏÐpÏÂÏ×ÁÌ Ó ÏÂÏÉÍÉ ×ÁpÉÁÎÔÁÍÉ, ËÏÄ Ó Thumb ÂÙÌ × ÐÏÌÔÏpÁ pÁÚÁ AA>> ÍÅÎØÛÅ ÐpÉ ÔÏÊ-ÖÅ ÓËÏpÏÓÔÉ pÁÂÏÔÙ. äÁ É ×ÏÏÂÝÅ, ×Ï ×ÓÅÈ ÏÐÉÓÁÎÉÑÈ AA>> pÅÖÉÍ thumb ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ ÂÏÌØÛÉÈ AA>> ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ ÔÁË?

LB> äÁ×ÁÊ ÓÒÁ×ÎÉÍ ÎÁ Ô×ÏÅÍ ÖÅ ÐÒÉÍÅÒÅ:

LB> Thumb ARM LB> mov r3, #100 mov r3, #100 LB> strb r3, [r2] strb r3, [fp, #-13] LB> .L2: .L2: LB> sub r2, r7, #1 ldrb r3, [fp, #-13] LB> sub r3, r7, #1 sub r3, r3, #1 LB> ldrb r3, [r3] strb r3, [fp, #-13] LB> sub r3, r3, #1 and r3, r3, #255 LB> strb r3, [r2] cmp r3, #255 LB> lsl r3, r3, #24 bne .L2 LB> lsr r3, r3, #24 mov r3, #100 LB> cmp r3, #0 str r3, [fp, #-20] LB> bne .L2 .L5: LB> mov r2, r7 ldr r3, [fp, #-20] LB> sub r2, r2, #8 sub r3, r3, #1 LB> mov r3, #100 str r3, [fp, #-20] LB> str r3, [r2] cmn r3, #1 LB> .L5: bne .L5 LB> mov r2, r7 LB> sub r2, r2, #8 LB> mov r3, r7 LB> sub r3, r3, #8 LB> ldr r3, [r3] LB> sub r3, r3, #1 LB> str r3, [r2] LB> cmp r3, #0 LB> bne .L5 LB> --------------------------------------------------------------- LB> 24 ËÏÍÁÎÄÙ 15 ËÏÍÁÎÄ LB> 48 ÂÁÊÔ 60 ÂÁÊÔ

LB> úÄÅÓØ ÐÏÌÕÞÁÅÔÓÑ, ÞÔÏ Thumb ÐÒÏÉÇÒÙ×ÁÅÔ ÐÏ ÓËÏÒÏÓÔÉ (ËÏÍÁÎÄÙ LB> ×ÙÐÏÌÎÑÀÔÓÑ ÐÒÉÍÅÒÎÏ ÏÄÉÎÁËÏ×ÏÅ ×ÒÅÍÑ), ÎÏ, ÞÅÓÔÎÏ ÇÏ×ÏÒÑ, ËÏÄ, LB> ÇÅÎÅÒÉÒÕÅÍÙÊ GCC × ÒÅÖÉÍÅ Thumb ÍÎÅ ËÁÖÅÔÓÑ ÏÞÅÎØ ÎÅ ÏÐÔÉÍÁÌØÎÙÍ. ÷ äÁ É × pÅÖÉÍÅ ÁpÍ ÔÏÖÅ ÎÅ ×ÓÅ ÇÌÁÄËÏ, ÎÁÐpÉÍÅp, Ï ËÏÍÁÎÄÅ subs ËÏÍÐÉÌÑÔÏp ÎÅ ÚÎÁÅÔ. :)

LB> ÒÅÖÉÍÅ Thumb ÎÅÔ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ Ó ÏÔÒÉÃÁÔÅÌØÎÙÍ ÓÍÅÝÅÎÉÅÍ, ÎÏ ÂÅÚ LB> ÜÔÏÇÏ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÏÂÈÏÄÉÔØÓÑ, ÅÓÌÉ ÁÄÒÅÓÏ×ÁÔØÓÑ ÏÔÎÏÓÉÔÅÌØÎÏ SP. á LB> ÚÄÅÓØ ×ÉÄÉÍ ÓÐÏÌÛÎÕÀ ÁÒÉÆÍÅÔÉËÕ. ëÓÔÁÔÉ, ÐÒÉ ÍÁËÓÉÍÁÌØÎÏÊ ÏÐÔÉÍÉÚÁÃÉÉ LB> ËÏÄ ÏÓÔÁÅÔÓÑ ÐÒÉÍÅÒÎÏ ÔÁËÉÍ ÖÅ. LB> éÚ ÏÂßÅËÔÉ×ÎÙÈ ÏÇÒÁÎÉÞÅÎÉÊ, ÐÒÉ ÉÄÅÁÌØÎÏÍ ËÏÍÐÉÌÑÔÏÒÅ: LB> 1. ÷ ÒÅÖÉÍÅ ARM ÂÏÌØÛÅ ÐÒÑÍÏ ÄÏÓÔÕÐÎÙÈ ÒÅÇÉÓÔÒÏ×, ÜÔÏ ÏÞÅÎØ ÂÏÌØÛÏÊ + LB> 2. ÷ ÒÅÖÉÍÅ ARM ÅÓÔØ "ÕÓÌÏ×ÎÏÅ" ×ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄÙ, ÍÏÇÌÏ ÂÙ ÓÉÌØÎÏ LB> ÐÏÍÏÇÁÔØ ÎÁ ÐÒÏÓÔÙÈ ËÏÎÔÓÒÕËÃÉÑÈ ÔÉÐÁ if(a>max) a=max; ÉÌÉ if(flag) LB> f(); 3. ÷ ARM ÂÏÌØÛÅ ÄÉÁÐÁÚÏÎ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ ÓÏ LB> ÓÍÅÝÅÎÉÅÍ +-2047ÂÁÊÔ(*4ÓÌÏ×) vs +31(*4), ÓËÁÖÅÔÓÑ ÐÒÉ ÎÁÌÉÞÉÉ ÂÏÌØÛÉÈ LB> ÓÔÒÕËÔÕÒ. 4. ÷ ARM ÕÓÌÏ×ÎÙÅ/ÂÅÚÕÓÌÏ×ÎÙÅ ÐÅÒÅÈÏÄÙ ÍÏÇÕÔ ÂÙÔØ +-ÏÞÅÎØ LB> ÍÎÏÇÏ ËÏÍÁÎÄ, vs +-127 ÕÓÌÏ×ÎÙÊ ÐÅÒÅÈÏÄ, +-2048 ÂÅÚÕÓÌÏ×ÎÙÊ. íÏÖÅÔ LB> ÐÒÏÑ×ÉÔØÓÑ, ÎÏ ×ÌÉÑÎÉÅ ÂÕÄÅÔ ÍÁÌÅÎØËÉÍ. HÏ ÉÄÅÁÌØÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× ÎÅÔ. ÷ ÜÔÏÍ ÐpÉÍÅpÅ thumb ÐpÏÉÇpÙ×ÁÅÔ Ñ×ÎÏ ÂÌÁÇÏÄÁpÑ ËÏÓ×ÅÎÎÏÊ ÁÄpÅÓÁÃÉÉ.

LB> ðÏ GCC ×ÉÄÎÏ, ÞÔÏ ÏÎ ÎÅ ÌÀÂÉÔ Thumb É ÉÓÐÏÌØÚÏ×ÁÎÉÅ Thumb × ÎÅÍ LB> ÂÅÓÓÍÙÓÌÅÎÎÏ. ðÏÓÍÏÔÒÅÌ ÞÔÏ ×ÙÄÁÅÔ IAR. úÎÁÞÉÔÅÌØÎÏ ÌÕÞÛÅ ÞÅÍ GCC. õ LB> ÎÅÇÏ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÁÄÒÅÓÕÀÔÓÑ × +, × ÉÔÏÇÅ ËÏÄ ÍÅÎØÛÅ. ô.Å. ÄÌÑ LB> IAR ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÍÏÖÎÏ ÏÖÉÄÁÔØ, ÞÔÏ ËÏÄ Thumb ÂÕÄÅÔ ÚÎÁÞÉÔÅÌØÎÏ LB> ÍÅÎØÛÅ, ÐÒÉ ÐÒÉÍÅÒÎÏ ÔÏÊ ÖÅ ÓËÏÒÏÓÔÉ ×ÙÐÏÌÎÅÎÉÑ. ðÏÒÁ ÐÅÒÅÈÏÄÉÔØ ÎÁ LB> IAR ... èÏÔÑ, × ÚÁÝÉÔÕ GCC, ÍÏÖÎÏ ÓËÁÚÁÔØ, ÞÔÏ ÏÐÔÉÍÉÚÁÃÉÑ, ÎÅ LB> Ó×ÑÚÁÎÎÁÑ Ó ÏËÏÎÞÁÔÅÌØÎÙÍ ËÏÄÏÍ, ËÁÖÅÔÓÑ ÌÕÞÛÅ. HÁÐÒÉÍÅÒ ÃÉËÌÙ LB> for(i=0;i<10;++i){ÞÔÏ-ÔÏ} ÐÒÅ×ÒÁÝÁÅÔ × i=0;do{ÞÔÏ-ÔÏ}while(++i<10); ñ, ËÁÖÅÔÓÑ, ÔÕÔ ÕÖÅ ÐpÉ×ÏÄÉÌ ÐpÉÍÅp, ËÁË IAR ÚÁÍÅÎÉÌ ËÏÄ ÔÉÐÁ: u16 a = b; u8 c = 9; while (c--!=0) a += b; ÎÁ a = mul(b,10), ÐpÉÞÅÍ ÏÔËÌÀÞÅÎÉÅ ÏÐÔÉÍÉÚÁÃÉÉ ÎÉÞÅÇÏ ÎÅ ÍÅÎÑÌÏ. üÔÏ, ÉÍÈÏ, ÐÏÓÅpØÅÚÎÅÅ ÉÚÍÅÎÅÎÉÑ ÎÁÐpÁ×ÌÅÎÉÑ ÉÌÉ ×pÅÍÅÎÉ ÐpÏ×ÅpËÉ ÃÉËÌÁ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... õÍ ÎÁ ÚÅÍÌÅ - ×ÅÌÉÞÉÎÁ ÐÏÓÔÏÑÎÎÁÑ. á ÎÁÓÅÌÅÎÉÅ-ÔÏ ÒÁÓÔÅÔ!

ðÒÉ×ÅÔ Andy! þÅÔ æÅ× 24 2005 09:04, Andy Mozzhevilov -> Anton Abrosimov:

AA>> ôÏÇÄÁ ÓÔpÁÎÎÏ. ëÏÍÐÉÌÑÔÏp ×ÅÚÄÅ ÇÅÎÅpÉÔ ËÏÍÁÎÄÙ ÓÄ×ÉÇÁ (ÓÎÁÞÁÌÁ AA>> ×ÌÅ×Ï, ÐÏÔÏÍ ÏÂpÁÔÎÏ ×ÐpÁ×Ï) ÄÌÑ ÏÂÎÕÌÅÎÉÑ ÌÉÛÎÉÈ ÂÉÔ ÐpÉ AA>> ÐÏÍÅÝÅÎÉÉ × pÅÇÉÓÔp ÍÁÌÏpÁÚpÑÄÎÏÊ ÐÅpÅÍÅÎÎÏÊ. ÷ÉÄÉÍÏ, ËÏÎÔpÏÌÌÅp AA>> ÎÅ ÕÍÅÅÔ ÏÐÅpÉpÏ×ÁÔØ ÞÁÓÔÑÍÉ pÅÇÉÓÔpÏ×, ËÁË, ÎÁÐpÉÍÅp, x86. AM> HÅ yÍÅÅÔ ËÏÎÅÞÎÏ, ÐÏÄÄÅpÖËÁ ÐÏÌy-ÓÌÏ× É ÂÁÊÔ ÓÏÓÔÏÉÔ × ×ÏÚÍÏÖÎÏÓÔÉ ÉÈ AM> ÞÔÅÎÉÑ É ÚÁÐÉÓÉ ÉÚ ÐÁÍÑÔÉ. öÁÌØ. ëÓÔÁÔÉ, ËÏÇÄÁ ÇpÁÆÉËÕ ÐÏpÔÉpÏ×ÁÌ, ÍÅÎÑ ÓÎÁÞÁÌÁ ÐÏpÁÄÏ×ÁÌÁ ÅÇÏ ×ÏÚÍÏÖÎÏÓÔØ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ 32ÂÉÔ, ÎÅ ×ÙpÏ×ÎÅÎÙÈ ÎÁ ÓÌÏ×Ï, ÎÏ little-endian ×ÓÅ ÉÓÐÏpÔÉÌÏ. :( AA>> ÷ pÅÚÕÌØÔÁÔÅ pÁÂÏÔÁ Ó 8-16ÂÉÔ ÄÁÎÎÙÍÉ × pÁÚÙ ÍÅÄÌÅÎÅÅ. AM> äyÍÁÀ "pÁÚÙ" - ÜÔÏ ÐpÅy×ÅÌÉÞÅÎÏ ×ÓÅ-ÖÅ HÕ ÅÓÌÉ ×ÚÑÔØ ÜÌÅÍÅÎÔÁpÎÕÀ ÏÐÅpÁÃÉÀ - ÚÁÇpÕÚËÕ ×ÅÌÉÞÉÎÙ ÉÚ ÐÁÍÑÔÉ × pÅÇÉÓÔp - ÔÏ pÁÚÁ × 2 ÔÏÞÎÏ, ÚÁ ÓÞÅÔ Ä×ÕÈ ËÏÍÁÎÄ ÓÄ×ÉÇÁ ÄÌÑ ÏÂÎÕÌÅÎÉÑ ÌÉÛÎÉÈ ÂÉÔ.

AM>>> ÅÓÔØ, Ó ËÏÎÓÔÁÎÔÁÍÉ ÛÉpÉÎÏÊ 12 ÂÉÔ, ÜÔÏ ÄÌÑ ÁpÍ pÅÖÉÍÁ, ÄÌÑ AM>>> thumb ÎÁÄÏ yÔÏÞÎÉÔØ. AA>> äÌÑ thumb ÚÎÁÞÉÔ ÎÅ ×ÌÅÚÅÔ × ÏÐËÏÄ. AM> ðÏÓÍÏÔpÅÌ, ÔÁÍ ÄÏ 8 ÂÉÔ ypÅÚÁÎÁ ËÏÎÓÔÁÎÔÁ ñ ÔÏÖÅ ÄÁÔÁÛÉÔÏÍ ÎÁ ÎÁÂÏp ËÏÍÁÎÄ ÏÂÚÁ×ÅÌÓÑ, ÂÕÄÕ ÔÅÐÅpØ ÓÁÍ ÓÍÏÔpÅÔØ. :)

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... Keyboard not found. Press F1 to continue...

Sat Feb 26 2005 02:16, Anton Abrosimov wrote to Andy Mozzhevilov:

AM>> äyÍÁÀ "pÁÚÙ" - ÜÔÏ ÐpÅy×ÅÌÉÞÅÎÏ ×ÓÅ-ÖÅ

AA> HÕ ÅÓÌÉ ×ÚÑÔØ ÜÌÅÍÅÎÔÁpÎÕÀ ÏÐÅpÁÃÉÀ - ÚÁÇpÕÚËÕ ×ÅÌÉÞÉÎÙ ÉÚ ÐÁÍÑÔÉ × AA> pÅÇÉÓÔp - ÔÏ pÁÚÁ × 2 ÔÏÞÎÏ, ÚÁ ÓÞÅÔ Ä×ÕÈ ËÏÍÁÎÄ ÓÄ×ÉÇÁ ÄÌÑ ÏÂÎÕÌÅÎÉÑ AA> ÌÉÛÎÉÈ ÂÉÔ.

ðÒÉ ÞÔÅÎÉÉ ÂÁÊÔÁ/ÐÏÌÕÓÌÏ×Á ÐÒÏÉÚ×ÏÄÉÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÏÅ ÒÁÓÛÉÒÅÎÉÅ ÚÎÁÞÅÎÉÑ ÄÏ 32 ÂÉÔ ÐÒÉ ÚÁÐÉÓÉ × ÒÅÇÉÓÔÒ, ÚÎÁËÏ×ÏÅ ÉÌÉ ÂÅÚÚÎÁËÏ×ÏÅ, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ËÏÍÁÎÄÙ, ÐÏÜÔÏÍÕ ÜÔÉ ÓÄ×ÉÇÉ ÍÏÇÕÔ ÐÏÑ×ÌÑÔØÓÑ ÔÏÌØËÏ ÐÏÓÌÅ ÏÐÅÒÁÃÉÊ ÎÁÄ ÁÒÇÕÍÅÎÔÏÍ ÄÌÑ ÐÒÉ×ÅÄÅÎÉÑ ÅÇÏ × ×ÏÚÍÏÖÎÙÊ ÄÌÑ ÜÔÏÇÏ ÔÉÐÁ ÄÉÁÐÁÚÏÎ ÚÎÁÞÅÎÉÊ.

wbr, Andy

Fri Feb 25 2005 23:08, Anton Abrosimov wrote to Andy Mozzhevilov:

AM>> ðÏ ÍÏÉÍ ÏÃÅÎËÁÍ pÁÚÍÅp ËÏÄÁ × thumb × ~1.5 pÁÚÁ ÍÅÛØÛÅ, ÞÅÍ × arm. AM>> ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ × thumb ÐÁÄÁÅÔ ~20%

AA> õ ÍÅÎÑ ÏÃÅÎËÉ ×ÙÛÌÉ ÄpÕÇÉÅ - ÐpÉ ÐÅpÅËÌÀÞÅÎÉÉ × arm pÁÚÍÅp ËÏÄÁ ×ÙpÏÓ Ó AA> 20Ë ÄÏ 24Ë. ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÏÃÅÎÉÔØ ÎÅ ÍÏÇÕ.

ñ ÉÓÐÏÌØÚÏ×ÁÌ iar, ËÏÍÐÉÌÉÒÏ×ÁÌ ÉÓÈÏÄÎÉËÉ ucos. óÌÏÖÎÏ ÓËÁÚÁÔØ, ÐÏÞÅÍÕ Õ ÔÅÂÑ ÔÁËÉÅ ÒÅÚÕÌØÔÁÔÙ, ÔÏ ÌÉ ÓÐÅÃÉÆÉËÁ ÉÓÈÏÄÎÉËÏ×, ÔÏ ÌÉ ËÏÍÐÉÌÑÔÏÒÁ. óËÏÒÅÅ 2-Å, ×ÏÚÍÏÖÎÏ gcc ÄÌÑ thumb ÇÅÎÅÒÉÔ ÎÅ ÓÉÌØÎÏ ÏÐÔÉÍÁÌØÎÙÊ ËÏÄ.

wbr, Andy

Sat Feb 26 2005 00:14, Anton Abrosimov wrote to Andy Mozzhevilov:

AA>>> óÐÁÓÉÂÏ, ÐpÏÞÉÔÁÌ. åppÁÔÁ ÏËÁÚÁÌÁÓØ ÚÁÍÅÔÎÏ ÍÅÎØÛÅ, ÞÅÍ Ñ ÏÖÉÄÁÌ. AA>>> :) ñ ÅÝÅ Ó ×ÓÔpÏÅÎÎÙÍ ÁÃÐ ÎÅËÏÔÏpÙÅ ÐpÏÂÌÅÍÙ ÉÓÐÙÔÙ×ÁÀ, ÎÏ ÎÉÞÅÇÏ AA>>> ÐÏÈÏÖÅÇÏ × ÅppÁÔÅ ÎÅ ÎÁÛÅÌ. AM>> ëÁËÉÅ ÐpÏÂÌÅÍÙ? íÏÖÅÛØ ÏÐÉÓÁÔØ?

AA> ñ ÉÓÐÏÌØÚÕÀ ÏÄÎÏËpÁÔÎÏÅ(ÐpÏÇpÁÍÍÎÏÅ) ÓÅÍÐÌÉpÏ×ÁÎÉÅ, Ä×Á ËÁÎÁÌÁ. áãð AA> ÚÁ×ÉÓÁÌ (ÎÅ ×ÙÓÔÁ×ÌÑÅÔÓÑ ÂÉÔ DONE), ÐÕÔÁÌ ËÁÎÁÌÙ (× ADDR ÎÏÍÅp ËÁÎÁÌÁ AA> ÕËÁÚÁÎ ×ÅpÎÏ, Á ÚÎÁÞÅÎÉÅ Ñ×ÎÏ Ó ÄpÕÇÏÇÏ),

÷ errata ÐÒÏ ÐÕÔÁÎÉÃÕ Ó ËÁÎÁÌÁÍÉ ÓËÁÚÁÎÏ.

AA> ÛÕÍÙ ÓÏÓÔÁ×ÌÑÌÉ 20% ÏÔ FSR. AA> ðpÏÂÌÅÍÁ ÕÖÅ pÅÛÅÎÁ, ÄÅÌÏ ÂÙÌÏ × ÐÉÔÁÎÉÉ - ÐÕÌØÓÁÃÉÉ 400Í× ÎÁ 3.3÷ AA> (ÏÔÌÁÄÏÞÎÁÑ ÐÌÁÔÁ ÏÔ íô-ÓÉÓÔÅÍ ÂÙÌÁ ÐpÏÓÔÏ ×ÐÁÑÎÁ × ÍÁËÅÔËÕ, ÐpÉÛÌÏÓØ AA> ÄÏpÁÂÏÔÁÔØ ÅÅ ÎÁÐÉÌØÎÉËÏÍ, ÏÂ×ÅÓÉ× ÔÁÎÔÁÌÏÍ É ÐÏÓÔÁ×ÉÔØ LC-ÆÉÌØÔp ÎÁ ÅÅ AA> ×ÈÏÄÅ).

÷Ï-×Ï, ÔÁ ÖÅ ÆÉÇÎÑ. ëÁË pll ×ËÌÀÞÁÅÔÓÑ, ÐÏÎÅÓÌÉÓØ ÐÕÌØÓÁÃÉÉ ~300 Í÷ , ÏÓÏÂÅÎÎÏ ÅÓÌÉ wiggler ÏÔÃÅÐÉÔØ, × ËÏÔÏÒÏÍ ÓÔÏÉÔ ÔÁÎÔÁÌ ÐÏ ÐÉÔÁÎÉÀ.

AA> ïÓÔÁÌÓÑ ÌÉÛØ ÏÄÉÎ ÎÅÄÏËÕÍÅÎÔÉpÏ×ÁÎÎÙÊ ÜÆÆÅËÔ - ÐÅp×ÏÅ ÉÚÍÅpÅÎÉÅ ÐÏÓÌÅ AA> ÐÅpÅËÌÀÞÅÎÉÑ ËÁÎÁÌÁ ÄÌÉÔÓÑ × 4-5 pÁÚ ÍÅÎØÛÅ ÎÏÍÉÎÁÌÁ É ÐÏËÁÚÙ×ÁÅÔ ÐÏÇÏÄÕ AA> ÎÁ ÍÁpÓÅ, ÎÏ ÜÔÏ ÕÖÅ ÍÅÌÏÞÉ.

ÔÏÖÅ × errata ÓÍÏÔÒÉ, ÅÓÔØ ÔÁÍ ÞÔÏ-ÔÏ ÐÒÏ ÐÅÒ×ÙÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÎÙÈ ÕÓÌÏ×ÉÑÈ.

wbr, Andy

ðÒÉ×ÅÔ Alexey! ðÑÔ æÅ× 25 2005 10:11, Alexey Boyko -> Anton Abrosimov:

AA>> ôÏÇÄÁ ÓÔpÁÎÎÏ. ëÏÍÐÉÌÑÔÏp ×ÅÚÄÅ ÇÅÎÅpÉÔ ËÏÍÁÎÄÙ ÓÄ×ÉÇÁ (ÓÎÁÞÁÌÁ AA>> ×ÌÅ×Ï, ÐÏÔÏÍ ÏÂpÁÔÎÏ ×ÐpÁ×Ï) ÄÌÑ ÏÂÎÕÌÅÎÉÑ ÌÉÛÎÉÈ ÂÉÔ ÐpÉ AA>> ÐÏÍÅÝÅÎÉÉ × pÅÇÉÓÔp ÍÁÌÏpÁÚpÑÄÎÏÊ ÐÅpÅÍÅÎÎÏÊ. AB> üÔÏ Õ ÔÅÂÑ ËÏÍÐÉÌÑÔÏÒ ÔÁËÏÊ. ïÎ, ËÏÎÅÞÎÏ, ÄÏÌÖÅÎ ÉÎÏÇÄÁ ÏÞÉÝÁÔØ AB> ÓÔÁÒÛÉÅ ÂÉÔÙ, ÎÏ ÎÅ ×ÅÚÄÅ.. õÖ ËÁËÏÊ ÅÓÔØ ËÏÍÐÉÌÑÔÏp. íÏÖÅÔ É ÎÅ ×ÅÚÄÅ, ÎÏ × ÇÌÁÚÁ ÐÏÓÔÏÑÎÎÏ ÂpÏÓÁÅÔÓÑ.

AA>> ÷ÉÄÉÍÏ, ËÏÎÔpÏÌÌÅp ÎÅ ÕÍÅÅÔ ÏÐÅpÉpÏ×ÁÔØ ÞÁÓÔÑÍÉ pÅÇÉÓÔpÏ×, ËÁË, AA>> ÎÁÐpÉÍÅp, x86. AB> HÅÔ, ÎÅ ÕÍÅÅÔ. HÏ ÜÔÏ ÎÅ ÏÞÅÎØ É ÎÁÄÏ. çÌÁ×ÎÏÅ, ÏÎ ÕÍÅÅÔ AB> ÚÁÇÒÕÚÉÔØ/ÓÏÈÒÁÎÉÔØ ÔÏÌØËÏ ÎÕÖÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÂÉÔ. üÔÏ ÏÞÅ×ÉÄÎÏ, pÁÚ ÎÅ ÕÍÅÅÔ - ÚÎÁÞÉÔ ÎÅ ÏÞÅÎØ É ÎÁÄÏ. :)

AA>> ÷ pÅÚÕÌØÔÁÔÅ pÁÂÏÔÁ Ó 8-16ÂÉÔ ÄÁÎÎÙÍÉ × pÁÚÙ ÍÅÄÌÅÎÅÅ. AB> HÅ ÄÏÌÖÎÏ × ÒÁÚÙ. ðÏÌÎÏÓÔØÀ ÓÏÇÌÁÓÅÎ - ÎÅ ÄÏÌÖÎÏ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... õÍ ÎÁ ÚÅÍÌÅ - ×ÅÌÉÞÉÎÁ ÐÏÓÔÏÑÎÎÁÑ. á ÎÁÓÅÌÅÎÉÅ-ÔÏ ÒÁÓÔÅÔ!

ðÒÉ×ÅÔ Andy! óÕ æÅ× 26 2005 07:04, Andy Mozzhevilov -> Anton Abrosimov:

AM>>> ðÏ ÍÏÉÍ ÏÃÅÎËÁÍ pÁÚÍÅp ËÏÄÁ × thumb × ~1.5 pÁÚÁ ÍÅÛØÛÅ, ÞÅÍ × AM>>> arm. ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ × thumb ÐÁÄÁÅÔ ~20% AA>> õ ÍÅÎÑ ÏÃÅÎËÉ ×ÙÛÌÉ ÄpÕÇÉÅ - ÐpÉ ÐÅpÅËÌÀÞÅÎÉÉ × arm pÁÚÍÅp ËÏÄÁ AA>> ×ÙpÏÓ Ó 20Ë ÄÏ 24Ë. ðpÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÏÃÅÎÉÔØ ÎÅ ÍÏÇÕ. AM> ñ ÉÓÐÏÌØÚÏ×ÁÌ iar, ËÏÍÐÉÌÉÒÏ×ÁÌ ÉÓÈÏÄÎÉËÉ ucos. AM> óÌÏÖÎÏ ÓËÁÚÁÔØ, ÐÏÞÅÍÕ Õ ÔÅÂÑ ÔÁËÉÅ ÒÅÚÕÌØÔÁÔÙ, ÔÏ ÌÉ ÓÐÅÃÉÆÉËÁ AM> ÉÓÈÏÄÎÉËÏ×, ÔÏ ÌÉ ËÏÍÐÉÌÑÔÏÒÁ. AM> óËÏÒÅÅ 2-Å, ×ÏÚÍÏÖÎÏ gcc ÄÌÑ thumb ÇÅÎÅÒÉÔ ÎÅ ÓÉÌØÎÏ ÏÐÔÉÍÁÌØÎÙÊ ËÏÄ. HÅÔ, ×ÔÏpÏÅ ÏÔÐÁÄÁÅÔ, Õ ÍÅÎÑ iar. èÏÔÑ ÓÐÅÃÉÆÉËÁ ÉÓÈÏÄÎÉËÏ× ×ÏÚÍÏÖÎÁ - × ËÏÄÅ ÍÁÓÓÏ×Ï ÉÓÐÏÌØÚÕÅÔÓÑ pÁÂÏÔÁ Ó 8/16-ÂÉÔÎÙÍÉ ÐÅpÅÍÅÎÎÙÍÉ (É ÔÁË 12Ë pÁÍÁ ÕÈÏÄÉÔ, ÂÅÚ ÕÞÅÔÁ ÓÔÅËÏ×), ×ÓÅ×ÏÚÍÏÖÎÙÅ ÂÉÔÏ×ÙÅ ÍÁÎÉÐÕÌÑÃÉÉ (ÇÕÑ), ËÏÓ×ÅÎÎÙÅ ÁÄpÅÓÁÃÉÉ (c++) É pÁÓÞÅÔÙ ×Ï float (ÐÏÄÓÔpÁÉ×ÁÀÝÁÑÓÑ ÍÏÄÅÌØ ÕÐpÁ×ÌÑÅÍÏÇÏ ÏÂÏpÕÄÏ×ÁÎÉÑ). ïÐÔÉÍÉÚÁÃÉÑ ÍÁËÓÉÍÁÌØÎÁÑ ÎÁ ÓËÏpÏÓÔØ. á Õ ucos'Á, Ñ ÄÕÍÁÀ, Ó×ÏÉ ÏÓÏÂÅÎÎÏÓÔÉ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... õÍ ÎÁ ÚÅÍÌÅ - ×ÅÌÉÞÉÎÁ ÐÏÓÔÏÑÎÎÁÑ. á ÎÁÓÅÌÅÎÉÅ-ÔÏ ÒÁÓÔÅÔ!

ðÒÉ×ÅÔ Andy! óÕ æÅ× 26 2005 07:35, Andy Mozzhevilov -> Anton Abrosimov:

AA>>>> óÐÁÓÉÂÏ, ÐpÏÞÉÔÁÌ. åppÁÔÁ ÏËÁÚÁÌÁÓØ ÚÁÍÅÔÎÏ ÍÅÎØÛÅ, ÞÅÍ Ñ AA>>>> ÏÖÉÄÁÌ. :) ñ ÅÝÅ Ó ×ÓÔpÏÅÎÎÙÍ ÁÃÐ ÎÅËÏÔÏpÙÅ ÐpÏÂÌÅÍÙ ÉÓÐÙÔÙ×ÁÀ, AA>>>> ÎÏ ÎÉÞÅÇÏ ÐÏÈÏÖÅÇÏ × ÅppÁÔÅ ÎÅ ÎÁÛÅÌ. AM>>> ëÁËÉÅ ÐpÏÂÌÅÍÙ? íÏÖÅÛØ ÏÐÉÓÁÔØ? AA>> ñ ÉÓÐÏÌØÚÕÀ ÏÄÎÏËpÁÔÎÏÅ(ÐpÏÇpÁÍÍÎÏÅ) ÓÅÍÐÌÉpÏ×ÁÎÉÅ, Ä×Á ËÁÎÁÌÁ. AA>> áãð ÚÁ×ÉÓÁÌ (ÎÅ ×ÙÓÔÁ×ÌÑÅÔÓÑ ÂÉÔ DONE), ÐÕÔÁÌ ËÁÎÁÌÙ (× ADDR AA>> ÎÏÍÅp ËÁÎÁÌÁ ÕËÁÚÁÎ ×ÅpÎÏ, Á ÚÎÁÞÅÎÉÅ Ñ×ÎÏ Ó ÄpÕÇÏÇÏ), AM> ÷ errata ÐÒÏ ÐÕÔÁÎÉÃÕ Ó ËÁÎÁÌÁÍÉ ÓËÁÚÁÎÏ. áÇÁ, ÎÏ ÌÉÛØ × pÅÖÉÍÅ ÓÏ ÓËÁÎÉpÏ×ÁÎÉÅÍ ËÁÎÁÌÏ×. á Ñ ÖÅ ÕÔÏÞÎÉÌ, ÞÔÏ ÉÓÐÏÌØÚÕÀ ÏÄÎÏËpÁÔÎÏÅ ÓÅÍÐÌÉpÏ×ÁÎÉÅ. ðpÉÞÅÍ ÐpÉ ÓÔÁÂÉÌÉÚÁÃÉÉ ÎÁÐpÑÖÅÎÉÑ ÜÔÏ ÐÏÌÎÏÓÔØÀ ÐpÏÐÁÌÏ, ËÁË É ÚÁ×ÉÓÁÎÉÅ.

AA>> ÛÕÍÙ ÓÏÓÔÁ×ÌÑÌÉ 20% ÏÔ FSR. AA>> ðpÏÂÌÅÍÁ ÕÖÅ pÅÛÅÎÁ, ÄÅÌÏ ÂÙÌÏ × ÐÉÔÁÎÉÉ - ÐÕÌØÓÁÃÉÉ 400Í× ÎÁ AA>> 3.3÷ (ÏÔÌÁÄÏÞÎÁÑ ÐÌÁÔÁ ÏÔ íô-ÓÉÓÔÅÍ ÂÙÌÁ ÐpÏÓÔÏ ×ÐÁÑÎÁ × ÍÁËÅÔËÕ, AA>> ÐpÉÛÌÏÓØ ÄÏpÁÂÏÔÁÔØ ÅÅ ÎÁÐÉÌØÎÉËÏÍ, ÏÂ×ÅÓÉ× ÔÁÎÔÁÌÏÍ É ÐÏÓÔÁ×ÉÔØ AA>> LC-ÆÉÌØÔp ÎÁ ÅÅ ×ÈÏÄÅ). AM> ÷Ï-×Ï, ÔÁ ÖÅ ÆÉÇÎÑ. ëÁË pll ×ËÌÀÞÁÅÔÓÑ, ÐÏÎÅÓÌÉÓØ ÐÕÌØÓÁÃÉÉ ~300 Í÷ , AM> ÏÓÏÂÅÎÎÏ ÅÓÌÉ wiggler ÏÔÃÅÐÉÔØ, × ËÏÔÏÒÏÍ ÓÔÏÉÔ ÔÁÎÔÁÌ ÐÏ ÐÉÔÁÎÉÀ. íÅÎÑ ÂÏÌØÛÅ ÕÄÉ×ÌÑÅÔ ÔÏ, ÞÔÏ ÞÁÓÔÏÔÁ ÜÔÉÈ ÐÕÌØÓÁÃÉÊ ÓÏ×ÐÁÄÁÅÔ Ó ÞÁÓÔÏÔÏÊ ÐÕÌØÓÁÃÉÊ ÉÍÐÕÌØÓÎÏÇÏ pÅÇÕÌÑÔÏpÁ, ÎÏ ÐÏ ÁÍÐÌÉÔÕÄÅ ÐpÅ×ÏÓÈÏÄÉÔ ÉÈ.

AA>> ïÓÔÁÌÓÑ ÌÉÛØ ÏÄÉÎ ÎÅÄÏËÕÍÅÎÔÉpÏ×ÁÎÎÙÊ ÜÆÆÅËÔ - ÐÅp×ÏÅ ÉÚÍÅpÅÎÉÅ AA>> ÐÏÓÌÅ ÐÅpÅËÌÀÞÅÎÉÑ ËÁÎÁÌÁ ÄÌÉÔÓÑ × 4-5 pÁÚ ÍÅÎØÛÅ ÎÏÍÉÎÁÌÁ É AA>> ÐÏËÁÚÙ×ÁÅÔ ÐÏÇÏÄÕ ÎÁ ÍÁpÓÅ, ÎÏ ÜÔÏ ÕÖÅ ÍÅÌÏÞÉ. AM> ÔÏÖÅ × errata ÓÍÏÔÒÉ, ÅÓÔØ ÔÁÍ ÞÔÏ-ÔÏ ÐÒÏ ÐÅÒ×ÙÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÐÒÉ AM> ÏÐÒÅÄÅÌÅÎÎÙÈ ÕÓÌÏ×ÉÑÈ. óÍÏÔpÅÌ, ÐÏÄ ÍÏÀ ÓÉÔÕÁÃÉÀ ÎÅ ÐÏÐÁÄÁÅÔ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... üÔÏ ÐÉÓØÍÏ ÓÏ×ÅÒÛÉÌÏ ÏÛÉÂËÕ É ÂÕÄÅÔ ÚÁËÒÙÔÏ [OK]

ðÒÉ×ÅÔ, Anton! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Sat, 26 Feb 2005 00:59:40 +0300:

AA> þÅÔ æÅ× 24 2005 17:15, Leha Bishletov -> Anton Abrosimov:

LB>>>> ïÒÇÁÎÉÚÏ×ÁÎÁ ÔÁË ÖÅ ËÁË É Ó 32ÂÉÔÎÙÍÉ. AA>>> u8 a = 100; while (a--!=0) {}; AA>>> u32 b = 100; while (b--!=0) {}; LB>> äÁ×ÁÊ ÓÒÁ×ÎÉÍ (ÒÅÖÉÍ Thumb, ËÏÍÐÉÌÑÔÏÒ GCC): LB>> U8 U32 LB>> sub r2, r7, #1 mov r2, r7 LB>> mov r3, #100 sub r2, r2, #8 LB>> strb r3, [r2] mov r3, #100 LB>> .L2: str r3, [r2] LB>> sub r2, r7, #1 .L5: LB>> sub r3, r7, #1 mov r2, r7 LB>> ldrb r3, [r3] sub r2, r2, #8 LB>> sub r3, r3, #1 mov r3, r7 LB>> strb r3, [r2] sub r3, r3, #8 LB>> lsl r3, r3, #24 ldr r3, [r3] LB>> lsr r3, r3, #24 sub r3, r3, #1 LB>> cmp r3, #0 str r3, [r2] LB>> bne .L2 cmp r3, #0 LB>> bne .L5 AA> þÔÏ-ÔÏ ËÏÄ ÓÏ×ÓÅÍ ËpÉ×ÏÊ ×ÙÛÅÌ. HÁÆÉÇÁ ÌÏËÁÌØÎÕÀ ÐÅpÅÍÅÎÎÕÀ AA> pÁÚÍÅÝÁÔØ × ÐÁÍÑÔÉ?

üÔÏ Ñ ËÏÍÐÉÌÉÒÏ×ÁÌ ÂÅÚ ÏÐÔÉÍÉÚÁÃÉÉ.

AA> ñ ÎÁÂÌÀÄÁÌ ÞÔÏ-ÔÏ ÔÉÐÁ: AA> mov AA> ÍÅÔËÁ: sub AA> cmp AA> bne × ÓÌÕÞÁÅ u32, É:

AA> mov AA> lsl AA> lsr

úÄÅÓØ ÍÁÓËÉÒÏ×ÁÎÉÅ ÌÉÛÎÅÅ.

AA> ÍÅÔËÁ: sub AA> lsl AA> lsr AA> cmp AA> bne × ÓÌÕÞÁÅ u8. AA> ðpÉÞÅÍ ÍÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ×Ï ×ÔÏpÏÍ ÓÌÕÞÁÅ ËÏÍÁÎÄ ÂÙÌÏ ÅÝÅ ÂÏÌØÛÅ, É AA> ÐpÉ ÚÁÍÅÎÅ ÓÞÅÔÞÉËÁ ÃÉËÌÁ ÎÁ u32 ËÏÄ ÓÏËpÁÔÉÌÓÑ pÁÚÁ × 3.

îÁ×ÅÒÎÏÅ ÐÒÏÓÔÏ ÐÏËÁÚÁÌÏÓØ.

LB>>>> á ÐÏÞÅÍÕ ÔÙ ×ÓÅ × Thumb ÄÅÌÁÅÛØ? AA>>> ÈÚ. üÔÏ ÎÁÓÔpÏÊËÁ ÐÏ-ÕÍÏÌÞÁÎÉÀ. ëÏÇÄÁ Ñ ÔÏÌØËÏ ÎÁÞÉÎÁÌ ÐpÏÅËÔ, AA>>> ÐÏÐpÏÂÏ×ÁÌ Ó ÏÂÏÉÍÉ ×ÁpÉÁÎÔÁÍÉ, ËÏÄ Ó Thumb ÂÙÌ × ÐÏÌÔÏpÁ pÁÚÁ AA>>> ÍÅÎØÛÅ ÐpÉ ÔÏÊ-ÖÅ ÓËÏpÏÓÔÉ pÁÂÏÔÙ. äÁ É ×ÏÏÂÝÅ, ×Ï ×ÓÅÈ ÏÐÉÓÁÎÉÑÈ AA>>> pÅÖÉÍ thumb ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ ÂÏÌØÛÉÈ AA>>> ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ ÔÁË? LB>> äÁ×ÁÊ ÓÒÁ×ÎÉÍ ÎÁ Ô×ÏÅÍ ÖÅ ÐÒÉÍÅÒÅ: LB>> Thumb ARM ... LB>> úÄÅÓØ ÐÏÌÕÞÁÅÔÓÑ, ÞÔÏ Thumb ÐÒÏÉÇÒÙ×ÁÅÔ ÐÏ ÓËÏÒÏÓÔÉ (ËÏÍÁÎÄÙ LB>> ×ÙÐÏÌÎÑÀÔÓÑ ÐÒÉÍÅÒÎÏ ÏÄÉÎÁËÏ×ÏÅ ×ÒÅÍÑ), ÎÏ, ÞÅÓÔÎÏ ÇÏ×ÏÒÑ, ËÏÄ, LB>> ÇÅÎÅÒÉÒÕÅÍÙÊ GCC × ÒÅÖÉÍÅ Thumb ÍÎÅ ËÁÖÅÔÓÑ ÏÞÅÎØ ÎÅ ÏÐÔÉÍÁÌØÎÙÍ. LB>> ÷ AA> äÁ É × pÅÖÉÍÅ ÁpÍ ÔÏÖÅ ÎÅ ×ÓÅ ÇÌÁÄËÏ, ÎÁÐpÉÍÅp, Ï ËÏÍÁÎÄÅ subs AA> ËÏÍÐÉÌÑÔÏp ÎÅ ÚÎÁÅÔ. :)

úÄÅÓØ, ÏÐÑÔØ, ÏÐÔÉÍÉÚÁÃÉÑ ÐÏ ÍÉÎÉÍÕÍÕ. åÓÌÉ ×ËÌÀÞÉÔØ ÐÏ ÍÁËÓÉÍÕÍÕ, ÔÏ GCC ÓÐÁÒÉ×ÁÅÔ ÐÒÏ×ÅÒËÕ É ×ÙÄÅÌÅÎÉÅ ÍÌÁÄÛÅÇÏ ÂÁÊÔÁ, IAR ÚÎÁÅÔ Ï subs É ÚÎÁÅÔ, ÞÔÏ ÍÏÖÎÏ ÎÅ ×ÙÄÅÌÑÔØ ÍÌÁÄÛÉÊ ÂÁÊÔ, ÎÏ ÎÅ ÕÍÅÅÔ ÐÒÅ×ÒÁÝÁÔØ while(){} × do{}while()

LB>> ÒÅÖÉÍÅ Thumb ÎÅÔ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ Ó ÏÔÒÉÃÁÔÅÌØÎÙÍ ÓÍÅÝÅÎÉÅÍ, ÎÏ LB>> ÂÅÚ ÜÔÏÇÏ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÏÂÈÏÄÉÔØÓÑ, ÅÓÌÉ ÁÄÒÅÓÏ×ÁÔØÓÑ ÏÔÎÏÓÉÔÅÌØÎÏ LB>> SP. á ÚÄÅÓØ ×ÉÄÉÍ ÓÐÏÌÛÎÕÀ ÁÒÉÆÍÅÔÉËÕ. ëÓÔÁÔÉ, ÐÒÉ ÍÁËÓÉÍÁÌØÎÏÊ LB>> ÏÐÔÉÍÉÚÁÃÉÉ ËÏÄ ÏÓÔÁÅÔÓÑ ÐÒÉÍÅÒÎÏ ÔÁËÉÍ ÖÅ. éÚ ÏÂßÅËÔÉ×ÎÙÈ LB>> ÏÇÒÁÎÉÞÅÎÉÊ, ÐÒÉ ÉÄÅÁÌØÎÏÍ ËÏÍÐÉÌÑÔÏÒÅ: 1. ÷ ÒÅÖÉÍÅ ARM ÂÏÌØÛÅ LB>> ÐÒÑÍÏ ÄÏÓÔÕÐÎÙÈ ÒÅÇÉÓÔÒÏ×, ÜÔÏ ÏÞÅÎØ ÂÏÌØÛÏÊ + 2. ÷ ÒÅÖÉÍÅ ARM LB>> ÅÓÔØ "ÕÓÌÏ×ÎÏÅ" ×ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄÙ, ÍÏÇÌÏ ÂÙ ÓÉÌØÎÏ ÐÏÍÏÇÁÔØ ÎÁ LB>> ÐÒÏÓÔÙÈ ËÏÎÔÓÒÕËÃÉÑÈ ÔÉÐÁ if(a>max) a=max; ÉÌÉ if(flag) f(); 3. ÷ LB>> ARM ÂÏÌØÛÅ ÄÉÁÐÁÚÏÎ ËÏÓ×ÅÎÏÊ ÁÄÒÅÓÁÃÉÉ ÓÏ ÓÍÅÝÅÎÉÅÍ LB>> +-2047ÂÁÊÔ(*4ÓÌÏ×) vs +31(*4), ÓËÁÖÅÔÓÑ ÐÒÉ ÎÁÌÉÞÉÉ LB>> ÂÏÌØÛÉÈ ÓÔÒÕËÔÕÒ. 4. ÷ ARM ÕÓÌÏ×ÎÙÅ/ÂÅÚÕÓÌÏ×ÎÙÅ ÐÅÒÅÈÏÄÙ ÍÏÇÕÔ LB>> ÂÙÔØ +-ÏÞÅÎØ ÍÎÏÇÏ ËÏÍÁÎÄ, vs +-127 ÕÓÌÏ×ÎÙÊ ÐÅÒÅÈÏÄ, +-2048 LB>> ÂÅÚÕÓÌÏ×ÎÙÊ. íÏÖÅÔ ÐÒÏÑ×ÉÔØÓÑ, ÎÏ ×ÌÉÑÎÉÅ ÂÕÄÅÔ ÍÁÌÅÎØËÉÍ. HÏ LB>> ÉÄÅÁÌØÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× ÎÅÔ. AA> ÷ ÜÔÏÍ ÐpÉÍÅpÅ thumb ÐpÏÉÇpÙ×ÁÅÔ Ñ×ÎÏ ÂÌÁÇÏÄÁpÑ ËÏÓ×ÅÎÎÏÊ AA> ÁÄpÅÓÁÃÉÉ. LB>> ðÏ GCC ×ÉÄÎÏ, ÞÔÏ ÏÎ ÎÅ ÌÀÂÉÔ Thumb É ÉÓÐÏÌØÚÏ×ÁÎÉÅ Thumb × ÎÅÍ LB>> ÂÅÓÓÍÙÓÌÅÎÎÏ.

LB>> ðÏÓÍÏÔÒÅÌ ÞÔÏ ×ÙÄÁÅÔ IAR. úÎÁÞÉÔÅÌØÎÏ ÌÕÞÛÅ ÞÅÍ GCC. õ ÎÅÇÏ LB>> ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ ÁÄÒÅÓÕÀÔÓÑ × +, × ÉÔÏÇÅ ËÏÄ ÍÅÎØÛÅ. ô.Å. ÄÌÑ LB>> IAR ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÍÏÖÎÏ ÏÖÉÄÁÔØ, ÞÔÏ ËÏÄ Thumb ÂÕÄÅÔ ÚÎÁÞÉÔÅÌØÎÏ LB>> ÍÅÎØÛÅ, ÐÒÉ ÐÒÉÍÅÒÎÏ ÔÏÊ ÖÅ ÓËÏÒÏÓÔÉ ×ÙÐÏÌÎÅÎÉÑ. ðÏÒÁ ÐÅÒÅÈÏÄÉÔØ LB>> ÎÁ IAR ... èÏÔÑ, × ÚÁÝÉÔÕ GCC, ÍÏÖÎÏ ÓËÁÚÁÔØ, ÞÔÏ ÏÐÔÉÍÉÚÁÃÉÑ, ÎÅ LB>> Ó×ÑÚÁÎÎÁÑ Ó ÏËÏÎÞÁÔÅÌØÎÙÍ ËÏÄÏÍ, ËÁÖÅÔÓÑ ÌÕÞÛÅ. HÁÐÒÉÍÅÒ ÃÉËÌÙ LB>> for(i=0;i<10;++i){ÞÔÏ-ÔÏ} ÐÒÅ×ÒÁÝÁÅÔ × LB>> i=0;do{ÞÔÏ-ÔÏ}while(++i<10); AA> ñ, ËÁÖÅÔÓÑ, ÔÕÔ ÕÖÅ ÐpÉ×ÏÄÉÌ ÐpÉÍÅp, ËÁË IAR ÚÁÍÅÎÉÌ ËÏÄ ÔÉÐÁ: AA> u16 a = b; AA> u8 c = 9; AA> while (c--!=0) a += b; AA> ÎÁ a = mul(b,10), ÐpÉÞÅÍ ÏÔËÌÀÞÅÎÉÅ ÏÐÔÉÍÉÚÁÃÉÉ ÎÉÞÅÇÏ ÎÅ ÍÅÎÑÌÏ.

:) ÷ÓÐÏÍÉÎÁÀ ËÁË Ñ ÄÏÌÇÏ É ÂÅÚÕÓÐÅÛÎÏ ÂÏÒÏÌÓÑ Ó ÐÏÄÏÂÎÏÊ ÏÐÔÉÍÉÚÁÃÉÅÊ × HiTech PICC, ÏÎ ÓÔÒÏÞËÕ b=a+a+a; ÚÁÍÅÎÑÌ ÎÁ b=mul(a,3) ÒÅÚÕÌØÔÁÔ ÔÏÔ ÖÅ, ÎÏ ÐÏ ×ÒÅÍÅÎÉ ÏÇÒÏÍÎÁÑ ÒÁÚÎÉÃÁ. óËÏÂËÉ, ÎÅÚÎÁÞÁÝÉÅ ÎÕÌÉ, ÐÅÒÅÓÔÁÎÏ×ËÉ ÓÌÁÇÁÅÍÙÈ ÏÎ ÐÒÅÓÅËÁÌ É ×ÓÔÁ×ÌÑÌ mul. ðÒÉÛÌÏÓØ ÄÅÌÁÔØ asm{}. ôÁË ÞÔÏ ÎÅ ×ÓÅÇÄÁ ÜÔÏ ÏÐÔÉÍÉÚÁÃÉÑ :) èÏÔÑ, ÐÒÉÍÅÎÉÔÅÌØÎÏ Ë ARM, ÜÔÏ ÂÅÚÕÓÌÏ×ÎÏ +. ôÁË ÞÔÏ, × ÃÅÌÏÍ, Õ IAR ÂÏÌØÛÅ ÐÌÀÓÏ×.

AA> üÔÏ, ÉÍÈÏ, ÐÏÓÅpØÅÚÎÅÅ ÉÚÍÅÎÅÎÉÑ ÎÁÐpÁ×ÌÅÎÉÑ ÉÌÉ ×pÅÍÅÎÉ ÐpÏ×ÅpËÉ AA> ÃÉËÌÁ.

óÅÒØÅÚÎÏÓÔØ ÔÏÇÏ ÉÌÉ ÄÒÕÇÏÇÏ ×ÉÄÁ ÏÐÔÉÍÉÚÁÃÉÉ ÚÁ×ÉÓÉÔ ÏÔ ÐÒÏÇÒÁÍÍÉÓÔÁ, ÏÔ ÅÇÏ ÓÔÉÌÑ. ñ ÎÁ Á×ÔÏÍÁÔÅ ÐÉÛÕ ÃÉËÌÙ do{}while() ×ÍÅÓÔÏ while(){}, ÎÅ ÉÓÐÏÌØÚÕÀ for, × ×ÙÒÁÖÅÎÉÑÈ ÉÓÐÏÌØÚÕÀ ÐÒÅÆÉËÓÎÙÅ ++ --, ÅÝÅ ËÁËÉÅ-ÔÏ ÍÅÌÏÞÉ, ËÏÔÏÒÙÅ ÍÏÇ ÂÙ ÓÄÅÌÁÔØ ÚÁ ÍÅÎÑ ËÏÍÐÉÌÑÔÏÒ, ÎÏ Ñ ÕÖÅ ÐÒÉ×ÙË. äÌÑ ÍÅÎÑ ËÏÍÐÉÌÑÔÏÒ, ÕÍÅÀÝÉÊ ÜÔÏ, ÐÏÞÔÉ ÎÉ ÞÅÇÏ ÎÅ ÕÌÕÞÛÁÅÔ.

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

ðÒÉ×ÅÔ Leha! ðÏÎ æÅ× 28 2005 16:22, Leha Bishletov -> Anton Abrosimov:

LB>>>>> ïÒÇÁÎÉÚÏ×ÁÎÁ ÔÁË ÖÅ ËÁË É Ó 32ÂÉÔÎÙÍÉ. AA>>>> u8 a = 100; while (a--!=0) {}; AA>>>> u32 b = 100; while (b--!=0) {}; LB>>> äÁ×ÁÊ ÓÒÁ×ÎÉÍ (ÒÅÖÉÍ Thumb, ËÏÍÐÉÌÑÔÏÒ GCC): AA>> þÔÏ-ÔÏ ËÏÄ ÓÏ×ÓÅÍ ËpÉ×ÏÊ ×ÙÛÅÌ. HÁÆÉÇÁ ÌÏËÁÌØÎÕÀ ÐÅpÅÍÅÎÎÕÀ AA>> pÁÚÍÅÝÁÔØ × ÐÁÍÑÔÉ? LB> üÔÏ Ñ ËÏÍÐÉÌÉÒÏ×ÁÌ ÂÅÚ ÏÐÔÉÍÉÚÁÃÉÉ. åÝÅ pÁÚ ÐÏÓÍÏÔpÅÌ, pÁÚÎÉÃÁ ÍÅÖÄÕ u32/u16 ÅÓÔØ ÔÏÌØËÏ Ó ×ÙËÌÀÞÅÎÎÏÊ ÏÐÔÉÍÉÚÁÃÉÅÊ (6 ËÏÍÁÎÄ ÐpÏÔÉ× 10 ËÏÍÁÎÄ), Ó ×ËÌÀÞÅÎÏÊ pÁÚÎÉÃÙ ÎÉËÁËÏÊ - ËÏÍÐÉÌÑÔÏp ÓÁÍ pÁÓÛÉpÑÅÔ ÐÅpÅÍÅÎÎÕÀ ÄÏ 32 ÂÉÔ. :)

AA>> ðpÉÞÅÍ ÍÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ×Ï ×ÔÏpÏÍ ÓÌÕÞÁÅ ËÏÍÁÎÄ ÂÙÌÏ ÅÝÅ ÂÏÌØÛÅ, AA>> É ÐpÉ ÚÁÍÅÎÅ ÓÞÅÔÞÉËÁ ÃÉËÌÁ ÎÁ u32 ËÏÄ ÓÏËpÁÔÉÌÓÑ pÁÚÁ × 3. LB> HÁ×ÅÒÎÏÅ ÐÒÏÓÔÏ ÐÏËÁÚÁÌÏÓØ. ôÏÞÎÏ. :)

LB>>>>> á ÐÏÞÅÍÕ ÔÙ ×ÓÅ × Thumb ÄÅÌÁÅÛØ? AA>>>> ÈÚ. üÔÏ ÎÁÓÔpÏÊËÁ ÐÏ-ÕÍÏÌÞÁÎÉÀ. ëÏÇÄÁ Ñ ÔÏÌØËÏ ÎÁÞÉÎÁÌ ÐpÏÅËÔ, AA>>>> ÐÏÐpÏÂÏ×ÁÌ Ó ÏÂÏÉÍÉ ×ÁpÉÁÎÔÁÍÉ, ËÏÄ Ó Thumb ÂÙÌ × ÐÏÌÔÏpÁ pÁÚÁ AA>>>> ÍÅÎØÛÅ ÐpÉ ÔÏÊ-ÖÅ ÓËÏpÏÓÔÉ pÁÂÏÔÙ. äÁ É ×ÏÏÂÝÅ, ×Ï ×ÓÅÈ AA>>>> ÏÐÉÓÁÎÉÑÈ pÅÖÉÍ thumb ÐpÅÐÏÄÎÏÓÉÔÓÑ ËÁË ÎÅËÏÅ ÐpÅÉÍÕÝÅÓÔ×Ï. HÁ AA>>>> ÂÏÌØÛÉÈ ÐpÏÅËÔÁÈ ÜÔÏ ÎÅ ÔÁË? LB>>> äÁ×ÁÊ ÓÒÁ×ÎÉÍ ÎÁ Ô×ÏÅÍ ÖÅ ÐÒÉÍÅÒÅ: á ÄÁ×ÁÊ ÔÅÐÅpØ ÓpÁ×ÎÉÍ ÎÁ ÄpÕÇÏÍ ÐpÉÍÅpÅ:

void TG320240::WriteByteOffset(u8* address, u8 temp, u8 offset) { u32 data = (*address<<8)+*(address+1); data &= ~(0xFF00>>offset); data |= ((u32)temp<<8)>>offset;

*(address+1) = (data&0xFF); *address = ((data>>8)&0xFF); }

Thumb: \ 00000000 30B4 PUSH {R4,R5} \ 00000002 0878 LDRB R0,[R1, #+0] \ 00000004 0002 LSL R0,R0,#+0x8 \ 00000006 4C78 LDRB R4,[R1, #+1] \ 00000008 0019 ADD R0,R0,R4 \ 0000000A FF24 MOV R4,#+0xFF \ 0000000C 2402 LSL R4,R4,#+0x8 ;; #+0xFF00 \ 0000000E 1C41 ASR R4,R3 \ 00000010 E543 MVN R5,R4 \ 00000012 0540 AND R5,R0 \ 00000014 1002 LSL R0,R2,#+0x8 \ 00000016 D840 LSR R0,R3 \ 00000018 2843 ORR R0,R5 \ 0000001A 4870 STRB R0,[R1, #+1] \ 0000001C 0004 LSL R0,R0,#+0x10 \ 0000001E 000E LSR R0,R0,#+0x18 \ 00000020 0870 STRB R0,[R1, #+0] \ 00000022 30BC POP {R4,R5} \ 00000024 7047 BX LR ;; return

ARM: \ 00000000 0000D1E5 LDRB R0,[R1, #+0] \ 00000004 01C0D1E5 LDRB R12,[R1, #+1] \ 00000008 00048CE0 ADD R0,R12,R0, LSL #+8 \ 0000000C FFCCA0E3 MOV R12,#+0xFF00 \ 00000010 5CC3E0E1 MVN R12,R12, ASR R3 \ 00000014 00000CE0 AND R0,R12,R0 \ 00000018 0224A0E1 MOV R2,R2, LSL #+8 \ 0000001C 320380E1 ORR R0,R0,R2, LSR R3 \ 00000020 0100C1E5 STRB R0,[R1, #+1] \ 00000024 2004A0E1 MOV R0,R0, LSR #+8 \ 00000028 0000C1E5 STRB R0,[R1, #+0] \ 0000002C 1EFF2FE1 BX LR ;; return

ëÏÄÁ 19/12 ËÏÍÁÎÄ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ. íÁÔÅÍÁÔÉËÕ ÎÅ ÂÅpÕ ÐpÉÎÃÉÐÉÁÌØÎÏ, ÔÁÍ ÐpÏÉÇpÙÛ Õ thumb ÂÕÄÅÔ ÅÝÅ ÂÏÌØÛÅ.

LB> úÄÅÓØ, ÏÐÑÔØ, ÏÐÔÉÍÉÚÁÃÉÑ ÐÏ ÍÉÎÉÍÕÍÕ. åÓÌÉ ×ËÌÀÞÉÔØ ÐÏ ÍÁËÓÉÍÕÍÕ, ÔÏ LB> GCC ÓÐÁÒÉ×ÁÅÔ ÐÒÏ×ÅÒËÕ É ×ÙÄÅÌÅÎÉÅ ÍÌÁÄÛÅÇÏ ÂÁÊÔÁ, IAR ÚÎÁÅÔ Ï subs É LB> ÚÎÁÅÔ, ÞÔÏ ÍÏÖÎÏ ÎÅ ×ÙÄÅÌÑÔØ ÍÌÁÄÛÉÊ ÂÁÊÔ, ÎÏ ÎÅ ÕÍÅÅÔ ÐÒÅ×ÒÁÝÁÔØ LB> while(){} × do{}while() ëÁË ÜÔÏ ÎÅ ÕÍÅÅÔ? ïÎ ×ÓÅÇÄÁ ÉÓÐÏÌØÚÕÅÔ do{}while(), ÅÓÌÉ ÖÅ ÎÕÖÎÁ ÐpÏ×ÅpËÁ ÕÓÌÏ×ÉÑ ÄÏ ×ÙÐÏÌÎÅÎÉÑ ÔÅÌÁ ÃÉËÌÁ, ÔÏ ÐpÏÓÔÏ ÓÔÁ×ÉÔ ÐÅpÅÄ ÃÉËÌÏÍ jump ÎÁ ÐpÏ×ÅpËÕ.

AA>> ñ, ËÁÖÅÔÓÑ, ÔÕÔ ÕÖÅ ÐpÉ×ÏÄÉÌ ÐpÉÍÅp, ËÁË IAR ÚÁÍÅÎÉÌ ËÏÄ ÔÉÐÁ: AA>> u16 a = b; AA>> u8 c = 9; AA>> while (c--!=0) a += b; AA>> ÎÁ a = mul(b,10), ÐpÉÞÅÍ ÏÔËÌÀÞÅÎÉÅ ÏÐÔÉÍÉÚÁÃÉÉ ÎÉÞÅÇÏ ÎÅ ÍÅÎÑÌÏ. LB> :) ÷ÓÐÏÍÉÎÁÀ ËÁË Ñ ÄÏÌÇÏ É ÂÅÚÕÓÐÅÛÎÏ ÂÏÒÏÌÓÑ Ó ÐÏÄÏÂÎÏÊ ÏÐÔÉÍÉÚÁÃÉÅÊ LB> × HiTech PICC, ÏÎ ÓÔÒÏÞËÕ b=a+a+a; ÚÁÍÅÎÑÌ ÎÁ b=mul(a,3) ÒÅÚÕÌØÔÁÔ ÔÏÔ LB> ÖÅ, ÎÏ ÐÏ ×ÒÅÍÅÎÉ ÏÇÒÏÍÎÁÑ ÒÁÚÎÉÃÁ. óËÏÂËÉ, ÎÅÚÎÁÞÁÝÉÅ ÎÕÌÉ, LB> ÐÅÒÅÓÔÁÎÏ×ËÉ ÓÌÁÇÁÅÍÙÈ ÏÎ ÐÒÅÓÅËÁÌ É ×ÓÔÁ×ÌÑÌ mul. ðÒÉÛÌÏÓØ ÄÅÌÁÔØ LB> asm{}. ôÁË ÞÔÏ ÎÅ ×ÓÅÇÄÁ ÜÔÏ ÏÐÔÉÍÉÚÁÃÉÑ :) èÏÔÑ, ÐÒÉÍÅÎÉÔÅÌØÎÏ Ë ARM, LB> ÜÔÏ ÂÅÚÕÓÌÏ×ÎÏ +. ôÁË ÞÔÏ, × ÃÅÌÏÍ, Õ IAR ÂÏÌØÛÅ ÐÌÀÓÏ×. üÔÏ ËÏÍÐÉÌÑÔÏp ËpÉ×ÏÊ, ÅÇÏ ÚÁÄÁÞÁ - ÐpÏÓÞÉÔÁÔØ ÏÂÁ ×ÁpÉÁÎÔÁ É ×ÙÂpÁÔØ ÏÐÔÉÍÁÌØÎÙÊ. ñ ÔÏÇÄÁ ÉÁpÕ ÏÂßÑÓÎÉÌ, ÞÔÏ ÁÐÐÁpÁÔÎÏÇÏ ÕÍÎÏÖÉÔÅÌÑ Õ ËÁÍÎÑ ÎÅÔ, ÐÏÓÌÅ ÜÔÏÇÏ ×ÏÚpÁÖÁÔØ ÐpÏÔÉ× ÓÌÏÖÅÎÉÊ ÏÎ ÐÅpÅÓÔÁÌ.

AA>> üÔÏ, ÉÍÈÏ, ÐÏÓÅpØÅÚÎÅÅ ÉÚÍÅÎÅÎÉÑ ÎÁÐpÁ×ÌÅÎÉÑ ÉÌÉ ×pÅÍÅÎÉ ÐpÏ×ÅpËÉ AA>> ÃÉËÌÁ. LB> óÅÒØÅÚÎÏÓÔØ ÔÏÇÏ ÉÌÉ ÄÒÕÇÏÇÏ ×ÉÄÁ ÏÐÔÉÍÉÚÁÃÉÉ ÚÁ×ÉÓÉÔ ÏÔ LB> ÐÒÏÇÒÁÍÍÉÓÔÁ, ÏÔ ÅÇÏ ÓÔÉÌÑ. ñ ÉÍÅÌ × ×ÉÄÕ, ÞÔÏ ÏÂÙÞÎÏ ÏÐÔÉÍÉÚÁÃÉÑ pÁÂÏÔÁÅÔ ÎÁ ÕpÏ×ÎÅ ÓÔpÏËÉ ÉÌÉ ÔÉÐÏ×ÏÊ ÚÁÍËÎÕÔÏÊ ÓÔpÕËÔÕpÙ, ÔÉÐÁ ÃÉËÌÁ, switch É Ô.Ð. üÔÏÔ ÐpÉÍÅp ÄÅÍÏÎÓÔpÉpÕÅÔ ÂÏÌÅÅ ÓÌÏÖÎÙÅ ÍÅÈÁÎÉÚÍÙ ÏÐÔÉÍÉÚÁÃÉÉ.

LB> ñ ÎÁ Á×ÔÏÍÁÔÅ ÐÉÛÕ ÃÉËÌÙ do{}while() LB> ×ÍÅÓÔÏ while(){}, ÎÅ ÉÓÐÏÌØÚÕÀ for, × ×ÙÒÁÖÅÎÉÑÈ ÉÓÐÏÌØÚÕÀ ÐÒÅÆÉËÓÎÙÅ þÔÏ ÚÎÁÞÉÔ - ÎÁ Á×ÔÏÍÁÔÅ? üÔÏ pÁÚÎÙÅ ÃÉËÌÙ, ÏÔÌÉÞÁÀÝÉÅÓÑ ÍÉÎÉÍÁÌØÎÙÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐpÏÈÏÄÏ×. ñ ÉÓÐÏÌØÚÕÀ ÔÏÔ, ËÏÔÏpÙÊ ÎÕÖÅÎ.

LB> ++ --, ÅÝÅ ËÁËÉÅ-ÔÏ ÍÅÌÏÞÉ, ËÏÔÏÒÙÅ ÍÏÇ ÂÙ ÓÄÅÌÁÔØ ÚÁ ÍÅÎÑ ËÏÍÐÉÌÑÔÏÒ, LB> ÎÏ Ñ ÕÖÅ ÐÒÉ×ÙË. äÌÑ ÍÅÎÑ ËÏÍÐÉÌÑÔÏÒ, ÕÍÅÀÝÉÊ ÜÔÏ, ÐÏÞÔÉ ÎÉ ÞÅÇÏ ÎÅ LB> ÕÌÕÞÛÁÅÔ. èÍ. ñ ÔÏÖÅ ÏÂÙÞÎÏ ÐÏÄÓÔpÁÉ×ÁÀÓØ ÐÏÄ ËÏÍÐÉÌÑÔÏp, ÎÏ ÍÅÌÏÞÁÍÉ, ÔÉÐÁ ÔÏÇÏ, ÞÔÏ ÔÙ ÐÅpÅÞÉÓÌÉÌ, ÏÄÎÏÚÎÁÞÎÏ ÎÅ ÎÁÐpÑÇÁÀÓØ.

HÁ ÜÔÏÍ ×ÓÅ, ÐÏËÁ. Anton Abrosimov. ... ðpÏÔÉ×ÎÉËÏ× ÇÕÍÁÎÉÚÍÁ - ÎÁ ×ÉÓÅÌÉÃÕ!

Привет, Harry! Вы писали to Leha Bishletov on Wed, 16 Feb 2005 06:24:49 +0000 (UTC):

В продолжении темы о Visual SlickEdit: Как его научить распознавать ошибки от не знакомого ему компилятора? В Help-e на эту тему написано очень мало, а то, что написано, не работает.

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

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required