MCUXpresso_MIMXRT1052xxxxB/boards/evkbimxrt1050/freertos_examples/freertos_mutex
Yilin Sun 6baf4427ce
Updated to v2.15.000
Signed-off-by: Yilin Sun <imi415@imi.moe>
2024-03-18 23:15:10 +08:00
..
armgcc Updated to v2.15.000 2024-03-18 23:15:10 +08:00
FreeRTOSConfig.h Updated to v2.14.0 2023-11-30 20:55:00 +08:00
board.c Updated to v2.15.000 2024-03-18 23:15:10 +08:00
board.h Updated to v2.15.000 2024-03-18 23:15:10 +08:00
clock_config.c Updated to v2.14.0 2023-11-30 20:55:00 +08:00
clock_config.h Updated to v2.14.0 2023-11-30 20:55:00 +08:00
dcd.c Updated to v2.14.0 2023-11-30 20:55:00 +08:00
dcd.h Updated to v2.14.0 2023-11-30 20:55:00 +08:00
evkbimxrt1050_sdram_init.jlinkscript Updated to v2.14.0 2023-11-30 20:55:00 +08:00
freertos_mutex.c Updated to v2.14.0 2023-11-30 20:55:00 +08:00
freertos_mutex_v3_14.xml Updated to v2.15.000 2024-03-18 23:15:10 +08:00
pin_mux.c Updated to v2.14.0 2023-11-30 20:55:00 +08:00
pin_mux.h Updated to v2.14.0 2023-11-30 20:55:00 +08:00
readme.md Updated to v2.15.000 2024-03-18 23:15:10 +08:00

readme.md

Overview

This document explains the freertos_mutex example. It shows how mutex manage access to common resource (terminal output).

The example application creates two identical instances of write_task. Each task will lock the mutex before printing and unlock it after printing to ensure that the outputs from tasks are not mixed together.

The test_task accept output message during creation as function parameter. Output message have two parts. If xMutex is unlocked, the write_task_1 acquire xMutex and print first part of message. Then rescheduling is performed. In this moment scheduler check if some other task could run, but second task write_task+_2 is blocked because xMutex is already locked by first write task. The first write_task_1 continue from last point by printing of second message part. Finaly the xMutex is unlocked and second instance of write_task_2 is executed.

SDK version

  • Version: 2.15.000

Toolchain supported

  • IAR embedded Workbench 9.40.1
  • GCC ARM Embedded 12.2
  • Keil MDK 5.38.1
  • MCUXpresso 11.8.0

Hardware requirements

  • Mini/micro USB cable
  • EVKB-IMXRT1050 board
  • Personal Computer

Board settings

No special settings are required.

Prepare the Demo

  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.
  2. Open a serial terminal with the following settings:
    • 115200 baud rate
    • 8 data bits
    • No parity
    • One stop bit
    • No flow control
  3. Download the program to the target board.
  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the demo. Running the demo ================ After the board is flashed the Tera Term will start periodically printing strings synchronized by mutex.

Example output: "ABCD | EFGH" "1234 | 5678" "ABCD | EFGH" "1234 | 5678"