Koshak (04.08.2006 16:40, просмотров: 1) ответил bialix на для отдельных регистров примерно так и можно заменить обращения к регистрам
я бы конечно мог предложить что-то типа #ifdef DEBUG_TEST
// void MCUSimulatorWriteArray(void *address, int index, void *value, int element_size)
#define MCU_WRITE_WRITE_ARRAY(array, index, value) MCUSimulatorWriteArray(array, index, &value, sizeof(array) / sizeof(array[0]))
#else
#define MCU_WRITE_WRITE_ARRAY(array, index, value) array[index] = value
#endif
но, imho, это тупиковый путь. Вас сибивает с толку предположение что "вся внешняя периферия -- это по сути регистры в адресном пространстве". так то оно так, но содержание регистров определяет всего лишь состояние периферии. Тогда Вы пытаетесь "отслеживать запись/чтение в эти регистры" для эмуляции поведения устройтва.
imho, Вам надо двигаться в сторону hardware abstraction layer, который при unit тестировании можно будет подменять на вызовы к вашему адаптеру на верхнем уровне.