位置:51电子网 » 技术资料 » 传感与控制

ARM处理器的终端类型

发布时间:2020/7/20 22:56:00 访问次数:3578

T5AW5-3NP7树莓派 4 上安装 Windows 10 后的已知可用功能:

板载的 USB 端口;

micro-HDMI 视频输出;

3GB RAM 运存;

蓝牙+以太网(需要 USB 接口的适配器);

YouTube、Microsoft Edge、Paint.net 和 Microsoft Store;

支持基于 x86 的应用程序,以及大多数 ARM64 应用程序。

以下是尚未解决的问题:

板载以太网卡、音频插孔和第二个 HDMI 端口不可用;

图形卡加速还没搞定;

板载的 Wi-Fi 和蓝牙功能暂不可用;

基于仿真的 X64 应用程序无法运行,禁用补丁后的 VLC 无法播放 1080p @ 60fps 视频,大多数 Steam 游戏也没指望。

ARM要求中断向量表必须防放置在从0x00000000地址开始的连续32字节的空间内。ARM9定义的中断向量在向量表中的地址如下面所示,当中断发生后,ARM处理器会强制把PC指针指向中断向量表中对应的终端类型的地址处。

中断向量表的程序设计如下:

CODE32

AREA Startup,CODE,READONLY

; /* 异常向量表 */

Vectors

LDR PC, ResetAddr ;把ResetAdde地址上的存储器的内容装载到PC上

LDR PC, UndefinedAddr

LDR PC, SWI_Addr

LDR PC, PrefetchAddr

LDR PC, DataAbortAddr

DCD 0

LDR PC, IRQ_Addr

LDR PC, FIQ_Addr

ResetAddr DCD ResetInit;为ResetAddr分配以ResetInit地址值,

UndefinedAddr DCD Undefined

SWI_Addr DCD SoftwareInterrupt

PrefetchAddr DCD PrefetchAbort

DataAbortAddr DCD DataAbort

Nouse DCD 0

IRQ_Addr DCD IRQ_Exception

FIQ_Addr DCD FIQ_Handler

对ResetAddr而言,此时ResetAddr实质上只作为一个指针(指向ResetInit),没有分配空间,ResetAddr地址的存储器上装载的是ResetInit的地址。

ResetInit

BL InitStack ; 初始化堆栈

BL TargetBusInit ; 总线系统初始化 (函数中不允许堆栈操作)

BLTargetResetInit; 针对目标板的系统初始化

以ResetInit为例,存储器空间分配如下所示:

注意中断向量表要存放在代码段startup的开始处(Entry开始),而程序被链接时,该startup代码段被链接在整个程序的入口地址。

AVR和ARM的区别:

ARM是IP核,可供各大芯片商集成到各自的设计中,好比是软件语言中的C++,如果你想换一家厂商或者某家的货太贵,都会有其它的厂商来竞争,至少从理论上,你不会被一家厂商套住。

AVR这方面就差点,ATMEL一家,别无分号。你只能在他的系列中选一个型号,无法选厂家。好比是软件语言中的Java,虽然现在免费(指Java的SDK,不是AVR)或价格低,但市场前景更多的掌握在厂商手中。

实际产品成本方面,AVR优于ARM,毕竟AVR是8位机,配什么外设都便宜,由于速度比ARM低,PCB版也好设计,20MHz的数字电路基本上只要通就行了,不用过多考虑信号完整性什么的。而ARM的速度能轻易上100MIPS,32位的CPU也不是吹的,速度上AVR根本没法比,不过带来的问题就多了,要4层PCB,而且外设也贵多了。

功能方面,ARM大大优于AVR,ARM可以做PDA,手机,AVR显然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,虽说国内实际在ARM平台上跑出Linux而又愿意公开技术的人几乎没有(我正在努力朝这个方向发展),但前途绝对是光明的。功能上的优势意味着ARM比AVR有着更广的应用范围,所以,双龙耿先生所说的“中学用AVR”如果是对的话,大学里就应该用ARM。

(素材来源:21ic.如涉版权请联系删除。特别感谢)

深圳市永拓丰科技有限公司http://ytf01.51dzw.com/



T5AW5-3NP7树莓派 4 上安装 Windows 10 后的已知可用功能:

板载的 USB 端口;

micro-HDMI 视频输出;

3GB RAM 运存;

蓝牙+以太网(需要 USB 接口的适配器);

YouTube、Microsoft Edge、Paint.net 和 Microsoft Store;

支持基于 x86 的应用程序,以及大多数 ARM64 应用程序。

以下是尚未解决的问题:

板载以太网卡、音频插孔和第二个 HDMI 端口不可用;

图形卡加速还没搞定;

板载的 Wi-Fi 和蓝牙功能暂不可用;

基于仿真的 X64 应用程序无法运行,禁用补丁后的 VLC 无法播放 1080p @ 60fps 视频,大多数 Steam 游戏也没指望。

ARM要求中断向量表必须防放置在从0x00000000地址开始的连续32字节的空间内。ARM9定义的中断向量在向量表中的地址如下面所示,当中断发生后,ARM处理器会强制把PC指针指向中断向量表中对应的终端类型的地址处。

中断向量表的程序设计如下:

CODE32

AREA Startup,CODE,READONLY

; /* 异常向量表 */

Vectors

LDR PC, ResetAddr ;把ResetAdde地址上的存储器的内容装载到PC上

LDR PC, UndefinedAddr

LDR PC, SWI_Addr

LDR PC, PrefetchAddr

LDR PC, DataAbortAddr

DCD 0

LDR PC, IRQ_Addr

LDR PC, FIQ_Addr

ResetAddr DCD ResetInit;为ResetAddr分配以ResetInit地址值,

UndefinedAddr DCD Undefined

SWI_Addr DCD SoftwareInterrupt

PrefetchAddr DCD PrefetchAbort

DataAbortAddr DCD DataAbort

Nouse DCD 0

IRQ_Addr DCD IRQ_Exception

FIQ_Addr DCD FIQ_Handler

对ResetAddr而言,此时ResetAddr实质上只作为一个指针(指向ResetInit),没有分配空间,ResetAddr地址的存储器上装载的是ResetInit的地址。

ResetInit

BL InitStack ; 初始化堆栈

BL TargetBusInit ; 总线系统初始化 (函数中不允许堆栈操作)

BLTargetResetInit; 针对目标板的系统初始化

以ResetInit为例,存储器空间分配如下所示:

注意中断向量表要存放在代码段startup的开始处(Entry开始),而程序被链接时,该startup代码段被链接在整个程序的入口地址。

AVR和ARM的区别:

ARM是IP核,可供各大芯片商集成到各自的设计中,好比是软件语言中的C++,如果你想换一家厂商或者某家的货太贵,都会有其它的厂商来竞争,至少从理论上,你不会被一家厂商套住。

AVR这方面就差点,ATMEL一家,别无分号。你只能在他的系列中选一个型号,无法选厂家。好比是软件语言中的Java,虽然现在免费(指Java的SDK,不是AVR)或价格低,但市场前景更多的掌握在厂商手中。

实际产品成本方面,AVR优于ARM,毕竟AVR是8位机,配什么外设都便宜,由于速度比ARM低,PCB版也好设计,20MHz的数字电路基本上只要通就行了,不用过多考虑信号完整性什么的。而ARM的速度能轻易上100MIPS,32位的CPU也不是吹的,速度上AVR根本没法比,不过带来的问题就多了,要4层PCB,而且外设也贵多了。

功能方面,ARM大大优于AVR,ARM可以做PDA,手机,AVR显然不行,最糟糕的是ARM上可以跑Linux,Linux可以做多少事啊,虽说国内实际在ARM平台上跑出Linux而又愿意公开技术的人几乎没有(我正在努力朝这个方向发展),但前途绝对是光明的。功能上的优势意味着ARM比AVR有着更广的应用范围,所以,双龙耿先生所说的“中学用AVR”如果是对的话,大学里就应该用ARM。

(素材来源:21ic.如涉版权请联系删除。特别感谢)

深圳市永拓丰科技有限公司http://ytf01.51dzw.com/



热门点击

 

推荐技术资料

滑雪绕桩机器人
   本例是一款非常有趣,同时又有一定调试难度的玩法。EDE2116AB... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!