ViKo 1 21 февраля, 2012 Опубликовано 21 февраля, 2012 · Жалоба Пытаюсь перевести проект на RTOS. Сделал из функций 4 задачи, первая создает 3 оставшихся и удаляет себя. Но вопрос где-то еще до того - при вызове этой первой задачи os_sys_init залетаю куда-то в... вот туда, в коде показано. И "висю" там. Видел подобный вопрос в форуме Keil, но в ответ там предлагают обращаться по e-mail. Может быть, ОЗУ не хватает? Этот адрес 0xe000007c - какой-то ITM, Stimulus Port... Что делать? dbg_task_notify: 0x080050BC F04F4260 MOV r2,#0xE0000000 0x080050C0 6FD3 LDR r3,[r2,#0x7C] 0x080050C2 2B00 CMP r3,#0x00 0x080050C4 D0FC BEQ 0x080050C0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 21 февраля, 2012 Опубликовано 21 февраля, 2012 · Жалоба Не включен ли Trace в дебаггере? Не пробовали свести содержимое задач к минимуму: пустой бесконечный цикл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 21 февраля, 2012 Опубликовано 21 февраля, 2012 · Жалоба Не включен ли Trace в дебаггере? Не пробовали свести содержимое задач к минимуму: пустой бесконечный цикл? И включал, и отключал - одинаково. Это, вроде, как os_idle_demon работает. Буду пробовать простейший проект на плате STM32VLDiscovery, там Trace нет. (Раньше на ней экспериментировал, все работало) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 22 февраля, 2012 Опубликовано 22 февраля, 2012 · Жалоба Насколько я понял Trace позволяет передавать информацию в раздел Debugl->OS Support->RTX Kernel->Events. Я прбовал ее включать, но после этого проект перестает работать и в Events ничего не отображается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 28 февраля, 2012 Опубликовано 28 февраля, 2012 · Жалоба Насколько я понял Trace позволяет передавать информацию в раздел Debugl->OS Support->RTX Kernel->Events. Я прбовал ее включать, но после этого проект перестает работать и в Events ничего не отображается. После разных экспериментов по интернет сообщениям (все и не упомнить) получается следующее. Если разрешить в конфигурации RTX "Run in priveleged mode", то программа не вылетает в dbg_task_notify, задачи переключаются (сделал таймаут не бесконечный для проверки). И в Event Viewer я их вижу. Trace Events все отключил (это не события RTX, а события микроконтроллера), но тут можно еще поэкспериментировать, что-то работает совместно, что-то нет. Отладчик - Keil ULINK-ME. И еще, кажется, нужно такую хрень запускать при отладке. Добавить ее в file.ini, и использовать его при отладке. Показываю часть файла. /*------------------------------------------------------------------- * Define the function to enable the trace port *-----------------------------------------------------------------*/ FUNC void EnableTPIU(void) { _WDWORD(0xE0042004, 0x00000020); // Set asynchronuous communication via DBGMCU_CR } G , main /*------------------------------------------------------------------- * Invoke the function at debugger startup *-----------------------------------------------------------------*/ EnableTPIU(); Правда, моя программа так и не хочет работать, как нужно. Буду разбираться с задачами дальше. P.S. А еще все мои задачи в Event Viewer отображаются как <Error> (2), <Error> (3), <Error> (4) P.P.S. Перезапустил отладку - названия появились. Чудо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Drunya 0 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба Подскажите, Event Viewer работает только с U(J)LINK'ом, или с ST-Link тоже может? Разбираю простенький пример на STM32VLDiscovery, соответственно отладчик - встроенный ST-Link. Так в Event Viewer'е нет ничего, хотя RTX Tasks and System работает, задачи отображаются. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 5 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба Через встроенный ST-Link работать не будет. Для EventViewer еще нужен проводок SWO. C внешним ST-Link в режиме SWD и полным разъемом JTAG работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба Пользуюсь ST-LINK, который на STMDISCOVERYF4. Там на 6-ногий разъем выведен и сигнал SWO. Вижу переключение задач в RTX. При инициализации отладки в ini файле запускается строчка _WDWORD(0xE0042004, 0x00000027); // Set DBGMCU_CR P.S. Всего на своей плате для программирования-отладки имею 3 контакта + земля. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться