Компоненты и технологии • №2 '2011 компоненты


В предыдущих статьях [1] читатель познакомился с операционной систе-



Pdf көрінісі
бет20/129
Дата28.09.2023
өлшемі4.1 Mb.
#478975
1   ...   16   17   18   19   20   21   22   23   ...   129
Kurniz

В предыдущих статьях [1] читатель познакомился с операционной систе-
мой реального времени (ОСрВ) для микроконтроллеров (МК) FreeRTOS. 
В данной статье будет продолжено изучение базовой единицы любой 
программы, работающей под управлением FreeRTOS, — задачи. Будет 
рассказано, как передать в задачу в момент ее создания произвольный 
параметр и как создать несколько экземпляров одной задачи. Будет по-
казано, как блокировать задачу на определенное время и заставить ее 
циклически выполняться с заданной частотой. Автор использует удобную 
для демонстрации возможностей FreeRTOS платформу — порт FreeRTOS 
для x86 совместимых процессоров.
FreeRTOS — 
операционная система 
для микроконтроллеров
Продолжение. Начало в № 2`2011
рис. 3. Успешная сборка демонстрационного проекта в среде Open Watcom
рис. 1. Включение 16‑разрядного компилятора
рис. 2. Включение DOS в список целевых ОС


97
КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 4 '2011
www.kite.ru
компоненты
микроконтроллеры
быть выполнены из интерпретатора команд Windows (cmd.exe). В ка-
честве альтернативы можно использовать бесплатный эмулятор ОС 
DOS под названием DOSBox, который позволит выполнять примеры 
не только из-под Windows, но и из-под UNIX-подобных (FreeBSD, 
Fedora, Gentoo Linux) и некоторых других ОС [2].
Загрузить последнюю версию пакета Open Watcom можно с офици-
ального сайта [2]. На момент написания статьи это версия 1.9. Файл для 
скачивания: open-watcom-c-win32-1.9.exe. Во время инсталляции пакета 
следует включить в установку 16-разрядный компилятор для DOS и до-
бавить DOS в список целевых ОС (рис. 1 и 2).
После установки пакета Open Watcom нужно выполнить переза-
грузку рабочей станции. Далее можно проверить работу компиля-
тора, открыв демонстрационный проект, входящий в дистрибутив 
FreeRTOS. Проект располагается в C:/FreeRTOSV6.1.0/Demo/PC/ (в слу-
чае установки FreeRTOS на диск C:/). Далее следует открыть файл про-
екта Open Watcom, который называется rtosdemo.wpj, и выполнить 
сборку проекта, выбрав пункт меню Targets -> Make. Сборка должна 
пройти без ошибок (рис. 3).
При этом в директории демонстрационного проекта появится ис-
полнимый файл rtosdemo.exe, запустив который можно наблюдать 
результаты работы демонстрационного проекта в окне интерпретато-
ра команд Windows (рис. 4).
В демонстрационный проект включена демонстрация всех воз-
можностей FreeRTOS. Для наших целей, чтобы продолжить изучение 
задач, не вникая в остальные возможности FreeRTOS, необходимо 
исключить из проекта все исходные и заголовочные файлы, кроме 
файлов ядра FreeRTOS и файла main.c (рис. 5).
Кроме этого, необходимо произвести настройку ядра, отредакти-
ровав заголовочный файл FreeRTOSConfig.h:
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
#include
#include
#define configUSE_PREEMPTION 
1
#define configUSE_IDLE_HOOK 
0
#define configUSE_TICK_HOOK 
0
#define configTICK_RATE_HZ 
( ( portTickType ) 1000 )
#define configMINIMAL_STACK_SIZE 
( ( unsigned short ) 256 )
/* This can be made smaller if required. */
#define configTOTAL_HEAP_SIZE 
( ( size_t ) ( 32 * 1024 ) )
#define configMAX_TASK_NAME_LEN 
( 16 )
#define configUSE_TRACE_FACILITY
1
#define configUSE_16_BIT_TICKS
1
#define configIDLE_SHOULD_YIELD 
1
#define configUSE_CO_ROUTINES
0
#define configUSE_MUTEXES 
1
#define configUSE_COUNTING_SEMAPHORES 
1
#define configUSE_ALTERNATIVE_API 
1
#define configUSE_RECURSIVE_MUTEXES 
1
#define configCHECK_FOR_STACK_OVERFLOW 
0 /* Do not use this option on the PC port. */
#define configUSE_APPLICATION_TASK_TAG 
1
#define configQUEUE_REGISTRY_SIZE 
0
#define configMAX_PRIORITIES 
( ( unsigned portBASE_TYPE ) 10 )
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
/* Set the following definitions to 1 to include the API function, or zero
to exclude the API function. */
#define INCLUDE_vTaskPrioritySet
1
#define INCLUDE_uxTaskPriorityGet
1
#define INCLUDE_vTaskDelete
1
#define INCLUDE_vTaskCleanUpResources 
1
#define INCLUDE_vTaskSuspend
1
#define INCLUDE_vTaskDelayUntil 
1
#define INCLUDE_vTaskDelay 
1
#define INCLUDE_uxTaskGetStackHighWaterMark 0 /* Do not use this option on the PC port. */
#endif /* FREERTOS_CONFIG_H */


Достарыңызбен бөлісу:
1   ...   16   17   18   19   20   21   22   23   ...   129




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет