1 前言
day1.txt
主要内容:
ARM的概念
ARM内核的授权与应用
ARM内核的种类
ARM内核内部的寄存器
==================================================
0. 学习出路
嵌入式应用软件工程师:
. C、C++、JAVA
. WinCE
. Linux C(Posix、交叉编译、移植)
. 嵌入式图形开发(QT(C++)、MINIGUI(C))
. Android(C、JAVA, Google SDK)
嵌入式驱动工程师:
. 硬件(IO、IRQ、时序)
. Linux C(POSIX)
. Kernel
. BootLoader移植
. 移植内核
. 移植应用程序
. ARM CPU
. Device(SDRAM、NANDFLASH、LCD、AUDIO、NET、UART、USB、SD)
嵌入式硬件工程师:
. FPGA
. PCB
==============================================================
1.课程分析
<1>本阶段学习是基于ARM公司CotexA9架构处理器核心
samsung提供的一款型号为Exynos4412的目标嵌入式处理器为
平台的裸板驱动开发。
Exynos猎户座 音标:['eksnəs] 由两个希腊语单词组合
而来Exypnos和Prasinos分别代表智能与环保之意。Exynos系列处
理器主要应用在智能手机和平板电脑等移动终端上。
<2>本阶段的学习会穿插ARM公司ARM11处理器架构核心
samsung提供的一款型号为S3c6410的目标嵌入式处理器为平台的
裸板驱动开发。
2. 课程内容
<1> 嵌入式开发的概述
<2> 嵌入式开发环境的打架
<3> ARM核心的工作模式、工作状态、异常、指令集等
<4> bootloader的作用及常用支持命令
<5> 基于exynos4412 SOC的外设驱动的编写
3. 嵌入式系统基础知识
<1> 嵌入式的概念
按照电器工程协会(IEEE)的定义,嵌入式系统是用来控制、监控,或者辅助操作 机器、
装置、工厂等大规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行定义的。
更具一般性的定义如下:嵌入式系统是指以应用为中心,以计算机技术为基础,软件
硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
根据以上可以看出,嵌入式系统是由硬件和软件相结合组成的具有特定功能、用于
特定场合的独立系统。其硬件主要由嵌入式微处理器、外围硬件设备组成;其软件主要包括
底层系统软件和用户应用软件。
<2> 嵌入式系统的特点
@专用、软硬件可裁剪可配置
@低功耗、高可靠性、高稳定性
@软件代码短小精悍
@代码可以固化
@实时性
@要求开发、设计人员有较高的技能
<3> 嵌入式系统的组成
嵌入式系统总体上是由硬件和软件组成的,硬件是其基础,软件是其核心与灵魂。
应用软件
---------------------------------
嵌入式操作系统
---------------------------------
Hardware (嵌入式处理器,外围设备)
嵌入式系统硬件组成:
嵌入式处理器(cpu)是嵌入式系统的核心部分,它与通用处理器最大的
区别在于,嵌入式处理器大多工作在为特定用户群所专门设计的系统中,它将通用
处理器中许多由板卡完成的任务集成到芯片内部,从而有利于嵌入式系统的设计趋于
小型化,同时还具有很高的效率和可靠性。流行的体系结构有30多个系列,其中以ARM
powerPC、MIPS等使用得最为广泛。
外围设备是嵌入式系统中用于完成存储、通信、显示等辅助功能的其他部件。
嵌入式外围设备按功能可以分为:
@存储设备:
Exynos4412片上集成了256KSRAM,64KROM
RAM的访问速度快,掉电后数据会丢失,而ROM掉电后数据不会丢失。
RAM又可分为SRAM(静态存储器)和DRAM(动态存储器)。
SDRAM是DRAM的一种,它是同步动态存储器,利用一个单一的系统
时钟同步所有的地址数据和控制信号。
DDR SDRAM
EPROM(Erasable Programmable Read Only Memory)、
EEPROM(Electrically Erasable Programmable Read-Only Memory)
都是ROM的一种,分别为可擦除ROM和电可擦除ROM。
Flash也是一种非易失性存储器,掉电不会丢失,它擦写方便,
访问速度快, 比如nandflash, norflash等等。
@通信设备:RS-232,以太网接口,Bluetooth, Wifi等。
@显示设备:LCD显示屏等。
标配LCD分辨率:800*480(7寸)
@和用户交互的设备:
按键,触摸屏(5点)
嵌入式系统软件组成:
嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口
向下提供与硬件设备交互的接口,管理复杂的系统资源,同时,它还在系统
实时性,硬件依赖性、软件固化性及应用专用性等方面,具有更加鲜明的特点。
常见嵌入式操作系统:
@商业版嵌入式操作系统:
VxWorks,美国WindRiver公司于1983年设计的一种嵌入式实时操作系统
(RTOS),它是在当前市场占有率最高的嵌入式实时操作系统。由于它的
开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。
源码不公开,所以造成它部分功能的更新滞后。
@开源版嵌入式操作系统
嵌入式linux是将日益流行的Linux操作系统进行裁剪修改,使之能在
嵌入式计算机系统上运行的一种操作系统。
Linux做嵌入式的优势:
首先,Linux是开放源代码的
其次,Linux的内核小、效率高
第三,Linux是免费的OS,在价格上极具竞争力
第四,Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统
第五,Linux内核的结构在网络方面是非常完整的
4. ARM是什么?
可以这样理解
<1>ARM是英国一家公司,公司全程是:Advanced RISC Machines
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术
的授权。
ARM公司通过出售芯片技术授权,建立起新型的微处理器设
计生产和销售商业模式。ARM将其技术授权给世界上许多著名的
半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的
ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球
性RISC标准的缔造者。
竞争对手:英特尔
市场份额:
手机处理器90%的市场份额
上网本处理器30%的市场份额
平板电脑处理器70%的市场份额
<2> ARM也可以理解成一种处理器的架构。
标准的嵌入式系统架构有两大体系,RISC 和 CISC。
目前占主要地位的是所谓RISC(Reduced Instruction Set
Computer,精简指令集计算机)处理器。RISC体系的阵营非
常广泛,从ARM、MIPS、PowerPC、ARC、Tensilica等等,
都是属于RISC处理器的范畴。不过这些处理器虽然同样是属
于RISC体系,但是在指令集设计与处理单元的结构上都各有
不同,因此彼此完全不能兼容,在特定平台上所开发的软件
无法直接为另一硬件平台所用,而必须经过重新编译。
其次是CISC(Complex Instruction Set Computer,复杂指
令集计算机)处理器体系,我们所熟知的Intel的X86处理器
就属于CISC体系,CISC体系其实是非常低效率的体系,其指
令集结构上背负了太多包袱,贪大求全,导致芯片结构的复
杂度被极大的提升。
5. ARM和SAMSUNG的关系
ARM内核的授权与应用
-------------------------------------------------------------------------
ARM内核 嵌入式处理器(SOC) 产品
-------------------------------------------------------------------------
ARM1176JZ(F)-S Samsung S3C6410 Apple iPhone(original and 3G)
Apple iPod touch (1st and 2nd Generation)
Motorola RIZR Z8
-----------------------------------------------------------------------
ARM920T Samsung S3C2440 导航设备
and S3C2410
-----------------------------------------------------------------------
Cortex-A9 三星Orion/Exynos 4210 三星GALAXY SIII(Exynos4412)
SAMSUNG Galaxy S音译中文为(三星盖世S系列)
/4212/4412 三星GALAXY NoteII(Exynos4412)
--------------------------------------------------------------------------------------
6. ARM内核种类
架构 处理器家族
ARMv1 ARM1
ARMv2 ARM2、ARM3
ARMv3 ARM6, ARM7
ARMv4 StrongARM、ARM7TDMI、ARM9TDMI
ARMv5 ARM7EJ、ARM9E、ARM10E、XScale
ARMv6 ARM11、ARM Cortex-M
ARMv7 ARM Cortex-A、ARM Cortex-M、ARM Cortex-R
ARMv8 Cortex-A50[9],Cortex-A72
7. ARM内核内部的寄存器
寄存器
寄存器 R0-R7 对于所有CPU模式都是相同的; 它们不会被分块。
对于所有的特权CPU模式,除了系统CPU模式之外,R13和R14都是分块的。也就是说,
每个因为一个异常(exception)而可以进入模式,有其自己的R13和R14。这些寄存器通常
分别包含堆栈指针和函数调用的返回地址。
寄存器,对于所有CPU模式
--------------------------------------------------------------
usr sys |svc | abt |und | irq | fiq
--------------------------------------------------------------
R0
--------------------------------------------------------------
R1
--------------------------------------------------------------
R2
--------------------------------------------------------------
R3
--------------------------------------------------------------
R4
--------------------------------------------------------------
R5
--------------------------------------------------------------
R6
--------------------------------------------------------------
R7
--------------------------------------------------------------
R8 | R8_fiq
---------------------------------------------------------------
R9 | R9_fiq
---------------------------------------------------------------
R10 | R10_fiq
---------------------------------------------------------------
R11 | R11_fiq
---------------------------------------------------------------
R12 | R12_fiq
---------------------------------------------------------------
R13 | R13_svc |R13_abt| R13_und |R13_irq| R13_fiq
---------------------------------------------------------------
R14 | R14_svc |R14_abt| R14_und |R14_irq| R14_fiq
---------------------------------------------------------------
R15
---------------------------------------------------------------
CPSR
---------------------------------------------------------------
|SPSR_svc |SPSR_abt|SPSR_und |SPSR_irq| SPSR_fiq
---------------------------------------------------------------
同名的名称:
R13 也被指为 SP, the Stack Pointer.
R14 也被指为 LR, the Link Register.
R15 也被指为 PC, the Program Counter.
7. 嵌入式处理器(SOC)的内部组成
8. 开发板的介绍
====================================================================
目标:使用程序控制soc和外接设备(控制soc按照外接功能设备需求工作)
soc资源:引脚,主频/ram/rom/外接内存多大
嵌入式系统:
bootloader--->os---->fs
bootloader 是加载和引导操作系统内核的程序,为操作系统运行准备条件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步