Skip to content

Commit 034c6f5

Browse files
committed
Added functionality for creating a task structure
Added code describing the structure of the task image (plus headers and a draft of the sch_assertion notification system). Also, in the example on the STM32, the current interface for creating the structure of an executable procedure is considered (adding priority, IRQ, handler function (writing the initialization function, that is, automatic initialization of the task, is postponed for the future))
1 parent a0471b1 commit 034c6f5

6,974 files changed

Lines changed: 426 additions & 511 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.hex
2+
*.bin
3+
*.elf

.vscode/c_cpp_properties.json

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
{
44
"name": "STM32F4",
55
"includePath": [
6-
"${workspaceFolder}/examples/stm32_f4x/config",
7-
"${workspaceFolder}/examples/stm32_f4x/app/inc",
8-
"${workspaceFolder}/examples/stm32_f4x/platform/hal/Inc",
9-
"${workspaceFolder}/examples/stm32_f4x/platform/cmsis/CMSIS/Include",
10-
"${workspaceFolder}/examples/stm32_f4x/platform/cmsis/CMSIS/Device/ST/STM32F4xx/Include",
6+
"${workspaceFolder}/examples/stm32f4x/config",
7+
"${workspaceFolder}/examples/stm32f4x/app/inc",
8+
"${workspaceFolder}/examples/stm32f4x/platform/hal/Inc",
9+
"${workspaceFolder}/examples/stm32f4x/platform/cmsis/CMSIS/Include",
10+
"${workspaceFolder}/examples/stm32f4x/platform/cmsis/CMSIS/Device/ST/STM32F4xx/Include",
11+
"${workspaceFolder}/scheduler/inc",
12+
"${workspaceFolder}/scheduler/src",
1113
"${workspaceFolder}/**"
1214
],
1315
"defines": [

doc/glossary.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Definitions
2+
OSEK/VDX - a standart what defines the image of systems of timer divining in RTU (in taskers)
3+
4+
BCC - a standart what defines types of RTU systems and schedulers. There're:
5+
1. BCC1 - supports basic tasks and one activation (one other processing task)
6+
2. BCC2 - supports basic tasks and undefined quantity of other processing tasks
7+
3. ECC1 - supports basic tasks, undefined quantity of other processing tasks and advanced tasks
8+
4. ECC2 - supports basic tasks, undefined quantity of other processing tasks, advanced tasks, events and waitings

doc/sst_review.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Foreword
2+
You can see the SST project following the link: https://github.com/QuantumLeaps/Super-Simple-Tasker/
3+
4+
# Global architecture
5+
`dbc_assert.h` consists of a lot of basic definitions what're used in source files
6+
SST provides to you a fucntional for:
7+
1. Changing the module's name;
8+
2. Checking the main assesrtionts about hardware parameters and task parameters (existion, usage and etc.);
9+
3. Creating the queue of processing tasks;
10+
4. Doing some arbitration between all of these tasks, what're storing in the queue
11+
12+
## Structure
13+
### Modules
14+
SST contains a lot of modules. The module within the framework of the topic of SST - is every .c-file with
15+
appropriate to it .h-file. `main.c` - is a module, `sst.c` is a module too. And looking ahead, SST provides
16+
some functions for debugging - they can show messages about errors in concrete modules. So, there's a global
17+
'list' of modules
18+
19+
`DBC` - is a system (what's described in `dbc_assertionb.h`, as far as I remember) for debugging and showing
20+
some debug messages about errors during the processing of some task
21+
DBC includes macroses `DBC_MODULE_NAME`, `DBC_ASSERT`, `DBC_ALLEGE`, `DBC_ERROR`, `DBC_REQUIRE`, `DBC_ENSURE`,
22+
`DBC_INVARIANT` and all of it only for checking of asserting the user about some errors
23+
24+
`SST` - the scheduler itself. In repo there're two variations of it: `sst0` and `sst` (first is the scheduler
25+
what's built following the standart BCC0, and the second one - by BCC2)
26+
27+
28+
### Tasks
29+
Within the framework of the topic of SST task is a fucntion. A task must be framed by preconditions and
30+
postconditions. It helps to scheduler to check the execution of tasks at the time of context switching or
31+
other interruptions
32+
33+
34+
### The process of handling
35+
The sequence:
36+
1. At the start - some quantity of active tasks
37+
2. Sorting tasks by theirs prioroty
38+
3. Processing

examples/stm32_f4x/app/src/main.c

Lines changed: 0 additions & 41 deletions
This file was deleted.
-6 KB
Binary file not shown.
-32.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)