📄 sh2.txt
字号:
亖 TOPPERS/JSP僇乕僱儖 儐乕僓僘儅僯儏傾儖 亖
乮SH2 僞乕僎僢僩埶懚晹乯
乮Release 1.4.1懳墳丆2004乯
------------------------------------------------------------------------
TOPPERS/JSP Kernel
Toyohashi Open Platform for Embedded Real-Time Systems/
Just Standard Profile Kernel
Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2001-2004 by Industrial Technology Institute,
Miyagi Prefectural Government, JAPAN
Copyright (C) 2002-2004 by Hokkaido Industrial Research Institute, JAPAN
忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
(1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
(2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
偲丏
(a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
曬崘偡傞偙偲丏
(4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
@(#) $Id: sh2.txt,v 1.1 2006/04/14 02:46:19 9564907 Exp $
------------------------------------------------------------------------
侾丏SH2 僞乕僎僢僩埶懚晹偺奣梫
婎杮揑偵SH1.txt偲摨條偱偁傞丅
1.1 僞乕僎僢僩僔僗僥儉偲奐敪娐嫬
SH2僾儘僙僢僒偺僞乕僎僢僩僔僗僥儉偼SH7145丄SH7615傪搵嵹偟偨埲壓偺儃乕
僪偱偁傞丅
丒乮姅乯傾儖僼傽僾儘僕僃僋僩惢偺AP_SH2F_6A(CPU: SH7145)
丒乮姅乯杒搇揹巕惢偺HSB7615IT(CPU: SH7615)
奐敪娐嫬偵偼丄GCC 側偳偺 GNU奐敪娐嫬傪梡偄丄僆僽僕僃僋僩僼傽僀儖僼僅乕
儅僢僩偼 ELF 傪昗弨偲偡傞丅
1.2 僒億乕僩偡傞婡擻偺奣梫
SH1/2埶懚偺婡擻偲偟偰丄妱崬傒儅僗僋偺曄峏丒嶲徠(chg_ixx丄get_ixx)偲丄
惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻(vxget_tim)傪僒億乕僩偟偰偄傞丅妱崬傒
偺嬛巭偲嫋壜(dis_int丄ena_int)偼僒億乕僩偟偰偄側偄丅
1.3 DSP
DSP儗僕僗僞偺懸旔偼峴偭偰偄側偄丅
1.4 GDB 僗僞僽
GDB僗僞僽偵偮偄偰偼http://www.hokkaido-iri.go.jp傛傝攝晍拞丅
1.5 僔儕傾儖億乕僩
僇乕僱儖偺儘僌弌椡梡偵僔儕傾儖億乕僩傪侾偮巊梡偡傞丅
僔儕傾儖億乕僩偺愝掕偼
丂丒8價僢僩
丂丒僷儕僥傿側偟
丂丒僗僩僢僾價僢僩丗1價僢僩
丂丒儃乕儗乕僩丗
偱偁傞丅
俀丏SH2僾儘僙僢僒埶懚晹偺婡擻
偙偺愡偱偼丄僇乕僱儖偍傛傃僔僗僥儉僒乕價僗偺婡擻偺拞偱丄SH2埶懚偺晹暘
偵偮偄偰夝愢偡傞丅俽俫侾斉偲摨偠偱偁傞丅
2.1 僨乕僞宆
signed int宆丆unsigned int宆丆size_t宆偺僒僀僘偼丆偄偢傟傕32價僢僩偱偁
傞丏
2.2 妱崬傒娗棟婡擻偲妱崬傒僴儞僪儔
僇乕僱儖娗棟奜偺妱崬傒偲偟偰偼丄 NMI 偑偁傞丅傛偭偰丄CPU儘僢僋忬懺傗弶
婜壔儖乕僠儞撪偱偼丄NMI 埲奜偺妱崬傒偼偡傋偰嬛巭偝傟偰偄傞丅嬶懱揑偵偼丄
IPM(Interrupt Priority Mask)偑 15 偵愝掕偝傟傞丅
彨棃揑偵GDB僗僞僽傪棙梡偡傞偙偲傪峫椂偟偰丄僜乕僗僐乕僪撪偵埲壓偺傛偆
側婰弎傪娷傓丅
儃乕僪忋偵 NMI 擖椡傪帩偨側偄僞乕僎僢僩偺偨傔丄GDB 偺僗僞僽偑儂僗僩偺
儅僔儞偲捠怣偡傞偨傔偺僔儕傾儖億乕僩偺桪愭搙傪 15 偱搊榐偟丄GDB 偱
Ctrl-C 傪墴偡偲 妱傝崬傒偑擖傝僗僞僽偵惂屼偑堏傞傛偆偵偟偰偁傞丅偙偺婡
擻傪巊梡偡傞偨傔偵偼CPU儘僢僋忬懺偱偼丄桪愭搙偑 14 偵側傞傛偆偵偟側偗
傟偽側傜側偄丅偦偺偨傔丄CPU儘僢僋偱愝掕偝傟傞桪愭搙傪儅僋儘 MAX_IPM偱
巜掕偟偰偄傞丅MAX_IPM 偼cpu_config.h 偺拞偱 #define 偝傟偰偄傞丅僗僞僽
傪巊偆応崌偼MAX_IPM傪14偵丄僗僞僽傪巊傢側偄応崌偼MAX_IPM傪15偵愝掕偟偰
偄傞丅
SH1/2埶懚偺婡擻偲偟偰丄SR(Status Register)拞偺 妱傝崬傒儅僗僋價僢僩(I3乣
I0)偺抣傪曄峏偡傞偨傔偺僒乕價僗僐乕儖 chg_ipm 偲丄嶲徠偡傞偨傔偺僒乕價
僗僐乕儖 get_ipm 傪僒億乕僩偟偰偄傞丅側偍丄妱傝崬傒儅僗僋價僢僩偺抣傪
昞偡僨乕僞宆 IPM 偼丄unsigned int宆偵掕媊偝傟偰偄傞丅
偙傟傜偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺応崌
偵偺傒屇傃弌偡偙偲偑偱偒傞丅chg_ipm 偵傛傝 IPM 傪 0 埲奜(偡側傢偪丄壗
傜偐偺妱崬傒偑嬛巭偝傟偰偄傞忬懺)偵偟偨応崌偱傕丄僨傿僗僷僢僠偼嬛巭偝
傟偢丄chg_ipm 偵傛傝曄峏偟偨 IPM 偺抣偼丄僨傿僗僷僢僠屻偺僞僗僋偵堷偒
宲偑傟傞丅椺偊偽丄偁傞僞僗僋偱 IPM 傪 1 偵曄峏偟偨屻丄壗傜偐偺妱崬傒偵
傛傝暿偺僞僗僋偵愗傝懼傢傞偲丄愗傝懼傢偭偨屻偺僞僗僋偱傕IPM偼1偵側傞丅
chg_ipm 傪僒億乕僩偡傞偨傔偵丄妱崬傒僴儞僪儔偺弌擖岥張棟側偳偵僆乕僶僿僢
僪傪惗偠偰偄傞丅偦偙偱丄SUPPORT_CHG_IPM 偲偄偆儅僋儘偵傛傝丄偙傟傜偺僒乕
價僗僐乕儖傪僒億乕僩偡傞偐偳偆偐傪愗傝懼偊傜傟傞傛偆偵偟偰偄傞丅
SUPPORT_CHG_IPM 偼丄user_config.h 偺拞偱 #define 偝傟偰偄傞丅
SH1/2埶懚偺妱崬傒儅僗僋偺曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偺巇條偼師偺捠
傝丅
(1) chg_ipm 妱崬傒儅僗僋偺曄峏
亂C尵岅API亃
ER ercd = chg_ipm(IPM ipm);
亂僷儔儊乕僞亃
IPM ipm 愝掕偡傋偒 IPM 偺抣
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
E_PAR 僷儔儊乕僞僄儔乕(ipm 偑晄惓)
亂婡擻亃
IPM(Interrupt Priority Mask)傪 ipm 偱巜掕偝傟偨抣偵愝掕偡傞丅巜掕偟偨
抣偑 0乣14側偄偟0乣13埲奜偺応崌丄E_PAR僄儔乕偲側傞丅IPM 傪0埲奜
乮1乣MAX_IPM-1乯偵愝掕偟偨応崌偱傕丄僨傿僗僷僢僠偼嬛巭偝傟側偄丅傑偨丄
愝掕偟偨 IPM 偺抣偼丄僨傿僗僷僢僠嬛巭屻傕堷偒宲偑傟傞丅
側偍丄偙偺僒乕價僗僐乕儖傪梡偄偰丄IPM 傪 MAX_IPM (偡傋偰偺妱崬傒傪嬛巭)
偵愝掕偡傞偙偲偼偱偒側偄丅IPM 傪 MAX_IPM 偵偟偨偄応崌偵偼丄loc_cpu 傪
巊偆傋偒偱偁傞丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇
傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応
崌偵偼丄E_CTX僄儔乕偲側傞丅
(2) get_ipm 妱崬傒儅僗僋偺嶲徠
亂C尵岅API亃
ER ercd = get_ipm(IPM *p_ipm);
亂僷儔儊乕僞亃
側偟
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
IPM ipm 尰嵼偺 IPM 偺抣
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
亂婡擻亃
尰嵼偺 IPM(Interrupt Priority Mask)偺抣傪撉傒弌偟丄ipm 偵曉偡丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇
傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応
崌偵偼丄E_CTX僄儔乕偲側傞丅
2.3 CPU椺奜娗棟婡擻偲CPU椺奜僴儞僪儔
DEF_EXC 偱巜掕偡傞妱崬傒僴儞僪儔斣崋(excno)偼丄SH2 偱偺 儀僋僞僥乕僽儖
偺儀僋僞斣崋傪昞偟丄偦偺僨乕僞宆(EXCNO)偼 unsigned int宆偵掕媊偝傟偰偄
傞丅DEF_EXC 偱丄儀僋僞斣崋偲偟偰桳岠偱側偄抣傗丄CPU椺奜偵懳墳偟側偄斣
崋傪巜掕偟偨応崌偺摦嶌偼曐徹偝傟側偄丅
CPU椺奜僴儞僪儔偵搉偝傟傞p_excinf偼丄CPU椺奜敪惗帪偺僐儞僥僉僗僩傪曐懚
偟偨僗僞僢僋傊偺億僀儞僞偑搉偝傟傞丅僗僞僢僋偺峔憿傪埲壓偵帵偡丅
----------------------
| PR |
----------------------
| R7 |
----------------------
| R6 |
----------------------
| R5 |
----------------------
| R4 |
----------------------
| R3 |
----------------------
| R2 |
----------------------
| R1 |
----------------------
| R0 |
----------------------
| PC |
----------------------
| SR | <-- p_excinf
----------------------
PR:Procedure Register
SR:Status Register
PC:Program Counter
傑偨丄CPU椺奜敪惗帪偺PC偺抣偼僀儞僋儕儊儞僩偝傟傞丅偦偺偨傔丄CPU椺奜僴
儞僪儔偐傜暅婣傪峴偆偲丄CPU椺奜偑敪惗偟偨柦椷偺師偺柦椷偐傜幚峴傪嵞奐
偡傞丅
2.4 僗僞乕僩傾僢僾儌僕儏乕儖
SH2埶懚偺僗僞乕僩傾僢僾儌僕儏乕儖(start.S)偱偼丄師偺弶婜壔張棟傪峴偆丅
(A) 僾儘僙僢僒儌乕僪偺弶婜壔偲僗僞僢僋億僀儞僞偺弶婜壔
妱傝崬傒儅僗僋傪 MAX_IPM 偵愝掕偡傞丅
師偵丄僗僞僢僋億僀儞僞(r15)傪 STACKTOP 偵愝掕偡傞丅偙偙偱妱崬傒僗僞僢
僋億僀儞僞偵愝掕偝傟偨僗僞僢僋椞堟偼丄僇乕僱儖婲摦屻偼旕僞僗僋僐儞僥僉
僗僩梡偺僗僞僢僋椞堟偲偟偰巊傢傟傞丅STACKTOP 偼丄user_config.h 晹偱掕媊
偡傞偙偲傪憐掕偟偰偄傞丅
(B) hardware_init_hook 偺屇弌偟
hardware_init_hook 偑 0 偱側偄応崌偵偼丄hardware_init_hook 傪屇傃弌偡丅
hardware_init_hook 偼丄僇乕僱儖偑婲摦偝傟傞慜偵峴偆昁梫偑偁傞僞乕僎僢
僩埶懚偺弶婜壔傪峴偆偨傔偵梡堄偟偰偄傞丅hardware_init_hook 偑偳偙偱傕
掕媊偝傟偰偄側偄応崌丄儕儞僇偱偙偺僔儞儃儖傪 0 偵掕媊偡傞(儕儞僇僗僋
儕僾僩撪偵婰弎偁傝)丅
(C) bss僙僋僔儑儞偲 data僙僋僔儑儞偺弶婜壔
bss僙僋僔儑儞傪僛儘僋儕傾偡傞丅傑偨丄data僙僋僔儑儞傪弶婜壔偡傞丅
(D) software_init_hook 偺屇弌偟
software_init_hook 偑 0 偱側偄応崌偵偼丄software_init_hook 傪屇傃弌偡丅
software_init_hook 偼丄僇乕僱儖偑婲摦偝傟傞慜偵峴偆昁梫偑偁傞僜僼僩僂僃
傾娐嫬(嬶懱揑偵偼丄儔僀僽儔儕)埶懚偺弶婜壔傪峴偆偨傔偵梡堄偟偰偄傞丅
software_init_hook 偑偳偙偱傕掕媊偝傟偰偄側偄応崌丄儕儞僇偱偙偺僔儞儃
儖傪 0 偵掕媊偡傞(儕儞僇僗僋儕僾僩撪偵婰弎偁傝)丅
(E) 僇乕僱儖偺婲摦
kernel_start 傊暘婒偟丄僇乕僱儖傪婲摦偡傞丅kernel_start 偐傜儕僞乕儞偟
偰偔傞偙偲偼憐掕偟偰偄側偄丅
2.5 妱崬傒敪惗帪偺僗僞僢僋徚旓検偵偮偄偰
埲壓偺棟桼偵傛傝丄奺僞僗僋僗僞僢僋偼僞僗僋帺恎偑巊梡偡傞暘偵壛偊偰嵟戝
240僶僀僩梋暘偵梡堄偡傞昁梫偑偁傞丅
JSP僇乕僱儖偱偼僞僗僋僗僞僢僋偺懠偵妱崬傒僗僞僢僋傪梡堄偟丄旕僞僗僋僐
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -