Embedded OS

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

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

Wed Mar 16 2005 10:35, Leha Bishletov wrote to Olga Nonova:

ON>> Если честно, то задача контроля типов, слава Богу!, никак не ON>> решается.

LB> Интересно, что хорошего в отсутствии контроля типов? Для меня одной из LB> существенных причин перехода ASM->C был именно контроль типов.

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

ON>> "Компилированный стек" тоже не реализуется. Ибо от лукавого.

LB> А как же экономия байтов? Или нужно отказаться от совместного LB> использования одного и того же участка памяти разными подпрограммами?

Динамическое распределение локальных переменных может решаться и без привлечения стека данных (см. например PLM-51). Стек данным нужен только в случае рекурсивного использования процедур. Вы часто используете рекурсии в своих задачах?

ON>> MoveByte MACRO Byt1,Byt2 ON>> lds R16,Byt1 ON>> sts Byt2,R16 ON>> ENDM

LB> Я плохо разбираюсь в системе команд AVR, но мне кажется, что там есть LB> косвеная адресация, корорая "экономнее" lds-sts. Компилятор может для LB> MoveByte выбрать наиболее выгодную форму, в зависимости от того, что это LB> за Byt, а твоя программа будет всегда использовать lds-sts. Вот один из LB> моментов, когда результат на ASM проигрывает результату на С. Есть и LB> другие предпосылки для получения менее эффективного кода на ASM, т.к. LB> нужно сохранить читаемость программы, а оптимизатора нет ...

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

LB> Без контроля типов и какой-нибудь оптимизации твои макросы просто LB> замена мнемоник одного ASM на другой, привычный.

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

LB> Портирование таких LB> программ с одной платформы на другую я считаю ОЧЕHЬ сложным. У тебя есть LB> опыт портирования твоего ASM с AVR на "не AVR"?

Такого опыта у меня нет. Да и зачем менять шило на мыло? Спектра моделей AVR хватит еще лет на 10 практической деятельности.

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

Hello Leha.

15 Mar 05 11:28, Leha Bishletov wrote to Olga Nonova:

ON>> çpÁÍÏÔÎÙÅ ÁÓÓÅÍÂÌÅpÝÉËÉ pÁÂÏÔÁÀÔ × ÍÁËpÏÓÁÈ, ÂÉÂÌÉÏÔÅËÕ ËÏÔÏpÙÈ ON>> ËÁÖÄÙÊ ÓÏÚÄÁÌ É ÏÔÌÁÄÉÌ ÓÁÍ ÄÌÑ ÓÅÂÑ. þÉÓÔÏ ÍÁÛÉÎÎÙÈ ËÏÍÁÎÄ × ON>> ÉÓÈÏÄÎÉËÁÈ ÐpÁËÔÉÞÅÓËÉ ÎÅ ×ÓÔpÅÞÁÅÔÓÑ. ðÏÜÔÏÍÕ, ÄÌÑ ÐÅpÅÈÏÄÁ ÎÁ ON>> ÄpÕÇÕÀ ÐÌÁÔÆÏpÍÕ ÐÅpÅÌÏÐÁÞÉ×ÁÔØ ËÉÌÏÂÁÊÔÙ ÁÓÓÅÍÂÌÅpÁ ×Ï×ÓÅ ÎÅ ON>> ÔpÅÂÕÅÔÓÑ. LB> íÏÖÎÏ Õ×ÉÄÅÔØ ÈÏÔÑ ÂÙ ÆpÁÇÍÅÎÔ ÜÔÉÈ ÍÁËpÏÓÏ×? ïÓÏÂÅÎÎÏ ÉÎÔÅpÅÓÎÏ, ËÁË LB> pÅÛÁÅÔÓÑ ÚÁÄÁÞÁ ÐÏ ËÏÎÔpÏÌÀ ÓÏÏÔ×ÅÔÓÔ×ÉÑ ÔÉÐÏ× (ÎÁ ó ÜÔÏ ÐpÏÉÓÈÏÄÉÔ LB> Á×ÔÏÍÁÔÉÞÅÓËÉ). åÝÅ ÂÙÌÏ ÂÙ ÎÅ ÐÌÏÈÏ, ÅÓÌÉ ÂÙ ÂÙÌÁ ×ÏÚÍÏÖÎÏÓÔØ LB> ÏpÇÁÎÉÚÏ×ÁÔØ Ô.Î. "ËÏÍÐÉÌÉpÏ×ÁÎÙÊ ÓÔÅË". ó×ÏÉ 5 ËÏÐÅÅË ×ÓÔÁ×ÌÀ. ïÄÎÏ ÉÚ ÐpÉÍÅÎÅÎÉÊ ÁÓÍÁ ËÁË pÁÚ × ÔÏÍ, ÞÔÏÂÙ ×pÕÞÎÕÀ ËÏÎÔpÏÌÉpÏ×ÁÔØ É ÐpÉ×ÏÄÉÔØ ÔÉÐÙ (8*8=16, 16/8=8 ÉÔÐ). HÁ ÕpÏ×ÎÅ ÏÔÄÅÌØÎÙÈ ÆÕÎËÃÉÊ ÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÄÏÓÔÁÔÏÞÎÙÊ ×ÙÉÇpÙÛ (ÎÁ ÏÔÄÅÌØÎÏ ×ÚÑÔÙÈ ÐÌÁÔÆÏpÍÁÈ), × ÃÅÌÏÍ ÎÁ ÐpÉÌÏÖÅÎÉÅ ÜÔÏ, ËÏÎÅÞÎÏ ÕÓÌÏÖÎÑÅÔ ÖÉÚÎØ. HÁÓÞÅÔ ÍÁËpÏÓÏ×, ËÏÇÄÁ "ÁÓÍÁ ÎÅ ×ÉÄÎÏ", ÔÏ ÓËÏpÅÅ ×ÓÅÇÏ ÓÏ×pÅÍÅÎÎÙÅ óÉ ÓÍÏÇÕÔ ÌÕÞÛÅ ÓÏÐÔÉÍÉÚÉpÏ×ÁÔØ. á ÎÁÓÞÅÔ ËÏÐÍÉÌÉpÏ×ÁÎÎÏÇÏ ÓÔÅËÁ, ÍÏÇÕ ÓËÁÚÁÔØ ÚÁ ëÅÊÌ-51. åÓÌÉ ÐpÉÄÅpÖÉ×ÁÔØÓÑ ÓÏÇÌÁÛÅÎÉÊ Ï ÉÍÅÎÏ×ÁÎÉÉ ÓÅÇÍÅÎÔÏ× É ×ÙÚÏ×Ï×, ÔÏ ÌÉÎËÅp ×ÐÏÌÎÅ ×ÐÏÌÎÅ ËÏppÅËÔÎÏ ÓÔpÏÉÔ ÄÅpÅ×Ï ×ÙÚÏ×Ï× É ÆÏpÍÉpÕÅÔ "ËÏÍÐÉÌÉpÏ×ÁÎÎÙÊ ÓÔÅË".

Sergey

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

Wed Mar 16 2005 10:35, Leha Bishletov wrote to Olga Nonova:

ON>> Задача, значит, для Вас- раз плюнуть? И учесть ON>> при этом все крайние случаи исходных строк?

LB> Список "крайних" случаев?

Строки нулевой длины. Строки, у которых "забыли" /0 в конце. Строки, выходящие за диапазон отведенной под нее памяти.

ON>> И предусмотреть защиту от "забыли ноль в конце строки"?

LB> Библиотечная функция этого не делает

А в Pascal - делает! Очень грамотно проверяет выход за диапазон.

ON>> И не испортить контекст вызова функции?

LB> Запросто, при условии, что функция вызвана корректно.

А кто вызывает? Компилятор. Значит, будьте добры разобраться во всех тонкостях, как он это делает и какого уровня сохранности контекста требует. Придется лезть в ASM. Cовсем не тривиально.

ON>> И не вляпаться в инструкции ON>> контроллера из списка ERRATA?

LB> Это забота компилятора. Кстати, много ты знаешь таких инструкций?

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

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

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

Wed Mar 16 2005 09:42, Dima Orlov wrote to Olga Nonova:

DO> Зачем? Компилятор ноль не забывает, в библиотечной функции никаких защит DO> от этого нет, кстати размер буфера она тоже не контролирует.

Компилятор может и не "забывает" ноль. Зато в приходящих из канала связи пакетах можно встретить и не такие чудеса забывчивости. И последствия фатальны для скомпилированной на Си программы.

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

Wed Mar 16 2005 13:33, Olga Nonova wrote to Leha Bishletov:

ON>>> "ëÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ ÓÔÅË" ÔÏÖÅ ÎÅ ÒÅÁÌÉÚÕÅÔÓÑ. éÂÏ ÏÔ ÌÕËÁ×ÏÇÏ.

LB>> á ËÁË ÖÅ ÜËÏÎÏÍÉÑ ÂÁÊÔÏ×? éÌÉ ÎÕÖÎÏ ÏÔËÁÚÁÔØÓÑ ÏÔ ÓÏ×ÍÅÓÔÎÏÇÏ LB>> ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÏÄÎÏÇÏ É ÔÏÇÏ ÖÅ ÕÞÁÓÔËÁ ÐÁÍÑÔÉ ÒÁÚÎÙÍÉ ÐÏÄÐÒÏÇÒÁÍÍÁÍÉ?

ON> äÉÎÁÍÉÞÅÓËÏÅ ÒÁÓÐÒÅÄÅÌÅÎÉÅ ÌÏËÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ ÍÏÖÅÔ ÒÅÛÁÔØÓÑ É ÂÅÚ ON> ÐÒÉ×ÌÅÞÅÎÉÑ ÓÔÅËÁ ÄÁÎÎÙÈ (ÓÍ. ÎÁÐÒÉÍÅÒ PLM-51).

á ÜÔÏ É ÅÓÔØ ÔÏÔ ÓÁÍÙÊ ËÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ ÓÔÅË, ËÏÔÏÒÙÊ ÏÔ ÌÕËÁ×ÏÇÏ. óÍ. ÔÁËÖÅ ÌÀÂÏÊ ó ÄÌÑ È51, ÎÁÐÒÉÍÅÒ keil. üÔÁ ÍÅÔÏÄÉËÁ ÎÅÏÂÈÏÄÉÍÁ ÌÉÛØ ÐÏÔÏÍÕ, ÞÔÏ × È51 ×ÅÓØÍÁ ÎÁËÌÁÄÎÏ ÄÏÓÔÁ×ÁÔØ ÐÁÒÁÍÅÔÒÙ, ÐÅÒÅÄÁÎÎÙÅ ÞÅÒÅÚ ÓÔÅË

LB>> âÅÚ ËÏÎÔÒÏÌÑ ÔÉÐÏ× É ËÁËÏÊ-ÎÉÂÕÄØ ÏÐÔÉÍÉÚÁÃÉÉ Ô×ÏÉ ÍÁËÒÏÓÙ ÐÒÏÓÔÏ LB>> ÚÁÍÅÎÁ ÍÎÅÍÏÎÉË ÏÄÎÏÇÏ ASM ÎÁ ÄÒÕÇÏÊ, ÐÒÉ×ÙÞÎÙÊ.

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

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

wbr, Andy

Wed Mar 16 2005 13:49, Olga Nonova wrote to Leha Bishletov:

LB>> óÐÉÓÏË "ËÒÁÊÎÉÈ" ÓÌÕÞÁÅ×?

ON> óÔÒÏËÉ ÎÕÌÅ×ÏÊ ÄÌÉÎÙ.

ôÏ ÖÅ ÍÎÅ ÐÒÏÂÌÅÍÁ

ON> óÔÒÏËÉ, Õ ËÏÔÏÒÙÈ "ÚÁÂÙÌÉ" /0 × ËÏÎÃÅ.

ëÔÏ ÚÁÂÙÌ?

ON> óÔÒÏËÉ, ON> ×ÙÈÏÄÑÝÉÅ ÚÁ ÄÉÁÐÁÚÏÎ ÏÔ×ÅÄÅÎÎÏÊ ÐÏÄ ÎÅÅ ÐÁÍÑÔÉ.

ON>>> é ÐÒÅÄÕÓÍÏÔÒÅÔØ ÚÁÝÉÔÕ ÏÔ "ÚÁÂÙÌÉ ÎÏÌØ × ËÏÎÃÅ ÓÔÒÏËÉ"?

LB>> âÉÂÌÉÏÔÅÞÎÁÑ ÆÕÎËÃÉÑ ÜÔÏÇÏ ÎÅ ÄÅÌÁÅÔ

ON> á × Pascal - ÄÅÌÁÅÔ! ïÞÅÎØ ÇÒÁÍÏÔÎÏ ÐÒÏ×ÅÒÑÅÔ ×ÙÈÏÄ ÚÁ ÄÉÁÐÁÚÏÎ.

ôÁË ×ÙÚÏ×É ÓÎÁÞÁÌÁ strlen

LB>> úÁÐÒÏÓÔÏ, ÐÒÉ ÕÓÌÏ×ÉÉ, ÞÔÏ ÆÕÎËÃÉÑ ×ÙÚ×ÁÎÁ ËÏÒÒÅËÔÎÏ.

ON> á ËÔÏ ×ÙÚÙ×ÁÅÔ? ëÏÍÐÉÌÑÔÏÒ. ON> úÎÁÞÉÔ, ÂÕÄØÔÅ ÄÏÂÒÙ ÒÁÚÏÂÒÁÔØÓÑ ×Ï ×ÓÅÈ ON> ÔÏÎËÏÓÔÑÈ, ËÁË ÏÎ ÜÔÏ ÄÅÌÁÅÔ É ËÁËÏÇÏ ÕÒÏ×ÎÑ ÓÏÈÒÁÎÎÏÓÔÉ ËÏÎÔÅËÓÔÁ ON> ÔÒÅÂÕÅÔ. ON> ðÒÉÄÅÔÓÑ ÌÅÚÔØ × ASM. CÏ×ÓÅÍ ÎÅ ÔÒÉ×ÉÁÌØÎÏ.

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

wbr, Andy

15-Mar-05 21:50 Olga Nonova wrote to Leha Bishletov:

ON> Примеры самих макросов

ON> MoveByte MACRO Byt1,Byt2 ON> lds R16,Byt1 ON> sts Byt2,R16 ON> ENDM Кстати, атмелу за наличие ldi,ld,ldd,lds вместо одного mov и модификаторов для задания константы/ячейки ( var и #var или [var] и var - по вкусу) и средств макроязыка для определения метода адресации - поотрывать надо всё лишнее...

ON> LoadConst MACRO IntegerVar, LongConst ON> ;------------------------------------- ON> ; Load Integer Variable with a 32-bit constant. ON> ldi R16, Low(IntegerVar) ON> ldi R17, High(IntegerVar) ON> ldi R18, Low (LWRD LongConst) ON> ldi R19, High (LWRD LongConst) ON> ldi R20, Low (HWRD LongConst) ON> ldi R21, High (HWRD LongConst) ON> EXTERN _LoadConst ON> call _LoadConst ;--to math library ON> ENDM

Вдогонку. "как бы это было у меня, если бы когда-то я решил много писать для AVR на ассемблере". Было бы что-то в духе (ошмётки на тему):

; где-то оставить rcall (вызовы внутри данного модуля), где-то поставть ; _call - макрос, превращающийся в rcall или call в зависимости от процессора - ; это в качестве домашнего задания.

; достать адрес возврата как указатель на БАЙТЫ кода .macro popZcptr pop ZH pop ZL lsl ZL rol ZH .endm

; раз уж для AVR - то для всех, и старух, и посвежее .macro lpm_rp reg #ifdef __AVR_ENHANCED__ lpm \reg,Z+ #else lpm adiw ZL,1 .ifnc "\reg","r0" .ifnc "\reg","R0" mov \reg,r0 .endif .endif #endif .endm

; только для "завершённости" примера - где-то может быть именно макрос вывода, ; где-то -- вызов. .macro putchar_R0 rcall _putchar_R0 .endm

.macro putstr_P txt ; вывод строки через putchar_R0 rcall _putstr_P .asciz "\txt" .align 1 .endm

; "могу грузить, могу и не грузить" .macro ldi_X val .ifnc "\val","" ldi XL,lo8(\val) ldi XH,hi8(\val) .endif .endm

; Грузим строку из памяти кода в буфер в ОЗУ. .macro ldstring_P txt,buf ldi_X \buf ; ldi_X само разберётся - был ли указан buf rcall _ldstring_P .asciz "\txt" .align 1 .endm

; 16 бит ещё может и выгодно грузить через ldi, а вот 32 - ; по объёму кода уже откровенно лучше через два слова после ; вызова служебной функции .macro sti_32 const,var ldi_X \var rcall _sti_32 .long \const .endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#include "macs.inc"

.data buf: .skip 8

.text

_sti_32: popZcptr .rept 4 lpm_rp r0 st X+,r0 .endr rjmp iret

_putstr_P: popZcptr rjmp 2f

1: putchar_R0 2: lpm_rp r0 tst r0 brne 1b align_iret: ; восстановить Z как адрес возврата (с округлением вверх) и вернуться adiw ZL,1 iret: ; округление не нужно - только восстановление и возврат asr ZH ror ZL ijmp

_ldstring_P: popZcptr

1: lpm_rp r0 st X+,r0 tst r0 brne 1b rjmp align_iret

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

main: putstr_P "Hello, I am here!!\r\n"

sti_32 0xDEADBEEF,buf sti_32 0x01234567 ; продолжаем грузить тот же буфер

ldstring_P "kwa!",buf tst r16 breq 1f sbiw XL,1 ; отмотка назад концевого '\0' ldstring_P " mooo!\r\n" ; дописываем в хвост

1: ; ...

.end

А в случае ориентации только на кристаллы с наличием lpm reg,Z+ и для копирования в ОЗУ между не вычисляемыми в runtime адресами становится выгодно и аргументы memcpy не в регистры грузить в каждой точке вызова, а тоже словами в код. Точнее, это быстрее окупается, чем для не-ENHANCED ядра. Ну так и тут никто не мешает пустить под условную компиляцию варианты как реализации макроса, так и функции.

.macro memcpy_ii dst,src,len rcall _memcpy_ii .word \dst .word \src .word \len .endm

; это всё гораздо красивее выглядит, если есть возможность сделать ; jsr R5,_memcpy_ii ; а в самой подпрограмме ; mov (R5)+,R0 ; mov (R5)+,R1 ; mov (R5)+,R2 ; ... ; rts R5 ; но так тоже терпимо: _memcpy_ii: popZcptr lpm XL,Z+ lpm XH,Z+ lpm YL,Z+ lpm YH,Z+ lpm R24,Z+ lpm R25,Z+ rjmp 2f

1: ld r0,Y+ st X+,r0 2: sbiw R24,1 brcc 1b rjmp iret

memcpy_ii buf1, buf2, 10

15-Mar-05 21:50 Olga Nonova wrote to Leha Bishletov:

ON>>> Поэтому, для перехода на другую платформу

---------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OM>>> перелопачивать килобайты ассемблера вовсе не требуется.

LB>> Можно увидеть хотя бы фрагмент этих макросов? Особенно интересно, как LB>> решается задача по контролю соответствия типов (на С это происходит LB>> автоматически). Еще было бы не плохо, если бы была возможность LB>> организовать т.н. "компилированый стек".

ON> "Компилированный стек" тоже не реализуется. Ибо от лукавого. ON> Формальные параметры условилась всегда передавать в функции через ON> рабочие регистры. Очень лихо согласуется с подчёркнутым выше. То, что именно для AVR компилированный стек ни к чему - ещё не означает, что ограничение объёма аргументов и локальных переменных количеством регистров не возникнет на *другой* платформе.

ON> MovDD MACRO Src,Dst,Len ON> ldi R16,Low(Src) ON> ldi R17,High(Src) ON> ldi R18,Low(Dst) ON> ldi R19,High(Dst) ON> ldi R20,Len ON> EXTERN _MovDD ON> call _MovDD ;--to string library ON> ENDM

"и эти люди запрещают ковыряться мне на С" :-) Во-превых, передача адресов в подпрограмму через не-адресные регистры - это себе сишники могут позволить, да и то - многие реализации C содержат расширения. Спасибо, отличная иллюстрация того, что в сложных программах на ассемблере программисты как правило всё равно вынуждены выдумывать разные соглашения о вызовах, которые в существенной мере сводят на нет преимущества "оптимального" ручного распределения регистров и появляется присущий ЯВУ "оверхед". Там случайно ещё и _MovDD "на всякий случай" не сохраняет/восстанавливает указательные регистры??

ON> LoadConst MACRO IntegerVar, LongConst ON> ;------------------------------------- ON> ; Load Integer Variable with a 32-bit constant. ON> ldi R16, Low(IntegerVar) ON> ldi R17, High(IntegerVar) ON> ldi R18, Low (LWRD LongConst) ON> ldi R19, High (LWRD LongConst) ON> ldi R20, Low (HWRD LongConst) ON> ldi R21, High (HWRD LongConst) ON> EXTERN _LoadConst ON> call _LoadConst ;--to math library ON> ENDM Хм... И сколько раз такое чудо встречается в программе? Если один-два, то макрос и подпрограмма - только ради макросости и подпрограммности. А если больше, то .macro const2mem var,const ldi YL,lo8(var) ldi YH,hi8(var) call _const2mem_ .long const .endm

_const2mem_: pop ZH pop ZL lsl ZL rol ZH .rept 4 #if defined(__AVR_ENHANСED__) lpm r0,Z+ #else lpm adiw ZL,1 #endif st Y+,r0 .endr lsr ZH ror ZL ijmp .endm

2 слова выиграша на каждом вызове, 10-14 слов проигрыша на самой подпрограмме (если указатель в LoadConst сразу пишется куда надо, иначе - 8-12 слов проигрыша). Итого после 5-го..7-го применения - пошёл чистый выигрыш. В особо экономном случае - под условную компиляцию две версии макроса и функции :-)

15-Mar-05 22:05 Olga Nonova wrote to Anatoly Mashanov:

ON> Оптимизация нынче неактуальна. Hа злобу дня встал пресловутый Time To ON> Market.

Тогда я вообще не понимаю этих стонов по поводу C-шного и RTOS-ного "раздувания кода". Освоенная RTOS этот time2market как раз сокращает.

16-Mar-05 01:37 Alex Kouznetsov wrote to Olga Nonova:

ON>>>> Кроме того, вы сказали "копирование строки" несколько поспешно, т.к. ON>>>> речь идет об особых строках типа char, с нулем в конце.

AK>>> Что в ней особого? Это стандартная сишная строка.

ON>> Закидаем шапками? Й-ех, молодежь!

2ON: Хм... Вы нам льстите. Или же нам давно пора поинтересоваться отчеством и перейти на очень уважительный тон (это только писатели/поэты в нашем возрасте при союзе назывались "молодыми"). Нет, стариком я себя не считаю, но за "молодёжь" спасибо :-) Хотя, как показывает практика, эти вещи (шапкозакидательство и наоборот, вера в панацеи, "серебрянные пули" и т.п.) слабо связаны с возрастом. Как недавно где-то прочёл - "если вам ни с того ни с сего нахамили в форуме, где вы появились впервые с невинным вопросом - не воспринимайте близко к сердцу - возможно, ваш собеседник просто переживает сложный период становления личности... уже 50-тый год....).

AK> Ты не oтветила на вопрос: что в ней особого? Какие строки, по-твоему, не AK> являются особыми?

Да ты не понял :-) Сама строка нормальная, только вот strcat/strncat обязаны определять, что программист забыл в конце '\0' задать (интересно, как он на C это может сделать, кроме как посимвольно массив заполнить?) - и при этом как-то "корректно" реагировать, должны как-то разбираться с тем, что программист пытается прицепить строку туда, где нет места и т.п. Короче, strcat сама обязана исправлять все ошибки программиста. А вот ассемблерный макрос, наверно, это всё умеет :-)

wbr,

Wed Mar 16 2005 14:00, Olga Nonova wrote to Dima Orlov:

DO>> úÁÞÅÍ? ëÏÍÐÉÌÑÔÏÒ ÎÏÌØ ÎÅ ÚÁÂÙ×ÁÅÔ, × ÂÉÂÌÉÏÔÅÞÎÏÊ ÆÕÎËÃÉÉ ÎÉËÁËÉÈ ÚÁÝÉÔ DO>> ÏÔ ÜÔÏÇÏ ÎÅÔ, ËÓÔÁÔÉ ÒÁÚÍÅÒ ÂÕÆÅÒÁ ÏÎÁ ÔÏÖÅ ÎÅ ËÏÎÔÒÏÌÉÒÕÅÔ.

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

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

wbr, Andy

Wed Mar 16 2005 14:00, Olga Nonova wrote to Dima Orlov:

ON>>> И предусмотреть защиту от "забыли ноль в конце строки"?

DO>> Зачем? Компилятор ноль не забывает, в библиотечной функции никаких защит DO>> от этого нет, кстати размер буфера она тоже не контролирует.

ON> Компилятор может и не "забывает" ноль. Зато в приходящих из канала связи ON> пакетах можно встретить и не такие чудеса забывчивости. И последствия ON> фатальны для скомпилированной на Си программы.

Чушь.

Нет никакой разницы на чем скомпилирована программа, принимающая z-строки. Что на ассемблере, что на паскале, что на сях - обрабатываться строки должны одинаково. Это не языком определяется, а разработчиком.

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

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

Тем не менее, даже если какая-то разница есть, си не ограничивает свободу разработчика и не навязывает ему z-строки как _обязательные_ к использованию. Так же как паскаль не навязывает использования строк со счетчиком. Преобразовать z-строку в строку со счетчиком и обратно - пустяковая задача на любом языке.

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

Пока, Алексей

ðÒÉ×ÅÔ, Olga! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Wed, 16 Mar 2005 10:49:59 +0000 (UTC):

ON>>> úÁÄÁÞÁ, ÚÎÁÞÉÔ, ÄÌÑ ÷ÁÓ- ÒÁÚ ÐÌÀÎÕÔØ? é ÕÞÅÓÔØ ON>>> ÐÒÉ ÜÔÏÍ ×ÓÅ ËÒÁÊÎÉÅ ÓÌÕÞÁÉ ÉÓÈÏÄÎÙÈ ÓÔÒÏË? LB>> óÐÉÓÏË "ËÒÁÊÎÉÈ" ÓÌÕÞÁÅ×? ON> óÔÒÏËÉ ÎÕÌÅ×ÏÊ ÄÌÉÎÙ.

îÅ ÐÒÏÂÌÅÍÁ.

ON> óÔÒÏËÉ, Õ ËÏÔÏÒÙÈ "ÚÁÂÙÌÉ" /0 × ËÏÎÃÅ.

ó ÔÏÞËÉ ÚÒÅÎÉÑ ÓÔÁÎÄÁÒÔÎÏÊ ÂÉÂÌÉÏÔÅËÉ ó, Õ ÓÔÒÏËÉ ÎÅÔ ÄÒÕÇÏÇÏ ÏÇÒÁÎÉÞÉÔÅÌÑ, ËÒÏÍÅ \0 × ËÏÎÃÅ.

ON> óÔÒÏËÉ, ×ÙÈÏÄÑÝÉÅ ÚÁ ON> ÄÉÁÐÁÚÏÎ ÏÔ×ÅÄÅÎÎÏÊ ÐÏÄ ÎÅÅ ÐÁÍÑÔÉ.

ïÐÑÔØ ÖÅ, Õ ÓÔÁÎÄÁÒÔÎÏÊ ÓÔÒÏËÉ ÎÅÔ "ÏÔ×ÅÄÅÎÎÏÊ ÐÏÄ ÎÅÅ ÐÁÍÑÔÉ". ô.Å. ÏÂÎÁÒÕÖÉÔØ ÜÔÏ ÎÅ ÒÅÁÌØÎÏ, ÄÁÖÅ ÎÁ ASM.

ON>>> é ÐÒÅÄÕÓÍÏÔÒÅÔØ ÚÁÝÉÔÕ ÏÔ "ÚÁÂÙÌÉ ÎÏÌØ × ËÏÎÃÅ ÓÔÒÏËÉ"? LB>> âÉÂÌÉÏÔÅÞÎÁÑ ÆÕÎËÃÉÑ ÜÔÏÇÏ ÎÅ ÄÅÌÁÅÔ ON> á × Pascal - ÄÅÌÁÅÔ! ïÞÅÎØ ÇÒÁÍÏÔÎÏ ÐÒÏ×ÅÒÑÅÔ ×ÙÈÏÄ ÚÁ ÄÉÁÐÁÚÏÎ.

á ÅÓÌÉ × Pascal "ÚÁÂÙÌÉ" ÕËÁÚÁÔØ ÄÌÉÎÕ ÓÔÒÏËÉ? ôÏ ÖÅ ÎÁ ÔÏ ÖÅ.

ON>>> é ÎÅ ÉÓÐÏÒÔÉÔØ ËÏÎÔÅËÓÔ ×ÙÚÏ×Á ÆÕÎËÃÉÉ? LB>> úÁÐÒÏÓÔÏ, ÐÒÉ ÕÓÌÏ×ÉÉ, ÞÔÏ ÆÕÎËÃÉÑ ×ÙÚ×ÁÎÁ ËÏÒÒÅËÔÎÏ. ON> á ËÔÏ ×ÙÚÙ×ÁÅÔ? ëÏÍÐÉÌÑÔÏÒ. úÎÁÞÉÔ, ÂÕÄØÔÅ ÄÏÂÒÙ ÒÁÚÏÂÒÁÔØÓÑ ×Ï ON> ×ÓÅÈ ÔÏÎËÏÓÔÑÈ, ËÁË ÏÎ ÜÔÏ ÄÅÌÁÅÔ É ËÁËÏÇÏ ÕÒÏ×ÎÑ ÓÏÈÒÁÎÎÏÓÔÉ ON> ËÏÎÔÅËÓÔÁ ÔÒÅÂÕÅÔ. ðÒÉÄÅÔÓÑ ÌÅÚÔØ × ASM. CÏ×ÓÅÍ ÎÅ ÔÒÉ×ÉÁÌØÎÏ.

ðÏÄ ËÏÒÒÅËÔÎÏÓÔØÀ Ñ ÐÏÎÉÍÁÌ, ÞÔÏ ÅÊ × ËÁÞÅÓÔ×Å ÐÁÒÁÍÅÔÒÏ× ÂÕÄÕÔ ÐÅÒÅÄÁÎÙ ÕËÁÚÁÔÅÌÉ ÎÁ ÓÔÒÏËÉ, Á ÎÅ ËÁËÏÊ-ÔÏ ÍÕÓÏÒ. á ÅÓÌÉ ÇÏ×ÏÒÉÔØ Ï ÐÒÁ×ÉÌØÎÏÓÔÉ ÐÅÒÅÄÁÞÉ ÐÁÒÁÍÅÔÒÏ×, ÔÏ ËÏÇÄÁ Ñ ÐÉÛÕ ÞÔÏ-ÔÏ ÔÉÐÁ: int f(int a, int b) { rÅturn a+b; } .. c=f(1,2); Ñ ÎÅ ÚÁÄÕÍÙ×ÁÀÓØ Ï ÔÏÍ ËÁË É ÞÔÏ ËÏÍÐÉÌÑÔÏÒ ÓÏÈÒÁÎÑÅÔ. üÔÏ ÅÇÏ ÏÂÑÚÁÎÎÏÓÔØ ×ÓÅ ÓÄÅÌÁÔØ ËÏÒÒÅËÔÎÏ. úÁÞÅÍ ÍÎÅ ÓÍÏÔÒÅÔØ ËÁË ÏÎ ÜÔÏÇÏ ÄÏÂÉ×ÁÅÔÓÑ?

ON>>> é ÎÅ ×ÌÑÐÁÔØÓÑ × ÉÎÓÔÒÕËÃÉÉ ON>>> ËÏÎÔÒÏÌÌÅÒÁ ÉÚ ÓÐÉÓËÁ ERRATA? LB>> üÔÏ ÚÁÂÏÔÁ ËÏÍÐÉÌÑÔÏÒÁ. ëÓÔÁÔÉ, ÍÎÏÇÏ ÔÙ ÚÎÁÅÛØ ÔÁËÉÈ ÉÎÓÔÒÕËÃÉÊ? ON> âÉÂÌÉÏÔÅÞÎÁÑ ÆÕÎËÃÉÑ ÎÅ Ñ×ÌÑÅÔÓÑ "ÚÁÂÏÔÏÊ" ËÏÍÐÉÌÑÔÏÒÁ.

íÙ ×ÓÅ ÅÝÅ Ï ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÒÅÁÌÉÚÁÃÉÉ strcat? úÁÂÏÔÏÊ ËÏÍÐÉÌÑÔÏÒÁ Ñ×ÌÑÅÔÓÑ ÍÁÛÉÎÎÙÊ ËÏÄ, ×ÙÐÏÌÎÑÀÝÉÊ ÔÏ, ÞÔÏ ÎÁÐÉÓÁÎÏ ÎÁ ó. é ÏÎ ÚÁÂÏÔÉÔÓÑ Ï ÔÏÍ, ÞÔÏ ÂÙ ÒÁÚÎÙÅ ÉÎÓÔÒÕËÃÉÉ ÉÚ ERRATA ÎÅ ÐÏÍÅÛÁÌÉ ×ÙÐÏÌÎÅÎÉÀ (× ÒÁÚÕÍÎÙÈ ÐÒÅÄÅÌÁÈ, ÅÓÔÅÓÔ×ÅÎÎÏ).

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

é ËÁË × ÐÒÉ×ÅÄÅÎÎÙÈ ÒÁÎÅÅ ÍÁËÒÏÓÁÈ ÜÔÏ ÕÞÉÔÙ×ÁÅÔÓÑ?

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

ðÒÉ×ÅÔ, Sergey! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Wed, 16 Mar 2005 13:46:00 +0300:

ON>>> çpÁÍÏÔÎÙÅ ÁÓÓÅÍÂÌÅpÝÉËÉ pÁÂÏÔÁÀÔ × ÍÁËpÏÓÁÈ, ÂÉÂÌÉÏÔÅËÕ ËÏÔÏpÙÈ ... LB>> íÏÖÎÏ Õ×ÉÄÅÔØ ÈÏÔÑ ÂÙ ÆpÁÇÍÅÎÔ ÜÔÉÈ ÍÁËpÏÓÏ×? ïÓÏÂÅÎÎÏ ÉÎÔÅpÅÓÎÏ, ... SD> ó×ÏÉ 5 ËÏÐÅÅË ×ÓÔÁ×ÌÀ. ïÄÎÏ ÉÚ ÐpÉÍÅÎÅÎÉÊ ÁÓÍÁ ËÁË pÁÚ × ÔÏÍ, ÞÔÏÂÙ SD> ×pÕÞÎÕÀ ËÏÎÔpÏÌÉpÏ×ÁÔØ É ÐpÉ×ÏÄÉÔØ ÔÉÐÙ (8*8=16, 16/8=8 ÉÔÐ). HÁ SD> ÕpÏ×ÎÅ ÏÔÄÅÌØÎÙÈ ÆÕÎËÃÉÊ ÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÄÏÓÔÁÔÏÞÎÙÊ ×ÙÉÇpÙÛ (ÎÁ SD> ÏÔÄÅÌØÎÏ ×ÚÑÔÙÈ ÐÌÁÔÆÏpÍÁÈ), × ÃÅÌÏÍ ÎÁ ÐpÉÌÏÖÅÎÉÅ ÜÔÏ, ËÏÎÅÞÎÏ SD> ÕÓÌÏÖÎÑÅÔ ÖÉÚÎØ.

þÁÓÔÏ ×ÍÅÓÔÅ Ó ËÏÍÐÉÌÑÔÏÒÏÍ ÉÄÅÔ ÂÉÂÌÉÏÔÅËÁ × ËÏÔÏÒÏÊ ÅÓÔØ ÞÔÏ-ÔÏ ÔÉÐÁ int __mul_8_8(char v1, char v2); É Ô.Ð.

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

ðÒÉ×ÅÔ, Olga! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Wed, 16 Mar 2005 10:33:36 +0000 (UTC):

ON>>> åÓÌÉ ÞÅÓÔÎÏ, ÔÏ ÚÁÄÁÞÁ ËÏÎÔÒÏÌÑ ÔÉÐÏ×, ÓÌÁ×Á âÏÇÕ!, ÎÉËÁË ÎÅ ON>>> ÒÅÛÁÅÔÓÑ. LB>> éÎÔÅÒÅÓÎÏ, ÞÔÏ ÈÏÒÏÛÅÇÏ × ÏÔÓÕÔÓÔ×ÉÉ ËÏÎÔÒÏÌÑ ÔÉÐÏ×? äÌÑ ÍÅÎÑ LB>> ÏÄÎÏÊ ÉÚ ÓÕÝÅÓÔ×ÅÎÎÙÈ ÐÒÉÞÉÎ ÐÅÒÅÈÏÄÁ ASM->C ÂÙÌ ÉÍÅÎÎÏ ËÏÎÔÒÏÌØ LB>> ÔÉÐÏ×. ON> èÏÒÏÛÅÅ × ÏÔÓÕÔÓÔ×ÉÉ ×ÓÑÞÅÓËÉÈ ÏÇÒÁÎÉÞÅÎÉÊ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÄÎÕ ÔÕ-ÖÅ ON> ÐÅÒÅÍÅÎÎÕÀ ÉÌÉ ËÏÎÓÔÁÎÔÕ × ÓÁÍÙÈ ÒÁÚÎÙÈ ÔÉÐÁÈ É ÎÅ ÂÏÒÏÔØÓÑ ÐÒÉ ON> ÜÔÏÍ Ó ÎÁÚÏÊÌÉ×ÙÍÉ ÓÏÏÂÝÅÎÉÑÍÉ ËÏÍÐÉÌÑÔÏÒÁ Ï ÏÛÉÂËÁÈ.

õ ó ÐÒÅ×ÒÁÝÅÎÉÅ ÏÄÎÏÇÏ ÔÉÐÁ × ÄÒÕÇÏÊ ÐÒÏÉÓÈÏÄÉÔ Á×ÔÏÍÁÔÉÞÅÓËÉ, × ÒÁÚÕÍÎÙÈ ÐÒÅÄÅÌÁÈ (ÚÁ ÞÔÏ ÅÇÏ ÎÅËÏÔÏÒÙÅ ÒÕÇÁÀÔ). é ÞÁÓÔÏ ÌÉ ×ÏÚÎÉËÁÀÔ ÓÉÔÕÁÃÉÉ, ËÏÇÄÁ ÔÁËÏÅ ÐÒÅ×ÒÁÝÅÎÉÅ ÎÕÖÎÏ, ÎÏ ÎÅ ÄÏÐÕÓÔÉÍÏ × ó?

ON>>> "ëÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ ÓÔÅË" ÔÏÖÅ ÎÅ ÒÅÁÌÉÚÕÅÔÓÑ. éÂÏ ÏÔ ÌÕËÁ×ÏÇÏ. LB>> á ËÁË ÖÅ ÜËÏÎÏÍÉÑ ÂÁÊÔÏ×? éÌÉ ÎÕÖÎÏ ÏÔËÁÚÁÔØÓÑ ÏÔ ÓÏ×ÍÅÓÔÎÏÇÏ LB>> ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÏÄÎÏÇÏ É ÔÏÇÏ ÖÅ ÕÞÁÓÔËÁ ÐÁÍÑÔÉ ÒÁÚÎÙÍÉ LB>> ÐÏÄÐÒÏÇÒÁÍÍÁÍÉ? ON> äÉÎÁÍÉÞÅÓËÏÅ ÒÁÓÐÒÅÄÅÌÅÎÉÅ ÌÏËÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ ÍÏÖÅÔ ÒÅÛÁÔØÓÑ É ON> ÂÅÚ ÐÒÉ×ÌÅÞÅÎÉÑ ÓÔÅËÁ ÄÁÎÎÙÈ (ÓÍ. ÎÁÐÒÉÍÅÒ PLM-51).

ðÏÌÕÞÉÌÉ "ËÏÍÐÉÌÉÒÏ×ÁÎÙÊ ÓÔÅË".

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

îÅ ÔÏÌØËÏ ÄÌÑ ÒÅËÕÒÓÉÉ, Á ÉÍÅÎÎÏ ÄÌÑ ÓÏ×ÍÅÓÔÎÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÐÁÍÑÔÉ. ðÁÍÑÔØ ÐÒÉ ÜÔÏÍ ÏÞÅÎØ ÜËÏÎÏÍÉÔÓÑ.

ON>>> MoveByte MACRO Byt1,Byt2 ON>>> lds R16,Byt1 ON>>> sts Byt2,R16 ON>>> ENDM LB>> ñ ÐÌÏÈÏ ÒÁÚÂÉÒÁÀÓØ × ÓÉÓÔÅÍÅ ËÏÍÁÎÄ AVR, ÎÏ ÍÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ÔÁÍ LB>> ÅÓÔØ ËÏÓ×ÅÎÁÑ ÁÄÒÅÓÁÃÉÑ, ËÏÒÏÒÁÑ "ÜËÏÎÏÍÎÅÅ" lds-sts. ëÏÍÐÉÌÑÔÏÒ ... ON> åÓÌÉ ×ÓÐÏÍÎÉÔØ, ÞÔÏ ÄÌÑ ËÏÓ×ÅÎÎÏÊ ÁÌÒÅÓÁÃÉÉ ÎÕÖÎÏ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏ ON> ÎÁÚÎÁÞÉÔØ ×ÓÅ ÕËÁÚÁÔÅÌÉ, ÔÏ ÄÏÌÖÎÏ ÓÒÁÚÕ ÓÔÁÔØ ÐÏÎÑÔÎÙÍ, ÞÔÏ ÄÌÑ ON> ÐÅÒÅÓÙÌËÉ ÏÄÎÏÇÏ ÂÁÊÔÁ ÅÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÏ×ÅÒÛÅÎÎÏ ÎÅÜËÏÎÏÍÉÞÎÏ. é ON> ÄÌÑ Ä×ÕÈ, É ÄÌÑ ÔÒÅÈ...úÁÔÒÁÔÙ ÐÏ ÉÎÓÔÒÕËÃÉÑÍ ×ÙÒÁ×ÎÉ×ÁÀÔÓÑ, ÇÄÅ-ÔÏ ON> ÎÁÞÉÎÁÑ Ó ÐÅÒÅÓÙÌËÉ × 8 _ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ_ ÒÁÓÐÏÌÏÖÅÎÎÙÈ ÂÁÊÔ. ôÁËÉÍ ON> ÏÂÒÁÚÏÍ...

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

LB>> âÅÚ ËÏÎÔÒÏÌÑ ÔÉÐÏ× É ËÁËÏÊ-ÎÉÂÕÄØ ÏÐÔÉÍÉÚÁÃÉÉ Ô×ÏÉ ÍÁËÒÏÓÙ LB>> ÐÒÏÓÔÏ ÚÁÍÅÎÁ ÍÎÅÍÏÎÉË ÏÄÎÏÇÏ ASM ÎÁ ÄÒÕÇÏÊ, ÐÒÉ×ÙÞÎÙÊ. ON> üÔÏ ÄÁÌÅËÏ ÎÅ ÔÁË. ðÏÍÏÝØ × ÎÁÐÉÓÁÎÉÉ ÎÁÄÅÖÎÏÇÏ ËÏÄÁ- ÎÅÉÍÏ×ÅÒÎÁÑ. ON> ðÏÓËÏÌØËÕ ÚÁÝÉÝÁÅÔ ÏÔ ÒÕÔÉÎÎÙÈ ÏÛÉÂÏË × ÎÁÂÏÒÅ ËÏÄÁ, ËÏÔÏÒÙÅ, Õ×Ù, ON> ÎÉËÁËÏÍÕ ÁÓÕ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÅ ÉÚÂÅÖÁÔØ.

é ÐÒÉ ÜÔÏÍ ÔÙ ÄÏÂÒÏ×ÏÌØÎÏ ÏÔËÁÚÙ×ÁÅÛØÓÑ ÏÔ ËÏÎÔÒÏÌÑ ÔÉÐÏ×?? ñ, ÂÕÄØ ÍÏÑ ×ÏÌÑ, ÄÏÂÁ×ÉÌ ÂÙ × ó ×ÏÚÍÏÖÎÏÓÔØ ÓÏÚÄÁ×ÁÔØ ÓÏÂÓÔ×ÅÎÎÙÅ ÔÉÐÙ, ÏÐÅÒÁÃÉÉ Ó ËÏÔÏÒÙÍÉ ×ÙÐÏÌÎÑÌÉÓØ ÂÙ ËÁË Ó ÒÏÄÎÙÍ int ÉÌÉ char, ÎÏ ËÏÔÏÒÙÅ ÎÅÌØÚÑ ÂÙÌÏ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ × ÏÄÎÏÍ ×ÙÒÁÖÅÎÉÉ.

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

üÔÉ ÍÁËÒÏÓÙ ×ÙÓÔÒÁÄÁÎÙ É ×ÙÞÉÝÅÎÙ ÏÄÎÉÍ ÞÅÌÏ×ÅËÏÍ, ÔÏÂÏÊ. ðÒÏ×ÅÒÅÎÙ ÎÁ ÄÅÓÑÔËÁÈ Ô×ÏÉÈ ÐÒÏÅËÔÏ×. ëÏÍÐÉÌÑÔÏÒÙ ×ÙÓÔÒÁÄÁÎÙ É ×ÙÞÉÝÅÎÙ ÔÙÓÑÞÁÍÉ ÌÀÄÅÊ, ÐÒÏ×ÅÒÅÎÙ ÎÁ ÄÅÓÑÔËÁÈ ÔÙÓÑÞ ÐÒÏÅËÔÏ×. ðÏ ÎÁÄÅÖÎÏÓÔÉ ÏÎÉ ÎÅ ÈÕÖÅ Ô×ÏÉÈ ÍÁËÒÏÓÏ×.

LB>> ðÏÒÔÉÒÏ×ÁÎÉÅ ÔÁËÉÈ LB>> ÐÒÏÇÒÁÍÍ Ó ÏÄÎÏÊ ÐÌÁÔÆÏÒÍÙ ÎÁ ÄÒÕÇÕÀ Ñ ÓÞÉÔÁÀ ïþåHø ÓÌÏÖÎÙÍ. õ LB>> ÔÅÂÑ ÅÓÔØ ÏÐÙÔ ÐÏÒÔÉÒÏ×ÁÎÉÑ Ô×ÏÅÇÏ ASM Ó AVR ÎÁ "ÎÅ AVR"? ON> ôÁËÏÇÏ ÏÐÙÔÁ Õ ÍÅÎÑ ÎÅÔ. äÁ É ÚÁÞÅÍ ÍÅÎÑÔØ ÛÉÌÏ ÎÁ ÍÙÌÏ? óÐÅËÔÒÁ ON> ÍÏÄÅÌÅÊ AVR È×ÁÔÉÔ ÅÝÅ ÌÅÔ ÎÁ 10 ÐÒÁËÔÉÞÅÓËÏÊ ÄÅÑÔÅÌØÎÏÓÔÉ.

üÔÏÔ ×ÏÐÒÏÓ × ÏÔ×ÅÔ ÎÁ Ô×ÏÅ : ON> çÒÁÍÏÔÎÙÅ ÁÓÓÅÍÂÌÅÒÝÉËÉ ÒÁÂÏÔÁÀÔ × ÍÁËÒÏÓÁÈ, ... ðÏÜÔÏÍÕ, ON> ÄÌÑ ÐÅÒÅÈÏÄÁ ÎÁ ÄÒÕÇÕÀ ÐÌÁÔÆÏÒÍÕ ÐÅÒÅÌÏÐÁÞÉ×ÁÔØ ËÉÌÏÂÁÊÔÙ ON> ÁÓÓÅÍÂÌÅÒÁ ×Ï×ÓÅ ÎÅ ÔÒÅÂÕÅÔÓÑ.

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

ðÒÉ×ÅÔ, Andrej! ÷Ù ÐÉÓÁÌÉ to Leha Bishletov on Wed, 16 Mar 2005 08:12:14 +0000 (UTC):

??>> ðÏÒÔÉÒÏ×ÁÎÉÅ ÔÁËÉÈ ÐÒÏÇÒÁÍÍ Ó ÏÄÎÏÊ ÐÌÁÔÆÏÒÍÙ ÎÁ ÄÒÕÇÕÀ Ñ ÓÞÉÔÁÀ ??>> ïþåîø ÓÌÏÖÎÙÍ. õ ÔÅÂÑ ÅÓÔØ ÏÐÙÔ ÐÏÒÔÉÒÏ×ÁÎÉÑ Ô×ÏÅÇÏ ASM Ó AVR ÎÁ ??>> "ÎÅ AVR"? AA> ëÁË × ÔÁËÉÈ ÓÌÕÞÁÑÈ ÇÏ×ÏÒÑÔ - ÎÅ ÓÔÁר ÔÅÌÅÇÕ ×ÐÅÒÅÄÉ ÌÏÛÁÄÉ.

AA> á ÐÒÑÍÙÍ ÔÅËÓÔÏÍ - ÜÔÉ ÍÁËÒÏÓÙ ÂÙÌÉ ÎÁÐÉÓÁÎÙ Åݣ ÔÏÇÄÁ, AA> ËÏÇÄÁ É ÔÁËÏÊ ÁÂÒÅ×ÉÁÔÕÒÙ Á×Ò ÎÉËÔÏ É ÎÅ ÓÌÙÈÉ×ÁÌ.

îÏ ÐÏÄ AVR ÉÈ ×ÓÅ ÒÁ×ÎÏ ÐÒÉÛÌÏÓØ ÐÅÒÅÐÉÓÙ×ÁÔØ. é ÞÅÍ ÏÎÉ ÌÕÞÛÅ ÏÂÙÞÎÏÇÏ ó? é ÇÄÅ ÅÓÔØ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ, ÎÁÐÉÓÁÎÙÅ ÎÁ ÜÔÉÈ ÍÁËÒÏÓÁÈ?

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

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

MB>> ÷ÙÎyÖÄÅÎ ×ÅpÎyÔØÓÑ, ÉÂÏ Ó×ÏÅ×pÅÍÅÎÎÏ ÎÅ yÇÌÑÄÅÌ ÐÏÄޣpËÎyÔÏÇÏ. MB>> ëÏÎÅÞÎÏ, × ÍϣÍ ÓÌyÞÁÅ ÆyÎËÃÉÉ ÎÅ ÉÚ ÓÔÁÎÄÁpÔÎÙÈ ÂÉÂÌÉÏÔÅË, Á MB>> ÉÓËÌÀÞÉÔÅÌØÎÏ ÓÁÍÏÐÉÓÎÙÅ. Hy É × ޣÍ ÐpÏÂÌÅÍÁ? æyÎËÃÉÉ ÎÉËÁË ÎÅ MB>> Ñ×ÌÑÀÔÓÑ ÜÌÅÍÅÎÔÁÍÉ ÑÚÙËÁ óÉ, É, ÍÅÖÄy ÐpÏÞÉÍ, ÎÉËÔÏ ÓÉÌÏÊ ÎÅ MB>> ÚÁÓÔÁ×ÌÑÅÔ ÉÍÉ ÐÏÌØÚÏ×ÁÔØÓÑ. ñ, Ë ÐpÉÍÅpy, ÄÅÌÁÀ ÜÔÏ ÔÏÌØËÏ MB>> ÔÏÇÄÁ, ËÏÇÄÁ ÐÉÛy ÞÔÏ-ÎÉÂyÄØ ÎÁ óÉ ÄÌÑ _ËÏÍÐyÔÅpÁ_, É ÎÉËÏÇÄÁ - MB>> ÄÌÑ ËÏÎÔpÏÌÌÅpÏ×. é (ÐyÓËÁÊ ÍÅÎÑ ÐÎyÔ, ÅÓÌÉ ÜÔÏ ÎÅ ÔÁË) ÉÍÉ MB>> × ÜÈÏÔÁÇÅ ×ÏÏÂÝÅ pÅÄËÏ ÐÏÌØÚyÀÔÓÑ.

ON> íÏÑ ÍÎÏÇÏÓÔpÁÄÁÌØÎÁÑ ÉÍÈÁ ÄyÍÁÅÔ, ÞÔÏ × ÑÚÙËÁÈ ×ÙÓÏËÏÇÏ ypÏ×ÎÑ ÓÁÍÙÍ ON> ÃÅÎÎÙÍ Ñ×ÌÑÀÔÓÑ ÎÅÇÌÀÞÎÙÅ ÂÉÂÌÉÏÔÅËÉ. ÷ ÎÉÈ ÚÁËÌÀÞÅÎ ÇpÏÍÁÄÎÙÊ É

"çpÏÍÁÄÎÙÊ" - ÜÔÏ Ñ×ÎÏÅ ÐpÅy×ÅÌÉÞÅÎÉÅ.

ON> ÎÅÂÌÁÇÏÄÁpÎÙÊ ÔpyÄ.

"HÅÂÌÁÇÏÄÁpÎÙÊ" - ÐpÅy×ÅÌÉÞÅÎÉÅ ÎÅ ÍÅÎÅÅ Ñ×ÎÏÅ É ÇÏpÁÚÄÏ ÂïÌØÛÅÅ. ôÅ, ËÔÏ ÉÈ ÐÉÓÁÌ, Ó×ÏÀ ÄÅÎÀÖËy ÐÏÌyÞÉÌÉ.

ON> HÁ ÐpÁËÔÉËÅ, ÎÅÎÁÄÅÖÎÁÑ ÂÉÂÌÉÏÔÅËÁ ÐpÉËÌÁÄÎÙÈ ON> ÆyÎËÃÉÊ ÓÐÏÓÏÂÎÁ ÓÐÏÓÏÂÎÁ ÏÄÎÉÍ Ä×ÉÖÅÎÉÅÍ ÐÅpÅÞÅpËÎyÔØ ÓÁÍÙÅ ON> ÇÅÎÉÁÌØÎÙÅ ÉÄÅÉ × ËÏÎÓÔpyËÃÉÑÈ ÑÚÙËÁ ÐpÏÇpÁÍÍÉpÏ×ÁÎÉÑ. ðÏÌØÚÏ×ÁÔÅÌØ ON> ÐpÏÓÔÏ ÐÌÀÎÅÔ ÎÁ ×ÓÀ ÇÅÎÉÁÌØÎÏÓÔØ É ÐÏÊÄÅÔ ÉÓËÁÔØ ÞÔÏ-ÎÉÂyÄØ ÐÏÐpÏÝÅ, ON> ÎÏ ÞÔÏ ÂÅÚ ÇÌÀËÏ× × ÐpÉËÌÁÄÎÙÈ ÂÉÂÌÉÏÔÅËÁÈ. éÚÌÁÇÁÀ ÉÓËÌÀÞÉÔÅÌØÎÏÅ ON> ÉÍÈÏ.

íÏÑ ÉÍÈÁ ÐÏ ÄÁÎÎÏÍy ×ÏÐpÏÓy ÎÅÓËÏÌØËÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ Ô×ÏÅÊ (ÍÅÖÄy ÐpÏÞÉÍ, × æÉÄÏ (Á Óɣ ÍÅÓÔÏ, ÎÁÐÏÍÎÀ - ÆÉÄÏÛÎÁÑ ÜÈÁ) ÐpÉÎÑÔÏ Ë ÓÏÂÅÓÅÄÎÉËy ÏÂpÁÝÁÔØÓÑ ÎÁ "ÔÙ", ÄÁÖÅ ÅÓÌÉ ÏÄÉÎ ÉÚ ÓÏÂÅÓÅÄÎÉËÏ× - ÄÁÍÁ). ðpÅÖÄÅ ×ÓÅÇÏ, ÎÁÓޣÔ ÇÌÀÞÎÏÓÔÉ É ÎÅÇÌÀÞÎÏÓÔÉ ÂÉÂÌÉÏÔÅË. ñ ÞÔÏ-ÔÏ ÎÅ ÓÌÙÛÁÌ ÐpÏ ÇÌÀÞÎÙÅ ÂÉÂÌÉÏÔÅËÉ - ÎÉ × ÂÏpÌÁÎÄÏ×ÓËÉÈ ÐÁËÅÔÁÈ ÄÌÑ ÐÅpÓÏÎÁÌÏË, ÎÉ × ëÅÊÌÅ, ÎÉ × éáòÅ. (äpyÇÉÍÉ ÉÚÄÅÌÉÑÍÉ ËÁË-ÔÏ ÎÅ ÉÎÔÅpÅÓÏ×ÁÌÓÑ, ÐÏÚÏp ÎÁ ÍÏÀ ÓÅÄyÀ ÇÏÌÏ×y...) þÔÏ ËÁÓÁÅÔÓÑ ÜÈÏÔÁÇÁ - ÄÅÌÏ ÄÁÖÅ ÎÅ ÓÔÏÌØËÏ × ÇÌÀÞÎÏÓÔÉ, ÓËÏÌØËÏ × pÅÓypÓϣÍËÏÓÔÉ ÆyÎËÃÉÊ ÉÚ ÓÔÁÎÄÁpÔÎÙÈ ÂÉÂÌÉÏÔÅË. éÍÅÎÎÏ ÐÏÜÔÏÍy Ñ É ÐpÅÄÐÏÞÉÔÁÀ Ó×ϣ. é Ñ ÓÁÍ ÄÏÌÖÅÎ ÏÂÅÓÐÅÞÉÔØ ÎÅÇÌÀÞÎÏÓÔØ Ó×ÏÉÈ ÆyÎËÃÉÊ. ðpÉ ÜÔÏÍ Ñ ËÁË ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÉÍÅÀ ÎÉ ×ÏÚÍÏÖÎÏÓÔÉ, ÎÉ ÖÅÌÁÎÉÑ ÐpÏÓÔÏ ÐÌÀÎyÔØ ÎÁ ×ÓÀ (ÍÏÀ???) ÇÅÎÉÁÌØÎÏÓÔØ É ÐÏÊÔÉ ÉÓËÁÔØ ÞÔÏ-ÎÉÂyÄØ ÐÏÐpÏÝÅ, ÎÏ ÞÔÏ ÂÅÚ ÇÌÀËÏ×. ïÔ ÄÏÂpÁ - ÄÏÂpÁ ÎÅ ÉÝyÔ. ëÏÎÅÞÎÏ, × ÓpÁ×ÎÅÎÉÉ Ó ÔÅÍ ÖÅ ÐÁÓËÁÌÅÍ (ÔyÔ Ñ ÇÏ×ÏpÀ yÖÅ ÎÅ ËÁÓÁÑÓØ ÜÈÏÔÁÇÁ) ÏÎ ÔpÅÂyÅÔ ÂïÌØÛÅÇÏ ×ÎÉÍÁÎÉÑ É ÔÅÏpÅÔÉÞÅÓËÉ ÐÏÚ×ÏÌÑÅÔ ÎÁÌÏÍÁÔØ ÂÏÌØÛÅ ÄpÏ×. Hy ÔÁË ÎÁ ÔÏ É ÝyËÁ, ÞÔÏÂÙ ËÁpÁÓØ ÎÅ ÄpÅÍÁÌ. þÔÏ ËÁÓÁÅÔÓÑ ÁÓÓÅÍÂÌÅpÁ... ÷ÏÔ pÁÂÏÔÁÌ Ñ Ó ÁÔÍÅÌÁÍÉ 51-ÇÏ ÓÅÍÅÊÓÔ×Á, É ÐÉÓÁÌ ÔÏÌØËÏ ÎÁ ÁÓÍÅ. HÅÔ, ×py - ÎÅÍÎÏÇÏ ÐÏÍyÞÉÌ óÉ ÎÁ ëÅÊÌÅ. HÏ ËÁË ÔÏÌØËÏ Ó×ÑÚÁÌÓÑ Ó á÷òÁÍÉ... ïÄÉÎ pÁÚ Ñ ÐÏÐpÏÂÏ×ÁÌ ÎÁÐÉÓÁÔØ ÎÁ á÷òÏ×ÓËÏÍ ÁÓÍÅ, ÂÏÌØÛÅ ÎÅ ÈÏÞy. ôÏÔ ÂpÅÄ ÓyÍÁÓÛÅÄÛÅÇÏ, ËÏÔÏpÙÊ ÎÁÚÙ×ÁÅÔÓÑ ÍÎÅÍÏÎÉËÁÍÉ á÷òÁ - "ñ ÎÅ ÈÏÞy, ÞÔÏ ÜÔÁ ÇÁÄÏÓÔØ ÂÙÌÁ pÑÄÏÍ ÓÏ ÍÎÏÊ!.." (Ó) þÁÊÆ

ON> ÷ÓÅÇÏ ÷ÁÍ èÏpÏÛÅÇÏ

õÇy. áÎÁÌÏÇÉÞÎÏ.

ON> ïÌØÇÁ

Michael G. Belousoff

formatting link
mailto: mickbell(dog)r66(dot)ru

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

Hello Olga.

16 Mar 05 12:26, you wrote to Alexander Torres:

ON> óÉÌØÎÏ ÓÏÍÎÅ×ÁÀÓØ ÎÁ ÓÞÅÔ ÏÂÏÓÎÏ×ÁÎÎÏÓÔÉ ÁÒÇÕÍÅÎÔÁ ËÒÕÐÎÙÈ ÓÅÒÉÊ × ON> ÎÁÛÅÊ ÓÔÒÁÎÅ.

á ËÁËÁÑ ÓÔÒÁÎÁ ×ÁÛÁ?

Alexey

Hello Oleksandr.

15 Mar 05 08:13, you wrote to Alex Gavrikov:

AG>> HÅÕÖÅÌÉ ÏÄÉÎ ÔÁËÔ ÔÁË ÎÁÐpÑÇÁÅÔ? ôÁË ÍÎÏÇÏ ÏÐÅpÁÃÉÊ ÕÍÎÏÖÅÎÉÑ? OR> __zero_reg__ ÔÏÖÅ ÎÅ ÔÁË ÞÁÓÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ, ÍÏÖÎÏ ÂÙÌÏ ÂÙ OR> ËÁÖÄÙÊ ÒÁÚ ÜÔÏÔ R1 ÏÞÉÝÑÔØ ÐÅÒÅÄ ÐÒÉÍÅÎÅÎÉÅÍ.

ïÞÅ×ÉÄÎÏ - ÜÔÏ ÐÒÏÓÔÏ ÎÅÄÁÌØÎÏ×ÉÄÎÏÓÔØ ÐÅÒ×ÏÎÁÞÁÌØÎÏÇÏ ÒÁÚÒÁÂÏÔÞÉËÁ.

OR> HÏ ÔÅÍ ÎÅ ÍÅÎÅÅ ÒÅÛÉÌÉ OR> ÄÅÒÖÁÔØ ÅÇÏ ×ÓÅÇÄÁ ÚÁÎỌ̃ÎÎÙÍ, ÞÔÏÂÙ ÓÜËÏÎÏÍÉÔØ ÔÅ Ä×Á ÂÁÊÔÁ É ÏÄÉÎ OR> ÔÁËÔ ÔÁÍ, ÇÄÅ ÜÔÏ ÍÏÖÎÏ, ÔÁË ËÁË ×ӣ ÒÁ×ÎÏ ÒÅÇÉÓÔÒ ÇÕÌÑÅÔ. HÏ ÉÚ-ÚÁ OR> ÔÏÇÏ, ÞÔÏ ÂÙÌ ×ÙÂÒÁÎ R1 - ÔÅÐÅÒØ ÔÏ ÔÁÍ, ÔÏ ÓÑÍ ÓÔÏÑÔ ÓÏ×ÅÒÛÅÎÎÏ OR> ÎÅÎÕÖÎÙÅ ËÏÍÁÎÄÙ ÅÇÏ ÏÞÉÓÔËÉ ÐÏÓÌÅ ÕÍÎÏÖÅÎÉÑ.

÷ÐÒÏÞÅÍ - ÍÏÖÎÏ ÂÙÌÏ ÂÙ É ÐÅÒÅÐÉÓÁÔØ. ïÓÏÂÏ ÓÉÌØÎÙÈ ÎÅÓÏ×ÍÅÓÔÉÍÏÓÔÅÊ (ËÒÏÍÅ ËÕÞÉ RTOS ;) É ÔÏ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ) - ÜÔÏ ÎÅ ÓÏÚÄÁÓÔ.

OR> ñ ÕÖÅ ÇÏ×ÏÒÉÌ - ÍÎÅ ÎÅ ÎÒÁ×ÉÔÓÑ, ËÏÇÄÁ ÒÅÓÕÒÓ ÒÁÓÈÏÄÕÅÔÓÑ áâóïìàôHï OR> ÚÒÑ. ðÒÏÓÔÏ ÎÅÍÎÏÇÏ ÄÒÕÇÉÍ ×ÙÂÏÒÏÍ ÒÁÓÐÒÅÄÅÌÅÎÉÑ ÒÅÇÉÓÔÒÏ× ÍÏÖÎÏ ÂÙÌÏ OR> ÂÙ ÜÔÏ ÕÓÔÒÁÎÉÔØ. ä×Á __temp_-ÒÅÇÉÓÔÒÁ ÔÏÖÅ ÎÅ ÐÏÍÅÛÁÌÉ ÂÙ.

ïÄÎÁËÏ - ÜÔÏ ÖÅ open source. ;) éÝÅÛØ × Ä×ÕÈ ÆÁÊÌÁÈ (avr.c, avr.md) ×ÈÏÖÄÅÎÉÑ __tmp_reg__ É R0/R1 - É ÍÅÎÑÅÛØ ÎÁ ÔÏ, ËÁË ÓÞÉÔÁÅÛØ ÎÕÖÎÙÍ ;)

Alexey

Hello, Maxim Polyanskiy !

ðÏÄ ÎÉÈ É ÐÅÒÅËÏÍÐÉÌÉÒÕÀ. èÏÔÑ ÅÓÌÉ ÏÎÉ ÏÂÁÎËÒÏÔÑÔÓÑ, ÔÏ ÄÌÑ ÍÅÎÑ Ë ÔÏÍÕ ×ÒÅÍÅÎÉ ÐÏÄÏÂÎÙÅ ÚÎÁÎÉÑ ÂÕÄÕÔ ÕÖÅ ÄÁ×ÎÏ ÎÅÁËÔÕÁÌØÎÙ (ÄÌÑ ÔÅÂÑ ËÓÔÁÔÉ ÔÏÖÅ).

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

Hello, Olga Nonova !

äÏÒÏÇÕÛÁ, ÕÒÏ×ÅÎØ ÇÅÎÅÒÉÒÕÅÍÏÊ ÔÏÂÏÊ ÅÒÕÎÄÙ ÕÖÅ ÐÒÏÓÔÏ ÚÁÛËÁÌÉÌ. PIC18 ÔÁËÏÊ ÖÅ çÁÒ×ÁÒÄ, ËÁË É AVR. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required