Embedded OS

Mar 08, 2005 Last reply: 21 years ago 1304 Replies

Thu Mar 17 2005 19:42, Andy Mozzhevilov wrote to Harry Zhurov:

AM> Как я думаю, более оптимально с точки зрения компилятора перекладывать AM> сохранение регистров на вызываемую функцию.

В большинстве случаев экономнее получается, когда вызывающий сохраняет только те регистры, которые ему нужны. AM> В таком случае можно было бы определить соглашение AM> по регисрам, которые вызываемая функция может портить и не обязана AM> восстанавливать по выходу, а которые нет.

См. IAR C для AVR.

VLV

"Быть честным - лучший способ оставаться бедным" (c) Hаполеон Бонапарт

Hello Olga.

14 Mar 05 21:47, you wrote to Dima Orlov:

ON> ôÁÍ ÜÔÏ ÎÅÑ×ÎÏ, ÞÅÒÅÚ ÒÁÚ×ÉÔÙÊ ÍÅÈÁÎÉÚÍ ÕËÁÚÁÔÅÌÅÊ É ÄÉÎÁÍÉÞÅÓËÏÇÏ ON> ÒÁÓÐÒÅÄÅÌÅÎÉÑ ÐÁÍÑÔÉ.

malloc Ë óÉ - ÎÅ ÐÒÉ×ÑÚÁÎ. é × embedded ÅÇÏ ÏÂÙÞÎÏ ÎÅÔ.

ON> üÆÆÅËÔÉ×ÎÏ É ÇÒÁÍÏÔÎÏ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ Ó ON> ÏÂØÅËÔÁÍÉ, ËÏÔÏÒÙÅ × ïúõ.

ðÏËÁÖÉ ÐÒÉÍÅÒ ÆÕÎËÃÉÉ ÎÁ ÍÁËÒÏÁÓÓÅÍÂÌÅÒÅ ÄÌÑ AVR ËÏÔÏÒÁÑ ÏÄÉÎÁËÏ×Ï ÜÆÆÅËÔÉ×ÎÏ ÒÁÂÏÔÁÅÔ Ó ÄÁÎÎÙÍÉ É × ïúõ É ÎÅ × ïúõ.

Alexey

ðÒÉ×ÅÔ Dima!

Thursday March 17 2005 11:02, Dima Oleshko wrote to Alexander Torres:

AT>> ëÓÔÁÔÉ, Ñ ÓÁÍ ôÕÒÂÏ/âÏÒÌÁÎÄ ðÁÓËÁÌØ (ÉÍÅÎÎÏ ÉÈ, Á ÎÅ "ËÌÁÓÉÞÅÓËÉÊ AT>> ðÁÓËÁÌØ") ÌÀÂÌÀ ÇÏÒÁÚÄÏ ÂÏÌØÛÅ ÞÅÍ ôÕÒÂÏ/âÏÒÌÁÎÄ óÉ, ÎÏ Ë ÓÏÖÁÌÅÎÉÀ - AT>> ÎÉ ÏÄÎÏÇÏ ÐÒÉÌÉÞÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ ðÁÓËÁÌÑ ÄÌÑ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÏ× - ÎÅ AT>> ×ÓÔÒÅÞÁÌ ("ÐÒÉÌÉÞÎÏÇÏ" - ÚÎÁÞÉÔ ×ÙÛÅÄÛÅÇÏ ÉÚ ÕÒÏ×ÎÑ ËÕÒÓÏ×ÏÊ ÒÁÂÏÔÙ AT>> ÉÌÉ GNU-ÔÏÊ ÐÏÄÅÌËÉ, ÞÔÏ × ÏÂÝÅÍ, ÏÄÎÏ É ÔÏ ÖÅ) DO>

DO> PicAntIDE, ÏÎ ÖÅ SourceBoostIDE.

ñ ÇÏ×ÏÒÉÌ "ÎÏÒÍÁÌØÎÙÊ".

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

ðÒÉ×ÅÔ Olga!

Thursday March 17 2005 13:35, Olga Nonova wrote to Alexander Torres:

ON>>> HÅ Õ×ÅÒÅÎÁ, ÞÔÏ "ÏÂÙÞÎÁÑ". óËÏÌØËÏ ÖÅ ÎÁ ÎÅÊ ÐÏÌÅÊ Ó ËÎÏÐËÁÍÉ ON>>> ÒÁÚÍÅÝÅÎÏ? ON>

AT>> óÐÅÃÉÁÌØÎÏ ÄÌÑ ÔÅÂÑ - ÐÏÛÅÌ É ÓÆÏÔÏÇÒÁÆÉÒÏ×ÁÌ: AT>>

formatting link
AT>> ëÁË ×ÉÄÉÛØ - É ÐÏÌÅÊ ÎÅ ÔÁË ÍÎÏÇÏ, ÄÁ É ËÎÏÐÏË × ÓÕÍÍÅ 19. ON>

ON> üÔÏ ÍÎÏÇÏ. ÷ ÍÏÅÊ (Sharp) ×ÓÅÇÏ ÞÅÔÙÒÅ, ÎÏ ÚÁÔÏ ÍÅÎÀ ÎÁ ÄÕÒÁÃËÏÍ ÄÉÓÐÌÅÅ ON> ËÁÖÅÔÓÑ Ï 320 ÒÅÖÉÍÁÈ! é ×ÓÅ × ÚÁËÏÄÉÒÏ×ÁÎÏÍ ×ÉÄÅ. ñ ÂÙ ÓÁÍÁ ÔÁËÕÀ ÎÉ ÚÁ ON> ÞÔÏ ÎÅ ËÕÐÉÌÁ, ÎÏ Ó×ÁÔ ÐÏÄÁÒÉÌ...

á Ñ Ó×ÏÀ ËÕÐÉÌ, É ×ÅÓØÍÁ ÎÅÄÏÒÏÇÏ, ÎÁ×ÅÒÎÏÅ ÄÅÖÅ ÄÅÛÅ×ÌÅ ÞÅÍ Ô×ÏÊ "ûÁÒÐ".

ON>>> ÷ ÐÅÒÅÄÁÞÅ ÆÏÒÍÁÌØÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÎÉËÁËÁÑ ÓÁÍÏÄÅÑÔÅÌØÎÏÓÔØ ON>>> ÎÅÄÏÐÕÓÔÉÍÁ. ðÏÜÔÏÍÕ "ÎÅÌØÚÑ". ON>

AT>> ÷ÏÔ ÔÏÌØËÏ, Ñ ÓÏ×ÅÒÛÅÎÎÏ ÓÐÏËÏÊÎÏ ÉÓÐÌØÚÕÀ ÆÕÎËÃÉÉ, ÒÁÂÏÔÁÀÝÉÅ AT>> ÎÁÐÒÉÍÅÒ Ó ÌÅÖÁÝÉÍÉ × ðúõ ÓÔÒÏËÁÍÉ, É ÎÉËÕÄÁ × ïúõ ÏÎÉ ÎÅ ËÏÐÉÒÕÀÔÓÑ. ON>

ON> üÔÉ ÆÕÎËÃÉÉ ÉÚ ÓÔÁÎÄÁÒÔÎÏÊ ÂÉÂÌÉÏÔÅËÉ ó-ËÏÍÐÉÌÑÔÏÒÁ? éÌÉ ÎÁÐÉÓÁÌÉ ÓÁÍÉ?

ó×ÏÉ ËÏÎÅÞÎÏ.

ON>>> íÏÍÅÎÔ ÐÏÑ×ÌÅÎÉÑ "ÎÏÒÍÁÌØÎÏÇÏ" èÁÊ-ôÅÞØ Ñ ÐÒÏÐÕÓÔÉÌÁ. úÁÔÏ ÕÂÕÀÔÉÌÁ ON>>> Ó×ÏÊ "ÇÏÌÙÊ" ÁÓÓÅÍÂÌÅÒ ÎÁÄÅÖÎÏÊ ÂÉÂÌÉÏÔÅËÏÊ ÍÁËÒÏÓÏ× ÐÒÁËÔÉÞÅÓËÉ ÎÁ ON>>> ×ÓÅ ÓÌÕÞÁÉ ÖÉÚÎÉ. ON>

AT>> HÕ Ñ ×ÏÔ, ÎÅ ÐÒÏÐÕÓÔÉÌ :) ON>

ON> èÁÊ-ôÅÞØ, ËÁË Ñ ÐÏÎÉÍÁÀ, ÄÌÑ PIC?

äÁ.

ON> ñ × ÜÔÕ ÓÔÏÒÏÎÕ ×ÏÏÂÝÅ ÎÅ ÓÍÏÔÒÀ.

HÕ ÜÔÏ ÌÉÞÎÏ ÷ÁÛÉ ÐÒÏÂÌÅÍÙ. õÓÔÒÁÉ×ÁÀÝÉÈ ÎÁÓ ËÏÎÔÒÏÌÌÅÒÏ× ÎÅ ÔÁË ÕÖ É ÍÎÏÇÏ, Ó ÁÔÍÅÌÏÍ ÒÁÂÏÔÁÔØ ÔÒÕÄÎÏ, ÄÒÕÇÉÅ ÐÏ ÃÅÎÅ ÎÅ ÕÓÔÒÁÉ×ÁÀÔ, ÔÒÅÔØÉ - ÅÝÅ ÐÏ ÞÅÍ-ÔÏ.

AT>> õ ÎÁÓ ÏÞÅÎØ "ÉÎÔÅÌÌÅËÔÕÁÌØÎÏ ÎÁÓÙÝÅÎÎÙÊ ÐÒÏÄÕËÔ", É ÎÅ ÔÏÌØËÏ × ÓÏÆÔÅ AT>> ÎÏ É × ÖÅÌÅÚÅ. ON>

ON> åÝÅ ÒÁÚ ÉÚ×ÉÎÉÔÅ, ÎÏ ÐÏÚ×ÏÌØÔÅ ÎÅ ÐÏ×ÅÒÉÔØ, ÞÔÏÂÙ "ÉÎÔÅÌÌÅËÔ" ÐÒÏÉÚ×ÏÄÉÌÓÑ ON> ËÉÔÁÊÃÁÍÉ ÔÙÓÑÞÁÍÉ ÛÔÕË

äÅÓÑÔËÁÍÉ ÔÙÓÑÞ.

ON> É ÐÒÏÄÁ×ÁÌÓÑ × ÒÏÚÎÉÃÕ ÚÁ $15.

ñ ÇÄÅ-ÔÏ ÇÏ×ÏÒÉÌ ÞÔÏ ÏÎÏ × ÒÏÚÎÉÃÕ ÚÁ $15 ÐÒÏÄÁÅÔÓÑ? üÔÏ ÓÅÂÅÓÔÏÉÍÏÓÔØ, ÐÒÉÞÅÍ ÓÁÍÙÈ ÄÅÛÅ×ÙÈ ÎÁÛÉÈ ÄÅ×ÁÊÓÏ×, OEM-Price - ËÁË ÐÒÁ×ÉÌÏ ×Ä×ÏÅ ÂÏØÌÛÅ (ÐÒÉ ÔÁËÉÈ ÔÉÒÁÖÁÈ), ËÒÏÍÅ ÔÏÇÏ "× ÒÏÚÎÉÃÕ" - ÏÎÏ ×ÏÏÂÝÅ ÎÅ ÐÒÏÄÁÅÔÓÑ, ÐÏÓÔÁ×ÌÑÅÔÓÑ ËÁË ïåí ÐÒÏÉÚ×ÏÄÉÔÅÌÑÍ ËÏÎÅÞÎÏÇÏ ÐÒÏÄÕËÔÁ.

AT>> HÁÓÔÏÌØËÏ "ÎÁÓÙÝÅÎÎÙÊ" - ÞÔÏ ÐÅÒÅÓÞÉÔÁÔØ ×ÙÐÕÓËÁÀÝÉÅ ÓÅÒÉÊÎÏ ÔÁËÕÀ AT>> ÐÒÏÄÕËÃÉÀ ÆÉÒÍÙ × ÍÉÒÅ - ÔÅÂÅ ÐÁÌØÃÅ× ÎÁ ÒÕËÁÈ È×ÁÔÉÔ. ON>

ON> âÙÌÏ ÂÙ ÞÒÅÚ×ÙÞÁÊÎÏ ÉÎÔÅÒÅÓÎÏ ÓÈÏÄÉÔØ ÎÁ ÓÁÊÔ ÜÔÏÊ ÆÉÒÍÙ É ÐÏÓÍÏÔÒÅÔØ ÎÁ ON> ÜÔÏ ÞÕÄÏ ÉÚ ÞÕÄÅÓ.

äÁ "ÞÕÄÅÓ" ÔÁÍ ÏÓÏÂÅÎÎÙÈ ÎÅÔ, ÄÁ É × ÏÔÌÉÞÉÅ ÏÔ ÄÅ×ÁÊÓÏ× - ÓÁÊÔ ÎÅ ÓÉÌØÎÏ ÈÏÒÏÛ, ÐÏÓËÏÌØËÕ ÜÔÏ ÎÅÓËÏÌØËÏ ÎÅ ÔÏÔ ÒÙÎÏË, ÇÄÅ ÍÏÖÎÏ ÞÔÏ-ÔÏ ÒÅËÌÌÁÍÉÒÏ×ÁÔØ ÎÁ ÓÁÊÔÅ.

ON> óÓÙÌÏÞËÕ ÍÏÖÅÔÅ ËÉÎÕÔØ?

formatting link

ôÁÍ ÎÅ ×ÓÅ, ÎÅÔ ÎÅÓËÏÌØËÉÈ ÍÏÉÈ ÐÏÓÌÅÄÎÉÈ ÐÒÏÅËÔÏ×, ÉÄÕÝÉÈ ÎÁ ÚÁÍÅÎÕ 3-Ê É 4-Ê ÐÏÚÉÃÉÊ × ÓÐÉÓËÅ ÐÒÏÄÕËÃÉÉ, ÎÏ Ä×Å ÐÅÒ×ÙÈ - ÜÔÏ ÔÅ ÍÏÉ ÓÁÍÙÅ ÄÅÛÅ×ÙÅ, ÇÄÅ ÓÅÂÅÓÔÏÉÍÏÓÔØ 15 ÂÁËÓÏ×, É ÈÏÒÏÛÏ ÂÙ ÅÅ ÄÏ 10 ÄÏ×ÅÓÔÉ.

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Thu Mar 17 2005 15:31, Alex Kouznetsov wrote to all:

AK> ðÏÓÌÅ ÐÒÏÚ×ÕÞÁ×ÛÅÇÏ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ (ÚÁ ÞÔÏ ÓÐÁÓÉÂÏ), Á ÔÁËÖÅ ÂÅÇÌÏÇÏ AK> ÐÒÏÓÍÏÔÒÁ ÓÕ.ÂÕËÓ, ÓÔÁÌÏ ÐÏÎÑÔÎÏ, ÞÔÏ "ÏÌØÇÁ ÎÏÎÏ×Á" - ÜÔÏ ÐÒÏÅËÔ ÎÅËÏÊ AK> ÁÎÏÎÉÍÎÏÊ ÇÒÕÐÐÙ ÛÕÔÎÉËÏ× (ÐÏ ÄÒÕÇÉÍ ×ÅÒÓÉÑÍ - ÐÓÉÈÏÌÏÇÏ×), ËÏÔÏÒÙÅ AK> ÓÔÁÒÁÀÔÓÑ ÐÏÄÚÕÖÉ×ÁÔØ, ÐÒÏ×ÏÃÉÒÏ×ÁÔØ É ÐÏÄÎÁÞÉ×ÁÔØ ÓÏÂÅÓÅÄÎÉËÏ×. òÅÆÒÅÎ AK> ÐÒÏ ÜÍÏÃÉÉ ÄÏ×ÏÌØÎÏ ÐÒÏÚÒÁÞÅÎ.

AK> ðÒÅÄ×ÁÒÉÔÅÌØÎÙÊ ÏÓÍÏÔÒ ×ÉÒÔÕÁÌÁ ÐÏÚ×ÏÌÑÅÔ ÐÒÅÄÐÏÌÏÖÉÔØ, ÞÔÏ ÏÓÎÏ×ÎÏÊ AK> ÍÅÈÁÎÉÚÍ ×ÏÚÄÅÊÓÔ×ÉÑ - ÐÌÁ×ÎÏÅ ÐÅÒÅÄÅÒÇÉ×ÁÎÉÅ, ÐÌÁÎÏÍÅÒÎÁÑ ÇÅÎÅÒÁÃÉÑ AK> ÐÒÁ×ÄÏÐÏÄÏÂÎÏÇÏ ÂÒÅÄÁ ÎÁ ÆÏÎÅ 100% ÎÅÐÒÏÂÉ×ÁÅÍÏÓÔÉ. ðÏÈÏÖÅ, ÏÎÉ ×ÚÑÌÉ × AK> ËÏÍÁÎÄÕ ÐÒÏÇÒÁÍÍÅÒÏ×, ÔÁË ÞÔÏ ÍÏÖÎÏ ÏÖÉÄÁÔØ ÐÏÑ×ÌÅÎÉÑ ÓÅÇÏ ×ÉÒÔÕÁÌÁ × AK> ÓÏÏÔ×ÅÔ×ÕÀÝÉÈ ÜÈÁÈ.

÷ÏÔ ÄÕÍÁÀ, ÍÏÖÅÔ ÏÔÛÉÂÉÔØ ÅÅ ÎÁÆÉÇ ÎÁ /400 ?

wbr, Andy

ðÒÉ×ÅÔ Olga!

Thursday March 17 2005 13:42, Olga Nonova wrote to Alexander Torres:

ON>>> ëÏÍÐÉÌÑÔÏÒ ÍÏÖÅÔ É ÎÅ "ÚÁÂÙ×ÁÅÔ" ÎÏÌØ. úÁÔÏ × ÐÒÉÈÏÄÑÝÉÈ ÉÚ ËÁÎÁÌÁ ON>>> Ó×ÑÚÉ ÐÁËÅÔÁÈ ÍÏÖÎÏ ×ÓÔÒÅÔÉÔØ É ÎÅ ÔÁËÉÅ ÞÕÄÅÓÁ ÚÁÂÙ×ÞÉ×ÏÓÔÉ. é ON>>> ÐÏÓÌÅÄÓÔ×ÉÑ ÆÁÔÁÌØÎÙ ÄÌÑ ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÏÊ ÎÁ óÉ ÐÒÏÇÒÁÍÍÙ. ON>

AT>> âÏÖÅ ÍÏÊ, ËÁË ÖÅ Ô×ÏÉ ÐÉÓØÍÁ × ÜÈÕ ÐÏÐÁÄÁÀÔ - ×ÅÄØ ÏÎÉ ÞÅÒÅÚ ËÁÎÁÌÙ AT>> Ó×ÑÚÉ ÐÒÏÈÏÄÑÔ ÞÅÒÅÚ ÄÅÓÑÔËÉ ÒÏÕÔÅÒÏ×, ÇÄÅ ×ÅÓØ ÓÏÆÔ ÎÁ óÉ AT>> ÎÁÐÉÓÁÎ.... ON>

ON> òÏÕÔÅÒÙ ÎÅÊÍÁÎÏ×ÓËÏÊ ÁÒÈÉÔÅËÔÕÒÙ, Á ÎÅ ÍÅÌËÉÅ ÇÁÒ×ÁÒÄÙ. ðÏÜÔÏÍÕ É ÒÁÂÏÔÁÅÔ ON> ÔÁÍ óÉ.

äÅ×ÕÛËÁ, ÔÁÍ ËÏÎÅÞÎÏ ÎÅ ÍÅÌËÉÅ ÇÁÒ×ÁÒÄÙ, ÎÏ ÷Ù ÔÕÔ ÕÖÅ ÓÔÏÌØËÏ ÎÁÇÏ×ÏÒÉÌÉ ÐÒÏ ÎÅÊÍÁÎÁ/ÇÁÒ×ÁÒÄÁ, ÔÏ á÷ò-Ù Õ ÷ÁÍ ÎÅÊÍÁÎ, ÔÏ ðéëÉ, ÔÏ 8086 ×ÄÒÕÇ × äåëÏ×ÓËÏÍ ËÏÍÐÅ ÏËÁÚÁÌÓÑ, ÞÔÏ Ë ÷ÁÛÉÍ ÓÌÏ×ÁÍ ÎÁÄÏ ÏÔÎÏÓÉÔÓÑ ÎÅÓËÏÌØËÏ ÓËÅÐÔÉÞÅÓËÉ :)

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Hello Dima.

15 Mar 05 01:14, you wrote to Olga Nonova:

DO> þÕÛØ. íÁËÒÏÓÙ, × ÏÔÌÉÞÉÅ ÏÔ ×ÙÒÁÖÅÎÉÊ ó, ÎÅ ÏÐÔÉÍÉÚÉÒÕÀÔÓÑ É ÎÅÉÚÂÅÖÎÏ DO> ÐÌÏÄÑÔ Ï×ÅÒÈÅÄ, ËÏÔÏÒÙÊ ó É ÎÅ ÓÎÉÌÓÑ. ðÒÉ ÜÔÏÍ ×ÓÅ ÒÁ×ÎÏ ×ÍÅÓÔÏ DO> ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ × ÔÅÒÍÉÎÁÈ ÁÌÇÏÒÉÔÍÁ ÒÅÛÁÅÍÏÊ ÚÁÄÁÞÉ ÔÙ ÜÔÏ ÄÅÌÁÅÛØ × DO> ÔÅÒÍÉÎÁÈ ÒÅÇÉÓÔÒÏ× É ÍÎÅÍÏÎÉË ÐÒÏÃÅÓÓÏÒÁ. ìÉÛÁÑÓØ ÐÒÉ ÜÔÏÍ DO> ÍÉÎÉÍÁÌØÎÏÇÏ ËÏÎÔÒÏÌÑ ÐÒÁ×ÉÌØÎÏÓÔÉ Ó×ÏÉÈ ÄÅÊÓÔ×ÉÊ,

DO> ×ÏÚÍÏÖÎÏÓÔÉ source-level debuging,

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

×ÓÅ ÏÓÔÁÌØÎÏÅ ×ÅÒÎÏ.

Alexey

ðÒÉ×ÅÔ Vladimir!

Thursday March 17 2005 16:45, Vladimir Vassilevsky wrote to Dima Orlov:

VV> Thu Mar 17 2005 13:51, Dima Orlov wrote to Olga Nonova: VV>

DO>> ðÁÓËÁÌÉÓÔ ÎÅ ÂÕÄÅÔ, ÔÁË ËÁË ÏÎ ×ÙÍÅÒ ÄÁ×ÎÏ. óÅÒØÅÚÎÙÈ ÓÉÓÔÅÍ DO>> ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÁ ÂÁÚÅ ðÁÓËÁÌÑ ÎÅÔ É ÎÅ ÐÒÅÄ×ÉÄÉÔÓÑ. ðÒÏÃÅÎÔ DO>> ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÁÓËÁÌÑ × ÓÉÓÔÅÍÎÏÍ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ ÂÌÉÚÏË Ë ÎÕÌÀ, × DO>> ÐÒÉËÌÁÄÎÏÍ - ÞÕÔØ ×ÙÛÅ, ÎÏ ÔÏÖÅ ÎÅÚÎÁÞÉÔÅÌØÎÙÊ. VV>

VV> ïÞÅÎØ ÐÏËÁÚÁÔÅÌØÎÙÊ ÒÅÚÕÌØÔÁÔ ÄÁÅÔ ÐÏÉÓË ÎÁ ËÌÀÞÅ×ÙÅ ÓÌÏ×Á "Pascal, VV> Delphi programming" É "C, C++ programming". ëÏÌÉÞÅÓÔ×Ï ÓÓÙÌÏË ÏÔÌÉÞÁÅÔÓÑ VV> ÐÒÉÍÅÒÎÏ × 1000 ÒÁÚ ÕÇÁÄÁÊÔÅ × ËÁËÕÀ ÓÔÏÒÏÎÕ :) VV>

VV> á ÅÝÅ × ÄÏÐÏÌÎÅÎÉÅ Ë ÍÅÓÔÎÙÍ ÍÒÁËÏÂÅÓÁÍ ÂÙÌ ÔÁËÏÊ ÄÏÃÅÎÔ ôÁÒÁÓÏ×,

üÔÏ ËÏÔÏÒÙÊ ÆÉÚÉËÕ ÐÒÅÐÏÄÁ×ÁÌ ?

VV> ÎÏ ÞÔÏ-ÔÏ ÅÇÏ ÄÁ×ÎÏ ÎÅ ×ÉÄÎÏ.

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

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Hello, Olga Nonova !

õÞÉÔÙ×ÁÑ, ÞÔÏ ËÉÔÁÊÃÙ ÐÒÏÉÚ×ÏÄÑÔ ÐÒÏÃÅÎÔÏ× 80 ÍÉÒÏ×ÏÊ ÜÌÅËÔÒÏÎÉËÉ, ÔÅÂÅ ÐÒÉÊÄÅÔÓÑ ÉÌÉ ÐÒÉÚÎÁÔØ, ÞÔÏ ÜÔÏ ÔÁË, ÉÌÉ ÚÁÑ×ÉÔØ, ÞÔÏ 80% ÜÌÅËÔÒÏÎÉËÉ - ÐÒÉÍÉÔÉ×ÎÁÑ ÆÉÇÎÑ.

formatting link

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Olga Nonova !

ôÅÂÅ-ÔÏ ÏÔËÕÄÁ ÚÎÁÔØ ÞÔÏ ÔÁÍ × ÔÅÈ ÒÏÕÔÅÒÁÈ, ÔÅÍ ÂÏÌÅÅ, ÞÔÏ ÞÅÍ çÁÒ×ÁÒÄ ÏÔ æÏÎ-ÎÅÊÍÁÎÁ ÏÔÌÉÞÁÅÔÓÑ ÔÙ ÎÅ ÚÎÁÅÛØ.

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hi Harry, hope you are having a nice day!

17 Мар 05, Harry Zhurov wrote to Alexey V Bugrov:

AV>> Что-то я не понимаю о чем тогда вообще разговор. У тебя получается AV>> тоже самоей щелканье контекстами, только без твоего участия и в AV>> неизвестном тебе объеме, т.к. оставляешь это на откуп компилятору.

HZ> Hет. С моим участием, в известном объеме и никакого откупа HZ> компилятору - вообще без его участия. Просто на входе сохраняется HZ> сразу весь контекст. Понимаю, что не всегда это эффективно.

Блин, ты нарочно пытаешься меня запутать? :) Я имел ввиду то, что ты называешь внеосевым прерыванием. Ты вроде бы клялся, что никакого сохранения контекста не делаешь, а всю работу делает компилятор.

HZ>>> что использует. Hапример, использует два регистра - их и HZ>>> сохраняет. AV>> OR уже сказал про убогость этого компилятора. Если ему нельзя AV>> объяснить какие регистры можно пользовать какие нет и какие AV>> регистры он будет использовать. HZ> Я бы не стал обзывать лучший компилятор убогим. Качество HZ> компилятора определяется в первую очередь качеством кодогенерации, и HZ> она на высоте.

Хех. Hе принимай близко к сердцу. В чем-то он лучший в чем-то убогий. Это неизбежно.

AV>> Если нельзя явно разрешить, то нужно знать как оно работает. HZ> Это да, это знать можно, и такое знание есть. Только где гарантия, HZ> что в следующей версии компилятор не будет что-то делать по-другому?

Если это было документировано, то не будет. Или будет ключ или прагма которая это отключает. Иначе нафиг такой компилятор. Моя позиция такова, если что-то документировано, то этим можно пользоваться.

HZ> Как быть в случае использования ОС для другой платформы?

Hикак. Ядро (таскманагер) писать с нуля. Все остальное может быть и на С написано, легко перенесется.

HZ> Все эти HZ> завязки на конкретный компилятор конкретной платформы, конечно, дают HZ> некую свободу в конкретном случае, но решение получается частным со HZ> всеми вытекающими.

Даже для uC/OS Лябрус вполне прозрачно написал, что если интересует результат, а не процесс, то самая главная часть ОС, в том числе планировщик, должна быть написана на асме. Обвеска на C - сколько угодно.

HZ> Если тебя это не волнует, то тебе хорошо. Как HZ> только начнет волновать, появятся все эти обсуждаемые вопросы.

Я не занимаюсь написанием ОС. :) Да, у меня были крамольные мысли мое поделие документировать и предложить на суд общественности (но без исходников, т.к. я жадный). Hо лениво. То что есть, было написано несколько спонтанно, но тем не менее вполне работоспособно в предлах всех 18-х пиков (но совместимо только с MCC18, портировать для других мне опять же лениво), обеспечивает минимально необходимый сервис и реально мной используется в двух коммерческих проектах (без перекомпиляции исходников :).

AV>> переключения задачи шедулер сохраняет контекст целиком.

AV>> 1. Вошли в прерывание. AV>> 2. Сохранили то, что требуется для инкремента ISR_Level и проверки AV>> флага need_run_scheduler. 3. Инкремент ISR_Level 4. Вызов AV>> "внеосевого прерывания" с его собственным AV>> сохранением восстановлением "контекста", тех самых двух регистров.

HZ> Как это "вызов"? Оно уже вызвано. Аппаратно. Мы в нем уже HZ> находимся.

Да. Обработчик прерывания - это функция. Какая разница кто ее вызовет: внешнее событие или другой код? Единственная проблема - это reti вместо ret на выходе. Hо это можно обойти.

Просто обработчик этого внеосевого прерывания должен находится не по адресу вектора, а в любом другом месте. По адресу вектора расположен враппер на асме, который делает вышеперечисленные действия и форвадит запрос на прерывание (т.е. вызывает обработчик как функцию) настоящему обработчику.

HZ> Если ты подразумеваешь именно вызов функции, то тут, как только ты HZ> поставишь внутри обработчика прерывания вызов функции, компилятор HZ> вставит сохранение всех local регистров - ведь он не знает, какие HZ> регистры юзаются внутри этой функции, поэтому сохраняет все.

Ой. Эти десять строчек надо на асме писать.

HZ> Если ты подразумеваешь передачу управления обработчику прерывания HZ> путем инициирования аппаратного прерывания, то тут я не понимаю, как HZ> это сделать - ведь мы уже находимся в обработчике прерывания, куда HZ> попали по вектору текущего прерывания.

Hет. Банальный call.

HZ> Если инициировать еще одно HZ> (например, путем взвода флага прерывания), и разрешить вложенные HZ> прерывания, то опять попадем сюда же. Если использовать другой вектор, HZ> то это будет нечто вроде софтового прерывания, которое проще HZ> использовать по-другому - т.е. после завершения текущего. И в этом HZ> случае проблема остается ровно та же - хорошо, если софтовое HZ> прерывание есть. Hо его на деле часто нет (к примеру, в AVR, MSP430 HZ> его нет).

Это все не требуется см. выше.

AV>> Hу что, запредельные накладные расходы? HZ> Hет. Только я пока не вижу, как это можно реализовать, не HZ> привязываясь к нюансам МК и используемого компилятора.

Интересует процесс или результат? :) Hикто же тебе не предлагает всю ось каждый раз писать с нуля. Только небольшую часть на асме для каждой платформы и/или компилятора. Или это противоречит идее? :)

HZ> Будь софтовое HZ> прерывание штатной вещью в любом МК, тогда проблемы бы не было. А так HZ> приходится сразу делить прерывания на осевые и внеосевые. Осевые - это HZ> которые однозначно являются источниками событий (т.е. в них взводятся HZ> семафоры). Внеосевые - остальные.

Пока ты меня не убедил. Я по прежнему придерживаюсь мнения, что такое деление лишняя сущность. Я могу допустить, что на мсп или авр иначе сделать действительно нельзя, что же - это еще один большой минус им в блэклист.

HZ>>> Как? Hа асме написать? Hаучи, как это сделать, например, на HZ>>> AVR?

Если бы я их использовал, то наверняка бы написал. Делать это из чистого любопытства мне не очень интересно, да и не особо есть время. Как написать - пока не знаю, т.к. внимательным изучением той платформы и компиляторов не занимался. А это необходимо.

HZ>>> В самом проце ничего особенного нет: 32 РОH, 2 байта - Stack HZ>>> Pointer, один байт - Status Reg. Как сделать, чтобы сохранять HZ>>> полный контекст только когда требуется перепланирование? ISR HZ>>> пишется на С.

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

AV>> см. выше. :) HZ> Hипалучицца. :)

Как вариант.

HZ>>> Вроде нет. Или под компилятор HZ>>> подстраиваешься?

AV>> Hет. С компилятором завзяки только на runtime model, т.е. как AV>> расположен (в каких регистрах) и как обслуживается стек и еще кое AV>> что по мелочи. Без этих данных невозможно корректное сохранение AV>> контекста вообще.

HZ> Вот это, имхо, как раз, не самое лучшее решение: компиляторы HZ> меняются. Меняются версии, меняются производители. Тут ты привязан HZ> крепко.

Hет. Будет переписана небольшая часть. Все остальное на компилятор не завязано.

HZ> И нет гарантий, что даже в текущем состоянии компилятор в HZ> какой-то ситуации не сделает что-то "нестандартно". Документированы, HZ> как правило, соглашения о вызове.

Это самое главное.

HZ> А поведение компилятора, например, в HZ> прерываниях - это внутреннее дело компилятора (и его разработчиков). HZ> Закладываться на это - это хак.

Таки тоже вполне документировано, обычно. А на что там закладываться? Важно следующее: это функция, в конце которой reti и содержимое всех регистров до входа в нее и после выхода не изменится.

HZ> Более надежным решением, имхо, является просто отобрать у HZ> компилятора возможность рулить процессом сохранения/восстановления HZ> регистров в прерывании (осевом). Т.е. чтобы он вообще к этому не HZ> касался. Тогда пишем на входе свой код сохранения, на выходе свой код HZ> восстановления.

Hа асме?

HZ> И от компилятора не зависим.

Да ладно, нужно знать хотя бы соглашения о вызовах, т.е. куда сохранять все и откуда все восстанавливать. Hа авр может это и однозначно, но для PIC18 разные компиляторы используют разные регистры указатели для орагнизации софтового стека.

[skip]

HZ> сидят, одно ПЛИС, другое МК. С ПЛИС проблем нет, она все успевает со HZ> свистом, что понятно, а вот для МК приходится паузы между передачами HZ> байтов вводить, чтобы он гарантированно успевал обменивать байты на HZ> своем конце.

Я никак не против, но если этого не делают, значит без этого можно обойтись. Или взять то, где это есть. :)

WBR, AVB

DO> ÷ ÔÏ ÖÅ ×ÒÅÍÑ ÓÔÁÒÙÊ IAR'Ï×ÓËÉÊ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ 8051 ÉÍÅÌ ÔÒÅÈÂÁÊÔÏ×ÙÊ DO> ÕËÁÚÁÔÅÌØ DO> (ÐÏÄÒÏÂÎÏÓÔÅÊ ÕÖÅ ÎÅ ÐÏÍÎÀ, ×ÏÚÍÏÖÎÏ ÔÏÌØËÏ × ÎÅËÏÔÏÒÙÈ ÍÏÄÅÌÑÈ ÐÁÍÑÔÉ) × DO> ÐÅÒ×ÏÍ ÂÁÊÔÅ ËÏÔÏÒÏÇÏ ÂÙÌ ÔÉÐ ÁÄÒÅÓÎÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á É ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ DO> ÂÉÂÌÉÏÔÅËÉ runtime ÏÐÒÅÄÅÌÑÌÉ ÐÏ ËÁËÏÊ ÉÚ ×ÅÔÏË ×ÙÐÏÌÎÑÔØ ÏÂÒÁÝÅÎÉÅ Ë DO> ÐÁÍÑÔÉ.

äÁ. óËÁÖÕ Åݣ, ÜÔÏ ÐÏÚ×ÏÌÑÅÔ ÒÅÁÌØÎÏ ÜËÏÎÏÍÉÔØ ÐÁÍÑÔØ. ôÁË ÅÓÌÉ ÏÂÙÞÎÙÅ ÓÔÒÏËÉ ÐÒÏÓÔÏ ÎÅ ÕÍÅÝÁÅÔÓÑ ×Ï ×ÎÕÔÒÅÎÎÅÅ ïúõ, ÔÏ code char* ÚÁÎÉÍÁÅÔ 0 ÂÁÊÔ ÐÁÍÑÔÉ. ðÒÉÈÏÄÉÔÓÑ ÚÁ ÜÔÉÍ ×ÒÕÞÎÕÀ ÓÍÏÔÒÅÔØ, ÞÔÏ ÇÄÅ ÒÁÚÍÅÝÁÅÔÓÑ...

ON> òÁÚÕÍÎÏ. ôÏÌØËÏ ÒÅÞØ ÉÄÅÔ ÎÅ Ï ÑÚÙËÅ, Á ÐÒÏ Ä×Á ×ÁÒÉÁÎÔÁ ÓÔÒÏË- Ó ÎÕÌÅÍ ON> (ÓÉÛÎÙÅ) É ÓÏ ÓÞÅÔÞÉËÏÍ + ÒÁÚÍÅÒ ËÏÎÔÅÊÎÅÒÁ(ÐÁÓËÁÌÅ×ÓËÉÅ). ÷ ÓÉÛÎÏÍ ON> ×ÁÒÉÁÎÔÅ, ON> ÈÌÏÐÏÔ Ó ÄÉÎÁÍÉÞÅÓËÉÍ ÒÁÚÍÅÝÅÎÉÅÍ É ÏÂÒÁÂÏÔËÏÊ z-ÓÔÒÏË ÍÎÏÇÏ ÂÏÌØÛÅ. ON> ðÏÜÔÏÍÕ, ON> ÞÉÓÔÏ ÔÅÏÒÉÔÉÞÅÓËÉ, ×ÅÒÏÑÔÎÏÓÔØ ÚÁÌÅÔÅÔØ ÎÁ ÎÅÐÒÉÑÔÎÏÓÔÉ- ÔÏÖÅ ÍÎÏÇÏ ON> ÂÏÌØÛÅ.

á ËÔÏ ÓËÁÚÁÌ, ÞÔÏ "ÓÉÛÎÙÅ ÓÔÒÏËÉ", ËÏÔÏÒÙÅ ÎÅ ÓÔÒÏËÉ ×Ï×ÓÅ, Á ÂÁÊÔÏ×ÙÊ ×ÅËÔÏÒ, ÐÒÅÄÎÁÚÎÁÞÅÎÙ ÄÌÑ ÔÏÇÏ, ÄÌÑ ÞÅÇÏ ÉÈ ÐÙÔÁÀÔÓÑ ÐÒÉÍÅÎÑÔØ? åÓÔØ É ÂÏÌÅÅ ×ÍÅÎÑÅÍÙÅ ÒÅÁÌÉÚÁÃÉÉ ÓÔÒÏË ÎÁ C, ÎÅ ×ÈÏÄÑÝÉÅ × ANSI ÂÉÂÌÉÏÔÅËÕ. ó z-ÓÔÒÏËÁÍÉ ÈÌÏÐÏÔ ËÁË ÒÁÚ ÍÅÎØÛÅ, ÜÔÏ ËÒÁÊÎÅ ÐÒÏÓÔÏÅ É ÈÏÒÏÛÅÅ ÒÅÛÅÎÉÅ ÄÌÑ ÐÒÏÓÔÙÈ ÖÅ ÓÌÕÞÁÅ×. ðÁÓËÁÌÅ×ÓËÉÅ ÓÔÒÏËÉ? ïÇÒÁÎÉÞÅÎÉÅ × 255 ÓÉÍ×ÏÌÏ× ÎÁ ÓÔÒÏËÕ ×ӣ ÕÂÉ×ÁÅÔ. äÁ É ÐÒÁËÔÉÞÅÓËÁÑ ÐÏÌØÚÁ ÏÔ ×ÏÚÍÏÖÎÏÓÔÉ ÏÂÒÁÂÏÔËÉ ÓÔÒÏË "ÎÅÉÚ×ÅÓÔÎÏÊ" ÄÌÉÎÙ ÞÁÓÔÏ ÐÅÒÅ×ÅÛÉ×ÁÅÔ ×ÓÅ ÐÒÏÔÉ× (ÆÕÎËÃÉÉ ×ÒÏÄÅ strtok...) HÅ ÏÔ ÈÏÒÏÛÅÊ ÖÅ ÖÉÚÎÉ ÂÏÒÌÁÎÄ ÄÏۣÌ ÄÏ ÒÅÁÌÉÚÁÃÉÉ Str* ÆÕÎËÃÉÊ ÁÎÁÌÏÇÉÞÎÙÈ ÉÍÅÀÝÉÍÓÑ × libc (unit strings, ×ÒÏÄÅ).

MB> ðpÅÖÄÅ ×ÓÅÇÏ, ÎÁÓޣÔ ÇÌÀÞÎÏÓÔÉ É ÎÅÇÌÀÞÎÏÓÔÉ ÂÉÂÌÉÏÔÅË. ñ ÞÔÏ-ÔÏ MB> ÎÅ ÓÌÙÛÁÌ ÐpÏ ÇÌÀÞÎÙÅ ÂÉÂÌÉÏÔÅËÉ - ÎÉ × ÂÏpÌÁÎÄÏ×ÓËÉÈ ÐÁËÅÔÁÈ ÄÌÑ

äÁ, Õ ÂÏÒÌÁÎÄÁ ÏÎÉ ÎÅ ÇÌÀÞÎÙÅ. üÔÏ ÏÓÏÂÅÎÎÏÓÔÉ ÒÅÁÌÉÚÁÃÉÉ.

AK> PÕËÏÐÁÛÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ: AK> #include <string.h>

AK> char zstr[] = "ÐÒÉÍÅÒÞÉË"; AK> char cstr[strlen(zstr)]; /* ÓÔÒÏËÁ ÓÏ ÓÞÅÔÞÉËÏÍ AK> cstr[0] = strlen(zstr); AK> for (int i=0; i<strlen(zstr); i++) AK> cstr[i+1] = zstr[i];

ñ ÆÉÇÅÀ, ÄÏÒÏÇÁÑ ÒÅÄÁËÃÉÑ...

AM> ïÎÉ ÆÁÔÁÌØÎÙ ÄÌÑ óÉ ÐÒÏÇÒÁÍÍÙ, ÎÁÐÉÓÁÎÏÊ ÔÁËÉÍÉ ÐÒÏÇÒÁÍÍÉÓÔÁÍÉ ËÁË ÷Ù. AM> ÷ÐÒÏÞÅÍ, ÄÁÖÅ ÎÅ ×ÁÖÎÏ, ËÁËÏÊ ÐÒÏÇÒÁÍÍÙ ÎÁ óÉ,áóí,ðÁÓËÁÌØ,PLM. AM> HÕÖÎÏ ÚÁÂÏÔÉÔØÓÑ Ï ÔÏÍ, ÞÔÏ Ó ÎÅ ÎÕÌÅ×ÏÊ ×ÅÒÏÑÔÎÏÓÔØÀ ÉÚ ËÁÎÁÌÁ ÐÒÉÄÅÔ AM> ×ÓÅ ÞÔÏ ÕÇÏÄÎÏ.

õ×Ù. óËÏÌØËÏ Ó ÜÔÉÍ ÞÔÏ ÕÇÏÄÎÏ ÎÅ ÂÏÒÑÔÓÑ, ÏÎÏ ×ӣ ÓÎÏ×Á É ÓÎÏ×Á ×ÙÌÁÚÉÔ ÔÏ ÔÕÔ, ÔÏ ÔÁÍ. èÁÒÁËÔÅÒÎÁÑ ÏÓÏÂÅÎÎÏÓÔØ C-ÐÒÏÇÒÁÍÍ Ó ÒÕÞÎÙÍ ×ÙÄÅÌÅÎÉÅÍ ÐÁÍÑÔÉ, ËÁËÏÊ-ÎÉÂÕÄØ perl ÜÔÉÍ ÎÅ ÍÕÞÁÅÔÓÑ.

Hello, Alexey Boyko !

ëÁË ÐÒÁ×ÉÌÏ.

HÏ ×ÓÅ ÒÁ×ÎÏ ÏÔÌÁÄËÁ ÂÕÄÅÔ × ÔÅÒÍÉÎÁÈ ÒÅÇÉÓÔÒÏ×, Á ÎÅ ÐÁÒÁÍÅÔÒÏ× ÍÁËÒÏÓÏ×, ÉÌÉ ÎÅÔ?

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.
ðÒÉ×ÅÔ Dima!

Thursday March 17 2005 20:35, Dima Orlov wrote to Olga Nonova:

DO>

formatting link

HÁ ÜÔÏÍ ÆÏÔÏÇÒÁÆÉÊ ÄÅ×ÁÊÓÏ× ÎÅÔ, Ñ ÅÊ ÐÏÜÔÏÍÕ ÄÁÌ

formatting link

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

ON> ðÏÐÒÏÂÕÊÔÅ ÓÌÅÄÕÀÝÉÊ ×ÁÒÉÁÎÔ. úÁÄÁÊÔÅ ×Ï flash ÓÔÒÕËÔÕÒÕ ÉÚ ON> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ON> ÓÔÒÏË, ËÏÎÓÔÁÎÔÙ "123","ABS","any else",... úÁÐÏÌÎÉÔÅ ÐÅÒÅÍÅÎÎÕÀ Óhar ON> VarStr ON> ËÁËÉÍ-ÎÉÂÕÄØ ASCII ÓÏÄÅÒÖÉÍÙÍ Ó ÎÕÌÅÍ × ËÏÎÃÅ. á ÐÏÔÏÍ ÐÏÐÒÏÂÕÊÔÅ ×ÙÚ×ÁÔØ ON> ÉÚ ON> ÍÏÄÕÌÑ string ÐÏÄÐÒÏÇÒÁÍÍÕ ÐÏÉÓËÁ ÓÔÒÏËÉ VarStr × ÎÁÂÏÒÅ ÛÁÂÌÏÎÏ×, ÞÔÏ ×Ï ON> flash. åÓÌÉ ÷Ù ÄÏÂØÅÔÅÓØ, ÞÔÏ ó-ËÏÍÐÉÌÑÔÏÒ ÐÅÒÅÄ ÐÏÉÓËÏÍ ÎÅ ÓËÏÐÉÒÕÅÔ ×ÅÓØ ON> ÎÁÂÏÒ ÛÁÂÌÏÎÏ× × ïúõ, É ÔÏÌØËÏ ÐÏÔÏÍ ×ÙÚÏ×ÅÔ ÂÉÂÌÉÏÔÅÞÎÕÀ ÆÕÎËÃÉÀ, ÔÏ ÜÔÉÍ ON> ÞÒÅÚ×ÙÞÁÊÎÏ ÍÅÎÑ ÏÂÒÁÄÕÅÔÅ É ×ÄÏÈÎÅÔÅ ÎÏ×ÏÅ, ÏÐÔÉÍÉÓÔÉÞÅÓËÏÅ ×ÉÄÅÎÉÅ ON> ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÁ óÉ.

typedef const char code t_string;

t_string s_STATE[] = "STATE"; t_string s_GAIN[] = "GAIN";

const struct { t_string *name; void (*func)(enum e, data char *); } cmd_list[] = { {s_STATE, cmd_state}, {s_GAIN, cmd_gain}, }

if (cmd=strtok(inputline, spaces), NULL==cmd) break; for (x=sizeof(cmd_list)/sizeof(cmd_list[0]); 0!=x--;) { if (!stricmp(cmd_list[x].name, cmd)) { A = cmd_list[x].A; break; } }

ON>> üÔÏÔ ÐÒÉÅÍ É ×ÏÚÎÉË, ËÁË ÐÁÎÁÃÅÑ ÂÏÒØÂÙ Ó ÐÒÅÒÙ×ÁÎÉÑÍÉ. âÏÒØÂÙ Ó ON>> ÐÒÉËÌÀÞÅÎÉÑÍÉ, ËÏÔÏÒÙÅ ÓÁÍÉ ÖÅ ÓÅÂÅ ÒÁÚÒÁÂÏÔÞÉËÉ ó-ËÏÍÐÉÌÑÔÏÒÏ× É ON>> ÕÓÔÒÏÉÌÉ. AM> åÓÌÉ ÎÅÔ ËÏÍÁÎÄÙ jbc, ÔÏ ÅÓÔØ ÁÔÏÍÁpÎÏÊ ËÏÍÁÎÄÙ ÐpÏ×ÅpËÉ ÂÉÔÁ Ó ÅÇÏ AM> ÓÂpÏÓÏÍ, ÔÏ ÎÁ ÁÓÓÅÍÂÌÅpÅ ×ÓÅ ÂyÄÅÔ ÔÏÞÎÏ ÔÁËÖÅ.

þÅÍ ÎÅÕÓÔÒÁÉ×ÁÀÔ ÒÁÚÎÏ×ÉÄÎÏÓÔÉ ËÏÍÁÎÄÙ swap (xchg ÎÁ i386) ?

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required