处理器区别:
m 系列 arm cpu 的指令集很小,通常没有浮点单元,没有内存管理,没有缓存。它们针对低成本而非高性能进行了优化。它们一般与 flash、ram 和外围设备组合成一个微控制器芯片。它们主要用于控制硬件,可以对裸机进行编程,也可以与一些可以提供类似操作系统的功能的库链接。
a 系列 arm cpu 具有更大的指令集(其中 m 指令集是一个小的子集),并且它们通常具有浮点单元、内存管理单元和缓存。它们针对高性能,而不是低成本进行了优化。它们通常作为微处理器出售(通常与以太网、视频、mpeg 解码器等高端外围设备结合使用),旨在与片外 ram 和闪存结合使用。它们通常运行一些操作系统,通常是 linux,将操作系统空间和应用程序空间分开。这些 cpu 通常用于手机和平板电脑。
m 用于微控制器,a 用于在电池供电的小工具上运行 linux。
启动流程区别:
cortex-m4与cortex-a的启动流程基本一致:都是定义中断向量表---->执行复位中断服务reset_handler并在此中完成系统初始化----->跳转至main函数。
对于后面中断的处理过程也基本一致:都是查找中断向量表获取中断服务函数入口地址---->执行中断服务函数(保护现场、具体指向、恢复现场)------>指向完返回main。m4与a7的唯一不同可能就是对于系统中断的封装上,m4直接将所有中断都列在了中断向量表中。而a系列将所有中断分为了两级,其中我们常见的中断都放在irq_handler中,中断发生时先执行irq_handler,在irq_handler中再具体指向中断处理。
嵌入式开发流程:
m系列开发流程:
.cortex-m系列处理器的开发流程,根据硬件外设自己编写底层固件,他的引导程序在出厂是已经写到芯片内部,我们只需要根据boot管脚的配置,就可以引导程序从哪里开始,剩下只需要配置时钟和外设驱动+应用,该处理器主要在物联网中作为终端设备,采集数据,简单的处理数据以及控制领域的终端控制设备。
a系列的开发流程
嵌入式系统开发是一个系统性的工程,一个完整的开发过程总体来说包括了硬件系统设计、操作系统移植和应用软件设计三个部分。
1. 硬件系统设计
硬件设计包括了硬件体系架构、电路图设计、电路板制作、焊接和测试、电路板调试等步骤,其根本是得到一个在电气连接上没有错误、满足设计需求的硬件电路板。
2. 操作系统移植
操作系统的移植是指当嵌入式硬件开发已经完成且保证没有硬件错误之后将一个目标操作系统移植到硬件系统上并且运行的过程,其目标是在硬件系统上运行一个操作系统。
以 linux 为例来介绍操作系统的移植过程,大概可以分为以下 4 个步骤:
配置和编译 bootloader,然后将 bootloader 下载到开发板,其可以初始化硬件设备,建立内存空间的映射表,对操作系统进行引导。
下载操作系统的源代码,建立交叉编译环境,配置和编译操作系统内核,并且根据硬件系统的特点对其进行相应裁剪和配置,然后将通过 bootloader 将完成的操作系统下载到目标板上。
为 nand flash 移植文件系统,通常来说是 yaffs2 文件系统,这样才能形成完整的操作系统应用环境。
建立嵌入式系统和开发环境的数据交互通道,可以是 ftp,也可以是根文件映射等。
3. 应用软件设计
应用软件设计是指在已经移植完成操作系统的嵌入式系统上根据系统的特定需求进行软件设计的过程,此时通常也需要交叉编译环境。
日本OLED电视出货量同比增长190% OLED电视大热但LGD却左右为难
BLF2425M9LS140功率晶体管
工业和信息化部在京举行媒体通气会
区块链为跨境支付模式可以解决传统制度的弊端
安徽省量子计算工程研究中心:科研团队成功研制出“量子芯片温度计”
嵌入式开发流程与处理器区别
苹果M1内存位宽是A14的两倍
传送带对智慧中药房的提升到底有多大?
亚马逊员工计划对COVID-19感染进行为期两天的罢工
11月,汽车出口金额环比呈增长趋势,同比增长41.1%
Linux系统中动态链接器的核心工作
人工智能创作的作品产权属于谁?
倍福驱控一体伺服电机获创新奖 宁德时代上海临港项目正式开工
微距与长焦镜头联姻 长焦微距镜头有何意义
IR高压D类音频控制器减少放大器的元件数量
Firefly关于PX3-SE程序SSH使用介绍
故障电弧保护器的功用与作用的介绍
智慧供暖温控物联网系统,实现企业供暖降本升效
如何理解attention中的Q,K,V?
德索fakra连接器的发展前景及三大特性