MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Поигрался с платой STM32F746G-Disco и TouchGFXDesigner. Все предельно просто - кидаешь картинку на форму, указываешь в настойках ее размещение (если internal section - то она попадет во флеш контроллера, если external section - то во внешнюю память), генерируется проект, он открывается в Keil, прошивается контроллер - вуаля - картинка в дисплее. У меня вопрос - а как она туда попадает при прошивке? Прошивается ведь флеш контроллера и все.... Сам контроллер с QSPI при этом не общается. Решил что это какая-то фишка встроенного в отладочную плату ST-Link - то есть может быть он как-то распознает некие команды и программирует QSPI Flash - посмотрел схему платы Disco - ничего такого нет..... В чем фокус? Или я чего-то не понимаю и картинки все таки в мкроконтроллере, а не во внешней памяти? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 34 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Хм.... у меня в сгенерированном проекте только первый пункт из тех, что приведены на скриншоте. По идее программа должна была сгенерировать правильные настройки, но этого не случилось. Значит картинка у меня во внутреннем флеше? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 34 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 8 minutes ago, MementoMori said: Хм.... у меня в сгенерированном проекте только первый пункт из тех, что приведены на скриншоте. По идее программа должна была сгенерировать правильные настройки, но этого не случилось. Значит картинка у меня во внутреннем флеше? На картинке есть кнопочка Add Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Вы не поняли. Я знаю как это добавить, но я удивляюсь почему программа генерации проекта это не сделала (у меня нет двух ваших пунктов), но проект работает. Значит картинка во внутреннем флеше. Что странно, ведь если в тексте программы объявлен адрес внешней памяти то.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
izerg 9 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 10 hours ago, MementoMori said: Сам контроллер с QSPI при этом не общается. Решил что это какая-то фишка встроенного в отладочную плату ST-Link - то есть может быть он как-то распознает некие команды и программирует QSPI Flash В чем фокус? Или я чего-то не понимаю и картинки все таки в мкроконтроллере, а не во внешней памяти? ST-Link - Дает доступ к памяти и ядру процессора, почти как j-tag. ПО STM - с помощью доступа к железу контроллера умет прошивать разные флешки, подключенные к контроллеру. STM32CubeProg - посмотрите для примера. Но, все же, посмотрите репорты самого Keil - после сборки проекта - он генерирует подробный отчет, что , куда положил, в какую область, какой объем занимает. Вполне может быть, что маленькие картинки спокойно лежат во внутреннем флеше - зависит от настроек сборки проекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 13 minutes ago, izerg said: ST-Link - Дает доступ к памяти и ядру процессора, почти как j-tag. ПО STM - с помощью доступа к железу контроллера умет прошивать разные флешки, подключенные к контроллеру. STM32CubeProg - посмотрите для примера. Мне кажется что те настройки, что привел x893 - это для того чтобы записать во внешнюю флеш принудительно, в лоб. А то, что описали вы - скорее всего действительно по каким-то директивам система понимает, что нужно пообщаться не только с внутренней флеш, но и с внешней. Вот как объявлена картинка в сгенерированном коде Quote LOCATION_PRAGMA("ExtFlashSection") KEEP extern const unsigned char _blue_check_buttons_check_mark_pressed[] LOCATION_ATTRIBUTE("ExtFlashSection") = // 44x44 ARGB8888 pixels. { Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
izerg 9 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 2 minutes ago, MementoMori said: Вот как объявлена картинка в сгенерированном коде Да это понятно, посмотрите репорт файл после компиляции - там расписано - что в каком флеше лежит. и да... вы когда программу меняете... Кейл стирает только микроконтроллер, если ему команды не даны - то внешнюю флеш - он трогать не будет. Если там осталась картинка от прошлой прошивки ... то код вполне спокойно может получить эти данные :) Для полной уверенности - стираете принудительно внешнюю флеш и сам контроллер, компилируете заново проект и прошиваете. Если работает с картинками - смотрите отладчиком - куда прошились данные картинки. И еще - Keil - ну очень долго шьет внешнюю флешку, это косвенно показатель. Долго по сравнению с "прошить контроллер". Встречный вопрос- а зачем нужно с этим разбирать? что-то не работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 1 minute ago, izerg said: Встречный вопрос- а зачем нужно с этим разбирать? что-то не работает? Нет, просто я и не подозревал, что есть такая возможность - прошивка внешней флеш контроллером не во время его работы, а во время прошивки. Был готов морально к геморрою, составлению карты адресного пространства, расчету адресов, бубнами с заливкой во внешнюю флеш картинок. А тут пару кликов - и все. Вот вам и калокуб))) Понятно, что созданный им код нужно будет еще оптимизировать и чистить, но такого "сервиса" не ожидал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
izerg 9 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Не, ну... отставляем в сторону TouchGFX, CubeMX... и делаем все ручками :) Тогда - нужны вон те настройки в проекте Кейла (хотя они и так нужны, иначе он не поймет что такое ExtFlashSection ). Но и в этом случае - вы получите все го лишь два разных файла прошивки - отдельно прошивку для контроллера (его внутренней флешки) и отдельно прошивку для внешней флешки ( а бывает что их стоит не одна :)) ... а так - Вам еще повезло с " STM32F746G-Disco " - для нее проекты сделаны более / менее "ровно". Для STM32F469 - проект "из коробки" работает - если прошивать самим TouchGFX :) Кейл с нуля проект от TouchGFX - не соберет, "ему там чего-то не хватает".:) Так что - попробовать, убедится что железо работает, и драйвера видят все чипы - на готовых проектах - хорошо, а вот дальше - все руками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 33 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 17 минут назад, MementoMori сказал: А тут пару кликов - и все. Вот вам и калокуб))) Да конечно все здорово, только при одном условии - если повторите в точности подключения, как на вашей дискавери, а потом вдруг придется проц поставить немного другой или подключить, как удобнее не инженерам СТ, а вам... Вот такие пляски с бубном начнутся, потому, что вы не представляете, как все этот куб делал - два ж клика всего-то, вот повеселитесь бывало... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
izerg 9 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба Ну тогда придется делать не 2 а 4 клика, в том же ST-Link ... 2 клика - зашить проц, и еще 2 клика - зашить флешку. ... а то если очень все "через пень-колоду" подключено, например штатный QSPI- чем то занят, то можно и свой загрузчик написать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба 38 minutes ago, izerg said: посмотрите репорт файл после компиляци Не подскажете, где он лежит и как хотя бы называется? Калокуб для Hello World генерирует миллиард файлов. 17 minutes ago, mantech said: если повторите в точности подключения, как на вашей дискавери, а потом вдруг придется проц поставить немного другой или подключить, как удобнее не инженерам СТ, Вот я и пытался поглядеть, нет ли чего особенного в подключении. Не увидел. ЕДинственное - у меня две флешки, а на дискавери одна, но то такое. Я в этом отношении насторожен, не исключаю, что моя плата этим чудесным свойством обладать не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
izerg 9 8 декабря, 2019 Опубликовано 8 декабря, 2019 · Жалоба не нравится куб - пишите самостоятельно :) Файлы репорты сборки - находятся там, куда Keil их положил, и Куб к ним отношения не имеет. Файлы появятся в выходной папке, после того - как проект скомпилировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 34 9 декабря, 2019 Опубликовано 9 декабря, 2019 · Жалоба Расширение для прошивки чего угодно можно самому написать и Keil его будет использовать и записывать куда надо. Нажмите кнопку Add и посмотрите ВНИМАТЕЛЬНО на имя файла. Там же лежит шаблон. После изучения шаблона - делайте своё расширение (.elf) под что угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться