|
Работа из EPCS |
|
|
|
Jul 28 2010, 23:49
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Пока пробовал поставить epcs virtual memory как компонент SOPC builder, но возникли проблемы при компиляции: Код Error: One or more components could not be located (epcs_virtual_memory). Check IP Search Path under Tools->Options... in SOPC Builder. Error: System generation failed. Хотя все пути до файлов проверил  Мой предыдущий вариант про файл подкачки в принципе работает, однако приходится в EPCS записывать машинный (откомпилированный) код, который я нашел только в дебугере (скопировал из памяти код готовых команд). Ну а в основной программе, извлекаю часть этого кода и делаю к нему переход. Но тут очень много проблем, например работа с библиотеками очень затруднительна(( А искать машинный код очень тяжело... Может есть какие варианты?
|
|
|
|
|
Jul 29 2010, 02:28
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(Alezi @ Jul 29 2010, 08:04)  Либо, необходимо использовать утилиту elf2flash? да, примерно так: elf2flash --epcs --input="hello_world.elf" --output="output_file_name.flash" Цитата(Alezi @ Jul 29 2010, 08:04)  Делал и new component (хотя при указании в IP Search Path ->Tools->Options компонент появляется в общем списке), но он ругается на большое число "лишних" сигналов, да и сам компонент при этом выглядит не так как прежде... скриншоты с руганью покажите, скорее всего он не распознал по именам сигналов типы интерфейсов
|
|
|
|
|
Jul 29 2010, 05:55
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Цитата да, примерно так: elf2flash --epcs --input="hello_world.elf" --output="output_file_name.flash" Файл сделал, однако, как я думаю все это бесполезно...буду копать в сторону epcs virtual memory. Проблемы при создании new component:
|
|
|
|
|
Jul 29 2010, 06:17
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(Alezi @ Jul 29 2010, 12:55)  Файл сделал, однако, как я думаю все это бесполезно...буду копать в сторону epcs virtual memory. почему бесполезно? насчет интерфейсов - так и есть, он не распознал. должно быть 2 интерфейса Avalon-MM Slave, 1 clockreset, и export для шины ASMI (которая к EPCS идет). кто такие FLASH_ERASED* не понятно, по идее они внутри должны быть, процессор о них типа не знает. вообще пихать все в один файл не есть гут, имхо. лучше по модулям разбить.
|
|
|
|
|
Aug 2 2010, 23:17
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Вроде собрать блок в SOPC builder удалось, правда в квартусе не видны asmi интерфейсы и FLASH_ERASED торчат наружу....Проблема теперь в следующем: Код Error: Cannot place the following nodes Error: Cannot place node "system:inst3|epcs_virtual_memory_classic_0:the_epcs_virtual_memory_classic_0|epcs_virtual_memory:the_epcs_virtual_memory|epcs_virtual_memory_ep:end_point|asmi_miso" of type ASMI block Работаю на CycloneII и пока не нашел к чему зацепить эти выводы....на Cyclone III вроде все проще...
|
|
|
|
|
Aug 3 2010, 01:13
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Ругается на закоментированную строку: Код --synthesis read_comments_as_HDL on --SIGNAL asmi_clk, asmi_cs, asmi_mosi, asmi_miso : std_logic; --synthesis read_comments_as_HDL off SIGNAL asmi_clk_int : std_logic; SIGNAL asmi_cs_int : std_logic; После того как сторка была удалена, появилось: Код Error (10482): VHDL error at epcs_virtual_memory.vhd(166): object "asmi_clk" is used but not declared и направляет на строку: Код asmi_clk <= asmi_clk_int; Сам ASMI_CLK: OUT std_logic; указан в описании PORT(); Цитата попробуйте в Assignment Editor добавить опцию enable_asmi_for_flash_loader on Нашел описание Цитата A logic option that enables the Active Serial Memory Interface (ASMI) for Flash Loader IP blocks. This option can be set in the Assignment Editor. но саму опцию так и не нашел(( На всякий случай прописал в Tcl Scripts Код set_global_assignment -name ENABLE_ASMI_FOR_FLASH_LOADER on И еще, т.к. работаю с CycloneII пришлось подредактировать файл class.ptf для epcs_virtual_memory. По умолчанию там работа с Cyclone.
|
|
|
|
|
Aug 3 2010, 02:12
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(Alezi @ Aug 3 2010, 08:13)  Ругается на закоментированную строку: Код --synthesis read_comments_as_HDL on --SIGNAL asmi_clk, asmi_cs, asmi_mosi, asmi_miso : std_logic; --synthesis read_comments_as_HDL off SIGNAL asmi_clk_int : std_logic; SIGNAL asmi_cs_int : std_logic; а если так: Код SIGNAL asmi_clk, asmi_cs, asmi_mosi, asmi_miso : std_logic; SIGNAL asmi_clk_int : std_logic; SIGNAL asmi_cs_int : std_logic;
|
|
|
|
|
Aug 3 2010, 23:26
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Как оказалось комментарий типа: Код synthesis read_comments_as_HDL on/off видится в Quartus как обычный код. И это возвращает обратно к ошибке: Код Error: Cannot place node "system:inst3|epcs_virtual_memory_classic_0:the_epcs_virtual_memory_classic_0| epcs_virtual_memory:the_epcs_virtual_memory|epcs_virtual_memory_ep:end_point|asmi_miso" of type ASMI block Из топика C2 & C3 AS Mode EPCS without Altera EPCS IP понял, что идет работа с ASMI устройством... В чем ошибка, пока не понял ...разбираюсь
|
|
|
|
|
Aug 4 2010, 01:32
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Уже добавлял в проект altasmi_parallel из megafunction и там нашел тот же код: Код COMPONENT cycloneii_asmiblock PORT ( data0out : OUT STD_LOGIC; dclkin : IN STD_LOGIC; oe : IN STD_LOGIC := '1'; scein : IN STD_LOGIC; sdoin : IN STD_LOGIC ); END COMPONENT; Код cycloneii_asmiblock1 : cycloneii_asmiblock PORT MAP ( data0out => asmi_miso, dclkin => asmi_clk, oe => '0', scein => asmi_cs, sdoin => asmi_mosi ); но от всего этого легче не стало...(( Еще одна тонкость, случайно поменял сигналы, т.е. data0out => asmi_mosi и sdoin => asmi_miso все скомпелировалось...правда смысла от этого мало))
Сообщение отредактировал Alezi - Aug 4 2010, 01:34
|
|
|
|
|
Aug 4 2010, 02:34
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Ну вроде всему этому нашел решение: EPCS4: Compilation problemКомпиляция прошла успешно, теперь вопрос доступа к данным, т.е. собственно запись/чтение EPCS. Есть ли разница какая EPCS подключена или нет? В визарде к epcs_virtual_memory есть какие то настройки, пока не понял для чего...Типа "map code space in flash sector" и выбор из нескольких значений. И в самом коде есть: Код PACKAGE epcs_virtual_memory_package IS
CONSTANT flash_sector_code_offset : INTEGER := 2; CONSTANT flash_sector_code_size : INTEGER := 1; CONSTANT flash_sector_data_offset : INTEGER := 4; CONSTANT flash_sector_data_size : INTEGER := 1; CONSTANT dp_avalon_addr_width : INTEGER := 16; CONSTANT cp_avalon_addr_width : INTEGER := 16; CONSTANT delay_counter_data : INTEGER := 2; CONSTANT avalon_clk_is_too_fast : std_logic := '1';
END PACKAGE epcs_virtual_memory_package; На что может влиять, например, flash_sector_code_offset? Пока в ниосе читать или писать не получилось, использовал стандартные IOWR, IORD и через указатель. В окне ничего не выдает, а в дебугере пишет Connection reset by peer.
|
|
|
|
|
Aug 5 2010, 00:41
|

Участник

Группа: Участник
Сообщений: 47
Регистрация: 8-07-08
Из: Хабаровск
Пользователь №: 38 795

|
Пробовал смотреть сигналтапом...Хотел найти эти сигналы, но увы... Код asmi_block : cycloneii_asmiblock port map( data0out => ASMI_MISO, oe => '0', scein => asmi_cs, dclkin => asmi_clk, sdoin => ASMI_MOSI ); Видны только ASMI_MISO и ASMI_MOSI. В ниос дебугере наблюдаю также интересную картину, при просмотре памяти по адресу устройства (EPCS_VIRTUAL_MEMORY_CLASSIC_0_DATA_BASE 0x40000) при выполнении операции чтения наблюдаю картину:
Похоже изменение данных в памяти идет как то спонтанно...(( При попытке что либо записать виснет окончательно...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|