嵌入式Linux八股(四)——MCURTOS

嵌入式Linux八股完整文章目录

嵌入式Linux八股(一)——语言篇_嵌入式软件八股-CSDN博客

嵌入式Linux八股(二)——Linux_linux嵌入式的八股文有哪些-CSDN博客

嵌入式Linux八股(三)——计算机基础_嵌入式哪个八股比较好-CSDN博客

嵌入式Linux八股(四)——MCU&RTOS-CSDN博客

四、MCU&RTOS(更新中...)

01.MCU裸机

01.STM32启动模式

 02.STM32启动流程

STM32启动文件由ST官方提供,在官方的固件包里。启动文件由汇编编写,是系统上电复位后第一个执行的程序。启动文件主要做了以下工作:

  1. 初始化堆栈指针SP=_initial_sp
  2. 初始化程序计数器指针PC=Reset_Handler
  3. 设置堆和栈的大小
  4. 初始化中断向量表
  5. 配置外部SRAM作为数据存储器(可选)
  6. 配置系统时钟,通过调用SystemInit函数(可选)
  7. 调用C库中的main函数初始化用户堆栈,最终调用main函数

【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000 - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)

  1. M3,M4内核芯片上电复位后,要固定从0x0000 0000地址获取堆栈顶的地址,0x0000 0004获取复位中断服务程序地址。
  2. 获取复位中断服务程序的入口地址后,进入复位中断服务程序Reset_Handler
  3. 在复位时初始化系统(通过调用 SystemInit 函数)。
  4. 跳转到程序的主入口点 __main,开始执行主程序逻辑。

; Reset handler
Reset_Handler   PROCEXPORT  Reset_Handler             [WEAK]IMPORT  __mainIMPORT  SystemInitLDR     R0, =SystemInitBLX     R0               LDR     R0, =__mainBX      R0ENDP

 FreeRTOS系统配置文件

使用INCLUDE_开头的宏用来表示使能或除能FreeRTOS中相应的API函数,作用就是用来配置FreeRTOS中的可选API函数的。

config开始的宏用来完成FreeRTOS的配置和裁剪

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Vue实战教程】之Vue工程化项目详解

Vue工程化项目 随着多年的发展,前端越来越模块化、组件化、工程化,这是前端发展的大趋势。webpack是目前用于构建前端工程化项目的主流工具之一,也正变得越来越重要。本章节我们来详细讲解一下如何使用webpack搭建Vue工程化项目。 1 使用we…

基于Python的哔哩哔哩国产动画排行数据分析系统

需要本项目的可以私信博主,提供完整的部署、讲解、文档、代码服务 随着经济社会的快速发展,中国影视产业迎来了蓬勃发展的契机,其中动漫产业发展尤为突出。中国拥有古老而又璀璨的文明,仅仅从中提取一部分就足以催生出大量精彩的…

源码拆解SpringBoot的自动配置机制

SpringBoot相比于Spring系列的前作,很大的一个亮点就是将配置进行了简化,引入了自动化配置,仅靠几个注解和yml文件就取代了之前XML的繁琐配置机制,这也是SpringBoot的独有特点,下面我们从源码角度,一点点拆…

Golang | Leetcode Golang题解之第273题整数转换英文表示

题目: 题解: var (singles []string{"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}teens []string{&…

IEC61850 协议解读

1. IEC61850 协议介绍 IEC 61850 是定义 变电站 自动化系统 中 设备 及设备之间相互交互的 国际标准。 给出英文定义:IEC 61850 is the international standard for defining devices within substation automation systems and how they interact with one anoth…

Java基础-Java多线程机制

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一、引言 二、多线程的基本概念 1. 线程与进程 2. 多线程与并发 3. 多线程的优势 三、Java多线程的实…

git命令使用详细介绍

1 环境配置 设置的信息会保存在~/.gitconfig文件中 查看配置信息 git config --list git config user.name设置用户信息 git config --global user.name "有勇气的牛排" git config --global user.email “1809296387qq.com”2 获取Git仓库 2.1 本地初始化一个仓…

Android Studio入门级教程(二)——项目开发基础(Java新手向))持续更新ing

目录 前言: 一.使用Log工具打印日志 常见语法: 如何使用? 二.工程目录结构 三.编译配置文件build.gradle 四.运行配置文件AndroidManifest.xml 五.界面显示与逻辑处理 六.创建新的app页面 1.包含的步骤 在layout目录下创建XML文件…

uniapp集成安卓原生录屏插件以及使用

概述 我们知道UniApp的出现简化了开发者的工作流程,并减少了代码的重复编写。开发者可以使用一套代码编译到iOS、Android、以及各种小程序的应用,节省了人力和时间成本,但是涉及到与系统交互的时候,比如录屏、录音、录像、文件操…

Java 每日一题: for 与 foreach 的区别 ?

for 循环:是最基本的循环结构,可以通过初始化语句、循环条件和迭代语句来控制循环的执行。 foreach 循环(也称为增强型 for 循环):用于遍历集合或数组中的元素,简化了遍历过程,没有显式地控制索…

vercel 如何部署 express 项目

注意:如果你是用 express-generator 生成的 express 项目,请检查是否有依赖 jade ,如果有的话删除目录下的 views 文件夹,并把所有渲染页面的方法改成 res.send() !!!!!! 然后在项目根目录创建文件 vercel.json {&qu…

获取后端返回的图形验证码

如果后端返回的直接就是一个图形&#xff0c;有以下几种方式展示 一、直接在img标签里面的src里面调用接口 <img :src"dialogSrc" class"photo" alt"验证码图片" click"changeDialog">let orgUrl "/api/captcha" …

通过 WSL 2 在Windows 上挂载 Linux 磁盘

原文查看 曾为了传输或者共享不同系统的文件频繁地在 Windows 和 Linux 系统之间切换&#xff0c;效率过低&#xff0c;所以尝试通过 WSL 2 在Windows 上挂载 Linux 磁盘。 先决条件 需要在Windows 10 2004 及更高版本&#xff08;Build 19041 及更高版本&#xff09;或 Win…

基础复习(集合)

集合 Collection单列集合 1.特点 2.常用方法&#xff08;Collection都可用&#xff09; 遍历方式 迭代器遍历 Iterator<String> it c.iterator();//此处c是之前定义好的集合//第二步&#xff1a;用于判断当前位置是否有元素可以获取 //解释&#xff1a;hasNext()方…

OWS开放式耳机真的火了:漫步者、悠律、小米开放式耳机各具特点

开放式真无线耳机作为的蓝牙耳机二级分类&#xff0c;在近几年的发展趋势可以说超乎了所有人的想象。 2024 年第一季度中国线上蓝牙耳机销量达到 1757 万副,同比增长 15%,其中开放式耳机市场份额达到 14.4%,较去年同期增长 7.7%,销量同比大幅增长 148%&#xff0c;是整体耳机市…

CMakeList学习笔记

设置项目&#xff1a;project project(planning VERSION 1.0.0 LANGUAGES CXX) # 项目的名字 版本 1.1.0 编程语言 CXX 设置包含目录&#xff1a;include_directories、targer_include_directories 设置编译类型&#xff1a;add_executable、add_library add_executable(demo d…

Mysql中(基于GTID方式)实现主从复制,单主复制详细教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…

精密电路设计中的高精电阻:分流电阻

精密电路设计要求电路元件具有极高的精度和稳定性。在这些设计中&#xff0c;分流电阻扮演着至关重要的角色。本文将探讨分流电阻的基本原理、选择标准、应用场景以及在现代精密电路设计中的重要性。 在电子测量和控制领域&#xff0c;电流的精确测量是实现电路精确控制的关键。…

FPGA:3-8译码器的设计

1、什么是3-8译码器&#xff1f; 3-8译码器&#xff0c;顾名思义&#xff0c;三个输入&#xff0c;八个输出&#xff0c;构成3-8译码器。根据二进制特性&#xff0c;三位二进制数有八种可能&#xff0c;对应的真值表如下所示(该译码器输出低电平有效)&#xff1a; 3-8译码器(…

关于使用宝兰德bes中间件进行windows部署遇到的问题——license不存在

报错信息 日志文件中是这么报错的 遇到的具体情况&#xff1a; 实例按照**的文档手册正常步骤下去节点部署的时候没有报错&#xff0c;成功启动&#xff0c;但是日志里会有报错信息&#xff0c;也是license不存在实例创建的时候失败了&#xff0c;报错信息如下所示 解决方法…