Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Nios на своем железе
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
RHnd
Итак, имея рабочий проект ниоса на отладочной плате, начинаю переводить его на свое железо. Первая проблема было с 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. Так же есть ощущение, что программа, загружаемая при стартапе из флешки, так же некоторое время работает и резетится, но тут точно утверждать не могу - нет толком средств наблюдения.
В чем тут может быть дело?
Harbour
В свое время во всех nios платах я делал мелкий on-cip memory - в нем на асме что-то типа несложного BIOS POST memory теста, результат выдавался в консоль (uart) и отмечался светодиодом - основной принцип в том что _все_ (data memory/program memory) находится внутри fpga - никаких внешних устройств памяти, on-cip memory глючить не может (при прохождении TA) - а проверка внешних устройств добавляется в данный тест по необходимости. никто не гарантирует что код из cfi считан верно, а если он не помещается в кеш, то имеем неконтроллируемый постоянный обмен с внешним устройством, что для любого теста не есть good.
RHnd
Со вторым пунктом вопрос решился просто - оказалось, что источник питания пока стоит не тот, который должен (еще не привезли), а временный. А он, зараза, сильно грелся и минут через 5 работы начинал давать проскоки по питанию. Соответственно, ниос и перегружался.
А с первым вопросом ясности еще нет.
Kuzmi4
2 Harbour - а можете как начинающему чуть разжевать что такое " мелкий on-cip memory " ??
Harbour
это FPGA on-chip RAM размером for ex. 1K - nios стартует из нее, проверяет периферию (SDRAM), далее запускает c_init()
Harbour
по просьбам жаждущих добавил nios memtest исходник и makefile к нему, что к чему думаю разберетесь, так как я уже смутно помню - проект был в 2004 году wink.gif
Kuzmi4
2 Harbour - пытался собрать вашим мэйк-файлом - кричит

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

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

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

`Makefile' is up to date
Harbour
там должна быть цель 'dep' или 'depend' - вообще makefile я дал не для компиляции а для обзора что куды линкуется, не факт что он вообще рабочий. нужно составлять makefile самому - под нокретный проект.
Kuzmi4
2 Harbour - а не подскажете , где можно найти что нибудь почитать по ассемблеру для ниоса ? help.gif
Понимаю что плохо искал, но как то не нашёл... smile3046.gif ...
Harbour
я кроме оригинального справочника по ассемблеру, от альтеры, ничего не читал/не знаю
Kuzmi4
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 - и просто переход по этому адресу.
И собсно это и есть так сказать передача управления от загрузчика к исполняемому коду?
Harbour
следует для начала изучить 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
.........

насчет перехода - как я уже говорил, все зависит от карты памяти конкретнго проекта - главное, действительно, куда нибудь в конце концов перейти wink.gif
Kuzmi4
2 Harbour - я бы даже не против, только имеются некоторые нъюансы:

я не нашёл у себя вообсче директории nios32_sdk(или вообсче похожей) - ставил NIOS 7.2 EDS. Это
что - отдельно надо ставить сдк( если да - подскажите где )? smile3046.gif
(похоже что так - 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.gif
Может кто подскажет куда копать ?
help.gif
Harbour
директория nios_sdk32 генерилась sopc_builder'ом в процессе синтеза системы. для новых версий это видимо теперь называется HAL - проектов на новом (без SDK) nios'е у меня еще не было, посему не разбирался. то же относится и к codegen'у - в edk есть директория, где лежат gnu утилиты для nios - путь к ней укажите.
Kuzmi4
Нашёл решение - 08.gif
"NIOS II Command Shell.bat" называется - оно собсно и запускает среду что ли, где это всё мона билдить smile3046.gif
Как пример ( может кому на будущее) мэйкфайла - смотрел в сторону an458 документов с сайта альтеры и инструкшн-сета для ниос2 процессора....
smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.