Для начала я бы рекомендовал вам почитать документацию на 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
CodeVisionAVR выбрал FreeRTOS .
Будет ли в будущем вариант для CodeVisionAVR ?
FreeRTOS более тяжеловесна, поэтому я не захотел пока с ней связываться.
Очень интересная статья !!!
Светодиоды это конечно классика :) Но интересно посмотреть на что то по серьезней.
Как Вы считаете?
PS: Правда, пока еще не удалось скомпилировать ни один проект - везде куча ошибок, даже в тех, которые идут вместе с ОС
Дело было в версии компилятора - я использую IAR 5.50.1, и он оказался несовместим с версией scmRTOS 3.05. После этого я скачал последнюю версию 3.10 операционной системы, и теперь компиляция проходит без проблем
RSS feed for comments to this post