Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вышла TNKernel v.2.5
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
yuri_t
Причина подобных пауз хорошо известна - недостаточно мотивации для развития
бесплатного продукта. smile.gif

Версия 2.5 включает новый порт (TNKernel LP) для Freescale ® HCS08 Ultra-Low-Power 8-bits MCU.
TNKernel LP поддерживает an automatic power-down mode management, transparent switching
OS time ticks sources etc.

Также был выложен исходный код для USB Firmware Upgrader (MFC, Visual Studio 2008)
zltigo
Цитата(yuri_t @ Nov 10 2008, 22:29) *
...недостаточно мотивации для развития бесплатного продукта

sad.gif
Спасибо!
IgorKossak
a14.gif Слава Кому Следует!!! Хорошо, что хоть немного мотивации нашлось на хороший продукт. Юрий, желаю Вам здравствовать!
Нет ли в планах портировать Вашу ОС на модный ныне Cortex-M3?
yuri_t
Цитата(IgorKossak @ Nov 11 2008, 00:24) *
Нет ли в планах портировать Вашу ОС на модный ныне Cortex-M3?


Такой порт (сделанный Сергеем Кошкиным) уже существует.

Я в свою очередь хочу сделать несколько расширенный (по сравнению с портом Сергея)
вариант с поддержкой повторной входимости в прерываниях.
VslavX
Присоединяюсь к благодарностям - спасибо за качественный и идеологически выдержанный продукт a14.gif.
Alex B._
Цитата(yuri_t @ Nov 10 2008, 23:29) *
Версия 2.5

С задачей таймера и ceiling мютексом все понятно. Не понимаю, зачем обнуление wait_reason в конец функции перенесли..
Код
task->task_wait_reason = 0; //-- v2.5


Цитата(yuri_t @ Nov 11 2008, 10:59) *
Такой порт (сделанный Сергеем Кошкиным) уже существует.

Я в свою очередь хочу сделать несколько расширенный (по сравнению с портом Сергея)
вариант с поддержкой повторной входимости в прерываниях.

опа, он где-нибудь живой есть? Как раз сейчас этим занимаюсь...
И еще - вы же были против вложенных прерываний, насколько я помню =)
yuri_t
Цитата(Alex B._ @ Nov 11 2008, 11:34) *
опа, он где-нибудь живой есть? Как раз сейчас этим занимаюсь...


Я не знаю, публиковал ли Сергей где-то этот код или нет - я получил его примерно
неделю назад и еще не успел детально посмотреть. Навскидку - должно работать,
только с завершением задачи по tn_task_exit() уже вижу - темное место...
К сожалению, у меня на данный момент нет STM32 hardware чтобы попробовать.

Я Вам по e-mail подробнее напишу..

Цитата(Alex B._ @ Nov 11 2008, 11:34) *
И еще - вы же были против вложенных прерываний, насколько я помню =)

Дело в том, что архитектура Cortex-M3 позволяет делать nested interrupts,
что называется, "натуральным образом" и это отличная возможность детально
проработать и исследовать работу вложенных прерываний.
IgorKossak
Цитата(yuri_t @ Nov 11 2008, 11:12) *
К сожалению, у меня на данный момент нет STM32 hardware чтобы попробовать.

У меня есть, могу попробовать\проверить.
Если можно, выложите порт пока здесь.
Alex B._
Цитата(yuri_t @ Nov 11 2008, 13:12) *
Я Вам по e-mail подробнее напишу..

спасибо!


Цитата(IgorKossak @ Nov 11 2008, 13:51) *
У меня есть, могу попробовать\проверить.

аналогично...
yuri_t
Цитата(IgorKossak @ Nov 11 2008, 13:51) *
Если можно, выложите порт пока здесь.


Хорошо, если автор будет не против, то выложу.
Sergey_K
Всем добрый день! Выкладываю порт TNKernel для Cortex-M3. У меня сейчас на отладочной плате все нормально работает, перенес свое приложение работающее с графической подсистемой MicroWindows с ARM7 на Cortex-M3. Прошу всех высказывать свое мнение по поводу найденных ошибок.
Sergey_K
Цитата
Навскидку - должно работать, только с завершением задачи по tn_task_exit() уже вижу - темное место...


Спасибо Юрий! Действительно - при завершении задачи возникнет проблема со стеком. Необходимо переделать tn_switch_context_exit
Sergey_K
Выкладываю подправленный порт TNKernel, изменения касаются функции tn_switch_context_exit для корректного переключения на следующую задачу при завершении работы активной задачи (tn_task_exit). Это не окончательный вариант реализации, так что если у кого есть предложения - пишите. Вообще когда писал порт старался как можно меньше затрагивать ядро операционки. Изменился лишь файл tn_port.c и был переименован в tn_port_cm3.c, и был добавлен новый файл tn_port_asm_armcc_cortex_m3.s, этот файл написан под Keil. Любой обработчик прерывания необходимо открывать с помощью функции tn_int_enter(), а закрывать - tn_int_exit(). Данный порт основывается на TNKernel v.2.5.
yuri_t
Вышел "официальный" порт TNKernel для Cortex-M3.
TNKernel порт для Cortex-M3 полностью поддерживает вложенные прерывания.

Также добавил интересные (ИМХО) результаты сравнения производительности DMA (STM32) и FIFO (LPC21x) для hi-speed UART.

www.tnkernel.com
Alex B._
Цитата(yuri_t @ Dec 2 2008, 10:38) *
Вышел "официальный" порт TNKernel для Cortex-M3.

спасибо! у меня так руки и не дошли =)
vetal
Жаль, версии для nios2 нет. Приходится использовать uc/os.
VslavX
Цитата(vetal @ Dec 2 2008, 23:13) *
Жаль, версии для nios2 нет. Приходится использовать uc/os.

Так портируется достаточно просто - все архитектурно-зависимое грамотно вынесено в отдельные файлы -
за 2-3 дня вполне реально перенести.
vetal
Цитата
Так портируется достаточно просто - все архитектурно-зависимое грамотно вынесено в отдельные файлы -
за 2-3 дня вполне реально перенести.

Несколько сложнее - для полноценной работы нужна интеграция с HAL для поддержки драйверов аппаратуры и упрощения процесса программирования.

PS: Просто ради интереса - существует ли коммерческая, поддерживаемая версия TNKernel? И сколько может стоить порт+ОС с интеграцией nios2-studio?
yuri_t
Добавил примеры TNKernel для Luminary Micro LM3Sx.

Процессор LM3S811 с тактовой 50 MHz оказался производительнее чем STM32F103 с f=72MHz !!!
mendur
Цитата(yuri_t @ Dec 4 2008, 12:06) *
Процессор LM3S811 с тактовой 50 MHz оказался производительнее чем STM32F103 с f=72MHz !!!


Чем можно объяснить такой эффект?
yuri_t
Цитата(mendur @ Dec 4 2008, 23:41) *
Чем можно объяснить такой эффект?


Скорее всего - более оптимальная работа с program FLASH (например, 128-bit reading) .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.