This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

update README

Ivan Ilak (Apr 9, 2023, 11:53 PM +0200) 3d615e8d cc7d5bc9

+4 -21
+4 -21
README.md
··· 14 14 I changed some things were I found it appropritate, but at the end of the day I think Thanos did a great job and since I'm just trying to learn more about the subject, this project was a godsend! 15 15 Also, a good chunk of the documentation is taken from him... Looking up all the GPIO-addresses etc. must have been a nightmare. 16 16 * [Bare metal Raspberry Pi 3 tutorials (*Zoltan Baldaszti*)](https://github.com/bztsrc/raspi3-tutorial/): Really nice tutorial that introduces the basic ways of how HW and SW should interact with each other. 17 + * [Building an Operating System for the RaspberryPi (*Jake Sandler*)](https://jsandler18.github.io) Has a nice introduction to setting up dynamic memeory allocation for 32-bit systems, but seems a little bit light on some things. 18 + * [Raspberry Pi bare metal experiments (*Brian Widdas*)](https://github.com/brianwiddas/pi-baremetal) 19 + * [Learning operating system development using Linux kernel and Raspberry Pi (*Sergey Matyukevich*)](https://github.com/s-matyukevich/raspberry-pi-os) Lots of explenations about concepts related to OS developement using the Linux kernel and RPi OS as an example. Helps to understand some of the code out there doing things/solving things and seeing the bigger picture! 17 20 18 21 ## How to build the project? 19 22 As often with embedded projects, the toolchain hassle is real. The tricky part for this project is the compiler. Since we are writing code that is supposed to run on an ARM processor, you will need the corresponding compiler. All compilers to build for ARM CPU's can be found on [ARM's website](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads). You will most probably have to cross-compile (`x86`->`arm`) and you will need to be careful if you are compiling the kernel for a `32-bit` or a `64-bit` CPU (`arm-none-eabi` vs `aarch64-none-elf`). ··· 23 26 cmake -G Ninja -B ./build -S . 24 27 cmake --build ./build 25 28 ``` 26 - If you like to use docker, you can also use this minimal `Dockerfile` (for the `32-bit` version): 27 - ```docker 28 - FROM rushmash/gcc-arm-embedded-docker:latest AS base 29 - 30 - ARG BUILD_DIR=build 31 - 32 - WORKDIR /home/piOS 33 - 34 - COPY . . 35 - 36 - FROM base AS build 37 - 38 - RUN rm -rf ./${BUILD_DIR} 39 - RUN cmake -G Ninja -B ./${BUILD_DIR} -S . 40 - RUN cmake --build ./${BUILD_DIR} 41 - 42 - FROM scratch AS export-stage 43 - COPY --from=build ./home/piOS/build/bin . 44 - 45 - ``` 46 - and run it via 29 + ... or you can use Docker 47 30 ```bash 48 31 DOCKER_BUILDKIT=1 docker build --progress=plain -f Dockerfile --rm -t pi_os:latest . --output ${PATH_TO_WHERE_YOU_WANT_THE_ELF_AND_IMG} 49 32 ```