Автор Тема: Как народ с МИКРОКОНТРОЛЛЕРАМИ работает?  (Прочитано 3506 раз)

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Собственно сам вопрос. В чем программы пишете, чем отлаживаете, компилируете, ну и самое главное чем прошиваете. Вижу, что есть софт для PonyProg2000. Работал ли кто с этим программатором в Линуксе? Конкретной задачи пока не стоит. Задача стоит скорее такая - выяснить сколько времени и сил будет стоить освоение программирования МК на Линуксе. Тип МК  для возможных задач не так важен, хотя склонен к 2051. В общем интересует как весь процесс разработки выглядит (в названиях программ и последовательности их запуска).  При ответах лучше считать меня чайником (не понимаю "узконаправленного" сленга профессионалов).

Drool

  • Гость
Параллельно задайте этот вопрос в рассылках.

Оффлайн leha2000

  • Начинающий
  • *
  • Сообщений: 7
    • Email
Собственно сам вопрос. В чем программы пишете, чем отлаживаете, компилируете, ну и самое главное чем прошиваете. Вижу, что есть софт для PonyProg2000. Работал ли кто с этим программатором в Линуксе? Конкретной задачи пока не стоит. Задача стоит скорее такая - выяснить сколько времени и сил будет стоить освоение программирования МК на Линуксе. Тип МК  для возможных задач не так важен, хотя склонен к 2051. В общем интересует как весь процесс разработки выглядит (в названиях программ и последовательности их запуска).  При ответах лучше считать меня чайником (не понимаю "узконаправленного" сленга профессионалов).

Для C-51 семейства вроде очень подходит sdcc проект.
Лично я работаю с AVR с помощью gcc. Делается с помощью кросскомпиляции. google ответит как.
Для пиков тоже вроде есть какойто проект, но они мне не по душе, поэтому не знаю.
Под армы тоже кросскомпиляция катит на ура

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Для C-51 семейства вроде очень подходит sdcc проект.
Что интересно, для 4.0 sdcc нет в сизифе :( Хотя даже для 3.0 есть.
Лично я работаю с AVR с помощью gcc. Делается с помощью кросскомпиляции. google ответит как.
Для пиков тоже вроде есть какойто проект, но они мне не по душе, поэтому не знаю.
Под армы тоже кросскомпиляция катит на ура
Мои поиски подтверждают бытующее мнение, что с AVR в Linux работать легче. Правда вот вопрос. Пытаюсь скомпилировать программу-пример от одного продвинутого (и страшно занятого) человека из сети в EMACS - чувствую, что подвижки есть, но с путями проблема:
   io.h: No such file or directory
Ищет к примеру файл io.h (он есть, даже знаю где), но компилятор или EMACS его найти не может. Где-то наверное надо пути указать. Где?

И вот вопрос какой. На будущее собираюсь обзавестись ноутбуком. Там LPT не будет. Есть ли у кого личный опыт по использованию переходников USB->LPT при программировании?

Оффлайн Athlocatle

  • Завсегдатай
  • *
  • Сообщений: 257
   io.h: No such file or directory
Ищет к примеру файл io.h (он есть, даже знаю где), но компилятор или EMACS его найти не может. Где-то наверное надо пути указать. Где?
avr-gcc -I[даже знаю где] source.c -o file_to_upload
Цитировать
И вот вопрос какой. На будущее собираюсь обзавестись ноутбуком. Там LPT не будет. Есть ли у кого личный опыт по использованию переходников USB->LPT при программировании?
Есть опыт работы с переходником ttyUSBx->ttySx. Более подробно - см. http://freeduino.ru , http://arduino.cc

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Спасибо. В мануале нашел эти опции для проверки собственных сил. Но вот только сам я бы к этому шёл долго :) Дело сдвинулось.
За ссылки по переходникам спасибо, обязательно изучу.
Может порекомендуете литературу для начинающего по AVR-GCC а также C применительно к МК, особенно русскоязычный ресурс?
« Последнее редактирование: 10.01.2010 21:28:42 от Mimas »

Оффлайн Athlocatle

  • Завсегдатай
  • *
  • Сообщений: 257
За ссылки по переходникам спасибо, обязательно изучу.
Это, собсна, не сильно-то и переходники, это пример того, как можно построить схему устройства. И, да, там хорошо расписано внутрисхемное программирование чипов.
Цитировать
Может порекомендуете литературу для начинающего по AVR-GCC а также C применительно к МК, особенно русскоязычный ресурс?
http://easyelectronics.ru/category/avr-uchebnyj-kurs
http://www.nongnu.org/avr-libc/user-manual/modules.html
Я не в курсе, как в дистрибутивах, но в сизифе есть такая софтинка, как kontrollerlab . Попробуйте её, довольно неплохая вещь.

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Попробовал Kontrollerlab. Вкусно... :)
Ну а серьёзно - впечатления двойственные. Работает. Но не совсем понятно как. Помощи встроенной нет... Makefile похоже не нужен. Интуитивно догадываешься, что что-то с путями, ведь avr-gcc с которым и работает kontrollerlab, устанавливался отдельно, так же интуитивно вписываешь пути в командную строку для компилятора и линкера... Кнопка F7 - это вызов командной строки или компилятора? При нажатии вызывает командную строку, хотя она закреплена за обеими процедурами вызова. Всё-таки получив заветный *.hex пытаюсь отладить программу, но... похоже под отладчик просто предусмотрен интерфейс :) Прошивать МК пока не пробовал. Думаю тут особых проблем возникнуть не должно. В крайнем случае программирование и из под консоли можно осуществить. Но ведь правильно было сказано, что kontrollerlab пока только в Сизифе.
Обозначились проблемки:
1. Необходимо устранить пробелы в знании языка С в применении к gcc (или avr-gcc) пользуясь англоязычной помощью, т.к. русскоязычная похоже отсутствует в принципе.
2. Необходимо уточнить как отлаживать программу в kontrollerlab на PC.
Поправьте, если я что-то не понял или в чем я не прав.

Оффлайн vladi

  • Начинающий
  • *
  • Сообщений: 1
Добрый день всем!

Не все те, кто работает с микроконтроллерами согласны с моим мнением, но я считаю, что для начинающих самый удобный язык программирования графический. Он позволяет понять основы использования микроконтроллеров, сосредоточиться на программе, а не на особенностях написания кода (кодирование программы и программирование - это несколько разные вещи).

В этом смысле хорошая программа Flowcode (только Windows версия), менее разработана KTechlab (только Linux версия). Но...

Особенно это касается ALTLinux 5.0 - Flowcode вполне убедительно работает под Wine, а в ALTLinux можно легко загрузить библиотеки runtime с помощью Wine-Doors. Конечно, полное использование Flowcode возможно только при покупке программы или при использовании пиратской копии. Однако, если вам претит второе, а на первое нет денег, то демо-версия позволит сделать первые шаги и перейти к кодированию на языке Си.

С уважением, Владимир Гололобов.

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Доброго времени суток!
Спасибо за советы. Слыхал я про эти коммерческие продукты. Однако считаю wine последней, притом не самой лучшей возможностью приручить AVR-ы к Linux. KTechLab буду изучать. Кстати, если я и осилю полностью процесс программирования-ОТЛАДКИ-прошивки скажем AVR-ов, приучу к своему линуксу "pcb-CADы", то захочется ещё и альтеровские "камни одушевлять" из под опять же linux. А вот это делается в Linux, кто подскажет?

Оффлайн Wagan

  • Завсегдатай
  • *
  • Сообщений: 305
  • "Зачем копить добро в пустыне бытия" (с)
    • Electronix
По своему опыту не советовал бы искать эффекта от сочетаний C-51 и Linux. Семейство C-51 очень мной любимое, но в сочетании с такой мощной операционкой, как Linux, уже ожидаешь полноценного использования платформы. Даже шаг к ARM7 не дает в моих задачах полноценного использования ОС, эффективнее получается реализовывать standalone-приложения. Применение сочетания ARM9+Linux дает сразу несколько преимуществ, о которых не задумываешься, находясь на несколько ступеней ниже 9-го Арма:
- использование в своих устройствах интерфейса Ethernet с полноценной реализацией TCP/IP
- использование интерфейсов USB Host и USB Device и/или USB OTG
- одновременное применение выше указанных интерфейсов и протоколов
- применение готовых и отработанных программных средств, использующих стандартные протоколы
« Последнее редактирование: 13.02.2010 12:26:41 от Wagan »
С уважением,
Ваган Саруханов

Оффлайн Mimas

  • Завсегдатай
  • *
  • Сообщений: 230
  • Mimas
    • Мой Линукс
    • Email
Wagan, я смотрю к моей теме профи подключились? Я кое-что представляю их того, что Вы сказали. Но я не на столько "крут". Если честно, я имею понятие только о "камнях" семейства MAX3000 от Altera, микроконтроллере КР1878ВЕ1 от Ангстрема, ну промышленные контроллеры не в счёт, так как там всё гораздо проще, красивее и без низкоуровневых заморочек. Всё мною освоено благодаря доступной информации на родном языке. Решаемые задачи к сложным пожалуй что не отнесу. Linux прельщает прежде всего тем, что он даёт возможность вылезти на свет со своими разработками без боязни сесть в тюрьму  :o... Ну и конечно же тем, что наконец таки отпадёт надобность совершать магические действия с устанавливаемыми программами или платить за них большие суммы денег, которые упомянутые разработки никогда не окупят, при этом отпадает необходимость заботиться о "абонементской" плате всяким вирусо-антивирусо-производителям. А в эффективности работы "из под", "на" и "в" я сильно не заморачиваюсь. Работало бы! Только не каждый может сказать: "Тебе нужно такие-то пакеты установить, потом ещё такие и наконец вот что сделать и всё будет реально РАБОТАТЬ!" Вот Вы бы к примеру и сказали, чем ARMы в Linuxе программируете? :)
    Ну а 51-е... просто есть дешёвые и вполне для меня приемлемые, например S51/52/53, не побоюсь их и из под DOS программировать, да вот кто бы сказал может из под dosbox будут программы dos-овские работать? А то и 1878 тоже сразу забрасывать не хочется.

Оффлайн Wagan

  • Завсегдатай
  • *
  • Сообщений: 305
  • "Зачем копить добро в пустыне бытия" (с)
    • Electronix
Повторю известную истину: нужно плясать от задачи. Именно задача определяет, на каком камне, с помощью каких программных средств разработки и с применением каких операционных систем или без них решать эту задачу. В своем предыдущем посте, возможно, я не очень понятно высказал свою точку зрения.
Вот пример из жизни.
Делаем "черный ящик" для вертолета, так называемый эксплуатационный накопитель. На дворе 90-е годы прошлого века. Под руками активно пробегают клоны С-51. Пишем на ассемблере, чтобы, как говорится "уложиться"...и в объем имеющейся памяти программ и во временные ограничения. Получаем продукт с нестандартным интерфейсом, самодельным протоколом обмена, придуманным  форматом хранения данных на флэшке объемом...0,5МБ. И все нормально работает, летает и стреляет, до нашего накопителя всем нет дела, пока не потребуются "разборы полетов", но это бывает очень редко.
Проходит почти 20 лет, делаем "черный ящик" для промышленного транспорта. Данные нужно считывать по беспроводному интерфейсу, на флэшке объемом несколько гигабайт должна присутствовать файловая система, необходимо использовать готовые и общеизвестные программные средства, типа браузеров, терминальных клиентов и прочих утилит. А под руками все те же клоны С-51, очень дешевые, жутко быстрые, со множеством стандартных интерфейсов и т.п. Чтобы сделать полноценную поддержку всего этого современного, нужно в разных местах брать библиотеки для файловой системы, интерфейсов, протоколов и т.п. Да даже, если и в одном месте все это брать, оно не сравнится с развитостью инфраструктуры под Linux. Поэтому современный накопитель хочется делать на чем-то, что позволяет поднять полноценную ОС.

У Вас есть интерес, этого достаточно. Переход на следующую ступень при выборе процессора более всего связан с чтением документации, а не умением. Так что, желаю Вам удачи и не застревайте на С-51, если подумываете о Linux
« Последнее редактирование: 13.02.2010 21:09:15 от Wagan »
С уважением,
Ваган Саруханов