freertos
文章平均质量分 80
烹小鲜啊
这个作者很懒,什么都没留下…
展开
-
STM32 深入串口通信UART
STM32串口通信(STM32F103/STM32F407)1.GPIO引脚复用AF机制2.模块Clock时钟树,使能机制。(低功耗)3.UART串口通信机制4.NVIC中断配置机制选择USART RX TX 引脚GPIO 口复用 机制微控制器 I/O 引脚通过一个复用器连接到板载外设/模块,该复用器一次仅允许一个外设的复用功能 (AF) 连接到 I/O 引脚。这可以确保共用同一个 I/O 引脚的外设之间不会发生冲突。进行配置:● 完成复位后,所有 I/O 都会连接到系统的复用功能原创 2021-12-11 21:01:51 · 3110 阅读 · 0 评论 -
Freertos Trace任务可视化分析(三)互斥量 SystemView
SystemView 记录Trace通过Event进行事件记录。举个简单的例子prvAddCurrentTaskToDelayedList函数中traceMOVED_TASK_TO_DELAYED_LIST();Freertos内核代码中有很多traceXXX的函数,SystemView重新定义这些函数。SEGGER_SYSVIEW_FreeRTOS.h#define traceMOVED_TASK_TO_DELAYED_LIST() SEGGER_SYSVIEW_OnTas原创 2021-12-04 19:51:35 · 1023 阅读 · 0 评论 -
Freertos 任务Trace可视化分析(二) Segger SystemView
Freertos下的trace 在上一篇中提到了Tracealyzer,它是一个商业化的软件,没有用于非商业用途的版本对于个人学习来说确实比较头疼。好在Segger 公司(就是做J-link的公司)有一个 非商用免费的SystemView。https://www.segger.com/products/development-tools/systemview/所需要的代码包 (https://download.csdn.net/download/denghuajing/54211480)这个工程例原创 2021-12-02 20:40:16 · 1912 阅读 · 0 评论 -
freertos 任务通知和事件组
任务通知本质是操作在任务控制块中数据。在任务创建阶段,就已经申请好任务通知的数据空间。分为Value,state为一组。例如index 0,Value值和状态。状态有三种。分别为不在等待,在等待,已接收。该种方法优点非常明显就是,不再使用额外的空间,利用任务控制块指针直接进行写值操作。所以通知必须要给到特定的任务,已对应其指针。对任务的空间具有入侵性。/* Values that can be assigned to the ucNotifyState member of the TCB. */#d.原创 2021-12-02 11:24:40 · 526 阅读 · 0 评论 -
Freertos 操作系统trace可视化分析(一) 提供打包代码
TracealyzerPercepio Tracealyzer是一个强大的工具,可以在运行时跟踪和可视化分析RTOS系统。超过30种视图,对系统的实时行为提供了惊人洞察力,加速了应用的调试、验证和系统性能优化的过程。使用Tracealyzer,可以查看到系统的真实运行情况,为开发人员节省排除错误的时间。Tracealyzer由PC应用程序和跟踪组件组成,Percepio提供了跟踪记录库(Trace Recorder library),支持多个RTOS,未来还计划支持裸机系统。使用Tracealyzer原创 2021-11-29 16:59:34 · 2116 阅读 · 0 评论 -
STM32CubeMX配置freertos配置任务(一)
使用STM32CubeMX 配置Freertos 生成一个任务点亮LEDstm32cubemxSTM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用。STM32CubeMX几乎覆盖了STM32 全系列芯片。1.新建项目文件2.本例子需要使用到的外设只有GPIO点亮LEDLED端口为PC13 ,点击PC13选择GPIO_OUTPUT配置GPIO端口为输出。3.配置Freerto原创 2021-11-29 16:47:45 · 4623 阅读 · 0 评论 -
Freertos 任务(二)调度器设计和上下文切换
Freertos 调度器的设定和处理器的架构联系非常紧密所以这部分的内容属于移植层,以ARM cortex-M3为例FreeRTOS-Kernel-10.4.6\portable\GCC\ARM_CM3调度器设计的功能有两个,围绕调度1:调度,完成调度这个动作,也就上下文切换2:调度策略, 该怎么调度好调度器本身也是一段在处理器上的代码,为了让它保持对处理器的控制权,只要控制了CPU才能对CPU上的任务进行调度。简单说就是 这个CPU我说的算。设计嵌入式系统根据需求,实时性有时是摆在第一位的,所原创 2021-11-22 16:07:09 · 531 阅读 · 0 评论 -
Freertos 任务TASK(一) 任务创建
任务的创建栈的初始化,入上图所示。初始化的目的有二:1.确定当前TOP指针位置2.任务创建完成后,一下次上下文切换,栈中的内容会填入到CPU。填入哪些数据,这时候确定以ARM架构ARM_CM3 为例 pxPortInitialiseStack()\portable\GCC\ARM_CM3_MPUStackType_t * pxPortInitialiseStack( StackType_t * pxTopOfStack,原创 2021-11-21 16:34:21 · 1229 阅读 · 0 评论 -
Freertos Cortex-M3上下文切换
上下文切换是操作系统实现虚拟化的核心功能,操作系统对任务的管理通过上下文切换完成。Freertos 在STM32F103上的上下文切换是本文介绍的内容。STM32F103 采用 Cortex-M3 内核 。上下文切换的本质是对现场的保护和恢复现场,切换 CPU的运行环境。上下文切换的触发来源于调度器,调度器根据复杂智能的调度算法来判断,是否要进行上下文切换。这换意味着一个任务被‘暂停’,任务中所做的事情都会被暂停。1.调度器的优先级Freertos 调度器本身的周期性运行是靠一个时间定时器syst原创 2021-11-20 21:04:51 · 5043 阅读 · 0 评论 -
Freertos 源码分析 队列queue
队列queue(零) 队列的基础概念和形态(一)Freertos 队列queue.cFreeRTOS-Kernel-10.4.6\include\queue.hFreertos队列模块包含两个文件queue.c、 queue.hqueue.h 中列举了 队列的API和说明包括如何使用API的例子,可以说是非常详细了。包含每个API的参数如果仅仅是要使用队列,看h文档的说明已经足够队列的创建 * Example usage: * @code{c} * struct AMessage原创 2021-11-18 22:41:55 · 1024 阅读 · 0 评论 -
freertos 虚拟/仿真Windows环境搭建
FreeRTOS 嵌入式实时系统的Windows环境下脱离实体硬件虚拟运行环境的搭建手头没有嵌入式开发板又要继续Freertos的开发和学习怎么办?Freertos官方网站https://freertos.org/点击上图所示的Windows simulatorhttps://freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html文中会有一些基本的注意事项。阅读玩本文后可原创 2021-11-18 15:52:46 · 4543 阅读 · 0 评论 -
freertos 源码解读 list链表图解
FreeRTOS 链表结构FreeRTOS 链表的结构分解一)链表的 元素/节点/Itemstruct xLIST_ITEM{ listFIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE /*< Set to a known value if configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ configLIST_VOLATILE TickType_t xItemValue; /*< T原创 2021-11-16 21:53:06 · 993 阅读 · 0 评论