This commit is contained in:
iceman1001 2021-12-31 11:19:30 +01:00
commit e5b97dccf3

View file

@ -1,4 +1,19 @@
# Standalone Modes # Standalone Modes
<a id="Top"></a>
# Table of Contents
- [Standalone Modes](#standalone-modes)
- [Table of Contents](#table-of-contents)
- [Implementing a standalone mode](#implementing-a-standalone-mode)
- [Naming your standalone mode](#naming-your-standalone-mode)
- [Update MAKEFILE.HAL](#update-makefilehal)
- [Update MAKEFILE.INC](#update-makefileinc)
- [Adding identification string of your mode](#adding-identification-string-of-your-mode)
- [Compiling your standalone mode](#compiling-your-standalone-mode)
- [Submitting your code](#submitting-your-code)
This contains functionality for different StandAlone modes. The fullimage will be built given the correct compiler flags used. Build targets for these files are contained in `Makefile.inc` and `Makefile.hal` This contains functionality for different StandAlone modes. The fullimage will be built given the correct compiler flags used. Build targets for these files are contained in `Makefile.inc` and `Makefile.hal`
@ -8,7 +23,9 @@ Have a look at the skeleton standalone mode, in the file `lf_skeleton.c`.
As it is now, you can only have one standalone mode installed at the time unless you use the dankarmulti mode (see `dankarmulti.c` on how to use it). As it is now, you can only have one standalone mode installed at the time unless you use the dankarmulti mode (see `dankarmulti.c` on how to use it).
To avoid clashes between standalone modes, protect all your static variables with a specific namespace. See how it is done in the existing standalone modes. To avoid clashes between standalone modes, protect all your static variables with a specific namespace. See how it is done in the existing standalone modes.
## Implementing a standalone mode ## Implementing a standalone mode
^[Top](#top)
We suggest you keep your standalone code inside the `armsrc/Standalone` folder. And that you name your files according to your standalone mode name. We suggest you keep your standalone code inside the `armsrc/Standalone` folder. And that you name your files according to your standalone mode name.
@ -42,6 +59,7 @@ void RunMod(void) {
```` ````
## Naming your standalone mode ## Naming your standalone mode
^[Top](#top)
We suggest that you follow these guidelines: We suggest that you follow these guidelines:
- Use HF/LF to denote which frequency your mode is targeting. - Use HF/LF to denote which frequency your mode is targeting.
@ -58,6 +76,7 @@ This leads to your next step, your DEFINE name needed in Makefile.
## Update MAKEFILE.HAL ## Update MAKEFILE.HAL
^[Top](#top)
Add your mode to the `Makefile.hal` help and modes list (alphabetically): Add your mode to the `Makefile.hal` help and modes list (alphabetically):
``` ```
@ -82,6 +101,8 @@ STANDALONE_MODES_REQ_BT :=
``` ```
## Update MAKEFILE.INC ## Update MAKEFILE.INC
^[Top](#top)
Add your source code files like the following sample in the `Makefile.inc` Add your source code files like the following sample in the `Makefile.inc`
``` ```
@ -97,6 +118,8 @@ endif
``` ```
## Adding identification string of your mode ## Adding identification string of your mode
^[Top](#top)
Do please add a identification string in a function called `ModInfo` inside your source code file. Do please add a identification string in a function called `ModInfo` inside your source code file.
This will enable an easy way to detect on client side which standalone mode has been installed on the device. This will enable an easy way to detect on client side which standalone mode has been installed on the device.
@ -107,6 +130,8 @@ void ModInfo(void) {
```` ````
## Compiling your standalone mode ## Compiling your standalone mode
^[Top](#top)
Once all this is done, you and others can now easily compile different standalone modes by just selecting one of the standalone modes (list in `Makefile.hal` or ) , e.g.: Once all this is done, you and others can now easily compile different standalone modes by just selecting one of the standalone modes (list in `Makefile.hal` or ) , e.g.:
- rename Makefile.platform.sample -> Makefile.platform - rename Makefile.platform.sample -> Makefile.platform
@ -143,6 +168,7 @@ When compiling you will see a header showing what configurations your project co
Make sure it says your standalone mode name. Make sure it says your standalone mode name.
## Submitting your code ## Submitting your code
^[Top](#top)
Once you're ready to share your mode, please Once you're ready to share your mode, please