|
RTOS для ARM7, какую выбрать? Отзывы и мнения., Рассматривается вариант RTX от Keil или есть что-то интересней/лучше? |
|
|
|
Dec 21 2010, 04:43
|
Участник

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

|
Доброо времени суток. Вопрос отчасти банальный, но все же...
Запускается проект на ARM7 AT91SAM7X___. Задача - специализированное устройство для передачи данных, прием данных по нескольким стыкам UART, USB, CAN, обработка и передача далее по линии связи.
Рассматривается вопрос применения RTX kernel от Keil'а. Кто имеет опыт работы с этой илидругими RTOS? какие впечатления? Подводные камни? Время на освоение?
Возможно есть системы более подходящие для подобной задачи? Предполагаю, что сколько людей столько и мнений и все же...
Ранее подобные проекты делались полносью самостоятельно. Сейчас сроки поджимают, да и интересно даст ли применение RTOS упрощение реализации?
|
|
|
|
|
 |
Ответов
|
Jun 14 2011, 09:41
|
Местный
  
Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282

|
Цитата(Аматер @ Jun 14 2011, 11:16)  А я на свою голову на RTX заложился, теперь думаю может все-таки перескочить на что нибудь еще. Проблемы начались с Ethernet, а исходников нет. Это конечно не к операционке, а библиотеке относится, но тем не менее. А какой у вас поц.? У меня был LM3S8972, там вместе с китом были дрова для Ethrnet-a и пример для RL-TCPnet. Нормально запустился и работал. Я на его основе сделал вполне неплохое приложение. Если надо - выложу.
|
|
|
|
|
Jun 14 2011, 12:34
|

Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616

|
Цитата(evg123 @ Jun 14 2011, 13:41)  А какой у вас поц.? У меня был LM3S8972, там вместе с китом были дрова для Ethrnet-a и пример для RL-TCPnet. Нормально запустился и работал. Я на его основе сделал вполне неплохое приложение. Если надо - выложу. У меня LPC1766 использую RL-TCPnet. Соединение работает, но закрывается через время тайм аута. У вас такого не было? У меня код такой - CODE U16 tcp_callback (U8 soc, U8 evt, U8 *ptr, U16 par) { int i=0;
unsigned short ln; if (soc != socket_tcp) { return (0); }
switch (evt) { case TCP_EVT_DATA: /* TCP data frame has arrived, data is located at *par1, */ /* data length is par2. Allocate buffer to send reply. */ pEther=EtherBuf; //memcpy(EtherBufIn,(char*)ptr,par); for(i=0;i<par;i++) { EtherBufIn[EthBufOffset]=(char)ptr[i]; if(EtherBufIn[EthBufOffset]==0xd || EtherBufIn[EthBufOffset]==0) { EtherBufIn[EthBufOffset]=0; ExecuteCmd(EtherBufIn,0); EthBufOffset = 0; } else { EthBufOffset++; if(EthBufOffset>=sizeof(EtherBufIn)) EthBufOffset=0; } } ln = pEther-EtherBuf; SendEther = tcp_get_buf(ln); memcpy(SendEther,EtherBuf,ln); tcp_send(socket_tcp, SendEther, ln); Cmd = 0; break; case TCP_EVT_ABORT: /* Connection was aborted */ break; case TCP_EVT_CONREQ: /* Remote peer requested connect, accept it */ return (1); case TCP_EVT_CONNECT: /* The TCP socket is connected */ return (1); } return (0); }
__task void Ether() { os_itv_set(RL_1MS*20); init_TcpNet();
// Initialize TCP Socket and start listening socket_tcp = tcp_get_socket (TCP_TYPE_SERVER, 0, 30, tcp_callback); // | TCP_TYPE_KEEP_ALIVE if (socket_tcp != 0) tcp_listen(socket_tcp, PORT_NUM);
while (1) { os_itv_wait(); // wait timer event timer_tick(); main_TcpNet(); } }
Если не сложно подскажите что не так или как у вас эта часть сделана. Кайл никаких вразумительных ответов не дает, если ставлю TCP_TYPE_KEEP_ALIVE, вообще не соединяется.
|
|
|
|
|
Jun 15 2011, 08:29
|
Местный
  
Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282

|
Цитата(Аматер @ Jun 14 2011, 16:34)  Если не сложно подскажите... Я в call-back-e устанавливаю сигнал, а потом в задаче читаю данные. Вот demo-проектик.
Прикрепленные файлы
eth.zip ( 62.71 килобайт )
Кол-во скачиваний: 40
|
|
|
|
Сообщений в этой теме
Shein RTOS для ARM7, какую выбрать? Отзывы и мнения. Dec 21 2010, 04:43 Nixon Используйте RTX. Никаких проблем кроме необходимос... Dec 21 2010, 05:57 Shein Цитата(Nixon @ Dec 21 2010, 10:57) Исполь... Dec 23 2010, 13:22 Axel Рекомендую - на основе собственного опыта - TNKern... Dec 22 2010, 06:22 VslavX Цитата(Axel @ Dec 22 2010, 11:22) Рекомен... Dec 22 2010, 09:02 Shein Цитата(Axel @ Dec 22 2010, 11:22) Рекомен... Dec 24 2010, 05:44 prgjz Я тоже TNKernel предпочитаю из за свободных исходн... Dec 22 2010, 07:42 alman Цитата(Shein @ Dec 21 2010, 10:43) Запуск... Dec 22 2010, 10:50 sergeeff Думается, что если вы в первый раз пользуетесь RTO... Dec 23 2010, 21:32 Сулейман Прошу прощения что влезаю, но тема кажется подходя... Jan 9 2011, 06:43 VslavX Цитата(Сулейман @ Jan 9 2011, 11:43) Прош... Jan 9 2011, 07:11  AlexandrY Цитата(VslavX @ Jan 9 2011, 12:11) Конечн... Jan 9 2011, 13:47   sasamy Цитата(AlexandrY @ Jan 9 2011, 19:47) Кор... Jan 9 2011, 14:47    AlexandrY Цитата(sasamy @ Jan 9 2011, 19:47) Не так... Jan 9 2011, 17:46   SII Цитата(AlexandrY @ Jan 9 2011, 19:47) К ч... Jan 9 2011, 20:03   VslavX Цитата(AlexandrY @ Jan 9 2011, 18:47) Кор... Jan 9 2011, 20:10    sasamy Цитата(VslavX @ Jan 10 2011, 02:10) А ucL... Jan 9 2011, 20:42     AlexandrY Цитата(sasamy @ Jan 10 2011, 01:42) prex ... Jan 10 2011, 06:43      VslavX Цитата(AlexandrY @ Jan 10 2011, 11:43) Та... Jan 10 2011, 07:00       sasamy Цитата(VslavX @ Jan 10 2011, 13:00) Это т... Jan 11 2011, 21:30 kikos Цитата(Сулейман @ Jan 9 2011, 10:43) Прош... May 16 2011, 08:47 Major Вопрос из разряда TNKernel vs RTX
В железке на Cro... Mar 28 2011, 09:20 Major Осознал, был не прав. Если PRIGROUP=0, то все биты... Mar 28 2011, 17:00    Аматер Цитата(evg123 @ Jun 15 2011, 11:29) Я в c... Jun 16 2011, 12:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|