Но скорее всего бестолку. Не работает ни один цикл, так что на GPIO_Init() зависнет.
STM32F4 Есть вопросы.
Спасибо, вечером попробую.
Но скорее всего бестолку. Не работает ни один цикл, так что на GPIO_Init() зависнет.
Но скорее всего бестолку. Не работает ни один цикл, так что на GPIO_Init() зависнет.
- Реклама
ВЫ знаете, когда я начал осваивать STM'ы, то столкнулся с той же проблемой. Debug зависла на инициализации тактового генератора, было это в Keil'e. Често говоря, лично мне Киль сразу не понравился (сказывается опыт программирвоания в MVC и NetBeans) гуя никакая, подсказок нету. Трудно начинать. Начал искать способ запустить процссор. Наткнулся на такую вот среду CooCox CoIDE. Она написана на эклипсе, имеет удобную систему настройки, хорошая гуя, подсказки (ctl+space). Мне понравилась сразу. Главное в ней заработало с 1 раза. Может быть и вам стоит опрбовать её?
Может и стоит, только нет линуксовой версии у них 
---
В любом случае хочется докопаться до истины. Сейчас склоняюсь к тому, что линкер неправильно обозначил блоки памяти (например работа идёт с readonly блоками), поэтому ldr читает всегда ноль (хорошо не мусор), и любой цикл непременно зависнет. В любом случае надо проанализировать содержимое R7 на корректность адреса. Вчера об этом не догадался, теперь проверю только вечером.
Пока это единственное логическое объяснение происходящему...
---
В любом случае хочется докопаться до истины. Сейчас склоняюсь к тому, что линкер неправильно обозначил блоки памяти (например работа идёт с readonly блоками), поэтому ldr читает всегда ноль (хорошо не мусор), и любой цикл непременно зависнет. В любом случае надо проанализировать содержимое R7 на корректность адреса. Вчера об этом не догадался, теперь проверю только вечером.
Пока это единственное логическое объяснение происходящему...
Такое решение проблемы - это как при легкой простуде легкое удалятьShapa писал(а):Мне понравилась сразу. Главное в ней заработало с 1 раза. Может быть и вам стоит опрбовать её?
Бросай эту говноигрушку, что ты как маргинальный студент, поставь винду как белый человекploop писал(а):Может и стоит, только нет линуксовой версии у них
По поводу твоих проблем - раз оно так, то проблемы ты не там ищешь
У тебя частота SWD какая стоит ? Поставь 1Мгц, а то и вовсе 500кГц. При слишком высокой частоте (и/или гавенных проводах, но у тебя проводов нет) именно вот такая фиерия и наблюдается. Причем, как показалось, ST к ней куда склонней, чем NXP
- Реклама
Во, а где и как?

Да ну её, не могу в ней работать... отвык уже.Бросай эту говноигрушку, что ты как маргинальный студент, поставь винду как белый человек
Ну, в IARе могу показать где, но у тебя ж не IARploop писал(а):Во, а где и как?
Поищи где нибудь в настройках проекта свойства дебаггера.
Уж тип интерфейса (хотя у СТ-линк только SWD вроде) и всякие скорости там должны натачиваться.
У меня похожее было - програмулина грузится, дальше с первого ж шага програм каунтер улетает вобще куда то в астрал, а дальше и софт дебагера повисает -))
Оказалось высоковата частота. И, опять же, с STM32 как то особо остро это. с продукцией NXP, TI, Atmel чтото таких спецэффектов не запомнил.
А, ну это и имел ввиду, т.е. софтово. А то мало ли, может перемычки какие запаять надо.
Поковыряю. Дебаггер там не напрямую соединяется, а с сервером. А вот сервер может создать что угодно, т.е. любая утилита, работающая с железкой. Утилита тут простая, посмотрю.
Поковыряю. Дебаггер там не напрямую соединяется, а с сервером. А вот сервер может создать что угодно, т.е. любая утилита, работающая с железкой. Утилита тут простая, посмотрю.
У NXP с дебагом, кстати, другая проблема.
Если сбой AHB, то и дебаг умирает
Так что при отладке инита всякого железа и подобного, в случае серьезной ошибки попадаем не в ловушку эксепшна, а все встает полным раком - от ядра МК до среды разработки -))
Если сбой AHB, то и дебаг умирает
Легкое? Зачем легкое? Гланды надо!Satyr писал(а): Такое решение проблемы - это как при легкой простуде легкое удалять
Когда мне попал в руки дискавери, я светодиодом хотел помигать, а не разбираться, почему не компилируется. И всё такое.
Вот и у меня в Киле такое было, пытался в симуляторе поглядеть самый простой STM32F100C4. Дебаг не запускался, с выводом ошибки о неверном маппинге памяти (ручной маппинг не помог). При этом, если переставить в настройках проекта процессор на F100RB, всё отлично дебажилось. А с С4 ну никак не хотел работать.ploop писал(а): Сейчас склоняюсь к тому, что линкер неправильно обозначил блоки памяти (например работа идёт с readonly блоками), поэтому ldr читает всегда ноль (хорошо не мусор), и любой цикл непременно зависнет.
Ухх, народ, вы там что за препараты принимаете ?
Я на IARе разных МК на АРМе не меньше десятка пробовал - вобще никаких проблем.
Кейл смотрел - жить вроде можно, но настроек очень мало, не гибко. CooCox - вобще по нулям игрушка.
Я на IARе разных МК на АРМе не меньше десятка пробовал - вобще никаких проблем.
Кейл смотрел - жить вроде можно, но настроек очень мало, не гибко. CooCox - вобще по нулям игрушка.
Всё-таки я его победил!
Как и предполагал, проблема в линкере была, точнее не в том скрипте. Не знаю, откуда я его отрыл, но точно с сайта ST, и в заголовке у него (в комментах) указан STM32F407.
Так как ошибок при сборке/линковке не было, я благополучно на него забил...
Короче, сейчас код заработал как надо, более того - раскомментировал SystemInit(), стали настраиваться все фишки тактового генератора! Отладка тоже как по маслу!
В принципе я даже доволен, что поимел эти проблемы. В результате ковыряния узнал очень много нового об этой архитектуре.
Как и предполагал, проблема в линкере была, точнее не в том скрипте. Не знаю, откуда я его отрыл, но точно с сайта ST, и в заголовке у него (в комментах) указан STM32F407.
Так как ошибок при сборке/линковке не было, я благополучно на него забил...
Короче, сейчас код заработал как надо, более того - раскомментировал SystemInit(), стали настраиваться все фишки тактового генератора! Отладка тоже как по маслу!
В принципе я даже доволен, что поимел эти проблемы. В результате ковыряния узнал очень много нового об этой архитектуре.
Пользую Eclipse+codesourcery, cкрипт линкера брал из STM32F4xx_StdPeriph_Templates для RIDEploop писал(а):Всё-таки я его победил!
Как и предполагал, проблема в линкере была, точнее не в том скрипте. Не знаю, откуда я его отрыл, но точно с сайта ST,
— Не говорите мне что делать и я не скажу куда Вам идти...
Вложил тот скрипт, который не работал.
- Вложения
-
- stm32f4xx_flash_extsram.ld.zip
- (1.84 КБ) 322 скачивания
Этот скрипт для работы МК с внешней памятьюploop писал(а):Вложил тот скрипт, который не работал.
Для трустудии у меня скрипт и без внешней памяти не работал, а этот и подавно
Environment : Atollic TrueSTUDIO(R)
RAM (xrw) : ORIGIN = 0x64000000, LENGTH = 2048K
— Не говорите мне что делать и я не скажу куда Вам идти...
Яркий секос - это припаять SDRAM, а далее, при помощи дебагера проинитить PLL, SDRAM контроллер, влить в сдрам код и пустить на отладку оттуда, без записи во флеш.ploop писал(а):Дык понял уже!![]()
Но секас классный был!
Только там скрипт не только для линкера, но и для дебагера писать. килобайт на 5
О! Кстати вопрос: Есть usb-флешка, похоже контроллер сдох. Может попробовать снять микросхему памяти, подцепить к плате, и прописать через USB интерфейс доступа к ней? Возможно?
Реальной ценной информации на ней нет. Просто нужен опыт работы с данными МК.
Реальной ценной информации на ней нет. Просто нужен опыт работы с данными МК.
А почему нет? Даже сэмплы подобных проектов видал (на L152 точно, но портировать под F407 труда, думаю, не составит). Была и у меня подобная мысль, но руки так и не дошли. Я из телефонов памяти надергал, валяется пока.
pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего )
MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )

MrYuran: Самые ортодоксальные — это PICудеи )
Katz: Не, 51-ники. )



