我想从NEC微控制器(Device是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-Project。我不想在主要功能中改变一些东西。我只想添加带有存根特殊功能寄存器的新头文件,并使用例如MinGW而不是旧的编译器。
是否有可能使用typdef struct
&amp; volatile
&amp;位域创建变量stubsfr?
非常感谢
答案 0 :(得分:1)
如果不改变实施至少一点,这将很难实现。这是因为常规C不允许您使用数字*命名结构成员,因此您将无法创建替换SFR寄存器的结构对象。
* C表示名称必须以字母或下划线开头。