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和总线示意图
图片分析:
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