реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Использование epcs_flash_controller, Не получается получить доступ к флеш
FLTI
сообщение Apr 20 2015, 12:31
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(serjj @ Apr 20 2015, 15:21) *
Если использовать Nios flash programmer, утилиту встроенную в Eclipse, то да. Логично предположить, что если писать "вручную", то тоже да.

Судя по Вашему ответу Вы меня не правильно поняли.
Я просил сравнить 2 варианта записи одного и того же .jic файла в EPCS в 2-х вариантах:
1). в Квартусе через JTAG с помощью USB Blaster
2). командами NIOS-а используя соответствующие команды драйвера epcs_commands.h

Вопрос:
При условии корректной записи в обоих вариантах в EPCS получится один и тот же битстрим или будут отличаться?
Другими словами, Квартус через JTAG с помощью USB Blaster-а записывает .jic файл в EPCS один в один или что-то в нём меняет перед записью?
Go to the top of the page
 
+Quote Post
serjj
сообщение Apr 20 2015, 13:49
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Вопрос:
При условии корректной записи в обоих вариантах в EPCS получится один и тот же битстрим или будут отличаться?
Другими словами, Квартус через JTAG с помощью USB Blaster-а записывает .jic файл в EPCS один в один или что-то в нём меняет перед записью?


Нет, не меняет. Просто записывает его и всё. И если ниосом залить туже самую прошивку, то во флешке будет лежать тоже самое.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 15:19
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(serjj @ Apr 20 2015, 16:49) *
Нет, не меняет. Просто записывает его и всё. И если ниосом залить туже самую прошивку, то во флешке будет лежать тоже самое.

Это Вы знаете на собственном опыте или из теории?
Вот здесь я проверил - прочитанные из EPCS данные ( по крайней мере с нулевого смещения ) не совпадают с ранее туда записанным .jic файлом.
Go to the top of the page
 
+Quote Post
tvcam
сообщение Apr 24 2015, 16:37
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Насчёт меняет или не меняет: посмотрел свои исходники замены прошивки посредством Ниоса, почему то переставлены биты в байтах зеркально и вырезано 92(+-1) байта с начала. В качестве файла используется .jic. Но у меня интерфейс SPI обмена с EPCS, что в Ниосе, что в FPGA написаны саморучно по той простой причине что нужно было сильно ужаться. Ещё раз: биты переставлены хотя команды управления EPCS идут не переставленные.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 16:52
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(tvcam @ Apr 24 2015, 19:37) *
Насчёт меняет или не меняет: посмотрел свои исходники замены прошивки посредством Ниоса, почему то переставлены биты в байтах зеркально и вырезано 92(+-1) байта с начала. В качестве файла используется .jic. Но у меня интерфейс SPI обмена с EPCS, что в Ниосе, что в FPGA написаны саморучно по той простой причине что нужно было сильно ужаться. Ещё раз: биты переставлены хотя команды управления EPCS идут не переставленные.

Вот это сюрприз!
А это где-то документировано у Альтеры?
Мне нужно исходный .jic файл, записанный в EPCS по по адресу 0x00 заменить на другой .jic файл.

Вырезано 92(+-1) байта с начала - в смысле заменено на 0xff ?
Я вижу, что именно так, но поскольку у меня маленькое окошко просмотра - всего 16 байт ( всё под завязку в ПЛИС заполнено ) , то пока не могу всю прошивку прочитать ( для этого надо прогу соответствующую писать - это чуть позже ).
Go to the top of the page
 
+Quote Post
krux
сообщение Apr 24 2015, 16:55
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата
прочитанные из EPCS данные ( по крайней мере с нулевого смещения ) не совпадают с ранее туда записанным .jic файлом.

hint:
jic это не просто sof + hex(elf? или ещё что у вас там)

в нём ещё указана прошивка-загрузчик (из состава квартуса), обеспечивающая доступ к микросхеме EPCS через JTAG, и использующаяся на время прошивки этих самых (sof + hex) через JTAG при помощи quartus programmer.

поэтому используйте смещение.
либо откажитесь от jic.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 17:00
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(krux @ Apr 24 2015, 19:55) *
поэтому используйте смещение.

Мне нужно исходный .jic файл, записанный в EPCS по адресу 0x00 заменить на другой .jic файл командами epcs_write_buffer ( из драйвера epcs_commands.h ).
Как использовать смещение, поясните пожалуйста?
Go to the top of the page
 
+Quote Post
tvcam
сообщение Apr 24 2015, 17:14
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



>>Вырезано 92(+-1) байта с начала - в смысле заменено на 0xff ?
Просто выброшены.
На сколько помню у меня тоже было под завязку забита FPGA , поэтому и переписал всё. Стандартный модуль обмена с EPCS в FPGA занимал драгоценные блоки памяти и ресурсы (триггера) и ещё при подключении функций обмена в Ниосе (типа epcs_commands.h) жрёт ещё пару килобайт или больше. И всё это работает чёрти знает как медленно, перегоняет из блока памяти из FPGA в массив выделенный в Ниосе. Самописный- в Ниосе килобайт 700 (включая буфер 256) и в FPGA 35 триггера.
Считайте EPCS Ниосом c адреса 0x00, сравните с .jic со смещением 92 развернув байты.

Сообщение отредактировал tvcam - Apr 24 2015, 17:19
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 17:23
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



В EPCS c 0x00 первые 16 байт - это 0xFF, остальные пока не смотрел.
Прочитано командой epcs_read_buffer из драйвера epcs_commands.h.
Go to the top of the page
 
+Quote Post
tvcam
сообщение Apr 24 2015, 17:39
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Цитата(FLTI @ Apr 24 2015, 20:23) *
В EPCS c 0x00 первые 16 байт - это 0xFF, остальные пока не смотрел.
Прочитано командой epcs_read_buffer из драйвера epcs_commands.h.

Посмотрел несколько файлов .jic hex редактором начиная с 92 байта практически у всех идёт 0xff.
В некоторых вторые 16 байт после 92 уже не 0xff, а в некоторых и дальше 0xff. Это наверно зависит от прошивки.
Там в hex редакторе чётко видно что до 92 байта идёт текстовая информация.
А вот первые три байта с 0x00 в файле .jic похоже равны всегда 4A4943 по ним я и определяю что файл правильный для FPGA.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 17:47
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Да, .jic файл сразу начинается с 0x4a 0x49 0x43, что соответствует кодам букв JIC , да - до 0x92 байта идёт текстовая информация.
Байт 0x92 == это 0x20.
Далее в .jic файле идут 10 байт 0x00, а из EPCS по 0x00 читаются 0xFF.
То есть даже вырезка 0x92 байт текстовой информации не даёт совпадения между .jic файлом и данными в EPCS с адреса 0x00.

Попробую прочитать побольше данных из EPCS ( хотя это муторно маленьким окном в 16 байт ) и тогда наверное будет ясна закономерность.
В том числе учту Вашу информацию о том, что "переставлены биты в байтах зеркально".
Go to the top of the page
 
+Quote Post
tvcam
сообщение Apr 24 2015, 18:02
Сообщение #27


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435



Непонятно, что вам непонятно. Сначала записать посредством JTAG файл .jic в EPCS, проект должен работать(насколько я понял вы это умеете). Считать не первые 16, а вторые или следующие байты из EPCS с помощью ниоса, байты должны отличаться от 0xff. Найти эти байты в .jic файле на компьютере с помощью HEX редактора. Сделать вывод о том нужно их переворачивать (менять местами биты) и сделать вывод где лежат эти байты в EPCS (смещение). На сколько я понимаю по исходникам они будут лежать со смещением +92. Затем Ниосом читать файл .jic на компьютере (какой у вас интерфейс обмена с компьютером я не знаю), записывать этот файл в EPCS стандартными командами, только первые 92 байта точно не записывать, и если нужно разворачивать биты. 92-й байт из файла .jic должен записаться в EPCS по нулевому адресу. Возможно я где то ошибаюсь, давно это было, но у меня вроде так.
Go to the top of the page
 
+Quote Post
doom13
сообщение Apr 24 2015, 18:02
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



В начале JIC-файла идёт шапка (Q2 Programmer не шьёт её в EPCS), её надо отбросить, а остальное писать в EPCS (ещё "хвост" можно обрезать), а проще сгенерить RPD-файл и его заливать epcs_flash_controller-ом (сообщение #15). В RPD-файле - только полезные данные. Точно не поню, но, вероятно, придётся поменять порядок бит в каждом байте при записи RPD в EPCS.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Apr 24 2015, 18:39
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(doom13 @ Apr 24 2015, 21:02) *
а проще сгенерить RPD-файл и его заливать epcs_flash_controller-ом (сообщение #15). В RPD-файле - только полезные данные. Точно не поню, но, вероятно, придётся поменять порядок бит в каждом байте при записи RPD в EPCS.

Да, всё точно так! В RPD-файле - только полезные данные.
Благодарю Вас, doom13 и tvcam. beer.gif

Go to the top of the page
 
+Quote Post
doom13
сообщение Apr 24 2015, 18:46
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(FLTI @ Apr 24 2015, 20:47) *
Попробую прочитать побольше данных из EPCS ( хотя это муторно маленьким окном в 16 байт ) и тогда наверное будет ясна закономерность.

Может и не новость, но в Q2 Programmer-e есть галка examine. C её помощью можно считать всё содержимое EPCS, сохранить в JIC.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016