PLC和ARM 单片机哪个好啊哪个好学哪个对编程要求高ARM主要就是编程吗

PLC和ARM 单片机哪个好啊哪个好学哪个对编程要求高ARM主要就是编程吗,第1张

这两个东西一般用于不同的领域或者层次,PLC主要对强电进行控制,工业用的多,民用几乎没有,PLC是控制器;ARM是处理器,主要用于算法, *** 作系统,应用程序。

比如说全部在工业控制中,PLC则充当脊髓等低级神经中枢,而ARM处理器则对应是大脑。ARM可以控制PLC的运转,通过传感器收回的数据,计算后对PLC控制对象的临界值进行调整,而PLC则通过ARM约束的临界值对电机汽缸等进行 *** 作。

就这两者的学习而言,PLC采用梯形图,相对结构比较简单,较容易上手,而ARM则集合了软硬件的工作,最初的硬件设计需要考虑电源,包括外围电源,核心电源,时钟,复位等,还要根据使用目的设计外围电路;之后还要进行基础驱动的设计,如果过于复杂的应用考虑是否挂 *** 作系统,如果挂系统还要考虑系统裁剪移植等,后续考虑是否使用应用程序。因此ARM的工作不是一个人的事。

当然如果你想学建议先学ARM在转头看看PLC,会发现有会当凌绝顶一览众山小的感觉。

如果选择学ARM要考虑好你的方向,硬件及驱动,系统,应用程序等,切不可一起开进全部进行,否则只会最后全都不行。一样一样来。需要时间需要多练!

最后不论你走在哪方面,都祝你学有所成!

常见的arm嵌入式学习问答,设计者和学习者最关心的11个问题:1 arm嵌入式是学习硬件好还是学习软件好2 嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要?3 学完51单片机后,想买arm开发板继续学习,是买arm7还是arm94 到底是学习哪种内核:arm7、CORTEX-M3、CORTEX-M4、arm9、CORTEX-A8还是CORTEX-A9?5 arm芯片如何选择型号?6 学习arm主要学习啥?7 是先学习基于 *** 作系统的应用层程序的编程,还是先学习基于 *** 作系统的驱动程序的编程?8 为何要学习linux,而不是其他的嵌入式 *** 作系统?9 一定要学习gui界面设计吗?10 买哪种arm开发板?11 电磁兼容号称黑色艺术,请问如何学习硬件设计中的电磁兼容设计?1 arm嵌入式是学习硬件好还是学习软件好 答: 学习硬件好还是软件好,如果你能精通其中的任何一个,都好! 学硬件,绝大多数人大学毕业后都可以做硬件设计,这时候大家是一个差不多的水平线上,所以感觉上好像没有门槛!但是电子产品设计的难点是稳定性,尤其是电磁兼容性的设计。N年之后,也许三年,也许五年,也许八年,总之年数不等,这时候水平上就有了高低之分:有些人设计出来的电子产品就是不怎么出问题,有些人设计出来的电子产品就是一直有问题。硬件的设计,是设计经验和理论再学习的结合:电磁场与电磁波、微波与天线、高速信号处理、信号完整性、pcb布线的 实际措施、系统电磁兼容的处理措施、电路调试的能力与解决电路故障的能力,等等, 学软件,很多人大学毕业后都无法从事这个设计工作,因为大家在学校的努力程度不同,很多人实际上还没有进入编程的门槛内。但是进入门槛后,绝大多数人的水平会处于差不多相同的水平线上,极个别的水平高一些,体现在程序的稳定性和程序运行效率上。软件的设计,主要体现在这两点 单片机的硬件和软件,因为主频太低,很少出现稳定性的问题,软件的工作量也小,很多单位的软硬件都是一个人做。但是到了主频很高的32位微处理器后,硬件的稳定性特别容易出问题,功能复杂度增大,硬件设计的难度增加了,软件编程的工作量加大了,所以多数公司的软件和硬件开始有多人分开设计。树叶有专攻!大树叶负责系统设计,各种小树叶有的做硬件设计,有的做软件编程。宗旨就是发挥各自的强项!完成最后的系统功能设计 另外一个需要强调的是,学习硬件还是软件,还要看个人对硬件感兴趣,还是对软件感兴趣?2 嵌入式软件和硬件,哪一种职位待遇更高?或者说,在设计中哪一个更重要? 答: 刚进入职场时,一般来说嵌入式软件的待遇会稍高一些。因为之前说了,很多人没有进入软件设计的门槛内。但是软件毕竟是青春性的职业,随着年龄的增加和设计经验、设计能力的增加,硬件设计的待遇水涨船高,慢慢会与软件职位的待遇相同甚至高于软件的职位。 至于谁更重要,硬件相当于躯体,软件相当于血液,缺一不可,没有谁更重要的说法。如果从产品的角度看,硬件更重要一些。因为在产品中出了问题,硬件的稳定性问题基本上只有找高手重新设计,如果是电路原理上的问题还可以直接增加或者减少元件来解决。软件上不稳定问题基本上可以通过修改程序设计并重新下载程序到芯片中来解决。如果从设计的角度看,系统设计更重要,因为系统设计要求懂一些软件的基本设计,更要对硬件设计有相当的造诣,这样他才能把握住系统设计的要求,正确提出设计方案。3 学完51单片机后,想买arm开发板继续学习,是买arm7还是arm9 答: 如果你的单片机编程能力比较强,建议直接买arm9的板子,跑linux系统的,学习嵌入式软件编程。 如果你的单片机编程能力比较一般,建议先购买CORTEX-M3的开发板,比如盘古STM32F103VET6开发板(软硬件全部开源:提供软件源代码,提供原理图和pcb图),先学习32位arm的编程(支持轻量级的 *** 作系统,比如UCOS),锻炼实际的编程能力。有了一定的编程能力后,再买arm9的板子,跑linux系统的,学习嵌入式软件编程。 总之就是多动手,遇到问题多了慢慢积累起来解决问题的方法,就能够融会贯通了!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的芯片很多型号一卖就是十几年,他们的芯片做的就是稳定。比如AT91RM92006 学习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系统的开发板都可以。。基于 *** 作系统的驱动程序的编程设计,要求设计人员不仅要熟悉 *** 作系统,还要熟悉底层硬件,最好有过基于寄存器的程序编写经历,对设计人员的要求比较高

随着我们掌上具有强大计算功能的设备的出现,我们听到很多特别需要注意的术语是ARM。这些计算强大的设备的大脑正是基于这一点,在真正讨论它给未来的计算设备带来的好处之前,让我们来看看它究竟是什么,以及它如何与目前使用的其他替代形式的计算处理器不同。

ARM,以前称为高级 RISC 机器,是用于计算机处理器的 RISC(减少指令集计算)体系结构系列,可配置在各种环境中。Arm Holdings 开发该架构并将其许可给其他公司,如 Apple、Qualcomm 等,这些公司设计自己的产品,实现这些架构之一 , 包括芯片上的系统 (SoC) 和包含内存、接口、收音机等的模块系统上系统 (SoM)。

它还设计了实现此指令集的核心,并将这些设计授权给将这些核心设计整合到自己产品的许多公司。然后,这些产品与其他组件一起整合到设备中,形成我们作为消费者购买的最终用户设备。

具有 RISC 架构的 ARM 处理器通常比具有复杂指令集计算 (CISC) 架构的处理器(如英特尔、AMD 等制造商的 x86 处理器)的晶体管需要更少的晶体管,从而提高了成本、功耗和散热能力。这些特性对于轻便、便携式、电池供电的设备(包括智能手机和平板电脑以及其他嵌入式系统)是可取的。即使对于耗电量大的超级计算机,ARM 也可以是一个可行的节能解决方案。

RISC 和 CISC 在当今世界的计算设备中应用广泛。需要更深入地研究它们,以便真正了解其中哪一个更适合我们的计算需求。一般来说,RISC 被许多人视为比 CISC 的改进。这是因为 CISC 是原始的 ISA(指令集体系结构),其中,RISC 是 20 世纪 80 年代初出现的重新设计的 ISA。

没有最好的体系结构,因为不同的体系结构在某些情况下可能更好,但在某些情况下则不太理想。基于 RISC 的计算机每个时钟周期执行一个指令。CISC 机器可以具有特殊说明以及需要多个周期才能执行的说明。这意味着在 CISC 体系结构上执行的相同指令可能需要多个指令才能在 RISC 计算机上执行。RISC 体系结构需要更多的工作 (RAM) 内存来保存值,因为它加载每个指令,对它执行 *** 作,然后加载下一个指令。

CISC 体系结构可以直接在内存上执行一个(尽管更复杂的指令)执行相同的 *** 作。因此,RISC 体系结构需要更多的 RAM,但每个时钟周期始终执行一个指令,以进行可预测的处理,这对于管道处理是好事。RISC 和 CISC 之间的主要区别之一是 RISC 强调每个指令的周期效率,CISC 强调每个程序指令的效率。

快速处理器取决于执行每个时钟周期所用的时间、执行指令的周期数以及每个程序中的指令数。RISC 强调较大的程序代码大小(由于指令集较小,因此连续执行多个步骤可能等同于 CISC 中的一个步骤)。这可以更好地可视化与以下性能方程,通常用于表达计算机的性能能力:

CISC 方法尝试最小化每个程序的指令数,牺牲每个指令的周期数。RISC 会执行相反的做法,以每个程序的指令数成本来减少每个指令的周期。

RISC ISA 强调软件而不是硬件。RISC 指令集需要用更少的指令编写更高效的软件(例如编译器或代码)。CISC ISA 在硬件中使用更多的晶体管来实现更多的指令和更复杂的指令。

RISC 需要更多的 RAM,而 CISC 强调代码大小更小,并且使用比 RISC 的 RAM 整体使用更少。然而,如今许多微处理器都包含 RISC 和 CISC 类属性的组合,例如一种像 CISC 一样使用 ISA 的 ISA,它将指令视为一串 RISC 类型的指令

ARM 及其实施的优势

简而言之,基于 RISC 的 ARM 架构不需要携带 CISC 处理器包含的大量行李来执行其复杂的指令。尽管像英特尔这样的公司已经投入巨资设计处理器,它们包括了先进的超高指令管道,但所有这些逻辑意味着芯片上的晶体管更多,更多的晶体管意味着更多的能源使用。高端英特尔芯片的性能非常出色,但高端处理器的最大 TDP(热设计功率)为 130 瓦。基于 ARM 的最高性能移动芯片消耗不到 4 瓦,通常更少。

这种低功耗是 ARM 如此特殊的原因,它不会尝试创建 130W 处理器,甚至 60W 或 20W。该公司只对设计低功耗处理器感兴趣。多年来,ARM 通过改进微架构设计提高了处理器的性能,但目标功率预算基本保持不变。一般来说,您可以分解 ARM SoC 的 TDP(芯片上的系统,包括 CPU、GPU 和 MMU 等),如下所示:多核 CPU 群集的最大预算为 2 瓦,GPU 为 2 瓦,MMU 和 SoC 的其余部分可能为 05 瓦。如果 CPU 是多核设计,则每个内核可能使用 600 到 750 毫瓦。

这些都是非常通用的数字,因为 ARM 生产的每个设计都有不同的特征。ARM 的第一个 Cortex-A 处理器是 Cortex-A8。它只在单核配置中工作,但它仍然是一个流行的设计,可以在一些设备中找到。接下来是 Cortex-A9 处理器,它带来了速度改进和双核与四核配置的能力。然后是 Cortex-A5 内核,它实际上比 Cortex-A8 和 A9 慢(每个内核),但功耗更低,制造成本更低。它专为低端多核应用(如入门级智能手机)而设计。

在性能规模的另一端,Cortex-A15 处理器,它是 ARM 最快的 32 位设计。它的速度几乎是 Cortex-A9 处理器的两倍,但所有额外的性能也意味着它使用多一点功率。在实现 2Ghz 的时钟速率和超越许多 ARM 合作伙伴的竞赛中,Cortex-A15 核心设计被推到了极限。因此,Cortex-A15 处理器确实有点作为电池杀手的名声。但是,这或许有点不公平。然而,为了补偿 Cortex-A15 处理器的更高功率预算,ARM 发布了 Cortex-A7 内核。

Cortex-A7 处理器比 Cortex-A9 处理器慢,但比 Cortex-A5 处理器快。然而,它的权力预算类似于它的低端兄弟。制作-A7核心时,结合-A15核心在找一个平衡点。LITTLE 配置允许 SoC 在执行简单任务时使用低功耗 Cortex-A7 内核,并在需要重担时切换到 Cortex-A15 内核。结果是设计节省电池,但可以提供最佳的性能。

ARM 还拥有 64 位处理器设计。Cortex-A53 是 ARM 的节能 64 位设计。它不会有破纪录的性能,但它是ARM有史以来效率最大的应用程序处理器。它也是世界上最小的64位处理器。它更大的兄弟,Cortex-A57,是一个不同的野兽。它是 ARM 最先进的设计,具有 ARM 所有 Cortex 处理器中最高的单线程性能。ARM 的合作伙伴可能会发布基于 A53(只有 A57)的芯片,并将两者大为使用。

ARM 管理 从 32 位到 64 位迁移的一个方法是处理器具有不同的模式、32 位模式和 64 位模式。处理器可以在这两种模式之间快速切换,必要时运行 32 位代码,必要时运行 64 位代码。这意味着解码并开始执行 64 位代码的芯片与 32 位芯片是分开的(尽管有重用用以节省面积)。这意味着 64 位逻辑是隔离的、干净的和相对简单的。64 位逻辑不需要尝试和理解 32 位代码,并找出什么是最好的方法。这将需要一个更复杂的指令解码器。这些领域的复杂性通常意味着需要更多的能源。

ARM 64 位处理器的一个非常重要的方面是,它们没有比 32 位处理器使用更多的电源。ARM 已经成功地从 32 位到 64 位,但还停留在其自行实施的能源预算内。在某些情况下,新系列的 64 位处理器实际上将比上一代 32 位 ARM 处理器更节能。这主要是由于内部数据宽度(从 32 位到 64 位)的增加,以及 ARMv8 体系结构中增加了额外的内部寄存器。64 位内核可以更快地执行某些任务,这意味着它可以更快地断电,从而节省电池寿命。

最强大的使用模型大。LITTLE 架构是异构多处理 (HMP),它同时支持使用所有物理内核。在这种情况下,具有高优先级或计算强度的线程可以分配给"大"内核,而优先级较低或计算强度较低的线程(如后台任务)则可由"LITTLE"内核执行。此模型已实现在三星Exynos开始与Exynos 5 Octa系列和苹果移动应用程序处理器开始与苹果A11。

这也是软件的作用。大。LITTLE 处理技术依赖于 *** 作系统的了解,即它是异构处理器。这意味着 *** 作系统需要了解某些内核比其他内核慢。到现在,处理器设计通常情况并非如此。如果 *** 作系统想要执行一项任务,它只会把它耕种到任何核心,因为它们都具有相同的性能级别。这和那个大并不大。LITTLE 使用特定的内核调度程序,它了解大的异构性质。小处理器配置,将决定每个进程/线程的执行。将来,此调度程序可以进一步优化,以考虑内核的当前运行温度或工作电压等。

传统计算中的 ARM

尽管ARM在移动设备中具有压倒性优势,但大多数笔记本电脑和计算机,即对于我们工作流程至关重要的设备,使用基于CISC的处理器。但最近,我们看到这种趋势正在发生变化,而基于ARM的个人电脑处理器也因此而大量涌入。2017 年底,高通和微软宣布了第一款基于 ARM 的处理器的 Windows 10 设备。惠普、和联想都推出了笔记本电脑,其中有高通的Snapdragon 835处理器。

ARM 上的 Windows 10 是微软之前尝试将移动处理器与完全笔记本电脑体验结婚的重启。与迄今为止存在的基于 x86 Intel 的计算机相比,它有望提供更好的电源效率、可靠的性能和始终保持的连接。对于这些 ARM 设备,高通拥有长达 25 小时的电池续航时间,以及与英特尔计算机平起平坐的即时电源和性能。

它还说,内置的LTE连接将提供显著更快的速度比其他可用的LTE设备Windows 10计算机。此外,微软在过去几年中不断改进了对 ARM 芯片的 Windows 支持,其即将推出的与架构无关的精简版 *** 作系统更证明了该公司对市场上拥有更多 ARM 支持的笔记本电脑是认真的。

最近,据报道苹果准备明年推出基于ARM的Macbook。彭博社报道说,苹果计划到2021年将iOS和macOS应用程序结合起来。有传言说苹果会将其MacBook笔记本电脑改用自己的ARM处理器。但是,以前,ARM 芯片没有运行更成熟的桌面应用程序所需的性能。彭博社的这份报告重申,在ARM上运行的Mac可能在2020年到达。Axios的报告似乎证实了这一说法。

然而,除了这些报告,随着iPad Pro在2015年发布,苹果显示,其ARM芯片现在可以处理"PC级"应用程序。自 2015 年以来,与英特尔的 CPU 代相比,Apple 的芯片变得越来越强大,每代芯片的性能都大得多。苹果传统上更喜欢对它设备的核心组件拥有更多的控制权,如果能够负担得起的话,所以苹果最终希望MacBook由为iOS设备供电的相同(或升级的)芯片提供动力,这是有道理的。

谜题的最后一部分是将 x86 macOS 程序过渡到 ARM 指令集体系结构。自去年以来,我们听说苹果正在实施一个名为"Marzipan"的项目,该项目将允许开发人员一次编写他们的应用程序代码,并在 iOS 设备和 macOS 计算机上工作。

几天前,苹果在其年度开发者大会上宣布发布第一版必要的软件套件。首先,苹果将允许开发者只将iPad应用移植到Mac上,因为iPad应用在功能和用户体验上都更接近macOS应用。最初,开发人员仍必须提交两个不同版本的应用,这些应用已针对每个平台优化了用户界面,但基础代码将保持不变。

2020年,苹果的Marzipan软件套件也有望允许开发者将他们的iPhone应用程序移植到Mac上。Apple 的工程师发现,将专为小型屏幕设计的应用程序移植到桌面是具有挑战性的,因此,进行这种过渡需要更长的时间。到 2021 年,第三方应用开发人员将能够创建跨 iOS 设备和 macOS 计算机工作的"单二进制文件"。据推测,它们在每个外形上仍有不同的用户界面,但它们要么更流畅地适应屏幕大小,要么开发人员必须在每个二进制文件中包含不同的用户界面。

ARM 及其合作伙伴也为服务器市场做出了重大公告,他们打算针对更强大的 Neoverse N1 和该芯片的其他变体。最大的公共云服务提供商亚马逊甚至已经开始设计自己的ARM CPU,它也可能很快就会升级到基于N1的处理器。就连谷歌(Google)也从未在Chrome *** 作系统中缺乏ARM支持,尽管 *** 作系统从第一天起就与架构无关,但谷歌似乎也在努力将Snapdragon平台引入一些Chromebook,而这反过来又应该能够更好地实现Chromebook上原生Android应用的功能和可用性。

但是,最初只有 Snapdragon 845 得到支持,因为该公司希望将更便宜的 Chromebook 推向市场。另一个问题似乎是,高通宁愿把Snapdragon 8cx放在售价500美元或更高的Chromebook中,因为这意味着OEM公司能够为8cx支付更高的价格。这将导致市场上有高端 的Chromebook 。

总之,随着 ARM 架构的进步和半导体行业改进的 7nm 光刻工艺,以及投资于基于 ARM 的设备开发的主要制造商,我们可以期待一系列令人振奋的新产品进入市场。有了这个预期的发展道路,作为消费者,我们只能希望未来的计算设备能为我们提供卓越的性能和高效率,并让我们把时间投入我们最擅长的:创造力和创新。

嵌入式Linux *** 作系统学习规划

ARMLINUX路线,主攻嵌入式Linux *** 作系统及其上应用软件开发目标:

(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)

(2)必须掌握一个嵌入式 *** 作系统(初步定为uclinux或linux,版本待定)

(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

从事嵌入式软件开发的好处是:

(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。

(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

(4)兴趣所在,这是最主要的。

从事嵌入式软件开发的缺点是:

(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是 *** 作系统级软件功底不深,则可能不适于此行。

(2)这方面的企业数量要远少于企业计算类企业。

(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。

(4)平台依托强,换平台比较辛苦。

兴趣的由来:

1、成功观念不同,不虚度此生,就是我的成功。

2、喜欢思考,挑战逻辑思维。

3、喜欢C

C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:

相信程序员。

不要阻止程序员做那些需要去做的。

保持语言短小精干。

一种方法做一个 *** 作。

使得它运行的够快,尽管它并不能保证将是可移植的。

4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。

5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。

方法步骤:

1、基础知识:

目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是 *** 作系统级软件,那将是我的优势。

科目:数字电路、计算机组成原理、嵌入式微处理器结构。

汇编语言、C/C、编译原理、离散数学。

数据结构和算法、 *** 作系统、软件工程、网络、数据库。

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。

主攻书籍:thecprogramminglanguage(一直没时间读)、数据结构-C2。

2、学习linux:

目的:深入掌握linux系统。

方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是011版,适合学习。最后深入代码。

主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

3、学习嵌入式linux:

目的:掌握嵌入式处理器其及系统。

方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。

(2)嵌入式 *** 作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。

(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。

主攻书籍:毛德 *** 的《嵌入式系统》及其他arm9手册与arm汇编指令等。

4、深入学习:

A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。

B、通信协议及编程技术:TCP/IP协议、80211,Bluetooth,GPRS、GSM、CDMA等。

2010-8-2116:46回复

122901732楼

C、网络与信息安全技术:如加密技术,数字证书CA等。

D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算法。

说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c,理由是c不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。

注意:要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。

不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻**。还有一些不愿意做但必须要做的!

技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

嵌入式书籍推荐

Linux基础

1、《Linux与UnixShell编程指南》

C语言基础

1、《CPrimerPlus,5thEdition》美StephenPrata着

2、《TheCProgrammingLanguage,2ndEdition》美BrianWKernighanDavidMRithie(K&R)着

3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)

4、《嵌入式Linux应用程序开发详解》

Linux内核

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代码情景分析》毛德 *** 胡希明著

研发方向

1、《UNIXNetworkProgramming》(UNP)

2、《TCP/IP详解》

3、《Linux内核编程》

4、《Linux设备驱动开发》(LDD)

5、《Linux高级程序设计》杨宗德著

硬件基础

1、《ARM体系结构与编程》杜春雷着

2、S3C2410Datasheet

英语基础

1、《计算机与通信专业英语》

系统教程

1、《嵌入式系统——体系结构、编程与设计》

2、《嵌入式系统——采用公开源代码和StrongARM/Xscale处理器》毛德 *** 胡希明着

3、《BuildingEmbeddedLinuxSystems》

4、《嵌入式ARM系统原理与实例开发》杨宗德著

理论基础

1、《算法导论》

2、《数据结构(C语言版)》

3、《计算机组织与体系结构性能分析》

4、《深入理解计算机系统》美RandalEBryantDavidO''Hallaron着

5、《 *** 作系统:精髓与设计原理》

6、《编译原理》

7、《数据通信与计算机网络》

8、《数据压缩原理与应用》

C语言书籍推荐

1TheCprogramminglanguage《C程序设计语言》

2PointersonC《C和指针》

3Ctrapsandpitfalls《C陷阱与缺陷》

4ExpertCLanuage《专家C编程》

5WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCPrograms

《编程精粹--Microsoft编写优质无错C程序秘诀》

6ProgrammingEmbeddedSystemsinCandC《嵌入式系统编程》

7《C语言嵌入式系统编程修炼》

8《高质量C/C编程指南》林锐

尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!

1指令集模拟器部分集成开发环境提供了指令集模拟器,可方便用户在PC机上完成一部分简单的调试工作,但是由于指令集模拟器与真实的硬件环境相差很大,因此即使用户使用指令集模拟器调试通过的程序也有可能无法在真实的硬件环境下运行,用户最终必须在硬件平台上完成整个应用的开发。

2驻留监控软件驻留监控软件(ResidentMonitors)是一段运行在目标板上的程序,集成开发环境中的调试软件通过以太网口、并行端口、串行端口等通讯端口与驻留监控软件进行交互,由调试软件发布命令通知驻留监控软件控制程序的执行、读写存储器、读写寄存器、设置断点等。

驻留监控软件是一种比较低廉有效的调试方式,不需要任何其他的硬件调试和仿真设备。

arm公司的Angel就是该类软件,大部分嵌入式实时 *** 作系统也是采用该类软件进行调试,不同的是在嵌入式实时 *** 作系统中,驻留监控软件是作为 *** 作系统的一个任务存在的。

驻留监控软件的不便之处在于它对硬件设备的要求比较高,一般在硬件稳定之后才能进行应用软件的开发,同时它占用目标板上的一部分资源,而且不能对程序的全速运行进行完全仿真,所以对一些要求严格的情况不是很适合。

3JTAG仿真器JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。

JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与armCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。

另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频 *** 作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。

使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。

4在线仿真器在线仿真器使用仿真头完全取代目标板上的CPU,可以完全仿真ARM芯片的行为,提供更加深入的调试功能。

但这类仿真器为了能够全速仿真时钟速度高于100MHz的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较昂贵。

java课程>

要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARMCortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。

1ARM实现方法

ARMCortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。

ARM对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。

ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。众多的制造商出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。在许多方面,ARM7TDMI都可以称得上是嵌入式领域的实干家。

2两者差异

除了使用哈佛结构,Cortex-M3还具有其它显著的优点:具有更小的基础内核,价格更低,速度更快。与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。Cortex-M3还集成了睡眠模式和可选的完整的八区域存储器保护单元。它采用THUMB-2指令集,最大限度降低了汇编器使用率。

3指令集

ARM7可以使用ARM和Thumb两种指令集,而Cortex-M3只支持最新的Thumb-2指令集。这样设计的优势在于:

免去Thumb和ARM代码的互相切换,对于早期的处理器来说,这种状态切换会降低性能。

Thumb-2指令集的设计是专门面向C语言的,且包括If/Then结构(预测接下来的四条语句的条件执行)、硬件除法以及本地位域 *** 作。

Thumb-2指令集允许用户在C代码层面维护和修改应用程序,C代码部分非常易于重用。

Thumb-2指令集也包含了调用汇编代码的功能:Luminary公司认为没有必要使用任何汇编语言。

综合以上这些优势,新产品的开发将更易于实现,上市时间也大为缩短。

4中断

Cortex-M3的另一个创新在于嵌套向量中断控制器NVIC(NestedVectorInterruptController)。相对于ARM7使用的外部中断控制器,Cortex-M3内核中集成了中断控制器,芯片制造厂商可以对其进行配置,提供基本的32个物理中断,具有8层优先级,最高可达到240个物理中断和256个中断优先级。此类设计是确定的且具有低延迟性,特别适用于汽车应用。

NVIC使用的是基于堆栈的异常模型。在处理中断时,将程序计数器,程序状态寄存器,链接寄存器和通用寄存器压入堆栈,中断处理完成后,在恢复这些寄存器。堆栈处理是由硬件完成的,无需用汇编语言创建中断服务程序的堆栈 *** 作。中断嵌套是可以是实现的。中断可以改为使用比之前服务程序更高的优先级,而且可以在运行时改变优先级状态。

使用末尾连锁(tail-chaining)连续中断技术只需消耗三个时钟周期,相比于32个时钟周期的连续压、出堆栈,大大降低了延迟,提高了性能。

如果在更高优先级的中断到来之前,NVIC已经压堆栈了,那就只需要获取一个新的向量地址,就可以为更高优先级的中断服务了。同样的,NVIC不会用出堆栈的 *** 作来服务新的中断。这种做法是完全确定的且具有低延迟性。

5睡眠

Cortex-M3的电源管理方案通过NVIC支持SleepNow,SleeponExit,(退出最低优先级的ISR)和SLEEPDEEPmodes这三种睡眠模式。

为了产生定期的中断时间间隔,NVIC还集成了系统节拍计时器,这个计时器也可以作为RTOS和调度任务的心脏。这种做法与先前的ARM架构的不同之处就在于不需要外部时钟。

6存储器保护单元

存储器保护单元是一个可选组建。选用了这个选项,内存区域就可以与应用程序特定进程按照其他进程所定义的规则联系在一起。例如,一些内存可以完全被其他进程阻止,而另外一部分内存能对某些进程表现为只读。还可以禁止进程进入存储器区域。可靠性,特别是实时性因此得到重大改进。

7调试

对Cortex-M3处理器系统进行调试和追踪是通过调试访问端口(DebugAessPort)来实现的。调试访问端口可以是一个2针的串行调试端口(SerialWireDebugPort)或者串行JTAG调试端口(SerialWireJTAGDebugPort)。通过Flash片、断点单元、数据观察点、跟踪单元,以及可选的嵌入式跟踪宏单元(EmbeddedTraceMacrocell)和指令跟踪宏单元(TraceMacrocell)等一系列功能相结合,在内核部分就可以采用多种类型的调试方法及监控函数。例如,可以设置断点、观察点、定义缺省条件或执行调试请求、监控停止 *** 作或继续 *** 作。所有的这些功能在ARM架构的产品中已经实现,只是Cortex-M3将这些功能整合起来,方便开发人员使用。

8应用范围

虽然ARM7内核并没有像Cortex系列那样集成很多外设,但是大量的基于ARM7的器件,从通用MCU,到

面向应用的MCU、SOC甚至是Actel公司基于ARM7内核的FPGA,都拥有更为众多的外围设备。大约有150种MCU是基于ARM7内核的(根据不同的统计方法,这个数字可能会更高)。

你会发现ARM7都可以实现几乎所有的嵌入式应用,或采用定制的方式来满足需求。基于标准内核,芯片厂商可以加入不同类型、大小的存储器和其他外围设备,比如串行接口、总线控制器、存储器控制器和图形单元,并针对工业、汽车或者其他要求苛刻的领域,使用不同的芯片封装,提供不同温度范围的芯片版本。芯片厂商也可能绑定特定的软件,比如TCP/IP协议栈或面向特定应用的软件。

例如,公司的STR7产品线有三个主要系列共45个成员,具有不同的封装和存储器。每一个系列都针对特定的应用领域,具有不同外设集合。比如STR730家族是专为工业和汽车应用设计的,因此具有可扩展的温度范围,包括多个I/O口和3个CAN总线接口。STR710则是面向于消费市场以及高端的工业应用,它具有多个通信接口,比如USB、CAN、ISO7816以及4个UART,还有大容量的存储器和一个外部存储器接口。

芯片厂商也可以选择利于开发人员开发产品的措施,比如采用ARM的嵌入式跟踪宏单元ETM(Embedded

TraceMacrocell),并提供开发和调试工具。Luminary、这两家公司已经有基于Cortex-M3的芯片,其他公司如NXP、Atmel也宣布生产该类产品。

9配套工具

ARM7应用已经非常普及,它已经有非常多第三方的开发和调试工具支持。在ARM的网站上有超过130家工具公司名称列表。

大多数厂商提供了基本的开发板,并提供下载程序的接口、调试工具以及外部设备的驱动,包括LED灯的显示状态或者屏幕上的单行显示。通常,开发套件包括编译器、一些调试软件以及开发板。更为高级的套件包括第三方的集成开发环境(IDE),IDE中包含编译器、链接器、调试器、编辑器和其他工具,也可能包括仿真硬件,比如说JTAG仿真器。内电路仿真器(ICE)是最早的也是最有用的调试工具形式之一,很多厂商都在ARM7上提供了这一接口。

软件开发工具范围很广:从建模到可视化设计,到编译器。现在很多的产品也用到实时 *** 作系统(RTOS)和中间件,以加速开发进程、降低开发难度。另外,还有一个非常重要的因素,很多的开发人员对ARM7的开发经验非常丰富。

虽然现在已经有新兴的Cortex-M3工具,但显然还是有一定的差距。不过,Cortex-M3的集成调试性能使调试变得简单且有效,且无需用到内电路仿真器ICE。

10决策

那么,你应该如何做出何种选择呢?如果成本是最主要考虑因素,您应该选择Cortex-M3;如果在低成本的情况下寻求更好的性能和改进功耗,您最好考虑选用Cortex-M3;特别是如果你的应用是汽车和无线领域,最好也采用Cortex-M3,这正是Coretex-M3的主要定位市场。由于Cortex-M3内核中的多种集成元素以及采用Thumb-2指令集,其开发和调试比ARM7TDMI要简单快捷。

然而,由于重定义ARM7TDMI的应用不是一件困难的事,特别是在使用了RTOS的情况下。保守者可能会沿用ARM7TDMI内核的芯片,并避免使用那些会使重定义变得复杂的功能。

IARSystems公司是最早做C编译器的厂商,提供一系列ARM开发工具,包括IARvisualSTATE建模工具、IAREmbeddedWorkbenchforARM集成开发环境、IARPowerPac实时 *** 作系统和中间件、J-Link硬件仿真工具以及开发套件。不管用户的选择是ARM7还是Cortex-M3,IAR都会让开发变得简单而有趣。

嵌入式系统开发就是对于除了电脑之外的所有电子设备上 *** 作系统的开发,开发对象有手机,掌上电脑,机电系统等。

嵌入式系统开发流程:

第一步:建立开发环境

*** 作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,arm-linux-gcc、arm-uclibc-gcc),或者安装产品厂家提供的相关交叉编译器;

第二步:配置开发主机

配置MINICOM,一般的参数为波特率115200 Baud/s,数据位8位,停止位为1,9,无奇偶校验,软件硬件流控设为无。在Windows下的超级终端的配置也是这样。MINICOM软件的作用是作为调试嵌入式开发板的信息输出的监视器和键盘输入的工具。配置网络主要是配置NFS网络文件系统,需要关闭防火墙,简化嵌入式网络调试环境设置过程。

第三步:建立引导装载程序BOOTLOADER

从网络上下载一些公开源代码的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根据具体芯片进行移植修改。有些芯片没有内置引导装载程序,比如,三星的ARV17、ARM9系列芯片,这样就需要编写开发板上FLASH的烧写程序,可以在网上下载相应的烧写程序,也有Linux下的公开源代码的J-FLASH程序。如果不能烧写自己的开发板,就需要根据自己的具体电路进行源代码修改。这是让系统可以正常运行的第一步。如果用户购买了厂家的仿真器比较容易烧写FLASH,虽然无法了解其中的核心技术,但对于需要迅速开发自己的应用的人来说可以极大提高开发速度。

第四步:下载已经移植好的Linux *** 作系统

如MCLiunx、ARM-Linux、PPC-Linux等,如果有专门针对所使用的CPU移植好的Linux *** 作系统那是再好不过,下载后再添加特定硬件的驱动程序,然后进行调试修改,对于带MMU的CPU可以使用模块方式调试驱动,而对于MCLiunx这样的系统只能编译内核进行调试。

第五步:建立根文件系统

下载使用BUSYBOX软件进行功能裁减,产生一个最基本的根文件系统,再根据自己的应用需要添加其他的程序。由于默认的启动脚本一般都不会符合应用的需要,所以就要修改根文件系统中的启动脚本,它的存放位置位于/etc目录下,包括:/etc/initd/rcS、/etc/profile、/etc/profile等,自动挂装文件系统的配置文件/etc/fstab,具体情况会随系统不同而不同。根文件系统在嵌入式系统中一般设为只读,需要使用mkcramfs genromfs等工具产生烧写映像文件。

第六步:建立应用程序的FLASH磁盘分区

一般使用JFFS2或YAFFS文件系统,这需要在内核中提供这些文件系统的驱动,有的系统使用一个线性FLASH(NOR型)512KB~32MB,有的系统使用非线性FLASH(NAND型)8MB~512MB,有的两个同时使用,需要根据应用规划FLASH的分区方案。

第七步:开发应用程序

可以放入根文件系统中,也可以放入YAFFS、JFFS2文件系统中,有的应用不使用根文件系统,直接将应用程序和内核设计在一起,这有点类似于μC/OS-II的方式。

第八步:烧写内核

根文件系统和应用程序,发布产品。

以上就是关于PLC和ARM 单片机哪个好啊 哪个好学哪个对编程要求高ARM主要就是编程吗全部的内容,包括:PLC和ARM 单片机哪个好啊 哪个好学哪个对编程要求高ARM主要就是编程吗、为什么要学习am11裸机程序开发、ARM处理器如何等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9465832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存