正确表示Mbed和Platform IO之间的范围

时间:2018-10-22 20:49:22

标签: c++ scope mbed platformio

我正在开发一个固件程序,该程序最初是用mbed编写的,并由另一位工程师进行了一些调整。在将此代码移至Platform IO时遇到一些问题。

平台上的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 IO环境中,我得到:

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

等,用于每个平台函数调用。

我对编译器问题没有经验,而我对为什么跨平台的情况会有所不同感到迷惑。这似乎太基础了,不可能在Platform IO方面造成错误,而且我的运行过程显示库依赖关系已正确定位。 Mbed的编译器是否已经在补偿与Platform IO不相关的范围?

0 个答案:

没有答案