C# и atmega8
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
с МК опыта работы не было, с ассемблером тоже из языков , подходящих для мк знал когда-то паскаль, щас в основном пишу на c# подскажите пожалуйста, как на шарпе программировать контроллеры, хотя бы ткните носом где можно почитать, а то мне гугл какую-то фигню говорит((
- Реклама
AFAIK, компиляторов .net под МК нет. Вам проще будет Си или Си++ освоить, чем C# затаскивать на МК.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Все объектно-ориентированное изначально не подходит для МК, ибо страшно неэффективно обращается с ресурсами. А C# не подходит еще и из-за .NET.
Можете попробовать Arduino, может быть, понравится. Оно, как и C#, объектно-ориентировано и имеет примеры на каждый чих. Но это, конечно, среда для женщин, младших школьников и слабых духом.
Для сравнения - простейшая задача, мигание светодиодом, на ANSI C под ATmega32 весит 174 байта. На Wiring (язык Ардуино) - 1076 байт под тот же МК. Компилятор и там, и там - avr-gcc, просто Wiring - диалект С++ со своими библиотеками. Объектно-ориентирован, да.
Ну а за деньги, как водится, любой каприз.
Так что это не тот случай, когда "не кодил, но осуждаю". 
Можете попробовать Arduino, может быть, понравится. Оно, как и C#, объектно-ориентировано и имеет примеры на каждый чих. Но это, конечно, среда для женщин, младших школьников и слабых духом.
Для сравнения - простейшая задача, мигание светодиодом, на ANSI C под ATmega32 весит 174 байта. На Wiring (язык Ардуино) - 1076 байт под тот же МК. Компилятор и там, и там - avr-gcc, просто Wiring - диалект С++ со своими библиотеками. Объектно-ориентирован, да.
Спойлер
Кстати, будете смеяться - мой текущий коммерческий проект как раз основан на Ардуино. Заказчик так захотел.Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
А C# не подходит еще и из-за .NET.
Подходит - можно поиграться и чего-то сотворить: http://singularengineer.com/stm32f4-dis ... framework/
на русском: http://habrahabr.ru/post/175989/
Подходит - можно поиграться и чего-то сотворить: http://singularengineer.com/stm32f4-dis ... framework/
на русском: http://habrahabr.ru/post/175989/
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Угу. Только запускается на STM32F4, которые да-а-алеко не AVR. И да, то ли я просмотрел, то ли они стесняются показать - что там с эффективностью генерации кода?Подходит ...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Реклама
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
у вас написано Все объектно-ориентированное изначально не подходит для МК, а стм32ф4 это МК. Эффективность слабая - там комментарий есть:
С целью оценить оверхед, добавляемый фреймворком, заменил тело цикла на много повторяющихся строчек:
led.Write(true); led.Write(false);
Итог довольно печальный: частота полученного сигнала ~47кГц. Для сравнения на чистом С будет 84МГц. Таким образом, разница в 3 порядка.
На «побаловаться» — сойдет. Но для чего-то более-менее серьезного пока сыровато.
подождем когда МК станут гигагерцовыми, тогда будет нормально
С целью оценить оверхед, добавляемый фреймворком, заменил тело цикла на много повторяющихся строчек:
led.Write(true); led.Write(false);
Итог довольно печальный: частота полученного сигнала ~47кГц. Для сравнения на чистом С будет 84МГц. Таким образом, разница в 3 порядка.
На «побаловаться» — сойдет. Но для чего-то более-менее серьезного пока сыровато.
подождем когда МК станут гигагерцовыми, тогда будет нормально
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Т.е., Вы считаете, что я не прав, и при разнице в три порядка (!!!) такое решение подходит для МК?у вас написано Все объектно-ориентированное изначально не подходит для МК, а стм32ф4 это МК.
...
частота полученного сигнала ~47кГц. Для сравнения на чистом С будет 84МГц. Таким образом, разница в 3 порядка.
В корне неверный подход, но, к сожалению, популярный по причине присущей человеку лени.подождем когда МК станут гигагерцовыми, тогда будет нормально
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Именно подходит для МК (я выразил чисто свое имхо) если уже решено это:

пусть медленно, но легко решаема масса задач графика, юсб, ком порт и пр.
В корне неверный подход, но, к сожалению, популярный по причине присущей человеку лени.
Увы мы сейчас наблюдаем этот подход на PC. Програмисты на .NET уже более востребованы чем на си или с++. То же будет и на МК - это мое бредовое имхо, высказать мнение имею право.

пусть медленно, но легко решаема масса задач графика, юсб, ком порт и пр.
В корне неверный подход, но, к сожалению, популярный по причине присущей человеку лени.
Увы мы сейчас наблюдаем этот подход на PC. Програмисты на .NET уже более востребованы чем на си или с++. То же будет и на МК - это мое бредовое имхо, высказать мнение имею право.
Последний раз редактировалось oleg110592 Вс июл 14, 2013 03:18:42, всего редактировалось 1 раз.
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Что там решено - не понял. Скриншот нечитаем.
Везде есть мейнстрим и 10% задач, для которых важно качество. При этом, если человек умеет писать качественно - освоение сишарпоардуиновой среды займет у него ровно пять минут. А вот если его мозг изначально покалечен подобной парадигмой, есть вероятность, что писать качественно он не научится никогда... Вспомните, что известный дядя говорил про Basic. Вот ровно та же ситуация.
Здесь есть небольшая разница, а именно - для каких задач востребованы. Для 90% задач типа "Hello, world!" действительно удобнее за пять минут обучить школьника сишарпу и посадить его кодить за еду. А вот те же драйвера, например, до сих пор пишут на Си долго учившиеся умные дяди...Програмисты на .NET уже более востребованы чем на си или с++.
Везде есть мейнстрим и 10% задач, для которых важно качество. При этом, если человек умеет писать качественно - освоение сишарпоардуиновой среды займет у него ровно пять минут. А вот если его мозг изначально покалечен подобной парадигмой, есть вероятность, что писать качественно он не научится никогда... Вспомните, что известный дядя говорил про Basic. Вот ровно та же ситуация.
Да нет. МК по определению - среда с очень слабыми ресурсами, так что мусорного кода она практически не терпит. Что действительно правда, так это то, что обсуждаемый ардуиноподход привел к появлению той же Raspberry Pi - но это уже по сути полноценный комп. Возможно, что мейнстрим пойдет в это русло. Но собственно МК никуда не денутся.То же будет и на МК
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Ну конечно сей путь развития неправильный и тупиковый, но похоже так и будет.Увы мы сейчас наблюдаем этот подход на PC. Програмисты на .NET уже более востребованы чем на си или с++. То же будет и на МК - это мое бредовое имхо, высказать мнение имею право.
Всеобщее отупление и ардуинозависимось . Снова же кокосы , микраПаскали , CVAVR .
Поколение визардов и индусских либ...
Ничего, когда-нибудь, когда меги станут быстрыми и многоядерными, и PHP портируют под авр! 
Программисты .NET/Java востребованы совсем не для тех задач, которые обычно возлагаются на C/C++. В чем тупиковость пути развития? Запросы ведь также растут. Раньше вам хватало пары кнопок и светодиодов в качестве интерфейса, ну максимум - семисегментного индикатора для вывода цифр. Потом, вы захотели добавлять в свои девайсы дисплеи от нокии 3310. А теперь уже не так бредово звучит мысль установить в свою систему цветной ЖК экран с сенсорным управлением и полноценным гуем. Может атмега пока с этим не очень справляется, неважно. Дешевые дисплеи то уже есть.
Разумно предположить, что в скором времени появятся копеечные и производительные системы-на-кристалле, с частотами порядка нескольких сотен мегагерц, которые можно будет хоть в простой будильник поставить. Это закономерный этап развития. Уже сейчас под АРМы никто не пишет свои программы на АСМе - нет смысла. Аналогично, когда-нибудь, и Си будет использоваться лишь для написания аппаратной абстракции, а Джаву и дотнет портируют под такие платформы.
Я к тому, что это вовсе не "всеобщее отупление". Сейчас средний разработчик на Java/.NET должен знать на порядки больше, чем требуется тому же разработчику сисемного ПО - просто из-за высокого уровня развития этих платформ.
Программисты .NET/Java востребованы совсем не для тех задач, которые обычно возлагаются на C/C++. В чем тупиковость пути развития? Запросы ведь также растут. Раньше вам хватало пары кнопок и светодиодов в качестве интерфейса, ну максимум - семисегментного индикатора для вывода цифр. Потом, вы захотели добавлять в свои девайсы дисплеи от нокии 3310. А теперь уже не так бредово звучит мысль установить в свою систему цветной ЖК экран с сенсорным управлением и полноценным гуем. Может атмега пока с этим не очень справляется, неважно. Дешевые дисплеи то уже есть.
Разумно предположить, что в скором времени появятся копеечные и производительные системы-на-кристалле, с частотами порядка нескольких сотен мегагерц, которые можно будет хоть в простой будильник поставить. Это закономерный этап развития. Уже сейчас под АРМы никто не пишет свои программы на АСМе - нет смысла. Аналогично, когда-нибудь, и Си будет использоваться лишь для написания аппаратной абстракции, а Джаву и дотнет портируют под такие платформы.
Я к тому, что это вовсе не "всеобщее отупление". Сейчас средний разработчик на Java/.NET должен знать на порядки больше, чем требуется тому же разработчику сисемного ПО - просто из-за высокого уровня развития этих платформ.
Последний раз редактировалось blackx Сб июл 13, 2013 22:29:18, всего редактировалось 3 раза.
only pure true norwegian blackx 
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Не, все не так страшно.
Несмотря на то, что есть Ардуино, тру-программирование никуда не собирается деваться. Каждой задаче (точнее, каждому набору требований) свой инструмент, вот и все.
Я говорю только о том, что знать по возможности надо самые эффективные, "профессиональные", инструменты; не надо ограничиваться протезами для мозга. Но это уже каждый решает для себя сам.
Я говорю только о том, что знать по возможности надо самые эффективные, "профессиональные", инструменты; не надо ограничиваться протезами для мозга. Но это уже каждый решает для себя сам.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Поправил картинку, тут можно почитать подробнее о возможностях:
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
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
Мнда...YS писал(а):Здесь есть небольшая разница, а именно - для каких задач востребованы. Для 90% задач типа "Hello, world!" действительно удобнее за пять минут обучить школьника сишарпу и посадить его кодить за еду. А вот те же драйвера, например, до сих пор пишут на Си долго учившиеся умные дяди...
Вспомним про Curiosity.
https://www.usenix.org/conference/hotdep12/tbd (видео только на английском).
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Почитал. Во-первых, обратим внимание на минимальные требования к хардваре:тут можно почитать подробнее о возможностях
Понятно, что никакими восьмибитниками тут и не пахнет. Чтобы пережевывать подобный код с пристойной скоростью нужна мощнейшая числомолотилка, что и не скрывается. Это грустно. Для сравнения, вот, что можно сделать на контроллере с одним (!) килобайтом RAM, если подходить с умом.для встраиваемого применения в 32- и 64-разрядных микроконтроллерах, содержащих как минимум 256 КБайт флеш памяти(ПЗУ) и 64 КБайт оперативной памяти(ОЗУ).
Опять же, экономим время и деньги в ущерб эффективности. За месяц учим школьника писать интерфесы на C#, потом пересаживаем его на встроенную платформу. Понятно, я несколько утрирую, но смысл именно такой...Разрабатывать устройства на платформе .NET Micro Framework гораздо проще, быстрее, и менее трудозатратнее, что приводит к снижению стоимости разработки. Это достигается путем использование более высокоуровневого подхода к программированию.
...
Дополнительно, если разработчик имеет опыт разработки настольных приложений для платформ .NET, то он может использовать все свои навыки и опыт для разработки устройств платформы .NET Micro Framework. Программный код для платформы .NET с определенной адаптацией можно перенести на устройства работающие на платформа .NET Micro Framework.
Далее упоминаются какие-то дисплеи, тачскрины и в таком духе. Т.е., опять ориентация на свистелки и красотульки.
Прочел. В комментариях автор разъясняет, что такой подход удобен в основном для того, чтобы подключить к гламурному интерфейсу, написанному на C#, нативную библиотеку, которая и будет делать основную работу. Что логично и правильно, в общем.про native, для общего развития
Уже, уже. 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
на контроллере с одним (!) килобайтом RAM
напомнило: «640КБ должно быть достаточно для каждого» (640K ought to be enough for anybody) — легендарная фраза, приписывается Биллу Гейтсу, основателю Microsoft, 1981-й год, времена создания первых IBM PC и MS DOS 1.0.
свеженький микроконтроллер от микрочип:

тенденция, однако
напомнило: «640КБ должно быть достаточно для каждого» (640K ought to be enough for anybody) — легендарная фраза, приписывается Биллу Гейтсу, основателю Microsoft, 1981-й год, времена создания первых IBM PC и MS DOS 1.0.
свеженький микроконтроллер от микрочип:

тенденция, однако
Мне больше нравиться запись с Breakpoint 2008 - слышно реакцию зала !!!YS писал(а):вот, что можно сделать на контроллере с одним (!) килобайтом RAM, если подходить с умом.
http://www.youtube.com/watch?v=5ozFhqh-vKI
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Неправильная аргументация почему C# не нужно использовать на микроконтроллерах. C# он хорош, потому как эта RAD система, где все нужные библиотеки уже написаны. Там где этих библиотек нет, C# теряет всю привлекательность для знающих его.
- Сообщения: 7518
- Зарегистрирован: Вс мар 29, 2009 22:09:05
Библиотеки можно написать. Для Ардуино же написали? И для С# напишут, если придет популярность в этой нише. Но вот проблему производительности в рамках этой парадигмы не решить никак. Разве только взять МК помощнее, что, собственно, и делают.Неправильная аргументация ... Там где этих библиотек нет, C# теряет всю привлекательность для знающих его.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Для .NET MF уже написана приличная библиотека классов.
Вспомнил - есть именно компилятор C# для пиков: http://en.pigmeo.org/wiki/Main_Page
Заброшен похоже, есть исходники - можно продолжить кому хочется иметь личный компилятор
Вспомнил - есть именно компилятор C# для пиков: http://en.pigmeo.org/wiki/Main_Page
Заброшен похоже, есть исходники - можно продолжить кому хочется иметь личный компилятор


