2022年嵌入式系统设计的最后知识点总结 .pdf
《2022年嵌入式系统设计的最后知识点总结 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式系统设计的最后知识点总结 .pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、_ 精品资料系统概念1、嵌入式系统的定义?以应用为 中心、以计算机技术为基础 、软硬件 可裁剪 、适应应用系统对功能、可靠性、 成本、体积、功耗严格要求的专用计算机系统。 “嵌入”、 “专用”、 “计算机”2、嵌入式系统的软、硬件组成?以及主要特点?软件 :从底层到上层:bootloader等系统初始化引导程序、设备驱动层(包括驱动程序、板级支持包 BSP 等) 、操作系统、用户应用程序。(底层为上层提供服务)开发软件 :即集成开发环境(asemmbler&compiler&linker&debugger&loader)硬件 组成:核心板 +外围板 +外设 (核心板:微控制器(CPU 和外设接
2、口、外设控制器)、电源、时钟、复位、SDRAM 、flash 。外围板面向外围设备,一般是引脚的集合、电平转换电路。外围设备。),当然也可以将核心板和外围板放在一起。硬件特点 :通常由嵌入式处理器和嵌入式外围设备组成,高度集成, 常采用 SOC 设计方法,对功耗、体积等有严格要求,定制性决定了它的可裁剪性,没有像计算机领域的垄断,解决方案不唯一。软件特点 :采用交叉开发方式,系统软件层次分明,操作系统为用户程序提供标准API,提供图形接口和文件系统。用户调用系统服务,系统调用设备驱动从而操纵硬件。3、嵌入式系统产品设计的基本流程?需求分析功能性需求是系统的基本功能,如输入输出信号、操作方式等;
3、非功能性需求包括系统性能、成本、功耗、体积、重量等因素。规格说明名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - _ 精品资料精确地反映客户的需求并且作为设计时必须明确遵循的要求。体系结构设计描述系统如何实现所述的功能和非功能需求,包括对硬件、 软件和执行装置的功能划分以及系统的软件、硬件选型等。软硬件设计基于体系结构,对系统的软件、硬件进行详细设计。系统集成把系统的软件、 硬件和执行装置集成在一起,进行调试,发现并改进单元设计
4、过程中的错误。系统测试对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。4、处理器及操作系统的选型主要考虑哪些方面? 操作系统本身所提供的开发工具 。 操作系统向硬件接口移植难度 。 操作系统的 内存要求 。 开发人员 是否熟悉 此操作系统及其提供的系统API 。 操作系统 是否提供硬件的驱动程序,如网卡驱动程序等。 操作系统的 是否具有可剪裁性。 操作系统 是否具有实时性能。5、交叉开发、交叉开发环境?为何需要交叉开发环境?在一台通用计算机(宿主机)上进行软件的编辑编译,然后下载到嵌入式设备(目标机)中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
5、 - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - _ 精品资料运行调试的开发方式交叉开发环境一般由运行于宿主机上的交叉开发软件(assembler&compiler&linker&debugger&loader) 、宿主机到目标机的调试通道组成需要交叉开发环境是因为目标机一般对体积、功耗等有严格限制,资源也面向应用,较为紧张,要求仅仅能流畅运行代码即可,而将用户开发软件 (包括各种库、 工具)放置在主机上,而且现在的集成开发环境提供了各种修改好的功能库,用起来也方便。6、嵌入式集成开发环境的主要功能?这
6、是由其组成决定的。Assembler将.c 源代码汇编, compiler 形成目标文件,linker 根据链接描述文件将各个目标代码链接定位生成可执行代码。Debugger有些交叉开发工具提供了仿真调试通道。Loader 可以将目标文件烧录进设备中(有时需要内部引导代码的配合)7、嵌入式 Linux 开发主要流程?搭建开发环境 -烧写 bootloader- 烧写内核 -烧写根文件系统-烧写应用程序。开发环境 :REDHAT LINUX 、下载相应的GCC 交叉编译器进行安装、配置开发主机 (配置 MINICOM和配置网络, MINICOM 软件的作用是作为调试嵌入式开发板信息输出的监视器和
7、键盘输入的工具,配置网络主要是配置IP 地址、NFS 网络文件系统, 需要关闭防火墙)烧写 bootloader 下载一些公开源代码的BOOTLOADER根据自己具体芯片进行移植修改。下载时,有些芯片没有内置引导装载程序,比如三星的ARM7 、ARM9 系列芯片,这样就需要编写烧写开发板上flash 的烧写程序。或者网络上有免费下载的WINDOWS 下通过 JTAG 并口简易仿真器烧写ARM 外围 flash 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 -
8、- - - - - - - - _ 精品资料芯片的程序。也有LINUX 下公开源代码的J-FLASH 程序。下载内核如果有专门针对你所使用的CPU 移植好的 LINUX 操作系统那是再好不过,下载后再添加自己的特定硬件的驱动程序,进行调试修改。下载根文件系统从 下载使用BUSYBOX 软件进行功能裁减,产生一个最基本的根文件系统。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs 、genromfs 等工具产生烧写映象文件。(文件系统就是把你硬盘上数据按照一定格式组织成一棵树。数据块对应名称。 删了它就相当于把硬盘格式化了。根文件系统就是出了内核以外,所有的系统文件存储的地方。之所
9、以成为根, 是因为有根才能成生长成树,是其它文件的最终挂载点。我们要明白根文件系统和内核是完全独立的两个部分,它是内核启动时所mount的第一个文件系统,里 面有内核启动所必须的数据,不然就退出启动文件系统这种机制有利于用户和操作系统的交互。数据块对应名称。尽管内核是Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具,尤其是LINUX 。)下载用户程序可以下载到根文件系统中,有的应用程序不使用根文件系统,而是直接将应用程序和内核设计在一起,这有点类似于UCOS-II 的方式。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
10、- - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - _ 精品资料8、嵌入式 Linux 开发环境中配置NFS 服务的目的?可以使不同机器、 不同操作系统之间通过网络共享文件,像访问本地文件一样访问远端系统上的文件,在开发阶段,主机制作基于NFS 的文件系统,制定开放目录,开放对象的IP 范围,将目录挂载到嵌入式设备后,嵌入式设备可以方便地访问、修改主机主机文件。9、硬件重定向?上课的时候老师举得printf()是个很好的例子,重定向程序是面向编译环境中的连接器的,是用户自己定义的C 库函数,有了它,在程序连接时连接器会连接用户自己编写
11、的C 库中的功能函数而不是标准C 库。 相当于将标准C 库进行了一次移植。从主机环境到实际运行环境的移植。比如:本来库函数fputc() 是把字符输出到调试器控制窗口中去的,但用户把输出设备改成了UART 端口 ,这样一来 ,所有基于 fputc() 函数的 printf() 系列函数输出都被重定向到UART 端口上去了。相当于实现类似的功能,但是底层的驱动变了。10、你认为一名好的嵌入式系统设计专业学生,应具备哪些能力?如何培养和提高这些能力?专业技能:微机原理 的知识,即知道微处理器的工作过程、工作原理,对51单片机、 X86T 体系、 ARM 体系的架构有一定的认识、 。电路知识 ,虽然
12、在系统设计中,硬件只占30%的工作量,而且随着系统复杂度的提高,对硬件的关心越来越少,但是对电路的了解程度会限制你代码的优化,是有寄存器编程不了解底层电路根本编不出程序来,而且在硬件出现问题的时候,要有能力准确判断。操作系统 , 随着 ARM 在嵌入式系统中占据主导地位, 单片机已经退出复杂应用,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - - _ 精品资料操作系统引入了嵌入式系统设计中,在操作系统提供的平台上做开发,对操作系统
13、功能、使用、层次组成的理解的重要性不言而喻。算法与数学 ,这关系着软件代码的优化实现,在高层次的编程中,算法结构和数学知识将发挥很大的作用。控制理论 ,因为嵌入式系统实现的最主要的功能就是智能控制,对控制思想、 控制算法、控制理论的理解有一定的重要性。专业思维:对嵌入式 软硬件 层次相当了解;对开发环境 及其原理 开发流程 有一定的认识;计算思维 :将计算思想、能力贯穿于“需选改用学” ,解决计算问题,一切归于二进制。职业病思维 :用嵌入式系统的思维去分析生活中遇到的设备,如果能分析明白或者做出推测,将是一件很开心的事情。“ 编码”思想:其实整个计算机世界,都体现着一种“编码”思想,人如何与机
14、器交互、器件之间如何交互、通信双方如何定义通信协议,这都体现着编码的思想。管理的思维 :因为在复杂的计算机系统也是人设计得,各模块的工作协调无处不散发着管理的思想,把系统调用抽象为人事安排,将变得很有爱。要相信 你要你想到的解决问题的方法(算法) ,肯定能编出来。要相信 ,真理肯定是存在的, 你还没有到遇到未解之谜的程度,即只要是问题就能解决,遇到需要反复测试的时候, 不能气馁, 也许只是哪个知识点理解的有偏颇,离真理只有一步之遥。从历史看起、 从总体看起 :用历史的眼光和谦虚但不自卑的态度看待复杂的系统和知识,这样一切就都简单又好理解。名师资料总结 - - -精品资料欢迎下载 - - - -
15、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - - - - - _ 精品资料认识指导实践,实践反作用认识。管理的思想。个人品质:不悲不喜 :在嵌入式开发过程中, 会有一个又一个问题出现, 不要因为一个问题的解决和搁置而悲喜,更大的喜剧在前方,也许更大的悲剧也在酝酿。勇于钻研 :对解决问题有强烈的向往, 有征服的渴望。 所以一些很恬淡的人往往不会成为 IT 行业的精英。并从中找到成就感、存在感乐在其中 :俗话说兴趣是最好的老师, 拿欣赏的眼光看待内核的管理思想、看待精妙的算法、看待精密的电路设计,你
16、会发现一切都美好起来。要会学习:有强大的学习能力,要会查资料、会聊天、会推测。用“学道”的思维去学习一切知识,抓住本质,老子说,为学日益,为道日损,损之又损,以至于无为,无为而无不为。 ,最复杂的科学,也能用最朴素的话解释。用历史的眼光、用总体的眼光去学习。耐得住寂寞还得有兴趣爱好。有时会比较枯燥和辛苦,除了对专业的兴趣之外,最好能有些调节生活的兴趣爱好,比如唱歌、画画、旅行、摄影、健身等等。如何提高 ?因为嵌入式系统设计所涉及的知识面相当广,微机原理知识、 电路知识、 接口知识、操作系统、甚至是控制理论、数学计算等等,所以单单学习知识点的话,会很枯燥而且提高很慢,一切以应用为中心,在做项目中
17、成长 ,加深理解,边学变做,把解决问题当做学习的目标。找若干良师益友 ,他们能带给你好的影响,包括做项目和做人, 在与他们的交流共事中你可以迅速提高。大量的阅读, 开阔眼界,了解当前行业的发展状况, 大量阅览 一些典型系统的设计, 所谓书到用时方名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 38 页 - - - - - - - - - _ 精品资料很少是很有道理的。学一些跟专业相关的知识 ,如数据库、网站设计等,不但能在设计系统时打开思维,还可以给IT 男换个口味,陶冶
18、一下情操。ARM 体系结构11、ARM 硬件电路最小系统组成?微控制器(例如2410 ,CPU+ 外设接口 /外设控制器)电源、时钟、复位、存储器( SDRAM/FLASH(NOR8 位、 NAND8 16 32位) )FLASH :存放操作系统、用户程序等需要掉电后保存的数据SDRAM :系统运行的主要区域,系统及用户数据及堆栈,都在这个区域。有时启动模式选择有时需要JTAG :对芯片内所有部件进行访问,通过该接口对系统调试、编程12、ARM 处理器的主要工作模式?ARM 的 7 种处理器模式(不同的模式下有自己的行为准则)USR ;正常程序执行模式FIQ;支持高速数据传送和通道处理IRQ
19、;用于通用中断的处理。管理( SVC ) ;操作系统保护模式中止未定义系统除了 USR 之外,其它6 种又称为特权模式。6 中种除了系统模式又称为异常模式(即处理异常时的工作模式) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 38 页 - - - - - - - - - _ 精品资料在软件控制下可以改变模式(即改变CPSR 相应),外部中断或异常处理也引起模式变化,用户模式下不能改变模式。13、核心寄存器的作用:R13 通常用作堆栈指针 ,称为 SP,被初始化为多个
20、模式下的堆栈。R14 用作子程序连接寄存器 LR,中断异常或执行BL 时得到 PC 即 R15 的备份。Cpsr 程序状态寄存器 ,32 位只用 12 位,所有模式下均可见。Spsr 保存程序状态寄存器 ,即发生异常时对CPSR 进行保存,保存当前状态。5 个异常模式下均有各自的SPSR 。14、ARM 处理器的启动过程?首先,看一下, ARM 启动时的硬件机制, 上电产生 复位异常 , CPU 强制 PC 为 0 x00000000 ,执行复位异常处理函数,接下来就相当于执行了STRARTUP.S的功能。 是给用户程序执行给以合适的工作环境,设置中断向量表、 堆栈、时钟、完成内存拷贝等, 相
21、当于 STARTUP.S或者 bootloader的前端代码,是开机执行的程序。.拿 2410 的启动代码举例,它启动CPU的过程是:1、在起始地址分配中断向量表 即中断处理函数 (CPU 要求的),以为向量空间只有4 字节,所以一般只是一个跳转指令,去别处执行。在跳到复位异常 之后,关闭中断,关闭看门狗。/2、之后初始化存储器系统3、初始 多个模式下的堆栈(模式切换时,硬件给SP 置位)/4、初始化有特殊要求的外围设备,如LED 灯、看门狗5、初始化用户的执行环境(在FLASH 中运行太慢了,把代码整体搬迁 到 RAM 中)/6、切换处理器的工作模式7、调用主程序名师资料总结 - - -精品
22、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - _ 精品资料15、当正常的程序执行流程发生暂时的停止时,称之为异常对异常的处理有优先级, 处理异常需要跳转至异常模式。并根据异常向量跳转至响应的子程序(执行之前必须保存现场) ,即异常出现后强制跳转至固定的存储器地址执行。异常是比中断更大的概念。ARM 有 7 种异常。包括复位管理模式0 x00000000 软中断 SWI 管理模式0 x00000008 IRQ IRQ 模式0 x00000018 FIQ
23、FIQ 模式0 x0000001c 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 38 页 - - - - - - - - - _ 精品资料还包括预取中止、数据中止、未定义。(异常出现时,异常模式分组的R14 和 SPSR 用于保存下一条程序地址和CPSR 。异常返回时, SPSR-CPSR ,R14-PC )在启动代码中首先就是设置所谓的异常向量表, 也就是在指定的位置放置异常处理程序(一般是跳转指令) 。异常发生时, CPU 会根据规定强制置PC,恰好去执行我们设
24、置好的跳转指令,接着执行服务程序。异常处理流程 : (硬件机制,只做这些,跟代码无关。 )1、根据异常类型,强制设置CPSR 的运行 模式位2、 在切换到的异常模式下, 在当前的链接寄存器LR (r14) 中保存上个模式的PC值-4,以便程序在处理异常返回时能从正确的位置重新开始执行3、将上一个模式的CPSR 复制到当前异常模式的SPSR 中(注意 1 与 2、3 的矛盾,不能独立执行,但是是硬件实现的,无关代码)4、强制 PC。然后就到了执行代码的时候从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。异常返回流程 : (有指令)1、将 LR 寄存器中的值减去相应的偏移量(
25、对于 IRQ/FIQ 是 4)送到 PC 中2.、将 SPSR 复制回 CPSR (注意 1 与 2 的矛盾,不能独立执行, 用一条带 的指令执行, 怎么着都是一条 )3、清除禁止中断标志 ,如果它被设置成使能4、所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复(即出栈)。对中断嵌套的处理:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - _ 精品资料注意:1、保存在 LR 中的 PC 值,和该值返回时的处理过程。当 IR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年嵌入式系统设计的最后知识点总结 2022 嵌入式 系统 设计 最后 知识点 总结
限制150内