Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Одновременное использование RL-RTX и RL-FlashFS (LPC2478) в среде Keil.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Sanya_kv
Столкнулся с проблемой одновременного использования в средеKeil библиотек RL-RTX и RL-FlashFS на ARM LPC2478. По отдельности обе работают нормально, но при одновременном использовании программа уходит в прерывание DAbt_Addr при вызове функции finit();. Занимаюсь сексом с этой проблемой уже прилично времени. Планирую отказаться от RL-RTX.
Заранее благодарен.
AlexandrY
Цитата(Sanya_kv @ Jan 21 2011, 12:51) *
Столкнулся с проблемой одновременного использования в средеKeil библиотек RL-RTX и RL-FlashFS на ARM LPC2478. По отдельности обе работают нормально, но при одновременном использовании программа уходит в прерывание DAbt_Addr при вызове функции finit();. Занимаюсь сексом с этой проблемой уже прилично времени. Планирую отказаться от RL-RTX.
Заранее благодарен.


Да, это будет потеря для Keil-а wink.gif
Применяю RL-RTX уже более 5-и лет. Чес скажу, в этой категории лучшей операционки не видел.

Пример применения RL-RTX
Artem_Petrik
Цитата(AlexandrY @ Jan 21 2011, 14:44) *

Это тонкий намек на тo, что RL-RTX = uCos II sm.gif ?
AlexandrY
Цитата(Artem_Petrik @ Jan 21 2011, 15:09) *
Это тонкий намек на тo, что RL-RTX = uCos II sm.gif ?


Запарился.
Нет, там только файловая система сделана на базе RL-FlashFS

А примеров RL-RTX полно и в самом Keil-е
ssergy
Цитата(Sanya_kv @ Jan 21 2011, 13:51) *
Столкнулся с проблемой одновременного использования в средеKeil библиотек RL-RTX и RL-FlashFS на ARM LPC2478. По отдельности обе работают нормально, но при одновременном использовании программа уходит в прерывание DAbt_Addr при вызове функции finit();. Занимаюсь сексом с этой проблемой уже прилично времени. Планирую отказаться от RL-RTX.
Заранее благодарен.


A heap инициализирован нужного размера? А retarget.c правильно сконфигурирован? Ну и само собой посмотреть в File_Config.c (на всякий случай).
Sanya_kv
В проекте подключен Retarget.c., Размер Heap = 2048. Режим MicroLib выключен.
Причем, если разместить finit() перед вызовом os_sys_init, то инициализация проходит нормально. Мне это не подходит. Пользователь может менять носители (CDHC). Обнаружил ещё прикол когда баловался с китом, если подключить библиотеки FTP сервера, то finit() проходит нормально из любого места. Отлаживал в ассемблере, зависание происходит при загрузке данных по адресу 0xE59FF018
Сейчас копаюсь с исходниками FlashFS.

Код программы:
Код
__task void task_main (void)
{       
    finit();//Здесь виснет
    os_itv_set(100);
    while(1)
    {
        os_itv_wait ();
    }    
}
int main (void)
{           
    //finit();//Здесь не виснет
    os_sys_init(task_main);
    while (1);
}
Sanya_kv
Кажись накопал.
Значит программа повисает при вызове:
Код
finit()
    -> START_LOCK (int); (Она же-  _mutex_acquire(&_stream_list_lock);)
        -> mutex_rel (*mutex);

Проблема в том, что _stream_list_lock == 0, а так как мы загружаем указатель то программа берёт данные по адресу 0, то есть по адресу сброса 0xE59FF018, со всеми вытекающими последствиями.
К сожалению объявление _stream_list_lock я так и не нашел. Капаю дальше.
Sanya_kv
Нашел проблему. Достаточно в том же файле иметь вызов функции fopen(). С чем связано, так и не понял. Наверное, с чей-то умностью. Ж)
Shein
Возможно не совсем по теме, но отдельную тему создавать не хочется.
А кто-нить может подсказать, есть ли стандартный define задаваемый компилятором когда используется RTX kernel?
Если модуль используется в проекте без RTX и с RTX, чтобы можно было вставить условную компиляцию. Ищу в доках, но пока не нашел. Можно конечно задать в настройках проекта, но может есть что-то стандартное.
Sanya_kv
Например "c:\Keil\ARM\Boards\Keil\MCB2470\RL\TCPnet\Http_demo\";
По теме: В поддержке ответили, что исправят ошибку к следующей версии.
VadimShum
для ST32F107 все работает, какая версия кейла и RTOS?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.