Jump to content

Laerke

Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Laerke

  1. Hello,

    I need to connect to a board at remote location where only Windows PC is available. On that PC, I installed Vivado Lab tools, FTDI driver and Digilent Adept System v2. But "This device is not configured correctly. (Code 1)". Am I missing something?

     

    DigilentUSB.PNG

  2. Hello,

    I am trying to make work this example: http://www.globaltek.kr/zynq-interrupt-example-tutorial/?ckattempt=1

    I generated ~1 Hz signal and routed it to pl_ps_irq[0:0]. Following this document https://docs.xilinx.com/r/en-US/ug1085-zynq-ultrascale-trm/Signal-Overview, the XPAR_FABRIC_EXT_IRQ_INTR variable should be set to 89 - is this correct? The problem is that the handler is never called. I can see the signal 1Hz is present on the output pin.

    Perhaps XPAR_FABRIC_EXT_IRQ_INTR should be in xparameters.h file? For some reason, it's not there. But after I enabled interrupt for axi_gpio_buttons, the corresponding entry has appeared in xparameters.h:

    #define XPAR_FABRIC_AXI_GPIO_BUTTONS_IP2INTC_IRPT_INTR 136U

     

    I will appreciate if somebody gives an idea on what I am doing wrong.

    Below is my design and the code.

    image.thumb.png.d3aeab64e5582cd8a973ac18b12cc623.png

     

    And here is the code

    #include <stdio.h>
    #include "platform.h"
    #include "xil_printf.h"
    #include "xgpio.h"
    #include "xil_types.h"
    #include "xscugic.h"
    #include "xparameters.h"
    #include "xscugic_hw.h"
    
    
    #define XPAR_FABRIC_EXT_IRQ_INTR 89U
    
    
    XScuGic InterruptController;
    static XScuGic_Config *GicConfig;
    
    void ExtIrq_Handler(void *InstancePtr)
    {
    	xil_printf("ExtIrq_Handler\r\n");
    }
    
    int SetUpInterruptSystem(XScuGic *XScuGicInstancePtr)
    {
    	Xil_ExceptionRegisterHandler(XIL_EXCEPTION_ID_INT, (Xil_ExceptionHandler) XScuGic_InterruptHandler, XScuGicInstancePtr);
    	Xil_ExceptionEnable();
    	return XST_SUCCESS;
    }
    
    int interrupt_init()
    {
    	int Status;
    
    	GicConfig = XScuGic_LookupConfig(XPAR_SCUGIC_0_DEVICE_ID);
    	if (NULL == GicConfig) {
    		return XST_FAILURE;
    	}
    	Status = XScuGic_CfgInitialize(&InterruptController, GicConfig, GicConfig->CpuBaseAddress);
    	if (Status != XST_SUCCESS) {
    		return XST_FAILURE;
    	}
    
    	Status = SetUpInterruptSystem(&InterruptController);
    	if (Status != XST_SUCCESS) {
    		return XST_FAILURE;
    	}
    
    	Status = XScuGic_Connect(&InterruptController, XPAR_FABRIC_EXT_IRQ_INTR, (Xil_ExceptionHandler)ExtIrq_Handler, (void *)NULL);
    	if (Status != XST_SUCCESS) {
    		return XST_FAILURE;
    	}
    
    	XScuGic_Enable(&InterruptController, XPAR_FABRIC_EXT_IRQ_INTR);
    	return XST_SUCCESS;
    }
    
    int main()
    {
        init_platform();
        print("Hello World\n\r");
        interrupt_init();
        while(1);
        print("Successfully ran Hello World application");
        cleanup_platform();
        return 0;
    }

     

  3. Hello all,

    Playing with lwIP UDP Perf Server example on ZU-3EG board, I found that the maximum achievable speed was ~300 Mbs. I managed to increase it only after commenting out some strings (statistics updates) in udp_recv_perf_traffic function. Then the speed was at 957 Mbs.

    The current CPU clock frequency seems to be 100 MHz. Where it is set up and how to increase it?

    Thanks for help.

  4. Hello everybody,

    I am new to SoC, but was still thinking that "Hello world" would go quite smoothly for me. Not the case. I already spent days on figuring out why I am able to launch only the memory test from the standard template list. More specifically: "Memory Tests" and "Zynq MP DRAM Tests" work and all the rest including "Hello world" don't. I managed to see some activity from an app (see the output of print and xil_printf) only if I switch to OCM.

    For my task, I need to enable lpiw, and these examples I can't compile for OCM because they are too big.

    Unfortunately, I have no idea on what to do next. Will appreciate if someone could shed some light.

    Using Vivado and Vitis 2022.2. Also tried combination Vivado 2022.2 and Vitis 2020.1 with exactly the same result.

    XSCT says:

    Downloading Program -- /home/workuser/workspace/Hello/Debug/Hello.elf
        section, .text: 0x00000000 - 0x00001513
        section, .init: 0x00001540 - 0x00001573
        section, .fini: 0x00001580 - 0x000015b3
        section, .rodata: 0x000015b8 - 0x00001657
        section, .rodata1: 0x00001658 - 0x0000167f
        section, .sdata2: 0x00001680 - 0x0000167f
        section, .sbss2: 0x00001680 - 0x0000167f
        section, .data: 0x00001680 - 0x00001e37
        section, .data1: 0x00001e38 - 0x00001e3f
        section, .note.gnu.build-id: 0x00001e40 - 0x00001e63
        section, .ctors: 0x00001e64 - 0x00001e7f
        section, .dtors: 0x00001e80 - 0x00001e7f
        section, .eh_frame: 0x00001e80 - 0x00001e83
        section, .mmu_tbl0: 0x00002000 - 0x0000200f
        section, .mmu_tbl1: 0x00003000 - 0x00004fff
        section, .mmu_tbl2: 0x00005000 - 0x00008fff
        section, .preinit_array: 0x00009000 - 0x00008fff
        section, .init_array: 0x00009000 - 0x00009007
        section, .fini_array: 0x00009008 - 0x00009047
        section, .sdata: 0x00009048 - 0x0000907f
        section, .sbss: 0x00009080 - 0x0000907f
        section, .tdata: 0x00009080 - 0x0000907f
        section, .tbss: 0x00009080 - 0x0000907f
        section, .bss: 0x00009080 - 0x000090bf
        section, .heap: 0x000090c0 - 0x0000b0bf
        section, .stack: 0x0000b0c0 - 0x0000e0bf

      0%    0MB   0.0MB/s  ??:?? ETA
    100%    0MB   0.2MB/s  00:00    
    Setting PC to Program Start Address 0x00000000
    Successfully downloaded /home/workuser/workspace/Hello/Debug/Hello.elf
    Info: Cortex-A53 #0 (target 9) Running
     

    Vitis Serial Terminal:

    Release 2022.2   Mar 12 2023  -  08:55:34
    PMU-FW is not running, certain applications may not be supported.

×
×
  • Create New...