У меня есть проект C в среде MPLAB IDE, где я хочу, чтобы файл main.c мог использоваться для более чем одного HW, который у меня есть. Основное различие заключается в том, что контакты PIC связаны друг с другом.MPLAB IDE 8.85 условно, включая заголовок
Идея состоит в том, чтобы создавать разные файлы .h и .c для каждого HW, который поддерживает мой основной файл, и включать только тот, который соответствует HW, для которого я хочу построить.
Что-то вроде этого:
#if defined(HW_1)
#include "hw1.h"
#elif defined(HW_2)
#include "hw2.h"
#endif
Эти дополнительные файлы (hw1.c и hw2.c) включают в себя главным образом определения функций штырей, таких как:
#define GPI_PG_3V3 RD2
и связанных с ними функций ,
Но проблема в том, что разные HW могут иметь одинаковые функциональные возможности, но на разных контактах. Это означает, что для разных HW могут существовать одни и те же переменные #define.
Хотя я включаю соответствующий файл .h в соответствии с моим HW, в структуре MPLAB у меня есть один и тот же проект, и это означает, что я должен включать все файлы .h в одно и то же время. Но это приводит к проблеме, компилятор считает, что имеются различные определения того же переменное, например .:
Error [237] S:\PIC_Code\ACCEED_4420\Source\acceed1480.c; 23. function "_initGpio" redefined
Кто-нибудь есть хорошее представление о том, как решить эту проблему? Одна идея, которая пришла ко мне, состоит в том, чтобы иметь разные проекты для всех разных HW, которые у меня есть. Это единственное решение? В таком случае было бы сложно структурировать каталоги проектов.
Конфигурация проекта - это функция, которая может создавать проект внутри проекта. Доступно ли это в вашей версии? Он доступен в MPLAB X –
@PunitVara К сожалению, я не нашел ничего подходящего. Я вижу только конфигурацию сборки, но это между выпуском и отладкой. Что делает эта функция в MPLAB X? – nickagian