Перейти к содержанию
    

Доброго времени суток!

 

OSA портирована на AVR. OSA - кооперативная ОСРВ для микроконтроллеров PIC и AVR. Распространяется бесплатно с исходными текстами. Может оказаться полезной при написании программ для малоресурсных контроллеров, где вытесняющим ОСРВ будет тесно.

 

Исходники

Документация

Учебник

 

С уважением, Виктор Тимофеев.

 

P.S. Исходники OSA можно взять также здесь: http://picosa.narod.ru (Opera 10 не открывает pic24.ru)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Версия 100312 - доработан внутренныий код для атомарного доступа к битовым системным переменным.

 

Порт под AVR будет потихоньку оптимизироваться (он пока слишком медленный), и будут исправляться обнаруженные баги. Так что следите за обновлениями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустил урок 2 из хелпа

 

Если в опциях компилятора включена оптимизация, то локальные переменные cTemp1 и cTemp2 удаляются, если отключена - вылетают предупреждения при симуляции и симуляция идет с ошибками

проект в архиве

 

Loaded plugin STK500

Loaded plugin AVR GCC

Loaded partfile: C:\Program Files\Atmel\AVR Tools\PartDescriptionFiles\ATmega16.xml

gcc plug-in: Output directory D:\work\AVR\os_pr2\default\ does not exist

gcc plug-in: Created directory D:\work\AVR\os_pr2\default\

AVR Simulator: Please wait while configuring simulator...

AVR Simulator: ATmega16 Configured OK

Loaded objectfile: D:\work\AVR\os_pr2\default\os_pr2.elf

Loaded objectfile: D:\work\AVR\os_pr2\default\os_pr2.elf

Loaded objectfile: D:\work\AVR\os_pr2\default\os_pr2.elf

AVR Simulator: Invalid opcode 0xffff at address 0x005b04

Loaded objectfile: D:\work\AVR\os_pr2\default\os_pr2.elf

 

сам вылет проходит здесь (дизассемблер), далее програмный счетчик обнуляется

@0000011C: SCHED_END
---- d:\work\AVR\os_pr2\default/d:\work\AVR\os_pr2\..\..\osa/port\osa_winavr.c --------------------
36: File not found
+0000011C:   93DF        PUSH      R29            Push register on stack
+0000011D:   93CF        PUSH      R28            Push register on stack
+0000011E:   B7CD        IN        R28,0x3D       In from I/O location
+0000011F:   B7DE        IN        R29,0x3E       In from I/O location

*********

40: File not found
+00000135:   91CF        POP       R28            Pop register from stack
+00000136:   91DF        POP       R29            Pop register from stack
+00000137:   9508        RET     Subroutine return     <-------------- здесь
@00000138: OS_SchedRetPoint
69: File not found

 

даже после объявления локальных переменных как static ошибка продолжается

os_pr2.rar

Изменено пользователем VasylYE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустил урок 2 из хелпа

 

Если в опциях компилятора включена оптимизация, то локальные переменные cTemp1 и cTemp2 удаляются, если отключена - вылетают предупреждения при симуляции и симуляция идет с ошибками

проект в архиве

WinAVR эти переменные, действительно, соптимизирует, т.к. с его точки зрения они не используются. Версию OSA для отключенной оптимизациии готовлю сейчас (в WinAVR'e нашел неприятный баг, и при включенной оптимизации работать в будущем будет, к сожалению, нельзя).

 

Для проверки работы урока 2 объявите локальные переменные в задачах с квалификатором volatile, тогда он их не будет оптимизировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(в WinAVR'e нашел неприятный баг, и при включенной оптимизации работать в будущем будет, к сожалению, нельзя).

 

Подготовил описание ошибки компилятора WinAVR, из-за которой при использовании кооперативной ОС нужно отключать оптимизацию. Рекомендую обновить OSA (версия 100314).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашел вариант решения проблемы. Теперь на WinAVR+OSA можно использовать любой уровень оптимизации (если еще какая гадость не вылезет)

 

Версия 100531

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

OSA портирована на STM8 (ограничение: ROM <= 64K) для компилятора Cosmic.

 

Исходники версии 101000.

В учебник добавлен Урок 5, посвященный расширенному приоритетному режиму.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Руки дошли почитать статью...

Не считайте придиркой, но все же не стоит создавать кашу в мозгах читателя:

1) Термин "реальное время" и производные от него по большому счету нормально применимы к конечным системам, а не к средствам из которых их делают (в том числе ОС). Вообще нормальное определение реального времени: "система (! не операционная система, а конечный продукт, в котором может использоваться ОСРВ, а может вообще быть суперлуп и даже... вообще не быть процессора и электроники) является системой реального времени, если времена реакций на события всегда меньше либо равны заданным". Далее если мягкость/жесткость вводить - то данное определение подходит для "жестких" систем, а для "мягких" надо вставить в конце "...в большинстве случаев".

2) Тип планирования (вытесняющее/кооператив) в общем-то ОТНОШЕНИЯ К ЖЕСТКОМУ/МЯГКОМУ реальному времени не имеет. По большому счету если вводить критерий "жесткости" применительно к ОС, то тогда с этой позиции - ОС является "жесткой" ОСРВ если задержки привносимые ОС всегда известны - т.е. можно использовать как инструмент для "жесткой" системы РВ, аналогично "мягкой" ОСРВ - если известно, что в большинстве случаев привносимые ОС задержки не превышают некоторых известных значений. А то, как воспользуется дисциплиной планирования программист - его дело и ответственность - я отлично делал на суперлупе и кооперативе системы "жесткого" реального времени. Какая бы крутейшая ОСРВ не использовалась, всегда можно реализовать программу, так что свойства реального времени в системе не будут обеспечены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Руки дошли почитать статью...

Не считайте придиркой, но все же не стоит создавать кашу в мозгах читателя:

Все правильно, Вы не первый мне это говорите. Просто нет времени на переработку материала.

 

"Пердустановленные константы" - это круто.... sm.gif

Спасибо, исправляю...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...