MementoMori 4 7 февраля, 2021 Опубликовано 7 февраля, 2021 · Жалоба Добрый вечер. Есть проект под Keil, для STM32H743BIT6 (2 Mb Flash, 1Mb RAM). Недавно проект сильно разжирел - я импортировал в него блок кода TouchGFX, который раньше нормально, без проблем грузился в STM32F746BGT6 Проект компилируется,флешь шьется, а дальше, примерно здесь Вылазит ошибка После чего контроллер ресетится и работает без проблем. Беда только в том, что отлаживать не могу, не коннектится отладчик Проблема исчезает если в sct файле закомментировать ExtFlashSection и FontFlashSection ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00100000 { ; load region size_region ER_IROM1 0x08000000 0x00100000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00050000 { ; RW data .ANY (+RW +ZI) } } LR_EROM1 0x90000000 0x2000000 { ; load region size_region ER_EROM1 0x90000000 0x2000000 { ; load address = execution address *.o (ExtFlashSection) ;*.o (TextFlashSection) *.o (FontFlashSection) } } Но, сами понимаете, пойти на это нельзя, без QSPI я не могу. Может тут проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 7 февраля, 2021 Опубликовано 7 февраля, 2021 · Жалоба Xtal (MHz) 240.0 ( \-8Ж )- внешнее тактирование (кварц? генератор???) Ну и как обычно: в коде отрубается JTAG (проц-то пин-в-пин?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 7 февраля, 2021 Опубликовано 7 февраля, 2021 · Жалоба 32 minutes ago, Obam said: Xtal (MHz) 240.0 ( \-8Ж )- внешнее тактирование (кварц? генератор???) Кварц 8 Мгц. В проекте под STM32F746 там 200 стоит (куб так вписал), но это не мешает ничему. Но все же - поставил 8 Мгц - не помогло. 33 minutes ago, Obam said: Ну и как обычно: в коде отрубается JTAG (проц-то пин-в-пин?) Ничего не отрубается. Loading object code - это что-то грузится в оперативную память, так я понимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 февраля, 2021 Опубликовано 8 февраля, 2021 · Жалоба Не может так быть, что по какой-то причине отладчик пытается что-то прочесть непосредственно по адресу 0х90000000, при старте, когда qspi ещё не инициализирована и не включена в режим memory mapped? Каковы могут быть причины этого, почему на это влияет внесение изменений в sct файл? Я смотрел в мар файл, вроде бы по адресу 0х90000000 только данные, никаких функций нет.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 8 февраля, 2021 Опубликовано 8 февраля, 2021 · Жалоба Ну если 240МГц не влияют, тогда как память из qSPI проходит по категории "on-chip" да ещё и "по дефолту"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 20 hours ago, Obam said: Ну если 240МГц не влияют, тогда как память из qSPI проходит по категории "on-chip" да ещё и "по дефолту"? Как бы там ни было, это генерирует КУБ, и в случае с 746 камнем это прокатывало. Я не нашёл информацию, может кто подскажет - "loading object code" - что это за процесс, что откуда и куда грузится, и где прописывается адрес "откуда" и адрес "куда"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 1 час назад, MementoMori сказал: Я не нашёл информацию, может кто подскажет - "loading object code" - что это за процесс, что откуда и куда грузится, и где прописывается адрес "откуда" и адрес "куда"? Что-то у вас с отладчиком, может быть ST-Link драйвер устарел или прошивка отладчика или сам Keil? А "loading object code" поискать в хэлпе Keil пробовали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 32 minutes ago, HardEgor said: Что-то у вас с отладчиком, может быть ST-Link драйвер устарел Как вариант - обновил) получив новые баги. У меня китайский свисток. Спасибо за идею - есть у меня discovery, думаю, что смонтированный на нем STLINK лучше китайского? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба Не.... подключился через дискавери, обновил его прошивку, драйвер ST-Link, как оказалось, у меня последний. Бестолку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба Если я убираю галку "load application at startup", то контроллер стартует, но я не могу ставить брейкпоинты, переменные в окне watch не читаются, доступа к памяти нет.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 3 минуты назад, MementoMori сказал: Если я убираю галку "load application at startup", то контроллер стартует, но я не могу ставить брейкпоинты, переменные в окне watch не читаются, доступа к памяти нет.... Так он наверное просто не умеет отлаживать программу в QSPI памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба Just now, HardEgor said: Так он наверное просто не умеет отлаживать программу в QSPI памяти. А почему тогда в проекте на F746 контроллере АНАЛОГИЧНЫЕ настройки не вызывают этой проблемы? Если я закомментирую в SCT файле ExtFlashSection, то такой проблемы не возникает. Но при одном условии - что все, что я хотел разместить в qspi, влазит во внутреннюю флеш. А если у меня информации 10 мегабайт, то проект просто не линкуется. По понятным причинам. Так вот в 764 проце - как я делал - писал LR_EROM1 0x90000000 0x2000000 { ; load region size_region ER_EROM1 0x90000000 0x2000000 { ; load address = execution address *.o (ExtFlashSection) ;*.o (TextFlashSection) *.o (FontFlashSection) } } добавлял алгоритм прошивки qspi - прошивал. Затем убирал из настроек алгоритм, чтобы не шить qspi каждый раз. IDE мне сообщала об отсутствии алгоритма, пропускала эту секцию, прошивала контроллер и спокойно его запускала. Что не так с H743? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 76 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 1 минуту назад, MementoMori сказал: А почему тогда в проекте на F746 контроллере АНАЛОГИЧНЫЕ настройки не вызывают этой проблемы? Не знаю, вон пишет Partial Programming, может отладочную информацию не смог загрузить? Так-то, прежде чем гадать и "менять бл$дей", вначале стоит разобраться что за ошибки он пишет и какие он них могут быть последствия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба 4 minutes ago, HardEgor said: Не знаю, вон пишет Partial Programming, может отладочную информацию не смог загрузить? Это он пишет потому что в sct файле есть информация о размещении данных в qspi, а алгоритм прошивки для неё не указан. Вот он и прошивается только внутреннюю флеш, а на qspi, ранее прошитое, не тратит времени. Так надо. И это правильно. Это не ощибка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Obam 37 9 февраля, 2021 Опубликовано 9 февраля, 2021 · Жалоба Как бы там ни было, это генерирует КУБ, и в случае с 746 камнем это прокатывало. Да уж, КУБ - это аргумент, "мощнее" только ЗВЁЗДЧАТЫЙ РОМБОДОДЭКАЭДР ((-8Ж Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться