Embedded OS

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

Hello, Oleksandr!

÷cË íÁp 13 2005, Oleksandr Redchuk ÐÉÓÁÌ Ë Maxim Polyanskiy ÐÏ ÐÏ×ÏÄÕ "Re: Embedded OS." MP>> óËÁÖÅÍ Õ ÔÅÂÑ usart ÉÍÅÅÔ ÓÁÍÙÊ ×ÙÓÏËÉÊ ÕÒÏ×ÅÎØ Á ÏÂÒÁÂÏÔÞÉË MP>> ÐÁËÅÔÏ× ÄÏÌÖÅÎ ÂÙÔØ Ó ÕÒÏ×ÎÅÍ ×ÙÛÅ main ÎÏ ÎÉÖÅ usart. âÅÒÅÛØ MP>> ÌÀÂÏÅ ÎÅÚÁÄÅÊÓÔ×Ï×ÁÎÎÏÅ × ÐÒÏÇÒÁÍÍÅ ÐÒÅÒÙ×ÁÎÉÅ ÓÔÁ×ÉÛØ ÅÍÕ ÎÉÚËÉÊ MP>> ÐÒÉÏÒÉÔÅÔ É ×Ú×ÏÄÉÛØ × ÔÅÌÅ usart interupt ÅÇÏ ÂÉÔÉË × ÔÏÞËÅ MP>> ÐÒÉÅÍÁ ÐÁËÅÔÁ. ïÎÏ ÂÕÄÅÔ ×ÙÚ×ÁÎÎÏ ÓÒÁÚÕ-ÖÅ ÐÏ ×ÙÈÏÄÕ ÉÚ usart, OR> ôÀ, ÚÁÞÅÍ? ëÒÁÓÉ×Ï, ÐÏÎÑÔÎÏ, 100% ÂÕÄÅÔ ×ÅÚÄÅ ÒÁÂÏÔÁÔØ. OR> ïÞÉÓÔÉÌÉ ÌÏÇÉËÕ ÐÒÅÒÙ×ÁÎÉÊ ×ÙÐÏÌÎÅÎÉÅÍ reti - ÔÅÐÅÒØ ×ÓÅ ÏÓÔÁÌØÎÙÅ OR> ÐÒÅÒÙ×ÁÎÉÑ ÂÕÄÕÔ ÓÐÏËÏÊÎÏ ÐÒÅÒÙ×ÁÔØ ÄÁÎÎÏÅ, ÏÎÏ ÕÖÅ ×ÙÐÏÌÎÑÅÔÓÑ OR> ÎÁ ÕÒÏ×ÎÅ ÆÏÎÏ×ÏÊ. ëÌÁÓÓÉÞÅÓËÉÊ óÉÎËÌÅÒÉÚÍ. HÏ ÒÁÚ ÒÁÂÏÔÁÅÔ ÔÏ × ÐÒÉÎÃÉÐÅ ÍÏÖÎÏ É ÔÁË. OR> /* Oleksandr Redchuk, Brovary, Ukraine */ WBR! Maxim Polyanskiy.

Sun Mar 13 2005 23:29, Olga Nonova wrote to Vladimir Vassilevsky:

VV>> Preemptive multitasker ÓÉÌØÎÏ ÕÐÒÏÝÁÅÔ ÒÁÚÒÁÂÏÔËÕ ÓÏÆÔÁ. ðÏÓËÏÌØËÕ VV>> ÐÏÚ×ÏÌÑÅÔ VV>> ÐÉÓÁÔØ ÚÁÄÁÞÉ × ÓÔÉÌÅ for(;;) { do something } ÎÅ ÚÁÂÏÔÑÓØ Ï ÐÅÒÅÄÁÞÅ VV>> ÕÐÒÁ×ÌÅÎÉÑ.

ON> ôÕÔ ÄÅÌÏ ×ËÕÓÁ. çÏ×ÏÒÉÔØ ÐÒÏ "ÕÐÒÏÝÁÅÔ" ÎÅÍÎÏÇÏ ÏÐÒÏÍÅÔÞÉ×Ï, Ô.Ë. × ON> ÞÅÍ-ÔÏ ÐÒÏÝÅ, ÎÏ × ÄÒÕÇÏÍ ÍÅÓÔÅ ÓÒÁÚÕ ÓÔÁÎÏ×ÉÔÓÑ ÓÌÏÖÎÅÅ. ñ, ÎÁÐÒÉÍÅÒ, ON> ÓÏ×ÓÅÍ ÎÅ ×ÉÖÕ ÎÉËÁËÉÈ ÓÌÏÖÎÏÓÔÅÊ × ÐÅÒÅÄÁÞÅ ÕÐÒÁ×ÌÅÎÉÑ ÞÅÒÅÚ ÓÅÍÁÆÏÒÙ × ON> ×ÉÄÅ ÏÂÙÞÎÙÈ ÂÉÔÏ×, Á ÓÁÍÉ ÓÏÏÂÝÅÎÉÑ- ÞÅÒÅÚ ÏÂÝÉÅ ÐÅÒÅÍÅÎÎÙÅ. HÕ, ON> ÁÂÓÏÌÀÔÎÏ ÎÉËÁËÉÈ! úÁÞÅÍ ËÁËÏÊ-ÔÏ ÅÝÅ ÏÇÏÒÏÄ Ó "×ÙÔÅÓÎÅÎÉÅÍ" × ÚÁÄÁÞÁÈ ÎÁ ON> ÏÄÎÏËÒÉÓÔÁÌÌËÁÈ ÔÏÊ ÓÌÏÖÎÏÓÔÉ, ÞÔÏ ÏÂÓÕÖÄÁÌÉcØ ÚÄÅÓØ ÐÏ ÓÁÂÖÕ?

ä×Å ÁÓÉÎÈÒÏÎÎÙÈ ÚÁÄÁÞÉ. ó ÄÏÓÔÁÔÏÞÎÏ ÄÌÉÎÎÙÍÉ ×ÒÅÍÑÎËÁÍÉ, ÏÐÒÅÄÅÌÑÅÍÙÍÉ ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅÍ Ó ×ÎÅÛÎÉÍÉ ÕÓÔÒÏÊÓÔ×ÁÍÉ.

WBR, Yuriy

Hello, Harry!

÷cË íÁp 13 2005, Harry Zhurov ÐÉÓÁÌ Ë Oleksandr Redchuk ÐÏ ÐÏ×ÏÄÕ "Embedded OS."

HZ> ðÅÒÅÒÁÓÈÏÄ ÒÅÓÕÒÓÏ× × íë ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ×ÁÖÅÎ, ÐÏËÁ ÉÈ È×ÁÔÁÅÔ.

÷ÏÔ Õ ÔÅÈ ËÔÏ ÔÁË ÄÕÍÁÅÔ ÉÈ ÷åþHï ÎÅÈ×ÁÔÁÅÔ ;) á ÄÌÑ ÔÅÈ ËÏÍÕ ×ÁÖÅÎ - ÎÉËÁËÁÑ ÐÅÒÅÎÏÓÉÍÏÓÔØ ÎÅ ÎÕÖÎÁ. ïÎÉ ÐÒÅËÒÁÓÎÏ ÚÎÁÀÔ ÓËÏÌØËÏ ÅÓÔØ É ÓËÏÌØËÏ ÎÁÄÏ ÄÏ ÓÁÍÏÇÏ ËÏÎÃÁ ÐÒÏÅËÔÁ. HZ> H.Z. WBR! Maxim Polyanskiy.
ðÒÉ×ÅÔ Olga!

ON>> ËÏÍÐÉÌÑÔÏÒÁ óÉ ÏÔ ÒÁÚÎÙÈ ÆÉÒÍ. á ÄÅÌÏ-ÔÏ × ÏÄÎÏÍ ÐÒÏÓÔÏÍ ÍÏÍÅÎÔÅ- ON>> ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ÎÁ óÉ ÐÒÅÄÎÁÚÎÁÞÅÎÏ ÄÌÑ ÐÌÁÔÆÏÒÍ Ó ÇÁÒ×ÁÒÄÓËÏÊ

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ON >> ñ ÐÅÒÅÛÌÁ ÎÁÚÁÄ ÎÁ ÍÁËÒÏÁÓÓÅÍÂÌÅÒ ÐÏÓÌÅ ÐÏÐÙÔÏË ÞÔÏ-ÔÏ ÒÅÁÌØÎÏÅ ON >> ÉÓÐÏÌÎÉÔØ ÎÁ C ÏÔ IAR AVR.

ON >> ïÔËÒÙÌÁ ÍÎÏÇÏ ÕÄÉ×ÉÔÅÌØÎÅÊÛÉÈ ×ÅÝÅÊ, ËÏÔÏÒÙÅ ÎÁ×ÓÅÇÄÁ ÏÔ×ÒÁÔÉÌÉ ÏÔ ON >> óÉ × ÎÅÊÍÁÎÏ×ÓËÏÊ ÁÒÈÉÔÅËÔÕÒÅ.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

á ËÏÇÄÁ Ñ ÕÓÐÅÌ ÐÒÏÐÕÓÔÉÔØ ÔÏÔ ÍÏÍÅÎÔ, × ËÏÔÏÒÙÊ ÇÁÒ×ÁÒÄÓËÉÊ á÷ò ÓÔÁÌ ÆÏÎ-ÎÅÊÍÁÎÏ×ÓËÉÍ?

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

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

ðÒÉ×ÅÔ, Dima !

13 Mar 05 , 21:40 Dima Orlov ÐÉÓÁÌ Ë Olga Nonova:

DO> á ÅÇÏ × ÇÁÒ×ÁÒÄÓËÏÊ ÁÒÈÉÔÅËÔÕÒÅ ÐÏ-Ô×ÏÅÍÕ ÎÅÔ? éÌÉ ÎÁÏÂÏÒÏÔ DO> ÆÏÎ-ÎÅÊÍÁÎÏ×ÓËÏÊ? ðÏ-ÍÏÅÍÕ, Õ ÔÅÂÑ ÎÅ ÔÏÌØËÏ Ó óÉ ÐÒÏÂÌÅÍÙ, ÎÏ É Ó DO> ÐÏÎÉÍÁÎÉÅÍ ÏÔÌÉÞÉÊ ÇÁÒ×ÁÒÄÏ×ÓËÏÊ ÏÔ ÆÏÎ-ÎÅÊÍÁÎÏ×ÓËÏÊ ÁÒÈÉÔÅËÔÕÒÙ.

ÇÍ.. üÔÏ ÖÅ ÏÌØÇÁ ÎÏÎÏ×Á. ïÎÏ ÎÅ ÔÁË ÄÁ×ÎÏ × ÒÕÁË×ÁÒÉÁ ×ÅÝÁÌÏ ÐÒÏ ÒÕÌÅÚÎÏÓÔØ ÏËÕÒËÏ× Ó Ö/Ä ÎÁÓÙÐÉ. ïÔ ÜÔÏÇÏ ÓÕÂßÅËÔÁ ÎÅ ÂÙ×ÁÅÔ ÎÉÞÅÇÏ ËÒÏÍÅ ÆÌÅÊÍÁ É ÂÒÅÄÁ.

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... OS ÇÌÀÞÉÌÁ ÐÏ ×ÓÅÊ ðÏÄÎÅÂÅÓÎÏÊ ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÍÏÎÁÓÔÙÒÑ Õ ÇÏÒÙ óÕÎ.

Sun Mar 13 2005 23:29, Olga Nonova wrote to Vladimir Vassilevsky:

VV>> Preemptive multitasker ÓÉÌØÎÏ ÕÐÒÏÝÁÅÔ ÒÁÚÒÁÂÏÔËÕ ÓÏÆÔÁ. ðÏÓËÏÌØËÕ VV>> ÐÏÚ×ÏÌÑÅÔ VV>> ÐÉÓÁÔØ ÚÁÄÁÞÉ × ÓÔÉÌÅ for(;;) { do something } ÎÅ ÚÁÂÏÔÑÓØ Ï ÐÅÒÅÄÁÞÅ VV>> ÕÐÒÁ×ÌÅÎÉÑ.

ON> ôÕÔ ÄÅÌÏ ×ËÕÓÁ.

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

ON>>> ÎÅÚÁ×ÉÓÉÍÏÓÔÉ CÉ-ÐÒÏÇÒÁÍÍ ÏÔ ÐÌÁÔÆÏÒÍÙ ÄÏÓÔÉÞØ ÎÅ ÕÄÁÅÔÓÑ. VV>> ïÞÅÎØ ÄÁÖÅ ÕÄÁÅÔÓÑ. ÷ÓÅÇÄÁ ÅÓÔØ ÓÏÄÅÒÖÁÔÅÌØÎÁÑ ÞÁÓÔØ É hardw.h + VV>> hardw.c; ON> ëÁËÁÑ ÔÒÅÂÕÅÔÓÑ Ë×ÁÌÉÆÉËÁÃÉÑ, ÞÔÏÂÙ ÐÅÒÅÐÉÓÁÔØ Hardw.* ?

ðÏÇÏÎÝÉË ÓÌÏÎÏ×.

VV>> ó ÔÏÞËÉ ÚÒÅÎÉÑ ËÏÍÐÉÌÅÒÁ, ÚÁÄÁÞÁ ÎÉÞÅÍ ÎÅ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÏÂÙÞÎÏÊ C VV>> ÆÕÎËÃÉÉ. ON> ëÏÍÐÉÌÑÔÏÒÙ ÐÏ-ÒÁÚÎÏÍÕ ÐÅÒÅÄÁÀÔ ÆÏÒÍÁÌØÎÙÅ ÐÁÒÁÍÅÔÒÙ. ÷ÏÐÒÅËÉ ×ÓÅÍ ON> ÓÔÁÎÄÁÒÔÁÍ CÉ.

úÁÄÁÞÁ - ÜÔÏ void Task(void) ÓÏ Ó×ÏÉÍ ÓÔÅËÏÍ. ïÔ ÔÏÞËÉ ×ÈÏÄÁ ÎÉÞÅÇÏ ÎÅ ÔÒÅÂÕÅÔÓÑ ËÒÏÍÅ ÎÁÞÁÌØÎÏÇÏ ÁÄÒÅÓÁ ÄÌÑ ÔÁÓË-Ó×ÉÞÅÒÁ. ïÂÍÅÎ ÄÁÎÎÙÍÉ ÞÅÒÅÚ volatile static struct task_state.

VLV

"âÙÔØ ÞÅÓÔÎÙÍ - ÌÕÞÛÉÊ ÓÐÏÓÏ ÏÓÔÁ×ÁÔØÓÑ ÂÅÄÎÙÍ" (c) HÁÐÏÌÅÏÎ âÏÎÁÐÁÒÔ

Sun Mar 13 2005 15:33, Harry Zhurov wrote to Yuriy K:

YK>>>> ÷ÔÏÒÁÑ - ×ÓÅ ÏÓÔÁÌØÎÏÅ. HZ>>> äÁ? á ÐÏÞÅÍÕ ÂÙ ×ÏÏÂÝÅ ×ÓÅ ÎÅ ÚÁÐÉÈÁÔØ × ÏÄÎÕ? YK>> ðÏÔÏÍÕ ÞÔÏ ÎÅÕÄÏÂÎÏ. HZ> ïÐÒÅÄÅÌÅÎÉÅ ÐÏÎÑÔÉÑ "ÎÅÕÄÏÂÎÏ" × ÓÔÕÄÉÀ!

åÓÔØ ÚÁÄÁÞÉ, ËÏÔÏÒÙÅ ÈÏÒÏÛÏ ËÌÁÄÕÔÓÑ ÎÁ ËÏÏÐÅÒÁÔÉ×ÎÕÀ ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ, Á ÅÓÔØ ËÏÔÏÒÙÅ ÐÌÏÈÏ. ÷ Ô×ÏÅÍ ÐÒÉÍÅÒÅ ×ÓÅ ÚÁÄÁÞÉ, ËÒÏÍÅ ÄÌÉÎÎÙÈ ×ÙÞÉÓÌÅÎÉÊ, ÈÏÒÏÛÏ ËÌÁÄÕÔÓÑ ÎÁ ËÏÒÐÏÒÁÔÉ×ÎÕÀ ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ. éÍÅÎÎÏ ÐÏÜÔÏÍÕ É YK>>>> òÏ×ÎÏ Ä×Å ÚÁÄÁÞÉ.

HZ>>> äÁ - foreground-background.

YK>> HÅÔ. ä×Å ÚÁÄÁÞÉ time-sliced ÐÏ ÔÁÊÍÅÒÕ É ÐÒÅÒÙ×ÁÎÉÑ.

HZ> ïÂÏÚ×ÁÔØ ÍÏÖÎÏ ËÁË ÕÇÏÄÎÏ, ÓÕÔØ ÎÅ ÍÅÎÑÅÔÓÑ - ÒÉÁÌÔÁÊÍÏ×ÙÊ ËÏÄ × HZ> ÐÒÅÒÙ×ÁÎÉÑÈ, ÎÅÒÉÁÌÔÁÊÍÏ×ÙÊ - × ÏÓÎÏ×ÎÏÊ ÐÒÏÇÒÁÍÍÅ - background, ÔÏ ÂÉÛØ.

HÅÔ. ôÙ ÁÂÓÏÌÀÔÎÏ ÎÅÐÒÁ×.

HZ> é ÒÕÞÎÁÑ ÏÒÇÁÎÉÚÁÃÉÑ ÜÔÉÈ slice'Ï× Ó ÓÞÅÔÞÉËÁÍÉ, ÆÌÁÇÁÍÉ, ÓÏÓÔÏÑÎÉÑÍÉ

HÅÔ. ñ ÖÅ ÎÁÐÉÓÁÌ - Ä×Å ÚÁÄÁÞÉ, ÐÅÒÅËÌÀÞÁÅÍÙÅ ÔÁÊÍÅÒÏÍ Ó ÖÅÓÔËÉÍ ÒÁÓÐÒÅÄÅÌÅÎÉÅÍ ×ÒÅÍÅÎÉ ÍÅÖÄÕ ÎÉÍÉ. ôÁÊÍÅÒ ÓÏÈÒÁÎÑÅÔ ÓÔÅË ÐÅÒ×ÏÊ ÚÁÄÁÞÉ É ÐÅÒÅËÌÀÞÁÅÔÓÑ ÎÁ ×ÔÏÒÕÀ. ÷ ÓÌÅÄÕÀÝÅÍ ÐÒÅÒÙ×ÁÎÉÉ - ÐÅÒÅËÌÀÞÁÅÔÓÑ ÎÁÚÁÄ. HÉËÁËÉÈ ÓÞÅÔÞÉËÏ×, ÆÌÁÇÏ× É ÓÏÓÔÏÑÎÉÊ. òÏ×ÎÏ ÔÏÔ ÖÅ ÓÁÍÙÊ ×ÙÔÅÓÎÑÀÝÉÊ ÍÁÌÔÉÔÁÓËÉÎÇ, ÎÏ ÂÅÚ ÎÅÎÕÖÎÙÈ × ÄÁÎÎÏÍ ÐÒÏÓÔÏÍ ÓÌÕÞÁÅ ÎÁ×ÏÒÏÔÏ× Ó ÐÒÉÏÒÉÔÅÔÁÍÉ.

HZ>>> *********************************************** HZ>>> ðÒÏÃÅÓÓ 0 (ÎÏÍÅÒ - ÐÒÉÏÒÉÔÅÔ):

HZ>>> öÄÅÍ_óÏÏÂÝÅÎÉÅ_ïÔ_ðÒÉÅÍÎÉËÁ_UART();

YK>> State machine. ÍÏÖÎÏ ÓÏ×ÍÅÝÁÔØ Ó ÌÀÂÏÊ ÄÒÕÇÏÊ ÚÁÄÁÞÅÊ.

HZ> ëÔÏ ÜÔÕ ÍÁÛÉÎÕ ÚÁÐÕÓËÁÅÔ, ËÔÏ ÅÊ ÕÐÒÁ×ÌÅÎÉÅ ÐÅÒÅÄÁÅÔ ÐÒÉ ÐÒÉÈÏÄÅ HZ> ÂÁÊÔÁ?

uart_process(void) { if(byte_received) { switch(uart_rx_state) { case ... case ... } } }

ôÁË É ËÒÕÔÉÔÓÑ × ÇÌÁ×ÎÏÍ ÃÉËÌÅ 0 ÚÁÄÁÞÉ.

for(;;) { uart_process(); key_process(); display_process(); bla-bla-bla }

HZ>>> æÏÒÍÉÒÕÅÍ_ðÁËÅÔ(); HZ>>> if(ðÁËÅÔ_ðÒÉÎÑÔ)

YK>> ÷ÔÏÒÁÑ state machine - ÁÎÁÌÏÇÉÞÎÏ.

HZ> HÁ ÆÉÇ ÏÎÁ ×ÏÏÂÝÅ ÎÕÖÎÁ?

ÚÁ×ÉÓÉÔ ÏÔ ÓÌÏÖÎÏÓÔÉ ÄÅÊÓÔ×ÉÊ ÐÏÓÌÅ ÐÒÉÅÍÁ ÐÁËÅÔÁ. íÏÖÅÔ ÂÙÔØ É ÎÅ ÎÕÖÎÁ.

HZ>>> *********************************************** HZ>>> ðÒÏÃÅÓÓ 1:

HZ>>> ðÅÒÅËÌÀÞÁÅÍ_òÁÚÒÑÄ_éÎÄÉËÁÔÏÒÁ();

YK>> ðÒÏÝÅ É ÐÏÎÑÔÎÅÅ ÓÄÅÌÁÔØ × ÐÒÅÒÙ×ÁÎÉÉ ÐÏ ÔÁÊÍÅÒÕ. íÏÖÎÏ ÓÏ×ÍÅÓÔÉÔØ Ó YK>> ÏÔÓÞÅÔÏÍ ×ÒÅÍÅÎÉ, ÎÅ ÎÅÏÂÑÚÁÔÅÌØÎÏ.

HZ> õ ÔÅÂÑ ÅÓÔØ ÏÔÄÅÌØÎÙÊ ÔÁÊÍÅÒ ÄÌÑ ÜÔÏÇÏ? õ ÍÅÎÑ ÎÅÔ. ðÏÄÏÚÒÅ×ÁÀ, ÞÔÏ É HZ> Õ ÔÅÂÑ ÎÅÔÕ - ÔÏÇÄÁ ÔÅÂÅ ÐÒÉÄÅÔÓÑ ÎÁÐÉÓÁÔØ ÜÎÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÒÕÔÉÎÎÏÇÏ É HZ> ÔÕÐÏÇÏ ËÏÄÁ, ÐÒÁ×ÉÌØÎÏ ÍÁÓÛÔÁÂÉÒÕÀÝÉÅÇÏ ÐÅÒÉÏÄ ÔÁÊÍÅÒÁ É ÐÅÒÉÏÄ HZ> ÐÅÒÅËÌÀÞÅÎÉÑ ÒÁÚÒÑÄÁ.

óÔÁÎÄÁÒÎÙÊ ÍÉÌÌÉÓÅËÕÎÄÎÙÊ ÔÁÊÍÅÒ. HÁ ÎÅÍ ×ÉÓÉÔ ÎÅÓËÏÌØËÏ ÐÒÏÇÒÁÍÍÎÙÈ ÔÁÊÍÅÒÏ× ÄÌÑ ËÒÉÔÉÞÎÙÈ ÚÁÄÅÒÖÅË, ÉÎÄÉËÁÃÉÑ É ËÌÁ×ÉÁÔÕÒÁ. úÁÏÄÎÏ ÍÏÖÎÏ É ÚÁÄÁÞÉ ÉÍ ÖÅ ÐÅÒÅËÌÀÞÁÔØ ÔÕÄÁ-ÓÀÄÁ. úÁ×ÉÓÉÔ ÏÔ ÚÁÄÁÞÉ.

HZ> é ÔÕÔ ÖÅ ÅÝÅ ËÕÞÁ ÁÎÁÌÏÇÉÞÎÏÇÏ ËÏÄÁ ÄÌÑ ÄÒÕÇÉÈ ÞÁÓÔÅÊ ÐÒÏÇÒÁÍÍÙ... HZ> ÓÞÅÔÞÉËÉ, ÆÌÁÇÉ...

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

YK>> ðÒÏÝÅ É ÐÏÎÑÔÎÅÅ ÓÄÅÌÁÔØ × ÐÒÅÒÙ×ÁÎÉÉ ÐÏ ÔÁÊÍÅÒÕ. íÏÖÎÏ ÓÏ×ÍÅÓÔÉÔØ YK>> Ó ÉÎÄÉËÁÃÉÅÊ, ÅÓÌÉ ÜÔÏ ÕÄÏÂÎÏ.

HZ> üÔÏ _ÎÅÕÄÏÂÎÏ_. óÍ ×ÙÛÅ.

þÅÍ?

HZ>>> if(âÙÌÁ_áËÔÉ×ÎÏÓÔØ_HÁ_ëÎÏÐËÁÈ) HZ>>> { HZ>>> æÏÒÍÍÉÒÕÅÍ_óÏÏÂÝÅÎÉÅ(); HZ>>> ûÌÅÍ_óÏÏÂÝÅÎÉÅ_ðÒÏÃÅÓÓÁÍ-ïÂÒÁÂÏÔÞÉËÁÍ();

YK>> ðÒÅËÒÁÓÎÏ ×ÙÐÏÌÎÑÅÔÓÑ × ÇÌÁ×ÎÏÍ ÃÉËÌÅ ðÒÏÃÅÓÓÁ 0.

HZ> çÌÁ×ÎÙÊ ÃÉËÌ ðÒÏÃÅÓÓÁ 0 ÖÄÅÔ ÐÒÉÈÏÄÁ ÂÁÊÔÁ ÏÔ UART'Á. õ ÍÅÎÑ. ëÓÔÁÔÉ, HZ> ÎÅ ÐÏÎÑÌ, ËÔÏ Õ ÔÅÂÑ ÕÐÒÁ×ÌÑÅÔ ÁËÔÉ×ÎÏÓÔØÀ ðÒÏÃÅÓÓÁ 0?

HÉËÔÏ. ñ ÖÅ ÎÁÐÉÓÁÌ - ÐÒÉÎÕÄÉÔÅÌØÎÙÊ ÔÁÊÍ-ÓÌÁÊÓÉÎÇ ÐÏ ÔÁÊÍÅÒÕ.

YK>> if(keyN_pressed()) HZ>>> ÷ÙÐÏÌÎÑÅÍ_ôÒÅÂÕÅÍÙÅ_äÅÊÓÔ×ÉÑ(); YK>> ðÒÅËÒÁÓÎÏ ×ÙÐÏÌÎÑÅÔÓÑ × ÇÌÁ×ÎÏÍ ÃÉËÌÅ ðÒÏÃÅÓÓÁ 0.

HZ> ëÔÏ ÕÐÒÁ×ÌÑÅÔ ÁËÔÉ×ÎÏÓÔØÀ ðÒÏÃÅÓÓÁ 0.

HÉËÔÏ. ñ ÖÅ ÎÁÐÉÓÁÌ - ÐÒÉÎÕÄÉÔÅÌØÎÙÊ ÔÁÊÍ-ÓÌÁÊÓÉÎÇ ÐÏ ÔÁÊÍÅÒÕ.

HZ>>> ðÒÏÃÅÓÓ 4: YK>> if(bla-bla-bla) HZ>>> ÷ÙÐÏÌÎÑÅÍ_ôÒÅÂÕÅÍÙÅ_äÅÊÓÔ×ÉÑ();

YK>> ðÒÅËÒÁÓÎÏ ×ÙÐÏÌÎÑÅÔÓÑ × ÇÌÁ×ÎÏÍ ÃÉËÌÅ ðÒÏÃÅÓÓÁ 0.

HZ> ëÔÏ ÕÐÒÁ×ÌÑÅÔ ÁËÔÉ×ÎÏÓÔØÀ ðÒÏÃÅÓÓÁ 0.

HÉËÔÏ. ñ ÖÅ ÎÁÐÉÓÁÌ - ÐÒÉÎÕÄÉÔÅÌØÎÙÊ ÔÁÊÍ-ÓÌÁÊÓÉÎÇ ÐÏ ÔÁÊÍÅÒÕ.

HZ>>> *********************************************** HZ>>> ðÒÏÃÅÓÓ 5:

HZ>>> for(;;) HZ>>> { HZ>>> ÷ÙÐÏÌÎÑÅÍ_ðÅÒÅÓÞÅÔ_ðÁÒÁÍÅÔÒÏ×(); HZ>>> Sleep(100 ÍÉÌÌÉÓÅËÕÎÄ); HZ>>> }

YK>> HÕ ÔÁË É ÂÙÔØ, ðÒÏÃÅÓÓ 1.

HZ>>> ***********************************************

YK>> ðÒÉ ÎÁÌÉÞÉÉ ÖÅÓÔËÉÈ ×ÒÅÍÅÎÎÙÈ ÔÒÅÂÏ×ÁÎÉÊ ÒÁÂÏÔÕ Ó UART ÍÏÖÅÔ ÂÙÔØ YK>> ÕÄÏÂÎÏ ×ÙÎÅÓÔÉ × ÏÔÄÅÌØÎÙÊ ÐÒÏÃÅÓÓ 2. úÁ×ÉÓÉÔ ÏÔ ÐÒÏÔÏËÏÌÁ.

HZ> ôÏ, ÞÔÏ Ñ ÏÐÉÓÁÌ, ÜÔÏ ÐÒÉ ÒÁÂÏÔÅ UART'Á ÎÁ ÎÅÂÏÌØÛÉÈ ÓËÏÒÏÓÔÑÈ. íÏÖÎÏ HZ> ÐÏÚ×ÏÌÉÔØ ÓÅÂÅ ÔÁËÕÀ ÒÏÓËÏÛØ. HÁ ×ÙÓÏËÉÈ ÓËÏÒÏÓÔÑÈ ÄÅÌÁÅÔÓÑ ÎÅ ÔÁË: ÂÁÊÔÙ HZ> ËÌÁÄÕÔÓÑ × ÂÕÆÅÒ, ËÏÔÏÒÙÊ ÐÏÌÌÉÔÓÑ × ×ÙÓÏËÏÐÒÉÏÒÉÔÅÔÎÏÍ ÐÒÏÃÅÓÓÅ.

HÉËÁËÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ. òÁÚÎÙÅ ÐÏÄÈÏÄÙ ÄÌÑ ÒÁÚÎÙÈ ÓËÏÒÏÓÔÅÊ...

YK>> ÷ÙÎÏÓ ÏÐÒÏÓÁ ËÎÏÐÏË É ÎÉÚËÏÕÒÏ×ÎÅ×ÏÊ ÉÎÄÉËÁÃÉÉ × ÏÔÄÅÌØÎÙÅ ÐÒÏÃÅÓÓÙ YK>> ÎÅ ÏÐÒÁ×ÄÁÎ ÎÉÞÅÍ, ËÒÏÍÅ ÖÅÌÁÎÉÑ "ÂÙÔØ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÍ".

HZ> ïÎ ÏÐÒÁ×ÄÁÎ ÕÖÅ ÍÅÎØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐÉÓÁÎÉÎÙ, ÂÏÌÅÅ ÞÅÔËÏÊ É HZ> ÐÒÏÚÒÁÞÎÏÊ ÓÔÒÕËÔÕÒÏÊ, ÏÔÓÕÔÓÔ×ÉÅÍ ÍÅÛÁÀÝÉÈ, ÎÅ ÉÍÅÀÝÉÈ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏÇÏ HZ> ÏÔÎÏÛÅÎÉÑ Ë ÃÅÌÅ×ÏÊ ÐÒÏÇÒÁÍÍÅ, ÓÕÝÎÏÓÔÅÊ - ÓÞÅÔÞÉËÏ×, ÆÌÁÇÏ×, ÓÏÓÔÏÑÎÉÊ É HZ> ÐÒÏÞÉÈ ÁÒÔÅÆÁËÔÏ×,

èÍ. ëÁË Õ ÔÅÂÑ ÐÅÒÅÄÁÀÔÓÑ ÄÁÎÎÙÅ ÍÅÖÄÕ ÐÒÏÃÅÓÓÁÍÉ? ó×ÑÔÙÍ ÄÕÈÏÍ ÉÌÉ ×ÓÅ ÖÅ ÆÌÁÇÁÍÉ É ÓÏÓÔÏÑÎÉÑÍÉ?

HZ> ÌÕÞÛÅÊ ÄÅÔÅÒÍÉÎÉÒÏ×ÁÎÎÏÓÔØÀ ÐÏ×ÅÄÅÎÉÑ.

üÔÏ ÛÕÔËÁ ÔÁËÁÑ? äÅÔÅÒÍÉÎÉÒÏ×ÁÎÎÏÓÔØ ÌÕÞÛÅ, ÞÅÍ Õ ÐÒÅÒÙ×ÁÎÉÑ.

HZ>>> úÄÅÓØ ÍÎÅ ÎÕ ÎÕÖÎÏ ÚÁÂÏÔÉÔØÓÑ Ï ×ÒÅÍÅÎÉ ÒÅÁËÃÉÉ ÎÁ ÐÒÉÅÍ ÓÉÍ×ÏÌÁ Ó HZ>>> UART'Á

YK>> ëÏÌØÃÅ×ÏÊ ÂÕÆÅÒ ÎÁ 20 ÂÁÊÔ × ÐÒÅÒÙ×ÁÎÉÉ. ÷ÓÅ.

HZ> HÅÔ, ÎÅ ×ÓÅ. ëÔÏ ËÏÎÔÒÏÌÉÒÕÅÔ ÔÁÊÍÁÕÔÙ? é ËÏÌØÃÅ×ÏÊ ÂÕÆÅÒ, ËÓÔÁÔÉ, HZ> ÇÏÒÁÚÄÏ Ï×ÒÅÈÅÄÎÅÅ ÏÂÙÞÎÏÇÏ.

ëÏÌØÃÅ×ÏÊ ÂÕÆÅÒ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÈÕÖÅ ÐÅÒÅËÌÀÞÅÎÉÑ ËÏÎÔÅËÓÔÁ ÎÁ AVR. :-)))

YK>> HÅ ÎÁÄÏ ÄÏ×ÏÄÉÔØ ÓÌÅÄÏ×ÁÎÉÅ ËÁËÏÊ-ÌÉÂÏ ÍÏÄÅÌÉ ÄÏ ÁÂÓÕÒÄÁ. YK>> äÁÖÅ ÅÓÌÉ ÎÁ ÜÔÏ ÅÓÔØ ÓÉÌÙ, ÓÒÅÄÓÔ×Á É ÖÅÌÁÎÉÅ. :-))))

HZ> ëÔÏ ÏÐÒÅÄÅÌÑÅÔ ÇÒÁÎÉÃÕ?

ñ, ÅÓÔÅÓÔ×ÅÎÎÏ. ëÔÏ ÖÅ ÅÝÅ? 8-0

HZ> P.S. ëÁËÕÀ RTOS ÔÙ ÉÓÐÏÌØÚÕÅÛØ?

ó×ÏÀ ÓÏÂÓÔ×ÅÎÎÕÀ. ÷ÙÔÅÓÎÑÀÝÉÊ task switch ÐÏ ÔÁÊÍÅÒÕ Ó ÆÉËÓÉÒÏ×ÁÎÎÙÍÉ time slice ÄÌÑ ÒÁÚÎÙÈ ÐÒÏÃÅÓÓÏ×. ëÁÖÄÙÊ ÐÒÏÃÅÓÓ ×ÉÄÉÔ Ó×ÏÊ ÐÒÏÃÅÓÓÏÒ. ÷ ÐÒÏÓÔÅÊÛÅÍ ÓÌÕÞÁÅ Ó ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÐÏÌÏ×ÉÎÎÏÊ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØÀ É ÄÏÐÏÌÎÉÔÅÌØÎÏÊ latency × ÏÄÎÕ ÍÉÌÌÉÓÅËÕÎÄÕ ÐÒÏ ËÏÔÏÒÕÀ ÎÅ ÎÁÄÏ ÚÁÂÙ×ÁÔØ. âÏÌØÛÕÀ ÞÁÓÔØ ×ÒÅÍÅÎÉ ×ÓÅ ÚÁÄÁÞÉ ÐÒÏ×ÏÄÑÔ × ÃÉËÌÅ while(timer_expired(TIMER_N)); ëÒÏÍÅ ÓÌÕÞÁÅ× ÏÖÉÄÁÎÉÑ ÞÅÇÏ-ÎÉÂÕÄØ ×ÎÅÛÎÅÇÏ, ×ÒÏÄÅ RF module. ðÏËÁ Ñ ÎÅ ×ÉÖÕ ÐÒÅÉÍÕÝÅÓÔ×Á ÂÏÌÅÅ ÓÌÏÖÎÙÈ ïó ÄÌÑ ËÏÎÔÒÏÌÌÅÒÎÙÈ ÐÒÉÍÅÎÅÎÉÊ, ÏÓÏÂÅÎÎÏ Ó ÖÅÓÔËÉÍ ÒÅÁÌÔÁÊÍÏÍ.

WBR, Yuriy

Hello, Dima!

÷cË íÁp 13 2005, Dima Orlov ÐÉÓÁÌ Ë Olga Nonova ÐÏ ÐÏ×ÏÄÕ "Embedded OS." DO> ñ ÔÕÔ ÕÖÅ ÐÒÉ×ÏÄÉÌ ÐÒÉÍÅÒ ÐÅÒÅÈÏÄÁ Ó PIC16F876 ÎÁ PIC18F2620 ÉÌÉ DO> PIC18F252. úÁÎÉÍÁÀÝÁÑ 96% ÐÁÍÑÔÉ 876 ÐÉËÁ ÐÒÏÇÒÁÍÍÁ ÂÙÌÁ ÐÅÒÅÎÅÓÅÎÁ DO> ÇÄÅ-ÔÏ × ÔÅÞÅÎÉÅ ÏÄÎÏÇÏ ÄÎÑ (ÔÏÞÎÅÅ ÓËÁÚÁÔØ ÔÒÕÄÎÏ, ÔÁË ËÁË ÚÁÎÉÍÁÌÓÑ DO> Ñ ÎÅ ÔÏÌØËÏ ÜÔÉÍ), ÐÒÉÞÅÍ ÓÅÊÞÁÓ - ÜÔÏ ÏÄÉÎ ÉÓÈÏÄÎÉË, ËÏÔÏÒÙÊ × DO> ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÄÅÆÁÊÎÏ× ËÏÍÐÉÌÉÒÕÅÔÓÑ ÐÏÄ 16F876, 18F252 É 18F2620 (É DO> ÐÒÏ×ÅÒÅÎÏ, ÞÔÏ ÒÁÂÏÔÁÅÔ). óËÏÌØËÏ ×ÒÅÍÅÎÉ ÂÙ ÕÛÌÏ ÐÒÉ ÐÅÒÅÎÏÓÅ DO> ÉÓÈÏÄÎÉËÁ ÎÁ ÍÁËÒÏÁÓÓÅÍÂÌÅÒÅ? äÁ ÔÏÔ-ÖÅ ÏÄÉÎ ÄÅÎØ. ðÒÉÞÅÍ × ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÜÔÏ ÄÅÌÁÅÔÓÑ ÂÁÎÁÌØÎÏ. òÅÁÌØÎÙÊ ÏÂßÅÍ ÁÓÍ ËÏÄÁ Ô×ÏÅÊ ÚÁÄÁÞÉ ÂÕÄÅÔ ÏËÏÌÏ 60% ÐÁÍÑÔÉ. ÷ ÌÅ×ÏÍ ÏËÎÅ ÏÔËÒÙ×ÁÅÔÓÑ ÉÓÈÏÄÎÉË ÏÔ f876 × ÐÒÁ×ÏÍ ÐÕÓÔÏÊ ÆÁÊÌ É ÐÒÏÓÔÏ ÂÁÎÁÌØÎÏ ÐÉÛÅÔÓÑ ÔÏ-ÖÅ ÓÁÍÏÅ × ÎÓËÏÌØËÏ ÄÒÕÇÉÈ ÍÎÅÍÏÎÉËÁÈ. äÕÍÁÅÛØ ÐÒÉ ÎÏÒÍÁÌØÎÏÍ ÏÐÙÔÅ ÐÒÏÇÁÍÍÉÒÏ×ÁÎÉÑ ÜÔÏ ÂÏÌØÛÅ ÞÅÍ 1 ÄÅÎØ? äÁ Ñ Ó ÔÏÂÏÊ ÐÏÓÐÏÒÉÔØ ÍÏÇÕ. (ÒÅÁÌØÎÏÓÔØ ÖÅ ÂÕÄÅÔ ÚÁËÌÀÞÁÔÓÑ × ÔÏÍ, ÞÔÏ ÓËÏÒÅÅ ×ÓÅÇÏ ÜÔÏÇÏ ÎÅ ÎÁÄÏ ÄÅÌÁÔØ, ÐÌÁÎÏÍÅÒÎÏ ÄÏÂÉ×ÁÑ ËÏÄÏÍ 40 ÏÓÔÁ×ÛÉÈÓÑ %). DO> ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×. WBR! Maxim Polyanskiy.
13-Mar-05 16:01 Alexey V Bugrov wrote to Harry Zhurov:

HZ>> Была еще идея рулить векторами прерываний - т.е. иметь два HZ>> обработчика: один для приема всех символов, кроме последнего, другой - HZ>> для приема последнего. Первый ISR выполняется обычным образом, без HZ>> манипуляций контекстами, при приеме предпоследнего символа,

[...]

AB> Брр... Зачем так сложно-то? Задача обрабатывающая пакет спит (никакого AB> поллинга), точнее ждет семафора. В прерываниях AB> приняли последний байт пакета и выставили евент/семафор. Тогда при AB> выходе из _этого_ прерывания мы автоматически AB> активизируем ждущую задачу, если нет более приоритетных, иначе задача AB> активизируется после окончания работы этих более AB> приоритетных.

AB> В RTOS, обычно, перепланировка происходит каждый раз при выходе из AB> любого прерывания, т.к. в них выставляются семафоры. AB> Если семафоры небыли выставлены, то переключение контекста просто не AB> происходит.

Это HZ просто без предупреждения продолжает наше с ним почтовое обсуждение этого дела, боюсь, уже двухгодичной давности :-)

В том-то и дело, что не "переключения контекста не происходит", а "он переключается назад туда, где был"

Т.е. с точки зрения затрат времени "логическое" отсутствие переключения и "логическое" его наличие эквивалентны - так как "физическое" происходит. Т.е. ISR полностью сохраняет всё, делает свою работу, потом работает перепланировщик и при необходимости делает переключение на другой контекст. При такой постановке по каждому байту переключаться на процесс приёма и обработки пакета или накапливать пакет без перепланировки - разница тоже есть, в _дополнительное_ переключение контекста уже _после_ отработки процесса приёма байта.

Но хочется же не просто мёд, а ещё и ложкой.

Подмена вектора или использование другого прерывания, которое будет отработано после возврата из ISR, просто складывающей байты в буфер пакета - предназначено устранить и "холостое" сохранение/восстановление контекста, довльно толстое, к примеру, у AVR. Хотелось бы приём байта сделать "внеосевым" прерыванием, просто оформленным как SYGNAL/interrupt и т.п. конкретного компилятора С. В этом случае сохраняться/восстанавливаться будут только необходимые регистры и только в конце приёма пакета надо сделать взведение семафора и переключение контекста. Но... не получается. На стеке - *огрызок* контекста текущего процесса, причём с большой вероятностью совершенно не соответствующий начальной части "осевого" формата и вообще зависит от перекомпиляции. Его надо вернуть взад и только затем соорудить полное сохранение и перепланировку. Это можно сделать подменой вектора (если известно, когда его подменять) или инициацией другого прерывания, оформленного "по-осевому" - если есть где его взять :-)

WBR,

13-Mar-05 12:33 Harry Zhurov wrote to Oleksandr Redchuk:

OR>> Переключение разряда индикатора вкупе с опросом кнопок в "обычном" OR>> прерывании займут времени столько, сколько одно переключение контекста.

OR>> Почему бы не считать, что динамическая индикация вообще "как бы OR>> аппаратная", просто её буфер лежит в ОЗУ процессора - [...]

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

HZ> Представь, что там не переключение цифры индикатора, а обновление HZ> видеоозу, которое занимает... HZ> Представь, что там не три кнопки, а клавиатура, где не HZ> только нажатия надо обрабатывать, но и определять события (клик, нажали HZ> и HZ> держим, отпустили) и комбинации (нажаты две кнопки) и т.д. Это тоже все HZ> в прерывание пихать? Вот с чем у меня в таких случаях туго - так это с воображением. Ну не ставлю я ни в реальную схему, ни в учебный пример с

10-милиамперным током -- 10-амперный транзистор. ВидеоОЗУ *обновляться* в прерывании не должно, в прерывании оно может только выбрасываться в индикатор, если ПДП нет :-), поэтому мне тяжело такое представить. Обновление видеоОЗУ - это, грубо говоря, топтание по знакогенератору как результат выполнения функции класса printf - такому не место даже в высокоприоритетном управляющем потоке - всю диагностику он должен пихать в очередь к менее приоритетному процессу user interface. Не говоря уже о том, что этому не место в прерывании.

OR>> А по поводу коммуникационного - уже когда-то с тобой обсуждал.

HZ> Да, я помню. Тогда же еще витала идея двух обработчиков прерываний с HZ> подменой вектора. Но если скорость 9600, не проще ли написать линейный HZ> код приема? Давай про воображение :-), а ВДРУГ тебе придётся перейти на 115200 - ведь придётся всё переписывать. И ещё немного воображения - приём пакета и его анализ - это, вообще говоря, разные уровни. И тебе может понадобиться сменить способ доставки пакета - добавить/убрать байт-стаффинг, какие-то дополнительные заголовки, etc - тебе же придётся менять код процесса, который обрабатывает ПАКЕТЫ. Для удобства такое дело часто разделяют на два связанных процесса, "верхний" работает с пакетами, не заморачиваясь со способом их доставки. Я просто предложил "нижний" затолкать в прерывание :-)

HZ> Перерасход ресурсов в МК совершенно не важен, пока их хватает. Что интересно - я сам часто такое говорю. Но только у нас разный порог, по которому мы считаем - зря ресурс потрачен или не зря. А тратить зря даже то, что в избытке - это противоречит моим убеждениям.

HZ> Что толку, HZ> если написать все плотно, ужаться до предела и проц будет простаивать и HZ> половина ОЗУ будет не задействованной? Только лишняя трата сил. Каких сил? В случае с индикацией - код, связанный с изыманием очередного байта из дисплейного буфера, возврат на его начало в конце - всё равно присутствуют, его всё равно писать. В случае динамической индикации в прерываниях - его КАК МАКСИМУМ надо завернуть в if( --disp_cnt == 0) { disp_cnt = disp_period; DISPLAY_CODE(); // это placeholder для реального кода дин. индикации. } в случае отдельного процесса - в for(;;) { DISPALY_CODE(); sleep(disp_period); } Я в упор не вижу лишней траты сил. Полтора десятка лишних нажатий клавиш - не в счёт.

HZ> Так вот, он даже магазин за хлебом HZ> на машине едет, хотя там идти 5 минут (и поездка стоит дороже самой HZ> покупки). Подозреваю, что и время он тоже не экономит, а то и наоборот - лишнее тратит. Видел таких. Машина ради машины, а не ради улучшения жизни. Я как раз о том, что если за хлебом - пешком час тюхать, то спору нет - надо взять машину и заодно подумать - что ещё в неё затолкать, чтобы лишний раз не ездить, соседу предложить - "я всё равно еду". А вот если пять минут - то *надо* пройтись пешочком.

HZ> Говорит, что ему так удобнее. Попробуй такого в этом разубедить! :) HZ> И должен признать, что кое в чем он не так уж и не прав. Может быть, может быть... Только не надо тогда жаловаться, что города становятся всё вонючее, реки всё загаженнее и т.п.

wbr,

Hello, Maxim Polyanskiy !

é ËÁË ÖÅ Ñ ÄÌÑ 12F67x ÎÁ ó ÐÉÛÕ?

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

Hello, Olga Nonova !

äÁ ÎÅÔ ÔÁËÏÇÏ. äÁÌØÛÅ ÏÔÄÅÌØÎÙÈ ÍÏÄÅÌÅÊ ÄÅÌÏ ÎÅ ÐÏÛÌÏ É ÅÝÅ ÄÏÌÇÏ ÎÅ ÐÏÊÄÅÔ.

é ÜÔÏÇÏ ÎÅÔ É × ÏÂÏÚÒÉÍÏÍ ÂÕÄÕÝÅÍ ÎÅ ÐÒÅÄ×ÉÄÉÔÓÑ. HÅ ÎÁÄÏ ÐÕÔÁÔØ ×ÙÓÔÁ×ÏÞÎÙÅ "ËÏÎÃÅÐÔÙ" Ó ÒÅÁÌØÎÙÍ ÒÙÎËÏÍ WhiteLine.

ðÒÑÍÏ ÔÁË ×ÓÅ ÂÅÒÅÔÓÑ É ÐÅÒÅ×ÏÄÉÔÓÑ. ÷ÙÂÒÁÓÙ×ÁÅÔÓÑ ÒÁÂÏÔÁÀÝÅÅ ÏÂÏÒÕÄÏ×ÁÎÉÅ É ÓÔÁ×ÉÔÓÑ ÎÏ×ÏÅ ÍÏÄÎÏÅ...

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

HÅÔ, ÉÍÅÎÎÏ ÅÒÕÎÄÁ.

úÁÔÅÍ, ÞÔÏ ÎÁÄÏ Ñ×ÎÏ ÕËÁÚÁÔØ ÅÍÕ ÜÔÏÇÏ ÎÅ ÄÅÌÁÔØ.

ëÁËÏÅ ÏÔÎÏÛÅÎÉÅ ÓÐÏÓÏ ÐÅÒÅÄÁÞÉ ÐÁÒÁÍÅÔÒÏ× ÉÍÅÅÔ Ë ÐÌÁÔÆÏÒÍÏÚÁ×ÉÓÉÍÏÓÔÉ?

üÔÏ ÐÒÏÓÔÏ ÅÒÕÎÄÁ, ÎÅÔ ÔÁËÏÊ ÎÁÐÒÁ×ÌÅÎÎÏÓÔÉ.

÷ ÇÁÒ×ÁÒÄÏ×ÓËÏÊ (Ó ÒÁÚÄÅÌØÎÙÍ ÁÄÒÅÓÎÙÍ ÐÒÏÓÔÒÁÎÓÔ×ÏÍ ËÏÄÁ É ÄÁÎÎÙÈ) ÜÔÏ ×ÏÏÂÝÅ ÎÉËÁË ÎÅ ÄÅÌÁÅÔÓÑ, ÔÁËÏÊ ÐÒÏÃÅÓÓÏÒ ÐÒÏÓÔÏ ÎÅ ÕÍÅÅÔ ÉÓÐÏÌÎÑÔØ ËÏÄ ÉÚ ïúõ ÄÁÎÎÙÈ, × ÆÏÎ-ÎÅÊÍÁÎÏ×ÓËÏÊ ÎÅ ÄÅÌÁÅÔÓÑ ÓÒÅÄÓÔ×ÁÍÉ ó.

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

âÒÅÄ ËÁËÏÊ-ÔÏ. PLM-51 -ÐÒÁËÔÉÞÅÓËÉ ÁÓÓÅÍÂÌÅÒ, Á ËÏÍÁÎÄÙ ÒÁÂÏÔÙ Ó ÂÉÔÁÍÉ ÅÓÔØ × ÓÁÍÏÍ ÐÒÏÃÅÓÓÏÒÅ É ÁÔÏÍÁÒÎÙ. ôÏ ÖÅ ÂÕÄÅÔ É ÎÁ ó ÄÌÑ ÜÔÏÇÏ ÐÒÏÃÅÓÓÏÒÁ.

çÍ.

HÕ-ÎÕ...

ïÓÏÂÅÎÎÏ ÅÓÌÉ ÎÅ ÒÁÚÏÂÒÁÔØÓÑ Ó ÔÅÍ, Ó ÞÅÍ ÒÁÂÏÔÁÅÛØ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello Alexey.

13 Mar 05 21:42, Alexey V Bugrov wrote to Harry Zhurov:

AVB> õÖÁÓÔØ. ÷ÙÓÔÁ×ÌÅÎÉÅ ÓÅÍÁÆÏÒÁ - ÜÔÏ ÐÏ ÓÕÔÉ ÏÔÃÅÐÌÅÎÉÅ ×ÓÅÈ ÚÁÄÁÞ ÉÚ ÅÇÏ AVB> ÓÐÉÓËÁ ÏÖÉÄÁÎÉÑ É ÐÅÒÅÔÙËÁÎÉÅ ÉÈ × ÓÐÉÓÏË ×ÙÐÏÌÎÅÎÉÑ.

ôÏÌØËÏ ÎÅ ×ÓÅÈ, Á ÏÄÎÏÊ, ËÏÔÏpÁÑ ÎÁÉÂÏÌÅÅ ÐpÉÏÔÉÔÅÔÎÁÑ. ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

Hello Nickita.

13 Mar 05 15:11, Nickita A Startcev wrote to Andy Mozzhevilov:

AM>> ÐÅÒÅÄÁÔØ ÅÇÏ ÎÁÚÁÄ, ÐÒÉÞÅÍ ÓÒÁÚÕ, Ó ÍÉÎÉÍÁÌØÎÏÊ ÚÁÄÅÒÖËÏÊ. AM>> ëÁËÁÑ-ÔÏ ÂÏÌÅÅ ÉÌÉ ÍÅÎÅÅ ÄÏÌÇÁÑ ÏÂÒÁÂÏÔËÁ ÄÅÌÁÅÔÓÑ ÕÖÅ ×ÎÅ ÐÒÅÒÙ×ÁÎÉÊ, AM>> Á ÔÁÍ Õ ÔÅÂÑ ×ÙÞÉÓÌÉÔÅÌØÎÙ ÐÒÏÃÅÓÓ ÒÁÂÏÔÁÅÔ × ÄÁÎÎÙÊ ÍÏÍÅÎÔ. ëÁË ÅÇÏ AM>> ÐÒÅÒ×ÁÔØ, ÞÔÏÂÙ ÓÆÏÒÍÉÒÏ×ÁÔØ ÏÔ×ÅÔ ÄÌÑ ÐÅÒÅÄÁÞÉ ÐÏ UART?

NAS> úÁ×ÉÓÉÔ ÏÔ. åÓÌÉ uart "ÞÅÓÔÎÙÊ-ÂÕÆÅÒÉÚÏ×ÁÎÎÙÊ" ÔÏ ÍÏÖÎÏ É × ÏÂÒÁÂÏÔÞÉËÅ NAS> ÐÏÔÏÒÍÏÚÉÔØ. éÌÉ ÔÕÐÏ ÓÌÏÖÉÔØ × ÂÕÆÅÒ, Á × ÏÓÎÏ×ÎÏÍ ÃÉËÌÅ ÄÅÌÁÔØ NAS> "ÒÕÞÎÕÀ-ËÏÐÒÏÐÒÏÔÉ×ÎÕÀ" ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ.

÷ÏÔ ÜÔÏ É ÅÓÔØ pyÔÉÎÎÙÊ, ÎÅÉÎÔÅpÅÓÎÙÊ, pyÞÎÏÊ ÔpyÄ. ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

Hello Olga.

13 Mar 05 22:53, Olga Nonova wrote to Andy Mozzhevilov:

AM>> åÓÌÉ ÖÅ uC ÉÍÅÅÔ ÎÁ ÂÏÒÔÕ ÏÔ 2ë ïúõ, ÔÏ ×ÓÅ ÕÖÅ ÄÏÓÔÁÔÏÞÎÏ AM>> "ÐÒÁËÔÉÞÅÓËÉ".

ON> äÌÑ ÓÁÍÏÊ OS? ÷ÐÏÌÎÅ ×ÏÚÍÏÖÎÏ, ÎÏ ÎÅ ÄÌÑ Ó×ÑÚÎÙÈ ÚÁÄÁÞ, Ó ËÏÔÏÒÙÍÉ Ñ ÉÍÅÀ ON> ÄÅÌÏ.

ðÏ×ÔÏpÑÀ. HÁ MB90F457 Ó 2ë RAM ×ÐÏÌÎÅ ÓÅÂÅ ÍÏÖÅÔ ÖÉÔØ ïó É 4-5 ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÚÁÄÁÞ, _ÎÅ ÔpÅÂyÀÝÉÈ ÂÏÌØÛÉÈ ÂyÆÅpÏ×_

AM>> ÷ÏÏÂÝÅ ÍÙ ÐÒÏ embedded, Á × ÏÔÎÏÓÉÔÅÌØÎÏ ÍÅÌËÉÈ embedded - TCP/IP AM>> ÏÂÙÞÎÏ ÎÁÆÉÇ ÎÅ ÎÕÖÎÏ. ëÒÏÍÅ ÔÏÇÏ, ÅÓÌÉ ÎÁÄÏ, ÔÏ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ TCP/IP AM>> × ÄÏÓÔÁÔÏÞÎÏÍ ÄÌÑ ÒÁÂÏÔÙ ÏÂßÅÍÅ ÚÁ ×ÐÏÌÎÅ ÎÅÂÏÌØÛÕÀ ÐÌÁÔÕ (ÐÏ ÒÅÓÕÒÓÁÍ AM>> ïúõ/ðúõ). HÅÓËÏÌØËÏ ÌÅÔ ÎÁÚÁÄ Ñ ÒÅÁÌÉÚÏ×ÁÌ TCP/IP × ÏÂßÅÍÅ AM>> SLIP/IP/ICMP/UDP/TCP/Telnet ÎÁ È51, ×ÓÅ ÕÍÅÓÔÉÌÏÓØ ÐÒÉÍÅÒÎÏ × 25ë, AM>> ×ÍÅÓÔÅ Ó ÐÒÉËÌÁÄÎÏÊ ÞÁÓÔØÀ, ÎÁ óÉ ÅÓÓÎÏ.

ON> ÷ÙÈÏÄ ÎÁ ÆÉÚÉÞÅÓËÉÊ ÕÒÏ×ÅÎØ ËÁËÉÍ ÂÙÌ?

UART, RS232

ON> óËÏÒÏÓÔØ ÏÂÍÅÎÁ?

9600

ON> HÁ ÄÒÕÇÏÊ ÓÔÏÒÏÎÅ ËÁÎÁÌÁ ÔÏÖÅ ËÔÏ-ÔÏ ÐÉÓÁÌ ÐÒÏÇÒÁÍÍÙ ÏÂÍÅÎÁ ÐÏ ON> TCP/IP?

ôÁÍ CISCO ÂÙÌÁ, ÉÌÉ ÌÀÂÏÊ ÄpyÇÏÊ pÏyÔÅp, ÈÏÔØ ÎÁ ÂÁÚÅ NT.

ON> éÌÉ ÄÏÓÔÁÔÏÞÎÏ ÂÙÌÏ ÏÐÅÒÁÔÏÒÕ ×ÒÕÞÎÕÀ ÄÏÌÂÉÔØ ÓÔÒÏËÉ × ÏËÎÅ Telnet?

ôÅÌÎÅÔ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ËÁË pÁÚ ÄÌÑ "ÐÏÓÍÏÔpÅÔØ ÓÔÁÔÉÓÔÉËy". óÁÍÏ yÓÔpÏÊÓÔ×Ï ÚÁÎÉÍÁÌÏÓØ Ó×ÏÉÍÉ ÚÁÄÁÞÁÍÉ, Ó ÐÅpÅÄÁÞÅÊ ÄÁÎÎÙÈ ÐÏ ip/udp ÎÁ ÚÁÄÁÎÎÙÊ ÓÏËÅÔ.

ON> ÷ÏÐÒÏÓÏ× ÓÒÁÚÕ ×ÏÚÎÉËÁÅÔÏÞÅÎØ ÍÎÏÇÏ É, ÎÅ ÚÎÁÑ ÏÔ×ÅÔÏ×, ÏÞÅÎØ ÔÒÕÄÎÏ ON> ÓÕÄÉÔØ Ï ÓÌÏÖÎÏÓÔÉÚÁÄÁÞÉ.

ðÏÞÅÍy ×ÓÅ ÓpÁÚy ÎÁÞÉÎÁÀÔ ÐpÏ ËÁËyÀ-ÔÏ ÓÌÏÖÎÏÓÔØ ÇÏ×ÏpÉÔØ? äÁ ÎÅ ÓÌÏÖÎÁÑ ÚÁÄÁÞÁ, ×ÐÏÌÎÅ ÏÂÙÞÎÁÑ.

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

üÔÏ ÎÅÉÎÔÅpÅÓÎÏ, ÓÌÉÛËÏÍ ÓÐÅÃÉÆÉÞÎÏ, Á ÐÏpÏÊ ÎÅ ×ÙÇÏÄÎÏ ÐÏÌÎÏÓÔØÀ ÏÔËpÙ×ÁÔØ ËÁpÔÙ.

ON> ðÏÜÔÏÍÕ ÍÏÖÎÏ ÓÐÏÒÉÔØ Ï ÃÅÌÅÓÏÏÂÒÁÚÎÏÓÔÉ RTOS × ÍÅÌËÉÈ ON> ÏÄÎÏËÒÉÓÔÁÌÌËÁÈ ÄÏ ÂÅÓËÏÎÅÞÎÏÓÔÉ É ÎÅ ÐÒÉÄÔÉ Ë ÅÄÉÎÏÍÕ ÍÎÅÎÉÀ.

á ÎÅ ÎÁÄÏ ÓÐÏpÉÔØ, ÎÁÄÏ ÓÎÁÞÁÌÁ ÐpÏÂÏ×ÁÔØ, Á ÐÏÔÏÍ yÖÅ ÏÂÓyÖÄÁÔØ.

AM>> á ÅÓÌÉ ÎÁÄÏ ÂÏÌÅÅ ÉÌÉ ÍÅÎÅÅ ÐÏÌÎÏÃÅÎÎÙÊ TCP/IP, ÔÏ ×ÎÅÛÎÀÀ ÐÁÍÑÔØ AM>> ÐÒÉÄÅÔÓÑ ÓÔÁ×ÉÔØ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÎÁÌÉÞÉÑ ïó.

ON> ÷ÏÔ ÉÍÅÎÎÏ! äÌÑ Ó×ÑÚÎÙÈ ÚÁÄÁÞ ÎÕÖÎÙ ÂÕÆÅÒÙ ÏÂÍÅÎÁ ×ÎÕÛÉÔÅÌØÎÙÈ ÒÁÚÍÅÒÏ×.

ôÏÇÄÁ ÐpÉÞÅÍ ÚÄÅÓØ ïó? ôpÅÂÏ×ÁÎÉÑ Ë ÐÁÍÑÔÉ - ÜÔÏ ÎÅ ÔpÅÂÏ×ÁÎÉÅ ïó Ë ÎÅÊ, Á ÔpÅÂÏ×ÁÎÉÅ ËÏÎËpÅÔÎÏÇÏ ÐpÉÌÏÖÅÎÉÑ. ðÏÓËÏÌØËy ÔÏÞÎÏ ÔÁËÉÅ ÖÅ ÂyÆÅpÙ ÂyÄyÔ ÏpÇÁÎÉÚÏ×ÁÎÙ É ÂÅÚ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ïó, ÔÏÌØËÏ Ó ÂïÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ pyÞÎÏÊ É pyÔÉÎÎÏÊ pÁÂÏÔÙ.

ON>>> ÷ ÐÒÉ×ÅÄÅÎÎÏÍ ×ÙÛÅ ÐÒÉÍÅÒÅ ethernut ËÁË ÒÁÚ É ÂÙÌÏ ÒÅÁÌÉÚÏ×ÁÎÏ ON>>> "×ÓÅ". é ÞÔÏ ×ÙÛÌÏ ÎÁ ÐÒÁËÔÉËÅ?

AM>> ñ ethernut ÎÅ ×ÉÄÅÌ, Ñ ÐÏÌØÚÕÀ ucos, ÐÒÏÂÌÅÍ × ÒÅÓÕÒÓÁÈ ÎÅ ÉÓÐÙÔÙ×ÁÀ. AM>> ïó ÍÁÓÛÔÁÂÉÒÕÅÍÁÑ. ñÄÒÏ ïó ×ÌÁÚÉÔ ÇÄÅ-ÔÏ × 3-4ë, ïúõ ÎÁ ÎÕÖÎÙ ïó AM>> ÔÒÅÂÕÅÔÓÑ ÇÄÅ-ÔÏ ÂÁÊÔ 300.

ON> òÁÄÁ ÚÁ ×ÁÓ. ðÏ×ÅÚÌÏ. äÒÕÇÉÍ ÎÅ ÓÔÏÌØ ×ÅÚÅÔ Ó ÚÁÄÁÞÁÍÉ.

ðÏÄ ÚÁÄÁÞy ÎyÖÎÏ ×ÙÂÉpÁÔØ ÓÏÏÔ×ÅÔÓÔ×yÀÝÉÊ uC É ÉÎÓÔpyÍÅÎÔ. ôÁÍ ÇÄÅ ÎÁÄÏ, y ÍÅÎÑ ÓÔÏÉÔ ×ÎÅÛÎÑÑ ÐÁÍÑÔØ ÎÁ 256ë, ÎÏ Ñ ÖÅ ÎÅ ÇÏ×ÏpÀ, ÞÔÏ ÏÎÁ ÓÔÏÉÔ ÉÚ-ÚÁ ÎÁÌÉÞÉÑ ïó. úÁÄÁÞÁ ÔpÅÂyÅÔ ÈpÁÎÅÎÉÑ É ÂyÆÅpÉÚÁÃÉÉ ÔÁËÉÈ ÏÂßÅÍÏ× ÄÁÎÎÙÈ. á ïó ËyÛÁÅÔ ÄÏÌÉ ÐpÏÃÅÎÔÏ×.

ON>>> HÁÐÒÉÍÅÒ, ÓÅÊÞÁÓ ÍÏÄÎÙ WEB-ÓÅÒ×ÅÒÁ Ó ×ÏÚÍÏÖÎÙÍ ÐÏÄËÌÀÞÅÎÉÅÍ ËÌÉÅÎÔÏ× ON>>> ÂÏÌÅÅ, ÞÅÍ ÏÄÉÎ.

AM>> ðÒÉÞÅÍ ÚÄÅÓØ ÍÏÄÁ? ïÂÑÞÎÏ ËÏÎËÒÅÔÎÙÅ ÚÁÄÁÞÉ ÒÅÛÁÀÔÓÑ, Á AM>> ÎÁÓÔÒÏÊËÁ/ÕÐÒÁ×ÌÅÎÉÅ ÕÓÔÒÏÊÓÔ×ÏÍ ÎÁ uC ÞÅÒÅÚ web - ÄÅÊÓÔ×ÉÔÅÌØÎÏ, ÂÙÌÁ AM>> ÔÁËÁÑ ÍÏÄÁ ÇÏÄÁ 3-4 ÎÁÚÁÄ. AM>> HÏ ÏÎÁ ÐÒÏÛÌÁ, ËÁË É ×ÓÑËÁÑ ÄÒÕÇÁÑ ÍÏÄÁ, ÐÏÓËÏÌØËÕ ÚÁÄÁÞÁ ÎÁÂÏÌØÛÏÇÏ AM>> uC - ÜÔÏ ×ÓÅ ÔÁËÉ ÎÅ web -ÓÅÒ×ÅÒÁ, Á ÕÐÒÁ×ÌÅÎÉÅ ÞÅÍ-ÌÉÂÏ.

ON> íÏÄÁ ÎÅ ÐÒÏÛÌÁ. á ÎÁÏÂÏÒÏÔ- ÐÏÛÌÁ ÎÁ ×ÔÏÒÏÊ ×ÉÔÏË. éÍÅÎÎÏ ÕÐÒÁ×ÌÑÔØ ON> ÄÉÓÔÁÎÃÉÏÎÎÏ ÞÅÒÅÚ ÓÔÁÎÄÁÒÔÎÙÅ ÓÒÅÄÓÔ×Á Ethernet ÓÔÁÎÏ×ÉÔÓÑ ×ÓÅ ÂÏÌÅÅ É ON> ÂÏÌÅÅ ÍÏÄÎÙÍ. õÖÅ ÈÏÌÏÄÉÌØÎÉË ÓÁÍ ÚÁËÁÚÙ×ÁÅÔ ÐÒÏÄÕËÔÙ ÐÏ éÎÔÅÒÎÅÔÕ,

åÓÔØ ARM ÐÏ ÍÏÅÍy ÄÁÖÅ Ó ethernet phy ÎÁ ÂÏpÔy. åÓÔØ ×ÎÅÛÎÉÅ ÍÏÄyÌÉ- ËÏÎ×ÅpÔÅpÙ × ethernet Ó ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÍ, ÐÁpÁÌÌÅÌØÎÙÍ ÉÎÔÅpÆÅÊÓÏÍ. üÔÏ ÅÓÌÉ ÃÅÎÁ ÎÅ ËpÉÔÉÞÎÁ É/ÉÌÉ ÎÅ ÈÏÞÅÔÓÑ ×ÏÚÉÔØÓÑ Ó ÓÏÂÓÔ×ÅÎÎÏÊ pÅÁÌÉÚÁÃÉÅÊ.

ON> ÓÔÉÒÁÌØÎÙÅ ÍÁÛÉÎËÉ ÚÁÐÕÓËÁÀÔÓÑ ÎÅ ×ÓÔÁ×ÁÑ Ó ÄÉ×ÁÎÁ,

á ÂÅÌØÅ ËÔÏ ÚÁÇpyÖÁÅÔ?

ON> ÒÅÖÉÍÙ ÐÒÉÇÏÔÏ×ÌÅÎÉÑ ÍÉËÒÏ×ÏÌÎÏ×ÏË ÕÓÔÁÎÁ×ÌÉ×ÁÀÔ ÉÚ ËÒÁÓÏÞÎÏÇÏ ÍÅÎÀ × ON> ÏËÎÅ ÂÒÏÕÚÅÒÁ.

á ÔÁpÅÌËy Ó ÓyÐÏÍ × ÎÅÅ ËÔÏ ÓÔÁ×ÉÔ?

ON> ÷ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ ÒÁÓÐÒÅÄÅÌÅÎÎÙÅ ËÏÎÔÒÏÌÌÅÒÙ ÐÅÒÅ×ÏÄÑÔ × ÒÅÖÉÍ ON> WEB-ÓÅÒ×ÅÒÏ×, ÞÔÏÂÙ ÏÎÉ ÓÁÍÉ ÄÉÓÔÁÎÃÉÏÎÎÏ ÐÒÏÒÉÓÏ×Ù×ÁÌÉ ÓÅÂÑ ÎÁ ON> ÜËÒÁÎÅ ÄÉÓÐÅÔÞÅÒÁ,

üÔÏ ÅÝÅ ÂÏÌÅÅ ÉÌÉ ÍÅÎÅÅ ÏÐpÁ×ÄÁÎÎÏÅ ÐpÉÍÅÎÅÎÉÅ web ÔÅÈÎÏÌÏÇÉÊ. HÏ ÜÔÉ ËÏÎÔpÏÌÌÅpÙ pÅÁÌÉÚyÀÔÓÑ ÄÁÌÅËÏ ÎÅ ÎÁ AVR Ó 2ë RAM.

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

åÝÅ pÁÚ - ÐpÉÍÅp ÂÙÌ ÐpÉ×ÅÄÅÎ ÓÐÅÃÉÁÌØÎÏ yÐpÏÝÅÎÎÙÊ. HÅ ÎÁÄÏ ×ÏÐpÉÎÉÍÁÔØ ×ÓÅ ÂyË×ÁÌØÎÏ. óËÁÎÉpÏ×ÁÎÉÅ ËÌÁ×ÉÁÔypÙ - ÜÔÏ ËÁË ÐpÁ×ÉÌÏ ÏÄÎÁ ÉÚ ÍÁÌÅÎØËÉÈ ÚÁÄÁÞ, ËÏÔÏpÏÊ ×ÏÏÂÝÅ ÍÏÖÅÔ É ÎÅ ÂÙÔØ.

ON>>> ×ÓÅ. âÅÒÅÛØ ÕÒÅÚÁÎÎÕÀ RTOS, Á ÔÁÍ ÎÉËÁËÉÈ- Queue É FiFo ÎÁ ÓÏÏÂÝÅÎÉÑ ON>>> ÎÅÔ. þÔÏ ÄÅÌÁÔØ?

AM>> óÔÁ×ÉÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ uC, ÐÏÔÏÍÕ ÞÔÏ ÎÁ ÍÅÌËÉÈ uC ÔÁËÉÅ ÚÁÄÁÞÉ ÎÅ AM>> ÒÅÛÁÀÔÓÑ ÎÉ Ó ïó, ÎÉ ÂÅÚ ÎÉÈ. ïó ÔÒÅÂÕÅÔ ÏÔÎÏÓÉÔÅÌØÎÏ ÍÁÌÏ ÒÅÓÕÒÓÏ×, AM>> ÅÓÌÉ ÜÔÏ ÉÍÅÎÎÏ ÔÏ ËÏÌÉÞÅÓÔ×Ï ÒÅÓÕÒÓÏ×, ËÏÔÏÒÏÇÏ ÎÁÈ×ÁÔÁÅÔ ÄÌÑ AM>> ÒÅÁÌÉÚÁÃÉÉ ÚÁÄÁÞÉ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ïó, ÚÎÁÞÉÔ uC ×ÙÂÒÁÎ ÎÅ×ÅÒÎÏ, AM>> ÓÌÅÄÏ×ÁÔÅÌØÎÏ ÔÏÞÎÏ ÔÁËÖÅ ÜÔÉ ÒÅÓÕÒÓÙ ÍÏÇÕÔ ÚÁËÏÎÞÉÔØÓÑ É ÂÅÚ AM>> ÉÓÐÏÌØÚÏ×ÁÎÉÑ ïó.

ON> ÷ÓÅ ÜÔÏ ÐÒÁ×ÉÌØÎÏ. HÏ, ÐÏÓÔÅÐÅÎÎÏ ÍÙ ÔÁË ÏÔÈÏÄÉÍ ÏÔ ÉÚÎÁÞÁÌØÎÏÊ ÍÅÞÔÙ- ×ÓÅ ON> ÕÐÉÈÁÔØ × ÍÅÌËÕÀ ÏÄÎÏËÒÉÓÔÁÌÌËÕ ÚÁ ÓÞÅÔ ÖÕÔËÏÊ ÜËÏÎÏÍÉÉ ÂÁÊÔÏ× É ÂÉÔÏ×.

üËÏÎÏÍÉÑ ×ÁÖÎÁ × pÁÚyÍÎÙÈ ÐpÅÄÅÌÁÈ, × ÐpÏÔÉ×ÎÏÍ ÓÌyÞÁÅ ÏÎÁ ÐÅpÅpÁÓÔÁÅÔ × ÐÉËÏÍÁÎÓÔ×Ï.

ON> ÷ÅÄØ, ÉÍÅÎÎÏ ÜÔÁ ÉÄÅÑ ÌÅÖÉÔ × ÓÎÏ×Å ÏÐÅÒÁÃÉÏÎËÉ Harry.

HÅÌØÚÑ yÐÉÈÁÔØ ÂyÆÅp ÄÌÑ TCP × 10ë × ÏÚy uC Ó 4K. é ÜÔÏ ÎÅ ×ÉÎÁ ïó.

AM>> äÅÌÏ × ÔÏÍ, ÞÔÏ Ñ (É ÍÎÏÇÉÅ ÚÄÅÓØ) ÐÒÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÀÔ ×ÙÔÅÓÎÑÀÝÕÀ AM>> ïó × ÍÅÌËÉÈ ËÏÎÔÒÏÌÌÅÒÁÈ. ðÒÁ×ÄÁ, ÍÎÅ ÎÅ ÎÁÄÏ TCP/IP. íÏÖÅÔ ÓÔÏÉÔ AM>> ÐÒÏÓÔÏ ÚÁÄÕÍÁÔØÓÑ - ÞÔÏ ÅÓÌÉ ÌÀÄÉ ÐÏÌØÚÕÀÔ, ÚÎÁÞÉÔ ÜÔÏ ÒÁÂÏÔÁÅÔ?

ON> ðÏ×ÔÏÒÑÀ, ÒÁÄÁ ÚÁ ×ÁÓ. ðÏ×ÅÚÌÏ Ó ÐÒÏÓÔÙÍÉ ÚÁÄÁÞÁÍÉ.

ïÊ... ëÏÇÏ ÔÏ ÍÎÅ ÜÔÏ ÎÁÐÏÍÉÎÁÅÔ. Hy ÐÏÞÅÍy ×ÄpyÇ ÔÁËÏÅ ÍÎÅÎÉÅ - ÞÔÏ ÚÁÄÁÞÉ ÐpÏÓÔÙÅ? éÚ-ÚÁ ÏÄÎÏÇÏ ÐpÉ×ÅÄÅÎÎÏÇÏ ÐpÉÍÅpÁ? ñ ÎÅ ÓÞÉÔÁÀ Ó×ÏÉ ÚÁÄÁÞÉ ÓyÐÅp-ÓÌÏÖÎÙÍÉ, ÎÏ É ÐpÏÓÔÙÍÉ ÉÈ ÎÁÚ×ÁÔØ ÎÅ ÍÏÇy.

ON>>> ÒÅÁÌÉÚÕÅÔÓÑ ÔÏÌØËÏ × RAM. á ÎÅÊÍÁÎÏ×ÓËÁÑ ÁÒÈÉÔÅËÔÕÒÁ ÜÆÆÅËÔÉ×ÎÁ ON>>> ÎÁÏÂÏÒÏÔ- ÄÌÑ ÓÔÁÔÉÞÅÓËÉÈ ÏÂØÅËÔÏ×, ËÏÇÄÁ ËÏÄÙ ÒÁÚ É ÎÁ×ÓÅÇÄÁ ON>>> ÎÁÐÉÓÁÎÙ É ÒÁÚÍÅÝÅÎÙ × ROM.

AM>> åÒÕÎÄÁ ËÁËÁÑ, ÞÅÓ ÓÌÏ×Ï.

ON> üÍÏÃÉÉ.

AVR - ÜÔÏ ËÓÔÁÔÉ ÇÁp×ÁpÄ.

ON>>> úÄÅÓØ óÉ ON>>> ÒÁÂÏÔÁÅÔ, ÎÁ ÍÏÊ ×ÚÇÌÑÄ, ÎÅÜÆÆÅËÔÉ×ÎÏ. HÁÐÒÉÍÅÒ, ÄÌÑ ÒÁÂÏÔÙ ÓÏ ON>>> ÓÔÒÏËÏÊ CONST ËÏÍÐÉÌÑÔÏÒ ÓÎÁÞÁÌÁ ËÏÐÉÒÕÀÔ ÅÅ ÉÚ Flash × SRAM. úÁÞÅÍ? ON>>> á ÐÏÔÏÍÕ, ÞÔÏ ÔÁË ÐÒÉÎÑÔÏ × ÑÚÙËÅ CÉ- ÒÁÂÏÔÁÔØ Ó ÏÂØÅËÔÁÍÉ ÔÏÌØËÏ × ON>>> ïúõ. ïÓÎÏ×ÏÐÏÌÁÇÁÀÝÉÊ ÍÏÍÅÎÔ ÇÁÒ×ÁÒÄÓËÏÊ ÁÒÈÉÔÅËÔÕÒÙ. éÓÐÏÌØÚÏ×ÁÔØ ON>>> RTOS, ÎÁÐÉÓÁÎÎÕÀ ÎÁ óÉ, ÄÌÑ ÓÉÓÔÅÍ Ó ÎÅÊÍÁÎÏ×ÓËÏÊ ÁÒÈÉÔÅËÔÕÒÏÊ, ÎÁ ON>>> ÍÏÊ ×ÚÇÌÑÄ ÐÏÒÏÞÎÏÅ ÚÁÎÑÔÉÅ.

AM>> ÷ ÏÂÝÅÍ, ÜÔÏ ÇÄÅ-ÔÏ ×ÓÅ ÎÁ ÕÒÏ×ÎÅ ÉÎÔÕÉÃÉÉ, ×ÉÔÁÀÝÉÈ ×ÏËÒÕÇ ÍÙÓÌÅÊ, AM>> ÐÏÒÏÖÄÅÎÎÙÈ ÎÅÕÄÁÞÎÙÍ ÏÐÙÔÏÍ ÐÒÉÍÅÎÅÎÉÑ óÉ.

ON> HÕ ÇÄÅ ÖÅ ÔÕÔ ÉÎÔÕÉÃÉÑ, ËÏÇÄÁ Ñ ÌÉÞÎÏ ÎÁÂÌÀÄÁÌÁ × ÄÉÚÁÓÓÅÍ,ÌÅÒÅ, ËÁË óÉ ON> ËÏÍÐÉÌÑÔÏÒ ËÏÐÉÒÕÅÔ ÉÚ Flash × SRAM ËÏÎÓÔÁÎÔÙ? úÁÞÅÍ? íÏÖÅÔÅ ÏÂØÑÓÎÉÔØ?

HÁÓËÏÌØËÏ Ñ ÐÏÍÎÀ, ÜÔÏ ÔpÅÂÏ×ÁÎÉÅ ÓÔÁÎÄÁpÔÁ. åÝÅ pÁÚ ÐÏ×ÔÏpÀ, RTFM. åÓÔØ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï __flash, ËÏÔÏpÏÅ ÚÁÐpÅÝÁÅÔ ËÏÍÐÉÌÑÔÏpy ÜÔÏ ÄÅÌÁÔØ. ÷ÓÅ ËÏÍÐÉÌÑÔÏpÙ ÄÌÑ uC ÉÍÅÀ ÔÅ ÉÌÉ ÉÎÙÅ pÁÓÛÉpÅÎÉÑ óÉ ÄÌÑ ÄÏÓÔÉÖÅÎÉÑ ÂÏÌÅÅ ÏÐÔÉÍÁÌØÎÙÈ pÅÚyÌØÔÁÔÏ×. ðÏÜÔÏÍy ÐpÉ ÉÚyÞÅÎÉÉ ÏÞÅpÅÄÎÏÇÏ ËÏÍÐÉÌÑÔÏpÁ pÅËÏÍÅÎÄyÅÔÓÑ ÏÂÑÚÁÔÅÌØÎÏ ÚÁÇÌÑÎyÔØ × pÁÚÄÅÌ ÄÏËyÍÅÎÔÁÃÉÉ "language extention".

AM>> ëÒÁÔËÏ: AM>> äÌÑ óÉ ÇÁÒ×ÁÒÄ ÉÌÉ ÎÅÊÍÁÎ, ÁÂÓÏÌÀÔÎÏ ÐÏÆÉÇ. AM>> äÌÑ óÉ ×ÁÖÎÅÅ, ÞÔÏÂÙ ÓÉÓÔÅÍÁ ËÏÍÁÎÄ ÐÒÏÃÅÓÓÏÒÁ ×ËÌÀÞÁÌÁ ÔÅ ËÏÍÁÎÄÙ, AM>> ËÏÔÏÒÙÅ ÎÕÖÎÙ óÉ ÄÌÑ ÐÏÓÔÒÏÅÎÉÑ ÏÐÔÉÍÁÌØÎÏÇÏ ËÏÄÁ. üÔÏ ËÏÍÁÎÄÙ AM>> ËÏÓ×ÅÎÎÏÊ ÁÄÒÅÓÁÃÉÉ ÐÁÍÑÔÉ ÓÏ ÓÍÅÝÅÎÉÅÍ. ïÎÉ ÐÏÚ×ÏÌÑÀÔ ÐÒÏÓÔÏ AM>> ÁÄÒÅÓÏ×ÁÔØ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ É ÐÁÒÁÍÅÔÒÙ ÆÕÎËÃÉÊ, ÐÅÒÅÄÁÎÎÙÅ ÞÅÒÅÚ AM>> ÓÔÅË, ÉÍÅÑ ÏÄÉÎ ÕËÁÚÁÔÅÌØ É ÕËÁÚÙ×ÁÑ ÓÍÅÝÅÎÉÑ, ÎÉÞÅÇÏ ÎÅ ×ÙÞÉÓÌÑÑ AM>> ÄÏÐÏÌÎÉÔÅÌØÎÏ × ÒÁÎÔÁÊÍÅ. HÁÌÉÞÉÅ ÜÔÉÈ ËÏÍÁÎÄ ÎÉËÁË ÎÅ Ó×ÑÚÁÎÏ Ó ÔÉÐÏÍ AM>> ÁÒÈÉÔÅËÔÕÒÙ uC.

ON> üÔÏ ×ÓÅ × ËÌÁÓÓÉÞÅÓËÏÊ ÔÅÏÒÉÉ. HÁ ÐÒÁËÔÉËÅ ÖÅ óÉ ËÏÍÐÉÌÑÔÏÒÙ ÄÌÑ AVR ON> ÎÁÞÉÎÁÀÔ ÐÏÌØÚÏ×ÁÔØÓÑ ÓÔÅËÏÍ ÄÌÑ ÐÅÒÅÄÁÞÉ ÆÏÒÍÁÌØÎÙÈ ÐÁÒÁÍÅÔÒÏ× × ON> ÐÒÏÃÅÄÕÒÙ, ÔÏÌØËÏ ËÏÇÄÁ ÉÓÞÅÒÐÁÎ ÚÁÐÁÓ ÒÁÂÏÞÉÈ ÒÅÇÉÓÔÒÏ× R16...R23.

üÔÏ ÐÏpÁÂÏÔÁÌÉ pÁÚpÁÂÏÔÞÉËÉ ËÏÍÐÉÌÑÔÏpÁ, ÏÐÔÉÍÉÚÉpÏ×Á× ÔÁËÉÍ ÏÂpÁÚÏÍ ÓÏÇÌÁÛÅÎÉÅ Ï ×ÙÚÏ×ÁÈ. üÔÏ ÌyÞÛÅ, ÂÙÓÔpÅÅ, ÞÅÍ ÐÅpÅÄÁÞÁ ÞÅpÅÚ ÓÔÅË, ÎÏ ÉÍÅÅÔ ÏÇpÁÎÉÞÅÎÉÅ ÎÁ ËÏÌÉÞÅÓÔ×Ï ÐÁpÁÍÅÔpÏ×. HÁ ÍÅÌËÉÈ uC ÔÁËÁÑ ÏÐÔÉÍÉÚÁÃÉÑ ×ÓÔpÅÞÁÅÔÓÑ ÞÁÓÔÏ. åÓÌÉ ÅÅ pÅÓypÓ ÚÁËÁÎÞÉ×ÁÅÔÓÑ, ÔÏ ÎÁÞÉÎÁÀÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÄpyÇÉÅ ÍÅÔÏÄÙ. ïÎÉ ÍÏÇyÔ pÅÁÌÉÚÏ×ÁÔØÓÑ ÌÅÇËÏ ÉÌÉ ÓÌÏÖÎÏ, × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÓÉÓÔÅÍÙ ËÏÍÁÎÄ ÐpÏÃÅÓÓÏpÁ.

ON> äÌÑ ÓÔÅËÁ ÄÁÎÎÙÈ ÉÓÐÏÌØÚÕÅÔÓÑ ÔÏÌØËÏ ÒÅÇÉÓÔÒÙ YL,YH. é ÜÔÏ ×Ù ON> ÎÁÚÙ×ÁÔÅ ÐÌÁÔÆÏÒÍÏÎÅÚÁ×ÉÓÉÍÙÍÙÍ ÒÅÛÅÎÉÅÍ?

Ñ × ÁyÔÅ... YL YH (ÉÌÉ ÓÏÏÔ×ÅÔÓÔ×yÀÝÁÑ ÐÁpÁ pÅÇÉÓÔpÏ×) - ÜÔÏ ËÏÎËpÔÅÎÁÑ ÐpÉÎÁÄÌÅÖÎÏÔØ AVR, ÅÇÏ ÍÏÄÅÌÉ CPU. ï ËÁËÏÊ ÐÌÁÔÆÏpÍÏÎÅÚÁ×ÉÓÉÍÏÓÔÉ ÍÏÖÅÔ ×ÏÏÂÝÅ ÉÄÔÉ pÅÞØ ÎÁ ÜÔÏÍ ypÏ×ÎÅ, ÅÓÌÉ ÜÔÏÔ ËÏÄ ÐpÅÄÎÁÚÎÁÞÅÎ _yÖÅ_ÄÌÑ_ËÏÎËpÔÅÎÏÊ_ÐÌÁÔÆÏpÍÙ_?

ON> é ÐÏÔÏÍ, Ñ ÅÝÅ ÒÁÚ ÏÂÒÁÝÁÀ ×ÎÉÍÁÎÉÅ ÎÁ ÇÌÁ×ÎÕÀ ÎÁÐÒÁ×ÌÅÎÎÏÓÔØ ÑÚÙËÏ× ON> óÉ É C++ - ÜÔÏ ÒÁÂÏÔÁ Ó ÄÉÎÁÍÉÞÅÓËÉ ÒÁÚÍÅÝÁÅÍÙÍÉ ÏÂØÅËÔÁÍÉ ON> (ËÌÁÓÓÁÍÉ), ËÏÔÏÒÙÅ ÍÏÇÕÔ ÒÁÓÐÏÌÁÇÁÔØÓÑ ÔÏÌØËÏ × ON> ïúõ.

òÁÂÏÔÁ Ó yËÁÚÁÔÅÌÑÍÉ - ÓÉÌØÎÁÑ ÓÔÏpÏÎÁ óÉ, ÎÏ ÉÚ ÜÔÏÇÏ ÎÅ ÓÌÅÄyÅÔ, ÞÔÏ ÏÂßÅËÔÙ ÄÏÌÖÎÙ ÂÙÔØ ÏÂÑÚÁÔÅÌØÎÏ ÄÉÎÁÍÉÞÅÓËÉÍÉ É ÏÂÑÚÁÔÅÌØÎÏ × ïúõ.

ON> ðÏÐÒÏÂÕÊÔÅ ÓÒÅÄÓÔ×ÁÍÉ ËÏÍÐÉÌÑÔÏÒÁ CÉ × ÎÅÊÍÁÎÏ×ÓËÏÊ ÁÒÈÉÔÅËÔÕÒÅ ON> ÓÏÚÄÁÔØ × SRAM ÐÒÏÇÒÁÍÍÎÙÊ ËÏÄ É ÏÔÄÁÔØ ÕÐÒÁ×ÌÅÎÉÅ ÅÍÕ. ÷ ÇÁÒ×ÁÒÄÓËÏÊ ON> ÖÅ ÔÁËÏÅ ÄÅÌÁÅÔÓÑ ÏÄÎÉÍ Ä×ÉÖÅÎÉÅÍ.

  1. õ×ÁÖÁÅÍÁÑ, ×Ù ÐyÔÁÅÔÅ 2 ÁpÈÉÔÅËÔypÙ, ×ÓÅ Ó ÔÏÞÎÏÓÔØÀ ÄÏ ÎÁÏÂÏpÏÔ.
  2. ðÏÔÏÍ, ËÁÓÁÔÅÌØÎÏ embedded ×ÙÐÏÌÎÅÎÉÅ ËÏÄÁ ÉÚ RAM ÉÎÏÇÄÁ ÎyÖÎÏ, ÎÏ ÜÔÏ ÄÏÓÔÁÔÏÞÎÏ pÅÄËÏ. HÏ ÅÓÌÉ ÎyÖÎÏ, ÔÏ ÜÔÏ ÄÅÌÁÅÔÓÑ ÂÅÚ ÏÓÏÂÙÈ ÐpÏÂÌÅÍ. üÔÏÔ ËÏÄ ÌÅÖÉÔ ÇÄÅ-ÎÉÂyÄØ ×Ï FLASH, × ÓÔÁpÔÁÐÅ ËÏÐÉpyÅÔÓÑ × ïúõ ÎÁ ÎyÖÎÙÊ ÁÄpÅÓ. ÷ óÉ ÜÔÏ ×ÙÇÌÑÄÉÔ, ËÁË ÏÂÙÞÎÙÊ ×ÙÚÏ× ÆyÎËÃÉÉ, ÎÉÞÅÍ ÐÏ ×ÎÅÛÎÅÍy ×ÉÄy ÎÅ ÏÔÌÉÞÁÀÝÉÊÓÑ ÏÔ ÄpyÇÉÈ.
  3. åÓÌÉ ÓÉÓÔÅÍÁ ÔÁËÁÑ, ÞÔÏ ÔpÅÂyÅÔ ÐÏÓÔÏÑÎÎÏÊ ÚÁÇpyÚËÉ ËÁËÉÈ-ÔÏ ÐpÏÃÅÓÓÏ× × RAM É ×ÙÐÏÌÎÅÎÉÅ ÚÁÐyÓËÁ ÉÈ ÔÁÍ, ÔÏ ÜÔÏ ÎÅ ÓÏ×ÓÅÍ embedded, ÐÏÌØÛÅ ÐÏÈÏÖÅ ÎÁ PDA ÉÌÉ desktop.

AM>> RTFM. ôÁÍ ÅÓÔØ ×ÏÌÛÅÂÎÙÊ ÁÔÒÉÂÕÔ, ÐÏ ÍÏÅÍÕ __flash AM>> òÁÓÛÉÒÅÎÉÅ ANSI C ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÏÐÔÉÍÁÌØÎÏÇÏ ËÏÄÁ ÎÁ ÍÅÌËÉÈ AM>> ÐÒÏÃÅÓÓÏÒÁÈ.

ON> ðÒÏÂÏ×ÁÌÁ Ñ É ÁÔÔÒÉÂÕÔ FLASH. âÉÂÌÉÏÔÅËÁ ÒÁÂÏÔÙ Ó ÔÁËÉÍÉ ÏÂØÅËÔÁÍÉ ON> ÓÏÄÅÒÖÁÌÁ ÉÓËÌÀÞÉÔÅÌØÎÏ ÐÏÄÐÒÏÇÒÁÍÍÙ ËÏÐÉÒÏ×ÁÎÉÑ ÉÚ Flash × SRAM. éÎÙÍÉ ON> ÓÌÏ×ÁÍÉ- "ÛÉÌÏ ÎÁ ÍÙÌÏ".

þÔÏ-ÔÏ ÎÅ ÔÏ ÉÌÉ ÎÅ ÔÁË ÚÎÁÞÉÔ ÐpÏÂÏ×ÁÌÁ. HÁÄÏ ÂÙÌÏ ÓÔÐpÏÓÉÔØ y ËÏÇÏ-ÎÉÂyÄØ, ÈÏÔØ ÎÁ ÔÅÌÅÓÉÓÔÅÍÁÈ, Á ÎÅ ×ÁpÉÔØÓÑ × ÓÏÂÓÔÅÎÎÏÍ ÓÏËy. ñ Ó AVR ÄÁ×ÎÏ ÎÅ pÁÂÏÔÁÌ, ÐÏÜÔÏÍy ÎÅ ÍÏÇy ÓÅÊÞÁÓ "ÎÁ pÁÚ" ÎÁÐÉÓÁÔØ, ËÁË ÂyÄÅÔ ÐpÁ×ÉÌØÎÏ, ÎÏ ÄyÍÁÀ ËÏÍy-ÌÉÂÏ ÚÄÅÓØ ÜÔÏ ÎÅ ÓÏÓÔÁ×ÉÔ ÔpyÄÁ ÄÁÔØ ÜÔÉ ÐÏÑÓÎÅÎÉÑ.

ON> ñ ÐÒÁ×ÄÁ ÓÌÙÛÁÌÁ, ÞÔÏ ËÏÍÐÉÌÑÔÏÒ CÉ ÏÔ Keil ÂÏÌÅÅ ON> ÒÁÚÕÍÎÏ ÏÂÒÁÝÁÅÔÓÑ Ó ËÏÎÓÔÁÎÔÁÍÉ ×Ï Flash ÐÁÍÑÔÉ É ÎÅ ËÏÐÉÒÕÅÔ ÉÈ × ON> SRAM ÐÅÒÅÄ ÕÐÏÔÒÅÂÌÅÎÉÅÍ.

÷ÓÅ pÁÚyÍÎÏ Ó ÎÉÍÉ ÏÂpÁÝÁÀÔÓÑ, ÅÓÌÉ ÐÏÞÉÔÁÔØ ÄÏËyÍÅÎÔÁÃÉÀ.

ON>>> ÷ÔÏÒÏÊ ÍÏÍÅÎÔ- ÏÔÓÕÔÓÔ×ÉÅ ÚÁÝÉÔÙ × ÂÉÔÏ×ÙÈ ÏÐÅÒÁÃÉÑÈ ÏÔ ÓÌÕÞÁÊÎÏÊ ON>>> ÍÏÄÉÆÉËÁÃÉÉ ÉÚ-ÚÁ ÐÒÅÒÙ×ÁÎÉÊ.

AM>> íÏÖÎÏ ÕÚÎÁÔØ, × ËÁËÏÍ ÑÚÙËÅ ÜÔÁ ÚÁÝÉÔÁ ÅÓÔØ?

ON> HÁÐÒÉÍÅÒ × PLM-51 ÏÔ Intel. ôÁÍ ÉÓÐÏÌØÚÕÀÔÓÑ ÎÏÒÍÁÌØÎÙÅ ËÏÍÁÎÄÙ ÏÂÒÁÝÅÎÉÑ ON> Ë ÂÉÔÏ×ÙÍ ÐÅÒÅÍÅÎÎÙÍ × ÐÁÍÑÔÉ 51-ÙÈ ÑÄÅÒ ÐÒÏÃÅÓÓÏÒÏ×.

üÔÏ Ó×ÏÊÓÔ×Ï ÂÉÔÏ×ÏÇÏ ÐpÏÃÅÓÓÏpÁ È51, Á ÎÅ × ËÏÅÊ ÍÅpÅ ÎÅ ÚÁÓÌyÇÁ PLM.

ON> ÷ ÔÅÈ ÖÅ AVR, ON> ÅÓÌÉ ÉÓÐÏÌØÚÏ×ÁÔØ ÞÁÓÔØ ÍÌÁÄÛÉÈ ÒÅÇÉÓÔÒÏ× ÄÌÑ ÈÒÁÎÅÎÉÑ ÂÉÔÏ×, ÔÏ ON> ÐÏÌÕÞÁÀÔÓÑ ×ÐÏÌÎÅ ÎÁÄÅÖÎÙÅ, ÎÅÉÓÞÅÚÁÀÝÉÅ ÓÅÍÁÆÏÒÙ ÓÏÂÙÔÉÊ. ïÄÎÁËÏ ÑÚÙË óÉ ON> ÜÔÏÇÏ ÎÅ ÄÏÐÕÓËÁÅÔ × ÐÒÉÎÃÉÐÅ, ÅÍÕ ÏÂÑÚÁÔÅÌØÎÏ ÎÕÖÎÏ ×ÓÅ ÐÒÏÄÅÌÁÔØ × ÔÒÉ ON> ÚÁÈÏÄÁ- ÓÞÉÔÁÌ, ÍÏÄÉÆÉÃÉÒÏ×ÁÌ, ÚÁÐÉÓÁÌ ÏÂÒÁÔÎÏ. é ÐÏÜÔÏÍÕ ÉÍÅÅÍ ÂÏÌØÛÉÅ ON> ÐÒÏÂÌÅÍÙ Ó ÓÅÍÁÆÏÒÉ×ÁÎÉÅÍ ÉÚ ÐÒÅÒÙ×ÁÎÉÊ.

  1. üÔÏ ÎÅ ÐpÏÂÌÅÍÁ óÉ, ÜÔÏ ÐpÏÂÌÅÍÁ ÐÏÄÄÅpÖËÉ ÐpÏÃÅÓÓÏpÏÍ ÓÏÏÔ×ÅÔÓÔ×yÀÝÉÈ ËÏÍÁÎÄ. ÷ ÔÏÍ ÖÅ PLM ÄÌÑ ÐpÏ×ÅpËÉ ÂÉÔÁ ÓÏ ÓÂpÏÓÏÍ ÂÙÌÁ ××ÅÄÅÎÁ ×ÓÔpÏÅÎÎÁÑ ÆyÎËÃÉÑ _testbit_, ËÏÔÏpÁÑ ËÏÍÐÉÌÉpÏ×ÁÌÁÓØ × JBC.
  2. äÏÓÔyÐ Ë pÁÚÄÅÌÑÅÍÙÍ Ó ÐpÅpÙ×ÁÎÉÑÍÉ pÅÓypÓÁÍ × ÆÏÎÏ×ÏÊ ÐpÏÇpÁÍÍÅ ÄÏÌÖÅÎ ÂÙÔØ ÏÂÅpÎyÔ × ËpÉÔÉÞÅÓËyÀ ÓÅËÃÉÀ __DI(); __EI(); üÔÏ ÓÔÁÎÄÁpÔÎÙÊ ÍÅÔÏÄ.

ON>>> ÂÉÂÌÉÏÔÅËÁÈ- ÓÁÍÏÍ ÃÅÎÎÏÍ, ÞÔÏ ×ÏÏÂÝÅ ÅÓÔØ × ÑÚÙËÁÈ ×ÙÓÏËÏÇÏ ÕÒÏ×ÎÑ.

AM>> þÔÏ ÔÁÍ ÏÓÏÂÏ ÃÅÎÎÏÇÏ × ÂÉÂÌÉÏÔÅËÁÈ?

ON> óÁÍÏÍÕ ÎÅ ÎÕÖÎÏ ÚÁÎÉÍÁÔØÓÑ ÒÕÔÉÎÏÊ ÍÁÔÅÍÁÔÉËÉ, ÓÔÒÏËÁÍÉ, TCP/IP. ÷ÒÅÍÅÎÉ ON> ÏÔÎÉÍÁÅÔ - ÔÕÞÕ.

íÁÔÅÍÁÔÉËÁ ×ÐÏÌÎÅ ÐpÉÌÉÞÎÏ pÁÂÏÔÁÅÔ. ïÐÅpÁÃÉÉ ÓÏ ÓÔpÏËÁÍÉ ÎÁ ÍÅÌËÉÈ uC ÍÏÇyÔ ÓÔÏÉÔØ ÄÏÓÔÁÔÏÞÎÏ ÄÏpÏÇÏ ÐÏ ÏÂßÅÍy ËÏÄÁ É ÎÅÏÂÈÏÄÉÍÏÇÏ ÜÔÉÍ ÆyÎËÃÉÑÍ ÄÌÑ pÁÂÏÔÙ ÏÂßÅÍÁ ÓÔÅËÁ, ÜÔÏ ÐpÏÓÔÏ ÎyÖÎÏ ÉÍÅÔØ ××ÉÄy. TCP/IP - ÏÂÙÞÎÏ ÐÏËyÐÎÙÅ ÂÉÂÌÉÏÔÅËÉ, É ÓÏÂÓÔ×ÅÎÎÏ Ë ËÏÍÐÉÑÌÔÏpy óÉ ÏÎÉ ÉÍÅÀÔ ÍÁÌÏ ÏÔÎÏÛÅÎÉÑ.

AM>> íÏÖÅÔ ÐÒÉÞÉÎÁ ÂÙÌÁ × ÎÅÄÏÓÔÁÔÏÞÎÏÍ ÒÁÚÍÅÒÅ ÓÔÅËÁ? AM>> ïÂÙÞÎÏ ÆÕÎËÃÉÉ ÔÉÐÁ pritnf ÏÞÅÎØ ÐÒÏÖÏÒÌÉ×ÙÅ, ÓÉÌØÎÏ ÆÕÎËÃÉÏÎÁÌØÎÏ AM>> ÉÚÂÙÔÏÞÎÙÅ, ÐÏÜÔÏÍÕ × ÍÅÌËÉÈ ÐÒÏÅËÔÁÈ ÉÈ ÓÔÁÒÁÀÔÓÑ ÉÚÂÅÇÁÔØ, ÚÁÍÅÎÑÑ AM>> Ó×ÏÉÍÉ, ÂÏÌÅÅ ÌÅÇËÉÍÉ. èÏÔÑ Ñ × Keil 51 × Ó×ÏÅ ×ÒÅÍÑ ÉÓÐÏÌØÚÏ×ÁÌ.

ON> ï ÞÅÍ É ÒÅÞØ! HÁ ÐÒÁËÔÉËÅ ÎÅÐÒÉÑÔÎÙÈ ÏÓÏÂÅÎÎÏÓÔÅÊ, ËÏÔÏÒÙÅ ÔÒÅÂÕÀÔ ON> Ë×ÁÌÉÆÉÃÉÒÏ×ÁÎÎÏÇÏ ×ÍÅÛÁÔÅÌØÓÔ×Á É ÐÏÎÉÍÁÎÉÑ "ÎÅÍÅÒÑÎÎÙÈ ÇÌÕÂÉÎ", ON> ×ÓÐÌÙ×ÁÅÔ ÏÞÅÎØ ÍÎÏÇÏ. á ÔÕÔ ÅÝÅ É ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ ÎÁ ÇÏÌÏ×Õ Ó×ÁÌÉ×ÁÅÔÓÑ- ON> ×ÏÏÂÝÅ ÆÉÎÉÛ ÐÏÌÎÙÊ.

óÎÁÞÁÌÁ ÇÏÌÏ×Á ×ÓÅÇÄÁ ÐyÈÎÅÔ, É ÈÏÄÉÛØ ÐÏÓÌÅ pÁÂÏÞÅÇÏ ÄÎÑ, ËÁË ÂyÄÔÏ ×ÙÐÉÌ ÓÔÁËÁÎ ×ÏÄËÉ. úÁÔÏ ÐÏÔÏÍ ÓÔÁÎÏ×ÉÔØÓÑ ÚÎÁÞÉÔÅÌØÎÏ ÌÅÇÞÅ. üÔÏ ËÁÓÁÅÔÓÑ ÏÓ×ÏÅÎÉÑ ÌÀÂÏÇÏ ÎÏ×ÏÇÏ ÐpÏÄyËÔÁ. ó Õ×ÁÖÅÎÉÅÍ, Andy <mailto:andy coÂaËa svrw.ru>

icq 44341220

Hi Oleksandr, hope you are having a nice day!

14 íÁÒ 05, Oleksandr Redchuk wrote to Alexey V Bugrov:

AB>> ÷ RTOS, ÏÂÙÞÎÏ, ÐÅÒÅÐÌÁÎÉÒÏ×ËÁ ÐÒÏÉÓÈÏÄÉÔ ËÁÖÄÙÊ ÒÁÚ ÐÒÉ ×ÙÈÏÄÅ ÉÚ AB>> ÌÀÂÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ, Ô.Ë. × ÎÉÈ ×ÙÓÔÁ×ÌÑÀÔÓÑ ÓÅÍÁÆÏÒÙ. AB>> åÓÌÉ ÓÅÍÁÆÏÒÙ ÎÅÂÙÌÉ ×ÙÓÔÁ×ÌÅÎÙ, ÔÏ ÐÅÒÅËÌÀÞÅÎÉÅ ËÏÎÔÅËÓÔÁ ÐÒÏÓÔÏ AB>> ÎÅ ÐÒÏÉÓÈÏÄÉÔ.

OR> ÷ ÔÏÍ-ÔÏ É ÄÅÌÏ, ÞÔÏ ÎÅ OR> "ÐÅÒÅËÌÀÞÅÎÉÑ ËÏÎÔÅËÓÔÁ ÎÅ ÐÒÏÉÓÈÏÄÉÔ", OR> Á OR> "ÏÎ ÐÅÒÅËÌÀÞÁÅÔÓÑ ÎÁÚÁÄ ÔÕÄÁ, ÇÄÅ ÂÙÌ"

äÁ. èÏÔÑ × "ËÒÉ×ÙÈ ÐÉËÁÈ" × ÜÔÏÍ ÓÌÕÞÁÅ ÓÏÈÒÁÎÑÅÔÓÑ ÔÏÌØËÏ ÍÉÎÉÍÁÌØÎÙÊ ËÏÎÔÅËÓÔ (ÕËÁÚÁÔÅÌÉ ÎÁ ÒÁÍ, ÒÏÍ, ÁÌÕ), Á ×ÓÅ ÏÓÔÁÌØÎÏÅ ÓÏÈÒÁÎÑÅÔÓÑ/×ÏÓÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÌÁÎÉÒÏ×ÝÉËÏÍ. ïÂÒÁÂÏÔÞÉË ÐÒÉÒÙ×ÁÎÉÑ ÐÒÉ ÜÔÏÍ ÞÁÓÔÉÞÎÏ ÒÁÂÏÔÁÅÔ × ËÏÎÔÅËÓÔÅ ÐÒÅÒÙ×ÁÅÍÏÇÏ ÐÒÏÃÅÓÓÁ, ËÁË É ÌÀÂÏÅ ÄÒÕÇÏÅ ÐÒÅÒÙ×ÁÎÉÅ.

OR> ô.Å. Ó ÔÏÞËÉ ÚÒÅÎÉÑ ÚÁÔÒÁÔ ×ÒÅÍÅÎÉ "ÌÏÇÉÞÅÓËÏÅ" ÏÔÓÕÔÓÔ×ÉÅ OR> ÐÅÒÅËÌÀÞÅÎÉÑ É "ÌÏÇÉÞÅÓËÏÅ" ÅÇÏ ÎÁÌÉÞÉÅ ÜË×É×ÁÌÅÎÔÎÙ - ÔÁË ËÁË OR> "ÆÉÚÉÞÅÓËÏÅ" ÐÒÏÉÓÈÏÄÉÔ.

÷ ÏÂÝÅÍ ÓÌÕÞÁÅ ÎÅÔ. ðÅÒÅÄ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÍ ÐÒÅÒÙ×ÁÎÉÅÍ ÎÅ ÎÁÄÏ ÓÏÈÒÁÎÑÔØ ×ÅÓØ ËÏÎÔÅËÓÔ, ÏÂÙÞÎÏ ÄÏÓÔÁÔÏÞÎÏ ËÁËÏÊ-ÔÏ ÅÇÏ ÍÉÎÉÍÁÌØÎÏ ÎÅÏÂÈÏÄÉÍÏÊ ÞÁÓÔÉ. ëÏÎÅÞÎÏ, × ÜÔÏÍ ÓÌÕÞÁÅ ÎÁ ÏÂÒÁÂÏÔÞÉË ÐÒÅÒÙ×ÁÎÉÑ ÎÁËÌÁÄÙ×ÁÀÔÓÑ ÎÅËÏÔÏÒÙÅ ÏÇÒÁÎÉÞÅÎÉÑ, ÎÏ × ÔÏÍ ÉÌÉ ÉÎÏÍ ×ÉÄÅ ÏÎÉ ÅÓÔØ ×ÓÅÇÄÁ.

OR> ô.Å. ISR ÐÏÌÎÏÓÔØÀ ÓÏÈÒÁÎÑÅÔ ×ӣ, ÄÅÌÁÅÔ OR> Ó×ÏÀ ÒÁÂÏÔÕ, ÐÏÔÏÍ ÒÁÂÏÔÁÅÔ ÐÅÒÅÐÌÁÎÉÒÏ×ÝÉË É ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ OR> ÄÅÌÁÅÔ ÐÅÒÅËÌÀÞÅÎÉÅ ÎÁ ÄÒÕÇÏÊ ËÏÎÔÅËÓÔ.

äÁ, ÔÁË ÄÅÌÁÅÔÓÑ ÄÏ×ÏÌØÎÏ ÞÁÓÔÏ (× ÔÏÊ ÖÅ uC/OS), ÎÏ ÜÔÏ ÎÅ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ.

OR> ðÒÉ ÔÁËÏÊ ÐÏÓÔÁÎÏ×ËÅ ÐÏ OR> ËÁÖÄÏÍÕ ÂÁÊÔÕ ÐÅÒÅËÌÀÞÁÔØÓÑ ÎÁ ÐÒÏÃÅÓÓ ÐÒɣÍÁ É ÏÂÒÁÂÏÔËÉ ÐÁËÅÔÁ OR> ÉÌÉ ÎÁËÁÐÌÉ×ÁÔØ ÐÁËÅÔ ÂÅÚ ÐÅÒÅÐÌÁÎÉÒÏ×ËÉ - ÒÁÚÎÉÃÁ ÔÏÖÅ ÅÓÔØ, × OR> _ÄÏÐÏÌÎÉÔÅÌØÎÏÅ_ ÐÅÒÅËÌÀÞÅÎÉÅ ËÏÎÔÅËÓÔÁ ÕÖÅ _ÐÏÓÌÅ_ ÏÔÒÁÂÏÔËÉ OR> ÐÒÏÃÅÓÓÁ ÐÒɣÍÁ ÂÁÊÔÁ.

HÁ ÓÁÍÏÍ ÄÅÌÅ Ä×Á ÐÅÒÅËÌÀÞÅÎÉÑ. HÁ ÐÒÏÃÅÓÓ É ÏÂÒÁÔÎÏ. òÁÚÎÉÃÁ × ÚÁÔÒÁÔÁÈ ×ÒÅÍÅÎÉ ÅÝÅ É ÉÚ-ÚÁ ÔÏÇÏ, ÞÔÏ ËÏÎÔÅËÓÔ ÓÁÍÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ ÎÅ ÎÁÄÏ ÎÉ ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÔØ, ÎÉ ÓÏÈÒÁÎÑÔØ.

OR> HÏ ÈÏÞÅÔÓÑ ÖÅ ÎÅ ÐÒÏÓÔÏ ͣÄ, Á Åݣ É ÌÏÖËÏÊ.

÷ÅÒÔÉÔÓÑ ÔÕÔ ÎÁ ÑÚÙËÁ ÐÏÛÌÏÅ ×ÙÒÁÖÅÎÉÅ, ÎÏ ÐÒÏÍÏÌÞÕ. :)

OR> ðÏÄÍÅÎÁ ×ÅËÔÏÒÁ ÉÌÉ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÄÒÕÇÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ, ËÏÔÏÒÏÅ OR> ÂÕÄÅÔ ÏÔÒÁÂÏÔÁÎÏ ÐÏÓÌÅ ×ÏÚ×ÒÁÔÁ ÉÚ ISR, ÐÒÏÓÔÏ ÓËÌÁÄÙ×ÁÀÝÅÊ ÂÁÊÔÙ OR> × ÂÕÆÅÒ ÐÁËÅÔÁ - ÐÒÅÄÎÁÚÎÁÞÅÎÏ ÕÓÔÒÁÎÉÔØ É "ÈÏÌÏÓÔÏÅ" OR> ÓÏÈÒÁÎÅÎÉÅ/×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ËÏÎÔÅËÓÔÁ, ÄÏ×ÌØÎÏ ÔÏÌÓÔÏÅ, Ë ÐÒÉÍÅÒÕ, Õ OR> AVR.

äÁÖÅ ÎÁ AVR ÍÏÖÎÏ ÓÏÈÒÁÎÑÔØ ÎÅ ×ÅÓØ ËÏÎÔÅËÓÔ, ÐÒÁ×ÄÁ ÏÂÒÁÂÏÔÞÉËÕ ÐÒÉÄÅÔÓÑ ÂÙÔØ ÐÉÓÁÎÎÙÍ ÎÁ ÁÓÍÅ.

OR> èÏÔÅÌÏÓØ ÂÙ ÐÒɣÍ ÂÁÊÔÁ ÓÄÅÌÁÔØ "×ÎÅÏÓÅ×ÙÍ" ÐÒÅÒÙ×ÁÎÉÅÍ, OR> ÐÒÏÓÔÏ ÏÆÏÒÍÌÅÎÎÙÍ ËÁË SYGNAL/interrupt É Ô.Ð. ËÏÎËÒÅÔÎÏÇÏ OR> ËÏÍÐÉÌÑÔÏÒÁ OR> ó. ÷ ÜÔÏÍ ÓÌÕÞÁÅ ÓÏÈÒÁÎÑÔØÓÑ/×ÏÓÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÂÕÄÕÔ OR> ÔÏÌØËÏ ÎÅÏÂÈÏÄÉÍÙÅ ÒÅÇÉÓÔÒÙ É ÔÏÌØËÏ × ËÏÎÃÅ ÐÒɣÍÁ ÐÁËÅÔÁ ÎÁÄÏ OR> ÓÄÅÌÁÔØ ×Ú×ÅÄÅÎÉÅ ÓÅÍÁÆÏÒÁ É ÐÅÒÅËÌÀÞÅÎÉÅ ËÏÎÔÅËÓÔÁ. HÏ... ÎÅ OR> ÐÏÌÕÞÁÅÔÓÑ. HÁ ÓÔÅËÅ - *ÏÇÒÙÚÏË* ËÏÎÔÅËÓÔÁ ÔÅËÕÝÅÇÏ ÐÒÏÃÅÓÓÁ, ÐÒÉޣÍ Ó OR> ÂÏÌØÛÏÊ ×ÅÒÏÑÔÎÏÓÔØÀ ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÎÁÞÁÌØÎÏÊ OR> ÞÁÓÔÉ "ÏÓÅ×ÏÇÏ" ÆÏÒÍÁÔÁ É ×ÏÏÂÝÅ ÚÁ×ÉÓÉÔ ÏÔ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ.

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

OR> åÇÏ ÎÁÄÏ ×ÅÒÎÕÔØ ×ÚÁÄ É ÔÏÌØËÏ ÚÁÔÅÍ ÓÏÏÒÕÄÉÔØ ÐÏÌÎÏÅ ÓÏÈÒÁÎÅÎÉÅ OR> É ÐÅÒÅÐÌÁÎÉÒÏ×ËÕ. üÔÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÐÏÄÍÅÎÏÊ ×ÅËÔÏÒÁ (ÅÓÌÉ OR> ÉÚ×ÅÓÔÎÏ, ËÏÇÄÁ ÅÇÏ ÐÏÄÍÅÎÑÔØ) ÉÌÉ ÉÎÉÃÉÁÃÉÅÊ ÄÒÕÇÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ, OR> ÏÆÏÒÍÌÅÎÎÏÇÏ "ÐÏ-ÏÓÅ×ÏÍÕ" - ÅÓÌÉ ÅÓÔØ ÇÄÅ ÅÇÏ ×ÚÑÔØ :-)

ëÁË ×ÁÒÉÁÎÔ ÍÏÖÎÏ É ÔÁË.

WBR, AVB

Hi Andy, hope you are having a nice day!

14 íÁÒ 05, Andy Mozzhevilov wrote to Alexey V Bugrov:

AVB>> õÖÁÓÔØ. ÷ÙÓÔÁ×ÌÅÎÉÅ ÓÅÍÁÆÏÒÁ - ÜÔÏ ÐÏ ÓÕÔÉ ÏÔÃÅÐÌÅÎÉÅ ×ÓÅÈ ÚÁÄÁÞ AVB>> ÉÚ ÅÇÏ ÓÐÉÓËÁ ÏÖÉÄÁÎÉÑ É ÐÅÒÅÔÙËÁÎÉÅ ÉÈ × ÓÐÉÓÏË ×ÙÐÏÌÎÅÎÉÑ.

AM> ôÏÌØËÏ ÎÅ ×ÓÅÈ, Á ÏÄÎÏÊ, ËÏÔÏpÁÑ ÎÁÉÂÏÌÅÅ ÐpÉÏÔÉÔÅÔÎÁÑ.

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

WBR, AVB

Sun, 13 Mar 2005 21:42:43 +0300 Alexey V Bugrov wrote to Harry Zhurov:

HZ>> úÁÄÁÞÁ ÂÕÄÅÔ ÐÅÒÅÍÅÝÅÎÁ × ÓÐÉÓÏË ÇÏÔÏ×ÙÈ Ë ×ÙÐÏÌÎÅÎÉÀ. HÏ HZ>> ÕÐÒÁ×ÌÅÎÉÅ ÏÎÁ ÐÏÌÕÞÉÔ ÔÏÌØËÏ ÐÒÉ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÉ. ôÕÔ ÖÅ HZ>> ÉÓÐÏÌØÚÕÅÔÓÑ ÏÂÙÞÎÏÅ ÐÒÅÒÙ×ÁÎÉÅ, ÂÅÚ ËÏÎÔÅËÓÔÏ×, ÓÌÅÄÏ×ÁÔÅÌØÎÏ ÎÁ HZ>> ×ÙÈÏÄÅ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÑ ÎÅ ÐÒÏÉÓÈÏÄÉÔ.

AV> þÔÏ ÚÎÁÞÉÔ "ÐÒÅÒÙ×ÁÎÉÅ ÂÅÚ ËÏÎÔÅËÓÔÏ×"? ðÒÅÒÙ×ÁÎÉÅ ×ÓÅÇÄÁ ÓÏÈÒÁÎÑÅÔ AV> ËÏÎÔÅËÓÔ ÐÒÅÒÙ×ÁÅÍÏÇÏ ÐÒÏÃÅÓÓÁ. ïÔÌÉÞÉÅ ÏÔ ÚÁÄÁÞÉ AV> ÔÏÌØËÏ × ÔÏÍ, ÞÔÏ ×ÒÅÍÑ ÖÉÚÎÉ ËÏÎÔÅËÓÔÁ ÐÒÅÒÙ×ÁÎÉÑ ÒÁ×ÎÏ ×ÒÅÍÅÎÉ ÅÇÏ AV> ×ÙÐÏÌÎÅÎÉÑ É ÎÁÞÁÌØÎÏÅ ÓÏÓÔÏÑÎÉÅ ÎÅ ÏÐÒÅÄÅÌÅÎÏ.

üÔÏ × ËÁËÏÍ ÜÔÏ ÐÒÏÃÅ ÏÎÏ ÔÁË ÓÏÈÒÁÎÑÅÔ? éÌÉ ÔÙ ÉÍÅÅÛØ × ×ÉÄÕ ÔÏ, ËÏÔÏÒÏÅ ÓÁÍ ÔÁËÉÍ ÓÄÅÌÁÌ? ðÒÅÒÙ×ÁÎÉÅ (ÁÐÐÁÒÁÔÎÏ) ÓÁÍÏ ÐÏ ÓÅÂÅ ÓÏÈÒÁÎÑÅÔ ÔÏÌØËÏ ÎÅËÉÊ ÍÉÎÉÍÕÍ, Á ÕÖ ×ÓÅ ÏÓÔÁÌØÎÏÅ ÄÅÌÁÅÔ ÐÒÏÇÒÁÍÍÅÒ. éÔÏÇÏ, × ËÏÎÔÅËÓÔÅ ÏÂÓÕÖÄÅÎÉÑ ÉÍÅÀÔÓÑ Ä×Á ×ÉÄÁ ÐÒÅÒÙ×ÁÎÉÊ - ÏÂÙÞÎÙÅ, ËÏÔÏÒÙÅ ÐÒÏà ×ÙÐÏÌÎÑÅÔ ÁÐÐÁÒÁÔÎÏ, É ÏÂ×ÅÛÁÎÎÙÅ ÓÏÈÒÁÎÅÎÉÅÍ ËÏÎÔÅËÓÔÁ ÎÁ ×ÈÏÄÅ É ×ÏÓÓÔÁÎÏ×ÌÅÎÉÅÍ ÎÁ ×ÙÈÏÄÅ, ÓÏ×ÍÅÝÅÎÎÏÍ Ó ×ÙÚÏ×ÏÍ ÆÕÎËÃÉÉ ÐÅÒÅÐÌÁÎÉÒÏ×ËÉ ÚÁÄÁÞ É Ô.Ä., Ô.Å. ïóÅ×ÙÅ ÐÒÅÒÙ×ÁÎÉÑ.

AV> þÔÏ ËÁÓÁÅÍÏ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÑ, ÔÏ ÏÎÏ É ÎÅ ÔÒÅÂÕÅÔÓÑ. äÏÓÔÁÔÏÞÎÏ, ÞÔÏÂÙ AV> ÚÁÄÁÞÕ ÐÏÓÔÁ×ÉÌÉ × ÓÐÉÓÏË ÁËÔÉ×ÎÙÈ. HÁ ×ÙÈÏÄÅ ÉÚ AV> ÐÒÅÒÙ×ÁÎÉÑ ÐÌÁÎÉÒÏ×ÝÉË ÒÁÚÂÅÒÅÔÓÑ ÎÕÖÎÏ ÉÌÉ ÎÅÔ ÐÅÒÅËÌÀÞÁÔØ ËÏÎÔÅËÓÔ.

ô.Å., ËÁË Ñ ÐÏÎÑÌ, Õ ÔÅÂÑ ÎÁ ËÁÖÄÙÊ ÂÁÊÔ É ÐÒÏÉÓÈÏÄÉÔ ÔÏ ÓÁÍÏÅ ÝÅÌËÁÎØÅ ËÏÎÔÅËÓÔÁÍÉ, ËÏÔÏÒÏÅ ÔÕÔ ÄÒÕÖÎÏ ÒÕÇÁÀÔ.

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

AV> ü... HÅ ÚÎÁÀ ËÁË ÏÂÙÞÎÏ, ÎÏ ÜÔÏ ËÏÒÑ×Ï. ðÌÁÎÉÒÏ×ÝÉË ÄÏÌÖÅÎ ×ÙÚÙ×ÁÔØÓÑ AV> ×ÓÅÇÄÁ _ÐÏÓÌÅ_ ÏÂÒÁÂÏÔËÉ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ AV> ÐÒÅÒÙ×ÁÎÉÊ.

ëÏÒÑ×Ï ÉÌÉ ÎÅÔ, ÎÏ ÉÎÏÇÄÁ ÄÒÕÇÏÇÏ ÐÕÔÉ ÎÅÔ. íÏÖÅÔ Õ ÔÅÂÑ × PIC18 ËÏÎÔÅËÓÔ ÍÁÌÅÎØËÉÊ, ÎÁ ÅÇÏ ÓÏÈÒÁÎÅÎÉÅ/×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ×ÒÅÍÅÎÉ ÐÏÞÔÉ ÎÅ ÔÒÁÔÉÔÓÑ, ÎÏ ×ÏÔ × AVR 32 ÒÅÇÉÓÔÒÁ - ÐÏÓÞÉÔÁÊ, ÓËÏÌØËÏ ÎÁÄÏ ÔÁËÔÏ×, ÞÔÏÂÙ ×ÓÅ ÜÔÏ ÈÏÚÑÊÓÔ×Ï ÍÅÔÁÔØ (Ä×Á ÔÁËÔÁ ÎÁ ÓÏÈÒÁÎÅÎÉÅ ÏÄÎÏÇÏ ÒÅÇÉÓÔÒÁ, Ä×Á ÔÁËÔÁ ÎÁ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ - ÉÔÏÇÏ 128 ÔÁËÔÏ×). é ÅÝÅ ÐÌÁÎÉÒÏ×ÝÉË ×ÙÚ×ÁÔØ ÎÁ ×ÙÈÏÄÅ. é ÔÁË ÎÁ ËÁÖÄÏÍ ÂÁÊÔÅ. á ÐÒÅÄÌÁÇÁÌÏÓØ, ÞÔÏÂÙ ÉÚÂÁ×ÉÔØÓÑ ÏÔ ÝÅÌËÁÎØÑ ËÏÎÔÅËÓÔÁÍÉ ÎÁ ËÁÖÄÙÊ ÂÁÊÔ, ×ÙÇÒÅÂÁÔØ ÂÁÊÔÙ ÉÚ ÐÒÉÅÍÎÉËÁ × ÏÂÙÞÎÏÍ ÐÒÅÒÙ×ÁÎÉÉ É ÓËÌÁÄÙ×ÁÔØ ÉÈ × ÂÕÆÅÒ. ðÒÉ ÜÔÏÍ ÐÒÅÒÙ×ÁÎÉÅ ÐÏÌÕÞÁÅÔÓÑ ÍÁËÓÉÍÁÌØÎÏ ËÏÒÏÔËÉÍ - ÐÒÏÓÔÏ ×ÏÛÌÉ, ÍÅÔÎÕÌÉ ÂÁÊÔÉË É ×ÙÛÌÉ.

HZ>> ðÏÓÒÅÄÉ ÐÒÅÒÙ×ÁÎÉÑ ÕÐÒÁ×ÌÅÎÉÅ ÎÅÌØÚÑ ÐÅÒÅÄÁ×ÁÔØ × ÌÀÂÏÍ HZ>> ÓÌÕÞÁÅ. ïóÅ×ÙÅ ÐÒÅÒÙ×ÁÎÉÑ ÏÆÏÒÍÌÅÎÙ ÔÁË, ÞÔÏ ÁËÔÉ×ÉÒÕÀÔ ÓÐÅÃÉÁÌØÎÕÀ HZ>> ÐÅÒÅÍÅÎÎÕÀ-ÍÁÒËÅÒ, ÕËÁÚÙ×ÁÀÝÕÀ, ÞÔÏ ÐÏÔÏË ÕÐÒÁ×ÌÅÎÉÑ × ÄÁÎÎÙÊ ÍÏÍÅÎÔ HZ>> ÎÁÈÏÄÉÔÓÑ × ÐÒÅÒÙ×ÁÎÉÉ.

AV> HÕ ÄÁ. þÔÏ-ÔÏ ×ÒÏÄÅ ISR_level. á×ÔÏÍÁÔÉÞÅÓËÉ ÉÎËÒÅÍÅÎÔÉÒÕÅÔÓÑ ÑÄÒÏÍ ÐÒÉ AV> ×ÈÏÄÅ × ÐÒÅÒÙ×ÁÎÉÅ, ÄÅËÒÅÍÅÎÔÉÒÕÅÔÓÑ ÐÒÉ AV> ×ÙÈÏÄÅ, ÅÓÌÉ ÄÏÓÔÉÇÌÁ ÎÕÌÑ - ÐÏÒÁ ×ÙÚÙ×ÁÔØ ÐÌÁÎÉÒÏ×ÝÉË. åÓÌÉ ÍÙ ×ÎÕÔÒÉ AV> ÐÒÅÒÙ×ÁÎÉÑ (ISR_Level ÂÏÌØÛÅ ÎÕÌÑ), ÔÏ AV> ÐÌÁÎÉÒÏ×ÝÉË ÎÅ ×ÙÚÙ×ÁÅÍ, ÏÎ ÂÕÄÅÔ ×ÙÚ×ÁÎ ÑÄÒÏÍ ÐÒÉ ×ÙÈÏÄÅ ÉÚ ÏÂÒÁÂÏÔÞÉËÁ AV> ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ. ÷ÐÒÏÞÅÍ ÜÔÏ AV> ÎÅÓËÏÌØËÏ ÚÁ×ÑÚÁÎÏ ÎÁ ÁÒÈÉÔÅËÔÕÒÕ, ÎÏ × ÐÒÉÎÃÉÐÅ ÒÅÁÌÉÚÕÅÍÏ.

HZ>> ðÌÁÎÉÒÏ×ÝÉË ÁÎÁÌÉÚÉÒÕÅÔ ÜÔÏÔ ÍÁÒËÅÒ É ÎÅ HZ>> ÐÙÔÁÅÔÓÑ ÐÅÒÅÄÁÔØ ÐÅÒÅËÌÀÞÁÔØ ËÏÎÔÅËÓÔ ×ÎÕÔÒÉ ISR.

AV> åÓÔÅÓÓÔ×ÅÎÎÏ.

HZ>> HÏ ÅÓÌÉ ×ÙÚ×ÁÔØ HZ>> ÆÕÎËÃÉÀ, ×Ú×ÏÄÑÝÕÀ ÓÅÍÁÆÏÒ, × ÏÂÙÞÎÏÍ ISR, ÔÏ ÜÔÏ ÞÒÅ×ÁÔÏ, ÍÑÇËÏ HZ>> ÇÏ×ÏÒÑ, ÎÅÈÏÒÏÛÉÍÉ ÐÏÓÌÅÄÓÔ×ÉÑÍÉ. ìÉÂÏ ÎÁÄÏ ÉÍÅÔØ ÅÝÅ ÏÄÉÎ ×ÁÒÉÁÎÔ HZ>> ÜÔÏÊ ÆÕÎËÃÉÉ, ÓÐÅÃÉÁÌØÎÏ ÐÒÅÄÎÁÚÎÁÞÅÎÎÏÊ ÄÌÑ ÜÔÉÈ ÃÅÌÅÊ, ÇÄÅ HZ>> ÎÅ ×ÙÚÙ×ÁÅÔÓÑ ÐÌÁÎÉÒÏ×ÝÉË. é ÐÒÉ ÐÉÓÁÎÉÉ ÐÒÏÇÒÁÍÍÙ ÓÔÒÏÇÏ ÓÌÅÄÉÔØ, HZ>> ÞÔÏÂÙ × ISR ×ÙÚÙ×ÁÌÁÓØ ÉÍÅÎÎÏ ÜÔÁ ÆÕÎËÃÉÑ (ÂÅÚ ÐÌÁÎÉÒÏ×ÝÉËÁ), Á ÎÅ HZ>> ÛÔÁÔÎÁÑ.

AV> õÖÁÓ. ïÐÅÒÁÃÉÑ ×Ú×ÏÄÁ ÓÏÂÙÔÉÑ/ÓÅÍÁÆÏÒÁ ÐÏ ÏÐÒÅÄÅÌÅÎÉÀ ÄÏÌÖÎÁ ÂÙÔØ AV> ÂÅÚÏÐÁÓÎÏÊ ÄÌÑ ×ÙÚÏ×Á ÉÚ ISR. ÷ ËÏÎÃÅ ÐÒÏÃÅÄÕÒÙ AV> ÓÅÍÁÆÏÒÁ ÓÍÏÔÒÉÍ ISR_Level, ÅÓÌÉ ÏÎ ÎÕÌÅ×ÏÊ - ÔÏ ×ÙÚÙ×ÁÅÍ ÐÌÁÎÉÒÏ×ÝÉË. åÓÌÉ AV> ÎÉ, ÔÏ ÎÉ-ÎÉ.(Ó)

üÔÏ ÏÞÅ×ÉÄÎÏ. ÷ÏÐÒÏÓ ÔÏÌØËÏ Ï ËÁËÏÍ ISR ÉÄÅÔ ÒÅÞØ - ÏÂÙÞÎÏÍ ÉÌÉ ïóÅ×ÏÍ. ÷ ïóÅ×ÏÍ - ÄÁ, ÄÏÌÖÎÏ ÂÙÔØ ÂÅÚÏÐÁÓÎÏ (ÂÅÚÏÐÁÓÎÏ É ÅÓÔØ). á ÅÓÌÉ × ÏÂÙÞÎÏÍ ÐÒÅÒÙ×ÁÎÉÉ ×Ú×ÅÓÔÉ ÓÏÂÙÔÉÅ, ÞÔÏ ÂÕÄÅÔ? ÷ÅÄØ ÎÁ ×ÈÏÄÅ × ÎÅÇÏ ÎÉËÁËÉÅ ISR_Level ÎÅ ÚÁÔÒÁÇÉ×ÁÀÔÓÑ. þÔÏ ÍÅÛÁÅÔ ×Ú×ÅÓÔÉ ÓÅÍÁÆÏÒ × ÏÂÙÞÎÏÍ ÏÂÒÁÂÏÔÞÉËÅ ÐÒÅÒÙ×ÁÎÉÊ É ÏÇÒÅÓÔÉ ÚÁ ÜÔÏ? ëÔÏ ÚÁ ÜÔÉÍ ÓÌÅÄÉÔ, ÅÓÌÉ ÎÅ ÐÒÏÇÒÁÍÍÅÒ ÒÕËÁÍÉ? üÔÏ ÐÏÔÅÎÃÉÁÌØÎÙÅ ÇÒÁÂÌÉ. é ÞÔÏ ÐÌÏÈÏÇÏ × ÔÁËÏÍ ÐÏÄÈÏÄÅ: ISR ×ÙÐÏÌÎÑÅÔ ÔÕÐÕÀ ÒÁÂÏÔÕ (×ÒÏÄÅ ÓËÌÁÄÙ×ÁÎÉÑ ÂÁÊÔÉËÏ× × ÂÕÆÅÒ Ó ÐÏÄÓÞÅÔÏÍ ÉÈ), ÄÅÌÁÅÔ ÜÔÏ ÂÙÓÔÒÏ, ÂÅÚ ÝÅÌËÁÎØÑ ËÏÎÔÅËÓÔÁÍÉ (ÎÅ ÚÁÂÙ×ÁÅÍ, ÞÔÏ ËÏÎÔÅËÓÔ ×ÅÓÉÔ...)? ðÒÉ ÐÒÉÅÍÅ ÎÕÖÎÏÇÏ ËÏÌÉÞÅÓÔ×Á ÂÁÊÔ, ÓÅÍÁÆÏÒ ×Ú×ÏÄÉÔÓÑ, ÎÏ ÎÅ ÏÂÙÞÎÙÍ ÏÂÒÁÚÏÍ, Á ÐÏÞÔÉ ÏÂÙÞÎÙÍ Ó ÔÏÊ ÌÉÛØ ÒÁÚÎÉÃÅÊ, ÞÔÏ ÐÌÁÎÉÒÏ×ÝÉË ÎÅ ×ÙÚÙ×ÁÅÔÓÑ ×ÎÕÔÒÉ ÜÔÏÊ ÆÕÎËÃÉÉ ×Ú×ÅÄÅÎÉÑ - Ô.Å. ÐÒÏÓÔÏ ÏÖÉÄÁÀÝÉÅ ÓÅÍÁÆÏÒÁ ÚÁÄÁÞÉ ÐÅÒÅ×ÏÄÑÔÓÑ × ÓÏÓÔÏÑÎÉÅ ÇÏÔÏ×ÙÈ Ë ×ÙÐÏÌÎÅÎÉÀ. ÷ÓÅ, ÐÒÉ ÐÅÒ×ÏÍ ÖÅ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÉ, ÏÖÉÄÁÀÝÁÑ ÚÁÄÁÞÁ (ÅÓÌÉ ÏÎÁ ÓÁÍÁÑ ÐÒÉÏÒÉÔÅÔÎÁÑ) ÐÏÌÕÞÉÔ ÕÐÒÁ×ÌÅÎÉÅ.

HZ>> é ÜÔÏ ÐÏÔÅÎÃÉÁÌØÎÙÅ ÇÒÁÂÌÉ - ×ÓÅÇÄÁ ÍÏÖÎÏ ÚÁÂÙÔØ ÏÂ ÜÔÏÍ.

AV> õÖÁÓÔØ. ÷ÙÓÔÁ×ÌÅÎÉÅ ÓÅÍÁÆÏÒÁ - ÜÔÏ ÐÏ ÓÕÔÉ ÏÔÃÅÐÌÅÎÉÅ ×ÓÅÈ ÚÁÄÁÞ ÉÚ ÅÇÏ AV> ÓÐÉÓËÁ ÏÖÉÄÁÎÉÑ É ÐÅÒÅÔÙËÁÎÉÅ ÉÈ × ÓÐÉÓÏË AV> ×ÙÐÏÌÎÅÎÉÑ.

äÁ, _é_ ×ÙÚÏ× ÐÌÁÎÉÒÏ×ÝÉËÁ. ëÏÔÏÒÙÊ ÎÅÌØÚÑ ÄÅÌÁÔØ ÉÚ ÏÂÙÞÎÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ.

AV>>> ÷ RTOS, ÏÂÙÞÎÏ, ÐÅÒÅÐÌÁÎÉÒÏ×ËÁ ÐÒÏÉÓÈÏÄÉÔ ËÁÖÄÙÊ ÒÁÚ ÐÒÉ ×ÙÈÏÄÅ ÉÚ AV>>> ÌÀÂÏÇÏ ÐÒÅÒÙ×ÁÎÉÑ, Ô.Ë. × ÎÉÈ ×ÙÓÔÁ×ÌÑÀÔÓÑ ÓÅÍÁÆÏÒÙ. åÓÌÉ ÓÅÍÁÆÏÒÙ AV>>> ÎÅÂÙÌÉ ×ÙÓÔÁ×ÌÅÎÙ, ÔÏ ÐÅÒÅËÌÀÞÅÎÉÅ ËÏÎÔÅËÓÔÁ ÐÒÏÓÔÏ ÎÅ ÐÒÏÉÓÈÏÄÉÔ.

HZ>> ÷ÓÅ ÔÁË É ÅÓÔØ. HÏ ÔÕÔ ÏÂÒÁÂÏÔËÁ ÂÕÄÅÔ ÏÔÌÏÖÅÎÁ ËÁË ÍÉÎÉÍÕÍ ÄÏ HZ>> ÐÅÒ×ÏÇÏ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÑ. á ËÏÇÄÁ ÏÎÏ ÎÁÓÔÕÐÉÔ?

AV> äÏÌÖÎÏ ÎÁÓÔÕÐÉÔØ ÐÒÉ ×ÙÈÏÄÅ ÉÚ ÏÂÒÁÂÏÔÞÉËÁ. õ ÍÅÎÑ ÎÁÐÒÉÍÅÒ ×ÓÅ ÐÒÅÒÙ×ÁÎÉÑ AV> ÐÅÒÅÈ×ÁÔÙ×ÁÀÔÓÑ ÑÄÒÏÍ É ÔÏÌØËÏ ÐÏÔÏÍ ÕÖÅ AV> ÆÏÒ×ÁÄÑÔÓÑ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÍ ÏÂÒÁÂÏÔÞÉËÁÍ. ðÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ÏÂÒÁÂÏÔÞÉË AV> ×ÓÅÇÄÁ ×ÏÚ×ÒÁÝÁÅÔ ÕÐÒÁ×ÌÅÎÉÅ ÑÄÒÕ.

óËÏÌØËÏ Õ ÔÅÂÑ ÔÁËÔÏ× ÚÁÎÉÍÁÅÔ ÓÏÈÒÁÎÅÎÉÅ+×ÏÓÓÔÁÎÏ×ÌÅÎÉÅ ËÏÎÔÅËÓÔÁ + ÐÅÒÅËÌÀÞÅÎÉÅ ÎÁ ÓÔÅË ÐÒÅÒÙ×ÁÎÉÊ + ×ÙÚÏ× ÐÌÁÎÉÒÏ×ÝÉËÁ ÐÒÉ ×ÙÈÏÄÅ ÉÚ ÐÒÅÒÙ×ÁÎÉÑ? óËÏÌØËÏ ÔÁËÔÏ× ÕËÌÁÄÙ×ÁÅÔÓÑ × ÍÉËÒÏÓÅËÕÄÎÄÕ? þÔÏ-ÔÏ ÍÎÅ ÐÏÄÓËÁÚÙ×ÁÅÔ, ÞÔÏ ÎÅËÏÔÏÒÏÅ ÎÅÐÏÎÉÍÁÎÉÅ ËÒÏÅÔÓÑ ÇÄÅ-ÔÏ ÚÄÅÓØ.

HZ>> íÏÖÅÔ ×ÓÅ ÓÐÑÔ ÍÅÒÔ×ÙÍ HZ>> ÓÎÏÍ × ÏÖÉÄÁÎÉÉ Ó×ÏÉÈ ÓÏÂÙÔÉÊ. ðÏÎÑÔÎÏ, ÞÔÏ ÐÒÉ ÐÅÒ×ÏÍ ÖÅ ÐÒÅÒÙ×ÁÎÉÉ HZ>> ÏÔ ÓÉÓÔÅÍÎÏÇÏ ÔÁÊÍÅÒÁ.., ÎÏ ×ÓÅ ÖÅ.

AV> HÅÔ. óÍ. ×ÙÛÅ. ñ ÐÒÁ×ÉÌØÎÏ ÐÏÎÑÌ, ÞÔÏ ÚÁÄÁÞÉ Õ ÔÅÂÑ ÐÅÒÅËÌÀÞÁÀÔÓÑ ÎÅ ÐÏ AV> ÓÏÂÙÔÉÑÍ (ËÁË × ÌÀÂÏÊ ÎÁÓÔÏÑÝÅÊ RTOS) Á ÐÏ AV> ÓÉÓÔÅÍÎÏÍÕ ÔÁÊÍÅÒÕ?

÷Ï-ÐÅÒ×ÙÈ, ÎÅ ÚÁÄÁÞÉ, Á ÚÁÄÁÞÁ. ÷ ÏÄÎÏÍ ËÏÎËÒÅÔÎÏÍ ÐÒÏÅËÔÅ. çÄÅ ÂÁÊÔÙ Ó ÐÒÉÅÍÎÉËÁ ÐÒÏÓÔÏ ÓËÌÁÄÙ×ÁÀÔÓÑ × ÂÕÆÅÒ (ÂÅÚ ÍÁÎÉÐÕÌÑÃÉÊ Ó ËÏÎÔÅËÓÔÁÍÉ). á ÂÕÆÅÒ ÏÂÒÁÂÁÔÙ×ÁÅÔÓÑ ÐÏ ÔÁÊÍÅÒÕ. ïÄÉÎ ÒÁÚ × ÐÏÌÔÏÒÙ ÍÉÌÌÉÓÅËÕÎÄÙ. ÷ ÄÒÕÇÉÈ ÓÌÕÞÁÑÈ ÄÅÌÁÅÔÓÑ ÐÏ-ÄÒÕÇÏÍÕ, × Ô.Þ. É ÐÏ ÓÏÂÙÔÉÑÍ. ÷Ï-×ÔÏÒÙÈ, ÓÉÓÔÅÍÎÙÊ ÔÁÊÍÅÒ - ÜÔÏ ÔÏÖÅ ÇÅÎÅÒÁÔÏÒ ÓÏÂÙÔÉÊ. ïÎ ÎÉÞÅÍ ÎÅ ÈÕÖÅ ÌÀÂÏÇÏ ÄÒÕÇÏÇÏ ÉÓÔÏÞÎÉËÁ ÐÒÅÒÙ×ÁÎÉÊ. á ×ÏÏÂÝÅ, ÄÅÌÁÀ ÐÏ-ÒÁÚÎÏÍÕ, ÇÄÅ ËÁË ÕÄÏÂÎÅÅ. îÅ ÍÏÇÕ ÓËÁÚÁÔØ, ÞÔÏ ËÁËÏÊ-ÔÏ ÏÄÉÎ ÓÐÏÓÏ ÏÄÎÏÚÎÁÞÎÏ ÌÕÞÛÅ ÏÓÔÁÌØÎÙÈ. åÓÌÉ ÓËÏÒÏÓÔØ ÎÅ ÔÒÅÂÕÅÔÓÑ, ÍÏÖÎÏ ÒÁÚÍÅÎÑÔØ ÅÅ ÎÁ ÕÄÏÂÓÔ×Ï ÉÓÐÏÌØÚÏ×ÁÎÉÑ. åÓÌÉ ÎÅÔ, ÚÎÁÞÉÔ ÎÅÔ.

HZ>> ÷ÔÏÒÏÊ ÍÏÍÅÎÔ. ñ (ÐÏ ÏÐÉÓÁÎÎÙÍ ×ÙÛÅ ÐÒÉÞÉÎÁÍ) ÄÅÌÁÌ ÎÅÓËÏÌØËÏ ÎÅ HZ>> ÔÁË. ÷ ÐÒÅÒÙ×ÁÎÉÉ ÂÙÌÏ ÐÒÏÓÔÏ ÔÕÐÏÅ ÐÒÏÔÁÌËÉ×ÁÎÉÅ ÐÒÉÎÑÔÏÇÏ ÂÁÊÔÁ × HZ>> ËÏÌØÃÅ×ÏÊ ÂÕÆÅÒ. HÉËÁËÏÇÏ ÁÎÁÌÉÚÁ ÚÁÇÏÌÏ×ËÏ× ÐÁËÅÔÁ, ËÏÌÉÞÅÓÔ×Á HZ>> ÐÒÉÎÑÔÙÈ ÂÁÊÔ, ËÏÎÔÒÏÌÑ ÔÁÊÍÁÕÔÏ×. ÷ÅÓØ ÁÎÁÌÉÚ É ÏÂÒÁÂÏÔËÁ HZ>> ÐÒÏÉÚ×ÏÄÉÌÉÓØ × ÏÔÄÅÌØÎÏÍ ÐÒÏÃÅÓÓÅ, ËÏÔÏÒÙÊ HZ>> ÐÒÏÓÙÐÁÌÓÑ ÐÏ ÔÁÊÍÅÒÕ ÒÁÚ × ÐÏÌÔÏÒÙ ÍÉÌÌÉÓÅËÕÎÄÙ (ÂÕÆÅÒ 32 ÂÁÊÔÁ, HZ>> ÓËÏÒÏÓÔØ 38400), ×ÙÇÒÅÂÁÌ ÐÒÉÎÑÔÏÅ ÉÚ ÂÕÆÅÒÁ ÐÒÉÅÍÎÉËÁ É ÄÅÌÁÌ ×ÓÀ HZ>> ÏÓÔÁÌØÎÕÀ ÒÁÂÏÔÕ. ôÁËÏÅ ÒÅÛÅÎÉÅ ÍÎÅ ËÁÖÅÔÓÑ ÂÏÌÅÅ ÓÂÁÌÁÎÓÉÒÏ×ÁÎÎÙÍ HZ>> (ÏÔÞÁÓÔÉ ÐÏÜÔÏÍÕ É ÎÅ ÄÏÛÌÉ ÒÕËÉ ÄÏ ×ÁÒÉÁÎÔÁ Ó Ä×ÕÍÑ ISR :)

AV> üÔÏ ËÒÁÊÎÅ ÇÏÒÂÁÔÏÅ (ÎÁ ÍÏÊ ×ÚÇÌÑÄ) ÉÓÐÏÌØÚÏ×ÁÎÉÅ ×ÏÚÍÏÖÎÏÓÔÅÊ RTOS. ÷ÅÄØ AV> ÔÙ ÄÁÖÅ ÎÅ ÍÏÖÅÛØ ÎÏÒÍÁÌØÎÏ ÓÉÇÎÁÌÉÔØ ÉÚ AV> ÄÒÁÊ×ÅÒÁ (ÏÂÒÁÂÏÔÞÉË ÐÒÅÒÙ×ÁÎÉÑ ÅÓÔØ ÐÏ ÓÕÔÉ ÄÒÁÊ×ÅÒ) ÏÓÎÏ×ÎÏÍÕ ÐÒÏÃÅÓÓÕ. AV> þÅÍ ÜÔÏ ÌÕÞÛÅ ËÏÏÐÅÒÁÔÉ×ËÉ, ÇÄÅ × ÇÌÁ×ÎÏÍ AV> ÃÉËÌÅ ÐÌÁÎÉÒÏ×ÝÉËÁ ÏÄÎÁ ÉÚ ÚÁÄÁÞ ÐÒÏ×ÅÒÑÅÔ ÓÏÄÅÒÖÉÍÏÅ ÜÔÏÇÏ ÂÕÆÅÒÁ?

çÏÒÂÁÔÏÅ ÏÎÏ ÉÌÉ ÎÅÔ, ×ÏÐÒÏÓ ÐÒÅÄÐÏÞÔÅÎÉÊ. óÕÄÉ ÓÁÍ: ÐÒÉ ÓËÏÒÏÓÔÉ 115200, ×ÒÅÍÑ ÍÅÖÄÕ ÂÁÊÔÁÍÉ ÐÏÒÑÄËÁ 87 ÍËÓ. ÷ÒÅÍÑ ÚÁÈÏÄÁ × ÐÒÅÒÙ×ÁÎÉÅ Ó ÓÏÈÒÁÎÅÎÉÅÍ/×ÏÓÓÔÁÎÏ×ÌÅÎÉÅÍ ËÏÎÔÅËÓÔÁ, ÐÅÒÅËÌÀÞÅÎÉÅÍ ÎÁ ÓÔÅË ÐÒÅÒÙ×ÁÎÉÊ, ×ÙÚÏ×ÏÍ ÐÌÁÎÉÒÏ×ÝÉËÁ ÎÁ ×ÙÈÏÄÅ ÚÁÎÉÍÁÅÔ ÐÏÒÑÄËÁ 35-45 ÍËÓ (AVR @8MHz). üÔÏ ÔÏÌØËÏ ÎÁËÌÁÄÎÙÅ ÒÁÓÈÏÄÙ. á ÅÝÅ ÎÁÄÏ ÚÁÇÏÌÏ×ÏË ÐÁËÅÔÁ ÁÎÁÌÉÚÉÒÏ×ÁÔØ, ËÏÌÉÞÅÓÔ×Ï ÂÁÊÔ ÓÞÉÔÁÔØ - ÜÔÏ ÅÝÅ ÄÏÂÁ×ÉÔ ÄÅÓÑÔÏË, ÄÒÕÇÏÊ. á ÅÓÌÉ ÅÝÅ ÏÎÏ Ó ÄÒÕÇÉÍÉ ÐÒÅÒÙ×ÁÎÉÑÍÉ ÐÅÒÅÓÅÞÅÔÓÑ, ËÏÔÏÒÙÅ ÔÏÖÅ ËÏÎÔÅËÓÔÙ ÍÅÞÕÔ? é ×ÏÏÂÝÅ, ÔÁËÁÑ ÐÌÏÔÎÏÓÔØ ËÏÄÁ, ×ÙÐÏÌÎÑÅÍÏÇÏ × ËÒÉÔÉÞÅÓËÉÈ ÓÅËÃÉÑÈ, ÎÉ Ë ÞÅÍÕ ÈÏÒÏÛÅÍÕ ÎÅ ÐÒÉ×ÅÄÅÔ, ÄÁÖÅ ÅÓÌÉ × ËÏÎËÒÅÔÎÏÍ ÓÌÕÞÁÅ ×ÓÅ ÕÓÐÅ×ÁÅÔ. ôÕÔ, ÉÍÈÏ, ËÁË ÒÁÚ ÇÏÒÂÁÔÏÅ ÒÅÛÅÎÉÅ - ÜÔÏ ÝÅÌËÁÔØ ËÏÎÔÅËÓÔÁÍÉ É ÐÒÏÞÅÊ ïóÅ×ÏÊ ÔÒÅÂÕÈÏÊ ÎÁ ËÁÖÄÏÍ ÂÁÊÔÅ - Ô.Å. ËÏÇÄÁ ÚÁ×ÅÄÏÍÏ ÉÚ×ÅÓÔÎÏ, ÞÔÏ ÒÅÁÌØÎÏÅ ÐÅÒÅÐÌÁÎÉÒÏ×ÁÎÉÅ ÎÕÖÎÏ ÄÅÌÁÔØ ÏÄÉÎ ÒÁÚ ÎÁ ÜÎ ÂÁÊÔ. á ÐÒÏÓÔÏÅ ÐÒÅÒÙ×ÁÎÉÅ ÚÁÎÉÍÁÅÔ ÍÅÎØÛÅ ÄÅÓÑÔËÁ ÍËÓ ÄÁÖÅ × ÓÌÕÞÁÅ ËÏÌØÃÅ×ÏÇÏ ÂÕÆÅÒÁ. ÷ÏÔ É ÒÅÛÁÊ, ÇÄÅ ÇÏÒÂÁÔÏ, Á ÇÄÅ ÎÅÔ. é ×ÁÒÉÁÎÔ Ó Ä×ÕÍÑ ISR ÓÏ×ÓÅÍ ÎÅ ÔÁËÏÊ ÕÖ ÁÂÓÕÒÄÎÙÊ. ïÞÅÎØ ÖÁÌØ, ÞÔÏ × íë ÄÏ ÓÉÈ ÐÏÒ ÎÅ ÓÔÁ×ÑÔ ÎÁ ËÏÍÍÕÎÉËÁÃÉÏÎÎÕÀ ÐÅÒÉÆÅÒÉÀ ÈÏÔÑ ÂÙ ÎÅÂÏÌØÛÉÅ FIFO - ÜÔÏ ÉÚÂÁ×ÉÌÏ ÂÙ ÏÔ ÍÁÓÓÙ ÇÅÍÏÒÒÏÑ.
13-Mar-05 16:03 Olga Nonova wrote to Andy Mozzhevilov:

ON> Да, наверное и не надо. Hо динамическое создание и удаление процессов ON> нужно. ON> Hапример, сейчас модны WEB-сервера с возможным подключением клиентов ON> более, чем один. А сколько их будет- оценить трудно. Эту же проблему гораздо легче решить одним едиснвтенным процессом (или, допустим, по одному процессу на одно физическое подключение - будь то сетевая карта, COM, ...). Процесс получает из очереди (туда суёт драйвер) MAC-пакет - всё равно это делает один процесс, а затем вместо выбора по полям пакета - какому готовому процессу пользователя перслать этот пакет или породить новый - выбрать из массива/списка структуру, связанную с этим клиентом или найти в массиве свободную структуру (добавить в список распределённую по malloc). В структуре - всё связанное с этим подключением (это были бы локальные переменные процесса в многопроцессной модели). И один код, построенный по принципу автомата (машины состояний). Такой сервер и работать быстрее должен - "контекст процесса" заменяется на "контекст соединения", а последний переключается сменой одного указателя.

ON> Пол-года вообще может не ON> быть ни одного. Динамическое размещение процессов решает эту проблему, Этот единственый процесс можно породить статически и пусть спит пол-года. ОЗУ он жрать не будет (кроме *одного* описателя процесса), если структуры, отвечающие за соедниение - выделять динамически. Код в ПЗУ он жрёт всё равно, раз он вообще есть в системе. Так что нужно просто правильно комбинировать подходы.

ON>>> Hо на практике, для неймановской архитектуры, которой ON>>> обладают подавляющее большинство мелких однокристаллок, Тебе уже сказали - что-то ты путаешь в нейманах/гарвардах.

ON>>> никакой ON>>> независимости Cи-программ от платформы достичь не удается. *программ* - да, не удаётся. *модулей* - смотря каких, чем дальше от железа (процессора) - тем проще сделать независимым (с небольшим конфигурированием через h-файл либо проекто-зависимые функции, которые тоже могут быть #define или inline в том h-файле).

13-Mar-05 19:53 Olga Nonova wrote to Andy Mozzhevilov:

ON>>> Hа приложение ничего не остается. ON>>> Кроме того, там не хватает внутреннего 4К RAM и люди вынуждены ставить ON>>> дополнительные 64K чтобы все это работало как-то.

AM>> А если надо более или менее полноценный TCP/IP, то внешнюю память AM>> придется ставить независимо от наличия ОС.

ON> Вот именно! Для связных задач нужны буферы обмена внушительных размеров. Так причём тут ОС??? Такую задачу как не пиши - памяти под буферы пойдёт много. Так и в том проекте - внешнее ОЗУ не из-за ОС, а из-за задачи.

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

ON> Все это правильно. Hо, постепенно мы так отходим от изначальной мечты- ON> все ON> упихать в мелкую однокристаллку за счет жуткой экономии байтов и битов. ON> Ведь, именно эта идея лежит в снове операционки Harry. Нет у него идеи упихать в маленькую однокристалку толстый проект, который независимо ни от чего требует кучу ОЗУ и немеряно кода. У него есть идея задачи, которые с лезут в 512-1K байт ОЗУ (т.е. уровень начиная от ATmega8, ATmega48/88/168) решать по той же идеологии.

Чем это хуже, чем твоё желание наплодить по процессу на каждое TCP/IP подключение - я не понимаю.

ON> Hу где же тут интуиция, когда я лично наблюдала в дизассем,лере, как Си ON> компилятор копирует из Flash в SRAM константы? Зачем? Можете обьяснить? Потому, что C-компилятор -- не телепат. Ему сказали const - он только не даст обратиться к этому объекту на запись. А может ты сама хочешь, чтобы строка лежала в ОЗУ и чтобы обращение к ней было более простым и быстрым? Есть же разница - обращаться разными командами (lds/ldd в случае AVR) или только одной (lpm). Надо было почиать описание компилятора и разобраться, как ему указать - где хранить строки и как к ним обращаться.

ON> Это все в классической теории. Hа практике же Си компиляторы для AVR ON> начинают ON> пользоваться стеком для передачи формальных параметров в процедуры, ON> только когда исчерпан запас рабочих регистров R16...R23. А для PDP-11 - когда исчерпан запас R2..R5 (если я не забыл). Ну и что?

ON> Для стека данных ON> используется только регистры YL,YH. И это вы называте платформонезависимымым ON> решением? А для PDP-11 - только R6. Ну и что?

Какая мне разница - во что оно скомпилируется? Платфоромнезависим - исходный текст (понтяно, что не всего, а аппаратно-независимого).

ON> которые могут располагаться только в ОЗУ. Попробуйте средствами компилятора ON> Cи ON> в неймановской архитектуре создать в SRAM программный код и отдать ON> управление ему. В гарвардской же такое делается одним движением. И это будет платфоромнезависимо??? :-) В гарвардской это вообще невозможно в силу того, что адресное пространство кода - совсем другое, из адресного пространства данных процессор код выбирать не умеет (даже если извернуться и объединить их физически, как одним элементом 555ЛИ1 дать MCS51 использовать ОЗУ и как код и как данные - выбирается код всё равно из пространства кода). В неймановской - а тоже не во всякой, если защита памяти есть, то "обычная" программа не сможет записать в область ОЗУ кода и выполнить команды из области ОЗУ данных, несмотря на то, что они в одном пространстве.

ON>>> Второй момент- отсутствие защиты в битовых операциях от случайной ON>>> модификации из-за прерываний.

AM>> Можно узнать, в каком языке эта защита есть?

ON> Hапример в PLM-51 от Intel. Там используются нормальные команды обращения Это не в языке, это в процессоре. Переменные типа bit для MCS51, существующие во всех расширениях C для этого кристалла - нормально обслуживаются при помощи setb/clr. Но вот если я захочу изменить

3-битовое поле - то и PL/M-51 не будет "надёжным", так как такова архитектура процессора.

AM>> Что там особо ценного в библиотеках?

ON> Самому не нужно заниматься рутиной математики, строками, TCP/IP. Времени ON> отнимает - тучу. А без самого языка высокого уровня вполне можно обходится ON> на одном лишь макроассемблере. На ошибки в работе со строками не нарывался (Avocet C51, Keil C51, IAR/AVR, avr-gcc). С математикой - у меня её сложной не было. Подпрограмма вычисления CRC16 используется одна и та же и в проектах на MCS51, и AVR, и win32 (BorlandC). Нормальная библиотека TCP/IP - вещь вообще независимая от процессора, если в библиотеке есть глюк, то её можно компилировать хоть для пентиума - глюк останется.

ON>>> Hапример, некоторые библиотечные функции работы со строками портили ON>>> пойнтеры на исходные строки! Вряд-ли такое можно считать фичей. А как это? Может что-то типа того, что компилятор строки в ОЗУ разместил - просто что-то ещё прочесть надо было??

wbr,

13-Mar-05 23:37 Maxim Polyanskiy wrote to Oleksandr Redchuk:

MP>>> Скажем у тебя usart имеет самый высокий уровень а обработчик MP>>> пакетов должен быть с уровнем выше main но ниже usart. Берешь MP>>> любое незадействованное в программе прерывание ставишь ему низкий MP>>> приоритет и взводишь в теле usart interupt его битик в точке MP>>> приема пакета. Оно будет вызванно сразу-же по выходу из usart, OR>> Тю, зачем? MP> Красиво, понятно, 100% будет везде работать. Не "везде", а только там, где найдутся свободные прерывания (что? и ты тоже ставишь процессоры с лишними ресурсами? :-)) и где можно программно инициировать аппаратное прерывание путём записи битика. Флаги прерываний-то запросто могут быть read-only со сбросом чтением регистра или со сбросом записью единицы - т.е. установить программно флаг прерывания невозможно.

Так что "100% будет работать" на MCS51, но там же 100% будет работать и очистка через reti.

OR>> Очистили логику прерываний выполнением reti - теперь все остальные OR>> прерывания будут спокойно прерывать данное, оно уже выполняется OR>> на уровне фоновой. MP> Классический Синклеризм. Hо раз работает то в принципе можно и так. Взведение программно бита прерывания от аппаратуры - точно так же синклеризм или пикоманство (по вкусу), так как есть использование специфических особенностей данного железа.

А понижение приоритета процессора после того, как драйвер выполнил критическую часть - подход более древний чем сам MCS51 и более прямой, более экономичный (не делаются лишние push/pop-ы и менее приоритетная часть драйвера часть информаци получает уже на регистрах). В данном случае с вызовом голого reti кривизна только в том, что у MCS51 биты IPL программно недоступны и приводить в состояние "разрешено" их приходится той единственной командой, которая это делает.

wbr,

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required