VslavX 0 9 января, 2011 Опубликовано 9 января, 2011 · Жалоба Короче нет маленьких и понятных RTOS с такой фичей. Нужна виртуализация памяти, а это уже только в толстых осях. Динамическая линковка относится к виртуализации памяти как теплое к мягкому :), ну мы то знаем что вероятно имелся ввиду механизм типа Memory-Mapping Unit :). Но он тоже относится к связыванию как сладкое к мягкому :). Сложного в связывании загружаемого модуля любым из упомянутых способов никаких нет. Скажете в MS-DOS тоже маппинг памяти был? Ладно, пример неудачный, там модель памяти x86 сегментно-самобытная. А ucLinux эльфы не грузит? Если уж не охота разбираться с перемещаемым форматом (а перемещаемость-то далеко не всегда и нужна), то можно выполнить статическую линковку (при построении модуля линкером) для фиксированного адреса или вообще писать загружаемый модуль а-ля PIC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 9 января, 2011 Опубликовано 9 января, 2011 · Жалоба А ucLinux эльфы не грузит? prex поддерживает elf relocation и прекрасно работает на arm без mmu, но не знаю почему Александр считает что его все хотят обмануть :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 10 января, 2011 Опубликовано 10 января, 2011 · Жалоба prex поддерживает elf relocation и прекрасно работает на arm без mmu, но не знаю почему Александр считает что его все хотят обмануть :) Да мусор там, чесно повелся на вашу ссылку. Там не функции, а одни затычки. Там не то что elf relocation нет, там даже elf загрузчика нет нормального. А если видели то покажите в каком файле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VslavX 0 10 января, 2011 Опубликовано 10 января, 2011 · Жалоба Там не то что elf relocation нет Это там есть - root/usr/arch/arm/elf_reloc.c А вот саму основную часть загрузчика я пока не нашел :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 11 января, 2011 Опубликовано 11 января, 2011 · Жалоба Это там есть - root/usr/arch/arm/elf_reloc.c А вот саму основную часть загрузчика я пока не нашел :) root/usr/server/exec/exec_elf.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Major 0 28 марта, 2011 Опубликовано 28 марта, 2011 · Жалоба Вопрос из разряда TNKernel vs RTX В железке на Crotex-M3 необходимо использовать вытеснение прерываний. Для RTX написано что PRIGROUP должен быть равен нулю и ни каких гвоздей. А это означает что нет вытеснения. Я правильно понимаю что для TNKernel таких ограничений нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Major 0 28 марта, 2011 Опубликовано 28 марта, 2011 · Жалоба Осознал, был не прав. Если PRIGROUP=0, то все биты задают приоритет вытеснения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kikos 0 16 мая, 2011 Опубликовано 16 мая, 2011 · Жалоба Прошу прощения что влезаю, но тема кажется подходящая. У меня такой вопрос, можно ли под какую-нибудь RTOS написать приложение изначально в проекте не присутствующее, но которое можно будет подгрузить, не переписывая при этом файлы системы. То есть аналог .exe в Windows. VxWorks Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба А я на свою голову на RTX заложился, теперь думаю может все-таки перескочить на что нибудь еще. Проблемы начались с Ethernet, а исходников нет. Это конечно не к операционке, а библиотеке относится, но тем не менее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evg123 0 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба А я на свою голову на RTX заложился, теперь думаю может все-таки перескочить на что нибудь еще. Проблемы начались с Ethernet, а исходников нет. Это конечно не к операционке, а библиотеке относится, но тем не менее. А какой у вас поц.? У меня был LM3S8972, там вместе с китом были дрова для Ethrnet-a и пример для RL-TCPnet. Нормально запустился и работал. Я на его основе сделал вполне неплохое приложение. Если надо - выложу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 14 июня, 2011 Опубликовано 14 июня, 2011 · Жалоба А какой у вас поц.? У меня был LM3S8972, там вместе с китом были дрова для Ethrnet-a и пример для RL-TCPnet. Нормально запустился и работал. Я на его основе сделал вполне неплохое приложение. Если надо - выложу. У меня LPC1766 использую RL-TCPnet. Соединение работает, но закрывается через время тайм аута. У вас такого не было? У меня код такой - 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, вообще не соединяется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evg123 0 15 июня, 2011 Опубликовано 15 июня, 2011 · Жалоба Если не сложно подскажите... Я в call-back-e устанавливаю сигнал, а потом в задаче читаю данные. Вот demo-проектик. eth.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
amater 0 16 июня, 2011 Опубликовано 16 июня, 2011 · Жалоба Я в call-back-e устанавливаю сигнал, а потом в задаче читаю данные. Вот demo-проектик. Спасибо. Главной ошибкой у меня было то что timer_tick вызывал вместе с main_TcpNet. Как только я вынес timer_tick в отдельную задачу вызываемую раз в 100 мс все заработало. Непонятно только почему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться