簡體   English   中英

Xilinx SDK 中 Xil_Out32 的使用

[英]Use of Xil_Out32 in Xilinx SDK

在 Vivado 中,我成功地制作了一個簡單的框圖來控制我的 Zybo 板的 LED。 我可以觀察到我的LEDs is: 0x4120 0000的偏移地址LEDs is: 0x4120 0000並且High Address is 0x4120 FFFF 現在,當我轉到 SDK 時:

#include <xil_printf.h>
#include <xil_types.h>
#include "platform.h"
#include "xgpio_l.h"

volatile u32 *LED_DATA = (u32 *) 0x41200000 ;   
int main()
{

    init_platform();

    xil_printf(" Writing to LEDs:   \n\r");
    Xil_Out32((&LED_DATA) + (0x00)  , 0xFFFFFFFF);     //All LEDs ON

    cleanup_platform();
    return 0;
}

我對FPGA進行了編程並運行了上面的代碼。 但仍然沒有任何成功。 有人可以指出我的錯誤嗎?

提前致謝

你的錯誤是使用&LED_DATA ,它返回指針LED_DATA的地址,而不是我認為你期望的0x41200000

嘗試

Xil_out32(0x41200000, 0xFFFFFFFF);

或者

*LED_DATA = 0xFFFFFFFF;

嘗試

#define ADDR 0x41200000 // write this before main() function.

然后你必須在 main 函數中添加以下行。

Xil_Out32(ADDR + 0x00000000)  , 0xFFFFFFFF);     //All LEDs ON

這應該有效。

這項工作

#define ADDRESS_GPIO_0   0x41200000     // vivado block diagram address editor

XGpioPs_Config * ConfigPtr1 = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);
XGpioPs_CfgInitialize(&Gpio1, ConfigPtr1, ADDRESS_GPIO_0);
XGpioPs_SetDirection(&Gpio1, XGPIOPS_BANK0, 0x0F);
XGpioPs_Write(&Gpio1, XGPIOPS_BANK0, 0x0F);

感謝您對這篇文章。 它幫助我解決了 sdk 中的編譯問題。 問題是下面的行無法編譯。

xil_printf("寫的是:0x%08x \\n\\r", *(baseaddr_p+0));

我添加了這個並且它起作用了:

包括“xil_printf.h”

非常感謝拉賈特·塞瓦爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM