📄 h8s.txt
字号:
亖 TOPPERS/JSP僇乕僱儖 儐乕僓僘儅僯儏傾儖 亖
乮H8S 僞乕僎僢僩埶懚晹乯
乮Release 1.4.1 懳墳丆嵟廔峏怴: 18-OCT-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 Dep. of Computer Science and Engineering
Tomakomai National College of Technology, JAPAN
Copyright (C) 2001-2004 by Industrial Technology Institute,
Miyagi Prefectural Government, JAPAN
忋婰挊嶌尃幰偼丆Free Software Foundation 偵傛偭偰岞昞偝傟偰偄傞
GNU General Public License 偺 Version 2 偵婰弎偝傟偰偄傞忦審偐丆埲
壓偺(1)乣(4)偺忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃
傾傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
(1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
(2) 杮僜僼僩僂僃傾傪嵞棙梡壜擻側僶僀僫儕僐乕僪乮儕儘働乕僞僽儖僆僽
僕僃僋僩僼傽僀儖傗儔僀僽儔儕側偳乯偺宍偱棙梡偡傞応崌偵偼丆棙梡
偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆
偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(3) 杮僜僼僩僂僃傾傪嵞棙梡晄壜擻側僶僀僫儕僐乕僪偺宍傑偨偼婡婍偵慻
傒崬傫偩宍偱棙梡偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙偲丏
(a) 棙梡偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌
尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(b) 棙梡偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆忋婰挊嶌尃幰偵曬崘偡傞
偙偲丏
(4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
奞偐傜傕丆忋婰挊嶌尃幰傪柶愑偡傞偙偲丏
杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偼丆
杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕娷傔偰丆偄偐側傞曐徹傕峴傢
側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠偨偄
偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
------------------------------------------------------------------------
侾丏H8S僞乕僎僢僩埶懚晹偺奣梫
1.1 僞乕僎僢僩僔僗僥儉偲奐敪娐嫬
H8S僼傽儈儕乕偺僾儘僙僢僒傪僒億乕僩偟偰偄傞丅H8S僼傽儈儕乕偼丄撪憼僀儞僞
僼僃乕僗側偳偺堘偄側偳偵傛傝丄條乆側僾儘僙僢僒偑偁傞丅偙傟傜慡偰偵丄懳墳
壜擻側傛偆偵愝寁傪峴偭偨丅
崱夞偺幚憰偵偍偄偰僒億乕僩偲偟偨僞乕僎僢僩儃乕僪偼丄埲壓偱偁傞丅
丒姅幃夛幮儈僗億惢 H8S/2350 昡壙儃乕僪 (H8S/2350搵嵹)
奐敪娐嫬偵偼丄GCC 側偳偺 GNU奐敪娐嫬傪梡偄丄僆僽僕僃僋僩僼傽僀儖僼僅乕儅僢
僩偼 coff 傪昗弨偲偡傞丅
1.2 僒億乕僩偡傞婡擻偺奣梫
H8S僞乕僎僢僩埶懚晹偵傛傞婡擻偲偟偰偼丄
丒妱崬傒儅僗僋偺曄峏丒嶲徠(chg_ipm丄get_ipm)
丒惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻(vxget_tim)
傪僒億乕僩偟偰偄傞丅傑偨丄
丒妱崬傒偺嬛巭偲嫋壜(dis_int丄ena_int)
偼僒億乕僩偟偰偄側偄丅(2.2.4媦傃3.2嶲徠丅)
1.3 懠偺僞乕僎僢僩傊偺億乕僥傿儞僌
H8S僼傽儈儕乕偱偁傟偽丄億乕僥傿儞僌偼梕堈偵弌棃傞丅偟偐偟側偑傜丄奐敪婡嵽偺
娭學忋丄H8S/2350埲奜偱偺僥僗僩傪峴偭偰偄側偄丅
乮側偍丄偙偺奐敪婡嵽偺娭學偐傜丄壓婰偵偍偄偰偼H8S/2350偱偺忬嫷傪憐掕偟偰
偄傞丅偟偐偟丄奐敪帺懱偼丄H8S僼傽儈儕乕慡懱偵桳岠側撪梕偱偁傞丅乯
1.4 GDB 僗僞僽
尰嵼偺 TOPPERS/JSP 僇乕僱儖 H8S 斉偼ROM壔傪僒億乕僩偟偰偄傞丅
傑偨丄GDB僗僞僽傊懳墳偟偰偄傞丅嫽枴偺偁傞曽偼丄暿搑偍栤偄崌傢偣偔偩偝偄丅
側偍丄僨僶僢僌娐嫬偲偟偰偼ICE傪悇彠偡傞丅
1.5 僔儕傾儖億乕僩(SCI)
H8S僼傽儈儕乕偺慡偰偺僾儘僙僢僒偑丄俀僠儍儞僱儖埲忋偺僔儕傾儖億乕僩傪撪憼
偟偰偄傞丅偦偙偱丄偦傟傜偺偆偪丄僇乕僱儖偺儘僌弌椡梡偵侾偮巊梡偡傞丅
僔儕傾儖億乕僩偺愝掕偼
丒8價僢僩
丒僷儕僥傿側偟
丒僗僩僢僾價僢僩丗1價僢僩
丒儃乕儗乕僩丗38400 bps
偱偁傞丅
側偍丄儃乕儗乕僩偵偮偄偰偼丄BAUD_RATE儅僋儘偵偰掕媊偟偰偄傞偺偱昁梫偵墳偠偰
曄峏偡傞偙偲偑偱偒傞丅
(sys_config.h)
(H8S/2350偼俀僠儍儞僱儖偺僔儕傾儖億乕僩傪撪憼偟偰偄傞丅偙傟偼丄sys_config.h
偵掕媊偟偰偄傞NUM_PORT偵傛傝僒億乕僩偡傞億乕僩悢偑寛傑傞丅尰嵼偺幚憰偱偼丄
俀僠儍儞僱儖傪僒億乕僩偟偰偄傞丅
傑偨丄JSP僇乕僱儖偺儘僌弌椡梡偵偼丄SCI0傪巊梡偟偰偄傞丅)
俀丏H8S僞乕僎僢僩埶懚晹偺婡擻
2.1 僨乕僞宆
int宆偍傛傃 unsigned int宆偺僒僀僘偼 32價僢僩偱偁傞丅
2.2 妱崬傒娗棟婡擻偲妱崬傒僴儞僪儔
僇乕僱儖娗棟奜偺妱崬傒偼 NMI 偺傒偱偁傞丅CPU儘僢僋忬懺傗弶婜壔儖乕僠儞撪偱偼
NMI 埲奜偺妱崬傒偼慡偰嬛巭偝傟傞丅嬶懱揑偵偼丄妱崬傒儅僗僋偑俈偵愝掕偝傟傞丅
妱崬傒僴儞僪儔偺搊榐偵娭偟偰偼丄僐儞僼傿僌僼傽僀儖偵懳偡傞惷揑API偺婰弎偲丄
儀僋僞僥乕僽儖傊偺婰弎偲偺丄擇偮偺婰弎傪峴傢側偗傟偽側傜側偄丅
偙偺儀僋僞僥乕僽儖傊偺婰弎偵偮偄偰偼丄屻弎偡傞丅
乮惷揑API偵傛傞婰弎偵傛傝丄妱崬傒僴儞僪儔乮妱崬傒弌擖岥張棟傪娷傓乯偑惗惉偝傟丄
椺奜張棟儀僋僞僥乕僽儖偵搊榐偡傞偙偲偱丄偙偺妱崬傒僴儞僪儔偑屇傃弌偝傟傞丅乯
2.2.1 妱崬傒惂屼儌乕僪
H8S僼傽儈儕乕偼丄儌乕僪侽偲儌乕僪俀偺俀偮偺妱崬傒惂屼儌乕僪偺慖戰偑壜擻偱
偁傞丅崱夞偺幚憰偱偼丄儌乕僪俀傪僒億乕僩偟偰偄傞丅
2.2.2 儀僋僞僥乕僽儖偺婰弎曽朄
妱崬傒僴儞僪儔傪屇傃弌偡偨傔偵偼丄椺奜張棟儀僋僞僥乕僽儖偵搊榐偡傞昁梫偑偁傞丅
偙偺偲偒丄H8S僼傽儈儕乕偼丄ROM椞堟偵椺奜張棟儀僋僞僥乕僽儖傪攝抲偟偰偨傔丄
儀僋僞僥乕僽儖偼幚峴拞偼屌掕偲側傞丅
偦偺偨傔丄僐儞僷僀儖慜偵丄exception_vector.S 偵婰嵹偝傟偰偄傞儀僋僞僥乕僽儖偵丄
妱崬傒僴儞僪儔偺擖岥張棟偺儔儀儖柤傪捈愙婰弎偡傞昁梫偑偁傞丅
偙偺偲偒偵婰弎偡傞丄椺奜張棟偺擖岥張棟偺儔儀儖柤偼丆埲壓偺傛偆偵愝掕偡傞丅
丒椺奜張棟偺俠尵岅儖乕僠儞柤 丗 *******
丒椺奜張棟偺擖傝岥張棟偺儔儀儖柤丗_*******_entry
(偙偙偱丄儔儀儖柤偵"_"偑晅偄偰偄傞偺偼丄俠尵岅儖乕僠儞foo()偵懳偟偰
傾僙儞僽儖偡傞偲丄_foo偲偄偆儔儀儖傪懳墳晅偗傜傟傞偨傔偱偁傞丅)
椺乯SCI(僔儕傾儖僐儈儏僯働乕僔儑儞僀儞僞乕僼僃乕僗乯偐傜偺妱崬傒
椺奜張棟偺俠尵岅儖乕僠儞柤 丗 serial_in_handler
椺奜張棟偺擖傝岥張棟偺儔儀儖柤丗_serial_in_handler_entry
側偍丄偙偺儖乕儖偵廬偭偨儔儀儖傪惗惉偡傞丄_INT_ENTRY儅僋儘傪掕媊偟偰偄傞偺偱丄
棙梡偟偰偔偩偝偄丅
椺乯SCI(僔儕傾儖僐儈儏僯働乕僔儑儞僀儞僞乕僼僃乕僗乯偐傜偺妱崬傒
椺奜張棟偺俠尵岅儖乕僠儞柤 丗 serial_in_handler
椺奜張棟偺擖傝岥張棟偺儔儀儖柤丗
_INT_ENTRY(serial_in_handler) -> _serial_in_handler_entry 傪惗惉
側偍丄偙偺儅僋儘傪丄exception_vector.S 偱棙梡偟偰偄傞偺偱丄嶲峫偵偟偰偔偩偝偄丅
2.2.3 妱崬傒儅僗僋乛妱崬傒桪愭搙惂屼
妱崬傒儅僗僋乛妱崬傒桪愭搙惂屼偺偨傔偺丄掕媊丒API偼埲壓偺捠傝偱偁傞丅
(1)IPM宆
妱崬傒儅僗僋偺抣傪帵偡僨乕僞宆偱偁傞丅妱崬傒儅僗僋偼丄EXR乮僄僋僗僥儞僪儗僕
僗僞乯偺妱崬傒儅僗僋價僢僩(I2-0)偺抣偱偁傞丅偦偺偨傔丄EXR暘偺侾僶僀僩偁傟偽
傛偄偺偱丄UB宆偱掕媊偟偰偄傞丅
(2)icu_set_ilv 妱崬傒儗儀儖偺愝掕
亂C尵岅API亃
icu_set_ilv( IPR, MASK, LEVEL )
亂僷儔儊乕僞亃
VP IPR 愝掕偡傞僀儞僞儔僾僩僾儔僀僆儕僥傿儗僕僗僞偺
傾僪儗僗 ( IPRA - IPRK 儅僋儘偱愝掕 )
BOOL MASK 愝掕偡傞僀儞僞儔僾僩僾儔僀僆儕僥傿儗僕僗僞偺
愝掕斖埻乮忋埵晹暘傑偨偼壓埵晹暘乯偺慖戰
( IPR_UPR丄傑偨偼丄IPR_LOW 儅僋儘偱愝掕 )
INT LEVEL 愝掕偡傞妱崬傒儗儀儖 ( 0 - 7 )
亂儕僞乕儞僷儔儊乕僞亃
側偟
亂婡擻亃
僀儞僞儔僾僩僾儔僀僆儕僥傿儗僕僗僞偺奺椺奜梫場暿偵丄妱崬傒儗儀儖愝掕傪峴偆丅
亂拲堄亃
尰嵼偼丄儅僋儘傪梡偄偨幚憰傪峴偭偰偄傞偨傔丄僄儔乕張棟偼摿偵峴偭偰偄側偄丅
(cpu_config.h)
側偍丄崱夞偺幚憰偵偍偄偰丄妱崬傒儗儀儖偼丄
乮掅乯僔儕傾儖侽 亖 僔儕傾儖侾 -> 僞僀儅侽乮崅乯
偲掕媊偟偰偄傞丅
(sys_config.h)
2.2.4 妱崬傒儅僗僋曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偵偮偄偰
妱崬傒儅僗僋曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偐偮 CPU
儘僢僋夝彍忬懺偺応崌偵偺傒屇傃弌偡偙偲偑偱偒傞丅chg_ipm 偵傛傝 IPM 傪丄
壗傜偐偺妱崬傒偑嬛巭偝傟偰偄傞忬懺乮侽埲奜偺抣偺応崌乯偵偟偨応崌偱傕丄
僨傿僗僷僢僠偼嬛巭偝傟偢丄chg_ipm 偵傛傝曄峏偟偨 IPM 偺抣偼丄僨傿僗僷僢僠
屻偺僞僗僋偵堷偒宲偑傟傞丅
chg_ipm 傪僒億乕僩偡傞偨傔偵丄妱崬傒僴儞僪儔偺弌擖岥張棟側偳偵僆乕僶僿僢僪
傪惗偠偰偄傞丅偦偙偱丄SUPPORT_CHG_IPM 偲偄偆儅僋儘偵傛傝丄偙傟傜偺僒乕價僗
僐乕儖傪僒億乕僩偡傞偐偳偆偐傪愗傝懼偊傜傟傞傛偆偵偟偰偄傞丅
(SUPPORT_CHG_IPM 偼丄cpu_config.h 偺拞偱 #define 偝傟偰偄傞丅)
H8S僞乕僎僢僩埶懚偺妱崬傒儅僗僋偺曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偺巇條偼
師偺捠傝丅
(1) chg_ipm 妱崬傒儅僗僋偺曄峏
亂C尵岅API亃
ER ercd = chg_ipm(IPM ipm);
亂僷儔儊乕僞亃
IPM ipm 愝掕偡傋偒 IPM 偺抣
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
E_PAR 僷儔儊乕僞僄儔乕(ipm 偑晄惓)
亂婡擻亃
妱崬傒儅僗僋傪傪 ipm 偱巜掕偟偨抣偵愝掕偡傞丅巜掕偟偨抣偑丄0乣6 偵擖偭偰
偄側偄応崌丄E_PAR僄儔乕傪曉偡丅妱崬傒儅僗僋傪0埲奜乮1乣MAX_IPM-1乯偵愝掕
偟偨応崌偱傕丄僨傿僗僷僢僠偼嬛巭偝傟側偄丅傑偨丄愝掕偟偨妱崬傒儅僗僋偺抣偼丄
僨傿僗僷僢僠嬛巭屻傕堷偒宲偑傟傞丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇傃
弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応崌偵偼丄
E_CTX僄儔乕偲側傞丅
側偍丄偙偺僒乕價僗僐乕儖傪梡偄偰丄IPM傪MAX_IPM乮慡偰偺妱崬傒傪嬛巭乯偵愝掕
偡傞偙偲偼偱偒側偄丅IPM傪MAX_IPM偵偟偨偄応崌偵偼丄loc_cpu傪巊梡偡傋偒偱偁傞丅
(2) get_ipm 妱崬傒儅僗僋偺嶲徠
亂C尵岅API亃
ER ercd = get_ipm(IPM *p_ipm);
亂僷儔儊乕僞亃
側偟
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
IPM ipm 尰嵼偺 IPM 偺抣
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
亂婡擻亃
尰嵼偺妱崬傒儅僗僋偺抣傪撉傒弌偟丄ipm 偵曉偡丅
偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒屇
傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟偨応
崌偵偼丄E_CTX僄儔乕偲側傞丅
2.3 CPU椺奜娗棟婡擻偲CPU椺奜僴儞僪儔
DEF_EXC 偱巜掕偡傞 CPU椺奜僴儞僪儔斣崋乮excno乯偼丄H8S僼傽儈儕乕偵偍偗傞
儀僋僞僥乕僽儖偺儀僋僞斣崋傪昞偟丄偦偺僨乕僞宆乮EXCNO乯偼 unsigned int 宆
偵掕媊偝傟偰偄傞丅
DEF_EXC 偱丄儀僋僞斣崋偲偟偰桳岠偱側偄抣傗丄CPU椺奜偵懳墳偟側偄斣崋傪巜掕
偟偨応崌偺摦嶌偼曐徹偝傟側偄丅
(1)曄悢p_excinf
CPU椺奜僴儞僪儔偵搉偝傟傞p_excinf偼丄CPU椺奜敪惗帪偺僐儞僥僉僗僩傪曐懚
偟偨僗僞僢僋傊偺億僀儞僞偑搉偝傟傞丅僗僞僢僋偺峔憿傪埲壓偵帵偡丅
----------------------
| er6 (32價僢僩) | <-- p_excinf
----------------------
| er5 (32價僢僩) |
----------------------
| er4 (32價僢僩) |
----------------------
| er3 (32價僢僩) |
----------------------
| er2 (32價僢僩) |
----------------------
| er1 (32價僢僩) |
----------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -