姓名:刘欢 学号:19020100155 学院:电子工程学院 班级:1902012
转自:https://blog.csdn.net/zw1996/article/details/79538393
【嵌牛导读】ARM前身为艾康电脑(Acorn)1978年英国剑桥创建,嵌入式 则是以ARM处理器芯片 片上资源多 应用域就多了 主要有智能手机,智能手表 摄像机 路由器等等
【嵌牛鼻子】ARM 嵌入式学习
【嵌牛提问】怎样进行有效的ARM开发板的嵌入式学习?
【嵌牛正文】
1、嵌入式系统构成的特点
1.1 嵌入式系统特点
专用 相对于pc机而言 嵌入式就更加专用了 完全就是为了完成某项功能为制造的产品,该产品主要服务于这个功能
软硬件可裁剪可配置:对于不同的环境不同的功能需要进行配置
低功耗:因为现在的嵌入式设备都是电池供电 所以低功耗也是嵌入式设备的主要方向之一
高可靠性、高稳定性:嵌入式设备有的应用于安全性要高的地方 因此需要可靠稳定
软件代码短小精悍:代码短但是精
代码可固化;意思是代码可以烧录到芯片中去
实时性:
弱交互性:交换性就是人与系统进行交互 弱交换性 则表示不需要一直交互 例如路由器这个经典的嵌入式系统
专用开发工具及开发环境:linux系统 gcc编译器 交叉编译链
1.2嵌入式系统组成
硬件
微处理器 soc芯片
存储器 内存和flash:flash其实就是相当于硬盘一样的内存
I/O接口、输入输出设备等等
软件:分层的 便于开发
BSP(board support package)扳级支持包 主要是一些驱动(最底层)
嵌入式操作系统:也是底层 但在整个嵌入式系统中相当于中间人一样 接收应用层指令 调用底层驱动
应用软件
1.3 嵌入式系统的分层
最后我们也就确定了我们学习路线
先ARM再系统移植和linux网络编程和应用最后再驱动
因为驱动是一个承上启下的部分 并且也是最难的一个部分
1.4嵌入式系统的发展史
总结发展的趋势
硬件越来越强 硬件的外部接口越来越多价格越来越高
编程由汇编到了cyuy
界面越来越好 交互越来越多
最后就到了物联网时代了
客户端小型化 智能家居智能化 网络都联网了 可视化 随时随地都可以看到一些东西 到处都是显示器了
低功耗 非常重要 的
2、交叉编译
先介绍交叉编译是一种什么编译
在嵌入式开发中 往往嵌入式设备的不足以支持我们在该设备上进行编写代码编译运行 所以我们只能在我们自己的电脑机上编写编译代码得到可执行文件,最后将可执行文件下载到嵌入式设备中 进行运行调试 这种就是交叉编译 在不同的系统上进行交叉开发
2.1 两种开发模式
非嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给A(类)机运行。
嵌入式开发,A(类)机编写(源代码)、编译得到可执行程序,发布给B(类)机运行
注意A类B类指的是操作系统
2.2 为什么要有交叉编译
因为嵌入式设备往往cpu过于简单 无法搭建开发环境,甚至操作系统都没有 因此我们只能借助桌面电脑进行开发然后下载到嵌入式设备上进行运行调试
交叉编译可以起到了很好的 ,高性能机器为底性能机器开发软件 (可以包括 裸机 系统级 应用级)
2.3 交叉编译的特点和要求
交叉编译必须需要一套的专有的交叉编译工具链 链 一套工具才能完整从桌面电脑到嵌入式设备开发过程。
*由于可执行程序不能本地运行调试,因此必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可执行程序加载到目标嵌入式设备上运行及调试。
2.4 CPU设计总路线
总线分为 地址总线和数据总线
CPU通过地址总线寻址,然后通过数据总线与外部设备互换信息。
地址总线 就是传输的数据代表的是一个地址 因此地址总线的数量就表示了能够读取到内存的大小
32位地址总线则可以表示4G
因为2的10次方是1024 1K=1024bit
2的10次方 ——表示1k
k的10次方——表示1M
M的10次方——表示1G
因此2的32次方表示4g
数据总线 则表示数据通过该总线进行传输 的
数据总线的位数表示CPU单次通信能交换的信息数量;
我们所说的32位cpu 64位cpu表示的都是数据总线 的位数
例如 32位cpu 当我们传输的是int类型时一次就可以传过去 而double类型时则需要传输两次 就是这个道理
发现 short 也是一次传输 int也是一次传输 对于数据总线 的使用是一样的 因此我们有时候会把需要定义成short类型时的变量也只能定义成int变量 对于总线的使用是一样 d
总线的速度决定CPU和外设互换信息的速度。
注意
CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),但是一般都相同。
CPU的位数指的是数据总线的位数。
32位CPU寻址的范围是4G,所以最多支持4G内存;
数据总线是32位的,所以内存是32位的好,所以编程最好用int···
3、为什么需要Jlink sd卡等辅助工具
3.1为什么需要一些辅助工具
交叉编译,不便于本机运行调试程序。
嵌入式系统需要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程需要专用工具。
嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。
3.2;Jlink作用
下载可执行程序到目标机。
在目标机上实现单步调试,便于开发bootloader。
3.3;sd卡的作用
作为启动介质。工作方式是:事先用读卡器将SD卡连接到开发机(一般是Windows电脑),通过写卡软件将交叉编译得到的可执行程序镜像烧录到SD卡,然后将SD卡插入 嵌入式目标机卡槽,设置正确的启动方式启动,则系统可以从SD卡中烧录的镜像处启动。
3.4网线转串口线的作用
串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。
因为现在大部分个人电脑(大部分台式机和几乎全部的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。
还有一些其他辅助工具
USB OTG线
DB9串口线
交叉网线