aboutsummaryrefslogtreecommitdiff
path: root/docs/Project-structure-explained.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Project-structure-explained.md')
-rw-r--r--docs/Project-structure-explained.md101
1 files changed, 101 insertions, 0 deletions
diff --git a/docs/Project-structure-explained.md b/docs/Project-structure-explained.md
new file mode 100644
index 0000000..355910d
--- /dev/null
+++ b/docs/Project-structure-explained.md
@@ -0,0 +1,101 @@
+## Project structure
+Directory structure of the project:
+
+ doc/
+ build/
+ Makefile
+ Makefile
+ src/
+ lib/
+ rs232/
+ rs232.c
+ rs232.h
+ host/
+ pipe_image.c
+ makefs.c
+ arm/
+ common/
+ svc_interface.h
+ strings.c
+ io.h
+ io.c
+ strings.h
+ PL0/
+ PL0_utils.h
+ svc.S
+ PL0_utils.c
+ PL0_test.c
+ PL0_test.ld
+ PL1/
+ loader/
+ loader_stage2.ld
+ loader_stage2.c
+ loader_stage1.S
+ loader.ld
+ kernel/
+ demo_functionality.c
+ paging.h
+ setup.c
+ interrupts.h
+ interrupt_vector.S
+ kernel.ld
+ scheduler.h
+ atags.c
+ translation_table_descriptors.h
+ bcmclock.h
+ ramfs.c
+ kernel_stage1.S
+ paging.c
+ ramfs.h
+ interrupts.c
+ armclock.h
+ atags.h
+ kernel_stage2.ld
+ cp_regs.h
+ psr.h
+ scheduler.c
+ memory.h
+ demo_functionality.h
+ PL1_common/
+ global.h
+ uart.h
+ uart.c
+
+
+### Most Significant Directories
+
+ doc/
+ Contains documentation of the project.
+
+ build/
+ Contains main Makefile of the project. All objects created during the build process are placed there.
+
+ Makefile
+ Proxies all calls to Makefile in build/.
+
+ src/
+ Contains all sources of the project.
+
+ src/host/
+ Contains sources of helper programs to be compiled using native GCC and run on the machine where development takes place.
+
+ src/arm/
+ Contains sources to be compiled using ARM cross-compiler GCC and run on the RaspberryPi.
+
+ src/arm/common
+ Contains sources used in both: privileged mode and unprivileged mode.
+
+ src/arm/PL0
+ Contains sources used exclusively in unprivileged, user-mode (PL0) program, as well as the program's linker script.
+
+ src/arm/PL1
+ Contains sources used exclusively in privileged (PL1) mode.
+
+ src/arm/PL1/loader
+ Contains sources used exclusively in the bootloader, as well as linker scripts for stages 1 and 2 of this bootloader.
+
+ src/arm/PL1/kernel
+ Contains sources used exclusively in the kernel, as well as linker scripts for stages 1 and 2 of this kernel.
+
+ src/arm/PL1/PL1_common
+ Contains sources used in both: kernel and bootloader.