move examples to folder, separate page

This commit is contained in:
aanper 2020-08-26 08:59:27 +03:00
parent bee159f435
commit e7aa6caf0e
4 changed files with 38 additions and 28 deletions

View file

@ -14,6 +14,10 @@ _please, do not edit wiki directly in web-interface. Read [contrubution guide](C
* [Timers](Timers)
* [UI](UI)
# [Examples](Application-examples)
* [Blink](Blink-app)
# Hardware
* [Hardware-specification](Hardware-specification)

View file

@ -1,32 +1,5 @@
One of the most important component of Flipper Core is [FURI](FURI) (Flipper Universal Registry Implementation). It helps control the applications flow, make dynamic linking and interaction between applications.
In fact, FURI is just wrapper around RTOS thread management and mutexes, and callback management.
In this article we create few application, interact between apps, use OS functions and interact with HAL.
# Simple Blink app
First, let's create a simple led blinking application.
## General agreements
Flipper application is just a function:
```C
void application_name(void* p) {
// Setup
while(1) {
// Loop
}
}
```
1. `void* p` is arbitrary pointer that may be used for pass parameters to application at launch (like argc/argv in POSIX).
2. Application must never attempt to return or exit from their implementing function.
3. Avoid long cycles without any "waits" or "blocking" like `delay` or `xQueueReceive`, otherwise your app will blocking overall Flipper work.
4. Do not create static variables inside function or global variables. Use only local variables. We plan to add virual in-RAM filesystem to save any persistent data.
## Preparing for launch
We will use integrated LED. Look at the schematic:
@ -104,7 +77,7 @@ Run:
`docker-compose exec dev target_lo/build/target_lo`.
Зырим как светодиод пытается мигать.
Linux version has no LED or GPIO, but we can see debug messages how state of GPIO is changing:
![](https://github.com/Flipper-Zero/flipperzero-firmware-community/raw/master/wiki_static/application_examples/example_blink.gif)

View file

@ -0,0 +1,32 @@
One of the most important component of Flipper Core is [FURI](FURI) (Flipper Universal Registry Implementation). It helps control the applications flow, make dynamic linking and interaction between applications.
In fact, FURI is just wrapper around RTOS thread management and mutexes, and callback management.
In this article we create few application, interact between apps, use OS functions and interact with HAL.
# Simple Blink app
First, let's create a simple led blinking application.
## General agreements
Flipper application is just a function:
```C
void application_name(void* p) {
// Setup
while(1) {
// Loop
}
}
```
1. `void* p` is arbitrary pointer that may be used for pass parameters to application at launch (like argc/argv in POSIX).
2. Application must never attempt to return or exit from their implementing function.
3. Avoid long cycles without any "waits" or "blocking" like `delay` or `xQueueReceive`, otherwise your app will blocking overall Flipper work.
4. Do not create static variables inside function or global variables. Use only local variables. We plan to add virual in-RAM filesystem to save any persistent data.
# Application examples
**[Blink](Blink-app)**

View file

@ -147,6 +147,7 @@ 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