📄 mips3.txt
字号:
妱崬傒儅僗僋乛妱崬傒桪愭搙惂屼偺偨傔偺丄掕媊丒API偼埲壓偺捠傝偱偁傞丅
(1)IPM宆
CPU僐傾偲妱崬傒僐儞僩儘乕儔偲傪慡偰傑偲傔偨丄妱崬傒儅僗僋傪埖偆偨傔偺宆偱
偁傞丅CORE_IPM宆core偲ICU_IPM宆icu偲偐傜側傞峔憿懱偲偟偰掕媊偟偰偄傞丅
(cpu_defs.h)
CORE_IPM宆偼丄僗僥乕僞僗儗僕僗僞偵彂崬傓抣傪曐帩偡傞偨傔丄UINT宆偲偟偰掕
媊偟偰偄傞丅傑偨丄ICU_IPM宆偼丄偦傟偧傟偵僞乕僎僢僩儃乕僪偵偮偄偰壓婰偺
傛偆偵掕媊偟偰偄傞丅
(a) VR5500
VR5500偼妱崬傒僐儞僩儘乕儔傪撪憼偟偰偄側偄偨傔丄僞乕僎僢僩儃乕僪忋偵妱
崬傒僐儞僩儘乕儔傪帩偭偰偄傞丅偙偺妱崬傒僐儞僩儘乕儔偼丄侾僶僀僩亊俀屄
偺妱崬傒儅僗僋傪帩偭偰偄傞偺偱丄ICU_IPM宆偼
{ int0m, int1m } = { UB宆, UB宆 }
偲偟偰掕媊偟偰偄傞丅
(b) VR4131
VR4131偼妱崬傒僐儞僩儘乕儔傪撪憼偟偰偄傞丅偙偺撪憼妱崬傒僐儞僩儘乕儔偼丄
俀僶僀僩亊俀屄偺妱崬傒儅僗僋(MSYSINT1REG, MSYSINTREG2REG儗僕僗僞)傪帩偭
偰偄傞偺偱丄ICU_IPM宆偼
{ msysint1, msysint2 } = { UH宆, UH宆 }
偲偟偰掕媊偟偰偄傞丅
(cpu_defs.h, sys_defs.h)
崱夞偺幚憰偱偼丄ICU_IPM 宆偺弶婜抣偲偟偰壓婰偺傛偆偵偟偰偄傞丅
(a) VR5500
僞僀儅侽偺傒傪嫋壜偟偰偄傞丅
(b) VR4131
僶僢僥儕偺傒傪嫋壜偟偰偄傞丅
(sys_config.h)
乮core偺抣偼丄僗僥乕僞僗儗僕僗僞偵彂崬傓丄IM(0:7)偺晹暘偺傒傪曐帩偡傞
偙偲丅懠偺價僢僩傕憖嶌偟偨応崌偺摦嶌偼丄曐徹偟側偄丅乯
(2)all_set_ilv 妱崬傒儗儀儖偺愝掕
亂C尵岅API亃
all_set_ilv(INTNO intno, IPM *ipm)
亂僷儔儊乕僞亃
INTNO intno 妱崬傒梫場斣崋
IPM ipm 妱崬傒儅僗僋
亂儕僞乕儞僷儔儊乕僞亃
側偟
亂婡擻亃
MIPS3僐傾偍傛傃妱傝崬傒僐儞僩儘乕儔偵娭偡傞丄妱崬傒僴儞僪儔媅帡儀僋僞僥乕
僽儖乮int_table側傜傃偵丄icu_intmask_table乯偵丄妱崬傒儅僗僋傪愝掕偡傞丅
(cpu_config.h)
側偍丄僞乕僎僢僩儃乕僪忋偺妱崬傒僐儞僩儘乕儔偵傕傛傞偑丄崱夞幚憰傪峴偭偨
僞乕僎僢僩儃乕僪偺妱崬傒僐儞僩儘乕儔偱偼椉曽偲傕妱崬傒桪愭搙惂屼傪峴偭偰
偄側偄丅偦偺偨傔偵丄妱崬傒桪愭搙張棟傪妱崬傒儅僗僋偺愝掕偱峴偆昁梫偑偁傞丅
偙偺帪丄妱崬傒儅僗僋傪愝掕偡傞偲偒偼丄IPM宆峔憿懱偺梫慺偱偁傞CORE_IPM宆
core偼丄偦偺僞乕僎僢僩儃乕僪偺僴乕僪僂僃傾峔惉傪斀塮偟偰偄傞傕偺偱偁傞偺
偱丄尨懃偲偟偰曄峏偟側偄偙偲偲偡傞丅妱崬傒儗儀儖偺愝掕偼丄愙懕偝傟偰偄傞
妱崬傒僐儞僩儘乕儔偺妱崬傒儅僗僋傪曄峏偡傞偙偲偱懳墳偡傞偙偲偲偡傞丅
崱夞偺幚憰偵偍偗傞丄桪愭搙偼埲壓偺捠傝偱偁傞丅
(a) VR5500
桪愭搙 : (掅) 僔儕傾儖侾 -> 僔儕傾儖侽 -> 僞僀儅侽 (崅)
(rte-vr5500-cb.h)
(b) VR4131
桪愭搙 : (掅) 俢俽俬倀 -> TClock僇僂儞僞 -> 僶僢僥儕巆検晄懌専抦 (崅)
(kz-vr4131pci-01.h)
2.4 chg_ipm偺僒億乕僩偵偮偄偰
chg_ipm 傪僒億乕僩偡傞偨傔偵丄妱崬傒僴儞僪儔偺弌擖岥張棟側偳偵僆乕僶僿僢
僪傪惗偠偰偄傞丅偦偙偱丄SUPPORT_CHG_IPM 偲偄偆儅僋儘偵傛傝丄偙傟傜偺僒乕
價僗僐乕儖傪僒億乕僩偡傞偐偳偆偐傪愗傝懼偊傜傟傞傛偆偵偟偰偄傞丅
(SUPPORT_CHG_IPM 偼丄cpu_config.h 偺拞偱 #define 偝傟偰偄傞丅)
MIPS3僞乕僎僢僩埶懚偺妱崬傒儅僗僋偺曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偺巇條
偼師偺捠傝丅
(1) chg_ipm 妱崬傒儅僗僋偺曄峏
亂C尵岅API亃
ER ercd = chg_ipm(IPM ipm);
亂僷儔儊乕僞亃
IPM ipm 愝掕偡傋偒 IPM 偺抣
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
E_PAR 僷儔儊乕僞僄儔乕(ipm 偑晄惓)
亂婡擻亃
妱崬傒儅僗僋傪 ipm 偱巜掕偝傟偨抣偵愝掕偡傞丅巜掕偟偨抣偑丄MIPS3僐傾晹暘
偵偮偄偰偼0乣MAX_IPM偺斖埻撪偵丄妱崬傒僐儞僩儘乕儔晹暘偵偮偄偰偼妱崬傒
僐儞僩儘乕儔偺妱崬傒儅僗僋偺斖埻撪偵擖偭偰偄側偄応崌偵丄E_PAR僄儔乕傪曉
偡丅傑偨丄愝掕偟偨IPM偺抣偼丄僨傿僗僷僢僠屻傕堷偒宲偑傟傞丅
偙偙偱丄MAX_IPM偼丄MIPS3僐傾偵愝掕偱偒傞妱崬傒儅僗僋偺嵟戝偺價僢僩僷僞乕
儞偱偁傞丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇
傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応
崌偵偼丄E_CTX僄儔乕偲側傞丅
(2) get_ipm 妱崬傒儅僗僋偺嶲徠
亂C尵岅API亃
ER ercd = get_ipm(IPM *p_ipm);
亂僷儔儊乕僞亃
側偟
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
IPM ipm 尰嵼偺 IPM 偺抣
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
亂婡擻亃
尰嵼偺 妱崬傒儅僗僋偺抣傪撉傒弌偟丄ipm 偵曉偡丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇
傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応
崌偵偼丄E_CTX僄儔乕偲側傞丅
側偍丄僩儗乕僗儘僌婡擻偵娭偟偰丄chg_ipm偵娭偡傞晹暘偼僔僗僥儉埶懚晹偵偰
掕媊傪峴偭偰偄傞丅
(sys_tool_config.h)
2.5 CPU椺奜娗棟婡擻偲CPU椺奜僴儞僪儔
DEF_EXC 偱巜掕偡傞CPU椺奜梫場斣崋(excno)偼丄MIPS3 偱偺媅帡儀僋僞僥乕僽儖
偺儀僋僞斣崋傪昞偟丄偦偺僨乕僞宆(EXCNO)偼 UINT宆偵掕媊偝傟偰偄傞丅椺奜
梫場斣崋偼MIPS3偺椺奜僐乕僪偲1懳1偵懳墳偟偰偄傞丅
DEF_EXC 偱丄椺奜梫場斣崋偲偟偰桳岠偱側偄抣傗丄CPU椺奜偵懳墳偟側偄斣崋傪
巜掕偟偨応崌偺摦嶌偼曐徹偝傟側偄丅
(1)堷悢p_excinf
CPU椺奜僴儞僪儔偵搉偝傟傞p_excinf偼丄CPU椺奜敪惗帪偺僐儞僥僉僗僩傪曐懚
偟偨僗僞僢僋傊偺億僀儞僞偑搉偝傟傞丅僗僞僢僋偺峔憿傪埲壓偵帵偡丅
----------------------
| sp (r29) | <-- p_excinf
----------------------
| at (r1) |
----------------------
| v0 (r2) |
----------------------
| v1 (r3) |
----------------------
| a0 (r4) |
----------------------
| a1 (r5) |
----------------------
| a2 (r6) |
----------------------
| a3 (r7) |
----------------------
| t0 (r8) |
----------------------
| t1 (r9) |
----------------------
| t2 (r10) |
----------------------
| t3 (r11) |
----------------------
| t4 (r12) |
----------------------
| t5 (r13) |
----------------------
| t6 (r14) |
----------------------
| t7 (r15) |
----------------------
| t8 (r24) |
----------------------
| t9 (r25) |
----------------------
| gp (r28) |
----------------------
| fp (r30) |
----------------------
| ra (r31) |
----------------------
| PC (EPC;CP0_r14) |
----------------------
| SR (Status;CP0_r12) |
----------------------
| HI |
----------------------
| LO |
----------------------
sp : Stack Pointer
gp : Global Pointer
fp : Frame Pointer
ra : Return Address
PC : Program Counter
SR : Status Register
傑偨丄CPU椺奜敪惗帪偺EPC偺抣偼丄椺奜敪惗柦椷偑暘婒僗儘僢僩偵偁傞応崌偼丄
捈慜偺暘婒丒僕儍儞僾柦椷傪偝偡丅
乮偡側傢偪丄懳徾柦椷偺傾僪儗僗-4偑彂偒崬傑傟傞丅乯
2.6 HI, LO 儗僕僗僞
MIPS3偱偼丄忔彍嶼儗僕僗僞HI, LO傪僒億乕僩偟偰偄傞丅偦偙偱丄崱夞偺幚憰偵偍
偄偰偼丄妱崬傒僴儞僪儔偺弌擖岥張棟偱丄僗僞僢僋傊曐懚偟偰偄傞丅
僞僗僋僐儞僥僉僗僩撪偱偺丄帺傜偺僨傿僗僷僢僠屇傃弌偟偺応崌偼丄娭悢屇傃弌
偟偱偁傝丄偙偺屇傃弌偟傪傑偨偑偭偰偙偺儗僕僗僞傪棙梡偡傞偙偲偼柍偄偺偱丄
曐懚偟偰偄側偄丅
(cpu_support.S)
2.7 僗僞乕僩傾僢僾儌僕儏乕儖
MIPS3僞乕僎僢僩偱偼丄椺奜儀僋僞偺堦偮偵丄儕僙僢僩暲傃偵 NMI(Non Maskable
Interrupt)梡偺儀僋僞傾僪儗僗傪旛偊偰偄傞丅偙偺傾僪儗僗偐傜偺僕儍儞僾愭偑
僗僞乕僩傾僢僾儌僕儏乕儖偲側偭偰偄傞丅
偙偺僗僞乕僩傾僢僾儌僕儏乕儖(reset.S)偱偼丄師偺弶婜壔張棟傪峴偆丅
(A) 僾儘僙僢僒偺弶婜壔
僾儘僙僢僒偺弶婜壔偼丄壓婰偺傕偺傪峴偆丅
(a) CPU儗僕僗僞偺弶婜壔
忔彍嶼儗僕僗僞丄僗僞僢僋億僀儞僞sp丄僌儘乕僶儖億僀儞僞gp丄k0儗僕僗僞傪弶婜
壔偡傞丅
僗僞僢僋億僀儞僞偵偼丄傾僪儗僗 _stack_top 傪愝掕偡傞丅_stack_top 偼丄儕儞僇
僗僋儕僾僩撪偱掕媊偡傞傕偺偲偡傞丅偙偙偱愝掕偝傟傞僗僞僢僋椞堟偼丄旕僞僗僋
僐儞僥僉僗僩梡偺僗僞僢僋椞堟偲偟偰丄妱崬傒僴儞僪儔側偳偱棙梡偝傟傞丅
(vrxxxxelf.ld)
僌儘乕僶儖億僀儞僞偵偼丄傾僪儗僗 _gp 傪愝掕偡傞丅_gp 偼丄儕儞僇僗僋儕僾僩撪
偱掕媊偡傞傕偺偲偡傞丅
(vrxxxxelf.ld)
k0儗僕僗僞偵偼丄僇乕僱儖婲摦帪偼旕僞僗僋僐儞僥僉僗僩偱偺幚峴偲偡傞偺偱丄1傪
愝掕偡傞丅
(b) CP0儗僕僗僞偺弶婜壔
僗僥乕僞僗儗僕僗僞丄僐儞僼傿僌儗僕僗僞丄僂僅僢僠Lo儗僕僗僞丄斾妑儗僕僗僞傪
弶婜壔偡傞丅
僗僥乕僞僗儗僕僗僞傪 INIT_SR 偵弶婜壔偡傞丅INIT_SR 偼丄sys_config.h 偱掕媊
偡傞偙偲傪憐掕偟偰偄傞丅偙偺偲偒丄僗僥乕僞僗儗僕僗僞撪偺妱崬傒儅僗僋傕愝掕
偡傞丅偙偺帪丄妱傝崬傒儅僗僋傪 INIT_CORE_IPM (sys_config.h) 偺抣偵愝掕偡傞丅
僐儞僼傿僌儗僕僗僞傪丄INIT_CONFIG_MASK 偱弶婜壔偡傞丅INIT_CONFIG_MASK 偼丄
sys_config.h 偱掕媊偡傞偙偲傪憐掕偟偰偄傞丅偙偺儅僗僋抣偲OR墘嶼傪峴偆偙偲偱丄
弶婜壔傪峴偭偰偄傞丅
(B) hardware_init_hook 偺屇弌偟
hardware_init_hook 偑 0 偱側偄応崌偵偼丄hardware_init_hook 傪屇傃弌偡丅
hardware_init_hook 偼丄堦斒偵僇乕僱儖偑婲摦偝傟傞慜偵峴偆昁梫偑偁傞僔僗僥儉
埶懚偺弶婜壔乮椺丗RAM僐儞僩儘乕儔偺弶婜壔側偳乯傪婰弎偡傞傕偺偲偡傞丅
婰弎応強偼丄sys_support.S 傪昗弨偲偡傞丅
hardware_init_hook 偑偳偙偱傕掕媊偝傟偰偄側偄応崌丄儕儞僇偱偙偺僔儞儃儖傪0
偵掕媊偡傞(儕儞僇僗僋儕僾僩撪偵婰弎偁傝)丅
側偍丄MIPS3傾乕僉僥僋僠儍偱偼丄堦斒偵堦師僉儍僢僔儏偲TLB (Translation
Lookaside Buffer丟崅懍曄姺娚徴婡峔)傪撪憼偟偰偄傞偑丄僾儘僙僢僒偛偲偵懡彮偺
堘偄偑偁傞丅偦偙偱丄偙傟傜偺弶婜壔偼丄hardware_init_hook 撪偵婰弎偡傞偙偲傪
昗弨偲偡傞丅
(C) bss僙僋僔儑儞偲data僙僋僔儑儞偺弶婜壔
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -