[an error occurred while processing this directive]
|
Я не знаю, как инициализирована структура LineRxSmpl,
но я бы во избежание недомолвок сделал так:
void init_LineRxSmpl(void)
{
LineRxSmpl.start = (int*)((int)&LineRxSmpl + sizeof(LineRxSmpl));
LineRxSmpl.write = LineRxSmpl.start;
LineRxSmpl.read = LineRxSmpl.start;
LineRxSmpl.size = 0x100;
}
предварительно дописав
#pragma DATA_ALIGN(LineRxSmpl, 2)
#pragma DATA_SECTION(LineRxSmpl, "LineRxSmpl_sec")
и определив ОТДЕЛЬНУЮ секцию LineRxSmpl_sec в .cmd файле:
...
DARAM_x : origin = 0000200h, length = 0000300h /* length >= (LineRxSmpl.size + 4) х 2 */
...
LineRxSmpl_sec : {} > DARAM_x
------
То есть, оснавная идея: записовать в СПЕЦИАЛЬНО зарезервираванную для етого область памяти
E-mail: info@telesys.ru