存根特殊功能寄存器

时间:2017-03-07 07:30:10

标签: c struct stub bit-fields

我想从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?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果不改变实施至少一点,这将很难实现。这是因为常规C不允许您使用数字*命名结构成员,因此您将无法创建替换SFR寄存器的结构对象。

* C表示名称必须以字母或下划线开头。