Код
typedef struct TEST_S
{
unsigned char start;
unsigned int length;
char *text;
}TEST;
extern TEST tests[MAX_TESTS];
{
unsigned char start;
unsigned int length;
char *text;
}TEST;
extern TEST tests[MAX_TESTS];
я инициализирую структуру и пытаюсь записать.
Код
unsigned int TESTER_SaveTest(unsigned int user_page)
{
unsigned int ret;
unsigned int addr;
tests[0].start = 0xDA;
tests[0].length = 5;
tests[0].text = "HELLO";
tests[1].start = 0xDA;
tests[1].length = 6;
tests[1].text = "WORLD!";
ret = FLASH_PageErase(user_page);
if (ret)
return ret;
addr = 0;
ret = FLASH_PageProgram(user_page, addr, (uint8_t *) &tests[0], BUFFER_SIZE_BYTE);
if (ret)
return ret;
addr += (sizeof(tests[0])) + 1;
ret = FLASH_PageProgram(user_page, addr, (uint8_t *) &tests[1], BUFFER_SIZE_BYTE); //тут я получаю ошибку - 32.
if (ret)
return ret;
return ret;
}
{
unsigned int ret;
unsigned int addr;
tests[0].start = 0xDA;
tests[0].length = 5;
tests[0].text = "HELLO";
tests[1].start = 0xDA;
tests[1].length = 6;
tests[1].text = "WORLD!";
ret = FLASH_PageErase(user_page);
if (ret)
return ret;
addr = 0;
ret = FLASH_PageProgram(user_page, addr, (uint8_t *) &tests[0], BUFFER_SIZE_BYTE);
if (ret)
return ret;
addr += (sizeof(tests[0])) + 1;
ret = FLASH_PageProgram(user_page, addr, (uint8_t *) &tests[1], BUFFER_SIZE_BYTE); //тут я получаю ошибку - 32.
if (ret)
return ret;
return ret;
}
Первая запись проходит нормально. Вторая со смещением 13 выдает ошибку 32 - Access error is set in the FSTAT register.
Я что то упускаю в логике?