Hello, in the Pulpissimo's README.md,it says
Quote:Supported Boards
At the moment the followin g boards are supported:
Digilent Genesys2
Xilinx ZCU104
Xilinx ZCU102
Digilent Nexys Video
ZedBoard
In the section
Compiling Applications for the FPGA Target, it says
Quote:To run or debug applications for the FPGA you need to use a recent version of the PULP-SDK (commit id 3256fe7 or newer.'). Configure the SDK for the FPGA platform by running the following commands within the SDK's root directory:
source configs/pulpissimo.sh
source configs/fpgas/pulpissimo/<board_target>.sh
Question: When I git clone the pulp-sdk.git and changed directory to pulp-sdk/configs/fpgas/pulpissimo/, I only found the genesys2.sh. Now I am using Digilent Nexys Video Board, but there is no nexys_video.sh . What should I do?
(12-13-2019, 12:01 PM)kgf Wrote: [ -> ]The sources are actually under the pulpissimo tree. I think by default they are not automatically downloaded
https://github.com/pulp-platform/pulpiss...exys_video
Thank you! I think you may misunderstood me.
Actually,the pulpissimo-nexys_video directory will be downloaded automatically when I git clone the pulpissimo repository .
But the following two commands
Code:
source configs/pulpissimo.sh
source configs/fpgas/pulpissimo/<board_target>.sh
should be executed under the pulp-sdk repository(
https://github.com/pulp-platform/pulp-sdk) .In the directory
pulp-sdk/configs/fpgas/pulpissimo ,I only found genesys2.sh. But I did not find the .sh files for Xilinx ZCU104 、Xilinx ZCU102 、Digilent Nexys Video and ZedBoard.
Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.
Hi,
Pulpissimo is supported. There is no specific file for pulpissimo in pulp-rt because it's not a chip so we don't have any specific information in terms of padframe and so on
For the fpga, we are indeed only supporting genesys2 in the script which is in charge of running a test, but you can still launch the test with classic openocd commands as usual. The runtime does not need to know the fpga, it's compiled the same way whatever the fpga.
(12-16-2019, 02:05 PM)germain_haugou Wrote: [ -> ]Hi,
Pulpissimo is supported. There is no specific file for pulpissimo in pulp-rt because it's not a chip so we don't have any specific information in terms of padframe and so on
For the fpga, we are indeed only supporting genesys2 in the script which is in charge of running a test, but you can still launch the test with classic openocd commands as usual. The runtime does not need to know the fpga, it's compiled the same way whatever the fpga.
If so,
can I use the function rt_set_pad_function in my C code ? I just want to run a
gpio_in controlling gpio_out C code in my FPGA development board which has been configured by a bitstream file. But the reference manual ( PULP kernel library :
pulp-sdk/doc/dox/doc/runtime/html/index.html) describes the
rt_set_pad_function as follows:
[
attachment=17]
the
enumeration type parameter rt_pad_e and
rt_pad_func_e only be defined in
rt_vega.h 、rt_gap*.h and
rt_wolfe.h .
Here is my
gpio_in controlling gpio_out C code : (a slide_switch drives a LED's ON or OFF )
I referred to this Thread
how to manipulating of GPIOs on Pulpissino platform
Code:
#include <stdio.h>
#include <rt/rt_api.h>
#include <stdint.h>
#define GPIO11 11 // cam_data0 GPIO 11 LED
#define GPIO13 13 // cam_data2 GPIO 13 Slide Switch
int __rt_fpga_fc_frequency = 10000000;// e.g. 20000000 for 20MHz;
int __rt_fpga_periph_frequency = 5000000;// e.g. 10000000 for 10MHz;
int main()
{
// GPIO initialization
rt_gpio_init(0,GPIO11);
rt_gpio_init(0,GPIO13);
// Set pad function as gpio
rt_pad_set_function(GPIO11,1); // IS THIS RIGHT?
rt_pad_set_function(GPIO13,1); // IS THIS RIGHT?
// Configure GPIO as input or output
rt_gpio_set_dir(0,1<<GPIO13,RT_GPIO_IS_IN);
rt_gpio_set_dir(0,1<<GPIO11,RT_GPIO_IS_OUT);
while (1)
{
if (rt_gpio_get_pin_value(0,GPIO13)==1)
{
rt_gpio_set_pin_value(0,GPIO11,0);
}
else
{
rt_gpio_set_pin_value(0,GPIO11,1);
}
rt_time_wait_us(50000000);
}
return 0;
}
But it doesn't work , the LED seems to be out of the switch's control.
(12-16-2019, 02:30 AM)bluewww Wrote: [ -> ]Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.
Any update on this?
I am also trying to run some applications on the Zedboard (I am guessing the pulp-rt-examples can be used?).
There is no board target for the Zedboard when executing:
Quote:source configs/fpgas/pulpissimo/<board_target>.sh
Should we take the genesys2.sh as it is the only one in fpgas/pulpissimo or are there any pending updates on the board targets?
Edit: I just saw that the
simple runtime seems to feature all the board targets while the
pulp-sdk does not.
Should it be enough to copy the corresponding board_target.sh file from the simple runtime to the SDK?
At least the sizes of the genesys2.sh files are different which worries me.
Would it even be possible to use the simple runtime when working with FPGAs?
It seems to me that it would not be possible because the command:
Quote:source sourceme.sh && ./pulp-tools/bin/plpbuild checkout build --p openocd --stdout
would fail when using the simple runtime instead of the SDK.
Edit: It seems like using the genesys2.sh is fine for other boards as long as we override the frequencies and baudrate if neccessary.
(08-20-2020, 03:52 PM)LPLA Wrote: [ -> ] (12-16-2019, 02:30 AM)bluewww Wrote: [ -> ]Looks like pulp-sdk is out of sync with the actual hardware support. I'll contact our sdk maintainer about this. I don't think the scripts will differe by much.
Any update on this?
I am also trying to run some applications on the Zedboard (I am guessing the pulp-rt-examples can be used?).
There is no board target for the Zedboard when executing:
Quote:source configs/fpgas/pulpissimo/<board_target>.sh
Should we take the genesys2.sh as it is the only one in fpgas/pulpissimo or are there any pending updates on the board targets?
Edit: I just saw that the simple runtime seems to feature all the board targets while the pulp-sdk does not.
Should it be enough to copy the corresponding board_target.sh file from the simple runtime to the SDK?
At least the sizes of the genesys2.sh files are different which worries me.
Would it even be possible to use the simple runtime when working with FPGAs?
It seems to me that it would not be possible because the command:
Quote:source sourceme.sh && ./pulp-tools/bin/plpbuild checkout build --p openocd --stdout
would fail when using the simple runtime instead of the SDK.
Edit: It seems like using the genesys2.sh is fine for other boards as long as we override the frequencies and baudrate if neccessary.
Hi LPLA,
Sorry for the late reply. It is as you already discovered, you can just source the genesys2.sh file and override the frequencies. So far, there is no board specific configuration except for the frequency and baud rate that would affect generated binary. I updated the README file on the PULPissimo Github page with a hint to this.