Booting Raspberry Pi 3: Difference between revisions

Jump to navigation Jump to search
no edit summary
[unchecked revision][unchecked revision]
(Created page with " This is a tutorial on bare-metal OS development on the AArch64 architecture. This article oriented to the Raspberry Pi 3, but is aimed to be as device agnostic as possible. ...")
 
No edit summary
Line 1:
 
This is a tutorial on bare-metal OS development on the AArch64 architecture. This article oriented to the Raspberry Pi 3 (RPi 3), but is aimed to be as device agnostic as possible. Therefore, some sections will be specific to the RPi 3 and will be marked.
 
This is the author's very first ARM system and wiki page. I learn as I write and will continue to develop this page once I feel comfortable enough at the subjet to share.
 
== Preamble ==
This article assumes that you have all of the necessary materials needed to begin developing on your respective hardware. Other assumptions are that you are comfortable with low-level programming using C/C++ and the, GNU Make buildsystem, and that you are comfortable enough about OS development and hardware to not be confused.. Such details are not in the scope of this article and must be done before proceeding to the next steps.
 
This article is also intended for beginner users who want toa getminimal setsolution upfor developingcreating/starting onan theoperating architecturesystem, not for those who want to develop a full OS. Althoughalthough some insight can be derived for the advanced audience. This article also assumes that you are comfortable enough about OS development and hardware to not be confused.
 
== Preperations ==
'''====Cross Compiler'''====
 
A bare-metal AArch64 toolchain is available on the AUR for installation. The links are provided here as well as a download link tofrom the publisher offor theWindows toolchainusers.
 
https://www.linaro.org/downloads/
Line 19:
 
https://aur.archlinux.org/packages/aarch64-elf-newlib-linaro-bin/
 
====RPi 3: Firmware====
 
 
 
== Overview ==
 
By now you should have your cross compiler set up. The compiler binaries have the same name as they usually would with "aarch64-elf-" prefixing them (e.x. aarch64-elf-gcc). For this example, three files are used:
 
*start.S -
*kernel.c -
*linker.ld -
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu