ARM處理器的終端類型
發布時間:2020/7/20 22:56:00 訪問次數:3558
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位高速智能化
上一篇:算術運算器和控制器電路