В EPCS64 128 секторов. Хочу последний сектор для данных отвести.
Пишу код:
Код
#include "epcs_commands.h"
unsigned char * epcs_dst;
unsigned int epcs_buff[4];
epcs_dst = &epcs_buff[0];
fprintf(stdout, "\nepcs id = %x", epcs_read_device_id(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET));
epcs_read_buffer(EPCS_FLASH_CONTROLLER_BASE, 65536*127, epcs_dst, 16);
fprintf(stdout, "\n1 = %x", epcs_buff[0]);
unsigned char * epcs_dst;
unsigned int epcs_buff[4];
epcs_dst = &epcs_buff[0];
fprintf(stdout, "\nepcs id = %x", epcs_read_device_id(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET));
epcs_read_buffer(EPCS_FLASH_CONTROLLER_BASE, 65536*127, epcs_dst, 16);
fprintf(stdout, "\n1 = %x", epcs_buff[0]);
На функции чтения тупо виснет.
Что интересно, если написать:
Код
fprintf(stdout, "\nepcs id = %x", epcs_read_device_id(EPCS_FLASH_CONTROLLER_BASE));
Тоже виснет.
Где примерчик можно посмотреть? Чё ему не нравится? Всякие галки small в bsp сняты...
Попробовал везде использовать EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET
Зависать перестало.
Теперь добавляем запись:
Код
epcs_write_enable(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET);
epcs_sector_erase(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 127);
res = epcs_write_buffer(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*127, epcs_src, 16);
epcs_sector_erase(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 127);
res = epcs_write_buffer(EPCS_FLASH_CONTROLLER_BASE + EPCS_FLASH_CONTROLLER_REGISTER_OFFSET, 65536*127, epcs_src, 16);
После сброса питания, выяснилось, что прошивка накрылась. Куда-то не туда стер и записал...