|
|
  |
новый проект |
|
|
|
Feb 17 2014, 10:40
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(_Anatoliy @ Feb 17 2014, 14:12)  Это hex файл перед подключением нужно переделать? Его нужно получить их эклипса. Результат компиляции вашего ПО для Ниоса. Сейчас не могу сказать, где там эти галочки.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Feb 18 2014, 00:30
|

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

|
Цитата(_Anatoliy @ Feb 17 2014, 16:46)  Значит это допустимая ситуация? да, вообще не понимаю, зачем все это нужно. во всяком случае, с этим можно потом разобраться Цитата Пробовал ставить флажки ,но кнопка Start после refresh остаётся недоступной. в консоли вбейте: nios2-flash-programmer --verbose если покажет, что видит регистры EPCS, то накидайте скрипт а-ля: CODE #!/bin/sh EPCS_BASE=0x100a800 cd /home/vadik/Qdesigns/L150_220_test # Creating .flash file for the FPGA configuration "$SOPC_KIT_NIOS2/bin/sof2flash" --epcs --input="./L150_220_test.sof" --output="L150_220_test.flash" # Programming flash with the FPGA configuration "$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=$EPCS_BASE "L150_220_test.flash" # Creating .flash file for the project "$SOPC_KIT_NIOS2/bin/elf2flash" --epcs --after="L150_220_test.flash" --input="./software/L150_220_sw/L150_220_sw.elf" --output="epcs_flash_controller_0.flash" # Programming flash with the project "$SOPC_KIT_NIOS2/bin/nios2-flash-programmer" --epcs --base=$EPCS_BASE "epcs_flash_controller_0.flash"
и забудьте про этот корявый эклипсовский гуй
|
|
|
|
|
Feb 18 2014, 10:08
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(_Anatoliy @ Feb 18 2014, 11:15)  Огромное спасибо! Вот уважаю такие бескомпромиссные ответы. Сейчас попробую,только скажите как выбрать EPCS_BASE? Так это же адрес из системы Qsys для EPCS. Я не понимаю, отчего у вас получаются разные адреса в Qsys и в hex. Может в этом и косяк. Я с Ниосом работаю только в Quartus 11.1sp2.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Feb 19 2014, 01:23
|

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

|
Цитата(_Anatoliy @ Feb 18 2014, 18:06)  Адрес чего?Епцс-контроллера?Для чего кому-то знать какой адрес на шине имеет контроллер? именно, сам адрес можно взять в system.h или из QSys выдернуть. смысл в том, что nios2-flash-programmer шьет "на горячую", используя контроллер EPCS (который на самом деле SPI). кстати, забыл написать, что sof уже должен быть загружен (при первой прошивке можно использовать nios2-configure-sof). при последующих манипуляциях sof нужно подгружать только если сменится адрес контроллера
|
|
|
|
|
Feb 20 2014, 11:08
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(vadimuzzz @ Feb 19 2014, 03:23)  именно, сам адрес можно взять в system.h или из QSys выдернуть. смысл в том, что nios2-flash-programmer шьет "на горячую", используя контроллер EPCS (который на самом деле SPI). кстати, забыл написать, что sof уже должен быть загружен (при первой прошивке можно использовать nios2-configure-sof). при последующих манипуляциях sof нужно подгружать только если сменится адрес контроллера Ясно,спасибо! Переустановил у себя ОС,Квартус и т.д. Е.М.Н.И.П раньше скрипты были в файлах *.sh например elf2flash.sh , сейчас же есть только elf2flash без расширения с загадочным содержимым: Код #!/bin/sh . "${0%[\\/]*}/sh_jar.sh" Или так и должно быть и память опять подводит? WinXP32. Кстати,а чем плох метод предложенный warrior-2001? По моему это самый короткий путь. Правда у меня ещё не получилось сделать *.hех из *.elf для инициализации ram , отвлекаюсь постоянно.
|
|
|
|
|
Feb 20 2014, 13:10
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(_Anatoliy @ Feb 20 2014, 15:08)  Кстати,а чем плох метод предложенный warrior-2001? По моему это самый короткий путь. Отвечу сам пожалуй. Минус в том, что ПО для процессора по сути хранится в самой конфигурации ПЛИС. И если захотите сменить ПО, не меняя прошивку(а вы захотите  ), то придётся перекомпиливать весь проект в квартусе с новым hex файлом. Так что в моём случае - это лишь первый этап.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Feb 20 2014, 13:39
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(warrior-2001 @ Feb 20 2014, 15:10)  А Вы не правы. Ведь есть же такая чудесная команда как Update Memory Initialization File. Цитата(_Anatoliy @ Feb 20 2014, 13:08)  Е.М.Н.И.П раньше скрипты были в файлах *.sh например elf2flash.sh , сейчас же есть только elf2flash без расширения с загадочным содержимым: Код #!/bin/sh . "${0%[\\/]*}/sh_jar.sh" Или так и должно быть и память опять подводит? WinXP32. Таки память меня подвела,скрипты нормальные. Цитата(vadimuzzz @ Feb 19 2014, 03:23)  Ваш метод заработал с полоборота Спасибо!
|
|
|
|
|
Feb 21 2014, 03:15
|

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

|
Цитата(_Anatoliy @ Feb 20 2014, 18:08)  сейчас же есть только elf2flash без расширения с загадочным содержимым: Код #!/bin/sh . "${0%[\\/]*}/sh_jar.sh" это тоже shell-script, в *nix расширения не обязательны Цитата Кстати,а чем плох метод предложенный warrior-2001? По моему это самый короткий путь. Правда у меня ещё не получилось сделать *.hех из *.elf для инициализации ram , отвлекаюсь постоянно. мне скрипт удобнее тем, что он хоть напишет, если что не так пошло. а квартусовский программер выкинет что-нибудь типа "JTAG error $*&^*#%" и сиди думай. а еклипсовские приблуды имеют свойство падать вообще молча (не все, зависит от версии и погоды на Марсе).
|
|
|
|
|
Feb 21 2014, 09:29
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(vadimuzzz @ Feb 21 2014, 05:15)  мне скрипт удобнее тем, что он хоть напишет, если что не так пошло. а квартусовский программер выкинет что-нибудь типа "JTAG error $*&^*#%" и сиди думай. а еклипсовские приблуды имеют свойство падать вообще молча (не все, зависит от версии и погоды на Марсе). Это да,но команду Update Memory Initialization File можно и скриптом выполнить. Помогите,плз,разобраться с прерываниями.Получается так что прерывания возникают всегда,даже когда нет принимаемых данных.Как такое может быть,ведь при чтении данных флаг RRDY сниматься должен? Код static void spi_slave_isr(void* isr_context) { volatile alt_u8 data_rx; RES_BIT_OUTPORT(21); data_rx = (char)(IORD_ALTERA_AVALON_SPI_RXDATA(SPI_SLAVE_BASE))&0x000000ff; IOWR_ALTERA_AVALON_SPI_STATUS(SPI_SLAVE_BASE, 0x0); *isr_context = (alt_u16)data_rx; SET_BIT_OUTPORT(21); } Выяснилось что SPI здесь не виноват,прерывания возникают даже если в регистре SPI снять все маски прерываний. Они возникают сразу после регистрации обработчика. Код void Irq_init() { // IOWR_ALTERA_AVALON_SPI_CONTROL(SPI_SLAVE_BASE, ALTERA_AVALON_SPI_CONTROL_IRRDY_MSK | ALTERA_AVALON_SPI_CONTROL_IE_MSK); // Регистрация обработчика прерываний t1=alt_ic_isr_register( SPI_SLAVE_IRQ_INTERRUPT_CONTROLLER_ID, SPI_SLAVE_IRQ, spi_slave_isr, spi_buf_rx, flags); } С чем это может быть связано?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|