信箱:topcool99@126.com 笑千秋 文章序号:06006
VxWork 设备驱动程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
——之宏定义优化
在 VxWorks 编程过程中,善于运用宏定义,会给程序设计带来很
大的灵活性。一个好的宏定义会给我们的程序带来事半功倍的效果。
下面具体举例说明。
结构体是天生的非灵活的!
一般我们会这样设计我们的程序:
(1)在驱动头文件中定义结构
typedef struct
{ /* I8250_DEV */
char CSR;
char DATA;
char MBR;
} I8250_DEV;
(2)在BSP头文件中定义:
#define I8250_BASE 0x....
(3)在BSP初始化代码中定义:
I8250 *port = I8250_BASE;
(4)在驱动函数中这样使用:
port->DATA = ...;
信箱:topcool99@126.com 笑千秋 文章序号:06006
但我们推荐另外一种更好的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
:
(1)在驱动的头文件中定义:
#define I8250_ADRS(reg) \
(unsigned char *)(I8250_BASE + (reg) * I8250_OFFSET)
#define I8250_CSR I8250_ADRS(0)
#define I8250_DATA I8250_ADRS(1)
#define I8250_MBR I8250_ADRS(2)
(2)在 BSP头文件中定义
#define I8250_BASE ...
#define I8250_OFFSET 1
(3)在驱动函数中这样使用:
*I8250_DATA = ...;