-
-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrating Raspberry Baremetal build #912
Comments
Sounds awesome, as for |
will setup CI scripts soon |
Hi there, you may want to wait for my next pr (with some more hardware support) before setting up ci, as the building instructions have changed a little |
Hi, |
Hi there, i'll take a look! With RPi4 and RPI400 it starts to get interesting. |
Hi, thank you 👍 |
I gave a try, i've updated some stuff and can compile some of the libs, but zip is giving me errors.
Seems some shenanigans with utime.h. In miniz.h there's a switch that seems to be added just for that (MINIZ_NO_TIME), but if i define it, some other things break:
I'm not sure what to make of it, seems like it doesn't handle the switch correctly as it still uses some functions that are switched off. I've tried to update to the latest version of the library but the behaviour doesn't change. I'll look deeper into it when i'll have some more time, in the meantime i report the progress, if anyone has some idea it's welcome :D |
I'll try to fork the |
Thanks @nesbox! After spending some time on it i have good news: i was able to build and run tic80 again! :) Now, i have the weirdest bug on keyboard input: i don't seems to be able to type anything on either the console or the code window. Keyboard is working and tic80 is responding to some keystrokes: cursors, function keys, ENTER, CTRL-R, CTRL-C/V/X, delete, backspace all works, but if i type any command like "ls" or "run", nothing appears (when i hit ENTER it gets me a new line but no text). PS when i get it working, should i submit the changes via PR ? |
Awesome news!!! :) |
I had the feeling it was some bug on the mainstream :) I'll submit via PR, no problem. As soon as i fix a couple of bugs on file access. Sorry but i'm totally ignorant about Github Actions and CI in general, no idea how they work. I'll update the baremetal build guide with the new procedure, it's mostly executing configure and make scripts and the like. The step where you have to change a file is gone i think. |
I'll add Github Actions myself if you provide detailed build instructions, no problems here. |
Ok, it works now, i located that nasty memory corruption bug (took a whole day but ok) and it's ok. The build process is updated, as long as you can run arbitrary commands on Actions, it should be possible to add it. I'll fix some remaining minor issues in the future. Hopefully after putting my hands on a RPi4 (or 400) |
Merged, will try to setup CI soon. |
Baremetal build added to Github Actions a4df306. |
Hi there, to continue discussion on #907 , i made some tests and updated the build of my baremetal port to the latest TIC80 sources.
In the end, modifications on the codebase is limited to the following:
Everything else is new files that could go in any folder.
The strategy i used is to build tic80lib as usual (i haven't added a new target) with BAREMETAL switch, which is basically just crosscompiling it to ARM with some custom stuff for RPI. Then i made a separate program (the kernel), based on circle examples code, that link to the tic80lib.a. This is a separate Makefile that include stuff from circle and circle-stdlib, not sure it is possible to include it in the main CMake build file.
I think we could put the kernel on src/system/baremetalrpi and the Makefile on build/baremetalrpi, or some similar combination. In build/baremetalrpi i can put a readme with all steps to checkout circle and build everything.
If you're ok i can prepare a pull request (in a couple of weeks, i'm leaving for vacation soon :D ). Obviously everything can be changed later if we find a better fit.
I was able to build TIC80 with all languages except squirrel (for some reason it breaks crosscompilation, i think it has some dangling arm switch inside somewhere).
The text was updated successfully, but these errors were encountered: