微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 这个是关于消息建立的问题。

这个是关于消息建立的问题。

时间:10-02 整理:3721RD 点击:

看源码知道首先建立了这样一个消息结构体

typedef struct

{

  void   *next;

  uint16 len;

  uint8  dest_id;

} osal_msg_hdr_t;消息结构体这个消息结构体相当于这个消息的一些属性,比如目的任务,消息长度,next是指向下一个消息,因为消息列表是通过链表管理的;这样的理解对吗?

若任务要创建一个消息则由osal_msg_allocate(len);创建,但是这个函数有我的第一个问题hdr = (osal_msg_hdr_t *) osal_mem_alloc( (short)(len + sizeof( osal_msg_hdr_t )) );这里的长度为什么要加长度len呢?

第二个问题是

#define   OSAL_MSG_ID(msg_ptr)          ((osal_msg_hdr_t *) (msg_ptr) - 1)->dest_id    获得msg_ptr指针减1结构体的目标任务id,我就不懂了为什么要减一呢?你要获得msg_ptr的目标任务id直接((osal_msg_hdr_t*)(msg_ptr)->dest_id)就可以的。

这些是我看消息api那块遇到的问题。

http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/79726/245334.aspx#245334

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top