kpishere / PiZeroRTOS

Because why not? Pi Zero bare metal project that ends in an RTOS implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PiZeroRTOS

Because why not? This repo starts out as a Pi Zero bare metal project and it could very well end up as a viable RTOS implementation with a brand as yet to be determined.

Various bare-metal developers and hackers out there have made great resources on Raspberry Pi 2/3/4 arm7 and beyond to aarch64 but have appeared to abandon the Pi Zero and its arm1176jzf-s processor.

Well, perhaps I'm too stupid to know better but I submit that this is a worthy target now that qemu sufficiently supports the Pi Zero as an emulated device.

This is a work in progress project but what I put up is a working example of starting the Pi Zero on qemu emulator.

I hope it proves to be a worthy foundation to greater things for you.

What to anticipate from this work

  • A really bare bones OS that is not much more than a task scheduler
  • Ability for a task to take ownership of a hardware device directly - there is no expectation of a device driver that is brokered by the OS
  • A method for tasks to inter-communicate, preferably by hardware supported means
  • A functioning frame buffer with hardware supported OpenGL
  • UART, I2C, and SPI device examples
  • Interrupt handling
  • DMA (even if only used between SPI and Frame buffer)

What it is now

  • UART working
  • bare metal booting
  • Attempt to save the Pi 3/4 examples that are copied but then transposed to Pi Zero where only Pi Zero is actively tested
  • Working build examples (built on a MacOS environment augmented by many gcc et. al. tools)

Some key requirements

Most usefull links

I'm seeing interest in this subject, so I leave it here but also add this -- use of JTAG on raspberry pi with the pi as the target

proc pi_reboot {} {
  targets rspi.arm
  halt
  mww 0x20100024 0x5a000001
  mww 0x2010001c 0x5a000020
}

Update

The project embox is hands-down everything this project aspires to be and more. Regardless, this still has value as a tool for foundational understanding. Also, I'd add for GUI and direct OpenGL rendering to framebuffer etc, the already embox-tested project Nuklear is ideal.

About

Because why not? Pi Zero bare metal project that ends in an RTOS implementation


Languages

Language:C 66.0%Language:Assembly 21.9%Language:Makefile 12.2%