模板下载:
V7-FreeRTOS程序模板(含MDK和IAR).rar (4.30MB)
1、MDK使用MDK5.26及其以上版本。
2、IAR使用IAR8.30及其以上版本。
3、教程直可以先看之前发布的,除了新增的一些功能,其它功能基本没区别:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17658
/*
*********************************************************************************************************
*
* 模块名称 : 主程序模块。
* 文件名称 : main.c
* 版 本 : V1.0
* 说 明 : 本实验主要学习FreeRTOS的串口调试方法(打印任务执行情况)
* 实验目的:
* 1. 学习FreeRTOS的串口调试方法(打印任务执行情况)。
* 2. 为了获取FreeRTOS任务的执行情况,需要执行如下三个操作
* a. 在FreeRTOSConfig.h文件中使能如下宏
* #define configUSE_TRACE_FACILITY 1
* #define configGENERATE_RUN_TIME_STATS 1
* #define configUSE_STATS_FORMATTING_FUNCTIONS 1
* #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() (ulHighFrequencyTimerTicks = 0ul)
* #define portGET_RUN_TIME_COUNTER_VALUE() ulHighFrequencyTimerTicks
* b. 创建一个定时器,这个定时器的时间基准精度要高于系统时钟节拍,这样得到的任务信息才准确。
* c. 调用函数vTaskList和vTaskGetRunTimeStats即可获取任务任务的执行情况。
* 实验内容:
* 1. 按下按键K1可以通过串口打印任务执行情况(波特率115200,数据位8,奇偶校验位无,停止位1)
* =================================================
* 任务名 任务状态 优先级 剩余栈 任务序号
* vTaskUserIF R 1 318 1
* IDLE R 0 118 5
* vTaskLED B 2 490 2
* vTaskMsgPro B 3 490 3
* vTaskStart B 4 490 4
*
* 任务名 运行计数 使用率
* vTaskUserIF 467 <1%
* IDLE 126495 99%
* vTaskMsgPro 1 <1%
* vTaskStart 639 <1%
* vTaskLED 0 <1%
* 串口软件建议使用SecureCRT(V7光盘里面有此软件)查看打印信息。
* 各个任务实现的功能如下:
* vTaskTaskUserIF 任务: 接口消息处理
* vTaskLED 任务: LED闪烁
* vTaskMsgPro 任务: 消息处理,这里是用作LED闪烁
* vTaskStart 任务: 启动任务,也就是最高优先级任务,这里实现按键扫描
* 2. 任务运行状态的定义如下,跟上面串口打印字母B, R, D, S对应:
* #define tskBLOCKED_CHAR ( 'B' ) 阻塞
* #define tskREADY_CHAR ( 'R' ) 就绪
* #define tskDELETED_CHAR ( 'D' ) 删除
* #define tskSUSPENDED_CHAR ( 'S' ) 挂起
* #define tskRUNNING_CHAR ( 'X' ) 运行
* 注意事项:
* 1. 本实验推荐使用串口软件SecureCRT,要不串口打印效果不整齐。此软件在
* V7开发板光盘里面有。
* 2. 务必将编辑器的缩进参数和TAB设置为4来阅读本文件,要不代码显示不整齐。
*
* 修改记录 :
* 版本号 日期 作者 说明
* V1.0 2019-05-02 Eric2013 1. ST固件库到V1.3.0版本
* 2. BSP驱动包V1.2
* 3. FreeRTOS版本V10.2.0
*
* Copyright (C), 2019-2030, 安富莱电子 www.armfly.com
*
*********************************************************************************************************
*/ |