FreeRTOS学习笔记
文章平均质量分 93
嵌入式@hxydj
这个作者很懒,什么都没留下…
展开
-
STM32F407+LWIP+DP83848以太网驱动移植
最近有个项目上需要用到网络功能,于是开始移植网络相关代码。在移植的过程中感觉好难,网上找各种资料都没有和自己项目符合的,移植废了废了好的大劲。不过现在回头看看,其实移植很简单,主要是当时刚开始接触网络,各种新的知识和概念扑面而来,加上LWIP这个协议的相关资料,一下接触的太多,大脑已经混乱了。所以就感觉很难,当各种逻辑梳理清楚的时候,移植起来就很简单了。原创 2023-05-20 14:10:32 · 6057 阅读 · 4 评论 -
嵌入式代码查看分析利器---Understand
平时在开发嵌入式程序的时候大多数使用的都是keil软件,一般小的工程使用keil没感觉到有什么问题,但是当工程比较大的时候,比如移植了FreeRTOS系统或者LWIP网络系统时,代码全部编译一次就要花费很长世间,特别是开启了点击函数右键跳转的功能之后,速度更加慢。通过上面这个6种功能,可以对main函数和其他函数的调用关系进行各种方式的分析,让我们对这个工程代码能进一步的深入了解。如果想进一步了解这个函数的其他信息,可以在这个函数上单机鼠标右键,在属性中查看,这里就不再一一列举了。原创 2023-04-29 13:16:01 · 10275 阅读 · 18 评论 -
STM32系列单片机标准库移植FreeRTOS V10.4.6详解
最近看正点原子新录制了手把手教你学FreeRTOS的视频教程,看了一下教程发现视频里面讲的是使用HAL移植 FreeRTOS V10.4.6 版本,以前的标准库移植的是FreeRTOS V9.0 版本。而自己平时写代码使用的都是标准库,就想着能不能把FreeRTOS V10.4.6 版移植到标准库中去。为了移植简单,直接下载正点原子的代码在上面修改。原创 2023-01-07 15:48:46 · 4870 阅读 · 4 评论 -
FreeRTOS学习笔记---动态创建任务 xTaskCreate() 源码分析
# xTaskCreate动态任务创建## 为任务堆栈申请内存### pvPortMalloc()## 为任务控制块申请内存### pvPortMalloc()## 初始化任务控制块中任务堆栈## 如果任务控制块内存申请失败,则释放前面申请的内存### vPortFree()## 通过prvInitialiseNewTask()初始化任务### prvInitialiseNewTask()## 通过prvAddNewTaskToReadyList()将新创建的任务添原创 2020-09-27 13:45:50 · 3284 阅读 · 7 评论 -
FreeRTOS学习笔记---任务控制块源码分析
#define portSTACK_TYPE uint32_t#define portBASE_TYPE longtypedef portSTACK_TYPE StackType_t;typedef long BaseType_t;typedef unsigned long UBaseType_t;typedef BaseType_t (*TaskHookFunction_t)( void * );/* * 任务控制块。 任务控制块(TCB)为每个任务分配,并存储任务状态信息,包括指向任务上.原创 2020-09-23 14:47:31 · 1711 阅读 · 3 评论 -
FreeRTOS+STM32F103中断中发送任务通知单片机死机问题
最近在调试FreeRTOS系统遇到了一个比较奇怪的问题,在STM32F103最小系统上调试任务通知模拟事件标志组功能时,中断一触发,单片机就会死机。通过查询方式发生任务通知没任何问题,一旦用按键触发外部中断,在中断中发送任务通知时,单片机就死机。在编译时程序无任何报错。相关代码如下:#include "sys.h"#include "delay.h"#include "usart.h"#...原创 2019-11-21 10:18:59 · 3031 阅读 · 9 评论 -
FreeRTOS+STM32F103串口通信错误解决方法
在调试FreeRTOS系统时,在串口中断中用队列存储数据,然后再定时器中断中用队列接收数据,并通过串口打印出来。在调试代码中编译器报错。在网上搜索之后,找到了一个解决方法。在usart.c文件中添加以下代码,可以解决这个问题。//__use_no_semihosting was requested, but _ttywrch was_ttywrch(int ch){ ch = c...原创 2019-11-13 17:08:20 · 2238 阅读 · 0 评论 -
FreeRTOS中列表和列表项插入函数分析
在学习FreeRTOS的过程中,看到列表和列表项插入的时候,对于列表插入函数vListInsert(),理解起来感觉比较费劲。于是对照函数画个示意图,帮助理解。先看看列表插入函数代码。void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ){ ListItem_t *pxIterator;...原创 2019-11-06 17:02:44 · 1589 阅读 · 1 评论