OberonCore https://forum.oberoncore.ru/ |
|
MODULA2 для микроконтроллеров https://forum.oberoncore.ru/viewtopic.php?f=120&t=4138 |
Страница 1 из 1 |
Автор: | Kubanych [ Понедельник, 29 Октябрь, 2012 12:27 ] |
Заголовок сообщения: | MODULA2 для микроконтроллеров |
недавно возникла мысль скрестить gcc-gpc (Паскаль фронтенд для gcc) и avr-gcc (кодогенератор для микроконтроллеров). Поискал в интернете и нашел лучшее - МОДУЛА2 для микроконтроллеров. Для AVR http://floppsie.comp.glam.ac.uk/Glamorg ... 2-avr.html Для ARM http://floppsie.comp.glam.ac.uk/Glamorg ... 2-arm.html правда, в примере не совсем понравилась работа с железом Код: MODULE flashled ; PROCEDURE Turn (on: BOOLEAN) ; BEGIN IF on THEN (* turn LED on *) ASM VOLATILE ("cbi 0x15, 5"); ELSE (* turn LED off *) ASM VOLATILE ("sbi 0x15, 5"); END END Turn ; (* InitLed - initialize pin 0 as an output *) PROCEDURE InitLed ; BEGIN ASM VOLATILE ("sbi 0x14, 5") END InitLed ; CONST Delay = 500 ; VAR i, j: CARDINAL ; BEGIN InitLed ; Turn(FALSE) ; LOOP FOR i := 0 TO Delay DO FOR j := 0 TO Delay DO ASM VOLATILE ("nop") END END ; Turn(TRUE) ; FOR i := 0 TO Delay DO FOR j := 0 TO Delay DO ASM VOLATILE ("nop") END END ; Turn(FALSE) END END flashled. Но, с другой стороны это высвобождает руки для того, чтобы написать самим библиотеки для работы с железом. |
Автор: | TAU [ Понедельник, 29 Октябрь, 2012 13:46 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
Честно говоря, для программирования систем управления, где основная тяжесть лежит на ЛОГИКЕ, а не вычислениях, мне думается, лучше использовать вообще визуальное программирование с автоматическим построением текста программы - хоть на ассемблере, хоть на Си, хоть на Модуле - с устранением программиста-человека (которым свойственно делать ошибки хоть на Аде) из процесса! |
Автор: | Alexander Shiryaev [ Вторник, 30 Октябрь, 2012 07:43 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
А чем (Astrobe) Oberon-07 не устраивает? |
Автор: | Kubanych [ Вторник, 30 Октябрь, 2012 09:41 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
Alexander Shiryaev писал(а): А чем (Astrobe) Oberon-07 не устраивает? 1. Они не хотят выпускать версии для 8 битных микроконтроллеров (AVR, PIC, STM) 2. Они не хотят делать библиотеки для поддержки всего железа в микроконтроллерах LPC (ethernet, USB и др) 3. Не все вопросы попадают на их форум техподдержки, излишняя модерация 4. Open source, не надо платить 200$ |
Автор: | Alexander Shiryaev [ Вторник, 30 Октябрь, 2012 11:09 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
Kubanych писал(а): Alexander Shiryaev писал(а): А чем (Astrobe) Oberon-07 не устраивает? 1. Они не хотят выпускать версии для 8 битных микроконтроллеров (AVR, PIC, STM) Цена -- это, наверное, единственное их преимущество. Для простеньких задач подходят хорошо, для сложных 8-битные системы плохо подходят. Разрядности памяти не хватает -- начинается переключение между банками памяти, нужны длинные целые (>8 бит) или IEEE 754 -- на них будет уходить много команд. Их применение не такое универсальное, как у 32-битных систем. Для универсальных применений компилятор сложнее устроен, чем для 32-битных RISC-ов. Для цифровой обработки сигналов высокой частоты лучше всё равно DSP или жёсткая логика, 8-битные микроконтроллеры в этом плане не сильно лучше 32-битных. Если на самом деле нужна 8-битность, то могу посоветовать Mikroelektronika microPascal. По производительности -- 8-битные микроконтроллеры ~ в 5 раз медленнее, чем ARM-ы при работе с IEEE 754 (при одной и той же частоте fCCLK, сравнивал PIC18 с NXP LPC2000, компиляторы microPascal и Astrobe). Цитата: 2. Они не хотят делать библиотеки для поддержки всего железа в микроконтроллерах LPC (ethernet, USB и др) Библиотеки лучше писать самому. Большинство чужих библиотек спроектированы неправильно (например, основаны на блокирующих вызовах процедур) и/или содержат ошибки в реализации. Их лучше использовать только для примера, чтобы посмотреть, как примерно что-то реализовать. Не пользуюсь библиотеками Astrobe. Если надёжность не критична, то можно пользоваться. Ethernet на уровне, предоставляемом LPC, устроен не сложно. Приём/отправку ARP-пакетов реализовать не сложно. UDP не на много сложнее. TCP уже сложнее. Но это и не самый удачный протокол (почитайте про SCTP). Если он на самом деле нужен, то на реализацию уйдёт какое-то время. Если возможно, то лучше вместо него использовать ARP или UDP, или вообще не Ethernet. USB то же самое, только ещё хуже, чем TCP. Протокол SD/MMC не сложный; на уровне, предоставляемом LPC, работать не сложно. Можно воспользоваться примерами из Keil или NXP. Самая полезная информация находится в руководстве пользователя к микроконтроллеру. Цитата: 3. Не все вопросы попадают на их форум техподдержки, излишняя модерация Это нормально. Цитата: 4. Open source, не надо платить 200$ Но Оберон-07 как язык и Astrobe как компилятор лучше. Если нужно open source, то лучше всего самому написать компилятор Оберон-07. |
Автор: | Kubanych [ Четверг, 01 Ноябрь, 2012 08:48 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
Спасибо за развернутый ответ Alexander Shiryaev писал(а): Цена -- это, наверное, единственное их преимущество. Для простеньких задач подходят хорошо, ,,,,,, Библиотеки лучше писать самому. Большинство чужих библиотек спроектированы неправильно (например, основаны на блокирующих вызовах процедур) и/или содержат ошибки в реализации. 1. Для крупносерийного производства элементов с простейшей автоматикой цена становится критичной. Мы рассматривали именно для такого случая (дешевое устройство, решающее проблему - клиентам легче принять решение о его покупке). 2. Может, на основе этого форума организуем open-source проект по разработке библиотек для Astrobe, чтобы продвигать Оберон для микроконтроллеров в русскоязычном пространстве? |
Автор: | Alexander Shiryaev [ Четверг, 01 Ноябрь, 2012 17:35 ] |
Заголовок сообщения: | Re: MODULA2 для микроконтроллеров |
Kubanych писал(а): 1. Для крупносерийного производства элементов с простейшей автоматикой цена становится критичной. Мы рассматривали именно для такого случая (дешевое устройство, решающее проблему - клиентам легче принять решение о его покупке). Если на самом деле для крупносерийных производств, и цена микроконтроллера в устройстве существенна, то да. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |