[ ]
Real time embedded FreeRTOS mailing list 
Homepage FreeRTOS Labs FreeRTOS+TCP FreeRTOS+FAT FreeRTOS+POSIX Contact / Enquiries


FreeRTOS+POSIX is still in the lab

FreeRTOS+POSIX is provided under the MIT open source license by Amazon Web Services.

We encourage you to give FreeRTOS+POSIX a try, but please be aware when doing so that the code is still in the lab, which means we have not yet completed our review and test quality control processes. Please use the forum for support, or contact us directly if you have a specific business interest.

FreeRTOS+POSIX
Portable Operating System Interface (POSIX threading wrapper) for FreeRTOS


On this page:

  1. Introduction
  2. Pre-configured example project
  3. Supported features
  4. FreeRTOS+POSIX source code organisation
  5. Dependencies
  6. Developer references and API documentation
  7. Porting
  8. Code Size


Introduction

The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. FreeRTOS+POSIX implements a subset of the POSIX threading API.

With FreeRTOS+POSIX, an existing POSIX threading compliant application can be ported to run on the FreeRTOS kernel, and therefor leverage all the Amazon FreeRTOS functionality. Additionally, a library designed for use with POSIX threading compatible operating systems can be ported to FreeRTOS kernel based applications.

FreeRTOS Architecture Description
Location of FreeRTOS+POSIX when used with Amazon FreeRTOS libraries


Example Pre-configure Project

Please see the FreeRTOS+POSIX Pre-configured Example documentation page.


Currently Supported Features

FreeRTOS+POSIX partially implements IEEE Std 1003.1-2017 Edition The Open Group Technical Standard Base Specifications, Issue 7. FreeRTOS+POSIX includes implementations for the following POSIX threading header files - please refer to the FreeRTOS+POSIX API documentation for specifics on the features supported within each header file:
  • errno.h
  • fcntl.h
  • mqueue.h
  • pthread.h
  • sched.h
  • semaphore.h
  • signal.h
  • sys/types.h
  • time.h
  • unistd.h
  • utils.h


FreeRTOS+POSIX Source Code Organisation

Porting related headers and implementation source code


/lib/FreeRTOS-Plus-POSIX
        |-- include
        |   |
        |   +- FreeRTOS_POSIX.h
        |   +- FreeRTOS_POSIX_internal.h
        |   +- portable
        |        |
        |        +- [target]
        |        |    |
        |        |    +- [development board]
        |        |            |
        |        |            +- FreeRTOS_POSIX_portable.h
        |        |
        |        +- FreeRTOS_POSIX_portable_default.h
        |
        +- source
            +- FreeRTOS_POSIX_clock.c
            +- FreeRTOS_POSIX_mqueue.c
            +- FreeRTOS_POSIX_pthread_barrier.c
            +- FreeRTOS_POSIX_pthread.c
            +- FreeRTOS_POSIX_pthread_cond.c
            +- FreeRTOS_POSIX_pthread_mutex.c
            +- FreeRTOS_POSIX_sched.c
            +- FreeRTOS_POSIX_semaphore.c
            +- FreeRTOS_POSIX_timer.c
            +- FreeRTOS_POSIX_unistd.c
            +- FreeRTOS_POSIX_utils.c

FreeRTOS+POSIX headers


	/lib/include/FreeRTOS_POSIX
                    +- errno.h
                    +- fcntl.h
                    +- mqueue.h
                    +- pthread.h
                    +- sched.h
                    +- semaphore.h
                    +- signal.h
                    +- sys
                    |    |
                    |    +- types.h
                    |
                    +- time.h
                    +- unistd.h
                    +- utils.h


Dependencies

Both configUSE_POSIX_ERRNO and configUSE_APPLICATION_TASK_TAG must be set to 1 in FreeRTOSConfig.h.


Developer References and API Documents

Please refer to the reference material (links to Doxygen output).


Porting

Porting Related Header Files

FreeRTOS platform specific POSIX configuration
High Level Description
/lib/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX.h This header file brings in dependencies required by FreeRTOS+POSIX. This file must be included before all other FreeRTOS+POSIX includes.
/lib/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_internal.h FreeRTOS+POSIX internal structs and initializers. Users are not suggested to touch this file.
/lib/FreeRTOS-Plus-POSIX/include/FreeRTOS_POSIX_portable_default.h Defaults for FreeRTOS+POSIX port-specific configuration options.
/lib/FreeRTOS-Plus-POSIX/include/portable/[vendor-directory]/FreeRTOS_POSIX_portable.h Port-specific configuration overwrite of FreeRTOS+POSIX. As an example, /lib/FreeRTOS-Plus-POSIX/include/portable/pc/windows/FreeRTOS_POSIX_portable.h, Windows simulator uses the defaults, thus does not need to overwrite anything.


FreeRTOS+POSIX Include Paths

/lib/FreeRTOS-Plus-POSIX/include
/lib/FreeRTOS-Plus-POSIX/source
/lib/include/FreeRTOS_POSIX/
Note that a project only needs platform specific header from this path /lib/FreeRTOS-Plus-POSIX/include/portable.


Code Size

Code Size (Compiled with ARM Code Generation Tools (CGT), --silicon_version 7M4)
File
Optimisation off, in Byte
Optimisation on, in Byte
(--opt_level 0 --opt_for_speed 0)
FreeRTOS_POSIX_clock.c
1822
1156
FreeRTOS_POSIX_mqueue.c
3350
2460
FreeRTOS_POSIX_pthread_barrier.c
1658
1072
FreeRTOS_POSIX_pthread.c
2234
1436
FreeRTOS_POSIX_pthread_cond.c
1876
1252
FreeRTOS_POSIX_pthread_mutex.c
2046
1300
FreeRTOS_POSIX_sched.c
1338
844
FreeRTOS_POSIX_semaphore.c
1678
1092
FreeRTOS_POSIX_timer.c
2210
1556
FreeRTOS_POSIX_unistd.c
1390
884
FreeRTOS_POSIX_utils.c
2142
1444
Total
21744
14496


[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ FreeRTOS Labs Sitemap ]    [ Main FreeRTOS Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.