完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
4个回答
|
|
|
|
|
|
|
|
无线连接 中
|
|
|
|
怎么我最近搜的好几个问题都没人回复,就坐等你们这些大牛指点迷津。等不及了、 我这里问几个问题。关于消息管理的。 typedef struct[ void *next; uint16 len; uint8 dest_id;] osal_msg_hdr_t;typedef struct[ uint8 event; uint8 status;] 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)都不一样。她们之间数据的访问能正确吗? |
|
|
|
只有小组成员才能发言,加入小组>>
321 浏览 1 评论
523 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
762 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
643 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1119 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
9浏览 28评论
21浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
232浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
191浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
51浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 20:21 , Processed in 0.889968 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号