-
- Резюмирую. Влупил свежескачанный FreeRTOS 8.0.1 и все пошло как часы. Откуда я взял эту кривизну с которой работал не могу найти. Ну не сам же я сочинил таку хрень. Проверил все файло разница только в task.c короче, надо пользоваться Содavr(54 знак., 07.07.2014 20:43, )
- Ну вы вроде бы взрослый дядя, должны бы знать уже это. - VVB(02.08.2014 20:39)
- Порт платформы 128 -> - framer(07.07.2014 13:42, ссылка)
- Скачать не дают без регистрации, жлобы... - Apтём(07.07.2014 14:17)
- -> - framer(07.07.2014 14:19, ссылка)
- Что-то не собирается... - Apтём(07.07.2014 14:38)
- Спасибо. - Apтём(07.07.2014 14:22)
- -> - framer(07.07.2014 14:19, ссылка)
- У IAR регистры подругому сохраняются причем в ассемблерногм файле. Специфика компилятора. - Codavr(07.07.2014 14:02)
- Скачать не дают без регистрации, жлобы... - Apтём(07.07.2014 14:17)
- А есть ли в природе FREErtos-порт под ATmega128 или вообще под AVR c флешем больше 64К? Там, как я понимаю по сравнению с mega323 лопатить и лопатить исходники. И RAMPZ и настройки USART... А там еще новые, с 3 байтовыми PC. Короче, геморройно Petrovich(59 знак., 07.07.2014 13:14, )
- У меня получилось не слишком много изменений для 128. Делал для 8 версии freeRtos так: Юра(1433 знак., 09.07.2014 20:12, )
- Для AT90CAN128 заменил Codavr(840 знак., 07.07.2014 13:25 - 13:30)
- Не, ну это мало. Это для m64 может пойдет. А для m128++ надо по крайней мере еще в port.c, portmacro менять сохранение-восстановление контекста и инициализацию стека. - Petrovich(07.07.2014 13:37, )
- Можно и так делать, но лучше по-другому. Apтём(447 знак., 07.07.2014 13:33)
- Пока не хочу сильно отклонятся от генеральной линии партии и разработчиков официальных портов. - Codavr(07.07.2014 16:40)
- Хозяин - барин. Apтём(269 знак., 07.07.2014 16:54)
- Возможно. Когда все заработает на неудачном решении, тогда буду свои прибабахи вчинять. Но за полезный совет спасобо. Codavr(1544 знак., 07.07.2014 16:58 - 17:09)
- Не согласен я... Apтём(1590 знак., 07.07.2014 17:42)
- Возможно. Когда все заработает на неудачном решении, тогда буду свои прибабахи вчинять. Но за полезный совет спасобо. Codavr(1544 знак., 07.07.2014 16:58 - 17:09)
- Хозяин - барин. Apтём(269 знак., 07.07.2014 16:54)
- Пока не хочу сильно отклонятся от генеральной линии партии и разработчиков официальных портов. - Codavr(07.07.2014 16:40)
- если место зацикливания в vListInsert там есть комментарий. Внимательно проверьте по пунктам. framer(994 знак., 07.07.2014 08:53)
- Я пока загасил #define configCHECK_FOR_STACK_OVERFLOW 0 потому что при компиляции при вызове Codavr(904 знак., 07.07.2014 09:54)
- Предупреждения не критические. Но зачем отключать контроль стека? В FreeRtos стек необходим для каждой задачи. Размер стека зависит от глубины вложенности функций и количества локальных переменных. Попутный вопрос сколько стека выделяете для framer(82 знак., 07.07.2014 11:44, ссылка)
- Ну для пробного шара я поставил configMINIMAL_STACK_SIZE 70. Ну и задаче столько же выделил, ибо задача единственная и простая дальше некуда Codavr(165 знак., 07.07.2014 12:07)
- Тады со стеком все должно быть ОК. Вообще-то если где в FreeRtos и есть баги то надо искать в порте платформы и конфигурации. А какой метод выделения памяти? Если heap_3.c тогда это врапер системных (malloc, free) в этом случае может надо чего framer(30 знак., 07.07.2014 12:28 - 12:34)
- Мне тоже не верится в ошибку FreeRTOS, но что вот тут делает xlXList Codavr(3971 знак., 07.07.2014 12:47 - 12:51)
- Посмотри туда --> Vit(1013 знак., 07.07.2014 14:22, ссылка, ссылка)
- Ну вот блин, адекватный код, а чего это они в 8.0.1 тогда нахуевертили. - Codavr(07.07.2014 14:31)
- вероятно ругань при кастинге с volatile неуклюже обходили - Vit(07.07.2014 14:33)
- Епта. Это как!!! Codavr(3419 знак., 07.07.2014 14:39 - 14:43)
- Твоё кунфу круче моего кунфу(С):))) У япошки хоть и 8.0, но заточка на AVR - может и полезное чего найдется - Vit(07.07.2014 14:42 - 14:51, ссылка)
- Спасибо, гляну. А, это уже видел. - Codavr(07.07.2014 14:55)
- Твоё кунфу круче моего кунфу(С):))) У япошки хоть и 8.0, но заточка на AVR - может и полезное чего найдется - Vit(07.07.2014 14:42 - 14:51, ссылка)
- Епта. Это как!!! Codavr(3419 знак., 07.07.2014 14:39 - 14:43)
- вероятно ругань при кастинге с volatile неуклюже обходили - Vit(07.07.2014 14:33)
- Ну вот блин, адекватный код, а чего это они в 8.0.1 тогда нахуевертили. - Codavr(07.07.2014 14:31)
- Посмотри туда --> Vit(1013 знак., 07.07.2014 14:22, ссылка, ссылка)
- А вот нифига. Поставил configCHECK_FOR_STACK_OVERFLOW 2 и тут же попал в vApplicationStackOverflowHook. Сделал configMINIMAL_STACK_SIZE=200 и уже не попадаю. Менеджер heap_2.c юзаю. - Codavr(07.07.2014 12:41 - 12:44)
- В примере AVR_ATMega323_IAR используется heap_1.c .Может попробуйте заюзать heap_1.c с параметрами как в примере framer(130 знак., 07.07.2014 13:35)
- Попробую и так, спасибо. - Codavr(07.07.2014 16:28)
- Для heap_2.c надо вот это задать configTOTAL_HEAP_SIZE. - framer(07.07.2014 12:54)
- У меня столько стоит ( 2 * 1024 ) - Codavr(07.07.2014 13:00)
- В примере AVR_ATMega323_IAR используется heap_1.c .Может попробуйте заюзать heap_1.c с параметрами как в примере framer(130 знак., 07.07.2014 13:35)
- Мне тоже не верится в ошибку FreeRTOS, но что вот тут делает xlXList Codavr(3971 знак., 07.07.2014 12:47 - 12:51)
- Тады со стеком все должно быть ОК. Вообще-то если где в FreeRtos и есть баги то надо искать в порте платформы и конфигурации. А какой метод выделения памяти? Если heap_3.c тогда это врапер системных (malloc, free) в этом случае может надо чего framer(30 знак., 07.07.2014 12:28 - 12:34)
- Ну для пробного шара я поставил configMINIMAL_STACK_SIZE 70. Ну и задаче столько же выделил, ибо задача единственная и простая дальше некуда Codavr(165 знак., 07.07.2014 12:07)
- просто ругается, мол, неопределенное поведение - для volatile переменных не определен порядок обращения. к примеру, если для volatile zzz выполнить zzz++, то если в каком-нибудь обработчике zzz может измениться, то ХЗ что оно насчитает. или пара Vit(91 знак., 07.07.2014 10:25)
- Ну в этом случае пофик. В игнор тогда. - Codavr(07.07.2014 10:29)
- Предупреждения не критические. Но зачем отключать контроль стека? В FreeRtos стек необходим для каждой задачи. Размер стека зависит от глубины вложенности функций и количества локальных переменных. Попутный вопрос сколько стека выделяете для framer(82 знак., 07.07.2014 11:44, ссылка)
- Я пока загасил #define configCHECK_FOR_STACK_OVERFLOW 0 потому что при компиляции при вызове Codavr(904 знак., 07.07.2014 09:54)
- а pxCurrentTCB это случаем не нечто получаемое из списка задач? - Vit(07.07.2014 08:06)
- pxCurrentTCB это хендл задачи. Указывает на мою задачу в которой был вызван xTaskDelay. С ним все в порядке. - Codavr(07.07.2014 08:24)
- врубился вроде - текущую в список отложенных. а xlXList и xliXListItem могут быть на стеке? - Vit(07.07.2014 10:01)
- Лежат в куче компилера, но похоже в стеке FreeRTOS. Codavr(1119 знак., 07.07.2014 10:23 - 10:27)
- если на стеке задачи, то не в курсе, допустимо ли такое. - Vit(07.07.2014 10:28)
- Вот такие вот дела. Это что же получается во FreeRTOS косяк! Codavr(226 знак., 07.07.2014 11:07 - 11:16)
- если на стеке задачи, то не в курсе, допустимо ли такое. - Vit(07.07.2014 10:28)
- Не думаю. Передаются указатели. Но проверю конечно. Там ваще интересная вещь. После каждого шага дебаггер вопит Codavr(774 знак., 07.07.2014 10:09)
- Что такого иньересного? Видимо у отладчика есть функция контроля стеков, а каждая задача со своим стеком работает. Вот отладчик и вопит не поделу. - Apтём(07.07.2014 10:55)
- Напрягает. - Codavr(07.07.2014 11:17)
- Может оно отключается где-нибудь? - Apтём(07.07.2014 11:23)
- ХЗ. Пока не до этого. Принял как данность. - Codavr(07.07.2014 11:23)
- Может оно отключается где-нибудь? - Apтём(07.07.2014 11:23)
- Напрягает. - Codavr(07.07.2014 11:17)
- Что такого иньересного? Видимо у отладчика есть функция контроля стеков, а каждая задача со своим стеком работает. Вот отладчик и вопит не поделу. - Apтём(07.07.2014 10:55)
- Лежат в куче компилера, но похоже в стеке FreeRTOS. Codavr(1119 знак., 07.07.2014 10:23 - 10:27)
- врубился вроде - текущую в список отложенных. а xlXList и xliXListItem могут быть на стеке? - Vit(07.07.2014 10:01)
- pxCurrentTCB это хендл задачи. Указывает на мою задачу в которой был вызван xTaskDelay. С ним все в порядке. - Codavr(07.07.2014 08:24)
- Резюмирую. Влупил свежескачанный FreeRTOS 8.0.1 и все пошло как часы. Откуда я взял эту кривизну с которой работал не могу найти. Ну не сам же я сочинил таку хрень. Проверил все файло разница только в task.c короче, надо пользоваться Содavr(54 знак., 07.07.2014 20:43, )