Forum > Embedded

What is the current status of Risc-V Target?

<< < (2/3) > >>

_Bernd:
I am testing RISC-V 32 embedded with PicoRV32 in a FPGA. Basic stuff seems to work. Nice :-)

Regards, Bernd.

PascalDragon:

--- Quote from: _Bernd on December 28, 2019, 01:55:33 am ---I am testing RISC-V 32 embedded with PicoRV32 in a FPGA. Basic stuff seems to work. Nice :-)

--- End quote ---
If you discover problems, don't hesitate to report them, cause while I got riscv64-linux working, riscv32-linux aborts with a segmentation fault when initializing the standard input/output, so there is probably still some problem with code generation (if I had to guess I'd say parameter passing with var parameters as it fails in Assign when accesing the file record).

MiR:
I also started work, implemented controller units for the logan nano and the hifive rev b board. i have yet to understand how interrupts work on those chips.....

_Bernd:
I wonder, if someone was successful with the GD32VF103 controller.

I had to make two small modifications to the riscv32 rtl startup code, to get programs run on a GD32VF103 controller.

The first entry in the interrupt vector table did not contain a jump to the startup code location.
Starting a program via the internal boot loader then worked, but running a program at power on reset failed.

At power on reset, the controller starts executing at address 0x00000000, but the flash start address is 0x08000000 (both address ranges point to the same physical memory) for which the program is correctly linked. The startup code now checks, if the program counter is below 0x08000000 and switches to 0x08nnnnnn if needed.

Regards, Bernd.

_Bernd:

--- Quote from: PascalDragon on December 28, 2019, 09:19:07 am ---If you discover problems, don't hesitate to report them, cause while I got riscv64-linux working, riscv32-linux aborts with a segmentation fault when initializing the standard input/output, so there is probably still some problem with code generation (if I had to guess I'd say parameter passing with var parameters as it fails in Assign when accesing the file record).

--- End quote ---

The following program fails on the GD32VF103 controller.


--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program test;{$mode objfpc}{$H-}var   s: ShortString; procedure TestShortString(sIn: ShortString);var   b: Byte;begin   b:= Ord(sIn[1]);  // b = 'L' = 76   if b <> 76 then begin      { executes here! }      repeat      until FALSE;   end;   asm      ebreak;   end;end; begin   s:= 'Laberhannes';   TestShortString(s);end. 
Something seems to go wrong with the local copy of the shortstring  variable sIn. If sIn is declared as var, then the program runs correct.

Regards, Bernd.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version