alex1985 0 23 апреля, 2018 Опубликовано 23 апреля, 2018 · Жалоба Чтобы однозначно удостовериться в правильной загрузке ПЛИСа обычно в самой прошивке ПЛИС предусматривают отправку сообщения с ПЛИС в микроконтроллер в любом виде по любому выводу. Если после загрузки ПЛИСа микроконтроллер получает это сообщение, значит загрузка ПЛИСа прошла успешно. Я бы отправлял эти сообщения время от времени во время работы устройства, чтобы удостовериться, что прошивка не сбилась в ходе работы и отрабатывает верно. В противном случае просто перезагружаем ПЛИС прошивкой заново. Всяко надёжнее будет, чем просто грузить ПЛИС с ПЗУшки. Спасибо, учту! Связь МК с ПЛИС планирую осуществлять по SPI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 25 апреля, 2018 Опубликовано 25 апреля, 2018 · Жалоба Всем привет. Занимаюсь вот чем-то подобным. Пишу бутлоадер для устройства. Программа на компьютере открывает rbf файл и шлет его кусками по 256 байт на устройство, плисина заливает эти куски постранично во флешку EPCS64. Перед записью производится стирание нужного участка флехи посекторно, участок заведомо больше rbf файла. После записи каждой страницы производится чтение ее из флехии и сравнение с буфером, ошибок нет, пишется правильно. Пишу по нулевому адресу. Проблема в том, что после перезагрузки плисина не грузится. Уже не знаю что делать, ошибок не вижу. Байты перед записью во флеху переворачиваю задом-наперед. Подскажите что-нибудь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 апреля, 2018 Опубликовано 25 апреля, 2018 · Жалоба Нужно сигналы CONFIG, STATUS, CONF_DONE использовать для инициализации загрузки и контроля. Собственно, больше никаких подтверждений не нужно - это ответ и на предыдущий вопрос в теме. И, повторю для невнимательных, я ничего не переворачиваю задом наперед. Просто посылаю байты с нужного конца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 25 апреля, 2018 Опубликовано 25 апреля, 2018 · Жалоба И, повторю для невнимательных, я ничего не переворачиваю задом наперед. Просто посылаю байты с нужного конца. И чем это отличается одно от другого ? Если я работаю с массивом 256*8 бит, то проще отобразить биты данных еще на моменте формирования буфера, чем потом сушить мозг над адрессацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 25 апреля, 2018 Опубликовано 25 апреля, 2018 · Жалоба И чем это отличается одно от другого ? Если я работаю с массивом 256*8 бит, то проще отобразить биты данных еще на моменте формирования буфера, чем потом сушить мозг над адрессацией. Тем, что процессор выполняет меньше команд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 25 апреля, 2018 Опубликовано 25 апреля, 2018 (изменено) · Жалоба Тем, что процессор выполняет меньше команд. У нас немного разные сиcтемы. У меня нет процессора и все делает плисина. В Верилоге обратить байт этo просто byte <= byte[0+:7] Rbf ,шьется во штатную флеш из которой она же потом грузится в режиме AS. Изменено 25 апреля, 2018 пользователем rolin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 28 апреля, 2018 Опубликовано 28 апреля, 2018 · Жалоба Разобрался, все работает. Оказалось, что в Верилоге byte <= byte[0+:7] не реверсирует биты, несмотря на кажущуюся логичность записи. А вообще - берем rbf файл, пишем его по нужному адресу во флешку не забыв реверсировать биты в каждом байте и вперед, все работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 29 апреля, 2018 Опубликовано 29 апреля, 2018 · Жалоба Браво! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 2 мая, 2018 Опубликовано 2 мая, 2018 · Жалоба Исходники проекта бутлоадера https://github.com/Dfinitski/Odyssey-2_2017...ssey_BL_2.0.zip И программа на Питоне для ПК для работы с ним https://github.com/Dfinitski/Odyssey-2_2017...tLoader_2.0.pyw Бутлоадер реализует 4 слота для хранения прошивок, один из них используется для загрузки самого бутлоадера ( по нулевому адресу). Написано для специфичного девайса, коряво, но работает. Модуль Remote не обновлять, его предупреждение игнорировать, иначе не будет работать, не знаю почему. Также может представлять интерес Gigabit Ethernet trough RGMII стек с ARP, ICMP, UDP уровнями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 2 мая, 2018 Опубликовано 2 мая, 2018 · Жалоба Оказалось, что в Верилоге byte <= byte[0+:7] не реверсирует биты, несмотря на кажущуюся логичность записи. А просто выбрать биты Y = X[0:7]? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 2 мая, 2018 Опубликовано 2 мая, 2018 · Жалоба А просто выбрать биты Y = X[0:7]? Ну так это то же самое. Будет выбран указанный диапазон линий, старший к старшему, младший к младшему, без реверса. Видимо сама структура Плис не позволяет так вольно обходиться с адрессацией. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 2 мая, 2018 Опубликовано 2 мая, 2018 · Жалоба Ну так это то же самое. Будет выбран указанный диапазон линий, старший к старшему, младший к младшему, без реверса. Видимо сама структура Плис не позволяет так вольно обходиться с адрессацией. Обычно биты нумеруются так [MSB:LSB]. И, если заметили, я присвоил игреку икс. Т.е., напишите так, конкретно, и биты прицепятся, как нужно. Y[7:0] = X[0:7]. Это же просто "провода". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rolin 0 2 мая, 2018 Опубликовано 2 мая, 2018 · Жалоба Обычно биты нумеруются так [MSB:LSB]. И, если заметили, я присвоил игреку икс. Т.е., напишите так, конкретно, и биты прицепятся, как нужно. Y[7:0] = X[0:7]. Это же просто "провода". Увы, нет. В Верилоге идентично, что 7:0 что 0:7. Вы просто указываете необходимый диапазон адресов в удобной для вас форме, но реверса не будет. Эта оказия часто обсуждается, можете по стековерфлоу пройтись. Говорят, что в SystemVerilog есть спецкоманда компилятора для реверса адрессации, но я не особо специалист в этих вещах, просто хобби. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Realking 0 3 мая, 2018 Опубликовано 3 мая, 2018 · Жалоба В Верилоге идентично, что 7:0 что 0:7. а можно об этом поподробнее, где это написано???? я просто хочу сказать, что это не идентично в 1ом случае старший бит имеет индекс 7, во 2ом - 0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 3 мая, 2018 Опубликовано 3 мая, 2018 · Жалоба Увы, нет. В Верилоге идентично, что 7:0 что 0:7. Бред сивой кобылы. Ну не нравится, напишите так: Y[7:0] = {X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7]}. Провода, они и есть провода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться