TI中文支持网
TI专业的中文技术问题搜集分享网站

大家提问时请注意选择对口的版面以获得最佳效果!蓝牙和ZigBee 软件方面问题请到对应版面。

最近看到大家提问比较多,有些问题已经超出本版面的覆盖范围。所以有些问题久未回答,也难免让大家失望了。

提醒一下本版面支持以下问题:

1. 无线连接芯片( 料号以CC开头的, 包括WiFi, BT, BLE, ZigBee, Sub-1GHz, PurePath Wireless, 2.4 GHz 私有协议)的射频和硬件问题;

2. Sub-1GHz 芯片的所有问题 (如果涉及单片机的软件问题,建议考虑是否到单片机版面提问);

3. TI NFC 芯片的硬件相关问题,软件相关的,如果用的MCU是MSP430,请到 MSP430 版面提问。

mmuuss586:

支持

user3493844:

回复 mmuuss586:

楼主说的对,支持

Susan Yang:

无线连接 中

硬件, 射频和私有技术 :Sub-1GHz、PurePath Wireless等其他的射频和硬件问题;
蓝牙Bluetooth 技术 :CC2540/CC2541 /CC2560/CC2564/CC2567等
ZigBee技术:CC2530/CC2531/CC2538等
Wi-Fi技术:CC3000/WL18XX等

CQ JiMi:

回复 Susan Yang:

怎么我最近搜的好几个问题都没人回复,就坐等你们这些大牛指点迷津。等不及了、

我这里问几个问题。关于消息管理的。

typedef struct
{void*next;uint16 len;uint8dest_id;
} osal_msg_hdr_t;typedef struct
{uint8event;uint8status;
} osal_event_hdr_t;
#define OSAL_MSG_NEXT(msg_ptr)((osal_msg_hdr_t *) (msg_ptr) - 1)->next//这里为什么要对msg_ptr减一计算#define OSAL_MSG_LEN(msg_ptr)((osal_msg_hdr_t *) (msg_ptr) - 1)->len#define OSAL_MSG_ID(msg_ptr)((osal_msg_hdr_t *) (msg_ptr) - 1)->dest_id

第一个问题是这些宏定义是访问她们成员的,为什么还要将地址减一操作呢?

第二个问题是在OnBoard_SendKeys(uint8 keys, uint8 state)函数中将创建一个消息,消息指针的形式是  keyChange_t  *msgPtr;

但是你知道的keyChange_t 结构是这样的

typedef struct{ osal_event_hdr_t  hdr; uint8 state; // shift uint8 keys; // keys} keyChange_t;

这里嵌套了上面贴出的代码中的一个结构体osal_event_hdr_t。

最后将这个创建的消息入队:osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );

但是在osal_msg_send函数中使用的msgPtr指针确实这个结构类型的

typedef struct{ void *next; uint16 len; uint8 dest_id;} osal_msg_hdr_t;

我的疑问是在OnBoard_SendKeys函数创建的msgPtr消息缓冲区指针(结构体类型是keyChange_t )与osal_msg_send函数中使用的消息缓冲区指针结构体类型(这里是osal_msg_hdr_t)都不一样。她们之间数据的访问能正确吗?

赞(0)
未经允许不得转载:TI中文支持网 » 大家提问时请注意选择对口的版面以获得最佳效果!蓝牙和ZigBee 软件方面问题请到对应版面。
分享到: 更多 (0)