将Xilinx_Out32用于特定的半字节组

时间:2020-03-20 08:39:02

标签: xilinx

是否存在Xilinx内部函数,可以在不干扰给定的32位AXI-lite存储器映射的32位数据宽度的情况下设置/复位特定半字节分量,而不会干扰其他半字节。
示例:-
地址||数据
0x01 || 0x00110011
0x01 || 0x0“ 1” 110011-仅从MSB位置开始设置第二个半字节

谢谢

1 个答案:

答案 0 :(得分:0)

看看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);
}
相关问题