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

 
 
43 страниц V  « < 15 16 17 18 19 > »   
Reply to this topicStart new topic
> NIOS для начинающих
juvf
сообщение May 10 2011, 09:45
Сообщение #241


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Нужно сделать тестовый проект для самопроверки устройства на плис. нужно проверить всю периферию на борде. В том числе и озу (ддр2). Для проверки озу есть алгоритмы которые стирают/пишут/читают каждую ячейку озу. Можно тестовую программу разместить в он-чип и проверить внешнее озу. Но проверка всей остальной периферии не влезит в он-чип. Как тут быть? В голову приходит 2 мысли:
1) разбить программу на 2 части. проверку озу разместить в он-чип. ресет прерывания на он-чип. После ресета из epcs автоматом загрузится конфигурация и кусок программы в ончип. Стартует программа в ончипе. Проверится озу. если все в порядке, то нужно программно из епцс исполняемый код загрузить в озу и сделать jmp ADR_RAM; или что-то подобное. Такое реально сделать с ниосом/CIII/квартусом/IDE NIOS?
2) не делить программу а сразу всю её залить в внешнее озу и от туда стартовать. там же проверить все озу. только как? как-то же подобное делается в тестах типа memTest86. Как в подобных утилитах проверяется озу? Ведь сам исполняемый код находится в этом же озу. Или во время теста мемТест копирует исполняемый код из одного места в другое чтоб проверить всё озу полностью? кто нибудь знает как memTest86 работает?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 10 2011, 13:28
Сообщение #242


Гуру
******

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



посмотрите http://www.altera.com/literature/an/an458.pdf
вы можете сделать свой загрузчик из EPCS и встроить в него проверку SDRAM. после проверки SDRAM загрузчик должен скопировать туда код (включая проверку периферии) и передать управление
Go to the top of the page
 
+Quote Post
juvf
сообщение May 13 2011, 06:40
Сообщение #243


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Пробую свой загрузчик сделать по an458.pdf. Вроде все элементы танца сделал, всё залил - в итоге при включении борды моя прога не работает.

Решил постепенно понять что к чему. Создал простой проект хелловорд. разместил все секции в ончип. ресет ниоса на epcs контроллер (на загрузчик по умолчанию). вектор прерыванию на ончип. все собрал, залил в борду. Работает, т.е. при включении в консоль выхлапывает халоворд. Теперь нужно чтоб этот халоворд был аппаратно вшит в ончип. Т.е. делаю следующее

1 в SOPC билдере вектор ресета на ончип
2 указываю ончип инициализировать файлом boot_rom.hex
3 собираю ниос
4 компилирую проект квартуса
5 генерирую в эклипсе bsp
6 собираю программу халловорд для этого проекта и получаю elf
7 в консоли выполняю "elf2hex name.elf --base=0x1810000 --end=0x181c9f --width=32 --create-lanes=0 boot_rom.hex" и получаю хекс файл.
8 из квартуса заливаю sof в плис
9 запускаю терминал
10 жму кнопку ресет на борде

ожидаю увидеть Hallo World! в терминале

после 10 по идее ресетится проц, а ресет прерывания на он чип. в ончипе программа хелловрд. но она почему-то не выполняется.
прожег этот sof флэшпрограмматором в епцс, борду выкл\вкл\ресет - не помогает, тоже не вижу хэлловорда. что я делаю не так?
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение May 13 2011, 07:09
Сообщение #244


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



Между 7-м и 8-м пунктом нужно выполнить ассемблер в квартусе (ну или полную компиляцию если не найдете) чтобы он подхватил .hex файл и встроил его в .sof. Вы заливаете в борду голое железо без ПО, собранное на 3-4 пункте.

И еще, 7-й пунк эклипс иногда делает автоматом (я наблюдал появление .hex файла при компиляции проекта с onchip).

И еще, уверены что Reset на борде относится именно к ниосу а не реконфегурирует всю плис например?
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение May 13 2011, 07:10
Сообщение #245


Гуру
******

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



сумбур какой-то. чтобы после сброса выполнился код из он-чип, достаточно вектор сброса туда нацелить. после этого достаточно залить sof и программа сразу запустится. если надо кинуть во флешку - пользуйтесь jic или sof2flash+nios2-flash-programmer.
примеры загрузчиков смотрели:
http://www.altera.com/support/examples/nio...ot-methods.html ?
Go to the top of the page
 
+Quote Post
juvf
сообщение May 13 2011, 08:18
Сообщение #246


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
Reset на борде относится именно к ниосу
именно к ниосу.
Цитата
примеры загрузчиков смотрели:
с него и начал. an458-ой до дыр перечитал. примеры от туда скачал - не работают они.

нашел я как из ниоса делать 7-ой пункт.

Цитата
Между 7-м и 8-м пунктом нужно выполнить ассемблер в квартусе (ну или полную компиляцию если не найдете) чтобы он подхватил .hex файл и встроил его в .sof.
??? не понял, а когда hex в ончип попадает? я думал что достаточно залить sof, и во время этой заливки hex подхватится.

Go to the top of the page
 
+Quote Post
naliwator
сообщение May 13 2011, 08:48
Сообщение #247


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

Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551



Цитата(Reanimator++ @ May 13 2011, 11:09) *
Между 7-м и 8-м пунктом нужно выполнить ассемблер в квартусе (ну или полную компиляцию если не найдете) чтобы он подхватил .hex файл и встроил его в .sof. Вы заливаете в борду голое железо без ПО, собранное на 3-4 пункте.

Или можно поставить галку Use smart compilation и запустить компилятор.
Он должен обновить Hex файл конфигурации on-chip памяти.


Цитата
И еще, уверены что Reset на борде относится именно к ниосу а не реконфегурирует всю плис например?

Мне тоже так показалось. По идее после прошивки sof файлом процессор автоматически сбрасывается и должен исполнять программу.

Если хотите, есть пример проекта со стандартным загрузчиком.
И даже перевод AN-458.
santa2.gif


--------------------
Go to the top of the page
 
+Quote Post
juvf
сообщение May 13 2011, 09:13
Сообщение #248


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
По идее после прошивки sof файлом процессор автоматически сбрасывается и должен исполнять программу.
а в программе printf("hallo wrld") в jtag-uart. поэтому чтоб увидеть выхлоп нужно после заливки соф запустить терминал и нажать ресет.

у меня уже проблема не с загрузчиком. Я уже забыл про него. Проблема локализовалась. Проблема в том, что: есть простая программа, хелловорд (или загрузчик, или тестер или мигание диодом - это уже не важно, просто программа). необходимо чтоб ресет был на ончипе и после ресета процессора выполнялась эта программа сразу, без всяких загрузок из флеш, т.е. она должна создаться в плисине при загрузке конфигурации. Не получается.

Цитата
Между 7-м и 8-м пунктом нужно выполнить ассемблер в квартусе
вот это я пропустил. Но сделав компиляции всего проекта после создание хекс файла - непомогло. не запускается программа.
Go to the top of the page
 
+Quote Post
naliwator
сообщение May 13 2011, 10:15
Сообщение #249


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

Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551



Цитата(juvf @ May 13 2011, 13:13) *
а в программе printf("hallo wrld") в jtag-uart. поэтому чтоб увидеть выхлоп нужно после заливки соф запустить терминал и нажать ресет.

у меня уже проблема не с загрузчиком. Я уже забыл про него. Проблема локализовалась. Проблема в том, что: есть простая программа, хелловорд (или загрузчик, или тестер или мигание диодом - это уже не важно, просто программа). необходимо чтоб ресет был на ончипе и после ресета процессора выполнялась эта программа сразу, без всяких загрузок из флеш, т.е. она должна создаться в плисине при загрузке конфигурации. Не получается.

вот это я пропустил. Но сделав компиляции всего проекта после создание хекс файла - непомогло. не запускается программа.

Сейчас сделал - у меня всё запустилось.

Файл архива проекта почему то не могу прикрепить...

Вносим изменения в программу.
Конвертируем elf to hex.
Жмем smart compilation и вуаля!
1111493779.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
Reanimator++
сообщение May 14 2011, 09:39
Сообщение #250


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763



Но сделав компиляции всего проекта после создание хекс файла - непомогло. не запускается программа.

Тогда проверяйте что имя файла прописанное в свойствах ончип в сопц билдере (параметр memory initialization file) сопадает с именем того .hex файла который вы подсовываете квартусу после ниос иде.
В принципе если ничего не трогать то они автоматом совпадают, как у naliwator-а.
Go to the top of the page
 
+Quote Post
juvf
сообщение May 16 2011, 03:08
Сообщение #251


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(Reanimator++ @ May 14 2011, 15:39) *
Тогда проверяйте что имя файла прописанное в свойствах ончип в сопц билдере (параметр memory initialization file) сопадает с именем того .hex файла который вы подсовываете квартусу после ниос иде.
В принципе если ничего не трогать то они автоматом совпадают, как у naliwator-а.

Это я обнаружил. В общем по умолчанию для ончип-а sopc билдер дал имя onchip_memory2_0. Начал урок по своему загрузчику из an458.pdf - переименовал ончип в boot_rom. Потом в квартусе при компиляции среди over 9000 ворнингов не сразу заметил что квартус пытается подцепить onchip_memory2_0.hex. Ни как не мог ему объяснить что теперь нужен boot_rom.hex. Стояла галка Use smart compilation. Снял её и квартус сразу понял что теперь нужен boot_rom.hex. Ну ещё был ворнинг что найден boot_rom.v в разработке, но этот файл не является файлом проекта. Ручками удалил из проекта onchip_memory2_0.v и добавил boot_rom.v. Ворнингов стало на пару меньше, но пока при ресете он чип не инится моим хексом(или хекс кривой). Хотя в инфо вроде все красиво:
Код
Info: Instantiated megafunction "cpuNew:inst3|boot_rom:the_boot_rom|altsyncram:the_altsyncram" with the following parameter:
    Info: Parameter "byte_size" = "8"
    Info: Parameter "init_file" = "boot_rom.hex"
    Info: Parameter "lpm_type" = "altsyncram"
    Info: Parameter "maximum_depth" = "9000"
    Info: Parameter "numwords_a" = "9000"
    Info: Parameter "operation_mode" = "SINGLE_PORT"
    Info: Parameter "outdata_reg_a" = "UNREGISTERED"
    Info: Parameter "ram_block_type" = "AUTO"
    Info: Parameter "read_during_write_mode_mixed_ports" = "DONT_CARE"
    Info: Parameter "width_a" = "32"
    Info: Parameter "width_byteena_a" = "4"
    Info: Parameter "widthad_a" = "14"


Сообщение отредактировал juvf - May 16 2011, 03:10
Go to the top of the page
 
+Quote Post
juvf
сообщение May 16 2011, 04:38
Сообщение #252


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Обратно поставил галочку Use smart compilation - при компиляции снова получаю ворнинги
Код
Warning: Can't find design file epcs_flash_controller_boot_rom.hex
Warning: Can't find design file onchip_memory2_0.hex
Warning: Can't find design file epcs_flash_controller_boot_rom.hex
Warning: Can't find design file onchip_memory2_0.hex
Warning: Can't find design file epcs_flash_controller_boot_rom.hex
Warning: Can't find design file onchip_memory2_0.hex
Info: *******************************************************************
Info: Running Quartus II Analysis & Synthesis
    Info: Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version
    Info: Processing started: Mon May 16 10:13:05 2011
Info: Command: quartus_map --read_settings_files=on --write_settings_files=off TestFrontEnd -c topLevel
Info: Parallel compilation is enabled and will use 4 of the 4 processors detected
Info: Found 1 design units, including 1 entities, in source file boot_rom.v
    Info: Found entity 1: boot_rom
Info: Found 2 design units, including 2 entities, in source file sdram.v
    Info: Found entity 1: sdram_input_efifo_module
    Info: Found entity 2: sdram
Info: Found 1 design units, including 1 entities, in source file pllsdram.v
    Info: Found entity 1: pllSdram
Info: Found 2 design units, including 2 entities, in source file epcs_flash_controller_0.v
    Info: Found entity 1: epcs_flash_controller_0_sub
    Info: Found entity 2: epcs_flash_controller_0
Info: Found 1 design units, including 1 entities, in source file cpu_0_test_bench.v
    Info: Found entity 1: cpu_0_test_bench
Info: Found 7 design units, including 7 entities, in source file uart_0.v
    Info: Found entity 1: uart_0_log_module
    Info: Found entity 2: uart_0_tx
    Info: Found entity 3: uart_0_rx_stimulus_source_character_source_rom_module
    Info: Found entity 4: uart_0_rx_stimulus_source
    Info: Found entity 5: uart_0_rx
    Info: Found entity 6: uart_0_regs
    Info: Found entity 7: uart_0
От куда этот onchip_memory2_0.hex? Почему квартус его хочет? в sopc билдере ончип раньше именовался onchip_memory2_0, но сейчас именуется boot_rom и инициализируется файлом по умолчанию boot_rom.hex.
И при компиляции всегда компиляется весь проект. Поечему? Скомпилял проект, тут же нажал компилять - опять все по новой. А должен вроде смарт понять что не было изменений и не компилять ни чего.

naliwator в моем выхлопе нет таких пунктов как у тебя
Код
Running Quartus II MIF/HEX Update
тоже не понятно почему?
Go to the top of the page
 
+Quote Post
naliwator
сообщение May 16 2011, 06:09
Сообщение #253


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

Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551



Цитата(juvf @ May 16 2011, 07:08) *
переименовал ончип в boot_rom.
Ну ещё был ворнинг что найден boot_rom.v в разработке, но этот файл не является файлом проекта. Ручками удалил из проекта onchip_memory2_0.v и добавил boot_rom.v.

Вы поменяли исходные файлы проекта, поэтому
Цитата
Код
Info: Running Quartus II Analysis & Synthesis
    Info: Version 10.1 Build 197 01/19/2011 Service Pack 1 SJ Full Version
    Info: Processing started: Mon May 16 10:13:05 2011

и вы не можете видеть
Цитата
Код
Running Quartus II MIF/HEX Update

Собственно, почему на кошках не хотите потренироваться?


--------------------
Go to the top of the page
 
+Quote Post
juvf
сообщение May 16 2011, 08:15
Сообщение #254


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата
Собственно, почему на кошках не хотите потренироваться?
Да на кошках наверно с полпинка заведется. У меня тяжелый проект, которому нужно сделать ончип загрузчик. Можно сделать кошку и в неё заново проект собирать, все пины переназначать..... Но с этим нужно разобраться.

В общем получилось. Как - не могу понять. В прицепе можно на этом остановиться и писать программу дальше. Но..... Сейчас в сопц ончип именуется onchip_memory2_0. Соответственно в проекте есть файл onchip_memory2_0.v и ниос иде делает onchip_memory2_0.hex который скармливаю в sof файл. удалил из проекта файлы boot_rom.v. Удалил с диска файлы boot_rom.v и boot_rom.hex. Но теперь другие ворнинги:
Код
Warning: Can't find design file boot_rom.v
Warning: Can't find design file boot_rom.hex


Не могу понять как в квартусе управлять проектом? Почему квартус ищет файлы boot_rom? Где-то в записях какихто исходников очевидно есть ссылки на них. Но где? Как ими управлять этими ссылками/настройками?
Go to the top of the page
 
+Quote Post
naliwator
сообщение May 16 2011, 08:31
Сообщение #255


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

Группа: Свой
Сообщений: 146
Регистрация: 11-08-08
Из: Kolpino
Пользователь №: 39 551



Цитата(juvf @ May 16 2011, 12:15) *
Удалил с диска файлы boot_rom.v и boot_rom.hex. Но теперь другие ворнинги:
Код
Warning: Can't find design file boot_rom.v
Warning: Can't find design file boot_rom.hex


Не могу понять как в квартусе управлять проектом? Почему квартус ищет файлы boot_rom? Где-то в записях какихто исходников очевидно есть ссылки на них. Но где? Как ими управлять этими ссылками/настройками?

Assignments -> Settings -> Files


--------------------
Go to the top of the page
 
+Quote Post

43 страниц V  « < 15 16 17 18 19 > » 
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 10th July 2025 - 19:11
Рейтинг@Mail.ru


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