嵌入式相关基础
一.常见的芯片类型
1.微控制器(MCU)
(1)STM32
主频(MHz) | 内核 | Flash(Kbytes) | Ram(Kbytes) | 封装 | ADC channels | DAC channels | SPI | |
STM32F407ZG | 168 | ARM Cortex-M4f | 1024 | 192 | LQFP144 | 24 | 2 | 3 |
STM32F407ZE | 168 | ARM Cortex-M4f | 512 | 192 | LQFP144 | 24 | 2 | 3 |
STM32F407VE | 168 | ARM Cortex-M4f | 512 | 192 | LQFP100 | 16 | 2 | 3 |
STM32F103ZE | 72 | ARM Cortex-M3 | 512 | 64 | LQFP144 | 21 | 2 | 3 |
STM32F103C8 | 72 | ARM Cortex-M4 | 64 | 20 | LQFP48 | 10 | 0 | 2 |
(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 | 连接寄存器lr | R14寄存器也被称为连接寄存器,主要用于保存子程序以及中断的返回地址。如果您保存了返回地址,则可以在调用之间将R14用于其他用途,但程序返回时要恢复其原始值。 |
R15 | 程序计数器PC | R15是程序计数器,它总是包含下一个要被执行的指令的位置。由于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/ | 该目录包含了各种开发板的配置文件,可以根据需要选择合适的配置文件进行编译和定制 |
Makefile | U-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,根据上述…...

软件性能测试之负载测试、压力测试详情介绍
负载测试和压力测试是软件性能测试中的两个重要概念,它们在保证软件质量和性能方面起到至关重要的作用,本文将从多个角度详细介绍这两种测试类型。 一、软件负载测试 负载测试是在特定条件下对软件系统进行长时间运行和大数据量处理的测试ÿ…...
科研辅助工具
科研工具收集 1. 如何筛选出最合适的SCI论文投稿杂志:点击直达 2. 分享三种正确查找期刊全称、缩写的网站: 点击直达...

亿达中国武汉园区入选“武汉市科技金融工作站”及“武汉市线下首贷服务站”
近日,武汉市2024科技金融早春行活动在深交所湖北资本市场培育基地举行。会上,第四批武汉市科技金融工作站试点单位名单及第五批武汉地区金融系统线下首贷服务站名单正式公布,武汉软件新城成功入选上述两个名单。 为缓解科技型企业融资难题&a…...
Docker配置阿里云加速器(2续)
默认情况下镜像是从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速进行下载 国内镜像加速器有阿里云、网易云、中科大等,本章配置阿里云镜像加速器,速度较快 镜像加速源 镜像加速器 镜像加速器地址 <...

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

Python实现逻辑回归与判别分析--西瓜数据集
数据 数据data内容如下: 读取数据: import numpy as np import pandas as pd data pd.read_excel(D:/files/data.xlsx) 将汉字转化为01变量: label [] for i in data[好瓜]:l np.where(i 是,1,0)label.append(int(l)) data[label] lab…...

课时154:项目发布_手工发布_手工发布
1.2.3 手工发布 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 为了合理的演示生产环境的项目代码发布,同时又兼顾实际实验环境的资源,我们这里将 B主机和C主机 用一台VM主机来实现,A主机单…...
鸿蒙开发 一 (四)、ArkTS开发 --UI篇
相对布局 RelativeContainer 支持容器内部的子元素设置相对位置关系子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局 //alignRules 写法let AlignRus:Record<string,Record<string,string|VerticalAlign|Horiz…...

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

【34W字CISSP备考笔记】域1:安全与风险管理
1.1 理解、坚持和弘扬职业道德 1.1.1.(ISC)职业道德规范 1、行为得体、诚实、公正、负责、守法。 2、为委托人提供尽职、合格的服务。 3、促进和保护职业。 4、保护社会、公益、必需的公信和自信,保护基础设施。 1.1.2.组织道德规范 1、RFC 1087 ࿰…...

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

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...