在进行FreeRTOS任务切换的介绍前,我们先来了解一下SVC和PendSV。 SVC和PendSV SVC(系统服务调用,亦简称系统调用)和 PendSV(可悬起系统调用),它们多用于在操作系统之上的软件开发中。SVC用于产生系统函数调用的请求。操作系统不让用户直接访问硬件,而是通过提供一些系统服 ...
第十八章 machine.Timer类实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+ ...
目录vTaskStartScheduler() 函数xPortStartScheduler() 函数prvStartFirstTask() 函数vPortSVCHandler() 函数 FreeRTOS的任务开始运行的前提是调用了启动调度器函数 vTaskStartScheduler() ,只有调用 ...
目录prvIdleTask()函数prvCheckTasksWaitingTermination() 函数prvGetExpectedIdleTime() 函数 以下源码为FreeRTOS v9.0.0版本,不同版本源码可能会有所区别,但实现的逻辑差不多。 需要空闲任务的原因:处理器总是需要代码来执 ...
导读 还是要先看官方手册. 学过DMA的同志可能比较好理解,一句话, 释放CPU总线 : 如果把应用程序执行的整个过程进行进一步分析,可以看到,当程序访问 I/O 外设或睡眠时,其实是不需要占用处理器的,于是我们可以把应用程序在不同时间段的执行过程分为两类,占用处理器执行有效任务的计算阶段和不必占用 ...
目录函数 vTaskSuspend()函数 vTaskSwitchContext()函数 vTaskResume()函数 xTaskResumeFromISR() 以下FreeRTOS源码函数使用的版本是9.0.0,不同版本的源码会有部分不同如10.4.6,注意甑别。 挂起和恢复任务相关 API 函 ...
目录函数 vTaskDelete()函数prvDeleteTCB()总结 函数 vTaskDelete() 此函数用于删除已被创建的任务,被删除的任务将从就绪态任务列表、阻塞态任务列表、挂起态任务列表和事件列表中移除,要注意的是,空闲任务会负责释放被删除任务中由系统分配的内存,但是由用户在任务删除前 ...
目录函数 xTaskCreate()函数 prvInitialiseNewTask()函数 pxPortInitialiseStack()函数 prvAddNewTaskToReadyList()总结 函数 xTaskCreate() 此函数用于使用动态的方式创建任务,任务的任务控制块以及任务的栈空 ...
目录中断优先级分组三个系统中断优先级配置寄存器SHPR1SHPR2SHPR3三个中断屏蔽寄存器PRIMASKFAULTMASKBASEPRI 中断优先级分组 ARM Cortex-M 内核的 MCU 具有一个用于中断管理的嵌套向量中断控制器(NVIC,全称:Nested vectored inter ...
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 思考 上一节我们也提到了关于多道程序的放置和加载问题的事情.对比上一章的加载,我们需要把所有的APP全部都 ...
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 导读 这里就是第三章的开头了,由于我的巨菜,导致天天半天理解不了关键点所在,唉,实在是太折磨人. 遵照上一 ...
最近使用合宙air780E通过gpio口直驱ws2812b灯带,使用luatos开发,系统自带外设库 sensor.ws2812b(pin,data,T0H,T0L,T1H,T1L) 详细接口文档见官方文档:luatos接口外设库文档 上测试代码: --led灯条展示 local this = {} ...
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 编程题 实现一个裸机应用程序A,能打印调用栈 首先在这里卡了我很久的是调用栈保存在哪里,回想到上一部分画的 ...
第十六章 machine模块实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地 ...
写在前面 本随笔是非常菜的菜鸡写的。如有问题请及时提出。 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 批处理操作系统的启动和运行流程 要想把本章实现的那些模块全部都串联在一起以实现运行一个批处理操作系统,回顾 ...
目录GPIO简介GPIO主要特性GPIO功能描述I/O 端口位的基本结构 以下是基于STM32F4xx中文参考手册进一步的手册内容分析,作为自身学习过程的记录。如您是初学者并且对手册描述的内容感到一知半解,您可以参考以下部分内容并结合您自身的见解加深对相关内容的理解。若是大佬们看到内容有误导方向的, ...
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是MCUXpresso IDE下在线联合调试i.MXRT1170双核工程的三种方法。 两年前痞子衡写过一篇《i.MXRT1170下在线联合调试双核工程的三种方法(IAR篇)》,那篇文章详细介绍了 IAR 下调试 RT1170 双核工程的几 ...
如何在Linux上构建Raspberry Pi虚拟环境 下面我们来讲讲如何使用QEMU来仿照树莓派环境。这里首先先分成两大类。第一类是跑比较老的,安全性较低的老树莓派,主要指代的是22年4月份发布之前的版本,这个版本当中,树莓派镜像自己内部就配置了一份默认的账户密码。对于之后的版本则不配备这种默 ...
第十五章 按键中断实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:htt ...
SPI是嵌入式中使用比较广泛的协议之一,本文从该协议的原理入手对其进行了详细介绍,并结合STM32F103ZET主控芯片对其进行了说明,最后给出了两个实例代码demo供大家做参考。 ...