Я смотрю на пример AXI-DMA от xilinx, и я застреваю в этом месте в XAxiDma_SimplePollExample
for(Index = 0; Index < MAX_PKT_LEN; Index ++) {
TxBufferPtr[Index] = Value;
Value = (Value + 1) & 0xFF;
}
Переменная TxBufferPtr
является указателем,указывая на адрес памяти TX_BUFFER_BASE
u8 *TxBufferPtr;
TxBufferPtr = (u8 *)TX_BUFFER_BASE ;
Почему они используют указатель для хранения данных с циклом?Я узнал, что я должен использовать массив для инициализации памяти и использовать начальный адрес этого массива.Таким образом, мой пример будет выглядеть так:
u8 TxBufferPtr[MAX_PKT_LEN];
for(Index = 0; Index < MAX_PKT_LEN; Index ++) {
TxBufferPtr[Index] = Value;
Value = (Value + 1) & 0xFF;
Как xilinx позволяет избежать размещения других данных в диапазоне адреса указателя + диапазона цикла, чтобы цикл перезаписывал эти данные?Есть ли хитрость, когда я использую это, или это просто "плохой" код и использование указателя?