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

некоторые вопросы по написанию софта для NIOS II

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

 

и я понять не могу зачем "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 варнинга... что за чудеса???

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


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

создал пустой проект... написал пару строчек

#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

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


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

Посмотрите на ug_nios2_ide_help.pdf из http://www.altera.com/literature/lit-ug.jsp

Там, кажется, несколько более систематизировано, хотя тоже..

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


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

там создаётся проект

"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. существует ли в природе вообще понятный мануал, о том как писать проекты с нуля к примеру?

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


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

А где вы вообще берете все эти ds_nios_*.pdf? Я в свое время прочитал главу про встроенную переферию и с тех пор пользуюсь описанными там макросами и функциями. Например, для pio:

#include altera_avalon_pio.h - могу и ошибиться в точных названиях

void main()

{

IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE,0xAA) - на leds выводится число 0xAA.

}

 

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

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


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

"excalibur.h" где взять этот файл?? поиски никаких результатов не дали

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

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


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

всё просто... но это если я просто вставлю в проект не работает... значит нужно где-то объявить структуру, или знать как она называется... в каком месте на неё можно посмотреть???

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

 

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

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


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

А где вы вообще берете все эти 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

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


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

вот такой ещё вопросец

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:

 

ещё можно вот так записать

volatile np_pio *pio_l = "/dev/pio";

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

Изменено пользователем Mozart

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


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

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

 

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

Где можно найти информацию (источники) об освоении и применении в своих проектах всех этих системных библиотек? Похоже, что без них не обойтись, иначе ситуация похожа на хождение (или езду на велосипеде) по очень большой темной комнате без GPS.

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


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

у меня системная фихня лежит в "c:\altera\71\quartus\sopc_builder\components\altera_avalon_...\sdk\..._struct.h"

что надо сделать чтобы не прописывать такой путь, я пока ещё не знаю :wacko: :smile3046:

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


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

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

пользовался исключетельно макросами IOWR_ALTERA_AVALON_PIO_DATA

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

 

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

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


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

Где можно найти информацию (источники) об освоении и применении в своих проектах всех этих системных библиотек?
Не знаю. В описании компонента периферии может быть что-то есть. Можно просто поковырять исходники. Можно примеры посмотреть. Я, честно говоря, очень мало пользовался периферией.

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


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

Не знаю. В описании компонента периферии может быть что-то есть. Можно просто поковырять исходники. Можно примеры посмотреть. Я, честно говоря, очень мало пользовался периферией.
Ситуация - out, такого со мной еще не было... Выполнил симуляцию Nios II на hello_wolrd_small, потратив несколько дней жизни (старт-кита пока еще нет). Теперь хочу поработать с timer в режиме симуляции в Instruction Set Simulator с выводом на Console, чтобы сделать что-то самому и разобраться... Документации скачал горы, но не могу найти, где описано, как правильно связывать между собой SoPC и С/С++ в прямом и обратном направлении, хотя бы с тем же таймером. Нужно пару маленький примеров, с небольшими разъяснениями, но где их найти в этой массе PDF…

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


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

Ну если вы еще этого не сделали, то нужно скачать комплект доков с сайта альтеры разом (первая ссылка) или по отдельности. В комплекте в разделе ug есть "getting started", а в hb/nios2 есть handbooks.

Какие-то примеры периферии есть в третьем хандбуке.

Связь простая - вы создаете систему в СОПС-билдере, получаете ptf файл. Потом в НИОС ИДЕ создаете проект nios c++ application в той же папке, он (ИДЕ) цепляет PTF, видит там периферию и ее адреса.

В обратном направлении не работает. Или я не понял, что вы хотели.

С ISS я не работал. Вы же сами писали, что PIO не поддерживается ISS-ом. Думаете, таймер поддерживается? Или вообще какая-либо периферия?

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


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

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

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

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

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

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

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

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

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

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