Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil RTX
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
toweroff
Добрый день!

Запущено 7 задач, на всякий случай увеличил максимальное число до 10 в конфиге RTX
В одной задаче устанавливаю флаг для другой... и попадаю в HardFault (возможно, и в MemManage_Handler, компилятор наверняка "B ." у хендлеров в один адрес объединил)
До краша монитор RTX говорит, что со стеками задач все в порядке, все используются не более, чем на 25%
Куда копнуть, что посмотреть?
AlexandrY
Цитата(toweroff @ Dec 19 2012, 13:38) *
Добрый день!

Запущено 7 задач, на всякий случай увеличил максимальное число до 10 в конфиге RTX
В одной задаче устанавливаю флаг для другой... и попадаю в HardFault (возможно, и в MemManage_Handler, компилятор наверняка "B ." у хендлеров в один адрес объединил)
До краша монитор RTX говорит, что со стеками задач все в порядке, все используются не более, чем на 25%
Куда копнуть, что посмотреть?


Адаптер JTAG может быть? Перед этим где нибудь остановку делаете JTAG-ом?
toweroff
Цитата(AlexandrY @ Dec 19 2012, 15:49) *
Адаптер JTAG может быть? Перед этим где нибудь остановку делаете JTAG-ом?

нет, и под отладкой не работает, и в обычном режиме
забыл уточнить проц - LPC1751

Еще инфа
__return_address() в HardFault_Handler говорит 0xFFFFFFF1 blink.gif
ViKo
Задайте ОС привилегированный режим.
toweroff
Цитата(ViKo @ Dec 19 2012, 16:33) *
Задайте ОС привилегированный режим.

не помогло

CallStack такой:

MyTask -> SVC_Handler -> rt_evt_set -> HardFault_Handler
AlexandrY
Цитата(toweroff @ Dec 19 2012, 14:09) *
нет, и под отладкой не работает, и в обычном режиме
забыл уточнить проц - LPC1751

Еще инфа
__return_address() в HardFault_Handler говорит 0xFFFFFFF1 blink.gif


Ну в обычном режиме оно может у вас по жизни не работает.
А вот чем узнаете что "__return_address() в HardFault_Handler говорит 0xFFFFFFF1"?

Так вот JLink без самой последней прошивки у меня так и показывал. Он сам и вызывал этот самый HardFault.
Поменял прошивку и стал видеть реальные ошибки.
toweroff
J-Link Ultra, Firmware Jun 19, 2012
U-LINK2, Firmware V1.42

Оба отладчика показывают одинаковое значение. Могу через JTAG попробовать (сейчас по SWD)
toweroff
Цитата(AlexandrY @ Dec 19 2012, 17:04) *
Так вот JLink без самой последней прошивки у меня так и показывал. Он сам и вызывал этот самый HardFault.
Поменял прошивку и стал видеть реальные ошибки.

я и без JLink в UART этот адрес кидаю. Ничем от показываемого JLink и ULink2 не отличается

Тфу ты sad.gif криворучкин blush.gif
Код
void os_evt_set (
    U16    event_flags,    /* Bit pattern of event flags to set */
    OS_TID task );         /* The task that the events apply to */

а я пользовал как
Код
void os_evt_set (
    OS_TID task,         /* The task that the events apply to */
    U16    event_flags);    /* Bit pattern of event flags to set */

ну и отправлял фиг знает какой задаче фиг знает какой сигнал
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.