OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 19:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: MODULA2 для микроконтроллеров
СообщениеДобавлено: Понедельник, 29 Октябрь, 2012 12:27 

Зарегистрирован: Суббота, 04 Март, 2006 15:13
Сообщения: 674
Откуда: СССР
недавно возникла мысль скрестить 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.

Но, с другой стороны это высвобождает руки для того, чтобы написать самим библиотеки для работы с железом.


Последний раз редактировалось Kubanych Вторник, 30 Октябрь, 2012 09:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Понедельник, 29 Октябрь, 2012 13:46 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 372
Честно говоря, для программирования систем управления, где основная тяжесть лежит на ЛОГИКЕ, а не вычислениях, мне думается, лучше использовать вообще визуальное программирование с автоматическим построением текста программы - хоть на ассемблере, хоть на Си, хоть на Модуле - с устранением программиста-человека (которым свойственно делать ошибки хоть на Аде) из процесса!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Вторник, 30 Октябрь, 2012 07:43 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
А чем (Astrobe) Oberon-07 не устраивает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Вторник, 30 Октябрь, 2012 09:41 

Зарегистрирован: Суббота, 04 Март, 2006 15:13
Сообщения: 674
Откуда: СССР
Alexander Shiryaev писал(а):
А чем (Astrobe) Oberon-07 не устраивает?


1. Они не хотят выпускать версии для 8 битных микроконтроллеров (AVR, PIC, STM)
2. Они не хотят делать библиотеки для поддержки всего железа в микроконтроллерах LPC (ethernet, USB и др)
3. Не все вопросы попадают на их форум техподдержки, излишняя модерация
4. Open source, не надо платить 200$


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Вторник, 30 Октябрь, 2012 11:09 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Четверг, 01 Ноябрь, 2012 08:48 

Зарегистрирован: Суббота, 04 Март, 2006 15:13
Сообщения: 674
Откуда: СССР
Спасибо за развернутый ответ

Alexander Shiryaev писал(а):
Цена -- это, наверное, единственное их преимущество.
Для простеньких задач подходят хорошо,
,,,,,,
Библиотеки лучше писать самому. Большинство чужих библиотек спроектированы неправильно (например, основаны на блокирующих вызовах процедур) и/или содержат ошибки в реализации.


1. Для крупносерийного производства элементов с простейшей автоматикой цена становится критичной. Мы рассматривали именно для такого случая (дешевое устройство, решающее проблему - клиентам легче принять решение о его покупке).

2. Может, на основе этого форума организуем open-source проект по разработке библиотек для Astrobe, чтобы продвигать Оберон для микроконтроллеров в русскоязычном пространстве?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MODULA2 для микроконтроллеров
СообщениеДобавлено: Четверг, 01 Ноябрь, 2012 17:35 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 02:12
Сообщения: 473
Откуда: KZ
Kubanych писал(а):
1. Для крупносерийного производства элементов с простейшей автоматикой цена становится критичной. Мы рассматривали именно для такого случая (дешевое устройство, решающее проблему - клиентам легче принять решение о его покупке).


Если на самом деле для крупносерийных производств, и цена микроконтроллера в устройстве существенна, то да.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB