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