驱动void数据传递至应用层的修改

                typedef struct
                {
                    _Fdm_Driver         *drv;
                    /**< Pointer to the driver object to which this channel is created. */
                    Fdrv_Handle         drvHandle;
                    /**< Driver handle returned by the actual driver. */
                    Fvid2_CbParams      cbParams;
                    /**< Application call back parameters. */
                    uint32_t            isUsed;
                    /**< Flag indicating whether the object is used or not. */
                    uint32_t            tmpData; // =====tmp test =====
                } _Fdm_Channel;
                                   
                    _Fdm_Channel *channel = (_Fdm_Channel *) (chObj->instObj->fdmCbParams.fdmData);
                    channel->tmpData = chObj->instObj->status.spuriousUdmaIntrCount + 1;

                    (void)chObj->instObj->fdmCbParams.fdmCbFxn(
                                        chObj->instObj->fdmCbParams.fdmData);

chObj->instObj->fdmCbParams.fdmData是一个( void *fdmData)类型,所以定义Fdm_Channel *channel 类型的数据,将该void数据转化为_Fdm_Channel 类型,然后给tmpData赋值,channel 和fdmData指向同一块内存,然后修改好其值,在应用层处对其做同样的解析,即可添加了void *fdmData数据中的tmpData数据。

猜你喜欢

转载自blog.csdn.net/baidu_38410526/article/details/103475190