跳转到主要内容

ARM

Arm发布Artisan®物理IP,将加速基于台积电22nm ULP/ULL平台的主流移动和物联网设备SoC设计

judy /

Arm宣布旗下Arm®Artisan®物理IP将应用于台积电基于Arm架构的SoC设计22nm超低功耗(ULP)和超低漏电(ULL)平台。台积电22nmULP/ULL技术针对主流移动和物联网设备进行了优化,与上一代台积电28nm HPC+平台相比,在提升基于Arm的SoC性能的同时,更显著降低功耗和硅片面积。

“本次发布的下一代工艺技术能够以更低的功耗、在更小的面积上满足更多的功能需求,”Arm物理设计事业群总经理Gus Yeung指出,“Artisan物理IP与台积电22nmULP/ULL技术的设计和制造成本优势相结合,将为我们双方的合作伙伴带来立竿见影的每毫瓦运算性能提升及硅片面积缩减两方面优势。”

针对台积电22nmULP/ULL工艺技术推出的Artisan物理IP包含了代工厂支持的内存编译器,针对下一代边缘计算设备的低泄漏和低功耗要求进行了优化。除此之外,这些编译器还附有超高密度和高性能的物理IP标准单元库,其中含有电源管理套件和厚栅氧化物元件库,以协助优化低泄漏功耗。另外,最新的物理IP还提供了通用I/O解决方案,以确保性能、功耗和面积(PPA)的全面最优化。

ARM发布Cortex-M35P 为其设计了防篡改和软件隔离功能

judy /

ARM非常关心安全漏洞,现在它已经将安全性设计到了芯片中。该芯片设计公司今天宣布,其ARM Cortex-M35P处理器在芯片级上内置了防篡改技术和软件隔离功能。该技术将为智能卡,门锁和汽车设备等新兴应用带来智能卡安全级别。安全措施将有助于保护物联网(IoT)或智能连接的日常物品。

这个想法是保护芯片级别的系统免受硬件系统日益普遍的物理攻击。黑客可以使用诸如电力和电磁分析等设备来找出没有这种保护的芯片中正在发生的事情 - 并且会使数据处于危险之中。随着物联网的发展势头越来越强劲,更多具有高价值数据的设备相互连接,这些物理攻击对黑客更具吸引力。

ARM担心可能是由于与芯片直接物理接触或靠近芯片而导致的攻击。物理攻击旨在利用芯片实施层面的漏洞,而不是利用软件或设计层面的弱点。这些物理攻击分为两大类:侵入式攻击,需要(至少)芯片解封装和非侵入式攻击 - 例如近距离侧通道攻击(SCA),它通过非预期侧通道阻塞获得信息从芯片实现,例如,通过观察芯片的功耗或密码操作期间的电磁场发射)。“

Arm推出全新灵活SoC解决方案,助力物联网安全设备加速开发

judy /

<font color="#FD8900">作者:Paul Williamson,Arm副总裁暨物联网设备IP事业群总经理</font>

• 基于Arm平台安全架构(PSA)规范的全新系统级芯片(SoC)解决方案适用于多种IoT节点和网关设备
• Arm首款异构SoC解决方案将Cortex-M的高效率和实时响应与Cortex-A的卓越性能相结合,在终端设备上也能实现复杂处理和机器学习功能
• 为全新微软Azure Sphere解决方案提供安全的SoC基础

Arm宣布推出一套基于PSA规范的全新物联网解决方案——Arm SDK-700系统设计套件,以用于加速安全SoC的开发。作为一套综合的SoC系统框架,使用 Arm SDK-700系统设计套件可设计安全的SoC,并应用于丰富多样的IoT节点、网关设备和嵌入式产品。该解决方案不仅使合作伙伴能够在通用软件开发环境中打造安全设备,同时还使其业务的多样性和差异化可以在新的物联网应用中蓬勃发展。

ARM异常中断处理

judy /

<font color="#33b1c8">在ARM体系中,通常有以下3种方式控制程序的执行流程:</font>

• 在正常程序执行过程中,每执行一条ARM指令,程序计数器寄存器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)的值加2个字节。整个过程是顺序执行。

• 通过跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。其中,B指令用于执行跳转操作;BL指令在执行跳转操作的同时,保存子程序的返回地址;BX指令在执行跳转操作的同时,根据目标地址的最低位可以将程序状态切换到Thumb状态;BLX指令执行3个操作:跳转到目标地址处执行,保存了子程序的返回地址,根据目标地址的最低位可以将程序状态切换到Thumb状态。

• 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。在当异常中断处理程序执行完成后,程序返回到发生中断的指令的下一条指令处执行。在进入异常中断处理程序时,要保存被中断的程序的执行现场,在从异常中断处理程序退出时,要恢复被中断的程序的执行现场。

关于在ARM MDK 中使用STM32F4xx 硬件浮点单元的话题

judy /

<strong>一. 前言</strong>

有工程师反应说Keil 下无法使用STM32F4xx 硬件浮点单元, 导致当运算浮点时运算时间过长,还有一些人反应不知如何使用芯片芯片内部的复杂数学运算,比如三角函数运算。针对这个部分本文将详细介绍如何使用硬件浮点单元以及相关数学运算。

<strong>二.问题产生原因</strong>

1. ------对于Keil MDK Version 5 版本, 编译器已经完全支持STM32F4xx 的FPU(浮点运算单元),可以直接使用芯片内部的浮点运算单元。

2. ------对于Keil MDK Version 4 版本, 高版本v4,比如当前keil 官网可下载的v4.74.0.0 版本也已经支持
FPU,可以直接使用芯片内部浮点运算。但如果使用低版本v4,如v4.23.0.0 版本, 则需要对软件进行相应设置。

<strong>三. 如何解决问题</strong>

基于ARM和CPLD的高速数据采集系统设计

judy /

数据采集系统是通过采样电路将输入的模拟信号转换成离散信号,并送入CPU、MCU或DSP进行处理。现在流行的基于PCI总线设计的采集卡是数据采集系统的主流,其优点是可以利用PCI总线的研究成果快速的开发系统软件,整体运行速度快,能够实现实时采集实时处理。但在一些工业测控现场检测大型设备时,从现场到机房有一定的距离,模拟信号传到安装在PC内的PCI数据采集卡会有不同程度的衰减,且易受工业环境的干扰。而单纯用由微控制器(MCU)为核心的数据采集系统时,把数据采集器置于被监测的设备处,虽然可以避免模拟信号的衰减和被干扰,但在这种数据采集系统中,A/D转换器的启动、读取数据并存入到存储器的整个过程由MCU来参与控制,由于受MCU执行指令时间的限制,采集的速率较低,难以适应高速信号采集的需要。

本文利用ARM微处理器和CPLD器件组成的现场数据采集系统,然后通过以太网接口于上位机相连,就可以有效解决上述问题。

<strong>系统的设计方案</strong>

ARM与单片机到底有啥区别?

judy /

<strong>1、软件方面</strong>

这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处?

1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。

2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。

3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。

<strong>2、硬件方面</strong>

现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32arm相比还是有些差距吧。

arm芯片大多把SDRAM,LCD等控制器集成到片子当中。在8位机,大多要进行外扩。

总的来说,单片机是个微控制器,arm显然已经是个微处理器了。

基于ARM的数字调压控制系统设计详解

judy /

随着电子信息技术和半导体技术的深入发展,嵌入式系统的应用日趋广泛,在控制领域之中更多的使用了高性能微处理器,以满足各方面越来越多的控制应用需求。基于ARM嵌入式平台的数字调压控制系统,克服了传统上以旋钮或滑变式变阻器对交流电压进行模拟控制的弊端。本系统以嵌入式技术为基础,在嵌入式平台上利用ARM微处理器实时控制数模信号的转换,以控制正弦波调压模块对交流电压的大小调节。本文中通过对本系统的实际测试,验证了数字调压控制系统的功能特性,并且定量测试得出了本系统可以实现对交流电压进行线性调节的结论。数字调压控制系统可作为对电压的智能调节装置应用于家庭、医疗及工业自动化等领域,并且具有调节精度高、调节线性度好,易于操作等特性。

调压控制系统作为对电压的智能调节管理装置常用于家庭、医疗和工业自动化控制等领域。以往对交流电压的控制调节通常使用滑动式或旋钮式变阻器串接入电压回路中实现,旋钮的长时间旋转会导致调节不灵敏甚至失效,调节的精度降低,误差较大。随着电子科技和嵌入式技术的迅猛发展,嵌入式系统越来越多的应用于控制领域之中,在嵌入式平台上实现数字智能控制的调压系统有着重要的意义。文中选用ARM Cotrex—A8微处理器搭建硬件控制平台,使用Linux作为嵌入式操作系统,实时性强,易于开发。

x86和arm架构原子操作的区别

judy /

x86和arm在原子操作上有些差别,下面一代码的形式来说明区别:

首先比较单核:

由于x86是CISC指令集,允许在一条指令里进行两次内存操作,所以对i++,i__这些操作在单核条件下是原子,当然必须得是显示使用addl r,%1这种,就可在一条指令里完成读,写操作。

而arm属于RISC指令集,在一次指令执行期间只能有一次内存操作,所以像i++,i--这些需要先读取内存值然后赋值的操作,在arm架构下没法一条指令完成,所以就不满足原子操作,这时怎样实现原子操作呢:

我们通过代码来看;

对于atomic_add

图文并茂了解ARM体系结构与编程模型

judy /

<font size="3"><strong> ARM处理器简介及RISC特点</strong></font>

<strong>ARM处理器简介</strong>

ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。

<center><img src="http://mcu.eetrend.com/files/2018-03/wen_zhang_/100010635-37169-1.jpg&q…; alt="图文并茂了解ARM体系结构与编程模型"></center>

<strong>RISC设计主要特点</strong>