Начал писать заголовочные файлы для SmartFusion. Работа предполагается в SoftConsole. Есть несколько поименованных областей памяти, с которыми надо будет работать. Описаны они примерно следующим образом:
typedef struct
{
volatile uint32_t TSW[16];
volatile uint32_t SA[30][16];
}MKORX_TypeDef;#define MKORX_BASE (0x40050000)
#define MKORX ((MKORX_TypeDef *) MKORX_BASE)
Дальнейшее использование, соответственно, стандартным образом: MKORX->SA[4][2] = 0xDEADBEEF;
Дык вот здесь есть малюсенькая такая тонкость, которая заключается в том, что тип uint32_t описан в файле stdint.h и его надо хотя бы единожды в проект включить. Иначе, возникает ошибка компилятора, которая в принципе не гуглится и по этому описанию понять – а в чём собственно ошибка? – не получится:
expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘TSW’
Указатель ошибки показывает почему-то на название переменной, а не на то, что перед ней тип данных неопределен. Вообще-то, в этом случае должна возникать ошибка на отсутствие зарезервированного слова и предварительного описания типа. Очень хочется кого-нибудь стукнуть за это.