Перейти к содержанию
    

kosyak©

Свой
  • Постов

    180
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о kosyak©

  • Звание
    Частый гость
    Частый гость
  • День рождения 26.07.1984

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

2 552 просмотра профиля
  1. Не, на указанном Juno SR2 как то не пошло... а вот на eclipse-cpp-luna-SR2 все заработало.
  2. Оптимизации чего? В предложенном мной варианте Eclipse использует компилятор IAR.
  3. Eclipse + Вот этот плагин и уже можно жить. И даже отлаживать, правда только на ограничееном числе отладчиков (J-Link работает, ST-Link, к сожалению, нет). Есть там такая возможность, как импорт проекта из среды IAR - т.е. создаем проект в IAR (добавляем в него необходимые файлы) и при импорте в Eclipse указываем что импортировать необходимо только ссылки на файлы. Имеем два проекта - один IAR, второй Eclipse, которые содержат одни и те же файлы. При необходимости добавить файл в проект - добавляем его в IAR, затем в Eclipse делаем "Update imported project" и добавленный файл появляется в проекте Eclipse. Т.о. пишем код в редакторе Eclipse, отлаживаем здесь же, но если не хватает возможностей отладчика переключаемся на IAR.
  4. Все разобрался. Эта проблема присуща версии 2.6 (про более ранние не знаю). По ссылке лежит как раз версия 2.6 (почему я решил что там 2.7 фик его знает). Ну а в 2.7 такое поведение event'ов было исправлено. Хотелось бы попросить автора чтобы он порт для CortexM4f тоже поправил на версию RTOS 2.7...
  5. А у кого выше приоритет? у "MAIN Run"? Поделись файлом tn_event.c из своей сборки пожалуйста.
  6. Хм... Я использую v2.7 порт для CortexM4. Во вложении файл с тестом. Вывод в TRACE такой [0] - before wait [1] - before wait [2] - before wait before evf set after evf set [0] - after wait Если не сложно не могли бы Вы запустить у себя этот тест. evftest.zip
  7. Попробуйте так. void task(void *p) { int err; for(;;) { unsigned int evflags; err = tn_event_wait(&evftest, 1, TN_EVENT_WCOND_AND, &evflags, TN_WAIT_INFINITE); TRACE("WAIT END %d, %d", (uint32_t)p, err); tn_task_sleep(TN_WAIT_INFINITE); } } void tn_test(void) { //где то в другой задаче tn_event_create(&evftest, TN_EVENT_ATTR_MULTI, 0); // запускаем 4 задачи create_task(task, 1); create_task(task, 2); create_task(task, 3); create_task(task, 4); my_sleep(100); tn_event_set(&evftest, (1<< 0) | (1<< 1) | (1<< 2) | (1<< 3) ); tn_task_sleep(TN_WAIT_INFINITE); }
  8. Это у меня псевдо код. В реале там есть задержка средствами RTOS. Все задачи точно успевают вызвать wait_event. А вот просыпается потом только первая и них. Интересно какое поведение у event в других RTOS?
  9. Не не не. У меня вопрос скорее к RTOS - насколько я понимаю запускаться должны все ожидающие задачи.
  10. void task(p) { for(;;) { unsigned int evflags; if( tn_event_wait(&evftest, 1,TN_EVENT_WCOND_AND, &evflags, TN_WAIT_INFINITE) == TERR_NO_ERR ) { TRACE("WAIT END %d\n", (uint32_t)p); } } } ... ///где то в другой задаче tn_event_create(&evftest, TN_EVENT_ATTR_MULTI, 0); // запускаем 4 задачи create_task(task(0)); create_task(task(1)); create_task(task(2)); create_task(task(3)); tn_event_set(&evftest, 1); for(;;); .... В рабочее состояние перейдет первая созданная задача. Как сделать чтобы все задачи перешли в рабочее состояние?
  11. Пробую запустить порт CortexM4F в своем проекте. При TN_SUPPORT_FPU = 0 и TN_SUPPORT_FPU = 1 работает без проблем. А при TN_SUPPORT_FPU = 2 падает в HardFault при первой же встреченной команде работы с FPU. Компилятор IAR 7202. В чем может бть проблема?
  12. ... FRESULT res; FILINFO fno; DIR dir; int i; char *fn; /* This function is assuming non-Unicode cfg. */ // здесь устанавливается указатель fno.lfname на пользовательский буфер. // fatfs буфер под длинные имена файлов не выделяет. #if _USE_LFN static char lfn[_MAX_LFN + 1]; /* Buffer to store the LFN */ fno.lfname = lfn; fno.lfsize = sizeof lfn; #endif ... res = f_readdir(&dir, &fno); ... #if _USE_LFN fn = *fno.lfname ? fno.lfname : fno.fname; #else fn = fno.fname; #endif ... fno.lfname устанавливает в пользовательском коде.
  13. Там же в примерах все написано.
×
×
  • Создать...