Правильное представление области видимости между Mbed и Platform IO

Я работаю над программой прошивки, которая была первоначально написана на mbed, и некоторые изменения были сделаны другим инженером. Я сталкиваюсь с некоторыми проблемами при переносе этого кода на платформу ввода-вывода.

Платформа имеет очень короткий файл main.cpp, который служит только для вызова Platform.h, который содержит код для конечного автомата устройства:

main.cpp

#include <Platform.h>

int main() {
Platform_Mode = INIT;

while(1) {
Platform_Run();
while(1) {
}
}
}

Platform.h

//platform code for Ticker 2
#ifndef PLATFORM_H
#define PLATFORM_H

#include "mbed.h"
#include "PS2Keyboard.h"#include "TextLCD.h"#include "epd4in2.h"#include "epdpaint.h"#include "Editor.h"
#define COLORED     0
#define UNCOLORED   1

typedef enum
{
INIT,                 /*!< Start/Begin/Init                */
EDITOR,               /*!< Run                             */
DEBUG
} Platform_Mode_t;

extern Platform_Mode_t Platform_Mode;

bool Platform_Run();
bool Platform_Init(void);
bool Platform_Editor(void);
void Platform_LED_Display(float R, float G, float B);

#endif

Platform.cpp содержит (щадя вас весь файл)

Platform_Mode_t Platform_Mode;

Все это прекрасно компилируется в онлайн-компиляторе Mbed. Однако в моей среде ввода-вывода Platform я получаю:

'Platform_Mode' was not declared in this scope
'INIT' was not declared in this scope
'Platform_Run' was not declared in this scope

И т.д., для каждого вызова функции платформы.

У меня нет опыта работы с компилятором, и я заблудился относительно того, почему это будет отличаться на разных платформах. Он кажется слишком базовым, чтобы быть ошибкой со стороны Платформенного ввода-вывода, и мой процесс запуска показывает, что зависимость библиотеки расположена правильно. Компилятор Mbed компенсирует что-то связанное с областью действия, чего нет у Platform IO?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]