SM 0 14 октября, 2023 Опубликовано 14 октября, 2023 · Жалоба Добавлю в старую тему, на будущее кому-то, может, понадобится. Сделал тоже прошивку через JTAG, благо тому, что микроконтроллер быстрый, не было проблем в том, что бы запустить автомат полностью на 1.3 МГц (формирование TCK с этой частотой таймером, а прием с TDO и формирование TDI/TMS в прерывани). Просто реализовал SVF-плеер. Могу добавить, наверное, полезного - ПЛИС у меня GW1NS[R]-4C, то есть с ARM. Для прошивки оного девайса нужно сначала сформировать SVF-файл, содержащий и конфигурацию ПЛИС, и код для ARM. Для этого в программаторе говина надо сначала зайти в "Tools – Gowin files management", и там объединить конфигурацию ПЛИС .fs и фирмвейр арма .bin. Затем, сделать SVF файл в режиме прошивки "Embedded flash mode" с этим комбинированным .fs файлом. Ну и этот SVF "проиграть". Эта вся функциональность на сегодня доступна только в "бетах" говинного софта - то есть в этих бетах они не только отлаживают GW5, а и делают что-то для старых семейств. Спасибо, как всегда, Stewart Little Что заметил - для GW1NS[R]4, в документации для которого минимальная частота JTAG заявлена 1 МГц. Конвертер SVF файлов не дает дать её ниже 1.3 МГц. Если я работаю на 1 МГц, с файлом, сделанным для 1.3 МГц, то часто (не всегда) получаю в конце в статусе 0x39020 вместо 0x1F020 - некое недокументированное состояние. А на правильных 1.3 МГц проблем нет никаких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 15 октября, 2023 Опубликовано 15 октября, 2023 · Жалоба 9 часов назад, SM сказал: Сделал тоже прошивку через JTAG, благо тому, что микроконтроллер быстрый, не было проблем в том, что бы запустить автомат полностью на 1.3 МГц (формирование TCK с этой частотой таймером, а прием с TDO и формирование TDI/TMS в прерывани). Просто реализовал SVF-плеер. Удивительно. У меня на GW1N9 этот номер не прошел ни через OpenOCD, ни через мою прошивку для МК. При этом, судя по осциллографу, Gowinовский программатор делает не то же самое, что порождаемый им SVF, а в документации описано вообще нечто средне между этими двумя. Может генераторы SVF отличаются для разных ПЛИС одного семейства? Вы не сравнивали ваш SVF с описанием процесса программирования в документации? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба On 10/7/2022 at 12:16 PM, Realking said: Сделано и работает. bin файл из папки \impl\pnr On 10/7/2022 at 2:27 PM, Realking said: GW1N-9 но я программирую не флэш, а саму ПЛИС. Каким инструментом пользовались для программирования чипа ? Я юзаю OpenFPGALoader и он матом ругается на bin-файл, пишет про неверный формат файла. В исходнике gowin.cpp в комментарии пишется что "non fs file is only allowed with external flash". В китайской документации об этом вообще ни слова нигде не сказано. Штатный программатор тоже как-то не дружит с bin-файлами при внутреннем программировании ПЛИСины. Где тут собака порылась - ХЗ ... 🙄 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба 9 минут назад, okela сказал: Я юзаю OpenFPGALoader и он матом ругается на bin-файл, пишет про неверный формат файла. Потому что ему нужен FS файл из директории pnr, а не bin. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба 20 minutes ago, makc said: Потому что ему нужен FS файл из директории pnr, а не bin. Это я уже понял. Меня интересует вопрос: gowin-ПЛИС в принципе для внутреннего программирования переваривают bin-файлы или нет ? Судя по докам китайцев, никаких препятствий тут быть не должно, а на деле - засада. Да и в этой теме писали что bin-файл заливали внутрь ПЛИСины. Что мне может помешать если я изменю код файла gowin.cpp таким образом, чтобы он нормально переваривал bin-файл и получал с него нормальный поток данных для программирования ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба 4 минуты назад, okela сказал: Меня интересует вопрос: gowin-ПЛИС в принципе для внутреннего программирования переваривают bin-файлы или нет ? Судя по докам китайцев, никаких препятствий тут быть не должно, а на деле - засада. Нет, они работают со своим форматом FS: Цитата $ /opt/Gowin_V1.9.9Beta-5/Programmer/bin/programmer_cli --help usage: programmer_cli [-h] [--device <GWxx-x>] [--operation_index <int>] [--chain_index <int>] [--chain_size <int>] [--chain_ir <string>] [--frequency <string>] [--fsFile bitstream.fs] [--acFile ac.bin] [--csrFile csr.bin] [--mcuFile mcu.bin] [--fiFile userflash.fi] [--spiaddr 0x000000] [--output output.txt] [--key 00000000-00000000-00000000-00000000] [--keyread] [--keywrite] [--keylock] [--mfgiref data[9:0]] [--svfcreate] [--vme] [--svf_frequency <float>] [--channel <int>] [--location <int>] [--uid UID] [--lpt_address <int>] [--cable "Gowin USB CableFT2CH"] [--cable-index <int>] [--scan-cables] [--scan] [--filestransform <int>] [--files <string>] [--read-otp-addr] [--save-otp-addr] [--i2c-addr 1010000] bin они используют для прошивки флеша встроенного МК и т.п. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
okela 0 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба 2 minutes ago, makc said: Нет, они работают со своим форматом FS: bin они используют для прошивки флеша встроенного МК и т.п. Т.е. получается никак нельзя ему подсунуть сгенерированный bin-файл для заливки самой ПЛИС ? Просто проблема в большом размере этого бестолкового fs-формата, есть нехватка ресурсов памяти в системе и хочется сэкономить на размере прошивки. В fs-формате она занимает 3,5 Мбайта. А это овер-дофига. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 17 октября, 2023 Опубликовано 17 октября, 2023 · Жалоба 3 минуты назад, okela сказал: Т.е. получается никак нельзя ему подсунуть сгенерированный bin-файл для заливки самой ПЛИС ? Нет, он так не умеет - http://cdn.gowinsemi.com.cn/SUG502E.pdf 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sawanderer 2 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба 8 часов назад, okela сказал: Меня интересует вопрос: gowin-ПЛИС в принципе для внутреннего программирования переваривают bin-файлы или нет ? Если Вы имеете ввиду в данном вопросе, какие данные передаются непосредственно по JTAG (или другому загрузочному интерфейсу) в ПЛИС, то передается содержимое как раз bin-файла. fs-файл - это по сути просто представление битов bin-файла в текстовом виде (ASCII-символ на бит) с дополнительной информацией в виде комментариев вначале. По интерфейсу ASCII-коды не передаются, поэтому если программа принимает fs-файл на входе, то на каком-то уровне она по идее должна преобразовать его в бинарные данные, соответствующие .bin-файлу. fs-файл позволяет сделать дополнительные проверки на основе комментариев вначале (вроде типа устройства, для которого скомпилирован файл, до записи файла, или узнать USERCODE из файла и проверить после записи и т.п.), но непосредственно для прошивки принципиально содержимого .bin файла достаточно. OpenFPGALoader не пользовался, не знаю, почему они реализовали прием только fs-файлов (возможно как-то используют дополнительную информацию из начала). При этом родной Gowin Programmer вполне умеет записывать .bin файлы (хотя явно в документации это действительно не указано). В Gui-версии просто при выборе файла можно сменить фильтр с .fs файла на все файлы и выбрать .bin, а в cli-версии можно в опции --fsFile (несмотря на ее название) указать .bin-файл, и он его запишет. По крайней мере так было в той версии, что я пользовался (тогда была 1.9.8.07/1.9.8.10). В свое время, когда писал свою реализацию прошивки Gowin с контроллера, как раз сравнивал поведение своей программы и Gowin Programmer именно на разных .bin файлах. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба 15 часов назад, okela сказал: Т.е. получается никак нельзя ему подсунуть сгенерированный bin-файл для заливки самой ПЛИС ? Просто проблема в большом размере этого бестолкового fs-формата, есть нехватка ресурсов памяти в системе и хочется сэкономить на размере прошивки. В fs-формате она занимает 3,5 Мбайта. А это овер-дофига. Может сам подход к задаче не совсем правильный. Мы у себя тоже практикуем подключение с заливкой от МК в ПЛИС без использования внутреннего FLASH-а, в основном для реализации возможности удаленного обновления. Используем штатную загрузку ПЛИС по SPI используя как раз bin-файл, который внутри контроллера можно хранить еще и в сжатом виде. Использование же JTAG представляется излишне сложным, а хранение на борту контроллера таких объемов загрузочной информации совершенно не оправданным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба В 17.10.2023 в 18:24, makc сказал: Нет, он так не умеет - http://cdn.gowinsemi.com.cn/SUG502E.pdf Разве??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба 8 минут назад, StewartLittle сказал: Разве??? В документации про это ничего нет. 😞 А CLI может так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба В 18.10.2023 в 10:38, makc сказал: В документации про это ничего нет. 😞 А CLI может так? Может: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
makc 215 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба 13 минут назад, StewartLittle сказал: Может: В общем китайской документации верить нельзя ни в чём: --fsFile bitstream.fs, --fs bitstream.fs, -f bitstream.fs Define the .fs file path. С другой стороны непонятно, как он в случае bin проверяет соответствие между тем что и куда шьёт, ведь в заголовке bin эта информация отсутствует. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
StewartLittle 45 18 октября, 2023 Опубликовано 18 октября, 2023 · Жалоба В 18.10.2023 в 11:10, makc сказал: В общем китайской документации верить нельзя ни в чём: https://www.youtube.com/watch?v=pgYKbfBkK8k Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться