Перейти к содержанию
    

Проблема при старте отладки в Keil

Советую ознакомиться с примером Keil_v5\ARM\Flash\_Template\  - не пожалеете.

Это проект в результате компиляции которого, как раз и получается кастомный *.FLM

Теоретически, таким подходом можно не только любую память подключённую к МК шить прямо из кейла, но и в процессе прошивки вытворять всё, на что способен ваш МК.     

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

31 minutes ago, tgruzd said:

Картинка для примера. Я про qspi. Это к вопросу о том, почему раньше всё работало

То есть проверить адреса для алгоритма qspi?  Простите, вам, как вновь прибывшему, хочу сказать то, что уже говорил раньше. Я отключаю алгоритм прошивки qspi, убираю его из этого списка, у меня все выглядит как на вашей картинке, что для примера. Как я в этом случае могу редактировать адреса и зачем? 

Может я как то неправильно понимаю логику разработки проекта с qspi, но я делаю так - создаю проект, состоящий из кода и картинок. Добавляю алгоритм прошивки qspi. Прошиваю - контроллер 30 секунд, qspi 1 час. 

Далее картинки не трогаю, а правлю код. И дабы не перепрошивать qspi в течение часа, я убираю этот алгоритм. Но в файле SCT секцию с адресом 0x90000000 оставляю. В результате линкуется проект правильно, при прошивке получаю предупреждение, что алгоритм для диапазона 0х9000000... Не найден, пропускаем. 

После чего прошивается контроллер, происходит загадочный "loading object code", контроллер стартуееэт, отладчик запускается и читает информацию по всем доступным адресам. Но это с F746 камнем. 

С H743 камнем loading object code завершается ошибкой сразу после того, как достигнет того процента выполнения, который составляет объем кода для внутренней флеши по отношению  к объёму внутренней флеши+qspi. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, tgruzd said:

Теоретически, таким подходом можно не только любую память подключённую к МК шить прямо из кейла, но и в процессе прошивки вытворять всё, на что способен ваш МК.     

Скажите, что мне сделать, чтобы вы поняли, что QSPI мне прошивать не нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17.02.2021 в 01:26, MementoMori сказал:

вы об этом? Initialistion File?

rcxLChJS.png?download=1&name=%D0%A1%D0%B

Или может быть это

L7nMd5y0.png?download=1&name=%D0%A1%D0%B

 

Я что-то пропустил такой момент - вы же хотите запустить отладку, так? А не пробовали развести отладку и  загрузку программы? Т.е. какую-то галочку убрать - вначале загрузить отдельно, а потом запускать отладку без загрузки программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

50 minutes ago, HardEgor said:

загрузить

Давайте определимся, что для вас загрузка - "flash Download" или "loading object code"? 

Я тут поэкспериментировал. Переделал алгоритм прошивки qspi, убрал оттуда стирание и запись. Оставил инициализации memory mapped Mode. Как я и предполагал, при ресете после прошивки  qspi почему то видится в адресом пространстве. И, о чудо,  отладчик коннектится и проблема вроде бы решена. 

Но.... 

Процесс фиктивной перепрошивки тоже слишком долгий, я думал, если сделать функцию записи пустой, то процесс пойдёт быстрее, но перебор адресов тоже долог.

Я решил сделать финт ушами - обманул IDE, написал, что ёмкость qspi всего 64 КБ. Не помогло, раньше вылетала ошибка доступа на адресе 0х90000000, теперь на адресе 0х90010000.

Возвращаюсь к вопросу, который не раз уже задавал и ответа не нашёл. Что такое loading object code, что и откуда он читает?  Object code - это что? Вся программа целиком?  Или некое рабочее ядро? Почему в него попадают данные по адресу 0х90000000? 

Почему keil их куда то грузит? Почему этот процесс отличается в зависимости от камня? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, x893 said:

И даже через Debug Initialization File не стартует куда надо ?

Задайтесь вопросом - "loading object code"  - это уже debug или ещё не debug? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, MementoMori said:

Задайтесь вопросом - "loading object code"  - это уже debug или ещё не debug? 

Мне то зачем задаваться - у меня и так всё стартует и отлаживается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, MementoMori сказал:

Скажите, что мне сделать, чтобы вы поняли, что QSPI мне прошивать не нужно?

Извините. 

11 часов назад, MementoMori сказал:

Переделал алгоритм прошивки qspi, убрал оттуда стирание и запись. Оставил инициализации memory mapped Mode. Как я и предполагал, при ресете после прошивки  qspi почему то видится в адресом пространстве. И, о чудо,  отладчик коннектится и проблема вроде бы решена. 

Но.... 

То есть, какая-то связь имеется. Хм, интересно ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 minutes ago, tgruzd said:

То есть, какая-то связь имеется. Хм, интересно ...

QSPI блок в контроллере при прошивек QSPI инициализируется, а при ресете почему-то не сбрасывается..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ознакомился вот с этим https://www.keil.com/support/man/docs/uv4/uv4_db_scripting.htm

Скажите, я правильно понял, что из этого скрипта можно вызвать функцию,  находящуюся в самом проекте??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А способ, который предложил HardEgor не привел  к желаемому результату? Я сейчас попробовал ради любопытства и у меня получилось таким образом запустить отладку, причём часть данных была слинкована в физически отсутствующее место. То есть, даже при неправильно настроенной qspi можно отлаживать, если я правильно понимаю. 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

52 minutes ago, tgruzd said:

А способ, который предложил HardEgor не привел  к желаемому результату? Я сейчас попробовал ради любопытства и у меня получилось таким образом запустить отладку, причём часть данных была слинкована в физически отсутствующее место. То есть, даже при неправильно настроенной qspi можно отлаживать, если я правильно понимаю. 

А как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Снимаете галку Load application at startup

2) Ctrl+F5

3) в окне команд вводите "LOAD OBJECTS\your_application_filename.axf NOCODE".  Hу или через *.ini

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, tgruzd said:

3) в окне команд вводите "LOAD OBJECTS\your_application_filename.axf NOCODE".  Hу или через *.ini

LOAD OBJECTS\D:\CUBE\H743\H743\MDK-ARM\H743\H743.axf NOCODE
LOAD OBJECTS\D:\CUBE\H743\H743\MDK-ARM\H743\H743.axf NOCODE
_____^
*** error 56: cannot open file

 

А файл точно там, я проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...