реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> RTOS для ARM7, какую выбрать? Отзывы и мнения., Рассматривается вариант RTX от Keil или есть что-то интересней/лучше?
Shein
сообщение Dec 21 2010, 04:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-07
Пользователь №: 25 855



Доброо времени суток.
Вопрос отчасти банальный, но все же...

Запускается проект на ARM7 AT91SAM7X___. Задача - специализированное устройство для передачи данных, прием данных по нескольким стыкам UART, USB, CAN, обработка и передача далее по линии связи.

Рассматривается вопрос применения RTX kernel от Keil'а. Кто имеет опыт работы с этой илидругими RTOS? какие впечатления? Подводные камни? Время на освоение?

Возможно есть системы более подходящие для подобной задачи?
Предполагаю, что сколько людей столько и мнений и все же...

Ранее подобные проекты делались полносью самостоятельно. Сейчас сроки поджимают, да и интересно даст ли применение RTOS упрощение реализации?
Go to the top of the page
 
+Quote Post
Nixon
сообщение Dec 21 2010, 05:57
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Используйте RTX. Никаких проблем кроме необходимости понимания основ RTOS и грамотного проектирования нет. Хорошо документирована, имеет плагин отладки для Keil и примеры применения.
Время на освоение при наличии головы на плечах почти 0. Упрощения реализации не будет (а что же вы хотели - в систему вводятся новые сущности RTOS), но ускорение разработки я вам гарантирую. Кроме того, применение RTOS упрощает масштабирование системы и совместную разработку.


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
Axel
сообщение Dec 22 2010, 06:22
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Рекомендую - на основе собственного опыта - TNKernel. Бесплатная, прозрачная, с открытыми исходниками. Имеющиеся примеры помогают быстро освоить. Подводные камни - только традиционные, типа инверсии приоритетов. Я доволен...
Go to the top of the page
 
+Quote Post
prgjz
сообщение Dec 22 2010, 07:42
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 3-01-07
Из: Germany
Пользователь №: 24 071



Я тоже TNKernel предпочитаю из за свободных исходников, и нет неободимости с однм только Keil (как в случае RTX) дружить. Если память в кристале дорога то scmRTOS очень компактна.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Dec 22 2010, 09:02
Сообщение #5


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Axel @ Dec 22 2010, 11:22) *
Рекомендую - на основе собственного опыта - TNKernel. Бесплатная, прозрачная, с открытыми исходниками. Имеющиеся примеры помогают быстро освоить. Подводные камни - только традиционные, типа инверсии приоритетов. Я доволен...

Дык, в TNKernel для мутексов реализован протокол наследования приорититов, который почти полностью проблему инверсии решает - один из плюсов этой системы.
Go to the top of the page
 
+Quote Post
alman
сообщение Dec 22 2010, 10:50
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 22-12-10
Из: Россия, Ростовская обл.
Пользователь №: 61 800



Цитата(Shein @ Dec 21 2010, 10:43) *
Запускается проект на ARM7 AT91SAM7X___. Задача - специализированное устройство для передачи данных, прием данных по нескольким стыкам UART, USB, CAN, обработка и передача далее по линии связи.

Рассматривается вопрос применения RTX kernel от Keil'а.

Кто имеет опыт работы с этой илидругими RTOS? какие впечатления? Подводные камни? Время на освоение?
Возможно есть системы более подходящие для подобной задачи?


Просто посмотрите в сторону микроядра L4 - http://l4hq.org/arch/arm/

На его основе можно построить всё что угодно, например, операционную систему - http://www.l4os.ru


Go to the top of the page
 
+Quote Post
Shein
сообщение Dec 23 2010, 13:22
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-07
Пользователь №: 25 855



Цитата(Nixon @ Dec 21 2010, 10:57) *
Используйте RTX. Никаких проблем кроме необходимости понимания основ RTOS и грамотного проектирования нет. Хорошо документирована, имеет плагин отладки для Keil и примеры применения.
Время на освоение при наличии головы на плечах почти 0.

Собственно мне тоже показалось, при первом знакомстве, что сложного там ничего нет. Хотя это же и смутило, как-то не верится что все так просто и функционально. Вот и подумалось, вдруг там не все так красио как в документации.
Цитата(Nixon @ Dec 21 2010, 10:57) *
Упрощения реализации не будет (а что же вы хотели - в систему вводятся новые сущности RTOS), но ускорение разработки я вам гарантирую. Кроме того, применение RTOS упрощает масштабирование системы и совместную разработку.

Собственно я не так выразился. Имелось ввиду именно ускорение разработки.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Dec 23 2010, 21:32
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Думается, что если вы в первый раз пользуетесь RTOS, то ускорения разработки вы не получите, а получите ее замедление. Пока не поймете, что к чему и всю специфику RTOS с ее мультизадачностью. Речь может идти о более эффективном решении задачи, хотя это сложно померить в "попугаях".
Go to the top of the page
 
+Quote Post
Shein
сообщение Dec 24 2010, 05:44
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-07
Пользователь №: 25 855



Цитата(Axel @ Dec 22 2010, 11:22) *
Рекомендую - на основе собственного опыта - TNKernel. Бесплатная, прозрачная, с открытыми исходниками. Имеющиеся примеры помогают быстро освоить. Подводные камни - только традиционные, типа инверсии приоритетов. Я доволен...

Почитал, выглядит не плохо.
Такой, возможно глупый, вопрос: возможна ли отладка в TNKernel при использовании Keil+ULINK(JTAG)? RTX, насколько я понял, поддерживается отладчиком Keil достаточно хорошо, наглядно отображая состояние системы.

Цитата(sergeeff @ Dec 24 2010, 02:32) *
Думается, что если вы в первый раз пользуетесь RTOS, то ускорения разработки вы не получите, а получите ее замедление. Пока не поймете, что к чему и всю специфику RTOS с ее мультизадачностью. Речь может идти о более эффективном решении задачи, хотя это сложно померить в "попугаях".

Пусть так. Надо же когда-то начинать sm.gif Да и задача, по моему разумению, очень уж красиво ложится на многопоточную реализацию. Самому "изобретать велосипед" тоже вряд ли быстро получится.
Go to the top of the page
 
+Quote Post
Сулейман
сообщение Jan 9 2011, 06:43
Сообщение #10





Группа: Новичок
Сообщений: 3
Регистрация: 25-08-10
Пользователь №: 59 109



Прошу прощения что влезаю, но тема кажется подходящая.
У меня такой вопрос, можно ли под какую-нибудь RTOS написать приложение изначально в проекте не присутствующее, но которое можно будет подгрузить, не переписывая при этом файлы системы. То есть аналог .exe в Windows.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Jan 9 2011, 07:11
Сообщение #11


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(Сулейман @ Jan 9 2011, 11:43) *
Прошу прощения что влезаю, но тема кажется подходящая.
У меня такой вопрос, можно ли под какую-нибудь RTOS написать приложение изначально в проекте не присутствующее, но которое можно будет подгрузить, не переписывая при этом файлы системы. То есть аналог .exe в Windows.

Конечно - решаете вопрос динамического связывания (линковки) и все получится. То есть - нужно придумать как из загруженного модуля вызывать сервисы системы, код которых расположен в незагружаемой части. Тут вариантов много - использовать сервисное прерывание (просто, перемещаемо, но быстродействие хуже) или вызывать функции по определенным адресам (переходники в таблице по заранее известному адресу, чтобы не зависеть от сборки/версии сервисов), патчить (настраивать) загруженный модуль непосредственно на адреса вызова нужных функций - сложнее, но вообще скорость не упадет.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 9 2011, 13:47
Сообщение #12


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(VslavX @ Jan 9 2011, 12:11) *
Конечно - решаете вопрос динамического связывания (линковки) и ...


К чему воздух молотить? wink.gif

Короче нет маленьких и понятных RTOS с такой фичей.
Нужна виртуализация памяти, а это уже только в толстых осях.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Jan 9 2011, 14:47
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(AlexandrY @ Jan 9 2011, 19:47) *
Короче нет маленьких и понятных RTOS с такой фичей.
Нужна виртуализация памяти, а это уже только в толстых осях.


http://prex.sourceforge.net/

Цитата
Prex has the following features:

* Task & Thread Control: preemptive priority scheduling with 256 priority levels
* Memory Management: memory protection, virtual address mapping, shared memory, MMU or MMU-less configuration
* IPC: object name space, synchronous message passing between threads
* Exception: fault trapping, framework for POSIX signal emulation
* Synchronization: semaphores, condition variables, and mutexes with priority inheritance
* Timers: sleep timers, one-shot or periodic timers
* Interrupt: nested interrupt service routines, and prioritized interrupt service threads
* Device I/O: minimum synchronous I/O interface, DPC (Deferred Procedure Call)
* Security: task capability, pathname-based access control, I/O access permission.
* Real-time: low interrupt latency, high resolution timers and scheduling priority control
* Power Management: power policy, idle thread, DVS (Dynamic Voltage Scaling)
* Debugging Facility: event logging, kernel dump, GDB remote debug
* File Systems: multi-threaded, VFS framework, buffer cache, ramfs, fatfs, arfs, etc.
* POSIX Emulation: pid, fork, exec, file I/O, signal, pipe, tty, pthread, etc.
* Libc: C library fully optimized to generate a small executable file
* CmdBox: a small binary that includes tiny versions of many UNIX utilities.
* Networking: (plan) TCP/IP stack, BSD socket interface

Prex minimum hardware requirements are as follows:

* Processor: 32-bit Processor (x86, ARM, PowerPC)
* Memory: 256KB of RAM (Kernel < 25k bytes)
* Timer: programmable interval timer


Не такая уж и большая sm.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 9 2011, 17:46
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(sasamy @ Jan 9 2011, 19:47) *
Не такая уж и большая sm.gif


Да, для лохотрона много не надо. cranky.gif
Go to the top of the page
 
+Quote Post
SII
сообщение Jan 9 2011, 20:03
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Цитата(AlexandrY @ Jan 9 2011, 19:47) *
К чему воздух молотить? wink.gif

Короче нет маленьких и понятных RTOS с такой фичей.
Нужна виртуализация памяти, а это уже только в толстых осях.


Когда-то были, но не о том речь. Виртуализация памяти для решения этой задачи не требуется совершенно, а вот динамическое распределение свободного пространства ОЗУ, умение грузить в него код из внешнего источника, настраивать на адрес загрузки -- нужно. Что из этого реализовано в упомянутых здесь системах, понятия не имею -- дела не имел, однако подозреваю, что либо вообще ничего, либо очень мало. В общем, задача вполне решаемая, но не слишком быстро (и, естественно, требует хорошего понимания базовой оси, формата загружаемых файлов и т.п.).
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01625 секунд с 7
ELECTRONIX ©2004-2016