Говорят, что можно средствами NIOS, читать и писать данные во флэшку, с которой производится конфигурирование плис. Но уж очень доступная документация не позволяет легко понять как же это делать. Попробовал разобраться по исходникам, что идут в составе BSP, но со всеми струкутрами и функциями так и не понял как же это должно работать.
Цель стоит простая хранить там серийник устройства и несколько параметров. Можно ли такое сделать?
Чего почитать чтобы понять как же это заставить работать, или пример посмотреть на крайний случай
исходя из файлов заголовков инициализация проходит при помощи
Код
int alt_epcs_flash_init(alt_flash_epcs_dev* flash);
где
Код
struct alt_flash_epcs_dev
{
alt_flash_dev dev;
alt_u32 register_base;
alt_u32 size_in_bytes;
alt_u32 silicon_id;
alt_u32 page_size;
};
// и тут же далее по ссылке alt_flash_dev
struct alt_flash_dev
{
alt_llist llist;
const char* name;
alt_flash_open open;
alt_flash_close close;
alt_flash_write write;
alt_flash_read read;
alt_flash_get_flash_info get_info;
alt_flash_erase_block erase_block;
alt_flash_write_block write_block;
void* base_addr;
int length;
int number_of_regions;
flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS];
};
мой код
Код
//включаю файлы заголовков
#define ALT_USE_EPCS_FLASH
#include <altera_avalon_epcs_flash_controller.h>
alt_flash_epcs_dev mem;
int a;
//задаю название контролерра
mem.dev.name=EPCS_FLASH_CONTROLLER_0_NAME;
// пытаюсь инициализировать его
a = alt_epcs_flash_init(mem);
// и прочитать
ret_code = alt_epcs_flash_read(mem->dev, 0, data_array_name, 16);
А он мне в ответ
Цитата
hello_world_small.c:309: error: incompatible type for argument 1 of 'alt_epcs_flash_init'
hello_world_small.c:310: error: invalid type argument of '->'
при
Код
ret_code = alt_epcs_flash_read(mem.dev, 0, data_array_name, 16);
Цитата
hello_world_small.c:310: error: incompatible type for argument 1 of 'alt_epcs_flash_read'