FreeRTOS-启动第一个任务

2023-05-16

FreeRTOS开始第一个任务源码分析 vTaskStartScheduler:
1.创建一个空任务:优先级为0
2.是否使用软件定时器,是的话 创建软件定时器
3.关闭中断(关中断操作的寄存器是BASEPRI,开中断在SVC中断服务函数中开启)
4.初始化静态全局变量(xNextTaskUnblockTime\xSchedulerRunning\xTickCount)
5.初始化跟内核有关的硬件:xPortStartScheduler
    xPortStartScheduler:
    1.设置PENDSV 和 SYSTICK的中断为最低优先级==》怎样设置:(优先级分组)
        portNVIC_SYSPRI2_REG |= portNVIC_PENDSV_PRI;
        portNVIC_SYSPRI2_REG |= portNVIC_SYSTICK_PRI;

    2.配置systick=》怎样配置的?中断周期、使能【看systick寄存器】
        portNVIC_SYSTICK_LOAD_REG = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
        portNVIC_SYSTICK_CTRL_REG = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
    3.如果MCU有FPU,使能FPU=》【权威指南 13.2】
    4.开启惰性压栈,跟FPU有关【权威指南13.2.6】
    5.开启第一个任务
        prvStartFirstTask
        1.获取MSP的初始值
        2.关中断操
        3.调用SVC 0,【引起SVC中断,进入SVC中断服务函数】【只有开启第一个任务才会引起SVC异常,其他不会】
        4.进入线程模式,使用PSP。PSP=>进程栈,MSP=》主堆栈【权威指南】
        5.跳转PC指针

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FreeRTOS-启动第一个任务 的相关文章

  • 网络管理员比赛回顾02-网关、静态路由、动态路由

    目录 一 配置网关 二 配置静态路由 三 配置动态路由 3 1 使用RIP协议配置动态路由 3 2 使用OSPF协议配置动态路由 2021年9月参加青年网络管理员比赛 xff0c 因为网管超龄不能按照 青年 参赛 xff0c 临时培训我们这
  • 网络管理员比赛回顾03-单臂路由

    三层交换机sw1配置 xff0c 划分三个vlan xff0c 3个接入端口分别允许各自vlan通过 xff0c 一个骨干端口允许所有vlan通过 lt Huawei gt undo terminal monitor lt Huawei g
  • SAP创建webservice

    目录 一 创建webservice 二 更改webservice 三 SoapUI测试webservice 四 查看webservice日志及排错 一 创建webservice 以用户相关的函数User为例创建webservice xff0
  • SAP事务码f-02做账界面显示“页数”字段

    事务码 f 02 做账界面 xff0c 没有显示页数 用户账号的参数添加 CSF xff08 Country Specific Fields xff09 参数 xff0c 参数值为 CN xff08 伟大的China xff09 再次来到
  • 网络管理员比赛回顾04-DHCP

    目录 一 DHCP的配置 二 DHCP中继 2021年9月参加青年网络管理员比赛 xff0c 因为网管超龄不能按照 青年 参赛 xff0c 临时培训我们这批 青年 参赛 xff0c 回顾一下经过以及学到的技能 本节回顾DHCP 一 DHCP
  • SNMP服务配置

    由于服务器账号密码要定期更改 xff0c 监控服务器一般不应使用可登录的账号 xff0c 而应该使用SNMP协议获取服务器信息 记录一下CentOS 7配置SNMPv3服务的过程 安装SNMP服务 yum install net snmp
  • zabbix-agent安装

    最近新上了zabbix监控 xff0c 记录部署过程 一 Linux上安装 修改yum源配置 vim etc yum repos d lt your repo gt zabbix name 61 zabbix baseurl 61 http
  • SublimeText + Anaconda插件 打造 Python IDE

    目录 一 安装anaconda插件 二 创建构建环境 三 快捷键 自己尝试了SublimeText 43 Anaconda插件 xff0c 打造 Python IDE的方案是可行的 xff0c 记录配置过程 安装SublimeText的过程
  • 在Ubuntu22.4下搭建pytorch深度学习环境

    Anacnda安装 xff1a 这个在其他地方搜索 xff0c 可以搜到参考oknacUbuntu下安装Anaconda的步骤 xff08 带图 xff09 知乎 安装完毕source bashrc进入base环境 xff0c conda
  • leetcode算法题-两数之和

    解法一 xff1a 哈希表 class Solution def twoSum self nums List int target int gt List int hashmap 61 for ind num in enumerate nu
  • python 求列表中出现频率最高的元素

    def count l1 list return max set l1 key l1 count max set list key 61 list count 函数会根据关键词参数key 61 list count所指定带有一个参数的函数
  • 算法python回文数数学法

    class Solution def isPalindrome self x int gt bool if x lt 0 or x 10 61 61 0 and x 61 0 return False y 61 0 t 61 x while
  • MapReduce程序开发

    通过API操作之前要先了解几个基本知识 基本数据类型 Hadoop的基本数据类型和Java的基本数据类型是不一样的 xff0c 但是都存在对应的关系 如下图 如果需要定义自己的数据类型 xff0c 则必须实现Writable hadoop的
  • Jetson AGX Xavier 配置VNC远程桌面连接及默认分辨率调整

    Jetson AGX Xavier 配置VNC远程桌面连接及默认分辨率调整 Jetson AGX Xavier 配置VNC远程桌面连接安装VNC Server配置VNC Server把VNC Server设为开机自启动设置VNC Serve
  • frp内网穿透windows配置开机启动

    首先下载我们需要的frp软件包 点我即可跳转下载页 解压之后得到我们的文件夹 xff0c 降不需要的frps开投的文件删掉 xff0c 新建文本 start bat start bat内容如下 xff1a 64 echo off home
  • kube-flannel.yml 保存

    apiVersion policy v1beta1 kind PodSecurityPolicy metadata name psp flannel unprivileged annotations seccomp security alp
  • 【VHDL语言学习笔记(三)】 数据比较器

    目的 xff1a 实现一个4位二进数据比较器 分析 xff1a 两个操作数的比较有三种结果 xff0c 即A等于B xff0c A大于B和A小于B 两个4位二进制比较器 xff0c 构建比较器表如下 比较器的真值表 输入输出ABAGQBAG
  • 【天光学术】论文写作技巧,教你论文写作提纲撰写方法

    1 拟订提纲的必要性盖楼首先要设计工程蓝图 xff0c 然后按图施工 同理 xff0c 撰写论文首先要拟订写作提纲 xff0c 然后按纲行文 简单地说 xff0c 写作提纲就是整篇文章的总体思路 逻辑图表和结构框架 在动笔撰写论文之前 xf
  • HTTP协议详解

    文章目录 一 HTTP工作过程二 HTTP 协议格式2 1 请求 Request 格式2 1 1 URL格式2 1 2 方法 method 2 1 2 1 GET 方法2 1 2 2 POST 方法2 1 2 3 GET vs POST 2
  • yum安装指定版本docker

    步骤1 xff1a 删除docker等相关依赖 yum remove docker docker common container selinux docker selinux docker engine 步骤2 设置稳定镜像源 xff1a

随机推荐

  • vue学习总结一(环境部署,项目搭建开发)

    小白vue学习总结 xff0c 阅者酌情参考 xff0c 欢迎指正 一 安装环境 安装nodejs xff1a 查看版本 node v加载vue组件 xff1a npm install vue搭建vue的开发环境 xff0c 安装vue的脚
  • springboot--集成jdbctemplate

    springboot 集成jdbctemplate 添加依赖 lt 引入jdbc支持x gt lt dependency gt lt groupId gt org springframework boot lt groupId gt lt
  • springboot--集成jpa

    比较 表列出了JPA与其他持久化技术的比较 添加依赖 lt 引入jpa 依赖 gt lt dependency gt lt groupId gt org springframework boot lt groupId gt lt artif
  • SpringMVC集成Quartz2.3.2

    SpringMVC集成Quartz2 3 2 集成Quartz持久化下载jar导入jar包配置properties配置xml数据源导入数据表xml配置中用到的工厂类自定义JobController层Service层jsp参考 集成Quart
  • vagrant学习总结

    一 vagrant是什么 vagrant是一款用来构建虚拟开发环境的工具 xff0c 非常适合各类语言来开发web应用 xff0c 代码在我机器上运行没有问题 将成为历史 可以通过vagrant将封装好的开发环境 xff0c 分发给开发人员
  • cas5.3.5错误锦集

    0 cas jar https repo maven apache org maven2 org apereo cas 1 票根 39 ST 7 yOPMHIBFVcx8iNRoDW rCzNgakLAPTOP E2N0LMKU 39 不符
  • 面向对象分析:如何建立动态模型?状态图(单个对象建模),状态是对影响对象行为的属性值的一种抽象,它规定了对象对( 输入事件 )的响应方式,

    对象模型建立后 就需要考察对象和关系的动态变化情况 面向对象分析设定对象和关系都具有生命周期 生命周期由许多阶段组成 每个阶段都有一系列的运行规律和规则 用来调节和管理对象的行为 对象和关系的生命周期用动态模型来描述 动态模型描述对象和关系
  • 信息系统项目管理师-信息文档与配置管理考点笔记

    历年考点分布 注 xff1a 博客 xff1a https blog csdn net badao liumang qizhi 关注公众号 霸道的程序猿 获取编程相关电子书 教程推送与免费下载 信息系统项目文档及其管理 软件文档的分类 3
  • new 对象加括号和不加括号的区别

    在new对象的时候有加上 xff0c 有不加 xff0c 不知道这个到底是什么区别 xff1f 比如 xff1a cpp view plain copy print CBase base 61 new CDerived CBase base
  • 结构程序设计的经典定义

    结构程序设计的经典定义如下所述 xff1a 如果一个程序的 代码块仅仅通过顺序 选择和循环这3种基本控制结构 进行连接 xff0c 并且每个代码块只有一个入口和一个出口 xff0c 则称这个程序是结构化的 如果只允许使用顺序 IF THEN
  • 总体设计启发性规则7条

    nbsp 启发性规则 7条 1 改进软件结构提高模块独立性 通过模块分解或合并 降低耦 合提高内聚 2 模块规模应该适中 过大的模块往往是由于分解不充分 过小 的模块将导致模块数目过多将使系统接口复杂 3 深度 宽度 扇出和扇入都应适当 深
  • SqlServer调用webapi和webService接口

    1 通过http协议post调用webapi接口 xff08 json数据格式 xff09 declare 64 ServiceUrl as varchar 1000 set 64 ServiceUrl 61 39 http 127 0 0
  • C语言和C++的区别是什么?8个点通俗易懂的告诉你

    有些初学的同学傻傻分不清其中的区别 xff0c 下面我将详细的讲解C语言和C 43 43 的区别点 帮助大家尽快的理解 1 关键字 蓝色标注为C语言关键字 xff0c C 43 43 继承了C语言的所有关键字 xff0c 以下红色标注为C
  • money 最小花费(spfa)

    问题描述 在n个人中 xff0c 某些人的银行账号之间可以互相转账 这些人之间转账的手续费各不相同 给定这些人之间转账时需要从转账金额里扣除百分之几的手续费 xff0c 请问A最少需要多少钱使得转账后B收到100元 输入格式 第一行输入两个
  • cpu优化-cpu亲和性

    cpu亲和性 taskset命令可以将进程绑核 格式为taskset p c cpu list pid xff0c 其中cpu list是数字化的cpu列表 xff0c 从0开始 多个不连续的cpu可用逗号连接 xff0c 连续的可用 连接
  • Homebrew安装慢,总是失败如何解决

    前言 如果使用Homebrew xff08 https brew sh xff09 官网提供的命令来进行下载的 xff0c 是从github上进行下载 xff0c 没有翻墙工具的话会比较慢 xff0c 甚至可能会下载失败 xff0c 所以我
  • 开源飞控APM与PIXHAWK

    一 APM 官网地址 xff1a http ardupilot org APM xff08 ArduPilotMega xff09 是在2007年由DIY无人机社区 xff08 DIY Drones xff09 推出的飞控产品 xff0c
  • Pixhawk解锁常见错误

    第一次解锁 xff0c 接上MP看着HUD的提示 xff0c 即飞行数据的界面 xff1a 一般的不成功解锁有以下的原因 xff08 网络整理 xff09 xff08 1 xff09 HUD显示 RC not calibrated xff1
  • 学习MySQL——单表查询

    文章目录 一 SQL语言规范二 基本的SELECT语句1 列的别名2 去除重复行3 空值参与运算4 着重号 96 96 5 显示表结构 三 运算符 比较运算符1 等号运算符 xff08 61 xff09 2 不等于运算符 xff08 lt
  • FreeRTOS-启动第一个任务

    FreeRTOS开始第一个任务源码分析 vTaskStartScheduler xff1a 1 创建一个空任务 xff1a 优先级为0 2 是否使用软件定时器 是的话 创建软件定时器 3 关闭中断 xff08 关中断操作的寄存器是BASEP