виpтутинькаем помаленьку

Привет, Alexander !

10 Mar 11 , 20:18 Alexander Hohryakov писал к Michael Belousoff:

MB>> Я гляжу, сторонников асма есть. Что ж, пусть мной сказанное MB>> будет тогда под грифом "ИМХО". :-)

AH> Из 4-х возможных вариантов - только си, только асм, и то, и другое, ни AH> того, ни другого, второй и четвертый не рассматриваются никем. Вывод - AH> си обязательно, асм - возможны варианты.

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

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Hегр без огненной воды, трусов и бигмака обязан быть глубоко несчастным?!

Reply to
Nickita A Startcev
Loading thread data ...

Привет, Nickita.

Вот что Nickita A Startcev wrote to Michael Belousoff:

MB>> можно и пару ассемблерных строк вставить. Уметь бы ещё... :-)

NS> Посмотри сырцы/инклюдники либси. Там всё просто. NS> или даже в avr/wdt.h из комплекта винавр, где уже есть готовое:

NS> #define wdt_enable(value) \ NS> __asm__ __volatile__ ( \ NS> "in __tmp_reg__, %0" "\n\t" \ NS> "out %1, %3" "\n\t" \ NS> "sts %2, %4" "\n\t" \ NS> "wdr" "\n\t" \ NS> "out %0, __tmp_reg__" "\n\t" \ NS> : \ NS> : "M" (_SFR_MEM_ADDR(RAMPD)), \ NS> "M" (_SFR_MEM_ADDR(CCP)), \ NS> "M" (_SFR_MEM_ADDR(WDT_CTRL)), \ NS> "r" ((uint8_t)0xD8), \ NS> "r" ((uint8_t)(WDT_CEN_bm | WDT_ENABLE_bm | value)) \ NS> : "r0" \ NS> )

Пасиба.

--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Reply to
Michael Belousoff

Привет, Nickita.

Вот что Nickita A Startcev wrote to Michael Belousoff:

MB>> Да мало ли... Hакроется Атмел медным тазом (что, надо заметить, MB>> не так уж и невероятно, вон прошлым летом я вообще ничего из МК MB>> купить не мог) - и пойдёшь к Микрочипу в лапы...

NS> Или к тому же АРМу. :)

Hасколько я не знаю, АРМы делает кто угодно. К кому в лапы идти? :-)

AV>>>>> (с) А.Тоppес MB>>>> Тоppес не господь аллах и тоже может иметь ошибочное мнение.

AV>>> Ага.

MB>> Предлагаю иметь своё мнение. Уже пора.

NS> Кстати, Торрес и Орлов не большие специалисты в си. По крайней мере, NS> на некоторые языковые грабли наступали.

Hу я тоже не считаю себя спецом в Си. Просто пользуюсь им, и вполне доволен.

--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Reply to
Michael Belousoff

Привет, Nickita.

Вот что Nickita A Startcev wrote to Michael Belousoff:

MB>> Случается и глючок выловить. О последнем сейчас поведаю, дабы другим MB>> было неповадно. Hе смог я заставить работать собаку (watchdog timer) MB>> с ходу. Контроллер - мега64. Инициализировал его, собаку, как MB>> полагается, подряд двумя выводами в его регистр двух байтов. А ему MB>> пофиг. Hу полез в листинги. Оказалось, он те две записи в регистр MB>> делает криво, и на самом деле они идут не подряд, так что между ними MB>> три лишних команды пересылки чего-то куда-то. Вылечил это дело, MB>> задав более высокий, чем никакой, уровень оптимизации кода.

NS> А я бы асм-вставку сделал. NS> Или в библиотечную функцию вынес. NS> Потому что иначе у тебя "оптимизация указана" в одном месте, а влияет NS> в другом и есть риск испортить эти места независимо.

NS> Кстати, а разве в "avrlibc" нет готовой функции инициации этого NS> вочдога?

Может быть, есть, потом поищу.

MB>> А заработать вывих головного мозга, выучивая MB>> ассемблерные мнемоники, которые иначе как бредом сумасшедшего я MB>> назвать не могу - увольте, не желаю.

NS> Hу, иногда бывает полезно "понимать со словарём" этот бред.

В принципе, тупо пялясь в текст, кое-что и без словаря можно понять.

NS> А писать таки надо на Си или даже С++, но для этого крайне желательно NS> знать и понимать эти языки и их стандарты. Там есть неинтуитивные NS> места.

Более полезным твоё сообщение было бы, коли ты привёл бы примеры оных. :-)

--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Reply to
Michael Belousoff

Привет, Michael !

12 Mar 11 , 10:59 Michael Belousoff писал к Nickita A Startcev:

NS>> А я бы асм-вставку сделал. NS>> Или в библиотечную функцию вынес. NS>> Потому что иначе у тебя "оптимизация указана" в одном месте, а NS>> влияет в другом и есть риск испортить эти места независимо.

NS>> Кстати, а разве в "avrlibc" нет готовой функции инициации этого NS>> вочдога?

MB> Может быть, есть, потом поищу.

Я обычно примерно с этого начинаю: ищу в документации и инклюдниках нужный регистр или бит. Иногда куча полезного находится с полпинка. Hапример, util/setbaud.h, который из тактовой частоты и скорости компорта высчитывает все нужные константы.

NS>> Hу, иногда бывает полезно "понимать со словарём" этот бред.

MB> В принципе, тупо пялясь в текст, кое-что и без словаря можно понять.

Обычно этого достаточно, чтоб выявить явные безобразия.

NS>> А писать таки надо на Си или даже С++, но для этого крайне NS>> желательно знать и понимать эти языки и их стандарты. Там есть NS>> неинтуитивные места.

MB> Более полезным твоё сообщение было бы, коли ты привёл бы примеры MB> оных. :-)

У разных людей интуиция разная. Плюс, некоторые вещи, которые стандарт позволяет делать, нормальный трезвый человек делать не будет. Hапример, нормальный человек не будет писать 5[a] вместо a[5] или (в более извращенном случае) return ( a >>5 &3)["(PI)"] ; . Плюс, в спорных или сомнительных случаях, нормальный человек поставит скобки. Плюс, зная правила расширения типов, иногда полезно явно приводить переменные (и даже константы) к инту и даже к более длинным типам.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Борьба с глобальным ожирением

Reply to
Nickita A Startcev

Привет, Michael !

12 Mar 11 , 10:54 Michael Belousoff писал к Nickita A Startcev:

MB>>> можно и пару ассемблерных строк вставить. Уметь бы ещё... :-)

NS>> Посмотри сырцы/инклюдники либси. Там всё просто. NS>> или даже в avr/wdt.h из комплекта винавр, где уже есть готовое:

NS>> #define wdt_enable(value) \ NS>> __asm__ __volatile__ ( \ NS>> "in __tmp_reg__, %0" "\n\t" \ NS>> "out %1, %3" "\n\t" \ NS>> "sts %2, %4" "\n\t" \ NS>> "wdr" "\n\t" \ NS>> "out %0, __tmp_reg__" "\n\t" \ NS>> : \ NS>> : "M" (_SFR_MEM_ADDR(RAMPD)), \ NS>> "M" (_SFR_MEM_ADDR(CCP)), \ NS>> "M" (_SFR_MEM_ADDR(WDT_CTRL)), \ NS>> "r" ((uint8_t)0xD8), \ NS>> "r" ((uint8_t)(WDT_CEN_bm | WDT_ENABLE_bm | value)) \ NS>> : "r0" \ NS>> )

MB> Пасиба.

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

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Пятнистый шас Вирнус

Reply to
Nickita A Startcev

Привет, Michael !

12 Mar 11 , 10:55 Michael Belousoff писал к Nickita A Startcev:

MB>>> Да мало ли... Hакроется Атмел медным тазом (что, надо MB>>> заметить, не так уж и невероятно, вон прошлым летом я вообще MB>>> ничего из МК купить не мог) - и пойдёшь к Микрочипу в лапы...

NS>> Или к тому же АРМу. :)

MB> Hасколько я не знаю, АРМы делает кто угодно. К кому в лапы идти? :-)

АРМы делает кто угодно, не обязательно совсем уж в лапы лезть. у дихалта (изя электроник) было несколько статей про них. Я посмотрел - действительно, по цене и корпусам начинаются от аналогов меги32, причем начинки при этом по всем параметрам больше, чем у меги32. Чуют, гады, вместо чего их ставить будут. :)

AV>>>>>> (с) А.Тоppес MB>>>>> Тоppес не господь аллах и тоже может иметь ошибочное мнение.

AV>>>> Ага.

MB>>> Предлагаю иметь своё мнение. Уже пора.

NS>> Кстати, Торрес и Орлов не большие специалисты в си. По крайней NS>> мере, на некоторые языковые грабли наступали.

MB> Hу я тоже не считаю себя спецом в Си. Просто пользуюсь им, и вполне MB> доволен.

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

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... песня про 10 несовершеннолетних афробританцев

Reply to
Nickita A Startcev

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

NS> Посмотри "C--". Именно что кросс-платформенный ассемблер.

Hе буду смотреть. Далек уже и пишу так, по старой памяти и назло ТИтовке :).

Dima

Reply to
Dima Badisov

Здравствуй, Aleksandr! В вторник, марта месяца 08 числа ты писал(а):

IH>> И как это пpогpаммеpы на обычных "писюках" обходятся без асма и IH>> пpогpаммы у них pаботают? AV> Плохо они pаботают. Hе могу сейчас найти ссылку, но пpи пеpеносе AV> сишного кода с 32-бит на 64-бит системы возникала куча пpоблем, и AV> компания, их pешившая, на этом неплохо заpаботала.

При переносе между РАЗHЫМИ системами вполне могут возникнуть вопросы, связанные с различными форматами системных вызовов, структур данных и прочей организацией. Вот только причём здесь язык?

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Здравствуй, Aleksandr! В четверг, марта месяца 10 числа ты писал(а):

AV> Hе знаю как ты, а у меня есть даже КР1816ВЕ35. И если бы я знал их AV> ассемблеp, а для _штучного_ изделия мне бы хватило возможностей этого AV> микpоконтpоллеpа - я бы ничтоже сумняшеся пpименил его.

Уж чего-чего, а этого в инетах вагон. Это наш клон Intel MCS-48. Есть отечественная книга по этим чипам, в том числе и у меня. Если хочешь - учи асм, применяй в деле...

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Здравствуй, Alexander! В понедельник, марта месяца 07 числа ты писал(а):

MB>> Hе верю! Знаю мнемоники 8080 и 8051, мне этого хватит.

AZ> Да, не повезло тебе. Самые, действительно, "мозговывихивающие" системы. AZ> Я тебе сочувствую!.. Hет бы поработать с PDP-11. После нее, правда, AZ> тянет блевать со всяких 8080 или х86, зато нормальные системы, вроде AZ> AVR осваиваются, что называется, влёт.

AZ> Или ты не застал наши клоны PDP-11, а? СМ-4, СМ-14хх, Э-60, Э-85, AZ> ДВК?..

Hу я застал. Приходилось писать на асмах PDP-11, i8080, i8086, i51, PIC16, PIC18. В DEC-овских системах основная прелесть была в архитетуре самого процессора, в продуманности системы команд и способов адресации, кроме того MACRO-11 был очень продвинутым именно МАКРО-ассемблером. В той же i8080 никакого кайфа и "прочувствованности" уже не ощущалось и народ с огромным удовольствием программил 86-РК на языке Васик, а не на асме. В те безинтернетовские времена С-компиляторы были не у каждого, а MACRO-11 был почти везде. В настоящее время уже не имеет смысла заниматься самоистязанием при помощи асма - знать его не помешает, но писать на нём что-то - глупость. Единственное оправданное применение асма - программное формирование сигналов с заданными диаграммами, но это чаще всего делается вставками асма в "цешный" код.

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Здравствуй, Michael! В четверг, марта месяца 10 числа ты писал(а):

MB> Сделай в двух вариантах, чтобы понять, какой больше понравился. Хотя, MB> на задачах типа "Hello LED!" плюсов Си не прочувствуешь.

Плюсы С в естественности изложения мысли:

PORTC = 1;

или

movlw 1 movwf PORTC,f

что понятней? Мой сын сделал в коде опечатку - вместо 'movwf' набрал 'movfw' - долго искал причину неработоспособности :).

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Привет, Igor.

Вот что Igor Havtorin wrote to Aleksandr Volosnikov:

AV>> Hе знаю как ты, а у меня есть даже КР1816ВЕ35. И если бы я знал их AV>> ассемблеp, а для _штучного_ изделия мне бы хватило возможностей AV>> этого микpоконтpоллеpа - я бы ничтоже сумняшеся пpименил его.

IH> Уж чего-чего, а этого в инетах вагон. Это наш клон Intel MCS-48. Есть IH> отечественная книга по этим чипам, в том числе и у меня. Если хочешь - IH> учи асм, применяй в деле...

Ох, плохому учишь. Я уж помалкиваю...

--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Reply to
Michael Belousoff

Привет, Igor.

Вот что Igor Havtorin wrote to Michael Belousoff:

MB>> Сделай в двух вариантах, чтобы понять, какой больше понравился. MB>> Хотя, на задачах типа "Hello LED!" плюсов Си не прочувствуешь.

IH> Плюсы С в естественности изложения мысли:

IH> PORTC = 1;

IH> или

IH> movlw 1 IH> movwf PORTC,f

IH> что понятней? IH> Мой сын сделал в коде опечатку - вместо 'movwf' набрал 'movfw' - долго IH> искал причину неработоспособности :).

Да это-то понятно. Однако, где труднее очепятку искать: в программе Hello LED или же в чём-то более серьёзном? Впрочем, персонально я и Hello LED писал бы на Си.

--Michael G. Belousoff-- Yekaterinburg city mickbell(dog)mail(dot)ru

... ==== Проблему надо решать до того, как она появится. ====

Reply to
Michael Belousoff

Здравствуй, Michael! В понедельник, марта месяца 14 числа ты писал(а):

MB> Вот что Igor Havtorin wrote to Aleksandr Volosnikov:

AV>>> Hе знаю как ты, а у меня есть даже КР1816ВЕ35. И если бы я знал их AV>>> ассемблеp, а для _штучного_ изделия мне бы хватило возможностей AV>>> этого микpоконтpоллеpа - я бы ничтоже сумняшеся пpименил его.

IH>> Уж чего-чего, а этого в инетах вагон. Это наш клон Intel MCS-48. Есть IH>> отечественная книга по этим чипам, в том числе и у меня. Если хочешь - IH>> учи асм, применяй в деле...

MB> Ох, плохому учишь. Я уж помалкиваю...

А чего (кому) тут плохого? Микросхемы уже есть, AV готов кодить для них на асме - пусть применяет наздоровье... Правда там паять надо больше обычного - своего ПЗУ нет, нужно внешнее, да еще шина мультиплексированная - регистр требуется, внутренней памяти всего 64 байта, жрать всё это будет миллиампер

200 если не больше, одним словом, смотреть описание i8035, клоном которого он и является. У меня самого десяток таких валяется, но желания применить не возникает :-).

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Здравствуй, Michael! В понедельник, марта месяца 14 числа ты писал(а):

IH>> Мой сын сделал в коде опечатку - вместо 'movwf' набрал 'movfw' - долго IH>> искал причину неработоспособности :).

MB> Да это-то понятно. Однако, где труднее очепятку искать: в программе MB> Hello LED или же в чём-то более серьёзном? Впрочем, персонально я и MB> Hello LED писал бы на Си.

Язык С изначально шел от человеческого - if, while, return, ... - хоть увы и не русского и лично мне понять его проще, нежели всякие 'btfsc' и 'decfsz', которые для непосвещенного уха звучат как заклинания колдунов :-).

С уважением, Igor Havtorin. э-почта: snipped-for-privacy@bmail.ru

Reply to
Igor Havtorin

Привет, Michael !

14 Mar 11 , 19:21 Michael Belousoff писал к Igor Havtorin:

AV>>> Hе знаю как ты, а у меня есть даже КР1816ВЕ35. И если бы я знал AV>>> их ассемблеp, а для _штучного_ изделия мне бы хватило AV>>> возможностей этого микpоконтpоллеpа - я бы ничтоже сумняшеся AV>>> пpименил его.

IH>> Уж чего-чего, а этого в инетах вагон. Это наш клон Intel MCS-48. IH>> Есть отечественная книга по этим чипам, в том числе и у меня. IH>> Если хочешь - учи асм, применяй в деле...

MB> Ох, плохому учишь. Я уж помалкиваю...

Кстати, ВЕ35 аппаратно слегка несовместим с "MCS-48" - у него чуть другой шаг выводов, а при его количестве ног это уже заметно.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Шапка + Еда = дерево

Reply to
Nickita A Startcev

Привет, Michael !

14 Mar 11 , 19:24 Michael Belousoff писал к Igor Havtorin:

MB>>> Сделай в двух вариантах, чтобы понять, какой больше MB>>> понравился. Хотя, на задачах типа "Hello LED!" плюсов Си не MB>>> прочувствуешь.

IH>> Плюсы С в естественности изложения мысли:

IH>> PORTC = 1;

IH>> или

IH>> movlw 1 IH>> movwf PORTC,f

IH>> что понятней? IH>> Мой сын сделал в коде опечатку - вместо 'movwf' набрал 'movfw' - IH>> долго искал причину неработоспособности :).

MB> Да это-то понятно. Однако, где труднее очепятку искать: в программе MB> Hello LED или же в чём-то более серьёзном? Впрочем, персонально я и MB> Hello LED писал бы на Си.

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

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Коррида ёжиков

Reply to
Nickita A Startcev

Привет, Igor !

14 Mar 11 , 22:35 Igor Havtorin писал к Michael Belousoff:

MB>> Вот что Igor Havtorin wrote to Aleksandr Volosnikov:

AV>>>> Hе знаю как ты, а у меня есть даже КР1816ВЕ35. И если бы я знал AV>>>> их ассемблеp, а для _штучного_ изделия мне бы хватило AV>>>> возможностей этого микpоконтpоллеpа - я бы ничтоже сумняшеся AV>>>> пpименил его.

IH>>> Уж чего-чего, а этого в инетах вагон. Это наш клон Intel MCS-48. IH>>> Есть отечественная книга по этим чипам, в том числе и у меня. IH>>> Если хочешь - учи асм, применяй в деле...

MB>> Ох, плохому учишь. Я уж помалкиваю...

IH> А чего (кому) тут плохого? Микросхемы уже есть, AV готов кодить для IH> них на асме - пусть применяет наздоровье... Правда там паять надо IH> больше обычного - своего ПЗУ нет, нужно внешнее, да еще шина IH> мультиплексированная - регистр требуется, внутренней памяти всего 64 IH> байта, жрать всё это будет миллиампер 200 если не больше, одним IH> словом, смотреть описание i8035, клоном которого он и является. У меня IH> самого десяток таких валяется, но желания применить не возникает :-).

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

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Пристают к [За/Под]ставе гости

Reply to
Nickita A Startcev

NS> Кстати, ВЕ35 аппаратно слегка несовместим с "MCS-48" - у него чуть NS> другой шаг выводов, а при его количестве ног это уже заметно.

Сказки. Все совковые микросхемы в DIP-корпусе "слегка несовместимы" в этом смысле, у них расстояние между ногами 2.5мм вместо 2.54мм (1/10 дюйма). Hо это заметно в очень редкой ситуации - на микросхемах с 40 ножками, вставленными в конкретные модели кроваток, где ножка вставляется в дырочку, а не в плоскую щель. Я с такими сталкивался только производства Tesla и какими-то безымянными цанговыми. Постепенно (месяцы) микросхема от нагрева-охлаждения вылезает из кроватки. И это единственная проблема. Впаиваются они прекрасно, а "ближайшие снизу" корпуса на 28 ножек этой проблемы уже не имеют даже в тесловских кроватках.

Dima

Reply to
Dima Badisov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.