1;ARM的里程碑
ARM的前身为艾康笔记本(Acorn)1978年美国剑桥创建
1980年底苹果加入合作开发ARM核心
1985年第一款商用的RISC处理器即为ARM1上市
1990年艾康公司分立出我们如今所晓得的ARMAduvancedRSICMachinesARM公司上市
1991年ARM公司推出了第一款嵌入式的RSIC处理器即为ARM6
。
。
。详尽的查阅百度
。
。
然后直续至今ARM公司仍然再推出新的ARM构架
2;ARM的商业模式和生态系统
ARM的商业模式你们应当都早已据说过了只设计不生产,卖版权给其他半导体公司生产
因而ARM的合作伙伴是十分之多的由于每位生产处理器的公司都须要向ARM订购ARM芯片版权进行设计
比如google也是安卓系统的开源而且安卓系统是免费的
总结:
要想成功就得先帮助,成全他人,只想着自己成功的人是没有机会的
3;我们选择学习的开发板为何是三星的
三星是中国最早的制造处理器的公司而且他有挺好的企业基础而且资料多学习的人多
我们学习的开发板是基于ARM8构架的三星S55PVPV210最后一版单核的
由于前些年的ARM9的2440早已停产了
4;厘清各个版本号
ARM版本号SOC芯片版本号SOC芯片机型是三个不同的东西
ARM版本号是ARM公司设计的ARM版本进行转让的版本
基于这个ARM版本号可以开发出一款芯片的版本号也就是SOC芯片版本号
之后各个公司可以基于这个SOC芯片的版本号开发出不同的机型也就是SOC芯片的机型了
最后瞧瞧详尽的两者关系在不同阶段的举例
Cortex-M系列也开始从单片机到STM32发展了
最先的M3系列再就是M0,M0+和添加了DSP浮点运算的M4最后是正在研制的M7主要用于物联网特性就是低帧率
5;厘清soc和cpu的关系以及哪些是外设
在后面那小节我们就把SOC的版本和ARM的版本区分开来了。SOC的版本号是在ARM版本上进行开发的linux嵌入到arm,不同的公司可以开发出不同的SOC。这么下边我们介绍一下SOC究竟是哪些。
答:SOC就是我们平常你们都说的cpu,但是真正的cpu虽然是arm公司设计转让的内核才是真正的cpu。
我们就70年代前和现今的system系统进行分辨
无论是pcb板还是soc都是一个系统system;是完成某项功能的东西。。。。
这就有了很显著的区别了吧cpu只是从ARM公司订购版权后设计下来的核心只有运算器和控制器
而soc是仍然芯片高度集成的芯片将cpu连同外设进行集成到同一块小的芯片上面。
而外设就是除开cpu的一切外部链接的soc可以集成的外设可以叫内部外设
芯片的设计就是越来越集成化
再说一下我们裸机的学习虽然就是学习SOC芯片的
学习soc芯片的内核——cpu主要是学习他的工作原理如何操控控制cpu工作的——就是arm汇编指令集
学习soc芯片的外设——例如并口Nand控制器…..等等
最后把一个东西厘清楚一下
intel公司arm公司
构架
Intel是X86构架,用的CISC复杂指令集应用于pc机
而ARM用的是自己的ARM构架,核心是RISC精简指令集应用于联通开发
而AMD就是intel的老牌竞争对手同样生产的是pc机上的cpu
6,单片机与嵌入式的区别
先纠正一个误区
学习嵌入式并不一定须要单片机的基础如今我们从几个方面来剖析
6.1各自主流的芯片平台
单片机主要是51到复杂的stm32
嵌入式则是ARM和MIPS介绍一下二者主流应用MIPS构架的通常适用于路由器而其他嵌入式都是arm
6.2资源决定了各自的领域
单片机原先的51都是以字节为单位晓得stm32复杂一些到k为单位这也就造成芯片上资源有限以至于只能应用于一些小电器和终端
嵌入式则是以ARM处理器芯片片上资源多应用域就多了主要有智能手机,智能腕表摄像机路由器等等
6.3;开发模式
单片机为裸机开发通常为个人开发
嵌入式则须要利用操作系统进行开发通常为linux和android团队开发
linux通常应用于路由器那个一键启动的
android则是应用于须要用户进行操作的
6.4技术特点
编程语言方面
单片机主要使用C语言(少量用汇编),和标准C略有不同,极少使用结构体、函数表针等C语言中级特点。
而嵌入式开发较复杂,通常分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、数据结构、算法、函数表针(拿来实现面向对象)等中级特点使用比较多。
底层就是裸机开发驱动安装系统移植等等
软硬件组件方面
单片机多涉及一些简单外设,例如并口、I2C、ADC、LCD(小屏幕和帧率);
嵌入式系统则涉及更多复杂外设,例如网路(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。
6.5职业发展
单片机学习路线短,职业缓慢,工资发展很早达到困局linux学习论坛,通常困局工资6~8k
嵌入式学习路线长,职业生涯久,工资发展多年才能达到困局,通常困局工资12~15k。
7嵌入式系统构成的特征
7.1;嵌入式系统的特征
专用相对于pc机而言嵌入式就愈加专用了完全就是为了完成某项功能为制造的产品,该产品主要服务于这个功能
软硬件可剪裁可配置:对于不同的环境不同的功能须要进行配置
低帧率:由于现今的嵌入式设备都是电瓶供电所以低帧率也是嵌入式设备的主要方向之一
高可靠性、高稳定性:嵌入式设备有的应用于安全性要高的地方因而须要可靠稳定
软件代码短小精悍:代码短而且精
代码可固化;意思是代码可以烧写到芯片中去
实时性:
弱交互性:交换性就是人与系统进行交互弱交换性则表示不须要仍然交互诸如路由器这个精典的嵌入式系统
专用开发工具及开发环境:linux系统gcc编译器交叉编译链
7.2;嵌入式系统的组成
硬件
微处理器soc芯片
储存器显存和flash:flash虽然就是相当于硬碟一样的显存
I/O插口、输入输出设备等等
软件:分层的以便开发
BSP(boardsupportpackage)扳级支持包主要是一些驱动(最底层)
嵌入式操作系统:也是底层但在整个嵌入式系统中相当于中间人一样接收应用层指令调用底层驱动
应用软件
7.3;嵌入式系统的分层
最后我们也就确定了我们学习路线
先ARM再系统移植和linux网路编程和应用最后再驱动
由于驱动是一个承上启下的部份而且也是最难的一个部份
7.4嵌入式系统的发展史
总结发展的趋势
硬件越来越强硬件的外部插口越来越多价位越来越高
编程由汇编到了cyuy
界面越来越好交互越来越多
最后就到了物联网时代了
顾客端大型化智能家装智能化网路都联网了可视化随时随地都可以听到一些东西四处都是显示器了
低帧率特别重要的
8;交叉编译
先介绍交叉编译是一种哪些编译
在嵌入式开发中常常嵌入式设备的不足以支持我们在该设备上进行编撰代码编译运行所以我们只能在我们自己的笔记本机上编撰编译代码得到可执行文件,最后将可执行文件下载到嵌入式设备中进行运行调试这些就是交叉编译在不同的系统上进行交叉开发
8.1;两种开发模式
非嵌入式开发,A(类)机编撰(源代码)、编译得到可执行程序,发布给A(类)机运行。
嵌入式开发,A(类)机编撰(源代码)、编译得到可执行程序,发布给B(类)机运行
注意A类B类指的是操作系统
8.2;为何要有交叉编译
由于嵌入式设备常常cpu过分简单未能搭建开发环境,甚至操作系统都没有因而我们只能依靠桌面笔记本进行开发之后下载到嵌入式设备上进行运行调试
交叉编译可以起到了挺好的,高性能机器为底性能机器开发软件(可以包括裸机系统级应用级)
8.3交叉编译的特征要求
交叉编译必须须要一套的专有的交叉编译工具链链一套工具能够完整从桌面笔记本到嵌入式设备开发过程。
*因为可执行程序不能本地运行调试,因而必须配合一定手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启动、网络共享等)将可执行程序加载到目标嵌入式设备上运行及调试。
9;cpu设计与总线
总线分为地址总线和数据总线
CPU通过地址总线轮询,之后通过数据总线与外部设备互换信息。
地址总线就是传输的数据代表的是一个地址因而地址总线的数目就表示了才能读取到显存的大小
32位地址总线则可以表示4G
由于2的10次方是10241K=1024bit
2的10次方——表示1k
k的10次方——表示1M
M的10次方——表示1G
因而2的32次方表示4g
数据总线则表示数据通过该总线进行传输的
数据总线的位数表示CPU单次通讯能交换的信息数目;
我们所说的32位cpu64位cpu表示的都是数据总线的位数
比如32位cpu当我们传输的是int类型时一次就可以传过去而double类型时则须要传输两次就是这个道理
发觉short也是一次传输int也是一次传输对于数据总线的使用是一样的因而我们有时侯会把须要定义成short类型时的变量也只能定义成int变量对于总线的使用是一样d
总线的速率决定CPU和外设互换信息的速率。
注意
CPU的地址总线位数和数据总线可以不同(典型代表就是51单片机),并且通常都相同。
CPU的位数指的是数据总线的位数。
32位CPU轮询的范围是4G,所以最多支持4G显存;
数据总线是32位的,所以显存是32位的好,所以编程最好用int···
10;为何须要Jlinksd卡等辅助工具
10.1为何须要一些辅助工具
交叉编译,不易于本机运行调试程序。
嵌入式系统须要bootloader来启动,而bootloader必须首先存在于可启动介质中,这个过程须要专用工具。
嵌入式系统未能通过纯软件实现单步调试,因而必须依靠专用的调试器。
10.2;Jlink作用
下载可执行程序到目标机。
在目标机上实现单步调试中标linux,以便开发bootloader。
10.3;sd卡的作用
作为启动介质。工作方法是:事先用优盘将SD卡联接到开发机(通常是Windows笔记本),通过写卡软件将交叉编译得到的可执行程序镜像烧写到SD卡,之后将SD卡插入嵌入式目标机卡槽,设置正确的启动方法启动,则系统可以从SD卡中烧写的镜像处启动。
10.4网线转并口线的作用
并口本身拿来做嵌入式目标机的调试输出,主要目的是拿来监视及调试软件。
由于现今大部份个人笔记本(大部份台式机和几乎全部的电脑笔记本)都未配置DB9并口linux嵌入到arm,因而工作中通常直接使用USB转并口线来联接PC和开发板。
还有一些其他辅助工具
USBOTG线
DB9并口线
交叉网线