2014年9月15日 星期一

Microblaze custom IP R/W

通常我在microblaze上面常用的custom ip都是從SDK寫入addressdata
,這邊紀錄從SDKreg的值

其他詳細步驟可以複習這篇

建立一個名為IO_REG_TESTlocal pcore帶四個register,設定兩個REGIN,兩個為OUT

io_reg_test.vhd中加入



user_logic

mpd

VHDL中寫入會被SDK讀出的值,還有SDK寫入的值繞到LED上方便驗證


SDK中把讀出來的值寫入,LED來驗證,注意需另外加入xil_io.h



也可以用指標的方式來寫入IO


void reg_write(u32 reg_address, u32 data)
{
*(volatile u32*)reg_address = data;
xil_printf("reg_write (0x%08x) 0x%08x\n\r", reg_address, data);
}


u32 reg_read(u32 reg_address)
{
dbg_printf("reg_read (0x%08x) ", reg_address);
u32 data = *(volatile u32*)reg_address;
dbg_printf(" 0x%08x\n\r", data);
return data;
}


OR
u32 volatile *ADDRESS_NAME = (u32 volatile *)(0xADDRESS);


*ADDRESS_NAME = DATA


沒有留言:

張貼留言