当前位置: 首页 > news >正文

嵌入式相关基础

一.常见的芯片类型

1.微控制器(MCU)

(1)STM32

主频(MHz)内核Flash(Kbytes)Ram(Kbytes)封装ADC channels

DAC

channels

SPI
STM32F407ZG168ARM Cortex-M4f1024192LQFP1442423
STM32F407ZE168ARM Cortex-M4f512192LQFP1442423
STM32F407VE168ARM Cortex-M4f512192LQFP1001623
STM32F103ZE72ARM Cortex-M351264LQFP1442123
STM32F103C872ARM Cortex-M46420LQFP481002

(2)RA6M5

RA6M5的晶振为24MHz,拥有2MB的代码闪存

2.系统级芯片(SoC)

(1)I.MX6ULL

I.MX6ULL是一款基于ARM Cortex-A7内核的高性能应用处理器,采用ARMv7-A架构,主频可达900MHz。

(2)RZ/G2L双核A55芯片

(3)RK3588

3.数字信号处理器(DSP)

4.现场可编程门阵列(FPGA)

5.应用特定集成电路(ASIC)

二.指令集

1. RISC

2. CISC

二.架构

1.ARM架构

1)

ARMv7架构

ARM架构寄存器包括31个通用寄存器和6个状态寄存器,

2)通用寄存器组
R0-R3传递参数与返回值这些寄存器主要用于传递子程序的参数以及存放函数的返回值。在子程序调用之间,它们可以被用于任何用途,且被调用的函数在返回之前不必恢复这些寄存器的原始值。
R4-R11局部变量存储这些寄存器通常用于保存函数的局部变量。如果一个被调用的函数使用了这些寄存器,那么它在返回之前必须恢复这些寄存器的值,以便调用者能够在返回后继续使用未改变的值。
R12内部调用暂存器ip这个寄存器作为子程序间的scratch寄存器,主要用于过程链接胶合代码中。在过程调用之间,可以将它用于任何用途,并且被调用的函数在返回之前不必恢复它的值。
R13栈指针sp这个寄存器用作栈指针,指向当前的栈块限制或它的上面,用于临时数据的存储等。它不能被用于其他用途,并且在退出被调用的函数时,其内存储的值必须与进入时的值相同。
R14连接寄存器lrR14寄存器也被称为连接寄存器,主要用于保存子程序以及中断的返回地址。如果您保存了返回地址,则可以在调用之间将R14用于其他用途,但程序返回时要恢复其原始值。
R15程序计数器PCR15是程序计数器,它总是包含下一个要被执行的指令的位置。由于ARM采用了流水线机制,当正确读取了PC的值后,该值为当前指令地址加8个字节,即PC指向当前指令的下两条指令地址。

2.MIPS架构

MIPS架构以其简洁和高效的RISC设计闻名。RISC定义了一种处理器设计的范式,而MIPS是这种范式下的一个具体产品

3.x86架构

x86架构由英特尔公司开发,因其强大的兼容性和广泛的软件支持而在全球范围内得到广泛使用。这种架构的处理器能够运行多种操作系统,包括Windows和Linux。

4.PIC架构

PIC微控制器因其低成本和低功耗特性而广受青睐,在简单的嵌入式应用中得到广泛应用。

5.RISC-V架构

三.内核

Cortex-M3
Cortex-M4
Cortex-M7
Cortex-A7
Cortex-M33
Cortex-A55

四.STM32,PC端Linux和嵌入式中Linux的启动流程

五. PC端Linux和嵌入式端Linux

1.引导加载程序

PC端Linux系统通常不使用U-Boot作为引导加载程序,而PC端常用的是GRUB或LILO这样的引导加载程序。接下来详细讲述一下U-Boot:

U-Boot目录分布

arch/该目录包含了针对不同处理器架构的特定代码和配置文件,例如arch/arm/目录包含了针对ARM架构的代码
board/该目录包含了各种嵌入式开发板的配置文件和支持代码,每个开发板通常有一个对应的子目录
common/该目录包含了通用的U-Boot代码和功能,适用于多个处理器架构和开发板
configs/该目录包含了不同开发板的配置文件,可以根据需要选择合适的配置文件进行编译和定制。
doc/该目录包含了 U-Boot 的文档和说明,包括使用手册、开发指南等。
drivers/该目录包含了硬件设备驱动程序,用于支持各种外设和接口,如串口,网络,存储等
include/该目录包含了U-Boot的头文件,定义了各种数据结构,宏和函数原型
tools/该目录包含了一些辅助工具和脚本,用于编译,烧录和调试U-Boot
configs/该目录包含了各种开发板的配置文件,可以根据需要选择合适的配置文件进行编译和定制
MakefileU-Boot的主要Makefile,用于编译和构建U-Boot

这只是 U-Boot 目录结构的一些常见示例,实际的目录结构可能会因版本和配置而有所变化。在 U-Boot 的源代码中,可以找到更详细的目录结构和文件。

U-Boot启动引导过程

U-Boot 的引导启动过程包括上电初始化、加载 U-Boot、U-Boot 初始化、命令行界面、加载操作系统和启动操作系统等步骤

相关文章:

嵌入式相关基础

一.常见的芯片类型 1.微控制器(MCU) (1)STM32 主频(MHz)内核Flash(Kbytes)Ram(Kbytes)封装ADC channels DAC channels SPISTM32F407ZG168ARM Cortex-M4f1024192LQFP1442423STM32F407ZE168ARM Cortex-M4f512192LQFP1442423STM32F407VE168ARM Cortex-M4f512192LQFP1001623STM32…...

无线麦克风推荐哪些品牌?一文读懂家用无线麦克风哪个牌子好!

​在这个充满创意与表达的时代,无线领夹麦克风以其独特的魅力,成为了声音创作者们的得力助手。它小巧便携,功能强大,无论是日常拍摄、直播互动还是专业演出,都能轻松应对,让你的声音随时随地清晰传递。那么…...

构建SOA架构时应该注意的问题

1.原有系统架构中的集成需求 面向服务的体系结构本质上来说是一种具有特殊性质的体系结构,它由具有互操作性和位置透明的组件集成构建并互连而成。基于SOA的企业系统架构通常都是在现有系统架构投资的基础上发展起来的,我们并不需要彻底重新开发全部的子…...

动手学深度学习(Pytorch版)代码实践 -深度学习基础-13Kaggle竞赛:2020加州房价预测

13Kaggle竞赛:2020加州房价预测 # 导入所需的库 import numpy as np import pandas as pd import torch import hashlib import os import tarfile import zipfile import requests from torch import nn from d2l import torch as d2l# 读取训练和测试数据 train_…...

编程输出中间变量:深度解析与实战应用

编程输出中间变量:深度解析与实战应用 在编程过程中,中间变量是一个至关重要的概念。它们不仅有助于我们更好地理解和组织代码,还能提高程序的效率和可读性。那么,编程输出中间变量究竟是什么呢?本文将从四个方面、五…...

冒泡排序、选择排序

冒泡排序 按照冒泡排序的思想,我们要把相邻的元素两两比较,当一个元素大于右侧相元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变 大的往右丢(往下沉),小的往…...

嵌入式实训day6

1、 from machine import Pin from neopixel import NeoPixel import timeif __name__"__main__"#创建RBG灯带控制对象,包含5个像素(5个RGB LED)rgb_led NeoPixel(Pin(4,Pin.OUT),5)#定义RGB颜色RED(255,0,0)GREEN(0,2…...

产品经理是青春饭吗?终于有了答案!

不少考生疑惑产品经理是青春饭吗?产品经理能干到多少岁?弄清楚这些问题,我们才会有长久的规划。产品经理是青春饭吗?产品经理能干到多少岁?一起来看看 一、产品经理是青春饭吗? 产品经理是否吃青春饭需要…...

FPGA - 数 - 加减乘除

一,数的表示 首先,将二进制做如下解释: 2的0次方1 2的1次方2 2的2次方4 2的3次方8 ..... 以此类推,那么任何整数,或者说任意一个自然数均可以采用这种方式来表示。 例如,序列10101001,根据上述…...

软件性能测试之负载测试、压力测试详情介绍

负载测试和压力测试是软件性能测试中的两个重要概念,它们在保证软件质量和性能方面起到至关重要的作用,本文将从多个角度详细介绍这两种测试类型。 一、软件负载测试   负载测试是在特定条件下对软件系统进行长时间运行和大数据量处理的测试&#xff…...

科研辅助工具

科研工具收集 1. 如何筛选出最合适的SCI论文投稿杂志:点击直达 2. 分享三种正确查找期刊全称、缩写的网站: 点击直达...

亿达中国武汉园区入选“武汉市科技金融工作站”及“武汉市线下首贷服务站”

近日,武汉市2024科技金融早春行活动在深交所湖北资本市场培育基地举行。会上,第四批武汉市科技金融工作站试点单位名单及第五批武汉地区金融系统线下首贷服务站名单正式公布,武汉软件新城成功入选上述两个名单。 为缓解科技型企业融资难题&a…...

Docker配置阿里云加速器(2续)

默认情况下镜像是从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速进行下载 国内镜像加速器有阿里云、网易云、中科大等,本章配置阿里云镜像加速器,速度较快 镜像加速源 镜像加速器 镜像加速器地址 <...

我用chatgpt写了一款程序

众所周知&#xff0c;Chatgpt能够帮助人们写代码&#xff0c;前几天苏音试着完全用Chatgpt写一款Python程序 有一句话我很赞同&#xff0c;未来能代替人的不是AI&#xff0c;是会使用AI的人。 最终&#xff0c;写下来效果还不错&#xff0c;完全提升了我的办公效率。 开发前…...

Python实现逻辑回归与判别分析--西瓜数据集

数据 数据data内容如下&#xff1a; 读取数据&#xff1a; import numpy as np import pandas as pd data pd.read_excel(D:/files/data.xlsx) 将汉字转化为01变量&#xff1a; label [] for i in data[好瓜]:l np.where(i 是,1,0)label.append(int(l)) data[label] lab…...

课时154:项目发布_手工发布_手工发布

1.2.3 手工发布 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 为了合理的演示生产环境的项目代码发布&#xff0c;同时又兼顾实际实验环境的资源&#xff0c;我们这里将 B主机和C主机 用一台VM主机来实现&#xff0c;A主机单…...

鸿蒙开发 一 (四)、ArkTS开发 --UI篇

相对布局 RelativeContainer 支持容器内部的子元素设置相对位置关系子元素支持指定兄弟元素作为锚点&#xff0c;也支持指定父容器作为锚点&#xff0c;基于锚点做相对位置布局 //alignRules 写法let AlignRus:Record<string,Record<string,string|VerticalAlign|Horiz…...

影音发烧友必入:高清先生M8 8K蓝光播放机使用体验8K播放器

影音发烧友必入&#xff1a;高清先生M8 8K蓝光播放机使用体验 高清先生在5.18成功举办新品8K蓝光播放机“M8”的发布会后&#xff0c;心心念念想尝鲜&#xff0c;于是果断下单了一台。 外形 收到货后&#xff0c;是牛皮纸包装&#xff0c;醒目的“高清先生”标识印在正面&…...

【34W字CISSP备考笔记】域1:安全与风险管理

1.1 理解、坚持和弘扬职业道德 1.1.1.(ISC)职业道德规范 1、行为得体、诚实、公正、负责、守法。 2、为委托人提供尽职、合格的服务。 3、促进和保护职业。 4、保护社会、公益、必需的公信和自信&#xff0c;保护基础设施。 1.1.2.组织道德规范 1、RFC 1087 &#xff0…...

Camtasia Studio 2024软件下载附加详细安装教程

amtasia Studio 2024是一款功能强大的屏幕录制和视频编辑软件&#xff0c;由TechSmith公司开发。这款软件不仅能够帮助用户轻松地记录电脑屏幕上的任何操作&#xff0c;还可以将录制的视频进行专业的编辑和制作&#xff0c;最终输出高质量的视频教程、演示文稿、培训课程等。 …...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

实战设计模式之模板方法模式

概述 模板方法模式定义了一个操作中的算法骨架&#xff0c;并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下&#xff0c;重新定义算法中的某些步骤。简单来说&#xff0c;就是在一个方法中定义了要执行的步骤顺序或算法框架&#xff0c;但允许子类…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

高保真组件库:开关

一:制作关状态 拖入一个矩形作为关闭的底色:44 x 22,填充灰色CCCCCC,圆角23,边框宽度0,文本为”关“,右对齐,边距2,2,6,2,文本颜色白色FFFFFF。 拖拽一个椭圆,尺寸18 x 18,边框为0。3. 全选转为动态面板状态1命名为”关“。 二:制作开状态 复制关状态并命名为”开…...