CARVIEW |
Select Language
HTTP/2 200
date: Tue, 22 Jul 2025 23:11:09 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"b7c08c505008efa78e219343b47114db"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=fL7VQH2o%2FiN38FqyDYDPDcsKk4XWvOC9bOSZTANvJmpI7l6RaE33Dduehg6wrQkQR3ChaQnoGT4JgFgZrde49b4wBPyfqoRpwjdmoCS%2FgiVzN2bAQgWTnyrhZDenXSGeM6x3Fk50Ln6jFZ0lAKCNEsK2uzGCbVfEOwrYAsctZVU7%2FtD7WqYZmKs2s26MtLev5Wkcd1uMeFy6vxgePzDabn%2FjnAygVllTn2X6KVDt%2FSmCNcvNcksTeLpaYdpC3NQhJ2ZQ4MlZ56l960h5s7d94Q%3D%3D--ni1afHXRUyDWRh9R--E7oGu1hfpeQgV%2FmNIiVCPw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.114519657.1753225869; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 23:11:09 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 23:11:09 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: ABE4:271430:1ABFFA:24AD63:68801A8D
GitHub - PeterLemon/RaspberryPi: Raspberry Pi Bare Metal Assembly Programming
Raspberry Pi, Raspberry Pi 2 & Raspberry Pi 3 Bare Metal Code by krom (Peter Lemon).
All code compiles out of box with the FASMARM assembler by revolution:
https://arm.flatassembler.net
I have included binaries of all the demos.
Special thanks to Dex (Craig Bamford), who helped me get my 1st pixel on the screen =D
Please check out DexOS, a lightning fast bare metal OS, & his Raspberry Pi port of DexBasic:
https://dex-os.github.io
https://dex-os.github.io/DexBasic/DexBasic.htm
Also special thanks to phire, who helped me get my 1st triangle on the screen using the GPU =D
Also special thanks to Jaymin Kessler, who helped me get my 1st textured triangle on the screen using the GPU =D
Please check out his blog, especially for info on bare metal GPU programming on the Raspberry Pi:
https://maisonikkoku.com/
Also special thanks to rst, who helped me get my 1st SMP demo running using all 4 CPU cores of the Raspberry Pi 2 =D
Please check out Circle by rst, a C++ bare metal environment (with USB) for Raspberry Pi 1 & 2:
https://github.com/rsta2/circle
For more information about coding the ARM CPU please visit my webpage that I run with SimonB:
https://gbadev.org
https://forum.gbadev.org
Howto Compile:
All the code compiles into a single binary (kernel.img for Raspberry Pi, kernel7.img for Raspberry Pi 2
or kernel8.img for Raspberry Pi 3) file.
Using FASMARM open up kernel.asm for Raspberry Pi, kernel7.asm for Raspberry Pi 2 or kernel8.asm for Raspberry Pi 3 & click the Run/Compile button.
Howto Run:
I only test with the latest bleeding edge firmware:
https://github.com/raspberrypi/firmware/tree/master/boot
You will need these 2 files:
bootcode.bin
start.elf
You will need to create a "config.txt" file that contains the lines:
kernel_old=1
disable_commandline_tags=1
disable_overscan=1
framebuffer_swap=0
Check https://www.raspberrypi.org/documentation/configuration/config-txt.md for more info about config options.
Check https://github.com/PeterLemon/RaspberryPi/tree/master/boot for the config.txt file.
Once you have all these files ready, you can copy them & a kernel.img (Raspberry Pi), a kernel7.img (Raspberry Pi 2)
or a kernel8.img (Raspberry Pi 3) file to the root of an SD card.
All of my demos use a maximum resolution of 640x480, they have been tested using composite & HDMI.
All sound demos output to the 3.5" Phone Jack. Thanks to ne7 for the sound sample.
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 66
PeterLemon/RaspberryPi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Raspberry Pi, Raspberry Pi 2 & Raspberry Pi 3 Bare Metal Code by krom (Peter Lemon).
All code compiles out of box with the FASMARM assembler by revolution:
https://arm.flatassembler.net
I have included binaries of all the demos.
Special thanks to Dex (Craig Bamford), who helped me get my 1st pixel on the screen =D
Please check out DexOS, a lightning fast bare metal OS, & his Raspberry Pi port of DexBasic:
https://dex-os.github.io
https://dex-os.github.io/DexBasic/DexBasic.htm
Also special thanks to phire, who helped me get my 1st triangle on the screen using the GPU =D
Also special thanks to Jaymin Kessler, who helped me get my 1st textured triangle on the screen using the GPU =D
Please check out his blog, especially for info on bare metal GPU programming on the Raspberry Pi:
https://maisonikkoku.com/
Also special thanks to rst, who helped me get my 1st SMP demo running using all 4 CPU cores of the Raspberry Pi 2 =D
Please check out Circle by rst, a C++ bare metal environment (with USB) for Raspberry Pi 1 & 2:
https://github.com/rsta2/circle
For more information about coding the ARM CPU please visit my webpage that I run with SimonB:
https://gbadev.org
https://forum.gbadev.org
Howto Compile:
All the code compiles into a single binary (kernel.img for Raspberry Pi, kernel7.img for Raspberry Pi 2
or kernel8.img for Raspberry Pi 3) file.
Using FASMARM open up kernel.asm for Raspberry Pi, kernel7.asm for Raspberry Pi 2 or kernel8.asm for Raspberry Pi 3 & click the Run/Compile button.
Howto Run:
I only test with the latest bleeding edge firmware:
https://github.com/raspberrypi/firmware/tree/master/boot
You will need these 2 files:
bootcode.bin
start.elf
You will need to create a "config.txt" file that contains the lines:
kernel_old=1
disable_commandline_tags=1
disable_overscan=1
framebuffer_swap=0
Check https://www.raspberrypi.org/documentation/configuration/config-txt.md for more info about config options.
Check https://github.com/PeterLemon/RaspberryPi/tree/master/boot for the config.txt file.
Once you have all these files ready, you can copy them & a kernel.img (Raspberry Pi), a kernel7.img (Raspberry Pi 2)
or a kernel8.img (Raspberry Pi 3) file to the root of an SD card.
All of my demos use a maximum resolution of 640x480, they have been tested using composite & HDMI.
All sound demos output to the 3.5" Phone Jack. Thanks to ne7 for the sound sample.
About
Raspberry Pi Bare Metal Assembly Programming
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
You can’t perform that action at this time.