новая ревизия (780) http://www.pic24.ru/upload/tnkernel_mchp_16bit_2_3_rev_780.rar
[%] исправлен баг с модульной и битреверсивной адресацией в dsPIC:
Если во время выполнения библиотечной функции, которая использует модульную или битреверсивную адресацию возникает системное (в котором вызываются сервисы, т.е. при выходе из которого может измениться контекст) прерывание, регистры MODCON и XBREV не сохраняются и не обнуляются. При этом косвеная адресация по прежнему подчиняется правилам модульной или битреверсивной адресации, что однозначно приведет к краху системы.
В ревизии 780 введены два target-а - PIC24 и dsPIC. Для dsPIC в стеке задачи сохраняются регистры MODCON и XBREV. Соответственно изменены файлы сборки библиотеки. В архиве четыре варианта - PIC24 coff/elf и dsPIC coff/elf с оптимизацией Os.
В проект нужно просто подключить соответствующую библиотеку.
Тем не менее, ядро DSP до сих пор является
разделяемым ресурсом и при его использовании нужно применять мютекс.
[%] изменена проверка контекста в сервисах:
Оверхед РТОС по времени выполнения уменшился примерно на 10-15%
Все системные прерывания должны быть разрешены
только после запуска системы (вообще говоря для этого предназначена функция cpu_int_en, указатель на которую передается в tn_start_system())
Все сервисы которые могут вызываться из задачи вернут ошибку TERR_WCONTEXT, если будут вызваны из прерывания (системного или несистемного)
Все сервисы, которые могут вызываться из системного прерывания вернут ошибку TERR_WCONTEXT, если будут вызваны из задачи или несистемного прерывания
Напоминание: по прежнему, все системные прерывания могут иметь только приоритет TN_INTERRUPT_LEVEL (т.е. 1). Для объявления функции обработки системного прерывания предназначен макрос tn_sys_interrupt(), например:
tn_sys_interrupt (_T2Interrupt)
{
IFS0bits.T2IF = 0;
tn_tick_int_processing();
}
[%] исправлена ошибка проверки контекста в функции tn_task_exit()
качать по ссылке
Выложил Thread-Metric RTOS Test Suite для TNKernel последней ревизии:
Это тест оверхеда RTOS от Express Logic, Inc. (коммерческая ось ThreadX)
The Thread-Metric test suite consists of 8 distinct RTOS tests that are designed to highlight commonly used aspects of an RTOS. The test measures the total number of RTOS events that can be processed during a specific timer interval
Сравнение с другими тут:
http://www.avix-rt …/html/performance.html
Цифры будут побольше чем по ссылке выше, там тестировалась относительно старая версия. Все цифры есть в файле _results.txt в архиве:
http://www.pic24.r …est_suite_tnkernel.rar