Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с DEBUG в Keil
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
backa
Добрый день - выручите - бьюсь уже несколько дней подряд в пустую....
вывод через прямую загрузку в THR работает а как только набираю просто стандартные функции printf ("Hello world") или putchar() - зависает и всё
инициализацию делаю вроде верно - скорость, разрешение DBGU, разрешение вывода через пины PA,
Подозреваю что надо прописать для работы printf - а что не найду ...
sdtio.h подключена....
Подскажите что в настройках нового создаваемого проекта в кейле надо указать что-бы работали эти функции ....
Образцов-исходников много но все для яра или ГНУ - в яре пробовал - всё работает как часы - взял за образец и попробовал тоже самое сделать в кейле - результат - как только доходит до стоки printf - всё виснет....
aaarrr
В примерах Retarget.c посмотрите.
Nikitoc
Да, и еще один подводный камень: printf требует большого объема USR_Stack_Size. Я выделил 0x2000 и только тогда заработало. До этого вылетало то ли в Data_abort, то ли в Prefetch - не помню уже.
backa
Цитата(aaarrr @ Mar 22 2010, 13:02) *
В примерах Retarget.c посмотрите.

да - я уже немного "просвятился" по поводу этого файла - он у меня не подключен в проекте - может в этом и есть косяк ?
но во всех примерах его содержимое одинаково - т.е. я так понимаю если его подключить без всяких правок в проект то printf начнёт наконец выводить в DBGU - который настроен у мну правильно ( исходя что прямое заливание в THR даёт положительный результат) ?
Попробую вечером - буду надеяться что всё будет работать - а то вся работа встала из-за ентого "принта"....

Цитата(Nikitoc @ Mar 22 2010, 13:34) *
Да, и еще один подводный камень: printf требует большого объема USR_Stack_Size. Я выделил 0x2000 и только тогда заработало. До этого вылетало то ли в Data_abort, то ли в Prefetch - не помню уже.


спасибо за ценное замечание про стэк - я в эту строну вообще не смотрел ...
буду пробовать....обязательно отпишусь - я думаю на эти "грабли" не я один наступил - будет всем начинающимся армоводам полезно
aaarrr
Цитата(backa @ Mar 22 2010, 12:35) *
...я так понимаю если его подключить без всяких правок в проект то printf начнёт наконец выводить в DBGU - который настроен у мну правильно ( исходя что прямое заливание в THR даёт положительный результат) ?

Нет, естественно - он знать ничего не знает ни о каком DBGU. Нужно будет прописать в fputc вызов процедуры типа "плюнуть байт в DBGU".

Цитата(Nikitoc @ Mar 22 2010, 12:34) *
Да, и еще один подводный камень: printf требует большого объема USR_Stack_Size. Я выделил 0x2000 и только тогда заработало. До этого вылетало то ли в Data_abort, то ли в Prefetch - не помню уже.

После не значит вследствие. Не может printf так дико расходовать стек.
backa
Цитата(aaarrr @ Mar 22 2010, 12:45) *
Нет, естественно - он знать ничего не знает ни о каком DBGU. Нужно будет прописать в fputc вызов процедуры типа "плюнуть байт в DBGU".

Ок - буду смотреть как енто делаеться в рабочих проектах
а Вы не поделитесь образцом как "прописать" target.c правильно для работы принтф ? Не сочтите за наглось !!!
aaarrr
Посмотрите в любом проекте типа "Hello".
backa
ok
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.