scmRTOS для AVR. "Установка". Вариант для IAR`a

10/08/2010 - 20:04
 
   Для начала я бы рекомендовал вам почитать документацию на scmRTOS. Там много полезной информации по операционным системам в целом и про устройство и работу scmRTOS.

   Если вы уже ознакомились с этим документом, у вас есть какие-то начальные знания или просто не терпится начать использовать ОСРВ, давайте начнем с установки  операционной системы.

Процесс установки включает в себя:

    1. Копирование файлов scmRTOS в заданную папку,
    2. Создание проекта в IAR,
    3. Копирование конфигурационных файлов scmRTOS в папку проекта,
    4. Подключение файлов scmRTOS к проекту,
    5. Настройка проекта.


Итак, приступаем.

 1.  Скачиваем архив с ScmRTOS и открываем его. Папки с номерами 1, 2, 3 – это демонстрационные примеры. Папка scmRTOS – файлы нашей ОСРВ. Операционная система состоит из двух наборов файлов – общая часть (папка Common) и платформеннозависимая часть (папка AVR).
   Создаем папку, в которой у нас будут храниться все проекты, использующие эту ОСРВ. Например - scmRTOS-proj. Записываем в нее папку scmRTOS.

2. Открываем IAR и создаем новый проект.
Project > Create New Project
Выбираем Project templates – C++ >main.
Затем Ок и сохраняем проект в папке scmRTOS-proj\test под именем test.

3. Из любой папки с демо примером копируем файлы scmRTOS_TARGET_CFG.h и scmRTOS_CONFIG.h в папку нашего проекта, то есть в scmRTOS-proj\test.
scmRTOS_CONFIG.h – это конфигурационный файл scmRTOS. В нем задаются различные настройки операционной системы – количество процессов, механизм переключения контекста, разрешение вложенных прерываний и т.п. Это все мы потом рассмотрим.
   Не знаю, почему этих файлов нет в «дистрибутиве» scmRTOS. Или я что-то не нашел, или я что-то не понимаю.

4. Подключаем к нашему проекту файлы scmRTOS.
Project > Add files…

OS_Kernel.cpp
OS_Services.cpp
OS_Target_cpp.cpp
OS_Target_asm.s90
usrlib.cpp

Эти файлы лежат в scmRTOS\AVR и scmRTOS\Common
 
5. Задаем настройки проекта Project > Options.

General Options
         Target
               Processor configuration > ATMega8535
               Memory model > small
          System
               Ставим галочку Enable bit definition..

С/С++ Compiler
           Language
               Extended Embedded C++
           Optimizations
               Speed > High
           Preprocessor
                В поле Additional include directories прописываем пути к файлам
                scmRTOS               
         
                $PROJ_DIR$\..\scmRTOS\Common\
                $PROJ_DIR$\..\scmRTOS\AVR\
                $PROJ_DIR$\

Assembler
            Preprocessor
                $TOOLKIT_DIR$\INC\
                $PROJ_DIR$\

Linker
          Output file
                 Test.hex
          Format > other > intel-standart

    Ну вот, все готово. Теперь мы можем создать свой первый проект на основе scmRTOS, но об в другой раз.

Архив с  scmRTOS-IARAVR
Документация на scmRTOS
Демонстрационный проект для IAR`a
Проект для Proteus`a.

P.S.: Только не надо ругаться, что я стреляю из пушки по воробьям, используя RTOS для моргания светодиодами. Я просто отдаю дань традициям :)  С WINAVR пока не разобрался, но ученые бьются над этим...

Comments   

# alexandershahbazov 2010-08-11 06:24
Большое спасибо за такое важное начало!
CodeVisionAVR выбрал FreeRTOS .
Будет ли в будущем вариант для CodeVisionAVR ?
# Pashgan 2010-08-11 17:34
Насколько мне известно scmRTOS для CodeVision нет. Но для CodeVision я находил какую то другую операционную систему - на порядок проще. Собирался сделать по ней материал, но не дошли руки

FreeRTOS более тяжеловесна, поэтому я не захотел пока с ней связываться.
# САБ 2010-08-11 20:32
Если CV вдруг начнет поддерживать С++ (и кто-то из пользователей CV захочет портировать под него scmRTOS). Пока он является компилятором даже не С, а "языка, похожего на С".
# Pyku_He_oTTyda 2010-08-11 16:54
Очень интересно! Большое спасибо!
# Pashgan 2010-08-11 17:34
Да пока что особо не за что..
# Silverio 2010-08-11 19:30
#Silverio
Очень интересная статья !!!
Светодиоды это конечно классика :) Но интересно посмотреть на что то по серьезней.

Как Вы считаете?
# Pashgan 2010-08-11 19:41
В следующей статье напишу комментарии к первому проекту. А в третьей будет уже что-то поинтереснее. Пока сам еще не знаю что.
# aeore 2010-08-24 14:18
Спасибо за статью, жду продолжения :)
PS: Правда, пока еще не удалось скомпилировать ни один проект - везде куча ошибок, даже в тех, которые идут вместе с ОС
# Pashgan 2010-08-24 18:43
Да? А у меня все как-то быстро получилось..
# aeore 2010-08-24 18:53
Уже тоже получилось:)

Дело было в версии компилятора - я использую IAR 5.50.1, и он оказался несовместим с версией scmRTOS 3.05. После этого я скачал последнюю версию 3.10 операционной системы, и теперь компиляция проходит без проблем
# Verizon 2011-06-29 17:34
У меня не получается. Скажите пожалуйста под какую версию IAR выполнен тестовый проект? У меня версия 5511. Проект выдает 126 ошибок в файлах операционки. если у кого получилось выложте please свой проект.
# SkaPavel 2011-09-20 15:54
пожалуйста прикрутите scmRTOS к winAVR оч хочется разобраться в scmRTOS, IAR как-то недолюбливаю.

У вас недостаточно прав для комментирования.