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.
|
|
3 months ago | |
|---|---|---|
| .. | ||
| EIDE | 3 months ago | |
| EWARM | 3 months ago | |
| Inc | 3 months ago | |
| MDK-ARM | 3 months ago | |
| Src | 3 months ago | |
| readme.txt | 3 months ago | |
readme.txt
================================================================================
样例使用说明
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
================================================================================