C# и atmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Опытный кот
Сообщения: 884
Зарегистрирован: Пн июл 08, 2013 22:59:45

Сообщение kelod »

с МК опыта работы не было, с ассемблером тоже из языков , подходящих для мк знал когда-то паскаль, щас в основном пишу на c# подскажите пожалуйста, как на шарпе программировать контроллеры, хотя бы ткните носом где можно почитать, а то мне гугл какую-то фигню говорит((
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

AFAIK, компиляторов .net под МК нет. Вам проще будет Си или Си++ освоить, чем C# затаскивать на МК.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Все объектно-ориентированное изначально не подходит для МК, ибо страшно неэффективно обращается с ресурсами. А C# не подходит еще и из-за .NET.

Можете попробовать Arduino, может быть, понравится. Оно, как и C#, объектно-ориентировано и имеет примеры на каждый чих. Но это, конечно, среда для женщин, младших школьников и слабых духом.

Для сравнения - простейшая задача, мигание светодиодом, на ANSI C под ATmega32 весит 174 байта. На Wiring (язык Ардуино) - 1076 байт под тот же МК. Компилятор и там, и там - avr-gcc, просто Wiring - диалект С++ со своими библиотеками. Объектно-ориентирован, да.
СпойлерКстати, будете смеяться - мой текущий коммерческий проект как раз основан на Ардуино. Заказчик так захотел. :))) Ну а за деньги, как водится, любой каприз. :)) Так что это не тот случай, когда "не кодил, но осуждаю". :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

А C# не подходит еще и из-за .NET.
Подходит - можно поиграться и чего-то сотворить: http://singularengineer.com/stm32f4-dis ... framework/
на русском: http://habrahabr.ru/post/175989/
Реклама
Эиком - электронные компоненты и радиодетали
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Подходит ...
Угу. Только запускается на STM32F4, которые да-а-алеко не AVR. И да, то ли я просмотрел, то ли они стесняются показать - что там с эффективностью генерации кода?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

у вас написано Все объектно-ориентированное изначально не подходит для МК, а стм32ф4 это МК. Эффективность слабая - там комментарий есть:
С целью оценить оверхед, добавляемый фреймворком, заменил тело цикла на много повторяющихся строчек:
led.Write(true); led.Write(false);
Итог довольно печальный: частота полученного сигнала ~47кГц. Для сравнения на чистом С будет 84МГц. Таким образом, разница в 3 порядка.
На «побаловаться» — сойдет. Но для чего-то более-менее серьезного пока сыровато.

подождем когда МК станут гигагерцовыми, тогда будет нормально :)
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

у вас написано Все объектно-ориентированное изначально не подходит для МК, а стм32ф4 это МК.

...

частота полученного сигнала ~47кГц. Для сравнения на чистом С будет 84МГц. Таким образом, разница в 3 порядка.
Т.е., Вы считаете, что я не прав, и при разнице в три порядка (!!!) такое решение подходит для МК? :)))
подождем когда МК станут гигагерцовыми, тогда будет нормально
В корне неверный подход, но, к сожалению, популярный по причине присущей человеку лени. :) Задирать частоту МК только для того, чтобы чип с частотой 1 ГГц пережевывал мусорный код с той же эффективностью, с которой чип на 8 МГц выполняет нормальный код - это как-то странно, что ли... :wink:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Именно подходит для МК (я выразил чисто свое имхо) если уже решено это:
Изображение
пусть медленно, но легко решаема масса задач графика, юсб, ком порт и пр.
В корне неверный подход, но, к сожалению, популярный по причине присущей человеку лени.
Увы мы сейчас наблюдаем этот подход на PC. Програмисты на .NET уже более востребованы чем на си или с++. То же будет и на МК - это мое бредовое имхо, высказать мнение имею право.
Последний раз редактировалось oleg110592 Вс июл 14, 2013 03:18:42, всего редактировалось 1 раз.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Что там решено - не понял. Скриншот нечитаем.
Програмисты на .NET уже более востребованы чем на си или с++.
Здесь есть небольшая разница, а именно - для каких задач востребованы. Для 90% задач типа "Hello, world!" действительно удобнее за пять минут обучить школьника сишарпу и посадить его кодить за еду. А вот те же драйвера, например, до сих пор пишут на Си долго учившиеся умные дяди...

Везде есть мейнстрим и 10% задач, для которых важно качество. При этом, если человек умеет писать качественно - освоение сишарпоардуиновой среды займет у него ровно пять минут. А вот если его мозг изначально покалечен подобной парадигмой, есть вероятность, что писать качественно он не научится никогда... Вспомните, что известный дядя говорил про Basic. Вот ровно та же ситуация.
То же будет и на МК
Да нет. МК по определению - среда с очень слабыми ресурсами, так что мусорного кода она практически не терпит. Что действительно правда, так это то, что обсуждаемый ардуиноподход привел к появлению той же Raspberry Pi - но это уже по сути полноценный комп. Возможно, что мейнстрим пойдет в это русло. Но собственно МК никуда не денутся.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Увы мы сейчас наблюдаем этот подход на PC. Програмисты на .NET уже более востребованы чем на си или с++. То же будет и на МК - это мое бредовое имхо, высказать мнение имею право.
Ну конечно сей путь развития неправильный и тупиковый, но похоже так и будет.
Всеобщее отупление и ардуинозависимось . Снова же кокосы , микраПаскали , CVAVR .
Поколение визардов и индусских либ...
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1518
Зарегистрирован: Пт дек 28, 2012 21:56:46
Откуда: St. Petersburg

Сообщение blackx »

Ничего, когда-нибудь, когда меги станут быстрыми и многоядерными, и PHP портируют под авр! :)))

Программисты .NET/Java востребованы совсем не для тех задач, которые обычно возлагаются на C/C++. В чем тупиковость пути развития? Запросы ведь также растут. Раньше вам хватало пары кнопок и светодиодов в качестве интерфейса, ну максимум - семисегментного индикатора для вывода цифр. Потом, вы захотели добавлять в свои девайсы дисплеи от нокии 3310. А теперь уже не так бредово звучит мысль установить в свою систему цветной ЖК экран с сенсорным управлением и полноценным гуем. Может атмега пока с этим не очень справляется, неважно. Дешевые дисплеи то уже есть.

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

Я к тому, что это вовсе не "всеобщее отупление". Сейчас средний разработчик на Java/.NET должен знать на порядки больше, чем требуется тому же разработчику сисемного ПО - просто из-за высокого уровня развития этих платформ.
Последний раз редактировалось blackx Сб июл 13, 2013 22:29:18, всего редактировалось 3 раза.
Изображение only pure true norwegian blackx Изображение
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Не, все не так страшно. :) Несмотря на то, что есть Ардуино, тру-программирование никуда не собирается деваться. Каждой задаче (точнее, каждому набору требований) свой инструмент, вот и все.

Я говорю только о том, что знать по возможности надо самые эффективные, "профессиональные", инструменты; не надо ограничиваться протезами для мозга. Но это уже каждый решает для себя сам.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Поправил картинку, тут можно почитать подробнее о возможностях:
http://devdotnet.org/post/2013/05/03/Ne ... istem.aspx
http://devdotnet.org/post/2013/05/05/Ot ... onics.aspx
тру-программирование никуда и там не девается, можно писать native код:
http://www.tinyclr.it/a-new-journey-und ... ement.aspx
про native, для общего развития: http://www.olegtarasov.me/Post/2010/10/ ... native-kod
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

YS писал(а):Здесь есть небольшая разница, а именно - для каких задач востребованы. Для 90% задач типа "Hello, world!" действительно удобнее за пять минут обучить школьника сишарпу и посадить его кодить за еду. А вот те же драйвера, например, до сих пор пишут на Си долго учившиеся умные дяди...
Мнда...
Вспомним про Curiosity.
https://www.usenix.org/conference/hotdep12/tbd (видео только на английском).
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

тут можно почитать подробнее о возможностях
Почитал. Во-первых, обратим внимание на минимальные требования к хардваре:
для встраиваемого применения в 32- и 64-разрядных микроконтроллерах, содержащих как минимум 256 КБайт флеш памяти(ПЗУ) и 64 КБайт оперативной памяти(ОЗУ).
Понятно, что никакими восьмибитниками тут и не пахнет. Чтобы пережевывать подобный код с пристойной скоростью нужна мощнейшая числомолотилка, что и не скрывается. Это грустно. Для сравнения, вот, что можно сделать на контроллере с одним (!) килобайтом RAM, если подходить с умом.
Разрабатывать устройства на платформе .NET Micro Framework гораздо проще, быстрее, и менее трудозатратнее, что приводит к снижению стоимости разработки. Это достигается путем использование более высокоуровневого подхода к программированию.
...
Дополнительно, если разработчик имеет опыт разработки настольных приложений для платформ .NET, то он может использовать все свои навыки и опыт для разработки устройств платформы .NET Micro Framework. Программный код для платформы .NET с определенной адаптацией можно перенести на устройства работающие на платформа .NET Micro Framework.
Опять же, экономим время и деньги в ущерб эффективности. За месяц учим школьника писать интерфесы на C#, потом пересаживаем его на встроенную платформу. Понятно, я несколько утрирую, но смысл именно такой...

Далее упоминаются какие-то дисплеи, тачскрины и в таком духе. Т.е., опять ориентация на свистелки и красотульки.
про native, для общего развития
Прочел. В комментариях автор разъясняет, что такой подход удобен в основном для того, чтобы подключить к гламурному интерфейсу, написанному на C#, нативную библиотеку, которая и будет делать основную работу. Что логично и правильно, в общем.
в скором времени появятся копеечные и производительные системы-на-кристалле, с частотами порядка нескольких сотен мегагерц, которые можно будет хоть в простой будильник поставить
Уже, уже. Raspberry Pi, Virt2Real и подобные китайские поделки, сотни и тысячи их. Почитайте тот же Hack a Day - на таких компах чаще всего делают то, для чего хватило бы копеечного МК, опять же, экономя мозговые усилия за счет вычислительной мощности.

Это логическое продолжение Ардуино. Лень переучиваться? Давайте писать на языке, который максимально похож на что-то высокоуровневое. Мигание диодиком компилируется в такой код, который не влезает в МК? Давайте возьмем МК побольше! Код насколько велик, что не влезает уже ни в один МК семейства? Давайте возьмем ARM! И так далее. Чисто экстенсивное решение проблем.

Среди примеров Ардуино есть демокод для Bluetooth-модуля. Он не делает почти ничего - только настраивает модуль и перекидывает данные с аппаратного UART'а в модуль и обратно. Так вот, в скомпилированном виде он занимает почти пять килобайт!!!

Как-то раз я писал подобный код, правда, под MSP430 - конфигурация встроенного температурного сенсора и пересылка его данных через самописный софт-UART. Вышло чуть больше килобайта.
Вспомним про Curiosity.
Вспомним.

http://alvinalexander.com/bookmarks/tec ... sity-rover
It's running 2.5 million lines of C on a RAD750 processor manufactured by BAE.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

на контроллере с одним (!) килобайтом RAM
напомнило: «640КБ должно быть достаточно для каждого» (640K ought to be enough for anybody) — легендарная фраза, приписывается Биллу Гейтсу, основателю Microsoft, 1981-й год, времена создания первых IBM PC и MS DOS 1.0.
свеженький микроконтроллер от микрочип:
Изображение
тенденция, однако
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

YS писал(а):вот, что можно сделать на контроллере с одним (!) килобайтом RAM, если подходить с умом.
Мне больше нравиться запись с Breakpoint 2008 - слышно реакцию зала !!! 8)
http://www.youtube.com/watch?v=5ozFhqh-vKI
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1433
Зарегистрирован: Вс дек 02, 2012 03:13:48
Откуда: Калининград

Сообщение balmer »

Неправильная аргументация почему C# не нужно использовать на микроконтроллерах. C# он хорош, потому как эта RAD система, где все нужные библиотеки уже написаны. Там где этих библиотек нет, C# теряет всю привлекательность для знающих его.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Неправильная аргументация ... Там где этих библиотек нет, C# теряет всю привлекательность для знающих его.
Библиотеки можно написать. Для Ардуино же написали? И для С# напишут, если придет популярность в этой нише. Но вот проблему производительности в рамках этой парадигмы не решить никак. Разве только взять МК помощнее, что, собственно, и делают.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

Для .NET MF уже написана приличная библиотека классов.
Вспомнил - есть именно компилятор C# для пиков: http://en.pigmeo.org/wiki/Main_Page
Заброшен похоже, есть исходники - можно продолжить кому хочется иметь личный компилятор :)
Ответить

Вернуться в «AVR»