VScode环境下 开发单片机keil c251 兼容脚本
由于开C251中 bit 中断 等等会有没定义的情况 ,可以用这头文件解决
但是需要注意的是,改代码在编译环境下 必须不包含进去,不然编译会出错
这是调用方法
#define OPEN_VSCODE_DEBUG //注释该行,将不进入VSCODE调试,为了VSCODE代码编写兼容keil,在烧录前务必注释该行
#ifdef OPEN_VSCODE_DEBUG
#include "../debug/debug.h"
#endif
下面是debug.h
/***
* !!! 不要在项目编译环境下中包含此文件!,它只能用于代码分析! !!!
*/
#ifndef __VSCODE_CPPTOOL
#error "不要在项目中包含此文件!,它只能用于代码分析!"
#endif // !
#ifdef _WIN32
#undef _WIN32
#endif
#ifdef _MSC_VER
#undef _MSC_VER
#endif
// compiler flags
#ifdef __SDCC
// keywords
#define __reentrant
#define __trap
#define __critical
#define __interrupt(x)
#define __using(x)
#define __at(x)
#define __asm__(x)
// for pic
#define __wparam
#define __shadowregs
// storage type
#define __data
#define __idata
#define __pdata
#define __xdata
#define __code
#define __far
#define __near
// internal value type
typedef __bit __bit;
typedef __sbit __sbit;
typedef __sfr __sfr;
typedef __sfr16 __sfr16;
typedef __sfr32 __sfr32;
#else // Keil C51
#define __C51__
/*
外部中断0 入口0
T0溢出中断 入口1
外部中断1 入口2
T1溢出中断 入口3
串行口中断 入口4
*/
#define interrupt
#define using
#define _at_
#define _priority_
#define _task_
// storage type
#define reentrant
#define compact
#define small
#define large
#define data
#define bdata
#define idata
#define pdata
#define xdata
#define code
// internal value type
typedef bit bit;
typedef sbit sbit;
typedef sfr sfr;
typedef sfr16 sfr16;
typedef sfr32 sfr32;
#endif