Jump to content

    

Подскажите как корректно настроить отладку через St-Link в Keil

Разбираюсь с отладочной платой stm32f4discovery. Столкнулся с некоторыми проблемами при отладке через StLink.

 

Проблема 1:

Настроил вывод через printf() в debug port, но периодически информация перестает выводится в консоль, перезагрузка МК и перепрошивка не помогает. Начинает работать только после переподключения USB провода к порту STLink-а.

 

Проблема 2:

Время от времени во время отладки начинает происходить какая то ахинея, то в пошаговом режиме может перепрыгнуть через несколько строк, то программа в железе выполняется, а Keil показывает что остановлена.

 

Во вложении скрины настроек STLink.

post-72429-1358716864_thumb.png

post-72429-1358716872_thumb.png

post-72429-1358716877_thumb.png

post-72429-1358716880_thumb.png

Share this post


Link to post
Share on other sites

Уровень оптимизации при отладке надо в 0 ставить. Тогда прыгать не будет.

Share this post


Link to post
Share on other sites

А остановленное ядро еще не означает что остановлена переферия.

Share this post


Link to post
Share on other sites

А из за чего может постоянно сбоить debug printf()? И что означает поле CoreClock на 3 картинке, какое значение там необходимо выставлять?

Share this post


Link to post
Share on other sites
А из за чего может постоянно сбоить debug printf()?

Например от непонимания того, что останавливаясь или приостанавливания ядро, переферия все равно продолжает работать и тот же UART передав байт выставит не только готовность передавать следующий байт, но и флаг, что передатчик пуст ( TC ). А теперь вопрос, как вы обрабатываете TC ? Догадываюсь, что никак.

Share this post


Link to post
Share on other sites
Например от непонимания того, что останавливаясь или приостанавливания ядро, переферия все равно продолжает работать и тот же UART передав байт выставит не только готовность передавать следующий байт, но и флаг, что передатчик пуст ( TC ). А теперь вопрос, как вы обрабатываете TC ? Догадываюсь, что никак.

 

Вы правы никак. Можете подсказать где почитать об этом более подробно.

Share this post


Link to post
Share on other sites
Вы правы никак. Можете подсказать где почитать об этом более подробно.

Я сам не пользуюсь debug printf или как его там. Так что надо просто спросить у народа кто пользуется этим.

Хотя таких может оказаться очень мало, поскольку на мой взгляд, совершенно никому не нужная примочка.

 

 

Share this post


Link to post
Share on other sites

Я по другому не нашел как в Keil при отладке посмотреть значение массивов с текстом.

Share this post


Link to post
Share on other sites
Я по другому не нашел как в Keil при отладке посмотреть значение массивов с текстом.

А Memory Windows? А Watch Windows?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this