You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DeveloperAlpha 48b48663ce -u origin main 3 months ago
..
EIDE -u origin main 3 months ago
EWARM -u origin main 3 months ago
Inc -u origin main 3 months ago
MDK-ARM -u origin main 3 months ago
Src -u origin main 3 months ago
readme.txt -u origin main 3 months ago

readme.txt

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

================================================================================
                                样例使用说明
                             Sample Description
================================================================================
功能描述:
此样例演示了FreeRTOS信号量的相关API函数实现二值信号量、计数型信号量和互斥信号
量三种信号量实验通过串口log观察三种信号量的实现过程。

Function descriptions:
This sample demonstrates the relevant API functions of FreeRTOS signals to 
implement three kinds of signaling experiments: binary signals, counting-type 
signals and mutually exclusive signals, and observes the implementation process 
of the three kinds of signals through the serial port log.

================================================================================
测试环境:
测试用板PY32F403_STK
MDK版本5.28
IAR版本9.20
GCC版本GNU Arm Embedded Toolchain 10.3-2021.10

Test environment:
Test board: PY32F403_STK
MDK Version: 5.28
IAR Version: 9.20
GCC Version: GNU Arm Embedded Toolchain 10.3-2021.10

================================================================================
使用步骤:
1. 编译下载程序到MCU并运行
2. 通过串口调试助手打印的log信息观察任务执行过程。
3. 打开宏定义SEMAPHORE_BINRAY关闭SEMAPHORE_COUNT和SEMAPHORE_MUTEX。
   Task1: 任务每隔2s释放一次二值信号量。
   Task2: 获取二值信号量,打印获取成功信息。获取失败则进入等待状态。
   Task3: 删除任务3。
4. 打开宏定义SEMAPHORE_COUNT关闭SEMAPHORE_BINRAY和SEMAPHORE_MUTEX。
   Task1: 任务每隔2s释放一次计数型信号量。信号量总数加1。总数上限是50。
   Task2: 获取计数型信号量打印获取成功信息。信号量总数减1。
   Task3: 删除任务3。
5. 打开宏定义SEMAPHORE_MUTEX关闭SEMAPHORE_BINRAY和SEMAPHORE_COUNT。
   Task1: 任务每隔4s(3s delay延时 + 1s阻塞延时)获取和释放互斥信号量。
   Task2: 打印任务2运行log。
   Task3: 任务每隔1.5s(0.5s delay延时 + 1s阻塞延时)获取和释放互斥信号量。
   步骤5是为了验证实现互斥信号量优先级继承功能。

Example execution steps:
1. Compile and download the program to the MCU and run it;
2. You can use the log information printed by the serial debugging assistant to 
observe the task execution process.
3. Open the define SEMAPHORE_BINRAY, close SEMAPHORE_COUNT and SEMAPHORE_MUTEX.
   Task1: The task releases a binary semaphore every 2s.
   Task2: Get a binary semaphore and print a success message. If the acquisition
          fails, the system enters the waiting state.
   Task3: Delete Task 3.
4. Open the define SEMAPHORE_COUNT, close SEMAPHORE_BINRAY and SEMAPHORE_MUTEX.
   Task1: The task releases a counting semaphore every 2s. Add 1 to the total 
          number of semaphores. The total number is capped at 50.
   Task2: Obtain the counting semaphore and print the obtaining success message. 
          Subtract 1 from the total semaphore.
   Task3: Delete Task 3.
5. Open the define SEMAPHORE_MUTEX, close SEMAPHORE_BINRAY and SEMAPHORE_COUNT.
   Task1: The task obtains and releases mutually exclusive semaphore every 4s
          (3s delay + 1s blocking delay).
   Task2: Print Task 2 Run log.
   Task3: The task acquires and releases mutually exclusive semaphore every 
          1.5s(0.5s delay + 1s blocking delay).
   Step 5: Is to verify the implementation of the MUtex priority inheritance 
           function.

================================================================================
注意事项:
STK板与USB转TTL模块的连线方式如下
STK板        USB转TTL模块
PA02(TX) --> RX
PA03(RX) --> TX
GND      --> GND
波特率: 115200bps

Notes:
The STK board is wired to the USB to TTL module as follows:
STK board    USB to TTL module
PA02(TX) --> RX
PA03(RX) --> TX
GND      --> GND
Baud rate: 115200bps
================================================================================