tonyk_av 45 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Коллеги! Давно не работал с микроконтроллерами, но вот пришлось... Последним был ADuC845 на ядре MCS-51. Сейчас пришлось осваивать LPC2103. Учитывая то, что мне предстоит дальше, решил сразу начать работу под FreeRTOS. Эту штуку использовал раньше под AVR и остался вполне доволен. Для 51-ых программировал под Keil, решил и тут воспользоваться им. И тут началось... С архитектурой ARM7 пока знаком плохо, поэтому не могу понять причину вылета в DAbt_Handler при вызове vPortStartFirstTask(). Дайте пинка, чтоб я смог взлететь! Растолкуйте, в чём причина ошибки и как её исправить. Проект во вложении. 8DI.ZIP Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 14 апреля, 2016 Опубликовано 14 апреля, 2016 · Жалоба Смотрите что Вы за галочки понаставили в проекте. Судя по тому, что Вы лихо потребовали в конфигурации RTOS 24K RAM только на хип в чипе с 8K RAM, и Вам ее "дали", то конфигурация линкера у Вас от фонаря. Ну нету столько памяти в этом чипе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Проверил. Было #define configTOTAL_HEAP_SIZE ( ( size_t ) 4 * 1024 ) - просил 16К Стало #define configTOTAL_HEAP_SIZE ( ( size_t ) 1 * 1024 ) - прошу 4К Раскладка памяти: Результат тот же. Куда рыть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Куда рыть? Рыть туда, где можете получить ответ как это Ваш проект затребовавший дивное количество памяти собирался линкером без воплей о фатальной ошибке. После этого смотреть на то, какие размеры стеков заданы. Тут http://electronix.ru/forum/index.php?showt...t&p=1418769 , кстати, случайно оказался как раз конфигурационный файл именно под LPC2103. В нем есть свои нюансы связанные с отличиями в реализации RTOS, но для общего обзора годится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Я же поправил #define configTOTAL_HEAP_SIZE ( ( size_t ) 1 * 1024 ) - прошу 4К Или это не 4К? Посмотрел ссылку. Там конфиг для gcc, а у меня Keil с Армовским компилятором. Есть и проект FreeRTOS под gcc, но там Startup сильно отличается от того, что в Keil. Я потому и прошу помощи, что изучать ассемблер ради поиска лишнего нолика в каком-то файле для меня на данном этапе- непозволительная роскошь. Видите ошибку - укажите на неё, а указывать менторским стилем на 24К без указания на то, откуда взята эта цифра, простите, моветон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба ... Я потому и прошу помощи, что изучать ассемблер ради поиска лишнего нолика в каком-то файле для меня на данном этапе- непозволительная роскошь. Видите ошибку - укажите на неё, а указывать менторским стилем на 24К без указания на то, откуда взята эта цифра, простите, моветон. с Я бы на Вашем месте не претензии начал предъявлять, а начал бы с чего-нибудь попроще. Вы постом ранее спросили "куда рыть" и это был еще нормальный пост по сравнению с последующим (я подумал начнете осторожно спрашивать/интересоваться далее и т.п., но нет сразу пошли претензии). Вам ответ - ройте в сторону небольшого проекта типа "Hello world". Изучите досконально в нем все вопросы по рисунку 4, что здесь привели, а потом уже переходите на более сложный проект. И претензии не надо предъявлять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 45 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Я претензий ни кому не предъявляю. Вижу, что здесь куча умников, а не знатоков, которые могут поправить ошибку человека. Буду искать помощи в другом месте. Тема закрыта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 15 апреля, 2016 Опубликовано 15 апреля, 2016 · Жалоба Я же поправил Вы можете поправлять что и где угодно. Но, повторю последний раз - проблемы начинаются уже РАНЬШЕ, ибо первоначальный вариант просто не имел никакого права вообще собираться. Вот с выяснения причин почему он вообще собрался и начинайте. Сделали Вы что-то для этого в вашем посте "поправил" не говорится ничего. Видите ошибку - укажите на неё, а указывать менторским стилем на 24К без указания на то, откуда взята эта цифра, простите, моветон. Взята, естественно, из выложенного Вами проекта: #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) ) Посмотрел ссылку. Там конфиг для gcc, а у меня Keil с Армовским компилятором Там конфиг не под GCC, но под binutils. А приводился он для того, что бы дать Вам представление о том, что есть еще много разных НЕОБХОДИМЫХ дефиниций размеров областей RAM. #define configTOTAL_HEAP_SIZE ( ( size_t ) 1 * 1024 ) - прошу 4К Или это не 4К? Вы, конечно, не поверите, но это таки не 4K. Начните с арифметики и языка Си, ибо size_t это не sizeof, или что там Вам подумалось еще. здесь куча умников, а не знатоков, которые могут поправить ошибку человека. Буду искать помощи в другом месте. Баба с возу - кобыле легче. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться