Skip to content

Commit b4b6472

Browse files
committed
Another nudge towards readable deep dive for the eRT buildl system
1 parent fbbefbe commit b4b6472

File tree

1 file changed

+34
-27
lines changed

1 file changed

+34
-27
lines changed

docs/ert-build-guide.md

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -680,15 +680,16 @@ inxware/<target arch-os>_<hosted distribution version>-<added packages>
680680
5. **app_data::EEhsApplicationResethsDataConnectionTable_applicationReset();**
681681
6. **Loop to 1.v.**
682682
683-
# eRT Deployment File & Asset Structure**
683+
# eRT Deployment Files & Assets Structure**
684684
685685
For windows, linux, bsd or devices suported a file system like littlefs, the following directory structure is used. (Note for devices using inx's simple flat FS then the filenames rename the same, but there is no directory strcuture.)
686686

687-
## ./bin
687+
## Windows & Linux
688+
### ./bin
688689

689690
This is the main container for ehs executable code. This contains subdirectories listed below plus the following files:
690691

691-
### .bbin/run_ehs.sh
692+
#### .bbin/run_ehs.sh
692693

693694
```bash
694695
run_ehs.sh or run_ehs.bat # sarts ehs.exe with any env and os intialisation required.
@@ -700,12 +701,12 @@ Arguements may include
700701
./run_ehs.sh NO_RESTART DEBUG # starts ehs with logging to disk or GDB. respectively.
701702
```
702703

703-
### ./bin/ehs.exe ehs.exe
704+
#### `./bin/ehs.exe ehs.exe`
704705

705706
This is the ehs core executable (user space kernel) this should be run as root in which case it will gain high thread priority and will run as a linux REAL_TIME_THREAD_PRIOIRITY if ran as root.
706707

707708

708-
### ./bin/cslib/
709+
#### `./bin/cslib/`
709710
DLLs (e.g. so) loaded dynamically by EHS that are not available in the OS.
710711

711712
These are located in run_ehs.sh where LD_LIBRARY_PATH is set to find them.
@@ -718,25 +719,21 @@ runtime libraries including for example plugin directories for middleware such a
718719
These are typically standalone [.so]() or .dll files required for EHS components
719720
EHS core should not be dependent on these libs.
720721

721-
### ./bin/cscore/
722-
722+
#### `./bin/cscore/`
723723
Rarely used additional DLL location for core eRT runtime dependencies. files such as any libc.so can be deployed here, whcih are needed at initial loading of ehs.
724+
S
724725

726+
### `./appdata/`
727+
contains default temporary and named Lucid applications (SODL files)
728+
### `./sysdata/`
729+
OS scripts and data used by supivisor processes and OS level initialisation scripts.
730+
### `./devman`
731+
Included on builds tha supper Devman. This contains subfolder that identify the server configuration and reference credentials and certificate requirements
725732

726-
### **Component Support Directories (Plugins)**
727-
728-
---
729-
730-
Many 3rd party support libraries require directories to contain plugin libs, extensions, meta data or scripting to run. Examples include VLC, LUA.
731-
THis may not be used at all any more. Plugsin are usually included as subdirectories to cslib
732-
733-
#### **Entry**
734-
735-
ehs/bin/csdir
733+
### Example Linux runtime files
736734

737-
## eRT **Runtime
738735

739-
Degrees of pmemory ersistence:
736+
Degrees of memory persistence:
740737

741738
1. Runtime Dynamic
742739
1. Restart Application
@@ -794,8 +791,18 @@ Degrees of pmemory ersistence:
794791
795792
```
796793
794+
## Android
795+
The Android file system for applicaitons (typically) `/sdcard/Android/data/com.inx.ehs/files` contains the same as a Windows Linux file system, but does not include a `./bin` directory.
797796
798-
### ert-components Multi-target Code Structure**
797+
## MCUs with Littlefs
798+
These als follow the general scheme of Windows and Linux, but without a ./bin directory.
799+
Zephyr builds may include libraries in this directory.
800+
801+
802+
803+
# Source Tree Layout
804+
805+
## ert-components Multi-target Code Structure**
799806
800807
```bash
801808
./Common/ # HW independent
@@ -804,14 +811,14 @@ Degrees of pmemory ersistence:
804811
```
805812
806813
807-
808-
### Toolchain Selection
814+
# SDK Configuration
815+
## Toolchain Selection
809816
810817
the default toolchains are selected on the basis of the target OS, but are also arranged by which host they can run on. <HOST_OS> is the build systems architecture string as defined by **uname -i** on the build host**.**
811818
812819
The `../ert-contrib-middleware` repo contains toolchains that are not installed with a host (dockerhub host) tree contains toolchains
813820
814-
** To use a host installed toolchain ** use
821+
To use a host installed toolchain use
815822
```make
816823
TOOLCHAIN_NAME=HOST
817824
```
@@ -824,19 +831,19 @@ Which toolchain that is used is defined by the `EHS_OS` and `EHS_ARCH` make vari
824831
825832
If **TOOLCHAIN_NAME, CC_OVERRIDE, or EHS_GNU_*** options are not set the following base toolchain will be used:
826833
827-
**../ert-build-support/toolchains/**<HOST_OS>/*<EHS_ARCH>***_***<EHS_OS>***/**
834+
`../ert-build-support/toolchains/**<HOST_OS>/*<EHS_ARCH>***_***<EHS_OS>***/**`
828835
829-
The base toolchain may be soft-linked in the toolchains directory to a more specific version so that the default can be easily changed to more up to date compilers if required (**TODO in ert-build-support**).
836+
The base toolchain may be soft-linked in the toolchains directory to a more specific version so that the default can be easily changed to more up to date compilers if required.
830837
831-
If either **EHS_GNU_OS** or **EHS_GNU_ARCH** are set then these will override the respective **EHS_OS** or **EHS_ARCH** parameters for the toolchain path. This is to allow matching of toolchains to GNU specific GNU formats that are used by compilers and also when building middleware packages with autotools for example.
838+
If either `EHS_GNU_OS` or `EHS_GNU_ARCH` are set then these will override the respective `EHS_OS` or `EHS_ARCH` parameters for the toolchain path. This is to allow matching of toolchains to GNU specific GNU formats that are used by compilers and also when building middleware packages with autotools for example.
832839
833840
#### Overriding Toolchains
834841
835842
There are cases where a specific toolchain is used for a target, which can be selected using the
836843
837844
Some toolchains use different naming conventions to the standard gcc format, particularly for cross-compilation.
838845
839-
The path to the toolchain binaries within **ert-build-support/toolchains/** can be explicitly set using by setting the variable **TOOLCHAIN_NAME** to the path.
846+
The path to the toolchain binaries within `ert-build-support/toolchains/` can be explicitly set using by setting the variable `TOOLCHAIN_NAME` to the path.
840847
E.g.
841848
842849
TOOLCHAIN_NAME=arm-none-linux-gnueabi-4.4.6

0 commit comments

Comments
 (0)