[architecture]-AMRV7和ARMV8中的一些细微差异
生活随笔
收集整理的這篇文章主要介紹了
[architecture]-AMRV7和ARMV8中的一些细微差异
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1、svc和swi的區(qū)別
- 2、swi、SGI、softirq的區(qū)別?
- 3、SError和data abort、prefetch abort、undefined instruction的區(qū)別
★★★ 友情鏈接 : 個(gè)人博客導(dǎo)讀首頁(yè)—點(diǎn)擊此處 ★★★
1、svc和swi的區(qū)別
svc和swi都是supervisor call指令,都是系統(tǒng)調(diào)用.
- 再armv7之前,用的都是swi,觸發(fā)異步異常,進(jìn)入vector_swi異常向量表;
- 在armv8-arch64架構(gòu)下,拋棄了swi,改用了svc,觸發(fā)的是同步異常,進(jìn)入同步異常向量表el1_sync
2、swi、SGI、softirq的區(qū)別?
【問(wèn)題】swi叫軟中斷、SGI也叫軟中斷、linux kernel中還有一個(gè)softirq也叫軟中斷,他們?nèi)齻€(gè)有什么區(qū)別呢?
【回答】:
- swi :software irq,是ARM的一個(gè)軟件中斷指令,產(chǎn)生swi異常;
- SGI:software generate interrupt,軟件產(chǎn)生的中斷,是cpu寫(xiě)gic寄存器,gic發(fā)出的一個(gè)irq給到cpu
- softirq: linux kernel自己造的軟中斷,和硬件無(wú)關(guān)
3、SError和data abort、prefetch abort、undefined instruction的區(qū)別
在armv7下使用的是data abort、prefetch abort、undefined instruction,在armv8下使用的是SError.
注:在linux kernel中,armv7體系下均已實(shí)現(xiàn)data abort、prefetch abort、undefined instruction異常處理函數(shù),在linux kernel的armv8體系下,沒(méi)有實(shí)現(xiàn)SError異常處理
總結(jié)
以上是生活随笔為你收集整理的[architecture]-AMRV7和ARMV8中的一些细微差异的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ARM架构中MMU/TLB/Cache的
- 下一篇: ARM Trustzone的安全扩展介绍