常见的嵌入式linux学习和如何选择ARM芯片 问答
arm嵌入式系统基础教程课后答案.doc
arm 嵌入式系统基础教程课后答案【篇一:arm 嵌入式系统基础教程习题答案周立功】/p> 1 、举出3 个书本中未提到的嵌入式系统的例子。
答:红绿灯控制,数字空调,机顶盒2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
嵌入式微处理器(embedded microprocessor unit, empu)嵌入式微控制器(microcontroller unit, mcu)嵌入式dsp 处理器(embedded digital signal processor, edsp)嵌入式片上系统(system on chip)4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。
其次,提高了开发效率,缩短了开发周期。
再次,嵌入式实时操作系统充分发挥了32 位cpu 的多任务潜力。
第二章1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目 4 个阶段。
识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。
执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。
ARM复习课后题答案
1.国内嵌入式系统行业对嵌入式系统的定义是什么?如何理解答:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
从这个定义看以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统要求进行合理的裁剪利用。
因此有人把嵌入式系统比作是一个针对特定的应用而量身定做的专用计算机系统。
2.当前最常见的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点答:嵌入式linux和嵌入式实时操作系统uc/os-IILinux:(1)linux是源码开放的,每一个技术细节都是透明的,易于裁剪定制。
(2)目前嵌入式linux已经在多种嵌入式处理器芯片移植成功,有大量且不断增加的开发工具,这些工具为嵌入式系统开发提供了良好的开发环境。
(3)Linux内核小、功能强大、运作稳定、效率高。
Ucos:(1)源代码公开(2)可移植性。
(3)可固化(4)可裁剪(5)占先式(6)多任务(7)可确定性。
(8)系统服务第2章ARM技术与ARM体系结构3.arm处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处理器在什么情况下进入相应的模式。
答:ARM 处理器共有7 种工作模式:用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。
在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式FIQ 模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先级(fast)中断产生时将会进入这种模式。
IRQ 模式:也称为普通中断模式,:当一个低优先级中断产生时将会进入这种模式。
在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。
通常的中断处理都在IRQ 模式下进行。
SVC 模式:称之为管理模式,它是一种操作系统保护模式。
当复位或软中断指令执行时处理器将进入这种模式。
嵌入式ARM微处理器选型指南
嵌入式ARM微处理器选型指南要选好一款处理器,要考虑的因素很多,不单单是纯粹的硬件接口,还需要考虑相关的操作系统、配套的开发工具、仿真器,以及工程师微处理器的经验和软件支持情况等。
微处理器选型是否得当,将决定项目成败。
当然,并不是说选好微处理器,就意味着成功,因为项目的成败取决于许多因素但可以肯定的一点是,微处理器选型不当,将会给项目带来无限的烦恼,甚至导致项目的流产。
1嵌入式微处理器选型的考虑因素在产品开发中,作为核心芯片的微处理器,其自身的功能、性能、可靠性被寄予厚望,因为它的资源越丰富、自带功能越强大,产品开发周期就越短,项目成功率就越高。
但是,任何一款微处理器都不可能尽善尽美,满足每个用户的需要,所以这就涉及选型的问题。
(1)应用领域一个产品的功能、性能一旦定制下来,其所在的应用领域也随之确定。
应用领域的确定将缩小选型的范围,例如:工业控制领域产品的工作条件通常比较苛刻,因此对芯片的工作温度通常是宽温的,这样就得选择工业级的芯片,民用级的就被排除在外。
目前,比较常见的应用领域分类有航天航空、通信、计算机、工业控制、医疗系统、消费电子、汽车电子等。
(2 )自带资源经常会看到或听到这样的问题:主频是多少?有无内置的以太网MAC?有多少个I/O 口?自带哪些接口?支持在线仿真吗?是否支持OS,能支持哪些OS?是否有外部存储接口?……以上都涉及芯片资源的问题,微处理器自带什么样的资源是选型的一个重要考虑因素。
芯片自带资源越接近产品的需求,产品开发相对就越简单。
(3)可扩展资源硬件平台要支持OS、RAM和ROM,对资源的要求就比较高。
芯片一般都有内置RAM和ROM,但其容量一般都很小,内置512 KB就算很大了,但是运行OS 一般都是兆级以上。
这就要求芯片可扩展存储器。
⑷功耗单看“功耗”是一个较为抽象的名词。
这里举几个形象的例子:①夏天使用空调时,家里的电费会猛增。
这是因为空调是高功耗的家用电器,这时人们会想,“要是空调能像日光灯那样省电就好了”。
arm芯片选型
arm芯片选型在选择ARM芯片时,需要考虑一系列因素,包括性能要求、功耗要求、功能要求等等。
以下是一些常见的ARM芯片选型指南。
首先,要考虑应用场景和性能要求。
如果您的应用需要高性能处理,可以考虑选择高端的ARM芯片,比如ARM Cortex-A 系列,如Cortex-A76、Cortex-A77等。
这些芯片在多核处理和浮点计算方面具有优势,适用于需要高计算能力的应用,比如服务器、工作站和高端嵌入式系统。
如果您的应用对性能要求不高,或者对功耗有更高的要求,可以选择低功耗ARM芯片,比如ARM Cortex-M系列,如Cortex-M0、Cortex-M3、Cortex-M4等。
这些芯片适用于低功耗应用,比如物联网设备、传感器、嵌入式控制器等。
其次,要考虑开发工具和生态系统支持。
ARM架构是广泛采用的架构,具有丰富的软件和工具支持。
开发人员可以使用ARM提供的开发工具链,如Keil MDK和Arm GCC等,进行软件开发。
此外,ARM还有一个庞大的社区和生态系统,开发人员可以从中获得技术支持和资源共享。
第三,要考虑成本因素。
不同的ARM芯片具有不同的定价,选择芯片时需要根据预算和性能需求来进行权衡。
通常来说,高性能ARM芯片的价格相对较高,低功耗ARM芯片的价格相对较低。
第四,要考虑通信接口和外设支持。
不同的ARM芯片具有不同的通信接口和外设支持,比如UART、SPI、I2C、USB、Ethernet等。
根据应用需求,选择具备相应接口和外设支持的芯片是非常重要的。
最后,要考虑供应商支持和产品可靠性。
选择有良好供应链的供应商,并对其产品的可靠性进行评估,是确保系统稳定性和可维护性的关键。
总结起来,ARM芯片的选型需考虑性能要求、功耗要求、功能要求、开发工具和生态系统支持、成本因素、通信接口和外设支持、供应商支持和产品可靠性等因素。
只有综合考虑这些因素,并根据应用需求进行权衡,才能选择到适合的ARM芯片。
嵌入式Linux系统开发教程参考答案
参考答案第一章p20一、填空题。
1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能。
2、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、内核可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。
4、嵌入式处理器目前主要有ARM、MIPS、Power PC、68K等,其中arm处理器有三大特点:体积小、低功耗、的成本和高性能,16/32位双指令集,全球合作伙伴众多。
5、常见的嵌入式操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II和eCOS。
6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。
二、选择题1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:、存储器(SDRAM、ROM等)、设备I/O接口等。
(A)A、嵌入式处理器B、嵌入式控制器C、单片机D、集成芯片2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。
(D)A、分时多任务操作系统B、多任务操作系统C、实时操作系统D、实时多任务操作系统3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是。
(B)A、PalmB、VxWorksC、LinuxD、WinCE4、嵌入式系统设计过程中一般需要考虑的因素不包括:()A、性能B、功耗C、价格D、大小5、在嵌入式系统中比较流行的主流程序有:()A、AngelB、BlobC、Red BootD、U-BootA DB ?A三、叙述题1、举例说明身边常用的嵌入式系统。
如何正确选择嵌入式解决方案?
图 5 开发内容 2. 提供稳定的硬件和底层软件平台,解决用户产品稳定性的疑虑; 一款稳定的 MiniARM 核心板可解决用户端对稳定性的疑虑,同时 ARM9,Cortex-A7 核心 板的半开源内核源代码是可直接在致远电子官网直接下载,Cortex-A8 ,Cortex-A9 核心板 的内核源代码可根据项目需求选择性提供。说到内核源码提供问题,有用户会提到为什么某 公司可提供全部内核源代码,原理图和 PCB 文件而且价格有优势,而致远电子却不能全部无 偿提供呢?一个公司将核心技术全部提供这可能吗?即使某些小公司为争取订单全部提供 了,一款稳定性不能得到保证的产品,用户敢放心使用吗?没有庞大研发团队的技术支持, 单价再有优势,服务没保证用户有实力自己解决底层 BUG 吗? 3. 推荐标准的硬件功能设计和软件 Demo,让开发设计更轻松; 模拟用户使用 Cortex-A7 平台核心板,用户资源需要 10 路 UART 但是核心板资源才 8 路,如何解决?致远电子可提供标准电路一路 I2C 扩展两路 UART,并提供完整驱动。如果 UART 还不够用,致远电子提供 GPMC 扩展 4 路或 8 路的 UART 方案,并提供完整驱动,类似 此类方案还有 GPMC 扩展以太网,I2C 控制 RTC,SPI 通讯协处理器等等。选择一个正确的平 台,让研发变的轻松愉快。 4. 自主产品线、资本运作,为产品的一致性和稳定货期报价护航; 致远电子核心板连接器,通过了四代产品迭代,从 2.54MM 的排针连接器,到邮票孔, 再到 2.0MM 排针连接器,再到最终的日本广濑连接器。期间经历了排针难生产,插拔困难, 生产损耗大,易氧化等等问题,而邮票孔生产加工核心板重复回流焊导致芯片虚焊,邮票孔 焊接每次需手动条件且容易连锡,售后维修难度非常大等等问题,最终更换为日本广濑板对 板连接器,彻底解决以上的问题。 目前大部分用户均不具备自主贴片生产的能力,如何保证 BGA 的可靠性焊接呢?选择一 家大的贴片厂商会带来高额的生产费用,选择一家小规模的贴片厂商产品贴片的一致性及可 靠性又得不到保证。致远电子拥有四条自主生产的产品线,可从根本上解决用户的生产难的 问题。 目前很多中小型企业物料管控方面存在无法解决的难题,没有一个好的供应链。常常因 订单需求快速购买市场现货物料,往往存在价格高而且不一定有货,有货不能保证是否为原 厂还是假货。Flash、内存等等核心器件遇到残次品面临的将是整板报废烧 CPU 等等严重后 果,及时是小小的电阻电容也能导致板子不开机的现象。致远电子的资本运作,核心板所有 物料均通过原厂或正规代理商提前备货,保证物料的一致性和产品供货周期。
学完stm32开发板下一步如何选嵌入式ARM开发板
学完stm32开发板下一步如何选嵌入式ARM开发板如何选择ARM开发板市场上开发板玲琅满目,我们怎么来选择ARM开发板呢?除了要求ARM开发板资料齐全以外,技术是不是主流、能否结合当前嵌入式产品的应用开发需要,也是很关键的,因为IT技术发展很快,不断会有新的概念出来。
有人觉得越是主流的技术越难掌握,实际这是个认识误区,试想,XP和WIN8哪个更难学呢,或者说早期的DOS 和WINDOWS哪个更难学呢,答案是两者难度几乎一样,甚至新的知识反而更容易理解更接地气,并不是说越新的东西就越难掌握。
学习Linux还是Android呢?都要学!如果了解一下当前IT和物联网发展的形势,就会发现Android工程师越来越受欢迎,而且薪酬水平更加诱人,相比之下单纯的Linux工程师却逊色不少,当然,Android系统的内核也是Linux 的,Linux和Android作为当前开源的两大系统,其发展势不可挡。
所以学习Android系统架构是提升自身价值非常重要的选择,它会给我们不一样的天空和视野。
而iTOP-4412很好的结合了Linux和Android 两套系统。
学完stm32开发板继续学习,那么大多数人会学习4412开发板,理由如下:iTOP-4412嵌入式ARM开发板的资料介绍三星Exynos 4412(以下简称4412)刚推出的时候,被赋予很高期望并拥有当时最高性能和顶尖技术的ARM芯片,像联想、魅族包括三星都把4412作为自己的旗舰机产品;事实证明,这颗芯片使得三星手机在销量和声誉上达到了顶峰,起到了空前绝后的效果。
经过多年的发展,国内应用4412的产品数不胜数,积累了大量实用的学习资料。
迅为是从2012年开始最早应用4412的公司,开发了多款平板电脑、现场控制以及手持终端等产品,到目前为止,在用户网盘上已经积累了多达100G以上资料, 注意这些资料都是和4412相关的,并不是随便拼凑起来的!同时我们也完全开放原厂资料,让大家对这颗曾被视若天物的‘芯’有更多的认识,以便更好的了解历史并对整个行业情况和主流嵌入式技术有一个更深的认识。
嵌入式arm基本面试题目
嵌入式arm基本面试题目
嵌入式ARM的基本面试题目可能包括以下内容:
1.ARM处理器的基本架构是什么?
2.ARM处理器的指令集有哪些?
3.ARM处理器的寄存器是如何组织的?
4.ARM处理器的异常和中断处理机制是什么?
5.ARM处理器的内存管理方式是什么?
6.ARM处理器的调试接口有哪些?
7.ARM处理器的低功耗设计是怎样的?
8.ARM处理器在嵌入式系统中的应用有哪些?
9.ARM处理器的编程模型是怎样的?
10.如何配置和使用ARM处理器的交叉编译工具链?
以上问题只是嵌入式ARM基本面试题目的一部分,具体面试题目可能会根据公司的需求和面试者的经验水平而有所不同。
ARM嵌入式系统硬件选型
ARM嵌入式系统硬件选型ARM RISC架构微处理器ARM公司(Advanced RISC Machines Limited)正式成立于1990年。
在1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生(在美国VLSI公司制造)。
目前,ARM架构处理器已在高性能、低功耗、低成本的嵌入式应用领域占据领先地位。
ARM公司在全世界9个国家和地区(中国台湾)设有分公司,中国分公司位于上海。
ARM公司是嵌入式RISC处理器的知识产权IP供应商。
ARM将其技术授权给世界上许多领先的半导体系统厂商、实时操作系统开发商、电子设计自动化和工具供应商、应用软件公司、芯片制造商和设计。
利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
目前世界前5大半导体公司全部使用了ARM的技术授权,而前10大半导体公司中有9家,前25大半导体公司中有23家都采用了ARM的技术授权,全世界有70多家公司生产ARM芯片。
基于ARM技术的处理器已经占据了32位RISC芯片75%的市场份额。
随着ARM/MIPS/ARC等成熟内核的推出,很多过去没有32位cpu研发能力的半导体公司进入这一行列。
授权方面,ARM7已经发出了70多个,ARM9为40多个,最新的ARM11的客户有TI、Qualcomm和LSI。
ARM自成立中国公司以来,积极拓展业务,已经同中芯国际、中兴集成、上海华虹等公司签署了ARM授权,并积极与中国大学合作,向大学提供技术支持和免费的开发工具。
东南大学已成为中国大陆首家通过ARM大学计划获得ARM7TDMI内核授权的学府。
同时,东南大学计划组建一个ARM-东南大学系统级芯片实验室。
美国高通(Qualcomm)公司在前不久公布了下一代手机基带芯片开发计划,加紧与德州仪器争夺CDMA手机芯片市场。
据高通透露,这些新型的芯片集成了两个DSP和两个ARM处理器,预计在2004年出货,以期在CDMA 1xEV-DV芯片市场打败刚进入该市场的德州仪器。
ARM核心芯片的选择
Transmeta
SH5 SH4 SH3 SH2 SH1
64 Bit
32 Bit
• ARM 公司的ARM RISC处理器
– ARM 7 Thumb 家族 – ARM 9 Thumb 家族 – ARM 10 Thumb 家族 – ARM 11 Thumb 家族
Intel StrongARM
ARM核心芯片的选择和简单介绍 核心芯片的选择和简单介绍
嵌入式处理器体系结构
• 按体系结构的不同可分为五大类
– ARM – MIPS – POWER PC – X86 – SH系列
ARM11 ARMxx ARM10E ARM9E ARM9 ARM7 XScale ARMx
StrongARM 20Kc 64 Bit 5Kx 24K Pro 32 Bit 4Kx M4K 603e e300 e500 PPC405 IBM PPC440 186/386/ 486 Geode Nehemiah Intel AMD VIA Motorola
• 5K和20Kc系列属于MIPS的64位内核
–5K能提供1.4DMIPS/MHz的性能以及最低350MHz的运行速率。 –20Kc是当今最快的可授权嵌入式处理器内核。一般运行在 600MHz,具有7段流水线的20Kc内核,能提供1.2GFLOPS的峰 值浮点运算能力。
MIPS
• 在嵌入式处理器市场中,基于MIPS内核的处理器 占据了相当大的数量 • 2002年,一共付运了8700万片采用MIPS内核的 ARM 嵌入式处理器,份额仅次于ARM位居全球第二。 • 在目前快速增长的比如Cable Modem、DSL Modem、DVD录像机等领域内,MIPS的市场份 额位居第一。 • MIPS的合作伙伴包括了AMD,IDT,NEC,TI, SONY等众多厂商
嵌入式操作系统的选择与移植技巧
嵌入式操作系统的选择与移植技巧嵌入式操作系统(Embedded Operating System)是一种特定用途的操作系统,设计用于在嵌入式系统中运行。
嵌入式操作系统必须满足对资源需求低、实时性强、稳定性高以及易于移植等要求。
在选择和移植嵌入式操作系统时,开发者需要考虑多个因素,并采取相应的策略和技巧。
1. 嵌入式操作系统选择的因素在选择嵌入式操作系统之前,需要考虑以下因素:1.1 系统需求:开发者需要明确嵌入式系统的功能要求、实时性需求、资源约束以及系统体积等。
不同的嵌入式系统有不同的需求,因此选择的操作系统要能够满足这些要求。
1.2 可用的硬件平台:在选择操作系统时,需要考虑与可用的硬件平台的兼容性。
一些嵌入式操作系统可能只支持特定的处理器架构和外设类型。
1.3 开发者的经验和熟悉度:考虑到开发者的经验和熟悉度,选择一个熟悉的操作系统或具有良好文档支持的操作系统有助于提高开发效率。
1.4 社区支持:选择一个有活跃社区支持的操作系统可以帮助开发者解决问题和获取最新的更新和补丁。
1.5 许可证和成本:考虑到操作系统的许可证和成本,确保选择的操作系统符合项目的预算要求。
综上所述,综合考虑系统需求、硬件平台、开发者经验、社区支持以及成本等因素,将有助于选择适合的嵌入式操作系统。
2. 嵌入式操作系统移植的技巧嵌入式操作系统的移植是将操作系统移植到新的硬件平台上,以便在该平台上运行。
以下是一些移植嵌入式操作系统的技巧:2.1 硬件驱动移植:根据新的硬件平台特性,需要移植相关的硬件驱动程序,确保系统能够与外设正确地交互。
这包括串口、以太网、显示设备和存储设备等。
2.2 启动代码移植:移植启动代码是将系统从初始状态引导到操作系统运行的关键步骤。
需要根据新的硬件平台重新编写启动代码,确保正确初始化硬件并加载操作系统。
2.3 内核移植:内核是嵌入式操作系统的核心部分,包括任务调度、内存管理和设备驱动等功能。
在移植过程中,需要根据新的硬件平台重新配置内核,并修改相关的设备驱动程序。
arm嵌入式技术原理与应用答案
arm嵌入式技术原理与应用答案【篇一:嵌入式系统原理与开发课后答案】章嵌入式系统概述:1、什么是嵌入式系统?是简单列举一些生活中常见的嵌入式系统的实例。
p3嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。
以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。
3、是比较嵌入式系统与通用pc的区别。
p3(1)嵌入式系统是专用的计算机系统,而pc是通用的计算机系统。
(2)技术要求不同,通用pc追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。
(3)发展方向不同,pc追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。
4、嵌入式体统有哪些部分组成?简单说明各部分的功能与作用。
p6(1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他i/o接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(ram和rom等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在rom 中。
(2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。
一般包括硬件抽象层(hardware abstract layer,hal)和板级支持包(board support package,bsp)。
(3)软件层由实时操作系统(real time operating system,rtos)、文件系统、图形用户接口(graphical user interfaces,gui)、网络组件组成。
(4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人际界面。
5、嵌入式系统是怎么分类的?p7按照嵌入式微处理器的位数分类(4位、8位、16位、32位、64位);按照是实时性分类(硬实时系统式之系统对响应时间有严格的要求;软实时系统是对响应时间有一定要求);按照嵌入式软件结构分类(循环轮询系统、前后台系统、多任务系统);按照应用领域分类。
嵌入式linux面试题目
嵌入式linux面试题目在嵌入式系统领域,Linux操作系统的应用越来越广泛,因此掌握嵌入式Linux的知识和技能成为了许多公司对求职者的基本要求。
本文将介绍一些常见的嵌入式Linux面试题目,帮助读者更好地准备面试。
1. 请解释什么是嵌入式Linux系统?嵌入式Linux系统是指在嵌入式设备(如智能手机、工业自动化设备)上运行的基于Linux内核的操作系统。
它具有开源、可定制、高度可靠的特点,常用于资源有限、功耗有限的嵌入式设备中。
2. Linux内核与嵌入式Linux系统有什么区别?Linux内核是操作系统的核心,负责管理硬件和提供基本的操作系统服务。
嵌入式Linux系统则是在Linux内核基础上构建而成,包括了用户空间工具和应用程序,以满足特定嵌入式设备的需求。
3. 如何在嵌入式设备上引导Linux系统?在嵌入式设备上引导Linux系统通常包括以下步骤:a. 加载引导程序(如U-Boot)到设备的引导区域;b. 通过引导程序加载Linux内核镜像;c. 内核初始化,并加载根文件系统镜像;d. 启动用户空间工具和应用程序。
4. 请解释Linux设备树(Device Tree)的作用和原理。
Linux设备树是一种描述硬件设备及其连接关系的数据结构,用于在Linux内核启动时动态识别和配置硬件。
它将设备与驱动程序分离,使得内核可以在不重新编译的情况下适应不同的硬件配置。
5. 请列举一些常见的嵌入式Linux发行版。
常见的嵌入式Linux发行版包括:- Yocto Project- Buildroot- OpenWrt- Android Things- Ubuntu Core6. 如何在嵌入式Linux系统中进行驱动程序开发?在嵌入式Linux系统中进行驱动程序开发通常包括以下步骤:a. 确定驱动程序与设备的接口和通信方式;b. 编写设备驱动程序,并将其编译成内核模块;c. 在内核配置中启用该驱动程序;d. 将编译好的内核模块加载到目标系统中,并进行测试和调试。
嵌入式系统中的芯片选择与优化
嵌入式系统中的芯片选择与优化嵌入式系统是近年来发展迅速的一种应用领域,其在诸多领域中的需求日益增长。
芯片作为嵌入式系统的核心组成部分,对于系统的性能与功耗至关重要。
因此,在设计嵌入式系统时,选择适合的芯片并进行优化是至关重要的一步。
一、芯片选择在选择芯片时,需考虑以下几个方面:1. 性能需求:不同的嵌入式系统对芯片的性能需求不同。
例如,某些系统需要高性能的处理器来处理复杂的算法,而某些系统则需要低功耗的芯片来延长电池寿命。
2. 功耗需求:对于嵌入式系统而言,功耗是一个重要的考量因素。
较低的功耗可以延长系统的使用时间,提升系统的可靠性。
因此,在选择芯片时,需要综合考虑系统的性能与功耗需求。
3. 嵌入式外设支持:嵌入式系统通常需要与外设进行交互,如传感器、显示屏等。
在选择芯片时,需确保芯片能够兼容并且支持所需的外设接口。
4. 可靠性与稳定性:嵌入式系统通常要求长时间稳定运行,因此芯片的可靠性与稳定性是应考虑的重要指标。
选择经过验证的芯片品牌与供应商,可以提供更可靠的系统保障。
5. 成本因素:成本也是选择芯片的重要考虑因素之一。
在选择芯片时,需要综合考虑性能、功耗、可靠性等因素,并根据实际需求与预算制定合理的芯片选择方案。
二、芯片优化在选择芯片后,芯片的优化是提升系统性能和功耗的关键环节。
以下是一些常用的芯片优化技术:1. 系统级优化:通过将嵌入式系统划分为多个模块,并设计合理的数据交互和通信机制,可以提升系统的效率和响应速度。
同时,合理设计系统的功耗管理策略,如将闲置模块进行休眠或关闭,可以有效降低功耗。
2. 算法优化:选择合适的算法和数据结构,能够有效提升系统的性能和功耗。
例如,通过算法优化可以减少不必要的计算量和数据传输,提高系统的响应速度和功耗效率。
3. 芯片架构优化:了解芯片的架构特点,合理使用芯片的功能单元和特殊指令集,可以提升系统性能。
同时,合理配置芯片的时钟频率、电压等参数,可以达到最佳的性能和功耗平衡。
嵌入式驱动学习路线
嵌⼊式驱动学习路线⽹上看了很多的嵌⼊式学习路线,有的⽐较⽚⾯,有的为了博⼈眼球东拼西凑,⼏乎把整个⾏业⽤得着⽤不着的技术都写上去了,没有侧重点,简直是劝退指南,还有的纯粹是打⼴告卖板⼦招⽣。
⼀⼝君曾经是某见的教学总监,带过的学⽣也有⼤⼏千了,基本都从事linux相关开发⼯作。
现在在各⾏各业也基本都是翘楚,有的都成公司技术主管,带领⼏⼗⼈上百⼈团队。
⼀⼝君凭借多年的研发和开发经验,整理了嵌⼊式学习的最经典路线下⾯就为⼤家介绍学习路线:⼀、基础1. linux基本操作:个⼈建议只要会⼀些基本的操作就⾏了,不需要太深⼊的学习每⼀个命令,⽤到的时候会去搜索就⾏了。
《》《》《》《》需要掌握的知识如下:1. 环境的搭建:ubuntu、vmware安装2. Linux⽬录结构;3. ⽂件类型;4. 基本⽬录操作,⽂件操作,vim,ifconfig,ping,cd,cp,mv,mkdir等,最关键是gcc命令要会⽤;5. ⼀些简单的shell脚本;6. Makefile的编写。
2. c语⾔:所谓编程不学C语⾔,便称码农也枉然。
学Linux,不学编程,建议就不要学了,否则职业后期全是瓶颈。
那些和你说学Linux不需要懂编程的都是再耍LM。
学习C语⾔⼀定要学习Linux下C编程,C语⾔⽹上视频也很多,知识点不⼀⼀介绍了。
但是有⼀点,就是⼀定要记住,⼀般的程序员从⼊门到绝对的精通⼤概需要2年时间,要想随⼼所欲写出超⾼质量的代码,时间因⼈⽽异,还要看个⼈造化。
实际上并不需要每个⼈都成为⼤师,能成为⼀个快快乐乐的⼩码农,不也是见开⼼的事吗?3. 数据结构:数据结构很重要,但是在这个上⾯花太多时间,也是没必要的。
想进⼤⼚的除外,⾃⼰拼命去刷题吧。
对于嵌⼊式⽅向来说,个⼈建议只要掌握⼏个基本的排序和查找算法即可,没必要把所有算法都研究⼀遍。
《》《》《》《》1. 能掌握常见的算法⽐如:冒泡排序、直接插⼊排序、快速排序、⼆叉树等。
嵌入式系统原理与应用-基于Cortex-A9微处理器和linux操作系统-部分复习题+答案
1. 相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者(相加)之后得到的操作数作为有效地址。
2. ARM微处理器支持数据交换指令,这些指令用于在存储器和(寄存器)之间交换数据。
3. ARM微处理器支持的异常指令有SWI指令和(BKPT)指令。
4. 由于ARM硬件体系的一致性,因此嵌入式系统设计工作大部分都集中在(软件)设计上。
5.嵌入式操作系统具有操作系统的最基本的功能?(任务管理)、内存管理、设备管理、文件管理和操作系统接口。
6.通用寄存器(General-Purpose-Register )可以分为三类:未分组寄存器R0-R7,分组寄存器R8-R14,程序计数器PC。
7. SMC为静态内存区,通常用于(映射)外部总线上设备,如网卡等,该区域被分为4个Bank,每个16M。
8. 在主机上编译Linux内核,通过Bootloader烧入(内核)或直接启动。
9. 通常情况下makefile文件的第一个目标为最终目标,(其他目标)和最终目标存在依赖关系。
10. Linux 内核引导时,从文件( /etc/fstab )中读取要加载的文件系统。
11. 进程是系统分配资源的最小单位,线程是系统调度的最小单位。
线程是进程中的某一个能独立运行的(基本单位)。
12.每个设备文件名由主设备号和从设备号描述。
第二块IDE 硬盘的设备名为hdb,它上面的第三个主分区对应的文件名是( hdb3 )。
13. Uboot移植是指根据目标机的处理器以及具体外部电路,选择Uboot提供的一个合适的参考源程序,然后在此基础上进行修改,最后编译出(适用于目标机的引导程序)的过程。
14. Make工具能够根据文件的( 时间戳)自动发现更新过的文件,从而减少编译工作量。
15. 驱动程序的编译有3种方式,即:编译入内核、(编译为模块)、根据变量编译。
16.struct tm *gmtime(const time_t *timep)函数功能是将( 给定的时间值)转化为格林威治标准时间,并将数据保存在tm结构中。
十年经验教你如何学习嵌入式系统(基于ARM平台).
一、嵌入式系统的概念着重理解“嵌入”的概念主要从三个方面上来理解。
1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前的这种串口控制器芯片早已集成到CPU内部,还有PC机有显卡,而多数嵌入式处理器都带有LCD控制器,但其种意义上就相当于显卡.比较高端的ARM类Intel Xscale架构下的IXP网络处理器CPU内部集成PCI控制器(可配成支持4个PCI从设备或配成自身为CPI从设备);还集成3个NPE网络处理器引擎,其中两个对应于两个MAC地址, 可用于网关交换用,而另外一个NPE网络处理器引擎支持DSL,只要外面再加个PHY芯片即可以实现DSL上网功能。
IXP系列最高主频可以达到 1.8G,支持2G内存,1G×10或10G×1的以太网口或Febre channel的光通道。
IXP系列应该是目标基于ARM体系统结构下由 intel 进行整合后成Xscale内核的最高的处理器了。
2、从软件上看,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。
而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入",比如WinCE在内核定制时,会有相应选择,其中就是wordpad,PDF,MediaPlay等等选择,如果我们选择了,在CE启动后,就可以在界面中找到这些东西,如果是以前PC上将的windows操作系统,多半的东西都需要我们得新再装.3、把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。
以上的定义是我在6、7年前给嵌入式系统下自话侧重于理解型的定义,书上的定义也有很多,但在这个领域范围内,谁都不敢说自己的定义是十分确切的,包括那些专家学者们,历为毕竟嵌入式系统是计算机范畴下的一门综合性学科二、嵌入式系统的分层与专业的分类.嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
嵌入式系统开发基础——基于ARM微处理器和Linux操作系统课后习题答案
printf(“The sum of array is %d”, HE);
}
//huibian.s
AREAASM, CODE, READONLY
EXPORTsum
sumMOVR2, #0
LOOPLDRR3, [R0], #4
ADDR2, R2, R3
SUBR1, R1, 1
2-1略。
2-2略
2-3略
2-4按照要求完成以下操作。
(1)创建文件夹test。
mkdir test
(2)进入test目录。
cd test
(3)在test目录下用Vi编辑一个新文件test.c,其内容如下:
#include <stdio.h>
intmain()
{
int a,i=0;
a=0;
while(i<20)
}
(1)如果上述文件在同一个目录,请编写Makefile文件。
(2)如果按照下面的目录结构存放文件,请编写Makefile文件。
|---bin存放生成的可执行文件
|---obj存放.o文件
|---include存放display1.h和display2.h文件
|---src存放main.c、display1.c、display2.c和Makefile
(3)将内核映像和根文件系统映像从Flash存储器上读到RAM空间中。
(4)为内核设置启动参数。
(5)调用内核。
3-3答:
1.数据结构file_operations
2.设备注册:驱动程序模块通过函数register_chrdev来完成内核的注册。
3.设备卸载:驱动程序模块通过函数unregister_chrdev来完成内核的卸载。
如何选择嵌入式微处理器
每个人都知道什么是PC,但很多人不明白什么是嵌入式系统和嵌入式微处理器。
与PC制造者不一样,嵌入式系统的工程师不得不自己设计自己的系统。
与全球PC市场不同,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以32位的CPU而言,就有100种以上嵌入式微处理器。
那么,在设计手持电话、传真机、机器人、打印机和网络路由器等应用产品时,应如何选择嵌入式微处理器呢?仅有一种答案,那就是选择是多样化的。
因为嵌入式系统设计的差异性极大,这就是有100种微处理器存在的原因。
在某种情况下,性能极为重要,而在另一种情况下,低功耗又成为最关键的因素。
另外,一些设计者会考虑支持软件、代码的大小以及多种渠道的资源和过去的经验。
那么,哪些因素是设计者最为关心的?调查上市的CPU供应商某些公司如Motorola、 Intel很有名气,而有一些小的公司如QED(Santa Clara .CA)虽然名气很小,但也生产很优秀的微处理器。
另外,有一些公司,如ARM、MIPS等,只设计而并不生产CPU,他们把生产权授予世界各地的半导体制造商。
一些半导体厂商生产的CPU不单纯以传统的封装形式出售,而是以一种软件模型库方式向用户供应ASIC设计。
截至1997年底,所有各种形式的32位嵌入式微处理器的销售额超过1.8亿美元,如果加上PC、苹果机和工作站,那么,几乎每一位生活在美国的人都拥有一颗32位微处理器。
Motorola传统的68K结构仍是32位CPU的主流,虽然它起源于80年代初,但在1997年依然销售了8000万个,并基本上是传统680xx芯片(00、20、40K),另外就是683xx(60、02、32、28K)以及Coldfire。
68K嵌入式微处理器最大的挑战者是MIPS的授权制造商。
众所周知,MIPS属于SGI公司,而MIPS主要做嵌入式系统,SGI工作站只是MIPS芯片销售额的1 ;紧跟在MIPS后的另一个RISC芯片制造商是Hitachi 的SH,SH主要在远东销售(日本最多),北美则很少有人使用。
arm嵌入式技术原理与应用答案
arm嵌入式技术原理与应用答案【篇一:嵌入式系统原理与开发课后答案】章嵌入式系统概述:1、什么是嵌入式系统?是简单列举一些生活中常见的嵌入式系统的实例。
p3嵌入式系统是用于检测、控制、辅助、操作机械设备的装置。
以应用为中心,一计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗等严格要求的专用计算机系统。
3、是比较嵌入式系统与通用pc的区别。
p3(1)嵌入式系统是专用的计算机系统,而pc是通用的计算机系统。
(2)技术要求不同,通用pc追求高速、海量的数据运算;嵌入式要求对象体系的智能化控制。
(3)发展方向不同,pc追求总线速度的不断提升,存储容量不断扩大;嵌入式追求特定对象系统的智能性,嵌入式,专用性。
4、嵌入式体统有哪些部分组成?简单说明各部分的功能与作用。
p6(1)硬件层是整个核心控制模块(由嵌入式微处理器、存储系统、通信模块、人机接口、其他i/o接口以及电源组成),嵌入式系统的硬件层以嵌入式微处理器为核心,在嵌入式微处理器基础上增加电源电路、时钟电路、和存储器电路(ram和rom等),这就构成了一个嵌入式核心控制模块,操作系统和应用程序都可以固化在rom 中。
(2)中间层把系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关。
一般包括硬件抽象层(hardware abstract layer,hal)和板级支持包(board support package,bsp)。
(3)软件层由实时操作系统(real time operating system,rtos)、文件系统、图形用户接口(graphical user interfaces,gui)、网络组件组成。
(4)功能层是面向被控对象和用户的,当需要用户操作是往往需要提供一个友好的人际界面。
5、嵌入式系统是怎么分类的?p7按照嵌入式微处理器的位数分类(4位、8位、16位、32位、64位);按照是实时性分类(硬实时系统式之系统对响应时间有严格的要求;软实时系统是对响应时间有一定要求);按照嵌入式软件结构分类(循环轮询系统、前后台系统、多任务系统);按照应用领域分类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常见的ARM嵌入式学习问答—合嵌电子科技有限公司1. ARM嵌入式是学习硬件好还是学习软件好?答:学习硬件好还是软件好,如果你能精通其中的任何一个,都好!学硬件,绝大多数人大学毕业后都可以做硬件设计,这时候大家是一个差不多的水平线上,所以感觉上好像没有门槛!但是电子产品设计的难点是稳定性,尤其是电磁兼容性的设计。
N年之后,也许三年,也许五年,也许八年,总之年数不等,这时候水平上就有了高低之分:有些人设计出来的电子产品就是不怎么出问题,有些人设计出来的电子产品就是一直有问题。
硬件的设计,是设计经验和理论再学习的结合:电磁场与电磁波、微波与天线、高速信号处理、信号完整性、PCB布线的实际措施、系统电磁兼容的处理措施、电路调试的能力与解决电路故障的能力,等等,学软件,很多人大学毕业后都无法从事这个设计工作,因为大家在学校的努力程度不同,很多人实际上还没有进入编程的门槛内。
但是进入门槛后,绝大多数人的水平会处于差不多相同的水平线上,极个别的水平高一些,体现在程序的稳定性和程序运行效率上。
软件的设计,主要体现在这两点单片机的硬件和软件,因为主频太低,很少出现稳定性的问题,软件的工作量也小,很多单位的软硬件都是一个人做。
但是到了主频很高的32位微处理器后,硬件的稳定性特别容易出问题,功能复杂度增大,硬件设计的难度增加了,软件编程的工作量加大了,所以多数公司的软件和硬件开始有多人分开设计。
树叶有专攻!大树叶负责系统设计,各种小树叶有的做硬件设计,有的做软件编程。
宗旨就是发挥各自的强项!完成最后的系统功能设计另外一个需要强调的是,学习硬件还是软件,还要看个人对硬件感兴趣,还是对软件感兴趣?2.嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要?答:刚进入职场时,一般来说嵌入式软件的待遇会稍高一些。
因为之前说了,很多人没有进入软件设计的门槛内。
但是软件毕竟是青春性的职业,随着年龄的增加和设计经验、设计能力的增加,硬件设计的待遇水涨船高,慢慢会与软件职位的待遇相同甚至高于软件的职位。
至于谁更重要,硬件相当于躯体,软件相当于血液,缺一不可,没有谁更重要的说法。
如果从产品的角度看,硬件更重要一些。
因为在产品中出了问题,硬件的稳定性问题基本上只有找高手重新设计,如果是电路原理上的问题还可以直接增加或者减少元件来解决。
软件上不稳定问题基本上可以通过修改程序设计并重新下载程序到芯片中来解决。
如果从设计的角度看,系统设计更重要,因为系统设计要求懂一些软件的基本设计,更要对硬件设计有相当的造诣,这样他才能把握住系统设计的要求,正确提出设计方案。
3.学完51单片机后,想买ARM开发板继续学习,是买ARM7还是ARM9?答:如果你的单片机编程能力比较强,建议直接买ARM9的板子,跑linux系统的,学习嵌入式软件编程。
如果你的单片机编程能力比较一般,建议先购买CORTEX-M3的开发板,比如盘古STM32开发板和盘古LPC1768开发板,先学习32位ARM的编程(支持轻量级的操作系统,比如UCOS),锻炼实际的编程能力。
有了一定的编程能力后,再买ARM9的板子,跑linux 系统的,学习嵌入式软件编程。
总之就是多动手,遇到问题多了慢慢积累起来,就能够融会贯通了!4.到底是学习哪种内核:ARM7、CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8还是CORTEX-A9?答:首先说明基于ARM7内核的芯片现在已经很少了,大部分公司都陆续停产了。
而且价格没有优势,主频也不高,只能跑UCOS或者Uclinux系统。
CORTEX-M3内核的芯片是目前用量比较大的32位ARM芯片,主频约70MHz到120MHz之间,比如STM32F103、LPC1768等型号。
CORTEX-M4内核的芯片支持DSP指令功能,主频100MHz到200MHz之间,比如STM32F4等型号。
这两种内核的芯片可以基于库函数进行编写程序,或者基于寄存器直接编写程序,可以跑轻量级的操作系统,比如UCOS等。
ARM9内核的芯片,是目前市场上运行嵌入式操作系统(linux、wince)主流的32位ARM芯片,主频约180MHz到500MHz之间。
CORTEX-A8和CORTEX-A9内核的芯片,可以运行多种嵌入式操作系统(linux、wince、android)。
Cortex-A8处理器的速率可以在600MHz到超过1GHz的范围内调节,能够满足那些需要工作在300mW以下的功耗优化的移动设备的要求。
Cortex-A9处理器的速率可以到1GHz以上,支持多核。
如果是初学者,学习库函数编程的或者寄存器编程的,建议学习CORTEX-M3内核的芯片;如果是学习linux的嵌入式软件编程,建议学习ARM9内核的芯片;如果是学习Android 的嵌入式软件编程,建议学习CORTEX-A8和CORTEX-A9内核的芯片;5.ARM芯片如何选择型号?答:ST公司:基于CORTEX-M3内核的芯片STM32F103、基于CORTEX-M4内核的芯片STM32F4,是目前最流行的CORTEX-M3内核的芯片。
N XP公司:基于CORTEX-M3内核的芯片LPC1768、LPC1788、基于CORTEX-M0+内核的芯片LPC800系列,ARM9内核的芯片LPC3250,在设计中的认可率都比较高。
ATMEL公司:一直采用ARM核心技术,最高也只采用到ARM9技术,旨在打造稳定的工业级芯片,不追求性能上的卓越,但求性能更加的可靠的工业级芯片。
能克服各种恶劣的环境,及各种干扰,功耗低,让工业控制能更加稳定有条不紊的进行。
现在的ARM9内核芯片有AT91SAM9260、AT91SAM9263、AT91SAM9G45等德州仪器TI:一直致力于研究处理速度更快,功能更加强大的芯片。
更是采用ARM 最新技术Cortex A8来提升芯片的性能。
使得一些芯片的处理速度与X86架构的MCU不分伯仲。
但是最近OMAP系列芯片据说被裁了,可能会退出市场。
这让选择TI芯片的人心里有点害怕!而且,TI的芯片更新速度太快,让选择他们芯片的厂家也无所适从。
现在的CORTEX-A8内核芯片有AM3358、AM3359等。
SAMSUNG半导体: SAMSUNG生产ARM内核芯片的超高性价比是无人能敌的。
正因为这点,其芯片也得到很多厂家的亲睐。
例如S3C2440性价比极高,一般消费电子产品中应用较多,不适于在严苛的工控环境中使用。
现在的ARM9内核芯片有S3C2440、CORTEX-A8内核芯片S5PV210等。
最近老是看到不少个人和厂家宣传:使用三星的2440或者三星公司的其他型号设计为工控产品,而且我听到不少厂家说芯片的工作温度都做过老化试验,低温可以到零下40度。
这个低温的实验条件只是工业级的一个强制性温度试验条件,并不是在这个低温下正常工作就是工控级芯片。
工控级的应用真正难以实现的是在各种恶劣电磁环境下的稳定工作,可惜大部分芯片都不能实现这种要求。
稳定性是工控级应用的第一要素,这也就是为何ATMEL的芯片很多型号一卖就是十几年,他们的芯片做的就是稳定。
比如AT91RM9200、AT91SAM9260、AT91SAM9G45等.6.学习ARM主要学习啥?答:在硬件上主要学习ARM内核芯片的电路设计及其附加外围电路(USB、SDIO、CAN、485、SPI、PCI等)设计以及高速数字信号处理、信号完整性设计、电磁兼容设计,说白了就是学习如何设计出高稳定的ARM系统电路。
ARM内核(CORTEX-M3、CORTEX-M4、ARM9、CORTEX-A8、CORTEX-A9等)的芯片,主频越来越高,实现稳定性的设计难度越来越大。
软件上主要学学习基于操作系统的应用层程序的编程和基于操作系统的驱动程序编程或者基于库函数的裸机程序编程等等。
CORTEX-M3、CORTEX-M4内核的芯片,可以运行裸机程序或者轻量级的UCOS系统,软件上主要学习裸机程序的编程; ARM9、CORTEX-A8、CORTEX-A9内核的芯片,可以运行linux操作系统、android操作系统、wince操作系统等,学习基于操作系统的应用程序编程7.是先学习基于操作系统的应用层程序的编程,还是先学习基于操作系统的驱动程序的编程?答:基于操作系统的应用层程序的编程是嵌入式软件设计的基础,它基本上可以不需要熟悉底层硬件就可以完成程序设计,所以学习嵌入式linux应用程序编程买开发板时,只要可以运行linux系统的开发板都可以。
基于操作系统的驱动程序的编程设计,要求设计人员不仅要熟悉操作系统,还要熟悉底层硬件,最好有过基于寄存器的程序编写经历,对设计人员的要求比较高。
现在的驱动程序的编程设计,芯片原厂大部分已经提供了。
在芯片原厂做驱动程序设计的人员,水平会高得多,不过中国的芯片厂很少,大家暂时没多少机会。
从产品的设计角度看,驱动程序的设计难度已经降低。
所以建议:先学习基于操作系统的应用层程序的编程,有了一定的编程经验后再去学习基于操作系统的驱动程序的编程设计。
8.一定要学习GUI界面设计吗?答:嵌入式软件的应用程序设计中,GUI界面设计只是产品中支持液晶屏显示的才会用到。
而且,在实际的产品设计中,因为软件的工作量比较大,软件设计也是多人合作的,一般会有专人做GUI界面设计的。
因为一般的应用程序设计师基于C语言的,GUI界面设计基本上是基于C++语言,所以对初学者来说,还是有很大区别的,建议初学者在最初的学习中不用花费太多的精力去学习GUI界面设计。
9.买哪种ARM开发板?答:裸机程序的开发板:建议购买基于STM32F103、STM32F4、LPC1768、LPC1788等芯片的开发板,这些型号的芯片基本上已经获得设计人员广泛的认可了。
在此特别强调一款STM32开发板:合嵌盘古STM32开发板,支持LED、按键、蜂鸣器、RS232串口、RS485总线、CAN总线、EEPROM、 DATA FLASH、板载加速度传感器、3.2寸液晶屏、SD卡、USB DEVICE等,提供UCOS和UCGUI移植和实际应用例程。
另外提供GPS、GPRS、ZIGBEE、WIFI、MPU6050陀螺仪等模块和基于STM32的例程。
另外特别开发了Android手机控制合嵌盘古STM32开发板的物联网平台:Android手机运行手机端软件,可以控制STM32开发板上的LED亮灭和蜂鸣器的发声,另外可以接收STM32开发板上的AD转换值和采集到的芯片温度值,以及加速度传感器采集到的加速度值。
手机端图片如下:有嵌入式操作系统的:如果从产品设计应用环境的角度看,如果是消费电子的,请选择 SAMSUNG 的S3C2440开发板、S5PV210开发板;如果是工控级的,请选择ATMEL公司的AT91SAM9260开发板、AT91SAM9G45开发板或者选择TI的AM3359开发板。