|
Вышла TNKernel v.2.5, После почти полуторагодовой паузы вышла TNKernel v.2.5 |
|
|
|
Nov 10 2008, 19:29
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Причина подобных пауз хорошо известна - недостаточно мотивации для развития бесплатного продукта. Версия 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)
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 20)
|
Nov 11 2008, 06:59
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Цитата(IgorKossak @ Nov 11 2008, 00:24)  Нет ли в планах портировать Вашу ОС на модный ныне Cortex-M3? Такой порт (сделанный Сергеем Кошкиным) уже существует. Я в свою очередь хочу сделать несколько расширенный (по сравнению с портом Сергея) вариант с поддержкой повторной входимости в прерываниях.
|
|
|
|
|
Nov 11 2008, 07:34
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(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)  Такой порт (сделанный Сергеем Кошкиным) уже существует.
Я в свою очередь хочу сделать несколько расширенный (по сравнению с портом Сергея) вариант с поддержкой повторной входимости в прерываниях. опа, он где-нибудь живой есть? Как раз сейчас этим занимаюсь... И еще - вы же были против вложенных прерываний, насколько я помню =)
|
|
|
|
|
Nov 11 2008, 09:12
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Цитата(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, что называется, "натуральным образом" и это отличная возможность детально проработать и исследовать работу вложенных прерываний.
|
|
|
|
|
Nov 11 2008, 09:52
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(yuri_t @ Nov 11 2008, 13:12)  Я Вам по e-mail подробнее напишу.. спасибо! Цитата(IgorKossak @ Nov 11 2008, 13:51)  У меня есть, могу попробовать\проверить. аналогично...
|
|
|
|
|
Nov 11 2008, 10:03
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Цитата(IgorKossak @ Nov 11 2008, 13:51)  Если можно, выложите порт пока здесь. Хорошо, если автор будет не против, то выложу.
|
|
|
|
|
Nov 11 2008, 13:02
|
Группа: Участник
Сообщений: 6
Регистрация: 11-11-08
Пользователь №: 41 537

|
Всем добрый день! Выкладываю порт TNKernel для Cortex-M3. У меня сейчас на отладочной плате все нормально работает, перенес свое приложение работающее с графической подсистемой MicroWindows с ARM7 на Cortex-M3. Прошу всех высказывать свое мнение по поводу найденных ошибок.
|
|
|
|
|
Nov 12 2008, 04:31
|
Группа: Участник
Сообщений: 6
Регистрация: 11-11-08
Пользователь №: 41 537

|
Цитата Навскидку - должно работать, только с завершением задачи по tn_task_exit() уже вижу - темное место... Спасибо Юрий! Действительно - при завершении задачи возникнет проблема со стеком. Необходимо переделать tn_switch_context_exit
|
|
|
|
|
Nov 12 2008, 07:30
|
Группа: Участник
Сообщений: 6
Регистрация: 11-11-08
Пользователь №: 41 537

|
Выкладываю подправленный порт 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.
|
|
|
|
|
Dec 4 2008, 19:41
|
Группа: Участник
Сообщений: 6
Регистрация: 19-11-08
Пользователь №: 41 769

|
Цитата(yuri_t @ Dec 4 2008, 12:06)  Процессор LM3S811 с тактовой 50 MHz оказался производительнее чем STM32F103 с f=72MHz !!! Чем можно объяснить такой эффект?
|
|
|
|
|
Dec 5 2008, 07:23
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937

|
Цитата(mendur @ Dec 4 2008, 23:41)  Чем можно объяснить такой эффект? Скорее всего - более оптимальная работа с program FLASH (например, 128-bit reading) .
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|