Skip to content

Commit

Permalink
Update ch02.md (FreeRTOS#52)
Browse files Browse the repository at this point in the history
updates for toc
  • Loading branch information
robhath authored Jan 17, 2024
1 parent a19df4e commit 3a1e459
Showing 1 changed file with 33 additions and 13 deletions.
46 changes: 33 additions & 13 deletions ch02.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ git clone [email protected]:FreeRTOS/FreeRTOS.git --recurse-submodules
Figure 2.1 shows the first and second-level directories of the FreeRTOS
distribution:

<a name="fig2.1" title="Figure 2.1 Top level directories within the FreeRTOS distribution"></a>

* * *
```
FreeRTOS
Expand All @@ -120,7 +122,7 @@ FreeRTOS-Plus
└─Demo Contains demo projects for other FreeRTOS and ecosystem libraries
```
*Figure 2.1. Top level directories within the FreeRTOS distribution*
*Figure 2.1 Top level directories within the FreeRTOS distribution*
* * *

The distribution only contains one copy of the FreeRTOS kernel source
Expand Down Expand Up @@ -169,6 +171,9 @@ following optional source files:
recommended for new designs. Co-routines are not described in this
book.


<a name="fig2.2" title="Figure 2.2 Core FreeRTOS source files within the FreeRTOS directory tree"></a>

* * *
```
FreeRTOS
Expand All @@ -183,7 +188,7 @@ FreeRTOS
├─stream_buffer.c FreeRTOS source file - optional
└─croutine.c FreeRTOS source file – optional and no longer maintained
```
*Figure 2.2. Core FreeRTOS source files within the FreeRTOS directory tree*
*Figure 2.2 Core FreeRTOS source files within the FreeRTOS directory tree*
* * *

It is recognized that the file names used in the zip file distribution
Expand Down Expand Up @@ -218,6 +223,9 @@ provide your own implementation.

> **! Do not include more than one of the example heap allocation implementations in your project.**

<a name="fig2.3" title="Figure 2.3 Port specific source files within the FreeRTOS directory tree"></a>

* * *
```
FreeRTOS
Expand All @@ -240,7 +248,7 @@ FreeRTOS
├─[architecture 2] Contains files for the compiler 2 architecture 2 port
└─[etc.]
```
*Figure 2.3. Port specific source files within the FreeRTOS directory tree*
*Figure 2.3 Port specific source files within the FreeRTOS directory tree*
* * *

### 2.2.8 Include Paths
Expand Down Expand Up @@ -320,6 +328,8 @@ the FreeRTOS kernel. See the
comments within the individual main.c files for information specific to
that demo.

<a name="fig2.4" title="Figure 2.4 The demo directory hierarchy"></a>

* * *
```
FreeRTOS
Expand All @@ -331,7 +341,7 @@ FreeRTOS
├─[Demo z] Contains the project file that builds demo 'z'
└─Common Contains files that are built by all the demo applications
```
*Figure 2.4. The demo directory hierarchy*
*Figure 2.4 The demo directory hierarchy*
* * *


Expand Down Expand Up @@ -361,6 +371,9 @@ To create a new application from an existing demo project:
When you follow these steps you create a project that includes the correct
FreeRTOS source files, but does not define any functionality.


<a name="list2.1" title="Listing 2.1 The template for a new main() function"></a>

* * *
```c
int main( void )
Expand All @@ -379,7 +392,7 @@ int main( void )
return 0;
}
```
*Listing 2.1. The template for a new main() function*
*Listing 2.1 The template for a new main() function*
* * *
Expand Down Expand Up @@ -415,6 +428,8 @@ procedure to create a new project:
the web page that describes the port in use and the demo project
provided for the port in use as a reference.
<a name="tbl1" title="Table 1 FreeRTOS source files to include in the project"></a>
* * *
| File | Location |
|---------------------------------|------------------------------|
Expand All @@ -427,7 +442,7 @@ procedure to create a new project:
| All C and assembler files | FreeRTOS/Source/portable/\[compiler\]/\[architecture\] |
| *heap\_n.c* | *FreeRTOS/Source/portable/MemMang, where n is either 1, 2, 3, 4 or 5* |
*Table 1. FreeRTOS source files to include in the project*
*Table 1 FreeRTOS source files to include in the project*
* * *
**Note on heap memory:**
Expand Down Expand Up @@ -474,12 +489,14 @@ typedef used and the actual type:
tick counts greater than 32-bits. New designs should use `configTICK_TYPE_WIDTH_IN_BITS`
instead of `configUSE_16_BIT_TICKS`.
<a name="tbl2" title="Table 2 TickType_t data type and the configTICK_TYPE_WIDTH_IN_BITS configuration"></a>
* * *
| configTICK_TYPE_WIDTH_IN_BITS | 8-bit architectures | 16-bit architectures | 32-bit architectures | 64-bit architectures |
| configTICK\_TYPE\_WIDTH\_IN\_BITS | 8-bit architectures | 16-bit architectures | 32-bit architectures | 64-bit architectures |
| --- | --- | --- | --- | --- |
| TICK_TYPE_WIDTH_16_BITS | uint16_t | uint16_t | uint16_t | N/A |
| TICK_TYPE_WIDTH_32_BITS | uint32_t | uint32_t | uint32_t | N/A |
| TICK_TYPE_WIDTH_64_BITS | N/A | N/A | uint64_t | uint64_t |
| TICK\_TYPE\_WIDTH\_16_BITS | uint16\_t | uint16\_t | uint16\_t | N/A |
| TICK\_TYPE\_WIDTH\_32_BITS | uint32\_t | uint32\_t | uint32\_t | N/A |
| TICK\_TYPE\_WIDTH\_64_BITS | N/A | N/A | uint64\_t | uint64\_t |
*Table 2. TickType_t data type and the configTICK_TYPE_WIDTH_IN_BITS configuration*
* * *
Expand Down Expand Up @@ -534,6 +551,8 @@ Most macros are written in upper case, and prefixed with lower case
letters that indicate where the macro is defined. Table 3 provides a
list of prefixes.
<a name="tbl3" title="Table 3 Macro prefixes"></a>
* * *
| Prefix | Location of macro definition |
|----------------------------------------------|--------------------------------|
Expand All @@ -543,7 +562,7 @@ list of prefixes.
| config (for example, `configUSE_PREEMPTION`) | `FreeRTOSConfig.h` |
| err (for example, `errQUEUE_FULL`) | `projdefs.h` |
*Table 3. Macro prefixes*
*Table 3 Macro prefixes*
* * *
Note that the semaphore API is written almost entirely as a set of
Expand All @@ -552,6 +571,8 @@ macro naming convention.
The macros defined in Table 4 are used throughout the FreeRTOS source code.
<a name="tbl4" title="Table 4 Common macro definitions"></a>
* * *
| Macro | Value |
|--------------|-------|
Expand All @@ -560,7 +581,7 @@ The macros defined in Table 4 are used throughout the FreeRTOS source code.
| `pdPASS` | 1 |
| `pdFAIL` | 0 |
*Table 4. Common macro definitions*
*Table 4 Common macro definitions*
* * *
Expand All @@ -571,4 +592,3 @@ which differ in how and when they generate warnings. In particular,
different compilers want casting used in different ways. As a result,
the FreeRTOS source code contains more type casting than would normally
be warranted.

0 comments on commit 3a1e459

Please sign in to comment.