Recent

Author Topic: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi  (Read 47069 times)

Paul Breneman

  • Sr. Member
  • ****
  • Posts: 290
    • Control Pascal
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #15 on: February 04, 2016, 05:09:30 am »
Wow!  I'm hoping to try this soon to make a console version of Control Terminal http://ctrlterm.com/ and now I'm wondering if FreeVision http://wiki.freepascal.org/Free_Vision will work in the console?

I have a few related links here: http://ctrlterm.com/ports.htm

How much work would be needed to get FreeVision and the IDE http://wiki.freepascal.org/Textmode_IDE working?  Seems like fun times ahead!
« Last Edit: February 04, 2016, 05:28:30 am by Paul Breneman »
Regards,
Paul Breneman
www.ControlPascal.com

Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #16 on: February 04, 2016, 08:17:15 am »
and now I'm wondering if FreeVision http://wiki.freepascal.org/Free_Vision will work in the console?

At a quick look I don't think it would work currently, mainly because it seems to be character based and the Raspberry Pi has no character mode display (only a pixel mode framebuffer).

I think the API could be implemented fairly easily but handling the movable windows etc would require some effort, in a character interface maintaining a buffer that describes each window is fairly quick and simple. Maintaining a buffer that holds the pixels for a full HD display in 32 bit color takes a lot of data manipulation.

If you were happy to start with a single text mode window with a FreeVision API then the current console unit could be used as is and the API could wrapper over the top.

How much work would be needed to get FreeVision and the IDE http://wiki.freepascal.org/Textmode_IDE working? 

I'm assuming from what I read that if FreeVision worked then the IDE would also work.

On the other hand your url for Control Terminal mentions fpGUI which according to this post https://ultibo.org/forum/viewtopic.php?f=13&t=17 might be able to be ported without a huge effort.
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

simonsayz

  • New Member
  • *
  • Posts: 27
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #17 on: February 04, 2016, 08:41:56 am »
Wow, That's what I want.

really cool :)

I will try to other peripherals on your rtl.

Many Thanks.

x2nie

  • Hero Member
  • *****
  • Posts: 515
  • Impossible=I don't know the way
    • impossible is nothing - www.x2nie.com
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #18 on: February 04, 2016, 09:13:22 am »
Is there any screenshot? photos?


I couldn't imagine what I can do with Ultibo+RaspberryPi %)
When you were logged in, you can see attachments.
Lazarus Github @ UbuntuCinnamon-v22.04.1 + LinuxMintDebianEdition5

mse

  • Sr. Member
  • ****
  • Posts: 286
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #19 on: February 04, 2016, 09:28:02 am »
On the other hand your url for Control Terminal mentions fpGUI which according to this post https://ultibo.org/forum/viewtopic.php?f=13&t=17 might be able to be ported without a huge effort.
Or MSEgui which also is a self drawing GUI toolkit for FPC with a dedicated development IDE (MSEide). Either by implementing a backend for the frame buffer or to the GPU. Advantage of MSEgui is that it is more sophisticated, advantage of fpGUI is that it already has a framebuffer backend by AggPAS.

herux

  • Full Member
  • ***
  • Posts: 102
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #20 on: February 04, 2016, 10:06:02 am »
it seems I managed to compile freepascal arm-ultibo on mac, but I have not tried even further, my raspberry pi still on the way  8)


Ultibo

  • New Member
  • *
  • Posts: 36
    • Ultibo.org
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #21 on: February 04, 2016, 10:27:12 am »
it seems I managed to compile freepascal arm-ultibo on mac

Awesome  :D

When you prove it works it would be great if you could post the instructions somewhere to share with others.
Ultibo.org | Make something amazing
https://ultibo.org

Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

JimKueneman

  • Full Member
  • ***
  • Posts: 220
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #22 on: February 05, 2016, 02:31:45 am »
Please herux explain how you got it compiled on OSX....

Jim

herux

  • Full Member
  • ***
  • Posts: 102
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #23 on: February 05, 2016, 02:50:58 am »
I will do, when my raspberry pi are already in hand and everything is running well  :)

molly

  • Hero Member
  • *****
  • Posts: 2330
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #24 on: February 05, 2016, 03:26:57 am »
and now I'm wondering if FreeVision http://wiki.freepascal.org/Free_Vision will work in the console?

At a quick look I don't think it would work currently, mainly because it seems to be character based and the Raspberry Pi has no character mode display (only a pixel mode framebuffer).
Correct

Quote
I think the API could be implemented fairly easily but handling the movable windows etc would require some effort, in a character interface maintaining a buffer that describes each window is fairly quick and simple. Maintaining a buffer that holds the pixels for a full HD display in 32 bit color takes a lot of data manipulation.
Nah, it's fairly easy todo ;-)

Quote
If you were happy to start with a single text mode window with a FreeVision API then the current console unit could be used as is and the API could wrapper over the top.
Adapt unit video to do your bidding, i would start there.

How much work would be needed to get FreeVision and the IDE http://wiki.freepascal.org/Textmode_IDE working? 
Quote
I'm assuming from what I read that if FreeVision worked then the IDE would also work.
Yes.

Please have a look at amiga unit video here.

Amiga, AROS and MorphOS also don't have a 'real' console mode, it's all graphics emulating the charcter based console (and FV and IDE are working perfectly). The native platform does provide API that makes things a bit easier, i have no idea (yet) how easy it would be to implement using your exposed API.

Thank you for your project Ultibo, at first glance that really looks interesting (*wow*)

PS: for some reason my older opera browser refuses connection to the url you posted. If i get a response from the server at all (unable to access address) it is "Secure connection: fatal error (40) from server."
« Last Edit: February 05, 2016, 03:45:31 am by molly »

JimKueneman

  • Full Member
  • ***
  • Posts: 220
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #25 on: February 05, 2016, 03:34:27 am »
Quote
I will do, when my raspberry pi are already in hand and everything is running well

Don't tease!  I have 3 Pi 2's on my desk and need this in OSX.. I ran all the demos on the WM Windows but that is painful.........

Jim

herux

  • Full Member
  • ***
  • Posts: 102
Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
« Reply #26 on: February 05, 2016, 05:06:54 am »
Okay I will share the steps I did, although not yet proven whether this running properly
Code: Bash  [Select][+][-]
  1. make distclean OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/
  2.   CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"
  • type and wait
Code: Bash  [Select][+][-]
  1. make all OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH"
  2.  
  • type and wait, I assume your fpc 3.0.0 is in the folder /usr/local/lib/fpc/3.0.0/ so option INSTALL_BASEDIR become INSTALL_BASEDIR=/usr/local/lib/fpc/3.0.0/
Code: Bash  [Select][+][-]
  1. sudo make crossinstall CROSSBINDIR=~/Documents/gcc-arm-none-eabi/arm-none-eabi/bin/ CROSSOPT="-CpARMV7A -CfVFPV3 -CIARM -OoFASTMATH" OS_TARGET=ultibo CPU_TARGET=arm SUBARCH=armv7a INSTALL_BASEDIR=/usr/local/lib/fpc/3.0.0/

    but, I have a question for @ultibo, is there any spesific feature on fpc trunk or 3.1.1 , instead of using the stable version 3.0.0 ?

    Ultibo

    • New Member
    • *
    • Posts: 36
      • Ultibo.org
    Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
    « Reply #27 on: February 05, 2016, 05:28:20 am »
    PS: for some reason my older opera browser refuses connection to the url you posted. If i get a response from the server at all (unable to access address) it is "Secure connection: fatal error (40) from server."

    This might be similar to the problem that older versions of IE have, our web host does not accept TLS 1.0 so in IE10 or earlier you have to enable TLS 1.1 and 1.2. Older version of Opera could be having the same issue.

    Ultibo.org | Make something amazing
    https://ultibo.org

    Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

    Ultibo

    • New Member
    • *
    • Posts: 36
      • Ultibo.org
    Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
    « Reply #28 on: February 05, 2016, 05:38:05 am »
    but, I have a question for @ultibo, is there any spesific feature on fpc trunk or 3.1.1 , instead of using the stable version 3.0.0 ?

    Yes, there are two commits to FPC trunk that are required:

    http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/compiler/arm/cgcpu.pas?revision=32788&view=markup

    http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/rtl/arm/arm.inc?revision=32788&view=markup

    Both relate to the generation of BLX <Label> instructions by FPC which needs to be BL <Label> instead. Apparently the linker should fix these up based on the mode (ARM/Thumb) of the code being called but it does not (anymore) and so gcc and clang also now use BL instead.

    I did the original development work with 2.7.1 trunk so as far as I know all of our changes to the compiler and RTL could be applied to 3.0.0 if the above patches were also applied.
    Ultibo.org | Make something amazing
    https://ultibo.org

    Threads, multi-core, OpenGL, Camera, FAT, NTFS, TCP/IP, USB and more in 3MB with 2 second boot!

    JimKueneman

    • Full Member
    • ***
    • Posts: 220
    Re: Ultibo core a full featured embedded (no OS) environment for Raspberry Pi
    « Reply #29 on: February 05, 2016, 02:50:43 pm »
    Quote
    Okay I will share the steps I did, although not yet proven whether this running properly

    All successful!  I replace the two mentioned files with the patched ones before I ran this with my 3.0.0.  I am sorry but I am not a command line jockey.  What is suppose to happen once done?  I do have the compiler binary but a couple of things happened.  The build created a folder 3.1.1 folder next to the 3.0.0 with part of the files in there.  If I type "fpc" the darwin compiler is still the linked compiler or if I try to build lazarus it fails.  If you follow the directions on the Ultibo site with the path link to the right compiler the lazarus make gets a bit further but needs libraries it can't find in the make.

    Jim

     

    TinyPortal © 2005-2018