tgruzd 11 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба Советую ознакомиться с примером Keil_v5\ARM\Flash\_Template\ - не пожалеете. Это проект в результате компиляции которого, как раз и получается кастомный *.FLM Теоретически, таким подходом можно не только любую память подключённую к МК шить прямо из кейла, но и в процессе прошивки вытворять всё, на что способен ваш МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 3 hours ago, tgruzd said: Теоретически, таким подходом можно не только любую память подключённую к МК шить прямо из кейла, но и в процессе прошивки вытворять всё, на что способен ваш МК. Скажите, что мне сделать, чтобы вы поняли, что QSPI мне прошивать не нужно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 17.02.2021 в 01:26, MementoMori сказал: вы об этом? Initialistion File? Или может быть это Я что-то пропустил такой момент - вы же хотите запустить отладку, так? А не пробовали развести отладку и загрузку программы? Т.е. какую-то галочку убрать - вначале загрузить отдельно, а потом запускать отладку без загрузки программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 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 их куда то грузит? Почему этот процесс отличается в зависимости от камня? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба И даже через Debug Initialization File не стартует куда надо ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 19 февраля, 2021 Опубликовано 19 февраля, 2021 · Жалоба 40 minutes ago, x893 said: И даже через Debug Initialization File не стартует куда надо ? Задайтесь вопросом - "loading object code" - это уже debug или ещё не debug? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 9 hours ago, MementoMori said: Задайтесь вопросом - "loading object code" - это уже debug или ещё не debug? Мне то зачем задаваться - у меня и так всё стартует и отлаживается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 14 часов назад, MementoMori сказал: Скажите, что мне сделать, чтобы вы поняли, что QSPI мне прошивать не нужно? Извините. 11 часов назад, MementoMori сказал: Переделал алгоритм прошивки qspi, убрал оттуда стирание и запись. Оставил инициализации memory mapped Mode. Как я и предполагал, при ресете после прошивки qspi почему то видится в адресом пространстве. И, о чудо, отладчик коннектится и проблема вроде бы решена. Но.... То есть, какая-то связь имеется. Хм, интересно ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 7 minutes ago, tgruzd said: То есть, какая-то связь имеется. Хм, интересно ... QSPI блок в контроллере при прошивек QSPI инициализируется, а при ресете почему-то не сбрасывается.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба Ознакомился вот с этим https://www.keil.com/support/man/docs/uv4/uv4_db_scripting.htm Скажите, я правильно понял, что из этого скрипта можно вызвать функцию, находящуюся в самом проекте?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба А способ, который предложил HardEgor не привел к желаемому результату? Я сейчас попробовал ради любопытства и у меня получилось таким образом запустить отладку, причём часть данных была слинкована в физически отсутствующее место. То есть, даже при неправильно настроенной qspi можно отлаживать, если я правильно понимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 52 minutes ago, tgruzd said: А способ, который предложил HardEgor не привел к желаемому результату? Я сейчас попробовал ради любопытства и у меня получилось таким образом запустить отладку, причём часть данных была слинкована в физически отсутствующее место. То есть, даже при неправильно настроенной qspi можно отлаживать, если я правильно понимаю. А как это сделать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tgruzd 11 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 1) Снимаете галку Load application at startup 2) Ctrl+F5 3) в окне команд вводите "LOAD OBJECTS\your_application_filename.axf NOCODE". Hу или через *.ini Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 20 февраля, 2021 Опубликовано 20 февраля, 2021 · Жалоба 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 А файл точно там, я проверял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться