~~NOTOC~~
\\
{{:b_tnkernel.png|TNKernel for PIC24/dsPIC}}
\\
Скачать документацию в формате {{:tnkernel:tnkernel_rus_20110125.pdf|PDF}}
====== TNKernel ======
===== Document Disclaimer =====
The information in this document is subject to change without notice. While the
information herein is assumed to be accurate, Yuri Tiomkin (the author) assumes no
responsibility for any errors or omissions.
The author makes and you receive no warranties or conditions, express, implied, statutory
or in any communications with you. The author specifically disclaims any implied warranty
of merchantability or fitness for a particular purpose.
~~UP~~
===== Copyright notice =====
TNKernel real time kernel
Copyright © 2004,2006 Yuri Tiomkin
All rights reserved.
Permission to use, copy, modify, and distribute this software in source and binary forms
andits documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both that copyright notice and
this permission notice appear in supporting documentation.
THIS SOFTWARE IS PROVIDED BY THE YURI TIOMKIN AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
YURI TIOMKIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
~~UP~~
===== Trademarks =====
Names mentioned in this manual may be trademarks of their respective companies. Brand and
product names are trademarks or registered trademarks of their respective holders.
~~UP~~
===== Введение =====
**TNKernel** - компактная и быстрая операционная система реального времени, разработанная для 32- и 16-битных однокристальных микроконтроллеров. TNKernel обеспечивает вытесняющее планирование, основанное на приоритетах задач и карусельное переключение задач с равными приоритетами. В основу TNKernel положена спецификация [[http://www.assoc.tron.org/eng/document.html | μITRON 4.0]] ((μITRON 4.0 - это открытая спецификация, описывающая операционную систему реального времени, разработанная коммитетом ITRON ассоциации TRON.))
Текущая версия TNKernel поддерживает следующие объекты:
* [[tnkernel:ref:task:intro|задачи]]
* [[tnkernel:ref:sem:intro|семафоры]]
* [[tnkernel:ref:mutex:intro|мютексы]]
* [[tnkernel:ref:dqueue:intro|очереди сообщений]]
* [[tnkernel:ref:event:intro|флаги]]
* [[tnkernel:ref:mpool:intro|блоки памяти фиксированного размера]]
Большинство кода TNKernel написано на языке Си, что позволило портировать [[http://www.tnkernel.com | оригинальную версию]], которая изначально была разработана для микроконтроллеров с ядром ARM7, на 16-битную архитектуру Microchip PIC24/dsPIC.
Операционная система TNKernel распространяется в открытых исходных кодах под лицензией FreeBSD-like.
Документация учитывает изменения и дополнения, внесенные в порт TNKernel для PIC24/dsPIC
~~UP~~
===== Содержание =====
* [[tnkernel:ref:task:intro|Задачи]]
* [[tnkernel:ref:task:intro#введение|Введение]]
* [[tnkernel:ref:task:intro#состояния_задач|Состояния задач]]
* [[tnkernel:ref:task:intro#правила_планирования|Правила планирования]]
* [[tnkernel:ref:task:intro#системные_задачи|Системные задачи]]
* [[tnkernel:ref:task:intro#структура_управления_задачей|Структура управления задачей]]
* [[tnkernel:ref:task:intro#сервисы_управления_задачами|Сервисы управления задачами]]
* [[tnkernel:ref:sem:intro|Семафоры]]
* [[tnkernel:ref:sem:intro#Введение|Введение]]
* [[tnkernel:ref:sem:intro#Структура управления семафором|Структура управления семафором]]
* [[tnkernel:ref:sem:intro#Сервисы управления семафорами|Сервисы управления семафорами]]
* [[tnkernel:ref:event:intro|Флаги]]
* [[tnkernel:ref:event:intro#Введение|Введение]]
* [[tnkernel:ref:event:intro#Структура управления флагом|Структура управления флагом]]
* [[tnkernel:ref:event:intro#Сервисы управления флагами|Сервисы управления флагами]]
* [[tnkernel:ref:dqueue:intro|Очереди сообщений]]
* [[tnkernel:ref:dqueue:intro#Введение|Введение]]
* [[tnkernel:ref:dqueue:intro#Структура управления очередью сообщений|Структура управления очередью сообщений]]
* [[tnkernel:ref:dqueue:intro#Сервисы управления очередями сообщений|Сервисы управления очередями сообщений]]
* [[tnkernel:ref:mutex:intro|Мютексы]]
* [[tnkernel:ref:mutex:intro#Введение|Введение]]
* [[tnkernel:ref:mutex:intro#Инверсия приоритетов|Инверсия приоритетов]]
* [[tnkernel:ref:mutex:intro#Взаимная блокировка|Взаимная блокировка]]
* [[tnkernel:ref:mutex:intro#Структура управления мютексом|Структура управления мютексом]]
* [[tnkernel:ref:mutex:intro#Сервисы управления мютексами|Сервисы управления мютексами]]
* [[tnkernel:ref:mpool:intro|Блоки памяти фиксированного размера]]
* [[tnkernel:ref:mpool:intro#Введение|Введение]]
* [[tnkernel:ref:mpool:intro#Структура управления пулом блоков памяти|Структура управления пулом блоков памяти]]
* [[tnkernel:ref:mpool:intro#Сервисы управления пулами блоков памяти|Сервисы управления пулами блоков памяти]]
* [[tnkernel:ref:sys:intro|Системные сервисы]]
* [[tnkernel:ref:sys:intro#Введение|Введение]]
* [[tnkernel:ref:sys:intro#Запуск системы|Запуск системы]]
* [[tnkernel:ref:sys:intro#Системный таймер|Системный таймер]]
* [[tnkernel:ref:sys:intro#Управление Round-Robin|Управление Round-Robin]]
* [[tnkernel:ref:sys:intro#Запрещение переключения контекста|Запрещение переключения контекста]]
* [[tnkernel:ref:sys:intro#Системное время|Системное время]]
* [[tnkernel:ref:sys:intro#Системные сервисы|Системные сервисы]]
~~UP~~