|
некоторые вопросы по написанию софта для NIOS II |
|
|
|
Oct 3 2007, 08:11
|

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

|
при создании проекта в nios2ide, я создаю пустой проект, какие файлы мне необходимы? кроме *.ptf... и где их взять... скажить где читать ничего найти не могу и я понять не могу зачем "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 варнинга... что за чудеса???
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Oct 3 2007, 09:59
|

Частый гость
 
Группа: Свой
Сообщений: 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
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Oct 3 2007, 13:09
|
Местный
  
Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377

|
Посмотрите на ug_nios2_ide_help.pdf из http://www.altera.com/literature/lit-ug.jsp Там, кажется, несколько более систематизировано, хотя тоже..
|
|
|
|
|
Oct 3 2007, 14:00
|

Частый гость
 
Группа: Свой
Сообщений: 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. существует ли в природе вообще понятный мануал, о том как писать проекты с нуля к примеру?
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Oct 3 2007, 15:09
|
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 пропишите.
|
|
|
|
|
Oct 3 2007, 15:53
|

Частый гость
 
Группа: Свой
Сообщений: 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
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Oct 4 2007, 10:08
|

Частый гость
 
Группа: Свой
Сообщений: 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, то всё будет ок... в чём косяк, где я не прав? з.ы. к сожалению железки пока нету, проверить не на чем  ещё можно вот так записать Код volatile np_pio *pio_l = "/dev/pio"; вроде работает, и симулируется...
Сообщение отредактировал Mozart - Oct 4 2007, 09:54
--------------------
все косяки, даже о которых не знает сам разработчик, - мои
|
|
|
|
|
Oct 4 2007, 10:45
|
Местный
  
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Oct 5 2007, 09:26
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

|
Цитата(Волощенко @ Oct 4 2007, 14:45)  Где можно найти информацию (источники) об освоении и применении в своих проектах всех этих системных библиотек? Не знаю. В описании компонента периферии может быть что-то есть. Можно просто поковырять исходники. Можно примеры посмотреть. Я, честно говоря, очень мало пользовался периферией.
|
|
|
|
|
Oct 5 2007, 10:43
|
Местный
  
Группа: Свой
Сообщений: 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…
|
|
|
|
|
Oct 5 2007, 12:35
|
carpe manana
  
Группа: Свой
Сообщений: 321
Регистрация: 2-06-05
Пользователь №: 5 659

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