Это здорово, что вы хотите быть независимым от компилятора! К сожалению, компиляторы hitech и CCS для PIC нижнего уровня используют множество объявлений препроцессора, специфичных для компилятора, процедур доступа к выводам, специфичных для компилятора, и в случае процедур, специфичных для компилятора CCS, для функций ядра доступа, таких как SPI, I2C, ADC и т.
Невозможно написать свой код, который бы не относился к конкретному компилятору без большого количества препроцессора #define, #ifdef, #ifndef и т. Д., Чтобы получить доступ к определенным частям того, что предлагает каждый компилятор. Это сделает ваш код нечитаемым.
Лучшее, к чему вы можете стремиться - это быть независимым от IDE и использовать что-то вроде eclipse, так что, по крайней мере, вы используете ту же IDE. Это приведет к потере мастеров CCS для настройки основных функций, но даст вам большую гибкость при использовании той же IDE.
Еще одна вещь, которую следует учитывать, это то, что и hitech, и CCS не имеют (по крайней мере, в прошлом) настоящего компоновщика компилятора c и требуют от вас использования "#include myfile.c", который я лично презираю ... но это другая история.
Я не прокомментировал компилятор IAR, поскольку я использовал только CCS и hitech. Оба работали нормально, но я никогда не был доволен ни после миграции с платформы Motorola (теперь это freescale), ни с использованием более современного на тот момент компилятора metroworks. Компилятор IAR выглядит хорошо, но я никогда не использовал его.