Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
а вот какие учебники по асамблеру посоветуете?
- Реклама
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Я начинал с нашей местной обучалки, за тем пользовался простыми справочниками по АСМу.
Где-то сайт даже был, не помню ссылку. Из орудий у меня AVR Studio, WinAVR и программатор LPT 5-ти проводковый - UniProf. Работаю так уже полтора года, сделал кучу девайсов на МК.
Практически всё освоил самостоятельно. На счёт Cи - я его немного знал и до этого, но всё равно программирую МК на АСМе. Вот уже программы на ПК пишу на С++. Порты LPT ниразу не спалил, хотя к этому порту соединялись мегаизвратные, с точки зрения схемотехники, устройства. (паянные навесным методом в виду нехватки материала)
Где-то сайт даже был, не помню ссылку. Из орудий у меня AVR Studio, WinAVR и программатор LPT 5-ти проводковый - UniProf. Работаю так уже полтора года, сделал кучу девайсов на МК.
Практически всё освоил самостоятельно. На счёт Cи - я его немного знал и до этого, но всё равно программирую МК на АСМе. Вот уже программы на ПК пишу на С++. Порты LPT ниразу не спалил, хотя к этому порту соединялись мегаизвратные, с точки зрения схемотехники, устройства. (паянные навесным методом в виду нехватки материала)
I am DX168B and this is my favourite forum on internet!
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
ну у меня лпт нет, только ком))). Уже сделал одно устройстов (анализатор спектра на атмеге8DX168B писал(а): и программатор LPT 5-ти проводковый
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
ИМХО, начинать изучение МК лучше с изучения программирования на компьютере - там гораздо легче отлаживать программу. Так же там есть готоТак же советую начинать с языков высокого уровня(лучше всего - C, C++ или в крайнем случае Pascal) - они гораздо ближе к естественному языку. В качестве среды разработки что-нибудь типа Borland C++ Builder или аналогичной IDE(что там с ними сейчас - не знаю).plutonium писал(а):Дискусия веселая
самое первое и главное это Ассемблер, нельзя сразу скакать на языки высокого уровня.
с Ассемблера начинается понимание как вообще ЭТА ШТУКОВИНА устроена,
Использовать Basic для обучения программированию крайне не советую - слишком уж он сильно отличается от используемых сейчас языков.
Для начала будет достаточно только IDE(для AVR обычно используют - AVR Studio+WinAVR, CVAVR и IAR), а всякое управление проектом(оно вообще нужно при разработке одним человеком?), версиями(это может пригодиться только в больших проектах), анализ кода и т.д. вряд ли тут же понадобятся новичку.Goldsmith писал(а):Лично я выбрал для себя такой набор инструментов:
Управление проектом - Redmine.
Компилятор C, как уже говорил, = GCC (WinAVR).
Управление версиями - Subversion.
Документирование проекта - Doxygen.
Статический анализ кода - Splint.
Форматирование исходного кода - Indent.
Сборка проекта - GNU Make.
Тестирование - Unity.
Автогенерация мок-объектов - Cmock.
Вроде из основных ничего не забыл. Да, сам проект делаю в среде Dev-C++.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Uni-Prof работает и с COM портами, схема тоже простая.lsvjy писал(а): ну у меня лпт нет, только ком))). Уже сделал одно устройстов (анализатор спектра на атмеге8) и хочу всерьез занятся мк, ну вы поняли...
Только порт не виртуальным должен быть. То есть всякие переходники, типа USB-COM он не любит.
I am DX168B and this is my favourite forum on internet!
- Реклама
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Достаточно блокнота и компилятора командной строки. Все остальное лишь добавляет скорости и комфорта при разработке. Это касается всех перечисленных мной инструментов, там нет ничего лишнего.Murav писал(а):Для начала будет достаточно только IDE(для AVR обычно используют - AVR Studio+WinAVR, CVAVR и IAR)
Нужно. Невозможно одновременно держать в голове требования к проекту, спецификации, обнаруженные дефекты, планировать дальнейшие действия и т.д. Это просто рабочий дневник разработчика, который позволяет содержать документацию в порядке и ничего не забыть.Murav писал(а):а всякое управление проектом(оно вообще нужно при разработке одним человеком?)
Очень популярное заблуждение среди тех, кто не работал с системами управления версиями. Попробуйте-ка вспомнить, что конкретно было изменено в не очень большой программе по сравнению в последней рабочей версией.Murav писал(а):версиями(это может пригодиться только в больших проектах)
Если новичок согласен остановиться на уровне мигалок-свистелок, то можно обойтись без инструментов. А если есть желание стать профи, лучше сразу учиться правильному процессу.Murav писал(а):анализ кода и т.д. вряд ли тут же понадобятся новичку.
Это примерно как сказать, что новичку-водителю не понадобится знать, как включить задний ход и фары, потому что на первых порах можно ездить только вперед и днем.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Я , наверное, ретроград и потому не увлекаюсь модными тенденциями. Память стариковская уже не очень, но тем не менее пока не испытываю напряга с версиями. Новую версию держу в новой папке, в начале подробно комментирую , чем она отличается от старой, старый вариант в новой версии держу закомментированным, а если уж понадобятся подробности, старый добрый MultiEdit разобъяснит мне до запятой различия. Ну и конечно, веду рабочую тетрадь, но по старинному, на 96 листах в клеточку.Goldsmith писал(а):Попробуйте-ка вспомнить, что конкретно было изменено в не очень большой программе по сравнению в последней рабочей версией.
Кто как привык. Конечно, если бы у меня весь этот "зоопарк" был, пробовал бы осваивать, мож что и применил бы, а так -- искать не чувствую нужды.
От уровня "мигалок и свистелок" ушел давно и далеко...
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Писать программу в блокноте, а потом разбираться к командной строке в какой же строке произошла ошибка весьма неудобно, поэтому IDE - очень нужная вещь.Goldsmith писал(а):Достаточно блокнота и компилятора командной строки. Все остальное лишь добавляет скорости и комфорта при разработке. Это касается всех перечисленных мной инструментов, там нет ничего лишнего.
Обычно в проектах, которые делает один человек не так много всего, чтобы это нельзя было запомнить. А если что-то(например, то что в данном месте ошибки нет или какие-то неочевидные из названия особенности функции) запомнить не получается, то оно записывается в комментарии рядом с кодом к которому это относится.Goldsmith писал(а):Нужно. Невозможно одновременно держать в голове требования к проекту, спецификации, обнаруженные дефекты, планировать дальнейшие действия и т.д. Это просто рабочий дневник разработчика, который позволяет содержать документацию в порядке и ничего не забыть.
Мне ещё не разу не приходилось использовать специальные программы для управления проектом, хотя я иногда пишу весьма немелкие программы.
Что такое система контроля версий я знаю и даже время от времени её использую. Только в маленьких(а большие без необходимых умений написать невозможно) программах с неё толку ноль - создаётся 2-3 ревизии и проект заканчивается.Goldsmith писал(а):Очень популярное заблуждение среди тех, кто не работал с системами управления версиями. Попробуйте-ка вспомнить, что конкретно было изменено в не очень большой программе по сравнению в последней рабочей версией.
И какой толк от этих инструментов в небольших программах?Goldsmith писал(а):Если новичок согласен остановиться на уровне мигалок-свистелок, то можно обойтись без инструментов. А если есть желание стать профи, лучше сразу учиться правильному процессу.
А при необходимости ничего не мешает поставить и разобраться с нужными инструментами.
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Да неужели?Murav писал(а):Использовать Basic для обучения программированию крайне не советую - слишком уж он сильно отличается от используемых сейчас языков.
Хотя может и отличается.... в лучшую сторону!
Бейсик это такой же язык как и все остальные и правила написания программ такие же, но в тоже время, он проще в понимании.
Если одну и туже программу можно написать на бейсике и на Си, но при этом, используя бейсик, потратить меньше сил, то в чем преимущество Си? (это только пример)
Как говорили в одной известно рекламе - "Если нет разницы, то зачем платить бельше"?
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Это недостаточное основание, чтобы считать управление проектом бесполезным. Вот лично я дома не пользуюсь логическим анализатором, поскольку у меня его пока что нет. Но это не значит, что он вообще никому не нужен или бесполезен для начинающего.Murav писал(а):Мне ещё не разу не приходилось использовать специальные программы для управления проектом, хотя я иногда пишу весьма немелкие программы.
Проект мигалки действительно заканчивается быстро, но стоит ли вообще учиться цивильному программированию ради написания мигалок?Murav писал(а):Что такое система контроля версий я знаю и даже время от времени её использую. Только в маленьких(а большие без необходимых умений написать невозможно) программах с неё толку ноль - создаётся 2-3 ревизии и проект заканчивается.
В мире разработки софта для "больших систем" разработаны технологии для получения надежного, хорошо протестированного кода, и они постепенно (хоть и очень медленно) переносятся на программирование микроконтроллеров. В частности, одна из таких технологий (TDD, Test-Driven Design) вплотную завязана на систему управления версиями. Кстати, после каждого рефакторинга тоже очень рекомендуется commit. А в случае обнаружения серьезной ошибки в репозитории создается специальная ветка для ее исправления, которая потом сливается с проектом. Поэтому системой управления версиями нельзя пользоваться "время от времени" - она должна постоянно быть под рукой, как паяльник и осциллограф.
Конечно, если управление версиями используется в отрыве от остальных инструментов, оно практически вырождается в обычный архив - завершили какую-то часть работы, и тут же создали версию. Но это из области забивания гвоздей микроскопом.
Есть популярное мнение, что размер - не главное, и в данном случае с ним трудно не согласиться. Вы же не отказываетесь от компилятора на том основании, что небольшую программу можно набрать и напрямую в hex-редакторе?Murav писал(а):И какой толк от этих инструментов в небольших программах?
Вот с этим полностью согласен. Главное тут - вовремя осознать эту необходимость, а для этого нужно знать хотя бы о существовании этих инструментов. Для того и привел перечень рекомендуемых инструментов. Ни один из них не разрабатывался просто для баловства, каждый помогает разработчику по-своему.Murav писал(а):А при необходимости ничего не мешает поставить и разобраться с нужными инструментами.
Вы совершенно справедливо говорите:
Это лишь потому, что хорошо умеете пользоваться IDE. Если бы поленились разобраться, показалось бы, что давно знакомый блокнот проще. С остальными инструментами в точности то же самое.Murav писал(а):Писать программу в блокноте, а потом разбираться к командной строке в какой же строке произошла ошибка весьма неудобно, поэтому IDE - очень нужная вещь.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Вот довольно типичная жизненная ситуация. Выпущена первая версия программы, изделие начали эксплуатировать, а разработчики принялись разрабатывать вторую, более продвинутую версию.Jack_A писал(а): Я , наверное, ретроград и потому не увлекаюсь модными тенденциями.
...
Новую версию держу в новой папке, в начале подробно комментирую , чем она отличается от старой, старый вариант в новой версии держу закомментированным, а если уж понадобятся подробности, старый добрый MultiEdit разобъяснит мне до запятой различия. Ну и конечно, веду рабочую тетрадь, но по старинному, на 96 листах в клеточку.
И тут вдруг неприятная новость: в первой версии обнаружилась ошибка. Само собой, она проникла и во вторую, сделанную на базе первой. Нужно исправить ошибку в обеих версиях. Причем ошибка достаточно серьезная, не исправляется в одну строчку.
Как будете выкручиваться без модных тенденций? Особенно если к моменту обнаружения ошибки было выпущено было не две версии, а побольше.
Последний раз редактировалось Goldsmith Пн фев 14, 2011 23:10:54, всего редактировалось 1 раз.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Солидарен с Murav. Немаловажно, что для языка C есть весьма строгие стандарты ANSI, и приличные компиляторы их поддерживают. Это обеспечивает хорошую совместимость и переносимость программ. Например, изрядную часть кода для микроконтроллера можно протестировать и отладить на PC, даже не загружая в контроллер.Мурик писал(а):Да неужели?Murav писал(а):Использовать Basic для обучения программированию крайне не советую - слишком уж он сильно отличается от используемых сейчас языков.
Хотя может и отличается.... в лучшую сторону!![]()
Бейсик это такой же язык как и все остальные и правила написания программ такие же, но в тоже время, он проще в понимании.![]()
Если одну и туже программу можно написать на бейсике и на Си, но при этом, используя бейсик, потратить меньше сил, то в чем преимущество Си?
Аналогичные стандарты на Basic если и есть, то, во-первых, не попадались мне на глаза, а во-вторых, похоже, также не попадались на глаза разработчикам компиляторов, что еще хуже. Уж больно несовместимы разные реализации этого языка.
Ну и в довершение - пара цитат из классика программирования Эдсгера Дейкстры:
("Ответы на вопросы студентов отделения программного обеспечения.")На наше формирование большое влияние оказывают инструменты, которые мы используем, в частности: формализмы, которые мы используем, формируют наш образ мышления лучшим или худшим образом, и это значит, что мы должны быть чрезвычайно осторожны в выборе того, чему учить и чему учиться, потому что разучиться потом совершенно невозможно. [Много лет назад, когда мне нужен был новый ассистент, одним из требований было "Не иметь даже понятия о FORTRANе", а в высшей школе в Сибири запрещено преподавание BASICа.]
("Как быть, если правда колет глаза.")Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.
К мнению этого человека определенно следует прислушаться (не сочтите за холивар).
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Для программ типа "помигать парой светодиодов при нажатии определённой кнопки" - на бейсике проще, но вот более-менее серьёзные программы на C писать заметно проще.Мурик писал(а):Если одну и туже программу можно написать на бейсике и на Си, но при этом, используя бейсик, потратить меньше сил, то в чем преимущество Си? (это только пример)
Например в бейсике нельзя объявлять и инициализовывать переменную одновременно, нет операторов типа += , в одной строке производить несколько операций над переменными(впрочем в части реализаций бейсика это ограничение убрано), а так же изменять одним оператором(то есть строкой с одной ; ) несколько переменных. В маленьких программах эти ограничения почти не заметны, но вот в более-менее больших уже очень сильно тормозят написание кода.
А для чего оно при этом будет полезно?Goldsmith писал(а):Это недостаточное основание, чтобы считать управление проектом бесполезным.
Логический анализатор весьма полезен, поскольку только с помощью него можно посмотреть работу контроллера с другими цифровыми устройствами, так что сравнение некорректно. Хотя без него можно обойтись, так же как и без осциллографа.Goldsmith писал(а):Вот лично я дома не пользуюсь логическим анализатором, поскольку у меня его пока что нет. Но это не значит, что он вообще никому не нужен или бесполезен для начинающего.
Это относится ко многим проектам на микроконтроллерах. Вся разработка там обычно представляет собой написание нового кода практически без изменений уже написанного, поскольку вся структура программы уже понятна перед написанием программы. И многие программисты для микроконтроллеров на останавливаются на стадии небольших проектов - что-либо больше восьмой меги бывает нужно очень редко.Goldsmith писал(а):Проект мигалки действительно заканчивается быстро, но стоит ли вообще учиться цивильному программированию ради написания мигалок?
Да и обучение цивильному программированию(в больших проектах) в основном заключается в обучении правильного структурирования программы, что гораздо дольше обучению работы с системой контроля версий.
Тем не менее большинству микроконтроллерщиков эти методы вряд ли пригодятся, поскольку для большим микроконтроллеров практически нет применений, где этим стоит заниматься.Goldsmith писал(а):В мире разработки софта для "больших систем" разработаны технологии для получения надежного, хорошо протестированного кода, и они постепенно (хоть и очень медленно) переносятся на программирование микроконтроллеров.
Это всё явно относится к команде программистов.Goldsmith писал(а):В частности, одна из таких технологий (TDD, Test-Driven Design) вплотную завязана на систему управления версиями.
И всё-таки какой от них толк?Goldsmith писал(а):Есть популярное мнение, что размер - не главное, и в данном случае с ним трудно не согласиться.
Выучить машинные команды и написать на них программу гораздо сложнее, чем на языке программирования, потому компиляторы и используются.Goldsmith писал(а):Вы же не отказываетесь от компилятора на том основании, что небольшую программу можно набрать и напрямую в hex-редакторе?
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Да ну.Goldsmith писал(а):Например, изрядную часть кода для микроконтроллера можно протестировать и отладить на PC
Как будете тестировать работу с на компе с регистрами МК и внешними девайсами?
Можно.Murav писал(а):Например в бейсике нельзя объявлять и инициализовывать переменную одновременно
Объявление переменной с именем Var, типа Long и записью в нее числа 2
Код: Выделить всё
Var.l = 2А зачем, если можно поступить такMurav писал(а):нет операторов типа +=
Код: Выделить всё
Var.l + 2Можно.Murav писал(а):в одной строке производить несколько операций над переменными
Код: Выделить всё
Var.l + 2 : Var * 4 : x+10 : z = x - 2- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Для подобных задач есть весьма красивое решение.Мурик писал(а):Да ну.Goldsmith писал(а):Например, изрядную часть кода для микроконтроллера можно протестировать и отладить на PC
Как будете тестировать работу с на компе с регистрами МК и внешними девайсами?
Во-первых, вводится уровень абстракции оборудования (HAL, Hardware Abstraction Layer). В него выносятся все аппаратно-зависимые части программы. При грамотном проектировании они получаются очень небольшими. Кстати, концепции HAL замствованы из архитектуры операционных систем/ Например, HAL есть в семействе Windows NT.
Во-вторых, для прогона программы на PC модули HAL заменяются "тестовыми дублерами" (заглушками, имитаторами, мок-объектами, шпионами и т.д.). Это тоже не ново, дублеры давно используются для модульного тестирования программ.
После этого логика программы тестируется на PC по-взрослому, включая протоколы взаимодействия с аппаратурой. И на сладкое остается лишь аккуратненько реализовать HAL на контроллере, что не представляет проблемы ввиду простоты.
Кстати, именно поэтому я выбрал в качестве основного компилятора GCC для AVR, хотя IAR дает код получше. Зато GCC реализован практически на всех мыслимых платформах, а я предпочитаю чуть менее быстрые и компактные, но зато надежные программы.
Если интересно, такой подход описан в книге: James W. Grenning, "Test Driven Development for Embedded C".
Последний раз редактировалось Goldsmith Пн фев 14, 2011 22:43:01, всего редактировалось 1 раз.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Работу с периферией естественно оттестировать не получится(хотя её вполне можно эмулировать), а вот алгоритмы - вполне.Мурик писал(а):Да ну.
Как будете тестировать работу с на компе с регистрами МК и внешними девайсами?
Это разве заменяет Dim? А так же в каких реализациях бейсика такое есть?Мурик писал(а):Можно.
Объявление переменной с именем Var, типа Long и записью в нее числа 2
Это, насколько я понял, всего лишь несколько операторов в одной строке, то есть тоже самое,чтоМурик писал(а):Можно.
Код:
Var.l + 2 : Var * 4 : x+10 : z = x - 2
Код: Выделить всё
Var+=2;Var*=4;x+=10;x=x-2;Код: Выделить всё
if (data[addr++]=='t' && data[addr++]=='e' && data[addr++]=='s' && data[addr++]=='t') P
***
} else {
ShowError("error at %u character",addr-1);
}- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Капитан Очевидность подсказывает, что управление проектом полезно для управления проектом. А конкретно: обсуждение проекта с заказчиком, сбор требований и пожеланий, ранжирование их по степени важности, планирование задач, ведение Wiki по проекту, регистрация багов и отслеживание их исправлений, форум поддержки пользователей продукта и т.д. Конечно, все это можно пытаться держать в голове (лично в моей это все точно не умещается, неоднократно проверено) или записывать в тетрадке, но я предпочитаю напрягать компьютер. Не для одного пасьянса же он куплен.Murav писал(а):А для чего оно при этом будет полезно?Goldsmith писал(а):Это недостаточное основание, чтобы считать управление проектом бесполезным.
Например, статический анализатор кода тоже очень полезен, поскольку только он может обнаружить массу потенциальных логических ошибок, которые не обнаруживаются компилятором. Хотя без него многие обходятся (впрочем, очень даже зря).Murav писал(а):Логический анализатор весьма полезен, поскольку только с помощью него можно посмотреть работу контроллера с другими цифровыми устройствами, так что сравнение некорректно. Хотя без него можно обойтись, так же как и без осциллографа
Генератор документации тоже весьма полезен, поскольку позволяет генерировать проектную документацию, согласованную с исходниками. Хотя можно и ручками. Впрочем, чаще ленятся, и проектной документации либо нет вовсе, либо там полный бардак.
И фреймворк модульного тестирования весьма полезен, поскольку только с его помощью можно автоматически прогонять юнит-тесты всех функций и автоматически же обнаруживать ошибки. И тоже обходятся, хотя нетестированный по-настоящему код больше подходит для самодеятельности, но никак не для серьезного проекта.
Продолжать можно очень долго. Даже без паяльника можно обойтись, наверное. Скажем, греть гвоздь на горелке. Но мне больше нравится паяльная станция.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Эх, вашими бы устами мед пить... Заказчик нынче ушлый пошел. Ему и Zigbee подавай, и встроенный в прибор WWW-сервер, и массу прочих вкусностей, а все это требует массу кода. Да, где-нибудь на задворках проекта вполне уживаются Mega8, а то и вовсе какой-нибудь Tiny. Управляют себе моторчиком или еще каким незатейливым девайсом. Но как самостоятельные девайсы сбыть их проблематично. По крайней мере, мне не удается.Murav писал(а):И многие программисты для микроконтроллеров на останавливаются на стадии небольших проектов - что-либо больше восьмой меги бывает нужно очень редко.
Вот бы уж не сказал... По системе контроля версий прочитал пару учебников - и практически уже эксперт (могу даже порекомендовать такую пару). А вот цивильное программирование в больших проектах далеко не сводится к правильному структурированию программы. Да и структурное программирование уже вроде как в историю ушло, на повестке дня объектно-ориентированные проектирование и программирование, под них все современные методики заточены.Murav писал(а):Да и обучение цивильному программированию(в больших проектах) в основном заключается в обучении правильного структурирования программы, что гораздо дольше обучению работы с системой контроля версий.
Вот это сильно сказано... Если большинству не нужен надежный и хорошо протестированный код, то я уж лучше буду с меньшинством, хотя это слово нынче имеет нехороший оттенок. Хотя все равно есть шанс, что на голову свалится ракета, спроектированная большинством. Или, не дай господь, вживят кардиостимулятор, софт которого не тестировали для экономии сил и времени.Murav писал(а):Тем не менее большинству микроконтроллерщиков эти методы вряд ли пригодятся, поскольку для большим микроконтроллеров практически нет применений, где этим стоит заниматься.Goldsmith писал(а):В мире разработки софта для "больших систем" разработаны технологии для получения надежного, хорошо протестированного кода, и они постепенно (хоть и очень медленно) переносятся на программирование микроконтроллеров.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Диалекты разные бывают.Murav писал(а):Это разве заменяет Dim?
Скажем, в этом.Murav писал(а):А так же в каких реализациях бейсика такое есть?
Неа, чукча с памятью работать не умеет.Murav писал(а):И, кстати, указатели в бейсике есть?
Конечно же есть.
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Что нужно иметь и знать дабы прогарммировать PIC и AVR?
Ну почему же явно к команде? "Разработка, управляемая тестами" - это очень интересный метод разработки софта, при котором сначала пишутся тесты, а потом код. На первый взгляд выглядит парадоксально (как тестировать то, чего еще нет?), но на самом деле в этом есть глубокий смысл. Куда глубже, чем кажется с виду. Пользоваться этим методом вполне можно и в одиночку. Например, на своей основной работе (разработка софта для управления большими телефонными станциями) я пишу программы только так, хотя часто работаю над проектом один.Murav писал(а):Это всё явно относится к команде программистов.Goldsmith писал(а):В частности, одна из таких технологий (TDD, Test-Driven Design) вплотную завязана на систему управления версиями.
Если вы действительно хотите разобраться, а не просто спорить в стиле "это никому не нужно, потому что оно никому не нужно", могу предложить кое-какую литературу по этому вопросу. Ее, к сожалению, не так много, но она весьма толковая. Ну и сам я успел перевести и опубликовать в Сети несколько статей по сабжу с английского (и написать немного своих). Еще мало, но продолжение, как говорится, следует, работа ведется.Murav писал(а):И всё-таки какой от них толк?
Опять же, совсем не факт. Посмотрите, например, сколько в datasheet на ту же Mega занимает полное описание системы команд. А теперь положите рядом, скажем, текст стандартаMurav писал(а):Выучить машинные команды и написать на них программу гораздо сложнее, чем на языке программирования, потому компиляторы и используются.
ISO/IEC 9899:1999 по языку C (554 страницы). Ведь нельзя же всерьез утверждать, что человек, не удосужившийся даже проштудировать стандарт, умеет хорошо программировать на языке C.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle


