ARM裸机从零开始的学习2---基础概念

ARM裸机从零开始的学习2---基础概念

                                   

                               ---参考朱有鹏ARM裸机全集

1、嵌入式的系统的构成特点和演进方向

(1)专用,软硬件可裁剪可配置

(2)低功耗,高可靠性、高稳定性

(3)软件代码短小精悍

(4)代码可固化(代码可以烧录到固件里面去)

(5)实时性:嵌入式系统的实时性是要求很高的,UCOS

(6)弱交互性,很多学生都喜欢玩触摸屏,但是那真的不是嵌入式的主流

(7)专业开发人员


2、嵌入式系统的组成

(1)硬件

微处理器:CPU

储存器:存储你程序需要加工的数据

IO接口:输入输出设备       、、视频的输出设备


(2)软件:(嵌入式软件和单片机的软件是不分层)

嵌入式操作系统:(基本上是写好的)驱动其实就是在写操作系统

BSP:  board  support  package  板级开发包(硬件的支持软件)

应用软件:

应用程序:

操作系统的应用编程和网络编程

GUI   GPRS   3G   WIFI


操作系统        智能操作系统         操纵平台

硬件               中央处理器             ROM、RAM、IO口

整体功能太复杂了,不分层比较难做。


应用程序和操作系统之间的编程。

能用的人是不一定是能造出来的,所以写驱动比较难


3、嵌入式系统的发展演进1:

(1)以单芯片为核心,可编程控制器的存在的形式

--没有操作系统支持

--软件以汇编为主

--功能单一,处理效率低,存储容器小,没有对外接口

--使用简单,价格低


(2)以嵌入式CPU为基础,简单操作系统为核心

--CPU种类多,通用性弱

--系统开销小,效率高

--达到一定的兼容性,拓展性

--用户体验度不高,交互界面不够友好


(3)以嵌入式操作系统为标志

--兼容性好,适用性不同平台

--系统开销小,效率高具有高模块化以及拓展性

--图形化界面,用户界面友好

--丰富的外部接口


(4)以物联网为标志

--将传感器技术,互联网技术以及传统的嵌入式技术综合联系

--小型号,智能化,网络化以及可视化

--低功耗,绿色环保

--多核技术、云计算技术以及虚拟化技术


DSP(主运算)加ARM(主控)


4、何为交叉编译?

嵌入式的交叉编译的。

两种开发模式:

(1)非嵌入式开发:

           纯软件开发,直接一台电脑就可以进行开发了。

(2)嵌入式开发:

           编译得到可执行程序,发布给开发板等之类的低等的处理器,这种方式就叫做交叉编译。


嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些连操作系统都没有。交叉编译可以用高性能机器为低性能机器开发

软件。


交叉编译有什么特点?

交叉编译必须使用专用的交叉编译工具链

由于可执行程序不能本地的运行调式,因此必须配合一定的手段

(专用的调式器,JTAG调式器,USB下载,串口下载,SD卡启动,网络共享)

将可执行程序加载到目标嵌入式设备运行以及调式)


5、CPU的设计原理、数据总线和地址总线

(SMP:对称多核处理器)

CPU和总线示意图

ARM裸机从零开始的学习2---基础概念_第1张图片

图片分析:

1、一般SOC里面都有CPU和UART

     寄存器 :通过FLASH传输的数据,映射到相关的寄存器,就可以操作CPU

     控制器 :进行一些逻辑的控制

     运算器 :加减乘除


2、总线:传输数据的通道

2.1、分为地址总线和数据总线

CPU通过地址总线传输数据


把地址总线和数据分开是为了数据的传输速度快,存储块里面是分块的。

地址总线的位数决定了CPU的寻址范围:


数据总线的位数决定CPU单次通信数据交换的




3、DDR:运行内存


4、FLASH:相当于计算机的硬盘


注意点:

1、CPU的地址总线位数和数据总线是可以不同的

     典型代表就是51单片机(数据总线虽然是8位,但是地址总线是16位的)但是一般是相同的

2、CPU的位数指的是数据总线的位数

3、32位CPU的寻址范围是4G,所以内存是32位的比较好,所以编程最好使用int









你可能感兴趣的:(嵌入式:裸机开发)