Remove obsolete target. Cleanup and update ReadMe. (#279)
This commit is contained in:
@@ -1,77 +1,52 @@
|
||||
_Overview of Flipper firmware architecture:_
|
||||
|
||||

|
||||
|
||||
# Project structure
|
||||
|
||||
```
|
||||
.
|
||||
├── applications # Flipper applications
|
||||
├── assets # Assets: icons, animation
|
||||
├── bootloader # Bootloader make project
|
||||
├── core # Main feature like OS, HAL (target-independed)
|
||||
├── core-rs # Rust code
|
||||
├── debug # Debug helpers, configs and plugins
|
||||
├── docker # Docker toolchain container
|
||||
├── firmware # Firmware make project
|
||||
├── lib # Libs and 3rd parties
|
||||
├── make # Makefile scripts
|
||||
├── wiki # Documentation (wiki) generates from this files
|
||||
└── wiki_static # Static files for wiki
|
||||
```
|
||||
|
||||
# HAL
|
||||
|
||||
We use STM32 HAL/LL. Description available here: [dm00105879.pdf](https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master/wiki_static/dm00105879-description-of-stm32f4-hal-and-ll-drivers-stmicroelectronics.pdf)
|
||||
|
||||
## Flipper HAL
|
||||
|
||||
Some flipper-specific implementation of gpio/HAL:
|
||||
|
||||
* Init gpio pin: `app_gpio_init`
|
||||
* Fast write gpio (inline): `app_gpio_write`
|
||||
* Fast read gpio (inline): `app_gpio_read`
|
||||
* Microsecond delay `delay_us`
|
||||
* Set PWM on timer's pin: `pwm_set`
|
||||
|
||||
Files location: `/app/app_hal.[ch]`
|
||||
|
||||
# Bootloader
|
||||
|
||||
For production targets('f2' and newer) bootloader must be flashed first.
|
||||
Bootloader must be flashed first.
|
||||
Detailed instruction on how to compile and flash it you can find in `bootloader` folder.
|
||||
|
||||
Production version is going to have following features:
|
||||
|
||||
- Hardware initialization
|
||||
- Firmware CRC check
|
||||
- Firmware update
|
||||
- Interactive UI
|
||||
- Boot process LED indicators
|
||||
- FS check
|
||||
- Recovery mode
|
||||
|
||||
# OS
|
||||
|
||||
CMSIS-RTOS2 over FreeRTOS
|
||||
|
||||
**[Timers map](Timers)**
|
||||
|
||||
# Platform code
|
||||
## Platform code
|
||||
|
||||
CMSIS, Freertos and HAL files are generated by CubeMX.
|
||||
You can find platform code for L476 version in `f2` folder:
|
||||
You can find platform code for STM32WB55 version in `f4` folder:
|
||||
|
||||
* `Inc` `Src` — CubeMX generated headers & code
|
||||
* `Middlewares/Third_Party/FreeRTOS/Source` — freeRTOS
|
||||
* `deploy.sh` — flash firmware to device
|
||||
* `STM32L476RGTx_FLASH.ld` — linker script
|
||||
* `startup_stm32l476xx.s` — board startup/initialization assembler code
|
||||
* `cube.ioc` — CubeMX project file
|
||||
```
|
||||
├── Inc # CubeMX generated headers
|
||||
├── Src # CubeMX generated code
|
||||
├── api-hal # Our HAL wrappers and platform specifics
|
||||
├── ble-glue # BLE specific code(Glue for STMWPAN)
|
||||
├── f4.ioc # CubeMX project file
|
||||
├── startup_stm32wb55xx_cm4.s # Board startup/initialization assembler code
|
||||
├── stm32wb55xx_flash_cm4*.ld # Linker scripts
|
||||
├── target.mk # Makefile include
|
||||
|
||||
You can regenerate platform code:
|
||||
```
|
||||
|
||||
Working with CubeMX:
|
||||
1. Download CubeMX from [st.com](https://www.st.com/en/development-tools/stm32cubemx.html)
|
||||
2. Open `*.ioc` file
|
||||
3. Do whatever you want to
|
||||
3. Click `generate code`
|
||||
4. After regenerating, look at git status, regenerating may broke some files.
|
||||
4. After regenerating, look at git status, regeneration may brake some files.
|
||||
5. Check one more time that things that you've changes are not covered in platform api-hal. Because you know...
|
||||
|
||||
# Flipper Universal Registry Implementation (FURI)
|
||||
|
||||
|
Reference in New Issue
Block a user