# FreeRTOS-学习-1 **Repository Path**: linsen06/free-rtos-learning-1 ## Basic Information - **Project Name**: FreeRTOS-学习-1 - **Description**: FreeRTOS-学习笔记 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-07-05 - **Last Updated**: 2022-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Cube配置freertos--笔记一 笔记一:点灯、调试 https://gitee.com/linsen06/free-rtos-learning-1 笔记二: 笔记三: 笔记四: > 笔记一文件下载地址 链接:https://pan.baidu.com/s/14kjf1PvEOrn2SMs-gEyneA 提取码:0000 **一、点灯** 1.在sys的配置中选择的定时器要改为其他: ![输入图片说明](1.png) 2.随后在freertos中我们选择这个架构: ![输入图片说明](2.png) V2.00可兼容的CPU多,但是代码量更大了,所以我们直接选择V1.00 3.接着就可以选择任务了Tasks and Queues(任务和队列),随后我们选择这个任务卡: ![输入图片说明](3.png) ![输入图片说明](4.png) 其中的选项一般为默认,我们只要更改任务名称、任务入口函数就可以了, ![输入图片说明](5.png) 我们生成代码以后就可以看见任务函数了。我们只需要在框里面写对应的任务就可以来调度了。 我们来实现一下简单的闪灯: ![输入图片说明](6.png) ![输入图片说明](7.png) **二、调试观察系统资源的分配** 1.在上个程序的基础上在cube中配置,为了得到系统的资源配置,需要一个定时器去监测他,为了能够监测准确我们需要把这个定时器配置到20khz左右。 ![输入图片说明](8.png) 2.还需要开启中断。 ![输入图片说明](9.png) 3.将这三个启用,用于监控。 4.随后在任务卡中加入工程: ![输入图片说明](10.png) 5.再配置一下usart这样可以用于打印, 6.我们在主函数中开启中断 ![输入图片说明](11.png) ![输入图片说明](12.png) 7.定义一个变量用来计数,中断里面加一 ![输入图片说明](13.png) 8.在freertos里面声明一下外部变量 ![输入图片说明](14.png) ![输入图片说明](15.png) 9.随后我们就可以写任务了 ![输入图片说明](16.png) ``` void print_cpu_runinfo_task(void const * argument) { /* USER CODE BEGIN print_cpu_runinfo_task */ /* Infinite loop */ uint8_t CPU_RunInfo[500]; for(;;) { vTaskList((char*)&CPU_RunInfo); printf("--------------------------------\r\n"); printf("任务名 任务状态 优先级 剩余栈 任务序号\r\n"); printf("%s",CPU_RunInfo); printf("--------------------------------\r\n"); vTaskGetRunTimeStats((char*)&CPU_RunInfo); printf("--------------------------------\r\n"); printf("任务名 运行计数 利用率\r\n"); printf("%s",CPU_RunInfo); printf("--------------------------------\r\n"); osDelay(1000); } /* USER CODE END print_cpu_runinfo_task */ } ``` 10.这样我们就可以看见cpu的占用率了。 ![输入图片说明](17.png)