После некоторого перерыва добрался до платы (Cyclone III 3c120 dev kit), чтобы попробовать запустить проект с Flash.
с 1-ого раза не завелась и с 2-ого тоже.
Имеется CIII dev kit на борту Flash - Spansion (S29GL512N11FFIV1),
- 64 Мбх16
- CFI flash command support (поддержка CFI)
Sopc Builder:
cpu
on-chip memory
...
tristate_bridge + cfi_flash
sysid не ставил или необходимо?
Nios IDE пример из handbook:
ставлю галочки в свойствах библиотеки -
program never exits
support C++
ligthweight device driver API
clean exit
reduce device driver
small C library
#include "sys/alt_flash.h"
#include <stdio.h>
#include <string.h>
...
alt_flash_fd* fd;
fd = alt_flash_open_dev("/dev/cfi_flash");fd возвращается нулевой - ничего не открылось естественно.
В Quartus распиновку проверил вроде правильно, но...
в Sopc Builder компонент CFI - ставлю Custom, address width -
25 bit и data width - 16 объем Flash -
64 Мб смотрим в manual распиновка address bit 24 - 0
FSM_A(24:0) Address bus (word aligned)то есть адресация 32 Мб используя 25 бит. сама Flash 64 Мб - 26 бит. (поправьте если я здесь чего-то не понимаю)
В Quartus это выглядит так:
Нажмите для просмотра прикрепленного файлаКак с этим быть?
При прошивке проекта в CIII загорается Led Flash active, за который отвечает Max II (вырезка из manual к CIII -
Illuminates when flash memory is being accessed with a read or write transaction. Driven by the MAX II CPLD).
При запуске в Nios IDE Debug никакого моргания или признаков активности Led нет.
Мои догадки, почему не работает:
1. неправильная конфигурация в sopc builder(может нужен sysid или неправильно выставлен объем Flash)
2. ошибка при распиновке в Quartus (проверю еще раз)
3. неправильное имя при обращении /dev/cfi_flash (беру из system.h после генерации)
4. мертвая flash(маловероятно) или как-то причастен Max II
Кто сталкивался с проблемами Flash в Nios II Или есть какие-то соображения, отпишитесь пожалуйста.