Sergey Pinigin (09.12.2008 19:56, просмотров: 4212)
Порт scmRTOS для CortexM3 http://electronix.ru/forum/index.php?showtopic=56372&hl=
shrek_tomsk:
Первая фиксация порта (и сэмплов) scmRTOS для Cortex-M3.
Особенности порта.
1. Для переключения контекста используется только программное прерывание - PendSV (как самый "родной" метод).
Прямой метод переключения не реализован.
2. В качестве системного таймера используется System tick timer.
3. Настройку таймера выполняет ОС, за исключением настройки частоты его клока, что должен сделать пользователь.
Для настройки SysTick'a в scmRTOS_TARGET_CFG.h следует указать частоту клока таймера и желаемую частоту таймерного прерывания.
4. Поскольку вложенные прерывания реализуются аппаратно, то макрос ENABLE_NESTED_INTERRUPTS пустой.
Дополнительно введен макрос DISABLE_NESTED_INTERRUPTS для запрета вложенных прерываний.
5. Наиболее эффективное переключение контекста выполняется при scmRTOS_PRIORITY_ORDER==1.
6. Прерывания используют Main_stack. Программа (задачи) - Process_stack.
7. Не забываем в таблице векторов прерываний (__vector_table[]) указать на соответствующих местах
2 обработчика - PendSVC_ISR, SystemTimer_ISR.