From b2bd2a8c11eacc0a7fffb177e7f556892f4ead61 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 17 Jan 2020 18:03:48 +0100 Subject: explain project structure --- Project-structure-explained.txt | 100 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Project-structure-explained.txt diff --git a/Project-structure-explained.txt b/Project-structure-explained.txt new file mode 100644 index 0000000..131e36b --- /dev/null +++ b/Project-structure-explained.txt @@ -0,0 +1,100 @@ +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 + + +Meaning of significant directories and files: + +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. -- cgit v1.2.3