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

 
 
> Nios II Software, загрузка с Flash
dim99
сообщение Jul 1 2009, 08:10
Сообщение #1


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

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Доброго времени суток, товарищи )

Возникла необходимость экономии памяти (on-chip) и требуется перекинуть software с on-chip на Flash, чтобы ядро грузилось с флэшки,встроенной на плате.

Имеется Cyclone III C120 и flash 64 Мб с CFI интерфейсом.
Посмотрел на официальном сайте altera.com, вроде все просто прошился через Flash Programmer и все.

Так вот сам вопрос: по мануалу ug_nios2_flash_programmer.pdf необходимо создать для CFI Avalon-MM Tristate и добавить компонент Flash Memory.
Тогда получается необходимо создать и внешний блок(саму Flash память) и организовать связь между ядром и разработанным блоком?
Чем тогда будет являться Flash память, какой элемент использовать или все дело в дальнейшей распиновке(то есть привяжу к ножкам Flash и оно поймет)?

Простите, если коряво выразился, может подобная тема и есть, но что-то не нашел.
буду благодарен за любые отзывы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vadimuzzz
сообщение Oct 10 2009, 10:21
Сообщение #2


Гуру
******

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



собрал ниос с флешем на стартер-ките. все работает.
код программы
Код
#include "sys/alt_flash.h"
#include "system.h"

int main()
{
    alt_flash_fd *fd;
    fd=alt_flash_open_dev(CFI_FLASH_NAME);
  /* Event loop never exits. */
  while (1);

  return 0;
}

fd=0, когда стоит галочка "Reduced device drivers". об этом в мануале на HAL говорится.
если галочку снять, то размер бинарника вырастет с ~800 байт до ~8кбайт и alt_flash_open_dev будет заполнять структуру fd.
если переделывать проект под другую плату, надо изменить размер флеш (у меня 32 Мб) и перекинуть пины. проект в аттаче.
да, чуть не забыл. flash_reset действительно не нужен, я его вообще не подключал.
Прикрепленные файлы
Прикрепленный файл  NIOS_FLASH.zip ( 878.67 килобайт ) Кол-во скачиваний: 76
 
Go to the top of the page
 
+Quote Post
dim99
сообщение Oct 10 2009, 14:45
Сообщение #3


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

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Спасибо за проект и замечания.
До платы доберусь только в понедельник, смотрю вы на 7.2 SP3 работаете, у меня же стоит 8.0 SP1 может от версии тоже много чего зависит.
Думаю, если не пойдет перекомпилю на 8.1.
Go to the top of the page
 
+Quote Post
dim99
сообщение Oct 12 2009, 09:34
Сообщение #4


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

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Сегодня переделал проект в nios ide как в примере прикрепленном:
результаты из-под nios ide command shell:

CFI Table:

[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --debug
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Found CFI table in 16 bit mode
Raw CFI query table read from device:
0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
20: 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00 00 Q.R.Y.....@.....
30: 00 00 00 00 00 00 27 00 36 00 00 00 00 00 07 00 ......'.6.......
40: 07 00 0A 00 00 00 03 00 05 00 04 00 00 00 1A 00 ................
CFI query table read from device:
10: 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 07 QRY..@.....'6...
20: 07 0A 00 03 05 04 00 1A 02 00 05 00 01 FF 01 00 ................
30: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
CFI extended table read from device:
0: 50 52 49 31 33 10 02 01 00 08 00 00 02 B5 C5 05 PRI13...........
10: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Read autoselect code 0001-227E (in 16 bit mode)
No CFI override data for [FLASH-0001-227E]
Device size is 64MByte
Erase regions are:
offset 0: 512 x 128K
Device supports AMD style programming algorithm
Multi-byte programming with 32 byte buffer
Sector erase timeout is 16s
Word program timeout is 1ms
Buffer program timeout is 4ms
Leaving target processor paused

Интересно, что означает No CFI override data for?

Конвертим в Flash, чтобы записать:
[NiosII EDS]$ bin2flash --location=0x02100000 --input=ex.bin --output=data.flash

входной файл ex.bin=555555

выходной файл: data.flash=S00D0000646174612E666C6173681C
S30B02100000353535353535A4

записываем во Flash:
[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --program data.flash
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Checksums took 0.0s
Erase not required
Programmed 1KB in 0.0s
Device contents checksummed OK
Leaving target processor paused

считываем:
[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --read=current.srec --read-bytes=0x02100000,0x5
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Writing FLASH contents to current.srec
Leaving target processor paused

current.srec=S30A021000003535353535DA
S5030001FB
Вроде бы что-то совпадает:
исходные данные в flash формате: S30B02100000353535353535A4
считанные из Flash формат srec: S30A021000003535353535DA

затем пытаюсь проверить:
[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --verify data.flash
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Verifying 02100000 ( 0%)assertion "(size & 3) == 0" failed: file "nios2flash.cpp
", line 266
1 [sig] nios2-flash-programmer 4048 c:\altera\80\nios2eds\bin\nios2-flash-
programmer.exe: *** fatal error - called with threadlist_ix -1
Hangup

В итоге верификация не удалась.


В nios ide пытаюсь что-нибудь ссделать:

после выполнения fd=alt_flash_open_dev(CFI_FLASH_NAME); возвращается ненулевой указатель, раньше был строго 0
но после завершения вызова выпадает меню: Source not found
дальше ничего не хочет идти.


Ф-ция int alt_set_flash_width_func( alt_flash_cfi_dev* flash)

пошаговая отладка показала что flash не определяется никак по параметрам ширины данных и адреса и в итоге возращает ret_code -13.

вот такие дела =(
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Oct 12 2009, 14:35
Сообщение #5


Гуру
******

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



Цитата(dim99 @ Oct 12 2009, 16:34) *
Сегодня переделал проект в nios ide как в примере прикрепленном:
результаты из-под nios ide command shell:
...
Интересно, что означает No CFI override data for?

это значит, что все нормально, используются дефолтные настройки.
Цитата
Конвертим в Flash, чтобы записать:
[NiosII EDS]$ bin2flash --location=0x02100000 --input=ex.bin --output=data.flash

входной файл ex.bin=555555

выходной файл: data.flash=S00D0000646174612E666C6173681C
S30B02100000353535353535A4

записываем во Flash:
[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --program data.flash
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Checksums took 0.0s
Erase not required
Programmed 1KB in 0.0s
Device contents checksummed OK
Leaving target processor paused

считываем:
[NiosII EDS]$ nios2-flash-programmer --base=0x04000000 --cable="Usb-blaster [US
B-0]" --read=current.srec --read-bytes=0x02100000,0x5
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Resetting and pausing target processor: OK
Writing FLASH contents to current.srec
Leaving target processor paused

current.srec=S30A021000003535353535DA
S5030001FB
Вроде бы что-то совпадает:
исходные данные в flash формате: S30B02100000353535353535A4
считанные из Flash формат srec: S30A021000003535353535DA

совпадает все. просто вы записали 6 байт, а считали 5 biggrin.gif
Цитата
В nios ide пытаюсь что-нибудь ссделать:

после выполнения fd=alt_flash_open_dev(CFI_FLASH_NAME); возвращается ненулевой указатель, раньше был строго 0
но после завершения вызова выпадает меню: Source not found
дальше ничего не хочет идти.

видимо из-за того, что в настройках линкера для System Library выбрана конфигурация Release и оптимизатор все порезал. поставьте Debug (если памяти хватает) и сможете покопаться поглубже.

Цитата
Ф-ция int alt_set_flash_width_func( alt_flash_cfi_dev* flash)
пошаговая отладка показала что flash не определяется никак по параметрам ширины данных и адреса и в итоге возращает ret_code -13.
вот такие дела =(

че-то я не понял, а накой икс вам эта функция? alt_flash_open_dev - отработала => вызываем alt_flash_read или alt_flash_write. в конце не забываем alt_flash_close_dev вызвать. а использование alt_set_flash_width_func - это грязный хак. к тому же я подозреваю, что буквы set в названии означают, что она пишет что-то в (alt_flash_cfi_dev*) а не читает.

Цитата(dim99 @ Oct 12 2009, 21:24) *
Покапался в datasheet к своей Flash и выяснил интересные вещи:

Addresses are AMax:A0 in word mode; AMax:A-1 in byte mode

то есть для 16-битной адресации нужен младший бит.
Может тогда надо заводить на распиновку не [25..1] как у меня, а [24..0]?

И еще для включения механизма 16-битной адресации BYTE#=1, у меня же он вообще не распинован а в мануале к dev kit ссылка на распиновку MAX II.
MAX II Device Pin-Out
L15 1.8 V Output FLASH_BYTEn

просто если его не трогать непонятно, какой тип адресации выставлен 16-бит или 8.
Могу ли я его явно распиновать на 1 в квартусе, чтобы точно знать, что у меня адресация 16-битная или ножки к MAX II лучше не трогать?

все у вас нормально и flash_programmer это подтверждает. посмотрите внимательно логи.
Go to the top of the page
 
+Quote Post
dim99
сообщение Oct 12 2009, 15:10
Сообщение #6


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

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Цитата(vadimuzzz @ Oct 12 2009, 18:35) *
видимо из-за того, что в настройках линкера для System Library выбрана конфигурация Release и оптимизатор все порезал. поставьте Debug (если памяти хватает) и сможете покопаться поглубже.


че-то я не понял, а накой икс вам эта функция? alt_flash_open_dev - отработала => вызываем alt_flash_read или alt_flash_write. в конце не забываем alt_flash_close_dev вызвать.


Еще раз проверю, но вроде бы выставлен debug.
Спасибо за ответы, буду завтра еще мучить flash, если не выйдет тогда подключу через avalon slave как новый компонент без всяких cfi.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dim99   Nios II Software   Jul 1 2009, 08:10
- - Postoroniy_V   1)после того как в системе появится CFI Avalon-M...   Jul 1 2009, 10:49
|- - dim99   Цитата(Postoroniy_V @ Jul 1 2009, 14:49) ...   Jul 14 2009, 07:34
|- - Postoroniy_V   Цитата(dim99 @ Jul 14 2009, 16:34) что-то...   Jul 14 2009, 08:50
|- - dim99   Цитата(Postoroniy_V @ Jul 14 2009, 12:50)...   Jul 14 2009, 19:10
- - Men   У меня DE1 от альтеры, не получается прошить в EPC...   Jul 29 2009, 16:14
|- - vadimuzzz   Цитата(Men @ Jul 29 2009, 23:14) У меня D...   Jul 30 2009, 00:51
|- - Men   Цитата(vadimuzzz @ Jul 30 2009, 04:51) ло...   Jul 30 2009, 13:02
|- - Stewart Little   Цитата(Men @ Jul 30 2009, 17:02) Мой прое...   Jul 30 2009, 15:54
|- - Men   Цитата(Stewart Little @ Jul 30 2009, 19:5...   Jul 30 2009, 16:31
|- - vadimuzzz   Цитата(Men @ Jul 30 2009, 23:31) В каком ...   Jul 30 2009, 22:31
- - Men   А слона то я и незаметил!!! Все зар...   Jul 31 2009, 05:43
|- - inco   Цитата(Men @ Jul 31 2009, 08:43) А слона ...   Jul 31 2009, 09:57
|- - vadimuzzz   Цитата(inco @ Jul 31 2009, 16:57) А каког...   Jul 31 2009, 14:10
|- - Stewart Little   Цитата(vadimuzzz @ Jul 31 2009, 18:10) мо...   Aug 2 2009, 08:02
|- - vadimuzzz   Цитата(Stewart Little @ Aug 2 2009, 15:02...   Aug 2 2009, 09:32
|- - dim99   После некоторого перерыва добрался до платы (Cyclo...   Oct 6 2009, 15:20
|- - Postoroniy_V   Цитата(dim99 @ Oct 7 2009, 00:20) После н...   Oct 7 2009, 02:14
|- - vadimuzzz   Цитата(dim99 @ Oct 6 2009, 22:20) Мои дог...   Oct 7 2009, 23:07
|- - barabek   Цитата(dim99 @ Oct 7 2009, 02:20) Nios ID...   Oct 8 2009, 13:17
|- - dim99   В общем решил одну из проблем - правильно распинов...   Oct 8 2009, 18:39
|- - vadimuzzz   Цитата(dim99 @ Oct 9 2009, 01:39) В общем...   Oct 8 2009, 22:55
|- - barabek   Цитата(dim99 @ Oct 9 2009, 04:39) В общем...   Oct 9 2009, 01:31
|- - dim99   Цитата(barabek @ Oct 9 2009, 05:31) Время...   Oct 9 2009, 12:43
|- - vadimuzzz   Цитата(dim99 @ Oct 9 2009, 19:43) alt_fla...   Oct 9 2009, 13:15
|- - barabek   Цитата(vadimuzzz @ Oct 9 2009, 23:15) alt...   Oct 9 2009, 14:01
||- - barabek   Да, кстати. Я скопировал упомянутый altera_avalon_...   Oct 9 2009, 14:36
||- - dim99   У меня вопрос появился, нет ли каких-нибудь ошибок...   Oct 9 2009, 15:25
||- - vadimuzzz   Цитата(dim99 @ Oct 9 2009, 22:25) У меня ...   Oct 9 2009, 15:56
||- - dim99   А что с reset? разве нельзя его завести на питание...   Oct 9 2009, 16:37
|- - dim99   Цитата(vadimuzzz @ Oct 9 2009, 17:15) alt...   Oct 9 2009, 14:34
|- - dim99   Покапался в datasheet к своей Flash и выяснил инте...   Oct 12 2009, 14:24
|- - dim99   Заработало ) Наконец-то после "недолгих...   Oct 14 2009, 14:11
|- - vadimuzzz   Цитата(dim99 @ Oct 14 2009, 21:11) В обще...   Oct 14 2009, 14:32
|- - dim99   Цитата(vadimuzzz @ Oct 14 2009, 18:32) эт...   Oct 14 2009, 14:38
|- - vadimuzzz   Цитата(dim99 @ Oct 14 2009, 21:38) Да, чи...   Oct 14 2009, 22:57
|- - dim99   Сегодня удачно загрузил soft в Flash и теперь с не...   Oct 15 2009, 13:01
- - KriGLer   А возможно ли cfi-flash сделать памятью программ н...   Jan 13 2010, 07:52
|- - vadimuzzz   Цитата(KriGLer @ Jan 13 2010, 13:52) А во...   Jan 13 2010, 08:09
- - KriGLer   Цитата(vadimuzzz @ Jan 13 2010, 11:09) не...   Jan 13 2010, 12:41
|- - vadimuzzz   Цитата(KriGLer @ Jan 13 2010, 18:41) т.е....   Jan 13 2010, 12:47
|- - KriGLer   Цитата(vadimuzzz @ Jan 13 2010, 16:47) ещ...   May 19 2010, 12:04
- - vadimuzzz   а как прогу шьете? через flash-programmer?   May 19 2010, 13:28
- - KriGLer   Да, через него   May 19 2010, 17:53
|- - barabek   Цитата(KriGLer @ May 20 2010, 04:53) Да, ...   May 19 2010, 21:15
|- - vadimuzzz   Цитата(KriGLer @ May 20 2010, 00:53) Да, ...   May 19 2010, 23:00
- - KriGLer   если это то: Код#!/bin/sh # # This file was au...   May 20 2010, 05:06
- - vadimuzzz   а ПЛИС как конфигурируется?   May 20 2010, 07:55
- - KriGLer   .jic фалом через jtag EP2C20 + EPCS4   May 20 2010, 09:01
- - vadimuzzz   а сколько у вас памяти (on-chip)?   May 20 2010, 12:02
- - KriGLer   )))) она отключена вообще   May 20 2010, 12:43
|- - vadimuzzz   Цитата(KriGLer @ May 20 2010, 19:43) ))))...   May 20 2010, 12:56
- - KriGLer   RE: Nios II Software   May 20 2010, 13:12
- - vadimuzzz   так, ошибок нигде не видно. тогда идем по порядку....   May 20 2010, 13:56
- - AntiL   помогите решить проблему(ы). ковыряюсь с платой EP...   Oct 25 2011, 11:57
- - AntiL   ладно, сам и отвечаю(может кому и понадобится): 1....   Oct 27 2011, 04:39
- - AntiL   7. ... преобразовывал с помощью quartus -> conv...   Oct 27 2011, 06:44


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

 


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


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