И стартуешь Debug. Если загрузчик залит, он кидает на стартовый адрес основной проги и всё прекрасно отлаживается. Забыл сказать, что в данный момент именно так и поступаю. Главное, загрузчик не затереть при заливке из кейла, а чтобы этого не произошло - картинка 5.
Ну вот, а можно без всяких загрузчиков просто запустить приложение и оно само под себя всё настроит.
PS: Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Чёт не припомню из практики, не из своей, не из практики коллег, чтобы хоть в одном STMовском МК при старте был хоть один регистр не по дефолту. Всё, как доктор в ДШ прописал. У них есть свои баги, но они связаны не с этим и давно все ворэраунды описаны в ерате. Так что не сочиняйте сказки. Тем более, что они не по теме.
Добавлено after 2 minutes 22 seconds: ТС, давайте добивать Вашу проблему. Нашли system_stm32f10x.h?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Мой загрузчик не затрагивает никакие регистры, если не нажато сочетание кнопок, кроме тех, которые используются для этих кнопок. Да, эти входы у меня настроены в загрузчике и их настроику я не сбрасываю перед джампом намеренно, ибо я их продолжаю юзать в основной программе, так что никаких проблем не возникает. А если речь идёт о разработке серьёзного софта в нормальном КБ, где один человек или группа отвечают за написание загрузчика, другая группа отвечает за основной софт и, по вашему мнению, эти группы между собой никак не общаются и первая группа пишет всякий мусор в регистры, не сбрасывая их перед джампом в основную программу - это опять же ваши домыслы. Существует на этот случай ТЗ, где согласуются обе части: загрузчик и основная программа и в большинстве случаев просто НЕНУЖНО сбрасывать некоторые регистры. Причём, это ТЗ читают обе группы разработчиков.
Точно по той же причине не стоит рассчитывать на начальное состояние всех регистров при инициализации периферии - мало ли кто и как тебя запустил и что делал до этого.
Чёт не припомню из практики, не из своей, не из практики коллег, чтобы хоть в одном 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) При перезагрузке МК не переходит на основную прогу
Все верно, у меня не получается перейти по адресу зашитой программы. Нет никакой реакции на кнопку: ни прерывания, ни зажигания светодиода. Дамп не пробовал снимать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения