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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> некоторые вопросы по написанию софта для NIOS II
Mozart
сообщение Oct 3 2007, 08:11
Сообщение #1


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



при создании проекта в nios2ide, я создаю пустой проект, какие файлы мне необходимы? кроме *.ptf... и где их взять... скажить где читать ничего найти не могу 07.gif

и я понять не могу зачем "System ID Peripheral" из документации ясно то, что ничего не ясно
Цитата
The system ID peripheral safeguards against accidentally downloading
software compiled for a different Nios II system. If the system includes
the system ID peripheral, the Nios II IDE prevents you from
downloading programs compiled for a different system.

каков этой ID смысл, скажите пжлста???

p.s. если честно то я перестал что-либо понимать... ситуация такая вчера т.е. во вторник я по туториалу "tt_nios2_hardware_tutorial.pdf" всё сделал и мне квартус7 выдал 494 варнинга... сегодня при той же процедуре мне квартус выдал 544 варнинга... что за чудеса???


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 3 2007, 09:59
Сообщение #2


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



создал пустой проект... написал пару строчек
Код
#include    <stdio.h>
#include    "system.h"

int main(){
    
  
}

как теперь обратиться, к примеру, к pio и где можно найти вот эту структуру
Код
typedef volatile struct
{
int np_piodata; // read/write, up to 32 bits
int np_piodirection; // write/readable, up to 32 bits,
// 1->output bit
int np_piointerruptmask; // write/readable, up to 32 bits,
// 1->enable interrupt
int np_pioedgecapture; // read, up to 32 bits,
// cleared by any write
} np_pio;
это из ds_nios_pio.pdf ...

Сообщение отредактировал Mozart - Oct 3 2007, 10:06


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Oct 3 2007, 13:09
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Посмотрите на ug_nios2_ide_help.pdf из http://www.altera.com/literature/lit-ug.jsp
Там, кажется, несколько более систематизировано, хотя тоже..
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 3 2007, 14:00
Сообщение #4


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



там создаётся проект
Цитата
"Select the Count Binary project template in the Select Project Template list"
это всё хорошо, а дальше что?... вот мне допустим эти мигающие лампочки уже... ладно допустим я что-то удалю... и допустим это будет работать, но вопрос как мне пользоваться периферией, которую я сам подцеплю...как мне её инициализировать и где? как мне к примеру обратиться к таймеру?
вот тут
Код
int main(void)
{
int t = 0;
// Set timer for 1 second
na_timer1->np_timerperiodl = (short)(nasys_clock_freq & 0x0000ffff);
na_timer1->np_timerperiodh = (short)((nasys_clock_freq >> 16) & 0x0000ffff);
// Set timer running, looping, no interrupts
na_timer1->np_timercontrol = np_timercontrol_start_mask + np_timercontrol_cont_mask;
// Poll timer forever, print once per second
while(1)
{
if(na_timer1->np_timerstatus & np_timerstatus_to_mask)
{
printf("A second passed! (%d)\n",t++);
// Clear the to (timeout) bit
na_timer1->np_timerstatus = 0; // (any value)
}
}
}

всё просто... но это если я просто вставлю в проект не работает... значит нужно где-то объявить структуру, или знать как она называется... в каком месте на неё можно посмотреть???
структура выглядит так
Код
typedef volatile struct
{
int np_timerstatus; // read only, 2 bits (any write to clear TO)
int np_timercontrol; // write/readable, 4 bits
int np_timerperiodl; // write/readable, 16 bits
int np_timerperiodh; // write/readable, 16 bits
int np_timersnapl; // read only, 16 bits
int np_timersnaph; // read only, 16 bits
} np_timer;
из файла ds_nios_timer.pdf...

p.s. существует ли в природе вообще понятный мануал, о том как писать проекты с нуля к примеру?


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
RHnd
сообщение Oct 3 2007, 14:57
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



А где вы вообще берете все эти ds_nios_*.pdf? Я в свое время прочитал главу про встроенную переферию и с тех пор пользуюсь описанными там макросами и функциями. Например, для pio:
#include altera_avalon_pio.h - могу и ошибиться в точных названиях
void main()
{
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0xAA) - на leds выводится число 0xAA.
}

Расскажите, где лежат все эти структуры?
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 3 2007, 15:05
Сообщение #6


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



"excalibur.h" где взять этот файл?? поиски никаких результатов не дали
люди кто как пишет софт для НИОСА??? я читаю и уже вообще ничего не понимаю... мозг кипит... что читать?? что не читать??


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
id_gene
сообщение Oct 3 2007, 15:09
Сообщение #7


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Mozart @ Oct 3 2007, 18:00) *
всё просто... но это если я просто вставлю в проект не работает... значит нужно где-то объявить структуру, или знать как она называется... в каком месте на неё можно посмотреть???

Всякие штуки для работы с периферией лежат в библиотеках, и доступны из проекта my_project_syslib/Device Drivers [Sopc Builder]/altera_avalon_timer/sdk/timer_struct.h

И когда вы таймер встраиваете в билдере, драйверы должны цепляться или руками через include пропишите.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 3 2007, 15:53
Сообщение #8


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(RHnd @ Oct 3 2007, 18:57) *
А где вы вообще берете все эти ds_nios_*.pdf? Я в свое время прочитал главу про встроенную переферию и с тех пор пользуюсь описанными там макросами и функциями. Например, для pio:
#include altera_avalon_pio.h - могу и ошибиться в точных названиях
void main()
{
IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0xAA) - на leds выводится число 0xAA.
}

Расскажите, где лежат все эти структуры?

http://www.altera.com/literature/ds/ds_nios_timer.pdf
вот ссылочка...


всё... частично разобрался... приятно...

Сообщение отредактировал Mozart - Oct 3 2007, 15:28


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 4 2007, 10:08
Сообщение #9


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



вот такой ещё вопросец
Код
void MyPIO_ISR(int context);

// Main program

int main(void)
    {
    np_pio *pio = na_button_pio;
.
.
.
    pio->np_pioedgecapture = 0;        // clear any existing IRQ condition
    pio->np_piodirection = 0;        // all input
    pio->np_piointerruptmask = 0xff;    // they all generate irq's!

na_button_pio - это как я понимаю название pio... если я так запишу но присвою своё название pio, которое я указал при создании проца, указателю *pio, то он выдаст ошибку, а вот если я присвою начальный адрес pio, то всё будет ок...
в чём косяк, где я не прав?

з.ы. к сожалению железки пока нету, проверить не на чем crying.gif

ещё можно вот так записать
Код
volatile np_pio *pio_l = "/dev/pio";

вроде работает, и симулируется...

Сообщение отредактировал Mozart - Oct 4 2007, 09:54


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Oct 4 2007, 10:45
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Цитата(id_gene @ Oct 3 2007, 18:09) *
Всякие штуки для работы с периферией лежат в библиотеках, и доступны из проекта my_project_syslib/Device Drivers [Sopc Builder]/altera_avalon_timer/sdk/timer_struct.h

И когда вы таймер встраиваете в билдере, драйверы должны цепляться или руками через include пропишите.

Где можно найти информацию (источники) об освоении и применении в своих проектах всех этих системных библиотек? Похоже, что без них не обойтись, иначе ситуация похожа на хождение (или езду на велосипеде) по очень большой темной комнате без GPS.
Go to the top of the page
 
+Quote Post
Mozart
сообщение Oct 4 2007, 11:35
Сообщение #11


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

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



у меня системная фихня лежит в "c:\altera\71\quartus\sopc_builder\components\altera_avalon_...\sdk\..._struct.h"
что надо сделать чтобы не прописывать такой путь, я пока ещё не знаю wacko.gif smile3046.gif


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
DimaM
сообщение Oct 5 2007, 08:42
Сообщение #12


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

Группа: Участник
Сообщений: 103
Регистрация: 17-12-06
Из: село
Пользователь №: 23 615



я тоже с полгода назад мучался с NIOS. Надо было большую скорость выжать.
пользовался исключетельно макросами IOWR_ALTERA_AVALON_PIO_DATA
и объявлял переменные в регистрах. с очень большими усилиями уложился в 10 микросекунд пограммного цикла.

а у вас насколько быстрые программы получаются? насколько быстро прерывания исполняются?
Go to the top of the page
 
+Quote Post
id_gene
сообщение Oct 5 2007, 09:26
Сообщение #13


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Цитата(Волощенко @ Oct 4 2007, 14:45) *
Где можно найти информацию (источники) об освоении и применении в своих проектах всех этих системных библиотек?
Не знаю. В описании компонента периферии может быть что-то есть. Можно просто поковырять исходники. Можно примеры посмотреть. Я, честно говоря, очень мало пользовался периферией.
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Oct 5 2007, 10:43
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Цитата(id_gene @ Oct 5 2007, 12:26) *
Не знаю. В описании компонента периферии может быть что-то есть. Можно просто поковырять исходники. Можно примеры посмотреть. Я, честно говоря, очень мало пользовался периферией.
Ситуация - out, такого со мной еще не было... Выполнил симуляцию Nios II на hello_wolrd_small, потратив несколько дней жизни (старт-кита пока еще нет). Теперь хочу поработать с timer в режиме симуляции в Instruction Set Simulator с выводом на Console, чтобы сделать что-то самому и разобраться... Документации скачал горы, но не могу найти, где описано, как правильно связывать между собой SoPC и С/С++ в прямом и обратном направлении, хотя бы с тем же таймером. Нужно пару маленький примеров, с небольшими разъяснениями, но где их найти в этой массе PDF…
Go to the top of the page
 
+Quote Post
id_gene
сообщение Oct 5 2007, 12:35
Сообщение #15


carpe manana
***

Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659



Ну если вы еще этого не сделали, то нужно скачать комплект доков с сайта альтеры разом (первая ссылка) или по отдельности. В комплекте в разделе ug есть "getting started", а в hb/nios2 есть handbooks.
Какие-то примеры периферии есть в третьем хандбуке.
Связь простая - вы создаете систему в СОПС-билдере, получаете ptf файл. Потом в НИОС ИДЕ создаете проект nios c++ application в той же папке, он (ИДЕ) цепляет PTF, видит там периферию и ее адреса.
В обратном направлении не работает. Или я не понял, что вы хотели.
С ISS я не работал. Вы же сами писали, что PIO не поддерживается ISS-ом. Думаете, таймер поддерживается? Или вообще какая-либо периферия?
Go to the top of the page
 
+Quote Post

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

 


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


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