嵌入式入门经典教程.ppt
- 文档编号:15914203
- 上传时间:2023-07-09
- 格式:PPT
- 页数:23
- 大小:1.17MB
嵌入式入门经典教程.ppt
《嵌入式入门经典教程.ppt》由会员分享,可在线阅读,更多相关《嵌入式入门经典教程.ppt(23页珍藏版)》请在冰点文库上搜索。
1,怎样学习ARM嵌入式开发?
Jack技术收集硅谷芯微技术学院http:
/www.threeway.cc,2,开场介绍,本次课程讲什么?
Howto,notWhatis本次课程谁来讲?
jackthreeway.cc本次课程适合的听众是哪些人?
已经知道,了解嵌入式开发的人已经接触并有所实践,但还没摸到门道的人不包括已经从事ARM开发一年以上的熟手本次课程听完后会有什么收获?
Knowashortcut(捷径)fromanewbie(菜鸟)toanb(牛人),3,今日主题,ARM嵌入式开发领域包括什么?
软件开发操作系统以下的底层偏硬件驱动在简单操作系统如uC/OS-II之上的程序开发不包括什么?
硬件设计类似Linux这样操作系统以上的纯应用开发,4,首要问题,怎样学习ARM嵌入式开发?
掌握这个领域的知识全景图然后结合项目开始修炼怎样进入一个陌生的村庄?
拿到这个村庄的地图并找到一条进入村庄路线,5,ARM嵌入式开发,专业词汇和所属主题领域ARM内核领域(10个细分领域)ARM芯片领域(5个细分领域)ARM工具平台领域(2个细分领域)ARM软件开发领域(3个细分领域)专业词汇举例SVCJTAGJazelleMDKfromelf,6,ARM内核领域,ARM体系结构Load/Store体系,Big/LittleEndian大小端格式,RISC/CISC指令集,Pipeline流水线ARM工作模式7种工作模式:
USR,SYS,SVC,IRQ,FIQ,UND,ABT;其中5种异常模式ARM寄存器37个寄存器:
R0-R12,R13(SP),R14(LR),R15(PC),CPSR(SPSR)ARM异常7种异常,异常向量表,异常优先级,异常处理程序,处理器现场,现场的保存和恢复AMBA总线AHB(高性能总线),ASB(系统总线),APB(外设总线),7,ARM内核领域,ARM内核技术TrustZone,Jazelle,NEON,Thumb-2,SIMD,MMU,MPUJTAG标准IEEE1149.1,TDI,TDO,TCK,TMS,TRST,边界扫描链,H-jtag,Banyan,GiveIOARM内核分类ARM7TDMI,ARM926,StrongARM/XScale,ARM10,ARM11,Cortex-(A/R/M),SecurCoreARM汇编指令mov,add,sub,b,bl,ldr,str,ldmfd,stmfd,mrs,msr,swi,mrc,mcrMMU内存管理单元VA/PA,I-Cache/D-Cache,WriteBuffer,ContextSwitch,CP15,TLB,AP,DomainAccessControl,CacheCoherence,8,ARM芯片领域,ARM芯片外设控制器MemoryController(内存控制器),WatchDog(看门狗),GPIO(通用IO),UART(串口),Timer(定时器),InterruptController(中断控制器),NandFlashController,Clock&PowerManagement(时钟和电源管理),DMA(直接存储访问),USBController,LCDcontroller,ADC,IIC,IIS,SPI,AC97,Camera,MMC/SD最小系统处理器,时钟,电源,PLL锁相环,存储器,通讯端口,外设接口存储器件SRAM,SDRAM,NorFlash,NandFlashARM处理器Samsung:
S3C4510,S3C44B0,S3C2410,S3C2440,S3C6410,SoC设计FPGA,CPLD,VHDL,Verilog,9,ARM工具平台领域,ARM开发调试工具SDT,ADS1.2,AXD,RealView,KEILMDK4.11(RVMDK4.11)make,hypertrm(超级终端),minicomARM命令行工具armcc,armasm,armlink,fromelf,10,ARM软件开发领域,嵌入式操作系统VxWorks,RTLinux,uC/OS-II,WinCE/WM外设驱动程序volatile关键字,位操作bit,时序图Timing,管脚功能Pinfunction,外设控制/数据/状态寄存器程序的存储,加载和运行RO段,RW段,ZI段,ro-base/rw-base,栈空间,堆空间,位置无关代码PIC,启动搬移代码,11,细分领域的自我认知,人类对于外部世界的认识在舒适区我们得心应手,但学到的东西很少。
在恐慌区我们感到忧虑,恐惧,不堪重负。
在学习区我们可以充分锻炼自我,挑战自我。
只有持续留在“学习区”内,人才会进步。
12,课堂讨论,以上提到的20个细分知识领域,请您画一张图来表示目前你的掌握了解程度。
PanicZone(恐慌区)完全陌生(从来没有听过,也没有看过)LearningZone(学习区)了解(自己看过,听别人说过)熟悉(自己做过,但还不能指导别人)ComfortZone(舒适区)掌握(能够指导别人,讲述给别人),13,第二个问题,从哪里入手?
重视并深刻掌握其中的核心概念寄存器地址异常和中断,14,核心概念之一,寄存器ARM内核寄存器R0-R12R13(sp)R14(lr)R15(pc)CPSR,SPSRARMSoC特殊功能寄存器SFR(SpecialFunctionRegister),15,核心概念之二,地址C程序中变量的“地址”:
&aSoC特殊功能寄存器的“地址”:
0x48000000寻址方式里面的“地址”:
ldrr0,r1二进制指令里面的“地址”:
0xE59FF018存储芯片内部的“地址”:
0x4h操作系统之上应用程序的“(虚)地址”CPLD器件对应的“(假)地址”,16,核心概念之三,异常和中断异常是属于ARM内核体系结构的概念中断是属于ARMSoC处理器的概念了解软件中断(SWI)是实现操作系统提供系统调用的重要手段了解硬件中断(例如Timer定时器)是实现操作系统时间片的重要手段,17,行胜于言,如何实践?
如何修炼?
第一重找一块开发板,自己动手,给它编写一个可以实用的Bootloader,能够实现外部程序的下载,执行和固化。
第二重在自己能够完整实现一个Bootloader的基础上,移植一个开源的操作系统(如uC/OS-II,或者Linux)第三重基于或不基于这个操作系统,实现一个面向用户的应用。
(如一个音频播放器,或者一个U盘),18,自我修炼之第一重境界,为什么要编写一个Bootloader?
从根本上掌握一个嵌入式开发板底层的软硬件系统是怎样运转起来的时钟频率如何设置看门狗所起作用串口如何工作通讯协议如何实现库函数反汇编函数栈空间,19,自我修炼之第二重境界,为什么要移植一个操作系统?
了解操作系统和底层硬件之间的依赖关系,知道哪些是移植相关的部分(即接口)定时器中断(时钟节拍)异常处理和现场保存恢复进程,进程控制块处理器现场进程的上下文切换中断级别的进程切换,20,自我修炼之第三重境界,为什么要实现一个用户应用?
一个音频播放器DMA控制器,Interrupt中断控制器IIS总线UDA1341声卡芯片驱动WAV/Mp3音频文件格式LCD液晶显示驱动一个U盘USB协议FAT文件系统格式SCSI命令集NandFlash存储芯片驱动,21,推荐参考资料,ARMArchitectureReferenceManualPDF,PartAARM体系结构与编程清华大学出版社,杜春雷著源码开放的嵌入式系统软件分析与实践:
基于SkyEye和ARM开发平台北京航空航天大学出版社,陈渝李明杨晔著uCOS-II源码公开的实时嵌入式操作系统中国电力出版社,邵贝贝译,22,总结,怎样学习ARM嵌入式开发?
怎样入手?
怎样修炼?
Q&A,23,硅谷芯微技术中心:
网址:
www.threeway.cc,JACK技术收集,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 入门 经典 教程