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/