Eclipse + GCC + OpenOCD: готовая сборка среды
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Обратитесь в тему viewtopic.php?f=37&t=487 (Драйвер для OpenOCD). Думаю, проблема в том, про прошивальщику как-то надо сообщить о другой частоте кварца, наверное, он пробует шить, но флеш не успевает на такой частоте обработать команды.
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Также еще обратите внимание на ножку микроконтроллера H2, которая предназначена для аварийного стирания флеш (смотрите ТО - Алгоритм стирания всей флеш-памяти). Может быть на вашей плате она подвязана к верху?
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Действительно, проблема заключалась в том, что нога H2 висела в воздухе. Если подтянуть ее к земле, то всё успешно прошивается.
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Мне удалось прошить микроконтроллер с помощью оригинального J-Link. Без изменения настроек он, в отличии от клона, успешно прошил камень. Однако программа в микроконтроллере после прошивки не стартует.
Я тренировался на примере Example_LED_blinking. Из ОЗУ все отлично выполняется, светодиоды светятся. Программа во Flash пишется без ошибок, но не выполняется. Если отладчиком походить, то видно, что при исполнении из Flash программа падает в бесконечный цикл:
startup_MCP_gcc.S
Отладочная плата LDM-SYSTEMS
Я тренировался на примере Example_LED_blinking. Из ОЗУ все отлично выполняется, светодиоды светятся. Программа во Flash пишется без ошибок, но не выполняется. Если отладчиком походить, то видно, что при исполнении из Flash программа падает в бесконечный цикл:
startup_MCP_gcc.S
Код: Выделить всё
/**
* @brief This is the code that gets called when the processor receives an
* unexpected interrupt. This simply enters an infinite loop, preserving
* the system state for examination by a debugger.
* @param None
* @retval None
*/
.section .text.Default_Handler,"ax",%progbits
Default_Handler:
Infinite_Loop:
b Infinite_Loop
.size Default_Handler, .-Default_Handler
- Лог загрузки программы | Показать
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Проверьте ревизию камня, может быть это какой-то из старой серии? На нем написано К1921... или NT32... ?
В какой момент идет попадание в бесконечный цикл? Попробуйте в настройках Debug Configurations на вкладке Startup снять галочку на установке брейкпоинта на main и снять continue, запустить программу из флеша. Процессор должен попасть на начало флеша и выполняться по ассемблерным командам файла startup_MCP_gcc.S. Откройте окно дизассемблера. Совпадают ли команды в окне дизассемблера с теми, что находятся в startup_MCP_gcc.S? Это косвенно показвает, что флеш прошилась как таковая и там правильный код. И на выполнении какой команды какой функции программа уходит в беспонечный цикл? Включите Instruction Stepping Mode и прошагайте до места креша.
В какой момент идет попадание в бесконечный цикл? Попробуйте в настройках Debug Configurations на вкладке Startup снять галочку на установке брейкпоинта на main и снять continue, запустить программу из флеша. Процессор должен попасть на начало флеша и выполняться по ассемблерным командам файла startup_MCP_gcc.S. Откройте окно дизассемблера. Совпадают ли команды в окне дизассемблера с теми, что находятся в startup_MCP_gcc.S? Это косвенно показвает, что флеш прошилась как таковая и там правильный код. И на выполнении какой команды какой функции программа уходит в беспонечный цикл? Включите Instruction Stepping Mode и прошагайте до места креша.
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
K1921BK01 арм 1551
Код сходится.
В бесконечный цикл падает здесь (на предпоследней команде dsb):
Код: Выделить всё
/* Включение плавоточки*/
ldr.w R0, =0xE000ED88
ldr R1, [R0]
orr R1, R1, #(0xF << 20)
str R1, [R0]
dsb
isb /*reset pipeline now the FPU is enabled*/
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Очень странная проблема. Ну а попробуйте закомментировать весь этот кусок кода, который включает плавающую точку. Будет запускаться программа?
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Попробуйте переопределить обработчики для всех типов исключений и определить, какое же именно исключение возникает. Ну, например, по аналогии с Default_Handler сделать такой же для MemManage_Handler и всех остальных исключений, перечисленных в g_pfnVectors. И потом узнать, в какое же именно исключение падает программа. Возможно, есть какой-то способ узнать, какое исключение сработало прямо из Default_Handler (может быть, в каком-то регистре есть эта информация), но я сходу не придумал.
Код включения плавающей точки взят из официальнго мануала http://infocenter.арм.com/help/index.js ... BJHIG.html
непонятно, как он может сбоить, тем более на инструкции DSB
Код включения плавающей точки взят из официальнго мануала http://infocenter.арм.com/help/index.js ... BJHIG.html
непонятно, как он может сбоить, тем более на инструкции DSB
-
- Сообщения: 57
- Зарегистрирован: 11 июл 2014, 15:06
- Лашкевич
- Сообщения: 373
- Зарегистрирован: 13 май 2015, 13:10
- Предприятие: ООО "НПФ Вектор"
- Откуда: Москва
- Контактная информация:
Re: Eclipse + GCC + OpenOCD: готовая сборка среды
Спасибо! Значит, согласно http://infocenter.арм.com/help/index.js ... BIBGJ.html, смотрим нижнюю часть регистра xPSR на вкладке регистров.
Например, при попытке
я получил 3 в нижней части xPSR, что обозначает Hard Fault, и вроде как это и должно быть согласно http://www.keil.com/appnotes/files/apnt209.pdf
интересно, что покажет код MR.Smith
Например, при попытке
Код: Выделить всё
bl -1
интересно, что покажет код MR.Smith