Перейти к содержанию
    

Nios на своем железе

Итак, имея рабочий проект ниоса на отладочной плате, начинаю переводить его на свое железо. Первая проблема было с CFI (тема рядом) - разобрались. Едем дальше.

 

1) SDRAM. Стоит чип MT 48LC16M16A2 75. Из пдф на него нашел Cas latency 2 при частоте меньше 100MHz, access time 6ns, t_rcd 20ns, t_rp 20ns, t_rfc 66 ns. Есть вопрос по t_wr - если в пдф указано 1 cycle + 7.5ns, а тактовка 50 MHz, то нужно в сопсе указать 27.5 ns? Так же не нашел в пдф Initialization refresh cycles, Issue one refresh command every и delay after powerup before initialization. Плохо искал? Как назначить эти параметры?

 

2) Как-то странно ведет себя nios ide в плане отладчика. Выглядит это так. Для тестирования sdram создаем проект, содержащий cpu/s+jtag debugger 1, cfi, jtag-uart, sdram и onchip_memory 40 Kb, из которой и планируется проверять sdram. Reset vector направлен на cfi, exeption vector - onchip_memory. Геренируем систему в сопс, создаем в ниос-иде проект, собираем, получаем файл onсhip_memory.hex, собираем все в квартусе (7.1), зашиваем в epcs. Далее идут странности. Если из ниос иде выбрать Run As, то проект какое-то время (несколько минут) работает, после чего вылетает due to I/O error. Так же странно ведет себя Debug As - может запустится и отработать несколько комманд, после чего вылететь, а может вообще не запуститься, сказав, что verefication faild on address - адрес onchip_memory. Так же есть ощущение, что программа, загружаемая при стартапе из флешки, так же некоторое время работает и резетится, но тут точно утверждать не могу - нет толком средств наблюдения.

В чем тут может быть дело?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В свое время во всех nios платах я делал мелкий on-cip memory - в нем на асме что-то типа несложного BIOS POST memory теста, результат выдавался в консоль (uart) и отмечался светодиодом - основной принцип в том что _все_ (data memory/program memory) находится внутри fpga - никаких внешних устройств памяти, on-cip memory глючить не может (при прохождении TA) - а проверка внешних устройств добавляется в данный тест по необходимости. никто не гарантирует что код из cfi считан верно, а если он не помещается в кеш, то имеем неконтроллируемый постоянный обмен с внешним устройством, что для любого теста не есть good.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Со вторым пунктом вопрос решился просто - оказалось, что источник питания пока стоит не тот, который должен (еще не привезли), а временный. А он, зараза, сильно грелся и минут через 5 работы начинал давать проскоки по питанию. Соответственно, ниос и перегружался.

А с первым вопросом ясности еще нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Harbour - а можете как начинающему чуть разжевать что такое " мелкий on-cip memory " ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это FPGA on-chip RAM размером for ex. 1K - nios стартует из нее, проверяет периферию (SDRAM), далее запускает c_init()

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по просьбам жаждущих добавил nios memtest исходник и makefile к нему, что к чему думаю разберетесь, так как я уже смутно помню - проект был в 2004 году ;)

nios_test.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Harbour - пытался собрать вашим мэйк-файлом - кричит

 

make: makefile: line 37: Error -- Include file .depend, not found

 

Не подскажете в чём дело ? зачем ему *.depend нужен ?

 

Пытался изменить мэйк - поулчил месагу типа

 

`Makefile' is up to date

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там должна быть цель 'dep' или 'depend' - вообще makefile я дал не для компиляции а для обзора что куды линкуется, не факт что он вообще рабочий. нужно составлять makefile самому - под нокретный проект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Harbour - а не подскажете , где можно найти что нибудь почитать по ассемблеру для ниоса ? :help:

Понимаю что плохо искал, но как то не нашёл... :smile3046: ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я кроме оригинального справочника по ассемблеру, от альтеры, ничего не читал/не знаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Harbour - понимаете, я никак не пойму как стыкуюся конструкции вида

 

nm_printchar '\r'

nm_print "RAM test at 0x"

 

В принципе далее идёт

 

bsr nr_uart_txhex

 

так что вроде бы комманды nm_xxx должны формировать строку которую в nr_uart_txhex и отправляют, но вопрос - а как это они так хитро делают ??

 

И вопросик который меня мучит давно - касательно корректного перехода к скопированному участку программы.

У вас это я так понял это -

 

movia %g0, na_ram@h

jmp %g0

nop

 

Ноп я так понял нужен для места, главное тут - это загрузка в регистр %g0 адреса начала рама - na_ram - и просто переход по этому адресу.

И собсно это и есть так сказать передача управления от загрузчика к исполняемому коду?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

следует для начала изучить nios-sdk, там много полезного для начинающих можно почерпнуть - for ex. если глянуть в начало файла nios32_sdk/lib/uart_txhex.s, то можно увидеть следующее :

 

.......

;----------------------------------------

; Name: nr_uart_txhex

; Description: Print value in hexadecimal

; Input: %o0 = value to be printed

; Output: none

; Side Effects: %g0 & %g1 altered, %o1 used for uart base

; CWP Depth: 1

.........

 

насчет перехода - как я уже говорил, все зависит от карты памяти конкретнго проекта - главное, действительно, куда нибудь в конце концов перейти ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Harbour - я бы даже не против, только имеются некоторые нъюансы:

 

я не нашёл у себя вообсче директории nios32_sdk(или вообсче похожей) - ставил NIOS 7.2 EDS. Это

что - отдельно надо ставить сдк( если да - подскажите где )? :smile3046:

(похоже что так - http://www.altera.com/support/ip/processor...y-er-intro.html - "SDK support is not available in Nios II Embedded Design Suite (EDS) version 6.0 and later. ") - Будьте так добры - поделитесь пожалуста..

 

Касательно makefile - у меня тут неоднозначность

на 1-м компъютере выдаёт

"make не является внутренней или внешней

командой, исполняемой программой или пакетным файлом."

 

А на 2-м - типа всё ок мэйком , но строка типа

nios-build –b 0x140000 flash_copy.s

( http://www.altera.ru/Disks/Altera%20Docume...ec_to_flash.pdf )

вызывает реакцию

"nios-build" не является внутренней или внешней

командой, исполняемой программой или пакетным файлом.

:wacko:

Может кто подскажет куда копать ?

:help:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

директория nios_sdk32 генерилась sopc_builder'ом в процессе синтеза системы. для новых версий это видимо теперь называется HAL - проектов на новом (без SDK) nios'е у меня еще не было, посему не разбирался. то же относится и к codegen'у - в edk есть директория, где лежат gnu утилиты для nios - путь к ней укажите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нашёл решение - :08:

"NIOS II Command Shell.bat" называется - оно собсно и запускает среду что ли, где это всё мона билдить :smile3046:

Как пример ( может кому на будущее) мэйкфайла - смотрел в сторону an458 документов с сайта альтеры и инструкшн-сета для ниос2 процессора....

:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...