frame->descriptor = DMARxDescToGet;
frame->PTPdescriptor = DMAPTPRxDescToGet;
/* Update the ETHERNET DMA global Rx descriptor with next Rx decriptor */
/* Chained Mode */
/* Selects the next DMA Rx descriptor list for next buffer to read */
DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMAPTPRxDescToGet->Buffer2NextDescAddr);
//不知一下几句是什么意思?
if(DMAPTPRxDescToGet->Status != 0)
{
DMAPTPRxDescToGet = (ETH_DMADESCTypeDef*) (DMAPTPRxDescToGet->Status); //这里为什么将status转换成指针?
}
else
{
DMAPTPRxDescToGet++;
}
此帖出自
小平头技术问答
typedef struct {
uint32_t Status; /*!< Status */
uint32_t ControlBufferSize; /*!< Control and Buffer1, Buffer2 lengths */
uint32_t Buffer1Addr; /*!< Buffer1 address pointer */
uint32_t Buffer2NextDescAddr; /*!< Buffer2 or next descriptor address pointer */
} ETH_DMADESCTypeDef;
ETH_DMADESCTypeDef *DMAPTPRxDescToGet; // DMAPTPRxDescToGet 是指向ETH_DMADESCTypeDef这种结构类型的指针,所以DMAPTPRxDescToGet = (ETH_DMADESCTypeDef*) (DMAPTPRxDescToGet->Status); 这个里要用指针付给指针.
[ 本帖最后由 安_然 于 2013-8-8 15:39 编辑 ]
一周热门 更多>