占用了 1K 空间而已。 每一个Word,只有低 HalfWord 有用。
参考USB的
void UserToPMABufferCopy(u8 *pbUsrBuf, u16 wPMABufAddr, u16 wNBytes) { u32 n = (wNBytes + 1) >> 1; /* n = (wNBytes + 1) / 2 */ u32 i, temp1, temp2;
u16 *pdwVal; HalfWord 指针
pdwVal = (u16 *)(wPMABufAddr * 2 + PMAAddr); for (i = n; i != 0; i--) { temp1 = (u16) * pbUsrBuf; pbUsrBuf++; temp2 = temp1 | (u16) * pbUsrBuf << 8; *pdwVal++ = temp2;
pdwVal++; 跳过 HalfWord
pbUsrBuf++; } }
|