Jump to content

    
Sign in to follow this  
MementoMori

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites
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. 

Share this post


Link to post
Share on other sites
3 hours ago, tgruzd said:

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

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

Share this post


Link to post
Share on other sites
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

 

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

Share this post


Link to post
Share on other sites
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 их куда то грузит? Почему этот процесс отличается в зависимости от камня? 

Share this post


Link to post
Share on other sites
9 hours ago, MementoMori said:

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

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

Share this post


Link to post
Share on other sites
14 часов назад, MementoMori сказал:

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

Извините. 

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

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

Но.... 

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

 

Share this post


Link to post
Share on other sites
7 minutes ago, tgruzd said:

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

 

Share this post


Link to post
Share on other sites
52 minutes ago, tgruzd said:

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

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

Share this post


Link to post
Share on other sites
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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this