А надо ли? Вот функции "epcs_commands.h":
Код
alt_u8 epcs_read_device_id(alt_u32 base);
alt_u8 epcs_read_electronic_signature(alt_u32 base);
alt_u8 epcs_read_status_register(alt_u32 base);
void epcs_sector_erase(alt_u32 base, alt_u32 offset);
alt_32 epcs_read_buffer(alt_u32 base, int offset, alt_u8 *dest_addr, int length);
void epcs_write_enable(alt_u32 base);
void epcs_write_status_register(alt_u32 base, alt_u8 value);
alt_32 epcs_write_buffer(alt_u32 base, int offset, const alt_u8 *src_addr, int length);
А открыть файл - это уже "altera_avalon_epcs_flash_controller.h" и другие функции.
В функцию epcs_sector_erase надо указывать только номер сектора, например 127?
Что-то и с открыванием файлов не получается:
Код
alt_flash_fd *p_epcs_fd;
flash_region *p_epcs_reg_info;
int num_epcs_regs;
unsigned int epcs_buff[4];
p_epcs_fd = alt_flash_open_dev("/dev/epcs_flash_controller");
alt_epcs_flash_get_info(p_epcs_fd, &(p_epcs_reg_info), &(num_epcs_regs));
alt_epcs_flash_read(p_epcs_fd, 65536*126, (void*)epcs_buff, 16);
alt_flash_close_dev(p_epcs_fd);
А запись так:
Код
p_epcs_fd = alt_flash_open_dev("/dev/epcs_flash_controller");
alt_epcs_flash_erase_block(p_epcs_fd, 126);
alt_epcs_flash_write_block(p_epcs_fd, 126, 0, (void*)epcs_buff, 16);
alt_flash_close_dev(p_epcs_fd);
Оно конечно не виснет. Однако после записи, вычитываю все те же ffffffff. И начинает глючить вся программа вообще. Что-то эта запись во влеш где-то не дружит с fprintf.
Быть. torizin-liteha@yandex.ru