И стартуешь Debug. Если загрузчик залит, он кидает на стартовый адрес основной проги и всё прекрасно отлаживается. Забыл сказать, что в данный момент именно так и поступаю. Главное, загрузчик не затереть при заливке из кейла, а чтобы этого не произошло - картинка 5.
Ну вот, а можно без всяких загрузчиков просто запустить приложение и оно само под себя всё настроит.
PS: Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.
Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Чёт не припомню из практики, не из своей, не из практики коллег, чтобы хоть в одном STMовском МК при старте был хоть один регистр не по дефолту. Всё, как доктор в ДШ прописал. У них есть свои баги, но они связаны не с этим и давно все ворэраунды описаны в ерате. Так что не сочиняйте сказки. Тем более, что они не по теме.
Добавлено after 2 minutes 22 seconds: ТС, давайте добивать Вашу проблему. Нашли system_stm32f10x.h?
Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.
Мой загрузчик не затрагивает никакие регистры, если не нажато сочетание кнопок, кроме тех, которые используются для этих кнопок. Да, эти входы у меня настроены в загрузчике и их настроику я не сбрасываю перед джампом намеренно, ибо я их продолжаю юзать в основной программе, так что никаких проблем не возникает. А если речь идёт о разработке серьёзного софта в нормальном КБ, где один человек или группа отвечают за написание загрузчика, другая группа отвечает за основной софт и, по вашему мнению, эти группы между собой никак не общаются и первая группа пишет всякий мусор в регистры, не сбрасывая их перед джампом в основную программу - это опять же ваши домыслы. Существует на этот случай ТЗ, где согласуются обе части: загрузчик и основная программа и в большинстве случаев просто НЕНУЖНО сбрасывать некоторые регистры. Причём, это ТЗ читают обе группы разработчиков.
Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Чёт не припомню из практики, не из своей, не из практики коллег, чтобы хоть в одном STMовском МК при старте был хоть один регистр не по дефолту. Всё, как доктор в ДШ прописал. У них есть свои баги, но они связаны не с этим и давно все ворэраунды описаны в ерате. Так что не сочиняйте сказки. Тем более, что они не по теме.
Добавлено after 2 minutes 22 seconds: ТС, давайте добивать Вашу проблему. Нашли system_stm32f10x.h?
Добавлено after 1 minute 26 seconds: Также не вижу условий входа в загрузчик/основную программу
Добавлено after 2 minutes 22 seconds: Нашёл.
Добавлено after 1 minute 15 seconds: Функций у тебя наворочено, фиг проследишь. Попробуй для отладки сделать вход в загрузчик/основную программу по кнопке при включении
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; // GPIOA Clock ON. Alter function clock ON
//TX GPIOA->CRL &= ~GPIO_CRL_CNF2; // Clear CNF bit 9 GPIOA->CRL |= GPIO_CRL_CNF2_1; // Set CNF bit 9 to 10 - AFIO Push-Pull GPIOA->CRL |= GPIO_CRL_MODE2_0; // Set MODE bit 9 to Mode 01 = 10MHz
GPIOA->BSRR |= GPIO_BSRR_BS2;
//RX GPIOA->CRL &= ~GPIO_CRL_CNF3; // Clear CNF bit 9 GPIOA->CRL |= GPIO_CRL_CNF3_0; // Set CNF bit 9 to 01 = HiZ GPIOA->CRL &= ~GPIO_CRL_MODE3; // Set MODE bit 9 to Mode 01 = 10MHz
RCC->APB1ENR |= RCC_APB1ENR_USART2EN; //USART1 Clock ON
USART2->BRR = 0x139; // Bodrate for 115000 on 36 Mhz USART2->CR1 |= USART_CR1_UE | USART_CR1_RE | USART_CR1_RXNEIE | USART_CR1_TE; // USART1 ON, TX ON, RX ON
Добавлено after 16 minutes 7 seconds: Необходимо резюме всего вышесказанного:
1) Загружен свой бутлоадер 2) Загружена основная программа 3) МК заходит в бутлоадер и пишет основную прогу в память 4) При перезагрузке МК не переходит на основную прогу
Все верно, у меня не получается перейти по адресу зашитой программы. Нет никакой реакции на кнопку: ни прерывания, ни зажигания светодиода. Дамп не пробовал снимать.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения