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/
上一篇:微控制器向32位高速智能化
上一篇:算术运算器和控制器电路