16+
Понедельник
21 мая
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры AVR

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Codavr  (07.07.2014 02:35 - 07.07.2014 02:38, просмотров: 15324)
У меня засада с FreeRTOS. Забабахал порт на AT90CAN128, ну точнее подправил ихний порт для ATMega323 на IAR. Сляпал мигалку светодиодом на попроб. И тут такое дело, светодиод включается а дальше хренушки. Таймер щелкает, прерывания идут, системные 
тики щелкают, а задача после вызова xTaskDelay не просыпается. Локализовал место где происходит косяк. В момент проверки listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE pxDelayedTaskList->uxNumberOfItems = 0x00 программа идет по ветке как будто бы нет задержаных задач и поэтому не вызывается код который должен разбудить задержаную задачу. Макрос определен как #define listLIST_IS_EMPTY( pxList ) ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ) В программе одна задача уже должна быть в списке В список она вносится вот этим куском xList xlXList; xlXList = *((xList *) pxDelayedTaskList); xliXListItem = *((xListItem *) &( pxCurrentTCB->xGenericListItem )); vListInsert( &xlXList, &xliXListItem); где typedef struct xLIST { configLIST_VOLATILE UBaseType_t uxNumberOfItems; блабла } xList; void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) { блаблабла и в самом конце ( pxList->uxNumberOfItems )++; } Как я понимаю по замыслу pxDelayedTaskList->uxNumberOfItems должно быть 0x01 после выполнения vListInsert, а оно остается 0x00. Шозахрень?
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVIII