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

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

Короче, все указывает на то, что после прошивки, при старте, при "loading object code" отладчик пытается обратиться по адресу 0х90000000, которого к этому моменту ещё не существует (qspi не инициализирована). 

Об этом свидетельствует тот факт, что если убрать галку  load application at startup, то ошибки не возникает. Не возникает её ещё и если вместо 0х90000000 указать другой, читабельный адрес. 

 

Скажите мне, как мне настроить scatter файл или настройки keil, чтобы во время "loading object code"  отладчик не пытался читать адрес, прописаный в секции LR_EROM, там ведь только данные. Можно же это как то отключить? 

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


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

Вроде как была настройка "прошивальщика", где указывал ась область памяти и как с ней работать (IAP или ещё как). Вот там в этом списке надо поискать

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


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

2 hours ago, toweroff said:

Вроде как была настройка "прошивальщика", где указывал ась область памяти и как с ней работать (IAP или ещё как)

Там есть галка

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

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

 

А пока я выяснил кое что- видать дело не в настройках кейла.

Если я создаю голый проект в кубе, настраиваю всю периферию - проблемы нет.  Я даже добавляю в проект массив с данными для картинки - проблем нет, он шьется в QSPI, а потом, когда я убираю алгоритм прошивки QSPI из списка, этот код не мешает работе.

Стоит только добавить в проект TOuchGFX, пересоздать проект - проблема появляется.

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


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

12.02.2021 в 13:32, MementoMori сказал:

Скажите мне, как мне настроить scatter файл или настройки keil, чтобы во время "loading object code"  отладчик не пытался читать адрес, прописаный в секции LR_EROM, там ведь только данные. Можно же это как то отключить? 

Не знаю как в Кейл, но в IAR-е для этого предназначен .mac-файл. В нём можно инициализировать периферию, которая уже должна функционировать ДО загрузки прошивки.

У меня так осуществляется загрузка отлаживаемой прошивки в SDRAM в некоторых проектах. Или для того же самого - инициализация SPIFI-интерфейса на LPC4370.

Думаю в Кейл должен быть аналог .mac-файла.

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


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

10 minutes ago, jcxz said:

нём можно инициализировать периферию, которая уже должна функционировать ДО загрузки прошивки.

В F746 камне я ничего не инициализировал ДО. Но и обращения к этому ДО загрузки не было.

Как уже написал выше - мне удалось создать проект, причем не минимальный (голый), а вполне полноценный, в котором при указанном мной содержимом SCT файла данная ошибка не возникает. Проблемный код отличается от этого проекта наличием подключенной библиотеки TOuchGFX. Причем сама библиотека, ее код тут ни при чем - если в самом начале функции main() поставить тормоз (while(1)), Keil понимает, что дальше этого тормоза программа не пойдет (ниже по тексту не ставятся брейкпоинты), но тем не менее, loading object code все так же выдает ошибку..... То есть само наличие библиотеки touchgfx каким-то образом меняет поведение отлачдика.

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


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

Пропустил, моя вина. Думал, что не указан алгоритм программирования QSPI

Тогда только на ум приходит проверить список DLL, используемых при отладке рабочего проекта и нерабочего

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


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

Господа, есть у кого-нибудь плата на H743 камне? Я бы проект скинул, кому не трудно посмотреть...

6 minutes ago, toweroff said:

Тогда только на ум приходит проверить список DLL, используемых при отладке рабочего проекта и нерабочего

Проверяю. Только не DLL - а исходники. А они че-то так завязаны друг с другом, что только блоком...

Вот нерабочий проект

https://cloud.mail.ru/public/fyST/PYnhuPQkp

Отключить из проекта все папки TouchGFX - проблема исчезает. Откликнитесь, владельцы плат с H743....

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


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

Запросил "touchgfx stlink problem" в гугле, вот что советуют

http://uc.org.ru/node/177

Я так понял:

Options->Debug->Settings(справа)->Flash Download->Add-> тут нужно выбрать алгоритм и диапазон адресов

image.thumb.png.f689a8a1bc83e35eb2a6b7c1d2165b5f.png

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


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

4 minutes ago, EternalDoubter said:

Я так понял:

Options->Debug->Settings(справа)->Flash Download->Add-> тут нужно выбрать алгоритм и диапазон адресов

Каждый, к кому обращаюсь на этом форуме и не только, обязательно проходит эту стадию непонимания вопроса.

Мне не надо прошивать QSPI, она прошита. Я прошил и убрал алгоритм. Прошиальщик спокойно пропускает QSPI, прошивает флеш контроллера и пытается запустить плату.

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

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


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

Вот оно что)))

 

Случайно увидел -  после генерации ошибки на очень короткое мгновение появляется окошко "command" в котором указано на ошибку. Затем это окошко исчезает, поймал только через скриншот.

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

Я пересмотрел внимательно MAP файл -по адресу 0x90000000 и выше - только данные, никакого кода.

ОБратите внимание на окно дизассемблера - я не пойму ошибка обращения генерируется при отдаче первой же команды? Я не силен в ассемблере.

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


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

20 минут назад, MementoMori сказал:

ОБратите внимание на окно дизассемблера - я не пойму ошибка обращения генерируется при отдаче первой же команды? Я не силен в ассемблере.

Какие "обращения"? У вас там только NOP-ы.

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


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

9 minutes ago, jcxz said:

Какие "обращения"? У вас там только NOP-ы.

Я не силен в ассемблере.

Вообще, увидев такую картину - куда копать?

Я кстати, убрал галку "run to main" - та же петрушка.

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


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

35 минут назад, MementoMori сказал:

Я пересмотрел внимательно MAP файл -по адресу 0x90000000 и выше - только данные, никакого кода.

А отладчик почему-то считает что там что-то есть :)

Есть еще еще командные файлы отладчика - ничего не подключено?

А может быть где-то лишний нолик в адресе написан. В коде или каком-то файле.

Поискать в исходном коде адрес 0x90000000 или соседние или еще какое обращение к прямым адресам.
 

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


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

1 hour ago, HardEgor said:

Есть еще еще командные файлы отладчика - ничего не подключено?

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

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

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

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

 

Как видите, пусто.

1 hour ago, HardEgor said:

Поискать в исходном коде адрес 0x90000000

Проверил, нигде.

Но строка QSPI_BASE (0x90000000)  обнаруживается в куче объектных файлов 

 

MAP-файл - там тоже вроде все ровно, но все же выложу его, может кто опытным глазом глянет

H743.map

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


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

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

 

 

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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