"); //-->
sopc.h文件编写例程:
#ifndef SOPC_H_
#define SOPC_H_
#include "system.h"
#define _LED
typedef struct{
unsigned long int DATA;
unsigned long int DIRECTION;
unsigned long int INTERRUPT_MASK;
unsigned long int EDGE_CAPTURE;
}PIO_STR;
#ifdef _LED
#define LED ((PIO_STR *)PIO_LED_BASE)
#endif
#endif /*SOPC_H_*/
解释:
1. PIO_STR是一个结构体,它是: typedef struct { unsigned long int DATA; unsigned long int DIRECTION; unsigned long int INTERRUPT_MASK; unsigned long int EDGE_CAPTURE; }PIO_STR; 2. PIO_STR *是表示指向这样一个结构体的指针 3. LED_BASE是一个数值:0xXXXXXXXX,这里代表地址 4. (PIO_STR *) LED_BASE 表示对这样一个地址进行强制转换,使得它变成指向结构体的指针 5. #define LED ((PIO_STR *) LED_BASE) 所以LED是一个值为0xXXXXXXXX(表示指向地址0xXXXXXXXX)的,指向一个PIO_STR结构体的指针。地址已经确定,下一步就该在0xXXXXXXXX这个地址上分配一个具体的PIO_STR结构体了。 注意:LED这个指针永远指向一个地址在0xXXXXXXXX的结构体。它不能指向其他地方,因而是一个常量指针。但是它可以对指向的结构体进行修改。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。