将 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);
}
是否有 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);
}