aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Cunningham <cc@localhost>2022-04-04 14:14:09 -0700
committerChristian Cunningham <cc@localhost>2022-04-04 14:14:09 -0700
commitecf81aed3fdd63ee0402e6d9c311fe88b166709b (patch)
tree0519eec2beb113f840f86f997336a0a10c1c0c37
parent7bf0aeadd233312a5f598501ff37dd4dfcf7edfe (diff)
Start Build Instructions
-rw-r--r--README.md66
1 files changed, 37 insertions, 29 deletions
diff --git a/README.md b/README.md
index fe58df5..3aac082 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,9 @@
# Jobbed
-## Supplemental Links
- - https://www.raspberrypi.com/documentation/computers/processors.html
- - https://datasheets.raspberrypi.com/bcm2835/bcm2835-peripherals.pdf
- - https://datasheets.raspberrypi.com/bcm2836/bcm2836-peripherals.pdf
- - https://github.com/eggman/raspberrypi/tree/master/qemu-raspi2
- - https://github.com/eggman/FreeRTOS-raspi3/blob/master/Demo/FreeRTOS_tick_config.c
- - https://developer.arm.com/documentation/dui0802/b/A64-General-Instructions/A64-general-instructions-in-alphabetical-order?lang=en
- - https://wiki.osdev.org/ARM_RaspberryPi
- - https://elinux.org/RPi_Framebuffer
- - https://github.com/bztsrc/raspi3-tutorial
- - https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials
-
- - // PRIV LEVL: https://developer.arm.com/documentation/den0013/d/ARM-Processor-Modes-and-Registers
- - // MODES: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-processor-modes?lang=en
- - // EXCEPTION HANDLING: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Exception-handling?lang=en
- - // MODE REGISTERS: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-core-registers?lang=en
+## Building (Debian)
+ - Clone the repository.
+ - Ensure you have the `arm-none-eabi-gcc` cross compiler installed.
+ - From the root of the directory, i.e. in `Jobbed`, execute `make`
## Todo
- Finish Build Instructions
@@ -29,16 +17,19 @@
- SPI Driver
- GPIO Falling Edge IRQ
-## SVC Calls
- - Sysinfo
- - Reboot?
- - Mutex Create
- - Mutex Lock
- - Mutex Release
- - Schedule
- - Yield
- - Fork
- - Uart Write Buffer Add (Add reoccuring task to flush write buffer - RotatingBuffer)
+## SVC Calls (In order)
+ - 0: Yield to threads in same priority
+ - 1: System Clock Time
+ - 2: Schedule
+ - 3: Add thread
+ - 4: Mutex Lock
+ - 5: Mutex Unlock
+ - 6: Semaphore Decrease
+ - 7: Semaphore Increase
+ - 8: Semaphore Increase by N
+ - 9: Cycle Counter
+ - A: Enable ARM Timer
+ - B: Disable ARM Timer
Note: SYS and USER share registers but differ in privilege
@@ -65,9 +56,6 @@ Note: SYS and USER share registers but differ in privilege
- UND: sp_und,lr_und,SPSR_und
- SYS: Same as user
-# Program Status Registers
- - https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/Program-Status-Registers--PSRs-?lang=en#CIHJBHJA
-
# Memory Layout
- 0x00004000 - 0x00008000 MMU Entries
- 0x00008000 - 0x0000F000 Code
@@ -76,3 +64,23 @@ Note: SYS and USER share registers but differ in privilege
- 0x18000000 - 0x20000000 Thread Stacks
- 0x3F000000 - 0x40000000 MMIO
- 0x40000000 - 0xFFFFFFFF Local Peripherals
+
+## Supplemental Links
+ - https://www.raspberrypi.com/documentation/computers/processors.html
+ - https://datasheets.raspberrypi.com/bcm2835/bcm2835-peripherals.pdf
+ - https://datasheets.raspberrypi.com/bcm2836/bcm2836-peripherals.pdf
+ - https://github.com/eggman/raspberrypi/tree/master/qemu-raspi2
+ - https://github.com/eggman/FreeRTOS-raspi3/blob/master/Demo/FreeRTOS_tick_config.c
+ - https://developer.arm.com/documentation/dui0802/b/A64-General-Instructions/A64-general-instructions-in-alphabetical-order?lang=en
+ - https://wiki.osdev.org/ARM_RaspberryPi
+ - https://elinux.org/RPi_Framebuffer
+ - https://github.com/bztsrc/raspi3-tutorial
+ - https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials
+
+ - // PRIV LEVL: https://developer.arm.com/documentation/den0013/d/ARM-Processor-Modes-and-Registers
+ - // MODES: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-processor-modes?lang=en
+ - // EXCEPTION HANDLING: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/Exception-handling?lang=en
+ - // MODE REGISTERS: https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/ARM-core-registers?lang=en
+
+# Program Status Registers
+ - https://developer.arm.com/documentation/ddi0406/c/System-Level-Architecture/The-System-Level-Programmers--Model/ARM-processor-modes-and-ARM-core-registers/Program-Status-Registers--PSRs-?lang=en#CIHJBHJA