ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
631132 Топик полностью
il-2 (16.11.2015 11:01, просмотров: 157) ответил max на Ну и рассказал бы подробнее..
Подробно - долго. А вкратце: - В основных файлах проекта программа пишется на "чистом" Си/Си++. Если встречаются платформенно-зависимые части, то вместо них используются директивы препроцессора. К примеру - указатель на ROM для Фон-неймановской архитектуре - const *, для гарвардовской IAR AVR - flash *. Соответственно, в основных файлах используется константа препроцессора ROM_PTR, которое определено в "compiler.h". Путь к файлу compiler.h задается в свойствах проекта (в Keil ARM - один путь, В IAR AVR - другой, в CodeVision AVR - третий и т.д.). Определение в свойствах проекта разных путей для поиска включаемых файлов - путь к платформенной/процесорной независимости. - То-же самое - для процессора. К примеру, в драйверах устройств (LCD, матричная клавиатура и пр.) у меня используются единые макросы и функции для работы с выводами МК. Файлы с декларациями макросов и функций лежат в разных местах. Файлы с определениями(реализацией) - в разных проектах тоже разные. - Ну и т.д. в том-же духе.