Имеется вот такой код:
Код
void foo(void)
{
volatile char c[] = {0x00, 0x00, 0x00, 0x00, 0x00};
__flash static unsigned char ResetFrame[]={0x08,0x01,0x00,0x00,0x00};
pFLASH = (__flash unsigned char *)ResetFrame;
for (char i = 5; i != 0; i--)
{
c[i] = *(pFLASH+i);
}
}
Указатель pFLASH
обьявлен ранее как
Код
unsigned char *pFLASH;
Копмилятору не нравиться строка
Код
pFLASH = (__flash unsigned char *)ResetFrame;
Error[Pe513]: a value of type "unsigned char __flash *" cannot be assigned to an entity of type "unsigned char *"
Если написать так
Код
(unsigned char __flash *)pFLASH = ResetFrame;
Error[Pe137]: expression must be a modifiable lvalue
Warning[Pe549]: variable "pFLASH" is used before its value is set
Конечно можно отдельно сделать указатель, тогда все работает, но вот с преобразованием не хотит

Как это правиьно сделать ?