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

 
 
> nios2 на ките Cyclone II для чайников, простейший проект
Vasily_A
сообщение Feb 6 2008, 12:36
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-03-05
Из: Калуга, СССР
Пользователь №: 2 957



есть альтервский "Cyclone II FPGA Starter Development Kit", установлен квартус 7.0 с двд от кита (с правленой лицензией, полный, не веб) и все что ставится по умолчанию. есть примеры с цд от кита.
cii_starter_nios.v скачал...

уважаемые гуру, может кто поделится простейшим проектом - типа вывести в rs232 "хелло ворд" и помигать светодиодиком?

пока не могу сообразить, как "С" исходник к проекту прицепить...
прошу прошения за возможную нечеткость формулировок.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vetal
сообщение Feb 9 2008, 12:33
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
а примеры\аппноты кроме китовых для ниоса существуют?

Примеры использования в хэндбуке есть.
Go to the top of the page
 
+Quote Post
prog_sun
сообщение Feb 9 2008, 17:01
Сообщение #3


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

Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308



Цитата
а примеры\аппноты кроме китовых для ниоса существуют? в принципе можно по библиотечным функциям пытаться разобраться, но хочется легкого пути.



Поищи здесь http://www.altera.com/literature/lit-an.jsp может что найдешь. Некоторые апноты с design example идут.
Go to the top of the page
 
+Quote Post
Vasily_A
сообщение Feb 10 2008, 18:35
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-03-05
Из: Калуга, СССР
Пользователь №: 2 957



Мой работающий код - все совсем просто оказалось...
может кому пригодится.

#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "basic_io.h"

#include "sys/alt_irq.h"
#include "altera_avalon_timer.h"
#include "altera_avalon_timer_regs.h"

void timerinit_int( void );

volatile int i_cnt;

//-------------------------------------------------------
void ISR_timer_0( void * context, alt_u32 irqnum )
{
i_cnt++;
IOWR_ALTERA_AVALON_TIMER_STATUS (TIMER_0_BASE, 0);
}
//-------------------------------------------------------
//-------------------------------------------------------
int main()
{
int i;
int n=0;
i_cnt=0;

printf("Hello from Nios II!\r\n");
printf("init timer_0\r\n");
timerinit_int();
printf("Go!\r\n");

while(1)
{
for(i=0;i<256;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(LEDG_BASE,i);
printf("n=%d i_cnt=%d\r\n",n,i_cnt);
IOWR(SEG7_BASE,0,n);
n++;
usleep(100000);
}
}
return 0;
}
//-------------------------------------------------------
void timerinit_int( void )
{
// Stop the Timer
IOWR_ALTERA_AVALON_TIMER_CONTROL (TIMER_0_BASE,
ALTERA_AVALON_TIMER_CONTROL_STOP_MSK);
// Register ISR
alt_irq_register (TIMER_0_IRQ, (void*)TIMER_0_BASE, ISR_timer_0);
// Start timer
IOWR_ALTERA_AVALON_TIMER_CONTROL (TIMER_0_BASE,
ALTERA_AVALON_TIMER_CONTROL_ITO_MSK |
ALTERA_AVALON_TIMER_CONTROL_CONT_MSK |
ALTERA_AVALON_TIMER_CONTROL_START_MSK);
}
//-------------------------------------------------------
Go to the top of the page
 
+Quote Post
prog_sun
сообщение Feb 17 2008, 09:20
Сообщение #5


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

Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308



Цитата
#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
void delay(void);
//-------------------------------------------------------
int main()
{
int i;
int n=0;
printf("Hello from Nios II!\r\n");
while(1)
{
for(i=0;i<256;i++)
{
IOWR_ALTERA_AVALON_PIO_DATA(LEDG_BASE,i);
delay();
printf("n=%d\r\n",n);
n++;
}
}
return 0;
}
//-------------------------------------------------------
void delay(void)
{
volatile int i;
i=0;
while (i<500000) i++;
}
//-------------------------------------------------------

откомпилировал, залил - результат порадовал: в ком-порт на скорости 115200 выдается все что ожидается, светодиодики моргают.

Цитата
(prog_sun @ Feb 9 2008, 10:56)

И где в твоем коде обращение к ком порту?
А printf("sh=%d",sh); печатает это же число в окне nios2ide.



просто надо переназначить stdin\stdout на uart вместо джитага (в свойствах проекта), и все работает именно по шнурку rs232 в терминал.

Для обращения к Uartу достаточно написать IOХХ_ALTERA_AVALON_UART_XXDATA(address,data); а в вашем коде нет вообще обращения к UARTy. В коде как понял идет пересчет светодиодов на pio.

Цитата
просто надо переназначить stdin\stdout на uart вместо джитага (в свойствах проекта)

причем тут джитаг? Вы передаете данные по Jtag-Uart ? Вообще ничего не понял. И как конфигурируется stdout device.
Go to the top of the page
 
+Quote Post
Vasily_A
сообщение Feb 17 2008, 10:11
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-03-05
Из: Калуга, СССР
Пользователь №: 2 957



Цитата(prog_sun @ Feb 17 2008, 12:20) *
Для обращения к Uartу достаточно написать IOХХ_ALTERA_AVALON_UART_XXDATA(address,data); а в вашем коде нет вообще обращения к UARTy. В коде как понял идет пересчет светодиодов на pio.
причем тут джитаг? Вы передаете данные по Jtag-Uart ? Вообще ничего не понял. И как конфигурируется stdout device.


чесное пионерское smile.gif , работает именно по rs232 шнурку, могу принт-скрин с терминала прислать smile.gif

в свойствах проекта, на закладке с системной библиотекой выбирается через что работает stdin, stdout и stderror. по умолчанию там стоит джитаг-варт, надо поставить просто варт (если он в системе есть, в демо-примере есть).
по сути, это задает реализацию putchar (как и описано в стандарте "С"). можете сделать свой putchar, и у вас printf хоть морзянкой черех аудиокодек заработает.

IOХХ_ALTERA_AVALON_UART_XXDATA(address,data) просто передаст data на порт, но не отследит завершение и не преобразует в нужный формат. на мелких процах (avr, x51, pic и подобное) имеет смысл реализовать свою библиотеку ввода-вывода в ком - получается быстрее и короче, но на "жирных" (арм, ниос) стоит этим заниматься, если совсем сильно прижмет (например отладочный вывод в прерываниях, чтоб с реентабельностью не сражаться)

вот на VGA stdout сделать - это я пока не смог... но пытаюсь - причем в графике.
Go to the top of the page
 
+Quote Post
prog_sun
сообщение Feb 17 2008, 11:24
Сообщение #7


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

Группа: Свой
Сообщений: 139
Регистрация: 12-10-07
Пользователь №: 31 308



Цитата(Vasily_A @ Feb 17 2008, 13:11) *
чесное пионерское smile.gif , работает именно по rs232 шнурку, могу принт-скрин с терминала прислать smile.gif

в свойствах проекта, на закладке с системной библиотекой выбирается через что работает stdin, stdout и stderror. по умолчанию там стоит джитаг-варт, надо поставить просто варт (если он в системе есть, в демо-примере есть).
по сути, это задает реализацию putchar (как и описано в стандарте "С"). можете сделать свой putchar, и у вас printf хоть морзянкой черех аудиокодек заработает.

Да, нашел в апноте459, (в прикрепленном файле показано, что у меня jtag-uart установлено в stdout stdin). Кстати у меня таймер не установлен там, а во вкладке нет вообще никакого таймера, только none.

Цитата
IOХХ_ALTERA_AVALON_UART_XXDATA(address,data) просто передаст data на порт, но не отследит завершение

Почему? сижу сейчас разбираюсь с этим читаю про статус регистр и там бит TRDY. Написано, что когда txdata регистр пуст и готов для передачи данных TRDY=1. Когда txdata регистр заполнен TRDY=0.
У меня такая проблема к примеру надо передать число b71b00(hex), так вот он передает только b7. Еще много других битов есть, сижу читаю их.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vasily_A   nios2 на ките Cyclone II для чайников   Feb 6 2008, 12:36
- - RHnd   Цитата(Vasily_A @ Feb 6 2008, 15:36) есть...   Feb 6 2008, 13:22
|- - Vasily_A   Цитата(RHnd @ Feb 6 2008, 16:22) Нужно ус...   Feb 6 2008, 13:52
|- - RHnd   У меня все почти работало из проблем. Что приходит...   Feb 6 2008, 14:25
||- - Vasily_A   Цитата(RHnd @ Feb 6 2008, 17:25) У меня в...   Feb 6 2008, 14:41
||- - RHnd   Цитата(Vasily_A @ Feb 6 2008, 17:41) вопр...   Feb 6 2008, 14:56
||- - Vasily_A   Цитата(RHnd @ Feb 6 2008, 17:56) Да, имен...   Feb 6 2008, 16:16
||- - RHnd   Хм. Вообще, тайм-лимитид зависит от лицензии на ни...   Feb 6 2008, 16:18
||- - Vasily_A   Цитата(RHnd @ Feb 6 2008, 19:18) Хм. Вооб...   Feb 6 2008, 16:43
||- - prog_sun   Цитатаесть альтервский "Cyclone II FPGA Start...   Feb 6 2008, 17:16
||- - Vasily_A   Спасибо! скачал DE1_CD_v06.zip посмотрю что та...   Feb 6 2008, 20:19
||- - Vasily_A   некий промежуточный результат: system_0.ptf и DE1...   Feb 7 2008, 13:27
||- - RHnd   1-2) Читайте доки, пробуйте. 3) Расчеты на Ниосе? ...   Feb 7 2008, 15:36
||- - Vasily_A   Цитата(RHnd @ Feb 7 2008, 18:36) 1-2) Чит...   Feb 7 2008, 16:09
||- - RHnd   Цитата(Vasily_A @ Feb 7 2008, 19:09) доки...   Feb 7 2008, 17:45
||- - Vasily_A   пытаюсь собрать свой процессор, пока не получается...   Feb 7 2008, 18:30
||- - prog_sun   Цитата#include <stdio.h> #include "syst...   Feb 9 2008, 07:56
||- - Vasily_A   Цитата(prog_sun @ Feb 9 2008, 10:56) И гд...   Feb 9 2008, 10:12
||- - RHnd   Цитата(Vasily_A @ Feb 9 2008, 13:12) како...   Feb 9 2008, 10:50
||- - Vasily_A   Цитата(RHnd @ Feb 9 2008, 13:50) Вам же у...   Feb 9 2008, 11:50
|- - Rifenshtal   Цитата(Vasily_A @ Feb 6 2008, 17:52) я сл...   Jul 15 2008, 15:57
- - vetal   Без разницы какое прерывание обрабатывать, от тайм...   Feb 9 2008, 12:00
|- - Vasily_A   Цитата(vetal @ Feb 9 2008, 15:00) Без раз...   Feb 9 2008, 12:26
|- - Vasily_A   Цитата(prog_sun @ Feb 17 2008, 14:24) Да,...   Feb 17 2008, 11:49
- - torik   может проблема с типом переменых?   Feb 17 2008, 11:48
- - RHnd   Если не путаю, то вроде кто-то из опытных писал на...   Feb 17 2008, 14:13
- - vetal   ЦитатаЕсли не путаю, то вроде кто-то из опытных пи...   Feb 17 2008, 14:25
|- - Vasily_A   Цитата(vetal @ Feb 17 2008, 17:25) перепи...   Feb 17 2008, 15:06
|- - prog_sun   Цитатапереписывать не надо - там есть быстрые анал...   Feb 17 2008, 15:52
|- - Vasily_A   ком-порт работает с 8-ми битными посылками, и пере...   Feb 17 2008, 16:16
|- - prog_sun   ЦитатаПопробуйте найти 2 отличия между char и int,...   Feb 17 2008, 16:33
|- - Vasily_A   Цитата(prog_sun @ Feb 17 2008, 19:33) Ува...   Feb 17 2008, 17:00
|- - prog_sun   error: parse error before "__builtin_stwio...   Feb 17 2008, 17:17
- - vetal   Цитатаесли пытаться запихнуть его в накристальную ...   Feb 17 2008, 15:20
- - vetal   ЦитатаIOWR_ALTERA_AVALON_UART_TXDATA(UART_0_BASE, ...   Feb 17 2008, 16:14
- - vetal   ЦитатаУважаемый Vetal ставил и char в самом начале...   Feb 17 2008, 17:03
- - vetal   Цитатаerror: parse error before "__builtin_st...   Feb 17 2008, 17:30
|- - Vasily_A   вот это выводит в джитаг-варт "Hello from Nio...   Feb 17 2008, 19:00
|- - Postoroniy_V   Цитата(Vasily_A @ Feb 18 2008, 04:00) ......   Feb 18 2008, 06:25
|- - prog_sun   Vasily_A, Спасибо за код, все работает.   Feb 18 2008, 15:48
|- - prog_sun   В handbooke нашел два примера работы с com портом....   Feb 26 2008, 05:36
- - zorromen   Здрасте. Вот решил прикрутить VGA для DE1. Это те ...   May 29 2008, 05:50
- - torik   ЦитатаЗдрасте. Вот решил прикрутить VGA для DE1. Э...   Jun 2 2008, 05:04


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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