|
|
  |
NIOS для начинающих |
|
|
|
Mar 16 2011, 19:57
|
Группа: Новичок
Сообщений: 8
Регистрация: 3-03-11
Пользователь №: 63 360

|
alexPec, не осталось прошивки ознакомится? Буду бесконечно благодарен.
|
|
|
|
|
Apr 1 2011, 06:51
|
Группа: Новичок
Сообщений: 6
Регистрация: 19-10-09
Пользователь №: 53 053

|
При добавлении в систему компонента с шиной данных 8 бит появляется warning: "cpu.data_master/device.avalon_slave does not have byteenables. Narrow (less than 32-bit) writes from cpu.data_master will result in spurious writes to device.avalon_slave". При добавлении byteenable пишет ошибку, что byteenable не может быть меньше 2, хотя в спецификации написано что может быть и 1. Может это повлиять на работу системы если не ставить byteenable?
Еще quartus при компиляции пишет "Found Invalid timing asssignments". При просмотре ошибок minimum slack для Clock Hold: nios pll имеет отрицательное значение и pll_offset = -1,667 ns. При попытке на данную прошивку загрузить софт Nios пишет: "ID value doesn't match. Timestamp value doesn't match: image on board is older than expected". При чем данная ошибка появляется только когда в системе присутствуют компоненты со Stream интерфейсом. Что это может быть и как это можно исправить?
|
|
|
|
|
Apr 1 2011, 22:35
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(vilary @ Apr 1 2011, 17:51)  При добавлении в систему компонента с шиной данных 8 бит появляется warning: "cpu.data_master/device.avalon_slave does not have byteenables. Narrow (less than 32-bit) writes from cpu.data_master will result in spurious writes to device.avalon_slave". При добавлении byteenable пишет ошибку, что byteenable не может быть меньше 2, хотя в спецификации написано что может быть и 1. Может это повлиять на работу системы если не ставить byteenable? Раз Вы можете добавить byteenable то, смею предположить, что это Ваш самописный компонент. Если так, то можно либо выставить NATIVE адресацию у компонента, тогда и byteenable не нужен. Либо оставить DYNAMIC, но сделать шину 32-х битную, вставить byteenable, при этом логику внутри компонета можно сделать такой, что старшие 3 байта игнорировать. Выбирайте.
|
|
|
|
|
Apr 2 2011, 13:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(W1nneR @ Mar 16 2011, 23:57)  alexPec, не осталось прошивки ознакомится? Буду бесконечно благодарен. В файлике ф-ии записи и чтения в/из USB и пример использования этих ф-й. На стороне компа после установки драйверов запись/чтение происходит как в обычный ком-порт. Думаю названия портов интуитивно понятно каким выводам FT245 соответствуют. Порт data - двунаправленный.
|
|
|
|
|
Apr 7 2011, 05:37
|
Группа: Новичок
Сообщений: 8
Регистрация: 3-03-11
Пользователь №: 63 360

|
Спасибо большое, что откликнулись на зов моей помощи, но что то не могу файлик пощупать, ни скачивается и не просмативается... (
|
|
|
|
|
Apr 18 2011, 13:59
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 1-01-06
Из: Волгоград
Пользователь №: 12 763

|
На заметку. 1. Если хотите чтобы работал Nios II Flash Programmer то ставьте версию 9.1 SP1. На SP2 и без SP не работает (неправильно конвертирует sof->flash). 2. Чтобы работать с UART в неблокирующем режиме нужно открывать его следующим образом: Код static int fdterm; // FILEDESCRIPTOR RETURNED BY OPEN .. fdterm = open("/dev/uart1", O_RDWR | O_NONBLOCK | O_NOCTTY | O_SYNC); ..
reading is done by
.. res=read(fdterm,uart1_tempbuff,sizeof(uart1_tempbu ff)-1); if(res>0) { ... we have received some bytes } Тогда при чтении данных исполнение программы блокироваться не будет. Удивительно но не нашел доку где это было бы описано, спасибо альтерафоруму.
|
|
|
|
|
Apr 19 2011, 07:31
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
самое простое - использовать функции alt_write_flash, alt_read_flash. тогда можно о блоках не думать. то, что вы перечислили - низкоуровневые функции, они вызываются в alt_write_flash, alt_read_flash. можно делать и на низком уровне, но код будет менее универсальный, больше привязан к железу. см. http://www.altera.com/literature/hb/nios2/n2sw_nii52010.pdfЦитата(juvf @ Apr 19 2011, 13:44)  Ещё не понятно что такое регион? С чем его есть и для чего он нужен? см. alt_flash_types.h
|
|
|
|
|
Apr 19 2011, 07:56
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(vadimuzzz @ Apr 19 2011, 13:31)  самое простое - использовать функции alt_write_flash, alt_read_flash. тогда можно о блоках не думать. то, что вы перечислили - низкоуровневые функции, они вызываются в alt_write_flash, изночально нписал alt_write_flash(...); // пишу 1234 в адрес 0 alt_write_flash(...); // пишу 5678 в адрес 20 alt_read_flash(...); //читаю из адреса 0, получаю 0xffff alt_read_flash(...); //читаю из адреса 20, получаю то, что записал, т.е. 5678 такое чувство что вторая запись сначала стерла первую запись, а потом записала 5678.
Сообщение отредактировал juvf - Apr 19 2011, 07:57
|
|
|
|
|
Apr 19 2011, 08:13
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата тогда можно о блоках не думать. как же не думать? Вот из документации на апи, стр 6-21 Цитата Generally, flash memory is divided into blocks. alt_write_flash() might need to erase the contents of a block before it can write data to it. In this case, it makes no attempt to preserve the existing contents of the block. This action can lead to unexpected data corruption (erasure), if you are performing writes that do not fall on block boundaries. If you wish to preserve existing flash memory contents, use the fine-grained flash functions. These are discussed in the following section.
...
Fine-Grained Flash Access Three additional functions provide complete control for writing flash contents at the highest granularity: ■ alt_get_flash_info() ■ alt_erase_flash_block() ■ alt_write_flash_block() как то не понятно, как эту флеш писать читать?
|
|
|
|
|
  |
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|
|