MementoMori 4 12 февраля, 2021 Опубликовано 12 февраля, 2021 · Жалоба Короче, все указывает на то, что после прошивки, при старте, при "loading object code" отладчик пытается обратиться по адресу 0х90000000, которого к этому моменту ещё не существует (qspi не инициализирована). Об этом свидетельствует тот факт, что если убрать галку load application at startup, то ошибки не возникает. Не возникает её ещё и если вместо 0х90000000 указать другой, читабельный адрес. Скажите мне, как мне настроить scatter файл или настройки keil, чтобы во время "loading object code" отладчик не пытался читать адрес, прописаный в секции LR_EROM, там ведь только данные. Можно же это как то отключить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба Вроде как была настройка "прошивальщика", где указывал ась область памяти и как с ней работать (IAP или ещё как). Вот там в этом списке надо поискать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба 2 hours ago, toweroff said: Вроде как была настройка "прошивальщика", где указывал ась область памяти и как с ней работать (IAP или ещё как) Там есть галка если ее убрать, то указанные вам настройки игнорируются, а информация берется из scatter файла, его содержимое в первом посте. БОлее того, это содержимое правильное. А пока я выяснил кое что- видать дело не в настройках кейла. Если я создаю голый проект в кубе, настраиваю всю периферию - проблемы нет. Я даже добавляю в проект массив с данными для картинки - проблем нет, он шьется в QSPI, а потом, когда я убираю алгоритм прошивки QSPI из списка, этот код не мешает работе. Стоит только добавить в проект TOuchGFX, пересоздать проект - проблема появляется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба 12.02.2021 в 13:32, MementoMori сказал: Скажите мне, как мне настроить scatter файл или настройки keil, чтобы во время "loading object code" отладчик не пытался читать адрес, прописаный в секции LR_EROM, там ведь только данные. Можно же это как то отключить? Не знаю как в Кейл, но в IAR-е для этого предназначен .mac-файл. В нём можно инициализировать периферию, которая уже должна функционировать ДО загрузки прошивки. У меня так осуществляется загрузка отлаживаемой прошивки в SDRAM в некоторых проектах. Или для того же самого - инициализация SPIFI-интерфейса на LPC4370. Думаю в Кейл должен быть аналог .mac-файла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба 10 minutes ago, jcxz said: нём можно инициализировать периферию, которая уже должна функционировать ДО загрузки прошивки. В F746 камне я ничего не инициализировал ДО. Но и обращения к этому ДО загрузки не было. Как уже написал выше - мне удалось создать проект, причем не минимальный (голый), а вполне полноценный, в котором при указанном мной содержимом SCT файла данная ошибка не возникает. Проблемный код отличается от этого проекта наличием подключенной библиотеки TOuchGFX. Причем сама библиотека, ее код тут ни при чем - если в самом начале функции main() поставить тормоз (while(1)), Keil понимает, что дальше этого тормоза программа не пойдет (ниже по тексту не ставятся брейкпоинты), но тем не менее, loading object code все так же выдает ошибку..... То есть само наличие библиотеки touchgfx каким-то образом меняет поведение отлачдика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба Пропустил, моя вина. Думал, что не указан алгоритм программирования QSPI Тогда только на ум приходит проверить список DLL, используемых при отладке рабочего проекта и нерабочего Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба Господа, есть у кого-нибудь плата на H743 камне? Я бы проект скинул, кому не трудно посмотреть... 6 minutes ago, toweroff said: Тогда только на ум приходит проверить список DLL, используемых при отладке рабочего проекта и нерабочего Проверяю. Только не DLL - а исходники. А они че-то так завязаны друг с другом, что только блоком... Вот нерабочий проект https://cloud.mail.ru/public/fyST/PYnhuPQkp Отключить из проекта все папки TouchGFX - проблема исчезает. Откликнитесь, владельцы плат с H743.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EternalDoubter 0 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба Запросил "touchgfx stlink problem" в гугле, вот что советуют http://uc.org.ru/node/177 Я так понял: Options->Debug->Settings(справа)->Flash Download->Add-> тут нужно выбрать алгоритм и диапазон адресов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 13 февраля, 2021 Опубликовано 13 февраля, 2021 · Жалоба 4 minutes ago, EternalDoubter said: Я так понял: Options->Debug->Settings(справа)->Flash Download->Add-> тут нужно выбрать алгоритм и диапазон адресов Каждый, к кому обращаюсь на этом форуме и не только, обязательно проходит эту стадию непонимания вопроса. Мне не надо прошивать QSPI, она прошита. Я прошил и убрал алгоритм. Прошиальщик спокойно пропускает QSPI, прошивает флеш контроллера и пытается запустить плату. Проблема в том, что в SCT файле секция с адресом 0x90000000 должна быть определена, иначе все 10 мегабайт линкер пытается запихнуть во внутреннюю флеш. Поэтому эту запись удалять нельзя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба Вот оно что))) Случайно увидел - после генерации ошибки на очень короткое мгновение появляется окошко "command" в котором указано на ошибку. Затем это окошко исчезает, поймал только через скриншот. Я пересмотрел внимательно MAP файл -по адресу 0x90000000 и выше - только данные, никакого кода. ОБратите внимание на окно дизассемблера - я не пойму ошибка обращения генерируется при отдаче первой же команды? Я не силен в ассемблере. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 235 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба 20 минут назад, MementoMori сказал: ОБратите внимание на окно дизассемблера - я не пойму ошибка обращения генерируется при отдаче первой же команды? Я не силен в ассемблере. Какие "обращения"? У вас там только NOP-ы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба 9 minutes ago, jcxz said: Какие "обращения"? У вас там только NOP-ы. Я не силен в ассемблере. Вообще, увидев такую картину - куда копать? Я кстати, убрал галку "run to main" - та же петрушка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба 35 минут назад, MementoMori сказал: Я пересмотрел внимательно MAP файл -по адресу 0x90000000 и выше - только данные, никакого кода. А отладчик почему-то считает что там что-то есть :) Есть еще еще командные файлы отладчика - ничего не подключено? А может быть где-то лишний нолик в адресе написан. В коде или каком-то файле. Поискать в исходном коде адрес 0x90000000 или соседние или еще какое обращение к прямым адресам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба 1 hour ago, HardEgor said: Есть еще еще командные файлы отладчика - ничего не подключено? вы об этом? Initialistion File? Или может быть это Как видите, пусто. 1 hour ago, HardEgor said: Поискать в исходном коде адрес 0x90000000 Проверил, нигде. Но строка QSPI_BASE (0x90000000) обнаруживается в куче объектных файлов MAP-файл - там тоже вроде все ровно, но все же выложу его, может кто опытным глазом глянет H743.map Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 16 февраля, 2021 Опубликовано 16 февраля, 2021 · Жалоба 49 минут назад, MementoMori сказал: Но строка QSPI_BASE (0x90000000) обнаруживается в куче объектных файлов stm32h743xx.h: #define QSPI_BASE (0x90000000UL) /*!< Base address of : QSPI memories accessible over AXI */ H743.sct : LR_EROM1 0x90000000 0x2000000 { ; load region size_region ER_EROM1 0x90000000 0x2000000 { ; load address = execution address Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться