Stub 特殊功能寄存器
Stub a Special Function Register
我想从 NEC 微控制器(设备是 78K)存根一个特殊功能寄存器。我无法获得有关如何对 sfr 命令进行编码的任何信息。
当前的 main.c 和 Device.h 看起来像这样:
// Device.h
sfr P1 = 0xFF01;
sfr P2 = 0xFF02;
...
// main.c
#inlcude <Device.h>
void main(void)
{
P1.7 = 0;
P2.0 = 1;
}
之后应该是这样的
// StubDevice.h
// typdef struct & volatile & bitfield = stubsfr
stubsfr P1
stubsfr P2
...
// main.c
#include "StubDevice.h"
void main(void)
{
P1.7 = 0;
P2.0 = 1;
}
这是一个带有非常老式编译器的 C 项目。我不想改变主要功能中的某些内容。我只想添加一个带有存根特殊功能寄存器的新头文件并使用例如MinGW 而不是旧的编译器。
是否可以使用 typdef struct
& volatile
& 位域来创建变量 stubsfr?
非常感谢
如果不稍微改变实现,这将很难实现。这是因为常规 C 不允许您使用数字*命名结构成员,因此您将无法创建替换 SFR 寄存器的结构对象。
*C说名字必须以字母或下划线开头。
我想从 NEC 微控制器(设备是 78K)存根一个特殊功能寄存器。我无法获得有关如何对 sfr 命令进行编码的任何信息。
当前的 main.c 和 Device.h 看起来像这样:
// Device.h
sfr P1 = 0xFF01;
sfr P2 = 0xFF02;
...
// main.c
#inlcude <Device.h>
void main(void)
{
P1.7 = 0;
P2.0 = 1;
}
之后应该是这样的
// StubDevice.h
// typdef struct & volatile & bitfield = stubsfr
stubsfr P1
stubsfr P2
...
// main.c
#include "StubDevice.h"
void main(void)
{
P1.7 = 0;
P2.0 = 1;
}
这是一个带有非常老式编译器的 C 项目。我不想改变主要功能中的某些内容。我只想添加一个带有存根特殊功能寄存器的新头文件并使用例如MinGW 而不是旧的编译器。
是否可以使用 typdef struct
& volatile
& 位域来创建变量 stubsfr?
非常感谢
如果不稍微改变实现,这将很难实现。这是因为常规 C 不允许您使用数字*命名结构成员,因此您将无法创建替换 SFR 寄存器的结构对象。
*C说名字必须以字母或下划线开头。