分层设计考虑
作用:降低对底层应用程序的高耦合度
示例:
#include "mac.h"
typedef struct _phy_t{
char channel;
char snd_fail_count;
char *name;
char open_flag;
void (*init)(void);
int (*send_packet)(struct _phy_t phy, u8 *pdata, u8 len, u16 waitms);
void (*recieve_packet)(u8 *data, u8 len, u16 waitms);
rt_sem_t send_sem;
rt_mq_t send_mq;
u8 recvbuff[DEFAULT_PACKET_LEN];
}phy_t;
用法一:
extern phy_t *phy_1, *phy_2; //变量可供所有文件使用(只需包含该头文件)
/*
需要在include "mac.c"定义一下变量
phy_t *phy_1, *phy_2;
*/
在实际使用 时需要分配内存大小在:
int main(){
phy_1 = (phy_t *)malloc(sizeof(phy_t)); //分配空间,否则**只占用四字节大小**内存<但不可使用>
phy_2 = (phy_t *)malloc(sizeof)(phy_t);
phy_1->init = si4463_init;
/*
(* phy_1->init)(void); //直接进行解引用
*/
}
用法二:
extern phy_t phy_1, phy_2; //变量可供所有文件使用(只需包含该头文件)
/*
需要在include "mac.c"定义一下变量,直接为变量分配内存大小
phy_t phy_1, phy_2;
*/
在实际使用 时直接使用即可:
int main(){
phy_1.init = si4463_init;
/*
(* phy_1.init)(void); //直接进行解引用
*/
}