Split fw doc and add environment page (#94)

* wip

* small fixes

* remove link to empty applications list

* remove unused flipper libraries page

* mark some sections, add link to examples

* add environment page
This commit is contained in:
coreglitch
2020-09-05 02:25:16 +06:00
committed by GitHub
parent ca1e5678d2
commit c90b553b8c
6 changed files with 70 additions and 43 deletions

View File

@@ -52,14 +52,14 @@ Files location: `/app/app_hal.[ch]`
We use FreeRTOS 10.0.1 for sheduling. Documentation available on [freertos.org](https://www.freertos.org/a00106.html).
Files location for L476 version: `/target_prod/Middlewares/Third_Party/FreeRTOS`
Files location for L476 version: `/target_f1/Middlewares/Third_Party/FreeRTOS`
**[Timers map](Timers)**
# Platform code
CMSIS, Freertos and HAL files are generated by CubeMX.
You can find platform code for L476 version in `target_prod` folder:
You can find platform code for L476 version in `target_f1` folder:
* `Drivers/STM32L4xx_HAL_Driver` hardware abstraction layer
* `Drivers/CMSIS` — ARM specific code
@@ -80,12 +80,6 @@ You can regenerate platform code:
There are some arduino-style defines (digitalWrite, delay, etc.). Include `Arduino.h` from `/app/Arduino.h`
## Debug print
You can use `pintf` to write any message to debug UART. UART specify in `Makefile` as `-DDEBUG_UART=<>`.
Implementation of write method located at `/app/write.c`
# Flipper Universal Registry Implementation (FURI)
FURI is used to:
@@ -96,7 +90,7 @@ FURI is used to:
Read more at [FURI page](FURI)
# FS
# FS (not implemented)
File system is used to volaile storage some files (config, application data, etc.). There are some folders mounted to different volumes:
@@ -110,19 +104,13 @@ File system is used to volaile storage some files (config, application data, etc
Each flipper functionality except OS/HAL/FURI doing by Flipper application. Some application are called at startup, the rest are called by the user (for example, from menu).
**[List of Flipper applications](Flipper-applications)**
(you can see some [examples](Application-examples))
For exchange data between application each app expose own record in FURI. You can subscribe on/read record to get data from application and write to record to send data to application.
**[List of FURI records](FURI-records-list)**
# Flipper libraries
Unlike applications that run after startup, libraries are a collection of constants, types, or functions that the user can call from within the application.
**[List of Flipper libraries](Flipper-libraries)**
# Bootloader
# Bootloader (not implemented)
After start, bootloader run first. It can:
@@ -130,26 +118,3 @@ After start, bootloader run first. It can:
2. Reflashes firmware from temporary area after updating from usb/bluetooth
3. Restores factory default firmware for protected flash area
4. Restores application settings to default by clearing `/etc` volume
# Building
## Build in docker container (main way)
1. Install [docker compose](https://docs.docker.com/compose/install/)
2. After startup you should run `docker-compose up -d` to run the container.
3. Then you can run `docker-compose exec dev make -C <target_dir>` to build application.
If Dockerfile is changed you should run `docker-compose down` and `docker-compose build` for rebuild the image.
### Local build and run
You can run firmware locally (with HAL stub).
* `docker-compose exec dev make -C target_lo` for build
* `docker-compose exec dev target_lo/build/target_lo` for run
* `docker-compose exec dev make -C target_lo test` for running tests
## Build in IDE
* Arduino IDE (in progress)
* PlatformIO (in progress)