新闻资讯
【方辉专栏】ARM嵌入式编译器(三) Arm Compiler 6编译参数选项
2022-08-08
摘要: 本文主要对Arm Compiler 6编译器的各命令参数选项进行介绍。关键字:Arm Compiler 6、编译器、armclang、armlink、armar 、fromelf、armasm1. armclang常用参数 参数选项参数说明-c只执行编译步骤,不执行链接步骤-x指定编译的原文件语言,例如C语言,-xc inputfile.s ;例如C++语言,-xc++ inputfile.s-std指定要编译的语言标准,例如C90, -std=c90--target=arch-vendor-os-abi选定执行状态是AArch64或AArch32.例如AArch64,--target=aarch64-arm-none-eabi例如AArch32,--target=arm-arm-none-eabi-march=name指定体系结构,例如:-march=armv8-a 或 -march=armv7-a.-march=list显示所选执行状态的所有受支持架构的列表。-mcpu=name指定的处理器。例如:-mcpu=cortex-m3 或-mcpu=cortex-a53-mcpu=list显示所选执行状态的所有受支持处理器的列表。-marm以 A32 指令集进行编译,例如:--target=arm-arm-none-eabi -march=armv7-a -marm;说明:-marm选项对 M架构或 AArch64 架构无效。-mthumb以 T32 指令集进行编译,,该指令集由 16 位宽和 32 位宽指令组成。例如:--target=arm-arm-none-eabi -march=armv8-a -mthumb说明:-marm选项对 AArch64 架构无效-mfloat-abi指定使用硬件还是软件函数进行浮点运算。-mfpu指定 FPU 架构-g(armclang)生成与 DWARF 4 标准兼容的 DWARF 调试表-e仅执行预处理器步骤-I将指定目录添加到搜索位置列表,用以查找包含文件。-o(armclang)指定输出文件的名称。-Onum指定编译源文件时要使用的性能优化级别。num为0,1,2,3.-Os指定优化等级为平衡代码大小与代码速度-Oz指定优化等级为优化代码大小。-S输出机器代码的反汇编。-###用于调用编译器和链接器,显示诊断输出,不执行编译和链接步骤。2. armlink常用参数参数选项参数说明--scatter=filename指定分散加载描述文件,创建镜像的内存映射。--entry指定镜像的初始入口。--info (armlink)显示有关链接器操作的信息。例如代码大小,--info=size--list=filename将诊断输出重定向到指定文件--map显示一个内存映射,包含镜像中每个加载区、执行区和输入段的地址和大小,也包括链接器生成的输入段。--symbols列出链接步骤中使用的每个局部和全局符号及其值-o filename, -output=filename指定输出文件的名称--keep=section_id指定不删除输入段未使用的部分--load_addr_map_info在映射文件中包括执行区的加载地址和其中的输入段3. armar常用参数参数选项参数说明--debug_symbols在库中包含调试符号-a pos_name将新文件放在库中,pos_name文件之后的位置。-b pos_name将新文件放在库中,pos_name文件之前的位置。-a file_list从库中删除指定的文件--sizes列出库中每个成员Code, RO Data, RW Data, ZI Data和 Debug 的大小-t打印库的目录4. fromelf常用参数参数选项参数说明--elf选择 ELF 输出模式--text以文本格式显示镜像信息--info (fromelf)显示有关特定主题的信息例如:--info=totals Code RO Data RW Data I Data Debug5. armasm常用参数参数选项参数说明--cpu=name设置处理器-g (armasm)生成与 DWARF 3 标准兼容的 DWARF 调试表--fpu=name设置目标浮点单元 (FPU) 架构-o (armasm)指定输出文件的名称+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
由NASA支持的项目选用Ansys仿真技术验证有关航空可持续性的开创性研究
2022-08-08
在这项为期五年的项目中,中佛罗里达大学(UCF)将采用Ansys行业领先的仿真技术进行分析和测试,以确认将氨作为零碳排放喷气式发动机替代燃料的可行性主要亮点Ansys仿真工具将帮助研究人员对液态氨(NH3)的使用进行验证,这是一种更具可持续性的飞机替代燃料此次合作将支持全球航空业实现,并且有可能超越2050年达到零排放的目标仿真技术有望帮助该研究项目通过采用零碳排放的替代燃料,来推动航空业的颠覆性发展Ansys将为由中佛罗里达大学(UCF)牵头开展的研究提供支持,该项目已获得美国宇航局大学领导力计划(NASA University Leadership Initiative)授予的1,000万美元资助,项目为期五年旨在加速航空业的可持续发展。项目旨在开发以液态氨(NH3)作为飞机更具可持续性的替代燃料的零碳排放喷气式发动机。Ansys仿真解决方案将作为项目的关键技术,以验证氨的使用情况,并在预期的时间内获得可靠结果。通过集成Ansys化学动力学和计算流体动力学(CFD)仿真工具——Ansys Chemkin-Pro和Ansys Fluent,研究人员能够仿真关于氨的复杂化学反应系统,包括:热交换管内部液态氨的蒸发、传热、氨与氢气在空气中的燃烧等。其目标是将氨作为主要的氢载体,通过诱导化学催化剂来利用氨中的氢成分,同时实现只向空气中释放安全的排放物。UCF学生将先进的激光光谱仪器与UCF CATER的HiPER STAR激波管设施耦合,以收集发动机相关条件下的燃烧实验数据“我们希望为更清洁的航空业开发一种可扩展的解决方案,与Ansys合作将帮助我们更快地实现这一目标,如果没有Ansys流体仿真工具提供的先进功能,我们将无法验证液态氨是否能够作为一种可靠的替代燃料。”该项目首席研究员、中佛罗里达大学工程学教授Jay Kapat表示。Jay Kapat是其所在领域的专家,并负责中佛罗里达大学高级涡轮机械和能源研究中心。氨不仅具有可持续性,还在高海拔地区天然以液态形式存在,因此比氢气更易于处理,并且无需额外存储。相比之下,氢在高海拔地区就需要进行特殊处理、热管理以及大量的机载低温存储。 Ansys首席技术官兼Ansys高校与可持续性计划执行发起人Prith Banerjee指出:“仿真正在帮助众多行业重塑更清洁的未来。目前,中佛罗里达大学携手NASA开展的这一振奋人心的新项目,为航空业带来了持续的影响,让我们赞叹不已。仿真可帮助企业在产品投产之前节省资源、能源以及减少排放,开发出更节能的产品和流程,从而对可持续发展产生深远的影响。Ansys仿真提供可预测的确定性,以帮助客户实现对可持续未来的愿景,并对无法分析的化学反应等相互作用进行建模。我们由衷期待,能够助力开发出开创性的可持续航空替代燃料。”(文章来源公众号:Ansys)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
展望智能未来,工程仿真的美丽新世界
2022-08-05
"我们希望不仅仅依靠软件开发人员来推动工程仿真技术的进步,更要探索人工智能、机器学习的潜力以补充传统的软件开发工作。"在过去50多年里,工程仿真领域采用数值方法,使工程师能够更快更轻松地求解3D物理问题,同时获得更高精度和更可靠的结果,但仍然存在诸多挑战:如何保障结果的准确性、结果生成速度、流程易用性及鲁棒性?而Ansys正在探索如何使用人工智能(AI)、机器学习(ML)和深度学习(DL)来解决这些问题,以及将AI和ML集成到仿真软件中。这些概念在过去听起来更像是科幻小说里才有,但如今他们正在影响人们日常工作和生活的方方面面,变得无处不在,而工程仿真也不例外。一直以来,Ansys致力于与人工智能和机器学习领域的全球领导者合作,倾力打造业界一流的仿真工具。未来新一代的Ansys软件将会在单一方案中同时提供极快的速度和极高的精度,我们深信能够推动这种强势组合实现的密钥就是应用深度学习。在Ansys,我们可以使用AI/ML方法自动查找仿真参数,提高速度和准确性;利用增强仿真,通过数据驱动方法或基于物理的方法训练神经网络,将仿真速度提高100倍。换句话说,AI/ML将帮助我们缩小理想世界与现实生活之间的差距,让我们能够在仿真效率、易用性和准确性之间实现完美平衡。Ansys基于物理的仿真使客户能够 "测试运行 "数百种不同的产品设计,而不需要物理原型。然而,如果用于复杂的产品,仿真过程可能需要数千小时,但通过人工智能可以将仿真速度加快100倍,而这一切都归功于通过人工智能工程训练数据。1 人工智能和仿真相结合的好处提高速度和准确性。Ansys正在使用AI/ML方法自动查找仿真参数,以同时提高速度和准确性。增强仿真。AI/ML可加速芯片热解决方案并开发流体求解器,将局部区域的高精度解决方案与粗疏区域的ML方法相结合。获取业务信息。推动制定业务信息决策,例如Ansys仿真求解器的计算资源预测需求。优化设计空间探索。AI/ML可以指导早期产品优化工作,帮助工程师根据数千个参数快速找到最佳设计空间。2 通过仿真加速机器学习Ansys Fluent有效利用人工智能(AI)提高性能,同时不降低准确性,结果表明速度提升了86倍。Michael P. Brenner是哈佛大学Michael F. Cronin实验室应用数学与应用物理学教授以及物理学教授。Brenner还是Google Research的一名研究科学家。他在“通过Fluent中的用户定义函数实现机器学习对流离散化” 主题报告中介绍了他与Ansys和Google Research的合作项目。3 人工智能在工程仿真中的应用AI/ML技术已成功应用于众多行业,例如智能媒介的自然语言理解、社交媒体上的情感分析、金融算法交易、药物研发和电子商务推荐引擎等。人们通常不知道AI/ML在工程仿真中所发挥的作用。事实上,AI/ML不仅适用于工程仿真,而且对于客户提升和推动实现突破性生产力至关重要,通过AI/ML增强的高级仿真技术是工程设计流程的重要基石。4 人工智能(AI)、机器学习(ML)和深度学习(DL)机器学习是一种通过为算法提供分类数据来实现人工智能的方法,这样它们就可以随着时间的推移而不断改进,而且无需明确编程。深度学习作为实现机器学习的一种手段,通过使用人工神经网络算法,试图模仿人类大脑做出决策的方式,包括自行对数据进行分类。深度学习通常需要大量数据和高性能计算(HPC)。从引导自动驾驶汽车到预测能源使用,再到通过学习复杂物理来加速工程仿真,只要能够收集到足够的数据来训练算法,都能为人工智能的完善发展赋能。5 利用仿真和人工智能开展自动驾驶汽车工程高级驾驶辅助系统(ADAS)与自动驾驶汽车的研发不仅极富挑战,而且无先例可循。据估计,为了确保安全性和可靠性,工程师需要进行数十亿英里的道路测试,这项不可能完成的任务只有借助工程仿真才能实现。借助仿真,工程师可以通过低成本、快速准确的方式对数以千计的驾驶场景和设计参数进行虚拟测试。6 利用人工智能、机器学习和深度学习加速仿真AI使工程师能够更快速地处理大型复杂设计,而且不会为了速度而降低准确性。实现100倍的仿真提速使用Ansys RedHawk-SC系列产品中的深度神经网络,将蒙特卡洛仿真速度提高多达100倍,从而能够更好地了解电压对时序的影响。求解速度实现1,000倍提升一家汽车客户利用Ansys optiSLang机器学习技术找到了一种自动驾驶解决方案,能够帮助解决前方车辆突然改变车道并减慢交通速度这种“卡住不动”的交通难题。与以前使用的蒙特卡洛方法相比,他们能够将寻找解决方案的速度提升1,000倍。10,000种不同的设计通过使用AI/ML,我们正在进入一个创成式设计世界,根据规格探索10,000种不同的设计,并使用高性能计算和Ansys Cloud对其进行快速仿真,从而为设计人员提供最佳选择。虽然当前人工智能和机器学习的应用仍处于相对起步阶段,它在使仿真更快、更智能、更准确方面的全部潜力还有待观察,但Ansys软件开发团队致力于为人工智能的发展做出贡献,每天都在探索人工智能和机器学习的可能性,终有一天将仿真的美丽新世界呈现给全球用户。让我们一起推动产品创新,加快设计周期,并展望智能未来。(文章来源公众号:Ansys)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
【方辉专栏】ARM嵌入式编译器(二)armclang使用时必须指定的参数选项
2022-08-04
摘要: 本文主要对Arm Compiler 6的armclang的命令参数选项进行介绍。关键字:Arm Compiler 6、编译器、armclang、mcu架构、处理器、优化级别1. armclang编译参数armclang是Arm Compiler 6中编译 C/C++和GNU语言的集成编译器。在armclang进行编译时以下参数是必须要指定的。--target(目标)-march(架构)-mcpu(处理器)-O(优化等级)2. 编译参数详细介绍2.1 指定目标要指定目标,需使用--target,这个目标主要指是为AArch64 状态生成 A64 指令还是为 AArch32 状态生成 A32 和 T32 指令。例如:为 AArch64 状态生成 A64 指令:--target=aarch64-arm-none-eabi为 AArch32 状态生成 A32或T32指令:--target=arm-arm-none-eabi备注1:为 AArch32 状态生成A32或T32指令时,还要分别使用-marm或-mthumb。2.2 指定架构使用-march选项,为指定架构生成代码。支持的架构因所选目标不同而有差别。要查看所选目标的所有支持架构列表,请使用-march=list;2.3 指定处理器使用-mcpu选项,为指定处理器生成代码。支持的处理器因所选目标不同而有差别。要查看所选目标的所有支持处理器列表,请使用-mcpu=list;备注:指定架构和指定处理器两个参数选项不能同时使用。如果是为特定的处理器进行编译,请使用-mcpu选项,可以得到适用于此处理器的最佳性能。但如果希望编译后的代码在特定架构上的一系列处理器上运行,请使用-march,代码可以在这个架构上的任何处理器上运行,但性能与指定单个处理器相比会收到不同程度的影响。2.4 指定优化等级使用-O选项,是指定编译的优化等级。不同优化等级对执行效率和代码有不同的影响。如果不明显指定,则默认为-O0,即不进行任何优化。此时的编译速度是最快的。3. 举例以编译hello.c文件为例,在AArch64 状态 Armv8-A 架构下的编译:armclang --target=aarch64-arm-none-eabi -march=armv8-a hello.c在 AArch32 状态Armv8-R 架构下的编译:armclang --target=arm-arm-none-eabi -march=armv8-r hello.c在AArch64 状态Cortex®-A53处理器的编译:armclang --target=aarch64-arm-none-eabi -mcpu=cortex-a53 hello.c在AArch32 状态Cortex®-A53处理器的编译:armclang --target=arm-arm-none-eabi -mcpu=cortex-a53 hello.cCortex-M4处理器编译:armclang --target=arm-arm-none-eabi -mcpu=cortex-m4 hello.cCortex-M33处理器不使用DSP编译:armclang --target=arm-arm-none-eabi -mcpu=cortex--m33+nodsp hello.c+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
如何高效率完成白盒测试?
2022-08-04
本文作者:Jackie HuParasoft中国 方案架构师上期咱们聊到了C/C++test可以完美帮助大家高质量地完成白盒测试,但是在现在软件发布周期越来越短的大环境下,光有高质量已经很难满足大家的需求。在追求高质量的同时,许多用户开始追求高效率,能同时兼顾两者的解决方案,才是“好”的解决方案。那么这一期我们来一起聊聊Parasoft的“好”方案 —— C/C++test帮助大家高效完成白盒测试。要把今天的主题-C/C++test帮助大家高效完成白盒测试,这个主题讲明白,我们还是要简单了解一下今天的相关预备小知识,它就是Devops和Agile。Devops原则理解DevOps的发展有几个关键部分,它们通常是某个企业或团队采用了新的方式取得了惊奇的成效带来的,比如向敏捷的转变。随着企业开始转向敏捷开发方法,他们开始发现其实其他的产品阶段也能进行“加速”,如DevOps的持续交付和持续测试。为了确保交付好一款产品,团队必须采用持续测试,以确保整个流程的完整性。现代化成熟度模型有这三个不同的阶段。Agile 敏捷敏捷软件开发是应对开发时间挑战的另一种思维方式。传统上,产品经过12个月的时间开发,它们需要经历不同的阶段。这种传统方法通常被称为“瀑布模型开发”,这种开发方法的挑战都来自于反馈循环。传统上,在瀑布式开发中,反馈周期需要长达12个月,而在今天的软件行业中,对于任何想要竞争的产品来说,这肯定会是致命点。有一些阶段,比如测试,它接受客户客户的反馈信息,但这些阶段都是有限制的,他不能无限制地接受。要真正理解客户的需求,必须让应用程序更快地进入市场。此外,经过12个月的孤立开发后,业务期望可能会发生改变,使得这些业务需求不再与开发工作同步。有了这些明显的限制,迫使我们需要更快的发布周期,敏捷开发就应运而生了。对于Agile,同样的软件开发生命周期(SDLC)基本原理也适用,原本的整个流程被压缩成一个一个的小循环(Loop),但是这种循环也是不断迭代的。这有很多优点,比如更快的反馈,能够对市场做出反应,能够随时发布,最重要的是,更准确的交付。不知道大家注意到没有,对于敏捷中的每个小循环都需要Test,这意味着我们不能再像传统的模式,等待到产品开完结束后,再去做测试了,而是在每个Loop都要去做测试,那这样的模式该如何落地呢?其实C/C++test可以在开发人员每次提交代码后,就进行测试,测试结果会自动同步到Parasoft的Web端(DTP),Web端会自动地将测试结果进行处理,(这个模式的具体细节,可以在《Parasoft的自动化测试平台到底强在哪?》进行详情查看),团队组长都可以通过Web端来分析每次的测试结果,并且可以及时分发给对应的开发人员,这样的模式就能及时将每次的代码测试结果进行反馈,进行修正。其实,这就解决了传统的“反馈”问题,团队遇到的问题就能及时被解决,大大提升了我们的测试效率,更重要的是加快整个产品的开发周期。简单一句话概括,就是C/C++test能对每个Loop中的目标进行测试,并且不断提供反馈信息,帮助团队对项目快速进行调整。C/C++test就是以这样的方案落地方式,来帮助大家高效地完成测试工作。(文章来源公众号:Parasoft)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
【方辉专栏】ARM嵌入式编译器(一) Arm Compiler 6简介
2022-08-03
摘要: 本文主要对Arm Compiler 6进行介绍。关键字:Arm Compiler 6、编译器、链接器、映射1. 简介Arm Compiler 6是一款基于Cortex 和 Neoverse处理器的C/C++的编译工具。它与ARM架构同时开发。因此基于ARM内核的产品,小到单一传感器,大到64位设备的嵌入式裸机程序均可以使用Arm Compiler 6进行编译。Arm Compiler 6 是Arm Development Studio和Arm Keil MDK的一个组件。您可以将 Arm Compiler  6 用作独立产品使用。Arm Compiler 6 支持的功能和支持的处理器型号取决于Arm Development Studio和Arm Keil MDK版本。2. 提供的工具和库ARM Compiler 6基于最新的LLVM-based编译架构来组织最优的工具和库。主要包含以下组件:2.1 armclangarmclang是编译 C/C++和GNU语言的集成编译器。支持标准的C/C++和GNU版本,如下所示:Standard CGNU CStandard C++GNU C++c90gnu90c++98Gnu++98c99gnu99c++03Gnu++03c11 [COMMUNITY]gnu11[COMMUNITY]c++11Gnu++11 c++14Gnu++14 c++17[COMMUNITY]Gnu++17[COMMUNITY]Arm Compiler  6 基于 LLVM 构建,在文档中引用社区功能的地方,它们用 [COMMUNITY] 标识。2.2 armasm仅对原来的arm语法汇编代码使用armasm,对使用GUN语法的汇编文件使用armclang。2.3 armlinkarmlink是一个链接器,它将一个或多个目标文件的内容,与一个或多个目标库的选用部分结合起来,以生成可执行程序。2.4 armararmar是一个归档器,它可以将 ELF 目标文件集收集在一起进行归档或在库中进行维护。您没有更改文件,就可以从归档中或库中将这些文件传递给链接器,不必每次使用它们时都从源代码重新编译,从而减少编译时间。您还可以将这些归档文件发给第三方应用程序开发人员,就可以在不泄露源代码的情况下和对方联合开发。2.5 fromelffromelf是一个映射转换程序可以将Arm ELF镜像转换为二进制格式。 它还可以生成关于输入映射的文本信息,如反汇编、代码大小和数据大小等。2.6 Arm C++ libraries Arm C++ 库基于 LLVM libc++ :libc++abi 库是一个运行时库,提供低级语言功能的实现。libc++ 库提供了 ISO C++ 库标准的实现。这取决于 libc++abi 提供的函数。2.7 Arm C libraryArm C 库提供:C 标准中定义的库功能的实现、C 库通用的非标准扩展。POSIX  标准的功能、扩展的功能。3. 应用程序开发过程典型的应用程序开发流程涉及以下内容:1)编写 C/C++ 源代码。2)为接近硬件的组件开发汇编源代码,例如中断服务例程。3)编译C或汇编,并将所有目标文件链接在一起以生成镜像文件。4)将镜像文件转换为普通二进制、 Hex 格式,用于程序烧写。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
官宣!HighTec编译器正式发布支持AURIX™ SCR编译器
2022-08-03
HighTec为infineon AURIX™系列发布了支持SCR的编译器,最新发布的版本可以支持TC3xx和TC4xx的SCR模块。The AURIX™ SCR ModuleSCR(Standby Controller)模块是AURIX单片机内部的一个子系统,不论AURIX单片机运行在哪种模式,SCR都可以自主运行,包括低功耗模式。除了不同的外设,SCR包括以下模块:XC800 8-bit的CPU是可以兼容工业标准的8051 CPU8KB(TC3xx)或32KB(TC4xx)的XRAM用来存放代码和数据RAM有256 bytesSCR编译器的特点支持TC3xx SCR和TC4xx SCR模块满足ANSI C89 / ISO C90 and ISO C99的标准支持主流的第三方调试器供应商,比如Lauterbach支持small and large memory models提供多种优化级别支持inline汇编能够报告一个函数的相对复杂程度(文章来源公众号:HighTec CN)+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→
【方辉专栏】ARM64体系结构编程与实践学习笔记(十) 缓存一致性介绍
2022-08-02
摘要: 本文主要对缓存一致性的相关知识进行介绍。关键字:Armv8、体系结构、缓存一致性、Cache、MESI1. 缓存一致性缓存一致性是指在采用层次结构存储系统的控制器系统中保证高速缓冲存储器中数据与主存储器中数据相同的机制。缓存一致性关注的是同一个数据在多个高速缓存和内存中的一致性问题。解决高速缓存的一致性的方法主要是总线监听协议。缓存一致性根据系统设计的复杂度可以分为两大类:多核之间的缓存一致性,通常指CPU簇内的处理器内核之间的缓存一致性。系统之间的缓存一致性,包括CPU簇之间的缓存一致性及全系统间的缓存一致性。2. MESI协议缓存一致性方案可以通过多种标准方式进行操作。大多数 ARM 处理器使用 MOESI 协议,而 Cortex-A9 使用 MESI 协议。MESI是四个单词首字母缩写Modified修改,Exclusive独占,Shared共享,Invalid无效,下面就简要介绍一下这四种状态。M:表示当前CPU的高速缓存中的变量副本是独占的,而且和主存中的变量值不一致,而且别的CPU的flag不可能是这个状态。如果别的CPU想要读取变量的值,不能直接读主内存中的值,而是需要将处于M状态的变量刷新回主内存才可以。E:表示当前CPU的高速缓存中的变量副本是独占的,别的CPU高速缓存中该变量的副本不能处于该状态,但是,处于E状态的高速缓存变量的值和主内存中的变量值是一致的。S:处于S状态表示CPU中的变量副本和主存中数据一致,而且多个CPU都可以处于S状态,举例,当多个CPU读取主内存的值的时候高速缓存的flag就处于S状态。I:表示当前CPU的高速缓存的变量副本处于不合法状态,不可以直接使用,需要从主内存重新读取,flag的初始状态就是I。该协议的标准实现规则如下:仅当高速缓存行处于已修改或独占状态时才能进行写入。如果处于 Shared 状态,则必须先使所有其他缓存的副本失效。写入将行移动到修改状态。缓存可以随时丢弃共享行,变为无效状态。修改后的行首先被写回。如果一个缓存保持一行处于 Modified 状态,那么从系统中的其他缓存读取数据将从缓存中获取更新的数据。按照惯例,这是通过首先将数据写入主存储器,然后在执行读取之前将高速缓存行更改为共享状态来完成的。当另一个高速缓存读取该行时,具有处于独占状态的行的高速缓存必须将该行移动到共享状态。共享状态可能不准确。如果一个缓存丢弃了共享行,另一个缓存可能不知道它现在可以将该行移动到独占状态。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++关于亿道电子亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Parasoft、Testplant、IncrediBuild、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、Cadence 等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。欢迎关注“亿道电子”公众号了解更多研发工具软件知识
查看更多→