WINAVR

Sep 05, 2005 Last reply: 20 years ago 816 Replies
ðÒÉ×ÅÔ Nickita!

24 Oct 05 22:30, Nickita A Startcev ÐÉÓÁÌ Alex Mogilnikov:

AM>> úÁ ÍÅÎÑ ×ÓÅ ÚÁ×ÉÓÉÍÏÓÔÉ ËÏÍÐØÀÔÅÒ ÏÔÓÌÅÖÉ×ÁÅÔ. é ×ÓÅ ÞÔÏ ÎÁÄÏ AM>> ÐÅÒÅÓÏÂÉÒÁÅÔ ÂÅÚ ÍÏÉÈ ÕËÁÚÁÎÉÊ.

NS> ëÓÔÁÔÉ, ÉÎËÌÀÄÎÉËÉ × ÚÁ×ÉÓÉÍÏÓÔÉ ÒÕËÁÍÉ ÐÒÏÐÉÓÙ×ÁÅÛØ ÉÌÉ Õ ÔÅÂÑ ÅÓÔØ NS> ÈÉÔÒÙÊ ÎÁ×ÏÒÏÔ ×ÏËÒÕÇ make? ÉÌÉ ÔÙ (gnu) make HÅ ÉÓÐÏÌØÚÕÅÛØ?

ñ ÕÖÅ ÇÏ×ÏÒÉÌ, ÞÔÏ ËÒÏÍÅ ÉÍÅÎ ÍÏÄÕÌÅÊ × ÓÔÒÏÞËÅ SRC ÎÉÞÅÇÏ ÒÕËÁÍÉ ÎÅ ÐÒÏÐÉÓÙ×ÁÀ. HÉÞÅÇÏ ÈÉÔÒÏÇÏ ÎÅ ÉÓÐÏÌØÚÕÀ, ×ÓÅ ÐÒÏÓÔÏ:

======== Makefile (ÉÚÂÒÁÎÎÙÅ ÍÅÓÔÁ) ========= SRC = crt0 crtbegin crtend irqfiq tzlock s3c4530 syscalls

DEP = $(addsuffix .d,$(SRC))

%.d: %.c $(CC) $(CFLAGS) -MM -o $@ $<

depend: $(DEP) cat $(DEP) >$@

include depend =============================================

make ÇÎÕÔÙÊ, ÓÍÏÔÒÉ ÏÐÉÓÁÎÉÅ ÏÐÃÉÉ -MM × ÄÏËÅ ÐÏ gcc.

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... úÁÐÁÄÎÏ-ÕÒÁÌØÓËÏÅ ÒÅÇÉÏÎÁÌØÎÏÅ ÏÂÝÅÓÔ×Ï ÄÏÂÒÏ×ÏÌØÎÙÈ ÕÞÒÅÄÉÔÅÌÅÊ.

Hello Ivan.

Mon Oct 24 2005 22:36, Ivan Melnikov wrote to me:

IM>>> ðÏÎÑÔÎÏ. á ÞÔÏ ÚÁ ÆÉÒÍÁ ÉÈ ×ÙÐÕÓËÁÅÔ ? DT>> Texas Instruments. DT>>

IM> á, ÐÒÅÄÓÔÁ×ÉÌ, ÞÔÏ ÜÔÏ ÚÁ ÐÒÏÃÅÓÓÏÒ. ñ Ó ÎÉÍ ÎÅ ÒÁÂÏÔÁÌ É ÒÁÂÏÔÁÔØ ÎÅ IM> ÖÁÖÄÕ.

üÔ'ÐÏÞÅÍÕ? :) ïÔÌÉÞÎÙÊ íë. ôÏÌØËÏ ÎÅÂÙÓÔÒÙÊ É Ë ÐÏÍÅÈÁÍ ÞÕÔËÉÊ. :)

IM> ðÒÁ×ÉÌØÎÏ Cygnal. IM> óÅÊÞÁÓ ÍÎÏÇÉÅ ÎÁ ÎÅÇÏ ÐÅÒÅÈÏÄÑÔ.

äÁ ÕÓÔÁÒÅÌÁ ÁÒÈÉÔÅËÔÕÒÁ x51... ÎÁÄÏ ÎÁ 16-ÂÉÔËÉ ÐÅÒÅÈÏÄÉÔØ. ëÏÉÉ ÄÅÛÅ×ÅÀÔ. èÏÔÑ, ËÏÎÅÞÎÏ, ÄÏ ÓÉÈ ÐÏÒ ÎÏÍÅÎËÌÁÔÕÒÁ ËÌÏÎÏ× x51 - ÓÁÍÁÑ ÂÏÌØÛÁÑ.

IM> äÁ, ÅÝÅ ÐÒÉÄÅÔÓÑ ÐÏÚÎÁ×ÁÔØ ÐÏÔÉÈÏÎØËÕ C167,

÷Ï, ÜÔÏ ÎÏÒÍÁÌØÎÙÊ íë.

IM> äÁ, ×ÏÔ ÞÔÏ ÍÅÎÑ × óÉ ÏÔÔÁÌËÉ×ÁÅÔ: IM> ðÁÒÎÉÛËÁ ÎÁÐÉÓÁÌ ÎÁ óÉ ÐÒÏÇÒÁÍÍÕ É × ÎÅÊ ÂÙÌÁ ×ÏÔ ÔÁËÁÑ IM> ÓÔÒÏÞËÁ IM> bit i; IM> i=0; IM> while(i!=1); IM> ÔÁË ×ÏÔ ÄÁÎÎÁÑ ÓÔÒÏÞËÁ ÎÅ ÐÏÚ×ÏÌÑÌÏ ÐÒÏÇÒÁÍÍÅ ÒÁÂÏÔÁÔØ, Á IM> ËÏÇÄÁ IM> ÚÁÐÉÓÁÌÉ ×ÏÔ ÔÁË IM> while(i==0); IM> ×ÓÅ ÚÁÒÁÂÏÔÁÌÏ. IM> ÷ ÔÏÍ É × ÄÒÕÇÏÍ ÓÌÕÞÁÅ ÇÅÎÅÒÉÒÏ×ÁÌÓÑ ÏÄÉÎ É ÔÏÔ ÖÅ ËÏÄ. IM> ÷ÏÔ ÔÁË.

þÅÇÏ-ÔÏ Ñ ÔÕÔ ÎÅ ÐÏÎÑÌ. :) åÓÌÉ ÇÅÎÅÒÉÌÓÑ ÔÏÔ ÖÅ ËÏÄ, ÔÏ É ÒÁÂÏÔÁÔØ ÄÏÌÖÎÏ ÏÄÉÎÁËÏ×Ï. ôÙ × ÌÉÓÔÉÎÇ ÁÓÓÅÍÂÌÅÒÎÙÊ ÈÏÒÏÛÏ ÓÍÏÔÒÅÌ? á ÍÅÎÑ ÌÉÞÎÏ ÏÔ C ÏÔÔÁÌËÉ×ÁÅÔ "ÎÅÐÒÏÉÚÎÏÓÉÍÏÓÔØ" ÓÉÎÔÁËÓÉÓÁ É "ÇÏÌÙÅ ÐÒÏ×ÏÄÁ": ÕËÁÚÁÔÅÌÉ ÇÄÅ ÎÁÄÏ É ÎÅ ÎÁÄÏ, ÈÒÅÎÏ×ÉÎÙ ×ÒÏÄÅ printf... C++ ÕÖÅ ÐÏÚ×ÏÌÑÅÔ ÏÂÈÏÄÉÔØ ÔÁËÉÅ ÍÅÓÔÁ ÓÔÏÒÏÎÏÊ. HÁÐÒÉÍÅÒ, ÉÓÐÏÌØÚÏ×ÁÔØ ÐÅÒÅÄÁÞÕ ÁÒÇÕÍÅÎÔÏ× × ÆÕÎËÃÉÉ ÐÏ ÓÓÙÌËÅ. é ÐÒÅÐÒÏÃÅÓÓÏÒ, É ÜÌÌÉÐÓÉÓ ÔÁÍ deprecated.

Dimmy.

Hello Vladimir.

Tue Oct 25 2005 02:21, Vladimir Vassilevsky wrote to Nickita A Startcev:

KF>>> HÁÐÒÉÍÅÒ, ÐÉÓÀËÕ ÌÕÞÛÅ 32 ÂÉÔ ÉÎÔ, Á ÅÓÌÉ ÔÙ ÅÍÕ 16 ÂÉÔ ÂÕÄÅÛØ KF>>> ÄÁ×ÁÔØ, ÏÎ ÎÁÞÎÅÔ ÔÏÒÍÏÚÉÔØ. NAS>> ëÓÔÁÔÉ, Á ÎÁÓËÏÌØËÏ ÔÏÒÍÏÚÉÔØ ÂÕÄÅÔ?

VV> It depends. ÷ 32-ÂÉÔÎÏÍ ÓÅÇÍÅÎÔÅ 16-ÂÉÔÎÙÅ ËÏÄÁ ÏÐÅÒÁÃÉÉ ÉÍÅÀÔ VV> ÌÉÛÎÉÊ ÐÒÅÆÆÉËÓ, ÔÁË ÞÔÏ ÒÁÚÁ × ÐÏÌÔÏÒÁ × ÈÕÄÛÅÍ ÓÌÕÞÁÅ.

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

Dimmy.

Hello Kirill.

Tue Oct 25 2005 01:29, Kirill Frolov wrote to Andrey Solomatov:

KF> ïÎ ÎÁ ÄÅËÌÁÒÁÃÉÉ ÓÌÅÄÕÀÓÛÅÊ ÆÕÎËÃÉÉ ÓÌÏÍÁÅÔÓÑ. òÏ×ÎÏ ÔÁËÖÅ ËÁË É KF> ÐÁÓÃÁÌ.

ó ÐÁÓËÁÌÅÍ ÈÕÖÅ, ÏÎ ×ÌÏÖÅÎÎÙÅ ÐÒÏÃÅÄÕÒÙ ÄÏÐÕÓËÁÅÔ.

KF>>> á ×ÙÄÁ×ÁÔØ ÐÏ ÏÄÎÏÊ ÏÛÉÂËÅ ÚÁ ÒÁÚ ÞÔÏ, ÌÕÞÛÅ? AS>> ðÏÓÌÅ ÐÅÒ×ÏÊ ÖÅ ÏÛÉÂËÉ ÆÁÊÌ ×ӣ ÒÁ×ÎÏ ÂÕÄÅÔ ÐÅÒÅËÏÍÐÉÌÉÒÏ×ÁÔØÓÑ.

KF> HÏ ÉÓÐÒÁ×ÌÅÎÏ ÍÏÖÅÔ ÂÙÔØ ÂÏÌÅÅ ÏÄÎÏÊ ÏÛÉÂËÉ. âïìåå ïäHïê.

åÓÌÉ ËÏÍÐÉÌÑÔÏÒ ÂÙÓÔÒÙÊ, ËÁË BP, ÕÄÏÂÎÅÅ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÔØ ÒÅÄÁËÔÏÒ ÎÁ ÐÅÒ×ÏÊ ÖÅ ÏÛÉÂËÅ É × ÓÔÒÏËÅ ÓÔÁÔÕÓÁ ×ÙÄÁ×ÁÔØ ÄÉÁÇÎÏÓÔÉËÕ. éÓÐÒÁ×ÉÌ, ÓÎÏ×Á ÖͣÛØ ÎÁ Build.

Dimmy.

Hello Kirill.

Tue Oct 25 2005 01:40, Kirill Frolov wrote to me:

DT>> ??? üÔÏ ÐÏÞÅÍÕ Åݣ "ÐÒÁËÔÉÞÅÓËÉ ÎÅÌØÚÑ"? ôÅËÓÔÏ×ÁÑ ÓÔÒÏËÁ ÎÁ ÜËÒÁÎÅ DT>> ÉÌÉ ÎÁ ÓÔÒÁÎÉÃÅ ÐÒÉÎÔÅÒÁ ÚÁÎÉÍÁÅÔ 80 ÓÉÍ×ÏÌÏ×, ÎÕ ÐÕÓÔØ 100, 120.

KF> á × ÆÁÊÌÅ -- ÓËÏÌØËÏ ÕÇÏÄÎÏ. þÔÏÂÙ ÎÅ ÄÁÌÅËÏ ÚÁ ÐÒÉÍÅÒÁÍÉ hÏÄÉÔØ KF> ×ÏÚØÍÅÍ ÆÉÄÏ-ÓÏÆÔ. åÇÏ ÎÁ ÐÁÓËÁÌÅ ÐÒÉÎÃÉÐÉÁÌØÎÏ ÐÉÓÁÔØ ÎÅ×ÏÚÍÏÖÎÏ, KF> ÅÓÌÉ ÐÏÌØÚÏ×ÁÔØÓÑ ÔÏÌØËÏ ×ÓÔÒÏÅÎÎÙÍÉ ÓÔÒÏËÁÍÉ.

åÓÔØ Åݣ É ×ÓÔÒÏÅÎÎÙÊ PChar - ÓÉÛÎÙÅ ÓÔÒÏËÉ. HÏ ÉÍÉ, ËÏÎÅÞÎÏ, ÐÏÌØÚÏ×ÁÔØÓÑ ÄÁÌÅËÏ ÎÅ ÔÁË ÕÄÏÂÎÏ.

DT>> á × 32-ÂÉÔÎÙÈ ËÌÏÎÁÈ ÐÏÑ×ÉÌÁÓØ AnsiString - ÄÉÎÁÍÉÞÅÓËÁÑ É DT>> ÎÅÏÇÒÁÎÉÞÅÎÎÁÑ.

KF> Esli by u babushki byl by hujj...

ôÁË ×ÅÄØ É × C++ ÔÁËÉÈ ÎÅÔÕ. :)

DT>>>> é ÂÏÌÅÅ ÎÁÇÌÑÄÎÏ, ÞÅÍ printf. KF>>> úÁÔÏ ÐÒÉÎÔÆ ÐÒÏÓÔÏ ÅÓÔØ. á Õ ÐÁÓËÁÌÑ -- ÎÅÔ. DT>> þÅÇÏ-ÞÅÇÏ? :))

KF> çÄÅ?

äÁ Ñ ÎÅ Ï ÔÏÍ. :) ÷ӣ, ÎÁÄÏ ÚÁ×ÑÚÙ×ÁÔØ Ó ÏÆÔÏÐÉËÁÍÉ.

Dimmy.

Дело то в том что "просто Си" в принципе бывает, а вот полезного и жизнеспособного "просто паскаля" я что то не припомню. Ну не живой язык этот самый Виртовский паскаль - всегда приходится расширять его - и для эмбеддед и так просто. А вот чистый Си честно имплементированный - по крайней мере для обычного (с ОС) окружения вполне себе пригоден и примочки ассемблерные или расширения нужны только для облегчения/улучшения жизни.

А куда вдруг делись битовые поля из Си? Другое дело что используются они ну очень редко.

Часть библиотеки. Как часть языка - это только часть "hosted environment" - что позволяет не использовать ее совсем или использовать по другому в freestanding пирограмме (эмбеддед). Суть же printf не в том что он ввод-вывод делает, а в том что он демонстрирует метод КАК это делать в Си.

Кстати - в Си есть куча других программ с printf-Like интерфейсом - форматная строка какого нибудь вида и далее параметры полностью управляемые этим форматом - конечно можно и обойтись - но насколько это временами облегчает жизнь - особенно для печати сообщений об ошибках (не жизненно важно в эмбеддед)! Наличие такой фичи как varargs - позволяет такой код структурировать - что помогает сильно экономить место (а вот это для эмбеддед уже было важно).

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

ðÒÉ×ÅÔ Yuriy!

25 Oct 05 00:57, Yuriy K ÐÉÓÁÌ Alex Mogilnikov:

YK> óÔÒÁÎÎÏ ÜÔÏ ... (ÔÒÅÈÍÉÎÕÔÎÏÅ ÛÕÒÛÁÎÉÅ ÇÕÇÌÅÍ) ... ×ÓÅ ÔÁÍ ÅÓÔØ.

YK> void f () __attribute__ ((interrupt ("IRQ")));

ôÙ ÐÒÁ×. ñ ÎÅ ÄÏÞÉÔÁÌ ÄÏ ËÏÎÃÁ. :)

YK>>> interrupt [INTVEC_START + 0x62] void TC6_interrupt(void); AM>> äÁ, ÔÏÞÎÏ. ÷ÉÄÅÌ Ñ ÔÁËÕÀ ËÏÎÓÔÕÒËÃÉÀ. ëÏÍÐÉÌÑÔÏÒ ÓÁÍ ÇÅÎÅÒÉÔ AM>> ËÏÍÁÎÄÕ jmp ÐÏ ÕËÁÚÁÎÎÏÍÕ ÁÄÒÅÓÕ.

YK> :-)))) HÅÔ ÔÁÍ ÉÎÓÔÒÕËÃÉÉ jmp, ÔÁÍ ÐÒÏÓÔÏ Ä×Á ÂÁÊÔÁ ÁÄÒÅÓÁ.

ñ ÉÓÐÏÌØÚÏ×ÁÌ IAR ÄÌÑ MCS51, ÔÁÍ, ÎÁÓËÏÌØËÏ Ñ ÐÏÍÎÀ, ÎÕÖÎÁ ËÏÍÁÎÄÁ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ÷ ÇÌÁ×ÎÏÊ ÒÏÌÉ - óÉÌØ×ÅÓÔÒ Ó ÔÁÌÏÎÏÍ.
ðÒÉ×ÅÔ Ivan!

24 Oct 05 22:36, Ivan Melnikov ÐÉÓÁÌ Dimmy Timchenko:

IM> ðÁÒÎÉÛËÁ ÎÁÐÉÓÁÌ ÎÁ óÉ ÐÒÏÇÒÁÍÍÕ É × ÎÅÊ ÂÙÌÁ ×ÏÔ ÔÁËÁÑ IM> ÓÔÒÏÞËÁ IM> bit i; IM> i=0; IM> while(i!=1); IM> ÔÁË ×ÏÔ ÄÁÎÎÁÑ ÓÔÒÏÞËÁ ÎÅ ÐÏÚ×ÏÌÑÌÏ ÐÒÏÇÒÁÍÍÅ ÒÁÂÏÔÁÔØ, Á IM> ËÏÇÄÁ ÚÁÐÉÓÁÌÉ ×ÏÔ ÔÁË IM> while(i==0); IM> ×ÓÅ ÚÁÒÁÂÏÔÁÌÏ. IM> ÷ ÔÏÍ É × ÄÒÕÇÏÍ ÓÌÕÞÁÅ ÇÅÎÅÒÉÒÏ×ÁÌÓÑ ÏÄÉÎ É ÔÏÔ ÖÅ ËÏÄ.

ôÁË ÎÅ ÂÙ×ÁÅÔ. éÌÉ ËÏÄ ÇÅÎÅÒÉÌÓÑ ÎÅ ÏÄÉÎ É ÔÏÔ ÖÅ, ÉÌÉ ÎÅ ÒÁÂÏÔÁÌÏ ÐÏ ËÁËÏÊ-ÔÏ ÄÒÕÇÏÊ ÐÒÉÞÉÎÅ. HÅ ÍÏÖÅÔ ÏÄÉÎ É ÔÏÔ ÖÅ ËÏÄ ÒÁÂÏÔÁÔØ ÉÌÉ ÎÅ ÒÁÂÏÔÁÔØ × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÅËÓÔÁ, ÉÚ ËÏÔÏÒÏÇÏ ÅÇÏ ÓÇÅÎÅÒÉÌÉ. :) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... äÁÒÅÎÏÍÕ ÐÉÓØÍÕ × ËÌÕÄÖÉ ÎÅ ÓÍÏÔÒÑÔ.

Hello, Andrey Solomatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 25 Oct 2005 08:10:05

+0000 (UTC):

AS>>> Классическое "Hello, vasja!" на Туурбопаскале занимало у AS>>> меня (без особых усилий с моей стороны) этак килобайта 3. AS>>> Аналогичное, но сделанное на Си - при всех усилиях не AS>>> помещалось в 9к.

DO>> Это ты С пользоваться не умеешь.

AS> Угумс. "А если Вы воспользуетесь напильником"...

DO>> Я его тебе в несколько десятков байт скомпилирую.

AS> Попробуй. Конечно, можно разобрать RTL, собрать её под себя... AS> Вот только тогда может проще асм заюзать?

Если тебе проще - юзай. Мне проще написать несколько функций ввода-вывода (на С) и ими пользоваться, если полнофункциональность имеющихся для меня слишком громоздка.

DO>> А вот на паскале - фиг, там нельзя никак переписать стартап и DO>> изменить состав system

AS> 9к - это не стартап, это printf. Во всяком случае у Борманда AS> было.

9к - это все вместе.

dima

formatting link

Hello, Andrey Solomatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 25 Oct 2005 07:52:11

+0000 (UTC):

AS> [кусь] DO>>>> В продуманный язык не суют два механизма работы с DO>>>> динамической памятью.

AS>>> malloc / free и new / delete ? ;))

DO>> malloc/free - это библиотечные функции, а new/delete в С нет DO>> :) и это совсем другое.

AS> Угумс. AS> Потому, что нормально реализовать работу с памятью через "классические" AS> функции невозможно - malloc возвращает void* (а раньше AS> возвращал char*). Но всё равно - это *два* механизма.

Один. malloc - это библиотечная функция, а не часть языка. В обычно турбопаскале, без объектов, есть два механизма mark/release и GetMem/FreeMem. New/Delete в OP - это другое.

AS>>> Кстати, а какие два механизма динамической памяти в паскале? AS>>> [кусь]

DO>> mark/release доставшиеся от папаши Вирта, и getmem/freemem - DO>> от С...

AS> Про getmem/freemem ничего не помню.

Твои проблемы. В ТР - это основной механизм для работы.

dima

formatting link

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

Tue Oct 25 2005 14:22, Arcady Schekochikhin wrote to Andrey Solomatov:

AS> Дело то в том что "просто Си" в принципе бывает, а вот полезного и AS> жизнеспособного "просто паскаля" я что то не припомню. Hу не живой язык AS> этот самый Виртовский паскаль - всегда приходится расширять его - и для AS> эмбеддед и так просто. А вот чистый Си честно имплементированный - по AS> крайней мере для обычного (с ОС) окружения вполне себе пригоден и AS> примочки ассемблерные или расширения нужны только для AS> облегчения/улучшения жизни.

Расширять синтаксис, вводить новые ключевые слова, отказываться от прежних, приходится всегда, когда классические Паскаль и Си напчинают натягивать на другую архитектуру процессора, не ту, в которой они были рождены. В Си, например, пришлось впендюривать аттрибут FLASH, а за ним и целую, совсем нестандартную библиотеку работы с константами из FLASH.

AS> А куда вдруг делись битовые поля из Си? Другое дело что используются они AS> ну очень редко.

Редко потому, что обработка этих битов в полях, например для AVR, производится компиляторами за несколько инструкций, внутрь которых может влезть прерывание, которое шустрит по соседним битовым полям- и привет Вася!

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

Hello, Andrey Solomatov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 25 Oct 2005 08:37:13

+0000 (UTC):

DO>> Операция плюс в языке программирования и в математике - DO>> существенно разные вещи. В математике 127+1 - всегда 128, а в DO>> языках программирования может быть и -1 и много чего еще.

AS> Ну, насколько мне известно результат -1 полученный от 127 +1 AS> всегда интерпретируется как ошибка. И ЯВУ придумывались не для

Где и когда это интерпретируется как ошибка?

AS> того, что-бы множить число новых операций.

Ты о чем?

AS> А то были любители вводить новые конструкции типа "выход из AS> второго вложенного цикла" и т.д. Тоже вроде выразительности добавляет...

А это о чем?

AS>>> Стандартная адресная арифметика всегда является хакерством.

DO>> В паскале - в большей степени. В С учитывается автоматически DO>> размер того, на что указывает адрес, а в паскале это надо DO>> вручную указывать.

AS> int i; AS> int *p = &i;

AS> p++; /* скажешь не хак? */

Нет конечно.

AS>>> С учётом того, что в Си эллипсис - это тоже полухак...

DO>> Вовсе нет, почему?

AS> Отказ от проверки типизации. Полный.

Я тебе уже показывал полный отказ от типизации в паскале.

DO>> Не более хакерская, чем передавать в функцию указатель, а уж DO>> это в паскале на право и на лево делается.

AS> В паскале все указатели типизированы.

Нет. Есть просто pointer.

AS> Плюс "направо-налево" можно передавать "по ссылке" - тот-же указатель, только AS> записывается удобнее - чей расширенный аналог - ссылки C++.

Ага, написал var v и передавай что хочешь.

DO>> Да и stdout можно было переназнчить, что в частности стартап DO>> модуля CRT и делал, только все равно не гибко все это очень.

AS> В смысле "негибко"?

А прямом. Ты не можешь формат вывода сделать изменяемым.

DO>> И сгородили, звалась drivers.formatstr. Посмотри на сколько DO>> коряво в сравнении с sprintf все это выглядит.

AS> А у меня просто вкусы другие.

Причем тут вкусы? Какой надо иметь вкус, чтобы такое вот понтравилось? Или это не хакерство? Или не паскаль?

procedure PrntMsg(Pref: String; var Text: String); var S: String; L: array[0..3] of Longint; begin L[0] := Longint(@Pref); L[1] := Longint(@HelpStrm^.FileName); L[2] := Count; L[3] := Longint(@Text); if Count > 0 then FormatStr(S, '%s: %s(%d): %s'#13#10, L) else FormatStr(S, '%s: %s %#3%s', L); PrintStr(S); end;

Собственно да, это не паскаль, это записанный символами паскаля сишный код. И не от хорошей жизни, а от того, что встроенные в паскаль механизмы оказались не удобны, а нормальных средств делать свои язык не предоставляет. Только, что очевидно, говорить о какой-то переносимости всего этого явно не приходится.

AS> Мне всегда было влом разбираться с этими закорючками в командной строке.

В командной строке чего?

AS>>> Ну, собственно, за пределы вывода строк/символов/числе AS>>> способности printf не распространяются -

DO>> Это уже не мало. В паскале и для этого городить приходится.

AS> ? AS> var i: integer; c: char; s: string; AS> f: file; AS> ... AS> write(f, i, c, s);

А теперь поинтересуйся как в паскале управлять форматом и шириной вывода (write(d:3:2)). И попробуй задать этот формат не в тексте программы, а как параметр.

DO>> Хочешь удивлю? Попробуй найти где-нибудь турбо-паскаль и DO>> скормить ему такой текст:

DO>> {$A+,B+,D+,E+,F-,G-,I+,L+,N+,O-,P-,Q-,R-,S+,T-,V-,X+,Y+} DO>> {$M 16384,0,655360}

AS> [кусь]

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

AS> А что делают псевдокомментарии вверху?

А в хелпе посмотри. Тоже кстати милая для "продуманного языка" штука - ключик B+ - управляет полностью вычислять логическое выражение или нет. И кому такое в голову пришло?

AS>>> действительно слегка затруднительно - именно в силу построения языка.

DO>> Ась? Какого типа "v" в вышеприведенном примере?

AS> Так мы обсуждаем язык или конкретную реализацию?

Учитывая, что в паскале конкретный язык, соответствующий ISO не помню какому обсуждать бессмысленно ввиду отсутствия вменяемых реализаций, приходится обсуждать языки реализаций, так как они существенно различаются. Сейчас обсуждались преимущества и недостатки борландовской (и отчасти совместимых) реализации со стандартным ANSI C.

AS> А то я щазз начну ругацца "а вот См не умеет работать с битовыми полями. AS> С битами - может, в т.ч. и как с элементами слова, а вот с полями, скажем в три бита - нет"

А как он должен с ними работать?

AS>>> В отстальном - не вижу особой разницы.

DO>> Посмотри на то как "изящно" вызывается drivers.formatstr по DO>> сравнению с sprintf и может быть увидишь разницу.

AS> Таки sprintf - это часть языка или как?

Нет, но язык позволяет написать такую функцию, в отличие от паскаля.

dima

formatting link

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Arcady Schekochikhin on Tue, 25 Oct

2005 11:49:26 +0000 (UTC):

AS>> Дело то в том что "просто Си" в принципе бывает, а вот AS>> полезного и жизнеспособного "просто паскаля" я что то не AS>> припомню. Hу не живой язык этот самый Виртовский паскаль - AS>> всегда приходится расширять его - и для эмбеддед и так AS>> просто.

ON> Расширять синтаксис, вводить новые ключевые слова, ON> отказываться от прежних, приходится всегда, когда классические ON> Паскаль и Си напчинают натягивать на другую архитектуру ON> процессора, не ту, в которой они были рождены.

А для какой они были рождены?

ON> В Си, например, пришлось впендюривать аттрибут FLASH, а за ним и целую, совсем

Не в С, а в конкретную реализацию, причем пользоваться этим совсем не обязательно. И зачем ее туда всунули лично я не понимаю. Вполне достаточно было бы описать объект как константу, чтобы она размещалась в ПЗУ, как это например в HiTech для PIC сделано. Впрочем добавление модификаторов для переменных и функций не идет ни в какое сравнение с переделаками, которым был подвергнут виртовский паскаль для придания ему минимальной юзабилити в реальном программировании.

ON> нестандартную библиотеку работы с константами из FLASH.

AS>> А куда вдруг делись битовые поля из Си? Другое дело что AS>> используются они ну очень редко.

ON> Редко потому, что обработка этих битов в полях, например для ON> AVR, производится компиляторами за несколько инструкций,

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

ON> внутрь которых может влезть прерывание, которое шустрит по ON> соседним битовым полям- и привет Вася!

Это если у программиста вместо головы держатель для ослиных ушей и он не понимает что он пишет и зачем.

dima

formatting link

*** ïÔ×ÅÔ ÎÁ ÐÉÓØÍÏ ÉÚ carbonArea (carbonArea). ðÒÉ×ÅÔ, Alex !

25 Oct 05 , 13:56 Alex Mogilnikov ÐÉÓÁÌ Ë Nickita A Startcev:

AM> ñ ÕÖÅ ÇÏ×ÏÒÉÌ, ÞÔÏ ËÒÏÍÅ ÉÍÅÎ ÍÏÄÕÌÅÊ × ÓÔÒÏÞËÅ SRC ÎÉÞÅÇÏ ÒÕËÁÍÉ AM> ÎÅ ÐÒÏÐÉÓÙ×ÁÀ. HÉÞÅÇÏ ÈÉÔÒÏÇÏ ÎÅ ÉÓÐÏÌØÚÕÀ, ×ÓÅ ÐÒÏÓÔÏ:

AM> ======== Makefile (ÉÚÂÒÁÎÎÙÅ ÍÅÓÔÁ) ========= AM> SRC = crt0 crtbegin crtend irqfiq tzlock s3c4530 syscalls

AM> DEP = $(addsuffix .d,$(SRC))

AM> %.d: %.c AM> $(CC) $(CFLAGS) -MM -o $@ $<

AM> depend: $(DEP) AM> cat $(DEP) >$@

AM> include depend AM> =============================================

AM> make ÇÎÕÔÙÊ, ÓÍÏÔÒÉ ÏÐÉÓÁÎÉÅ ÏÐÃÉÉ -MM × ÄÏËÅ ÐÏ gcc.

"ëÏÍÐÉÌÉÒÕÅÛØ" × Ä×Á ÐÒÏÈÏÄÁ: make depend; make ÞÔÏ_ÎÁÄÏ, ÉÌÉ ÍÜÊË ÕÍÅÅÔ ÎÁ ÈÏÄÕ ÐÏÄÈ×ÁÔÙ×ÁÔØ ÉÚÍÅÎÅÎÉÑ?

. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. ... HÉËÏÇÏ ÄÏÂÒÅÅ ÎÅÔ ÎÁÛÅÇÏ èÁÓÁÎÁ..

Tue Oct 25 2005 08:06, Dimmy Timchenko wrote to Vladimir Vassilevsky:

VV>> ÷×ÉÄÕ ÔÏÇÏ, ÞÔÏ ÏÐÅÒÁÃÉÑ copy-paste Ñ×ÌÑÅÔÓÑ ÏÓÎÏ×ÎÙÍ ÓÏ×ÒÅÍÅÎÎÙÍ VV>> ÍÅÔÏÄÏÍ ÄÌÑ code reuse, DT> ðÒÁ×ÄÁ, ÞÔÏ ÌÉ? 8-ï

ïÔÏÖ. ðÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ËÁË ÒÅÍÅÓÌÏ ÕÖÅ ÐÒÉÂÌÉÚÉÌÏÓØ ÐÏ ÕÒÏ×ÎÀ Ë ÒÅÍÏÎÔÕ ÁÓÆÁÌØÔÏ×ÙÈ ÄÏÒÏÇ. HÁ×ÅÒÎÏÅ, ÓËÏÒÏ ÕÇÏÌÏ×ÎÉËÉ ÎÁ ÚÏÎÁÈ ÂÕÄÕÔ ÐÉÓÁÔØ ÐÒÏÇÒÁÍÍÙ.

VLV

"çÒÉÇÏÒÉÊ ëÏÔÏ×ÓËÉÊ ÏÇÒÁÂÉÌ ÇÏÒÏÄÓËÕÀ ÔÀÒØÍÕ..." (c) CÏÌÖÅÎÉÃÙÎ

Tue Oct 25 2005 14:55, Dimmy Timchenko wrote to Vladimir Vassilevsky:

KF>>>> HÁÐÒÉÍÅÒ, ÐÉÓÀËÕ ÌÕÞÛÅ 32 ÂÉÔ ÉÎÔ, Á ÅÓÌÉ ÔÙ ÅÍÕ 16 ÂÉÔ ÂÕÄÅÛØ KF>>>> ÄÁ×ÁÔØ, ÏÎ ÎÁÞÎÅÔ ÔÏÒÍÏÚÉÔØ. NAS>>> ëÓÔÁÔÉ, Á ÎÁÓËÏÌØËÏ ÔÏÒÍÏÚÉÔØ ÂÕÄÅÔ? VV>> It depends. ÷ 32-ÂÉÔÎÏÍ ÓÅÇÍÅÎÔÅ 16-ÂÉÔÎÙÅ ËÏÄÁ ÏÐÅÒÁÃÉÉ ÉÍÅÀÔ VV>> ÌÉÛÎÉÊ ÐÒÅÆÆÉËÓ, ÔÁË ÞÔÏ ÒÁÚÁ × ÐÏÌÔÏÒÁ × ÈÕÄÛÅÍ ÓÌÕÞÁÅ. DT> ÷ ÈÕÄÛÅÍ ÄÌÑ ÏÔÄÅÌØÎÏÊ ÏÐÅÒÁÃÉÉ. ÷ÐÒÏÞÅÍ, ÎÁÞÉÎÁÑ Ó P5, Ó DT> ËÏÎ×ÅÊÅÒÉÚÁÃÉÅÊ É ÐÒÏÞÉÍÉ ÆÉÛËÁÍÉ - ÔÒÕÄÎÏ ÏÃÅÎÉÔØ, ÎÁÓËÏÌØËÏ ÂÕÄÅÔ DT> ÔÏÒÍÏÚÉÔØ É ÂÕÄÅÔ ÌÉ ×ÏÏÂÝÅ.

HÏ ÂÙÓÔÒÅÅ-ÔÏ ÎÅ ÂÕÄÅÔ, ÜÔÏ ÔÏÞÎÏ. çÌÁ×ÎÏÅ - ÐÒÉÎÃÉÐ :)

VLV

"çÒÉÇÏÒÉÊ ëÏÔÏ×ÓËÉÊ ÏÇÒÁÂÉÌ ÇÏÒÏÄÓËÕÀ ÔÀÒØÍÕ..." (c) CÏÌÖÅÎÉÃÙÎ

Hello Dmitry.

Tue Oct 25 2005 15:59, Dmitry Orlov wrote to Andrey Solomatov:

DO> if Count > 0 then FormatStr(S, '%s: %s(%d): %s'#13#10, L) DO> else FormatStr(S, '%s: %s %#3%s', L); DO> PrintStr(S); DO> end;

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

éÌÉ ÐÒÏÓÔÏ ÎÅÐÒÉ×ÙÞÎÙ. é ÞÅÌÏ×ÅË ÐÉÛÅÔ ÎÁ ðÁÓËÁÌÅ ÔÁË, ËÁË ÅÍÕ ÕÄÏÂÎÏ ÂÙÌÏ ÎÁ C. á ×ÅÄØ ÍÏÖÎÏ ÄÅÌÁÔØ ÐÒÏÝÅ, ÞÔÏ-ÔÏ ×ÒÏÄÅ:

Display ('Error #'+int2str(ErrNo)+' at address '+HexW(ErrAddr));

DO> Á ÎÏÒÍÁÌØÎÙÈ ÓÒÅÄÓÔ× ÄÅÌÁÔØ Ó×ÏÉ ÑÚÙË ÎÅ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ.

ðÒÉ×ÙÞÎÙÈ. õ ÍÅÎÑ ÌÉÞÎÏ ÑÚÙË ÎÅ ÐÏ×ÏÒÁÞÉ×ÁÅÔÓÑ *printf ÎÁÚ×ÁÔØ "ÎÏÒÍÁÌØÎÙÍ ÓÒÅÄÓÔ×ÏÍ".

Dimmy.

DO>> ëÒÏÍÅ ÔÕÒÂÏ-Ó ÂÙÌÏ ÅÝÅ ÍÎÏÇÏ ÄÒÕÇÉÈ ËÏÍÐÉÌÑÔÏÒÏ×. ó ÇÏÒÁÚÄÏ ÌÕÞÛÅÊ DO>> ËÏÄÏÇÅÎÅÒÁÃÉÅÊ É Ó ËÕÄÁ ÂïÌØÛÉÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ (ÇÅÎÅÒÁÃÉÑ ÐÏÄ DO>> ÄÏÓ-ÜËÓÔÅÎÄÅÒÙ, É Ô. Ð.). DT> HÅ ÐÏÍÎÀ, ÞÔÏÂÙ ÔÁË ÕÖ ÍÎÏÇÉÅ ÉÍÉ ÔÏÇÄÁ ÐÏÌØÚÏ×ÁÌÉÓØ. ëÓÔÁÔÉ, BP7 ÕÍÅÅÔ DT> ÇÅÎÅÒÉÔØ DPMI16-ÅËÚÅÛÎÉËÉ. HÅ ÕÍÅÅÔ ÔÏÌØËÏ ÉÈ ÏÔÌÁÖÉ×ÁÔØ, ÎÏ ÅÓÔØ Turbo DT> Debugger.

á watcom ÕÍÅÅÔ 32ÂÉÔ ÄÐÍÉ. âð ÏÐÑÔØ ÓÕxx.

DO>> äÌÑ ÕÞÅÂÎÙÈ ÉÌÉ ÌÀÂÉÔÅÌØÓËÉÈ ÃÅÌÅÊ ôò ÅÝÅ ÐÏÄÈÏÄÉÔ, ÎÏ × ÏÂÝÅÍ-ÔÏ ÎÅ DO>> ÂÏÌÅÅ ÔÏÇÏ. DT> äÁ ÐÏÄÈÏÄÉÔ ÏÎ ÄÌÑ ÞÅÇÏ ÕÇÏÄÎÏ × ÒÁÍËÁÈ ÄÏÓÁ.

HÅ, ÎÕ ÍÏÖÎÏ ß× ÌÙÖÁh É ÇÁÍÁËÅß. á ÚÁÞÅÍ?

DT> á 32-ÂÉÔÎÙÅ ËÌÏÎÙ ÔÉÐÁ VP/FP - × DT> ÒÁÍËÁÈ ÔÅËÓÔÏ×ÏÇÏ ÒÅÖÉÍÁ

ýÁÚ... õ ÎÉÈ ncurses ÎÅ ÒÁÂÏÔÁÅÔ ÂÅÚ ÇÌÀËÏ×. á × wÉÎÄÏwÓ ÅÇÏ ×ÏÏÂÝÅ ÎÅÔ. A v svaglib/x11 ÇÌuchÉÔ ÇÒÁÆÉËÁ.

DT> ÉÌÉ, ÎÁÐÒÉÍÅÒ, ÐÒÑÍÏÊ ÒÁÂÏÔÙ Ó Win32 API.

Ha-ha.

DT> á ÄÅÌØÆÉ - ÄÌÑ Çգ×.

äÌÑ Çգ× -- tcl, ÖÁÂÁ, qt, wxwidgets, ÎÁËÏÎÅÔà gtk. HÏ ÎÉËÁË ÎÅ ÅÈÔÏ -- ÎÁÒËÏÔÉË, ÐÅÒ×ÁÑ ÄÏÚÁ ÂÅÓÐÌÁÔÎÏ. íÎÅ ÂÙ ÂÙÌÏ ÐÏÆÉÇ, ÎÏ ÎÁÒËÏÍÁÎÙ ÉÍÅÀÔ ÔÅÎÄÅÎÃÉÀ ÕÓÏÖÎÑÔØ ÖÉÚÎØ ÄÒÕÇÉÍ ÌÀÄÑÍ.

DT> óÁÍ-ÔÏ ÑÚÙË ÐÏ ×ÏÚÍÏÖÎÏÓÔÑÍ É ×ÙÒÁÚÉÔÅÌØÎÏÓÔÉ - ÎÅ ÈÕÖÅ C.

(× ÓÍÙÓÌÅ, ÞÔÏ ÈÕÖÅ ã -- ÎÅËÕÄÁ?)

DT> þÔÏ ËÁÓÁÅÔÓÑ Embedded - ÅÓÔÅÓÔ×ÅÎÎÏ, ÄÏÓÏ×ÓËÉÊ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ ÜÔÏÇÏ ÎÅ DT> ÐÒÉÓÐÏÓÏÂÌÅÎ.

ëÏÍÐÉÌÑÔÏÒ *ÐÁÓÃÁÌÑ*.

DT> HÁ×ÅÒÎÏÅ, ÐÒÁ×ÉÌØÎÅÅ ÂÙÌÏ ÂÙ ÓÄÅÌÁÔØ ËÁË × Visual Basic-Å: ÓÔÁÎÄÁÒÔÎÁÑ DT> MSVBVMxx.DLL ÇÄÅ ÌÅÖÉÔ ×ÓÑ ÜÔÁ ×ÉÚÕÁÌØÎÁÑ É ÐÒÏÞÁÑ ÂÉÂÌÉÏÔÅËÁ, É ËÏÔÏÒÕÀ DT> ÎÁÄÏ DT> ÓËÁÞÁÔØ ÏÄÉÎ ÒÁÚ. HÕ, ÏÄÉÎ ÒÁÚ ÄÌÑ major revision ËÏÍÐÉÌÑÔÏÒÁ. :)

JRE ÅÈÔÏ ÎÁÚÙ×ÁjÅÔÓÑ.

DT>>> ñ÷õ ×ÅÄØ ËÁË ÒÁÚ É ÏÔÄÅÌÑÅÔ ÐÒÏÇÒÁÍÍÉÓÔÁ ÏÔ ÔÁËÉÈ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÈ DT>>> ÐÏÄÒÏÂÎÏÓÔÅÊ, ÐÒÅÄÏÓÔÁ×ÌÑÑ ÂÏÌÅÅ "ÐÒÁ×ÉÌØÎÙÅ" ÁÂÓÔÒÁËÃÉÉ. DO>> áÇÁ, ÝÁÚ. DT> ÷ÏÔ ÔÅÂÅ É "ÝÁÚ". þÅÍ, ÎÁÐÒÉÍÅÒ, ÍÁÓÓÉ× ÈÕÖÅ ÕËÁÚÁÔÅÌÑ?

öңÔ ÌÉÛÎÉÊ ÒÅÇÉÓÔÒ É ×ÁÇÏÎ ÔÁËÔÏ×.

DO>> é ×ÅÄØ ÎÁ _ÐÒÁËÔÉËÅ_ ÐÒÉÈÏÄÉÔÓÑ, ÐÒÑÍÏ × ÓÏÒÃÁÈ, ÉÄÕÝÉÈ Ó DO>> ËÏÍÐÉÌÑÔÏÒÏÍ. DT> ðÉÓÁÔØ ÎÁÄÏ ÐÏ-ÞÅÌÏ×ÅÞÅÓËÉ É ÎÅ ×ÙÄÅÌÙ×ÁÔØÓÑ ÞÅÒÅÓÞÕÒ.

÷ ÓÔÉÌÅ ÂÁÓÉÃØÁ ÉÌÉ ÁÓÓÅÍÂÌÅÒÁ?

DO>> èÏÔØ × TV, ÈÏÔØ × ÔÕÒÂÏÐÁ×ÅÒÏ×ÓËÏÊ. õËÁÚÁÔÅÌØ ÎÁ ÕËÁÚÁÔÅÌÅ ÓÉÄÉÔ É DO>> ÕËÁÚÁÔÅÌÅÍ ÐÏÇÏÎÑÅÔ. ëÏÎÅÞÎÏ ÅÓÌÉ ÔÙ ÐÉÓÁÌ ÍÅÌËÉÅ ÕÔÉÌÉÔËÉ, ÇÄÅ DO>> È×ÁÔÁÌÏ 64Ë ÓÅÇÍÅÎÔÁ ÓÔÁÔÉÞÅÓËÉÈ ÄÁÎÎÙÈ ÍÏÖÎÏ É ÂÅÚ ÕËÁÚÁÔÅÌÅÊ DO>> ÏÂÈÏÄÉÔØÓÑ, É ÔÏ ÎÅ ÕÄÏÂÎÏ. á ÔÙ ÞÔÏ-ÔÏ ÐÏ-ÂÏÌØÛÅ ÓÄÅÌÁÔØ ÐÏÐÒÏÂÕÊ. DT> ðÒÏÂÏ×ÁÌ. ðÒÏÅËÔ "ÍÏÎÉÔÏÒÁ áúó" - 700ë ÉÓÈÏÄÎÉËÏ×. é ËÁËÏÊ ÔÏÌØËÏ ÆÉÇÎÉ DT> ÔÕÄÁ DT> ÎÅ ÐÏÎÁÐÉÈÁÎÏ! :) HÏ ÅÓÌÉ ÍÎÅ ÎÕÖÎÁ ÓÔÒÕËÔÕÒÁ, ËÏÔÏÒÁÑ ÓÉÌØÎÏ ÐÒÉÄÁ×ÉÔ DT> ÓÅÇÍÅÎÔ DT> ÓÔÁÔÉÞÅÓËÉÈ ÄÁÎÎÙÈ, Ñ ÐÒÏÓÔÏ ÓÏÚÄÁÀ ţ É ÐÏÌØÚÕÀÓØ. HÁÄÏ ÔÏÌØËÏ ÓÔÒÅÌÏÞËÉ DT> × DT> ÎÕÖÎÙÈ ÍÅÓÔÁÈ ÎÅ ÚÁÂÙ×ÁÔØ ÓÔÁ×ÉÔØ. :) HÏ ÔÁËÏ×Á ÁÒÈÉÔÅËÔÕÒÁ Real Mode. ÷ DT> 32-ÂÉÔÎÙÈ ×ÅÒÓÉÑÈ OP ÜÔÉÈ ÏÇÒÁÎÉÞÅÎÉÊ ÎÅÔ.

óÔÒÕËÔÕÒÁ ÎÅ ÓÔÒÕËÔÕÒÁ, Á ÞÔÏ ÂÒÁÔØ ×ÍÅÓÔÏ ÕËÁÚÁÔÅÌÑ? HÉÎÔ: ÂÅÚ ÕËÁÚÁÔÅÌÑ, ÎÁ ÕÒÏ×ÎÅ ÍÁÛÉÎÎÏÇÏ ËÏÄÁ ÏÂÏÊÔÉÓØ ÎÅÌØÚÑ. ïÎ ÂÕÄÅÔ × ÌÀÂÏÍ ÓÌÕÞÁÅ, ÎÁÐÒÉÍÅÒ, ÚÁÍÁÓËÉÒÏ×ÁÎÎÙj × ÚÁÐÕÔÁÎÎÏÊ ÉÅÒÁÒÈÉÉ ËÌÁÓÓÏ×.

AM> ÉÓÐÏÌØÚÏ×ÁÌ, É ÞÔÏ ÐÏÌÕÞÁÅÔÓÑ ÐÏÓÌÅ ËÏÍÐÉÌÑÃÉÉ. ÷ÏÔ ÓÅÊÞÁÓ ÐÅÒÅÓÍÏÔÒÅÌ AM> ÄÏËÕ ÐÏ AM> gcc, ËÏÔÏÒÙÍ Ñ ×-ÏÓÎÏ×ÎÏÍ ÐÏÌØÚÕÀÓØ, × ÎÅÍ ÁÔÒÉÂÕÔÙ ÔÉÐÁ interrupt, signal AM> É AM> Ô.Ð. ÍÅÎÑÀÔ Õ ÆÕÎËÃÉÉ entry/exit ËÏÄ, ÎÏ ÅÊ ×ÓÅ ÒÁ×ÎÏ ËÁË-ÔÏ ÎÁÄÏ ÐÅÒÅÄÁÔØ AM> ÕÐÒÁ×ÌÅÎÉÅ, ÈÏÔÑ ÂÙ ÏÄÎÏÊ ËÏÍÁÎÄÏÊ jmp.

ïÎÏ ÖÅ Á×ÔÏÍÁÇÉÞÅÓËÉ ÔÁÍ ÄÅÌÁÅÔÓÑ.

DO>> á ËÕÄÁ ÄÅ×ÁÔØÓÑ? ðÒÉ ÐÅÒÅÎÏÓÅ ÎÁ ÄÒÕÇÏÊ ÐÒÉÊÄÅÔÓÑ ÜÔÉ ÍÅÓÔÁ DO>> ÐÅÒÅÄÅÌÁÔØ. AM> üÔÏ ÆÉÇÎÑ, ÐÒÉ ÐÏÑ×ÌÅÎÉÉ ÎÏ×ÏÊ ÍÏÄÉÆÉËÁÃÉÉ ÐÒÏÃÅÓÓÏÒÁ × ÔÏÍ ÖÅ AM> ÓÅÍÅÊÓÔ×Å AM> ÐÒÉÄÅÔÓÑ ÍÏÄÉÆÉÃÉÒÏ×ÁÔØ ËÏÍÐÉÌÑÔÏÒ ÞÔÏÂÙ ÎÁÐÒÉÍÅÒ ÄÏÂÁ×ÉÔØ ÐÏÄÄÅÒÖËÕ AM> ÎÏ×ÏÇÏ AM> ×ÅËÔÏÒÁ ÉÌÉ ÉÓËÌÀÞÅÎÉÑ.

á ÎÁËÏÊ? ÷ÅËÔÏÒÁ ÚÁÛÉÔÙ × ÓÔÁÒÔÕÐ, ËÏÔÏÒÙÊ ÒÁÚÎÙÊ ÄÌÑ ÒÁÚÎÙÈ ÐÒÏÃÅÓÓÏÒÏ×.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required