嵌入式开发流程与处理器区别

描述

处理器区别:

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. 应用软件设计

应用软件设计是指在已经移植完成操作系统的嵌入式系统上根据系统的特定需求进行软件设计的过程,此时通常也需要交叉编译环境。

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分