将 Xilinx_Out32 用于特定的半字节集

Use of Xilinx_Out32 for specific nibble set

是否有 Xilinx 内部函数可以允许特定半字节组件的 set/reset 而不会干扰给定 32 位 AXI-lite 内存映射的 32 位数据宽度中的其他半字节。
示例:-
地址||数据
0x01 || 0x00110011
0x01 || 0x0"1"110011 - 仅设置从 MSB 位置开始的第二个半字节

谢谢

看看xil_io.h。没有这样的功能可用。所以你必须写这个函数。请看看这个未经测试的例子。

static INLINE void Xil_OutNibble32(UINTPTR Addr, u8 Nibble, u8 Value)
{
    // Get the old value
    u32 temp = Xil_In32(Addr);

    // Clear/set the addressed nibble
    if(Value)
    {
        temp |= (0x0F << Nibble);
    }
    else
    {
        temp &= ~(0x0F << Nibble);
    }

    // Write the new value
    Xil_Out32(Addr, temp);
}