Кто любит RISC в жизни, заходим, не стесняемся.
Вт мар 11, 2014 19:32:08
Всем привет!
В общем проблема такая - при запуске отладки из IAR - все работает замечательно. Если же отладчик не подключен - при перезапуске перестает работать половина периферии, например UART...
С чем сие может быть связано?
С отладчиком работает в любом случае, даже при запуске программы без прошивки
UPD: если отключить прерывание от DSP (это спецМК) все нормально запускается... странно все это
Чт мар 13, 2014 21:50:30
UART говорите? Может быть у вас просто отвалилась земля на RS-232 и поэтому при отключении разъёма отладчика данные перестают выдаваться ?
Возможно также проблема с раскачкой кварца, а запуск от отладчика даёт больше времени на раскачку, а при отключении всё переходит на встроенный HSI clock.
И кстати, почему IAR ? Вроде бы есть бесплатный и более удобный CooCox + GCC под ARM ?
Чт мар 13, 2014 23:57:26
Zud писал(а): Может быть у вас просто отвалилась земля на RS-232 и поэтому при отключении разъёма отладчика данные перестают выдаваться ?
я разъем отладчика не отключаю - J-Link на плате распаян. Просто передергиваю питание.
Я с этим наполовину разобрался - в коде была неявная инициализация этой периферии. Моя была до нее. После того, как поставил в нужном порядке все ок, но это не объясняет почему с дебаггером все работало и так.
Zud писал(а):И кстати, почему IAR ?
это промышленный стандарт. Все библиотеки и прочее на нем. В данном конкретном случае - демонстрационный проект на IAR. Там посмотрим, может и перейдем на gcc.
Пт мар 14, 2014 11:34:38
C дебаггером инициализация проходит от предыдущей сессии. Питание проца не сбрасывается. У меня была подобная проблема из-за пропущенной инициализации периферии. Дебаггер обнулял периферию при запуске и всё работало, а при отдельной работе были глюки.
Пт мар 30, 2018 08:05:09
Дебаггер обнулял периферию при запуске и всё работало, а при отдельной работе были глюки.
Скажите пожалуйста как вы GARMIN решили эту проблему?
Пн апр 09, 2018 18:50:47
Не знаю, как GARMIN, но у меня вся инициализация переферии при запуске ядра происходит через:
- Разрешение работы переферии
- Сброс переферии
- Конфигурация переферии.
Ни разу после этого кристалл не зависал и не спотыкался на запуске чего-либо. Даже I2C стартует с первой попытки.
Ср мар 10, 2021 10:53:59
Не знаю, как GARMIN, но у меня вся инициализация переферии при запуске ядра происходит через:
- Разрешение работы переферии
- Сброс переферии
- Конфигурация переферии.
Ни разу после этого кристалл не зависал и не спотыкался на запуске чего-либо. Даже I2C стартует с первой попытки.
Я пробовал вот так. Урезанный проект до нельзя. Тем не менее не стартует без отладчика. Проект пересобирал. Уж и не знаю с какой стороны подойти.
Плата на stm32f100. Работаю в кейле.
- Код:
#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_conf.h"
GPIO_InitTypeDef port;
void initialization(void);
void initialization()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
port.GPIO_Mode = GPIO_Mode_Out_PP;
port.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
port.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOC, &port);
}
int main(void){
initialization();
GPIO_SetBits(GPIOC, GPIO_Pin_9);
while(1){
}
Последний раз редактировалось
atrel Ср мар 10, 2021 18:22:50, всего редактировалось 1 раз.
Ср мар 10, 2021 11:07:41
atrel, а с какими ключами это дело собирается? Покажите Makefile. Может, оно там в каком-то дико отладочном режиме?
Ср мар 10, 2021 11:36:12
atrel, а с какими ключами это дело собирается? Покажите Makefile. Может, оно там в каком-то дико отладочном режиме?
Благодарю за ответ.
К сожалению не знаю где такой файл в проекте. В архиве два похожих не него и hex.
Если будет эффективней могу скинуть весь проект.
- Вложения
-
- Template.zip
- (3.77 KiB) Скачиваний: 296
Ср мар 10, 2021 11:55:25
Залейте этот файл. С ним работает?
- Вложения
-
- STM32F100RB.zip
- (970 байт) Скачиваний: 311
Ср мар 10, 2021 12:39:49
К сожалению не знаю где такой файл в проекте.
Ну нифига ж себе!
Это как вообще возможно: не знать, как у тебя исходники собираются? А где лежат стартап, линкер-скрипт и CMSIS — тоже неизвестно?
А как тогда компиляция производится? Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
А как это можно делать иначе?
Ср мар 10, 2021 18:15:16
Залейте этот файл. С ним работает?
Спасибо за ответ
Мурик . Да, работает. В чём секрет?
Я менял тактирование, пробовал играться с обнулением переферии, заново переделывал проект, а оно не работает.
Eddy_Em писал(а):Ну нифига ж себе!
Это как вообще возможно: не знать, как у тебя исходники собираются? А где лежат стартап, линкер-скрипт и CMSIS — тоже неизвестно?
А как тогда компиляция производится? Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
А как это можно делать иначе?
Там есть "Option for target" и кнопка "Rebuild". Но это так, между нами.
Последний раз редактировалось
atrel Ср мар 10, 2021 19:27:57, всего редактировалось 2 раз(а).
Ср мар 10, 2021 18:57:40
Там есть "Option for target" и кнопка "Rebuild". Но это так, между нами.
Абдурина что ли? Только там через жопу предлагается собирать исходники!
Ср мар 10, 2021 20:12:23
Я, например, просто в консоли пишу make, читаю сообщения, если ошибок нет — пишу make dfuboot, make boot или make flash (в зависимости от способа заливки прошивки) и прошивка попадает в МК. Далее перехожу в соседнюю вкладку консольки, где открываю терминал и работаю с МК…
Нормальный подход, чо... В то время, когда другие просто жмут одну кнопочку в IDE
Каждый др.чет как хочет
Чт мар 11, 2021 09:54:33
Каждый др.чет как хочет
Согласен.
Но всётаки уже месяц бъюсь и не понимаю почему у кого-то работает, а у меня нет
Чт мар 11, 2021 10:51:13
Но всётаки уже месяц бъюсь и не понимаю почему у кого-то работает, а у меня нет
Думаю, что проблема в отсутствии понимания того, как оно должно работать.
Тактирование включено правильно? Прошивка по правильному адресу загружается?
Ну, а насчет "нажать кнопочку" или "нажать клавосочетание" — это и у меня в qt-creator'е есть. Только там же экранчик для выхлопа совсем невменяемо мелких размеров. А в консольке полноценный - на весь экран. Удобно. Особенно в make debug видно весь выхлоп и какие баги возникают (в режиме debug я активирую -Wall -Wextra -Werror, чтобы не было соблазна проигнорировать варнинги).
- Вложения
-
- xxs.png
- (147.42 KiB) Скачиваний: 206
Последний раз редактировалось
Eddy_Em Чт мар 11, 2021 10:56:41, всего редактировалось 2 раз(а).
Чт мар 11, 2021 10:52:03
atrel писал(а):Да, работает. В чём секрет?
Весь секрет в том что я код что вы выложили скопировал в IDE и скомпилировал. Почему у вас не работает не знаю - кейлом не пользуюсь. Он слишком дорого стоит - больше 3500 долларов!
Я использую бесплатную IDE.
- Вложения
-
- STM32F100RB.7z
- (175.76 KiB) Скачиваний: 266
Чт мар 11, 2021 16:32:04
Весь секрет в том что я код что вы выложили скопировал в IDE и скомпилировал. Почему у вас не работает не знаю - кейлом не пользуюсь. Он слишком дорого стоит - больше 3500 долларов!
Я использую бесплатную IDE.
Благодарствую. Буду сличать настройки.
Но и я как бы не шикую. Демо версии для изучения МК, полагаю, должно хватить. Выбрал её исключительно из мнения, что работа в подобной IDE поможет сконцентрироваться на изучении STM-ок.
Чт мар 11, 2021 17:58:31
atrel, если вы именно на изучении STM'ок хотите сконцентрироваться, то сделайте сначала без излишне хитрых IDE: напишите стартап, ld-скрипт и Makefile, соберите простейший пример…
Чт мар 11, 2021 18:36:26
atrel писал(а):Выбрал её исключительно из мнения, что работа в подобной IDE поможет сконцентрироваться на изучении STM-ок.
Каким образом?
Не сказал бы что в кейле есть что-то такое что позволяет концентрироваться на изучении STM-ок.
Eddy_Em, вы забыли написать что нужно еще линукс установить.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.