Picon

run grmon on 64-bit OS



Hello,

I have a brief question. Can anybody give me a direction on how to force Digilent Adept to install the 32-bit libraries on my 64-bit OS so I can use GRMON? I need the libdabs.so to make it work. Unfortunately I only have the 64-bit version on my computer and GRMON outputs:

 ./grmon -digilent -u

  GRMON2 LEON debug monitor v2.0.73 32-bit eval version
 
  Copyright (C) 2016 Cobham Gaisler - All rights reserved.
  For latest updates, go to http://www.gaisler.com/
  Comments or bug-reports to support-FkzTOoA/JUlBDgjK7y7TUQ@public.gmane.org
 
  This eval version will expire on 07/10/2016

libdabs.so: cannot open shared object file: No such file or directory
Exiting GRMON

when I try to install Adept this is the response:

/tmp/digilent.adept.runtime_2.16.1-i686$ sudo ./install.sh
Adept Runtime Installer
64-bit operating system detected
In which directory should libraries be installed? [/usr/local/lib64/digilent/adept]
ls: cannot access lib64: No such file or directory
error: couldn't find any shared libraries in lib64

I already got all the necessary libraries for grmon:

ldd grmon
    linux-gate.so.1 =>  (0xf77c1000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7760000)
    libnspr4.so => /usr/lib/i386-linux-gnu/libnspr4.so (0xf7722000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf7719000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7714000)
    libz.so.1 => /usr/lib32/libz.so.1 (0xf76fa000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76de000)
    libncurses.so.5 => /lib/i386-linux-gnu/libncurses.so.5 (0xf76b8000)
    libform.so.5 => /usr/lib/i386-linux-gnu/libform.so.5 (0xf76a8000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74fa000)
    /lib/ld-linux.so.2 (0x565d2000)
    libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xf74d8000)

I have a virtual machine with

Linux ubuntu 3.19.0-58-generic #64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Has anybody recently tried this?

Best Regards



__._,_.___
Posted by: Elvin Sebastian <elvin.sebastian-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>



__,_._,___
Picon

GRETH-to-GRETH.



HI all,


I have a question, is it possible to connect to GRETH through a MII interface? I tried to connect the tx and rx clk to a 25 MHz and the tx_en to rx_dv and rx_crs, but it doesn't work.


thanks.



__._,_.___
Posted by: mrrachidi90-/E1597aS9LQAvxtiuMwx3w@public.gmane.org



__,_._,___
Picon

Grmon license / hardware accelerator



Hello,

I have two questions please:

1- How can I get GRMON PRO and how much cost?


2- How can I include a hardware accelerator to APB/AMBA bus

thanks



__._,_.___
Posted by: maalaouimelek-/E1597aS9LQAvxtiuMwx3w@public.gmane.org



__,_._,___
Picon

Here's your solution



ru { display: none; font-face: Trebuchet MS, Helvetica, sans-serif; } huba { font-size 0.839em; }
Unable to display full message.
You can view it by clicking here

Yahoogroups error code: 7779 (Fri Apr 15 21:41:22 ART 2016)


__._,_.___
Posted by: mh_najmi-/E1597aS9LQAvxtiuMwx3w@public.gmane.org



__,_._,___
Picon

Ugrent news



nifime { display: none; font-face: Gadget, sans-serif; } barixisu { font-size 0.825em; }
Unable to display full message.
You can view it by clicking here

Yahoogroups error code: 8914 (Fri Apr 15 21:41:03 ART 2016)


__._,_.___
Posted by: mh_najmi-/E1597aS9LQAvxtiuMwx3w@public.gmane.org



__,_._,___
Picon

FIFO debug mode on KC705 with 1.5.0



Hi Jan,

It looks like the FIFO debug mode (-u) under EDCL on KC705 with the latest version grlib (1.5.0) doesn't work. I am using the latest grmon.

I tried the precompiled bitfile and the sample linux image, but it's stuck at right after freeing kernel memory. I have also tried with my custom bitfile and linux image, but it's still stuck there.

1.4.1 works just fine. Can you please take a look at it?

Thank you very much.

Best regards,
Kazuhiro


__._,_.___
Posted by: "Sakai, Kazuhiro" <kazuhiro-J9tsVGAM9NIdnm+yROfE0A@public.gmane.org>



__,_._,___
Picon

GRDMAC reenabling the channel



Hello, 
Question regarding GRDMAC: 


How do I reset the channel e.g channel 0, after the completion of the descriptors chain for this channel? 
There is another channel which may be still running so I can't perform a reset for the whole core I guess.



__._,_.___
Posted by: pbn_4-/E1597aS9LQAvxtiuMwx3w@public.gmane.org



__,_._,___
Picon

GRDMAC on Linuxbuild



Hello everyone,

I want to use the GRDMAC IP for a project with embedded Linux. Basically, I've got some data coming out from the GRGPIO, which has an output bit to signal a valid data, and I want to use the GRDMAC to copy it to the main memory without the need for the CPU.

However, so far in my search, I didn't find a device driver interface for GRDMAC on LInuxbuild. The closest I've found seems to be the MAPLIB driver, but it only does memory mapping between processes.

Am I correct to assume that such device driver interface for GRDMAC doesn't exist? Or am I missing something? Any insights are welcome!

Regards,
Bruno


__._,_.___
Posted by: Bruno Policarpo <johndoe9853-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>



__,_._,___
Picon

Template design with GRDMAC



Hi,

I would like to try out GRDMAC in the LEON3 system.
Is there an existing template design with GRDMAC, which I colud refer to quickly get started?

Also, is there any design variation of GRDMAC between GRLIB  version 1.4.1-b4156 and 1.5.0-b4164?

Thank you.

Regards,
Yan Lin Aung





__._,_.___
Posted by: Yan Lin Aung <yan_lin_aung-/E1597aS9LQAvxtiuMwx3w@public.gmane.org>



__,_._,___
Picon

Multiprocessing using cpu1 problem!!




I am trying to execute the program on cpu1 of gr712RC board by activating
the cpu1 using GRMON. Also, I have set the ep 0x40400000 and stack as
0x407fff00. But, the program is executing on cpu0 not on cpu1. How do I configure to execute on cpu1?
Also, I cannot disable the cpu0.
I am us ing rtems 4.10 software.
Am I missing anything here?
Should I have to configure the registers for cpu1?(But I thought RTEMS
would do that)

I really appreciate your help.
Thank you.


__._,_.___
Posted by: <divyamanch-/E1597aS9LQAvxtiuMwx3w@public.gmane.org>



__,_._,___
Picon

TCP socket Problem.



 Hi all,

          

          The aim of the testbench is to communicate two LEON3 µprocessors with TCP/IP protocol, the RTOS we use is “eCos”, and the configuration of the “eth0” interface is detailed in the graph above.      I use sockets to send and receive a TCP/IP tram from LEON3_1 to LEON3_2 and vice versa, so each µprocessor will have two threads, one for client and the other for the server, the server will accept all IPs addresses, but the client will accept only the IP addresse of the other LEON.

          The steppes of the connection are:

TCP client thread :

  • socket
  • connect
  • send
  • recv
  • close

 

TCP server thread :

  • socket
  • bind
  • listen
  • accept
  • send
  • recv
  • close

 

Code of client :

void client(void)

{

    int sock1;                        /* Socket descriptor */

    struct sockaddr_in ServAddr; /* Echo server address */

    int iterations=5, i;          /* Number of trams to send */

    int value = 1;

   

    char *hello_string=" Hello eCos network \n";

    diag_printf("TCP CLIENT 1:");

    diag_printf(hello_string);

   

    /* Create a reliable, stream socket using TCP */

    if ((sock1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)

        diag_printf("socket() failed");

   

    /* Construct the LEON3_2 address structure */

    memset(&ServAddr, 0, sizeof(ServAddr));     /* Zero out structure */

    ServAddr.sin_family      = AF_INET;             /* Internet address family */

    //ServAddr.sin_len = sizeof(ServAddr);

    ServAddr.sin_addr.s_addr = inet_addr("192.168.1.2");   /*LEON3_2 IP address */

    ServAddr.sin_port        = htons(CLIENT_PORT); /* LEON3_2 port */

   

    /* Establish the connection to the server */

    if (connect(sock1, (struct sockaddr *) &ServAddr, sizeof(ServAddr)) < 0){

        diag_printf("connect() failed");

    }

   

    if (setsockopt(sock1, IPPROTO_TCP, TCP_NODELAY, (char *)&value, sizeof(int)) < 0){

      diag_printf("TCP_NODELAY failed");

    }

    if (setsockopt(sock1, IPPROTO_TCP,  SO_REUSEPORT, &value, sizeof(int))) {

        diag_printf("setsockopt /source/ SO_REUSEADDR");

    } 

   

    /* Give the server a chance */

    sleep(0.001);

   

    /* Now for the given number of iterations */

    for(i = 0; i < iterations; ++i)

    {

      /* Send this */

      if (send(sock1, (char*)&data_buf_write, sizeof(data_buf_write), 0) != sizeof(data_buf_write)){

        diag_printf("send() failed to send message");

      }

      /* Now read the echo */

      if (recv(sock1, (char*)&data_buf, sizeof(data_buf), 0) != sizeof(data_buf)){

        diag_printf("recv() failed to read message");

      }

      sleep(0.001);    

    }

   

    close(sock1);

}

 

Code of Server:

void server(void)

{

    int s_source, e_source;

    struct sockaddr_in e_source_addr, host;

    int one = 1;

    fd_set in_fds;

    socklen_t len;

 

    char *hello_string=" Hello eCos network \n";

    diag_printf("TCP SERVER 1:");

    diag_printf(hello_string);

   /* Create a reliable, stream socket using TCP */

    s_source = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

   

   

if (s_source < 0) {

        diag_printf("stream socket problem");

    }

   

    if (setsockopt(s_source, IPPROTO_TCP,  TCP_NODELAY, &one, sizeof(one))< 0) {

        diag_printf("setsockopt /source/ SO_REUSEADDR");

    }

    if (setsockopt(s_source, IPPROTO_TCP,  SO_REUSEPORT, &one, sizeof(one))< 0) {

        diag_printf("setsockopt /source/ SO_REUSEPORT");

    }

   

    /* Construct the clients address structure */   

    memset(&host, 0, sizeof(host));

    host.sin_family = AF_INET;

    host.sin_len = sizeof(host);

    host.sin_port = ntohs(SOURCE_PORT);

    host.sin_addr.s_addr = htonl(INADDR_ANY);//accept every one.

 

    if(bind(s_source, (struct sockaddr *) &host, sizeof(host)) < 0) {

        diag_printf("bind /source/ error");

    }

   

    listen(s_source, SOMAXCONN);

        

    e_source = 0;

    while (true) {

    FD_ZERO(&in_fds); //all in_fds empty

    FD_SET(s_source, &in_fds); //add the descriptor s_source to in_fds

        len = sizeof(e_source_addr);

      if ((e_source = accept(s_source,(struct sockaddr*)&e_source_addr,&len))<0){

            diag_printf("accept /source/ problem ");

        }

    diag_printf("TCP SERVER 1 connection from %s: %d\n",

           inet_ntoa(e_source_addr.sin_addr),ntohs(e_source_addr.sin_port));

 

      if (e_source != 0) {

             diag_printf("error e_souce\n");

        }

    }   /* while (true) */

 

    if ((len = read(e_source, data_buf, MAX_BUF)) < 0  ) {

        CYG_TEST_FAIL_FINISH( "I/O error" );

    }

    diag_printf("SERVER 1: %s\n",data_buf);

 

}

 

Expecting simulation result is:

 

Start TCP server 1 - test

TCP SERVER 1: Hello eCos network

Start TCP client 1- test

TCP SERVER 1 connection from 192.168.1.2: 9990

SERVER 1: LEON3_2 is alive. You may continue ....

 

 

My simulation result is:

 

Start TCP server 1 - test

TCP SERVER 1: Hello eCos network

Start TCP client 1- test

 

The server is in a listening state, and waiting for a connection in the accept function (because it’s marked as non-blocking), but the client cannot connect to the server, the application stuck at the connect () function.

 

So my questions are:

          Is this the good approach to establish a communication between the µprocessors?

          Am I respecting the TCP/IP protocol in my application?

          Am I using well the sockets? (IP addresses, sockets options)

         

Thanks for help.



__._,_.___
Posted by: mrrachidi90 <at> yahoo.com



__,_._,___

Gmane