📄 powerpc32.txt
字号:
亖 TOPPERS/JSP僇乕僱儖 儐乕僓僘儅僯儏傾儖 亖
乮PowerPC32 僞乕僎僢僩埶懚晹乯
乮Release 1.4.1 懳墳丄嵟廔峏怴: 07-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 Industrial Technology Institute,
Miyagi Prefectural Government, JAPAN
忋婰挊嶌尃幰偼丄Free Software Foundation 偵傛偭偰岞昞偝傟偰偄傞
GNU General Public License 偺 Version 2 偵婰弎偝傟偰偄傞忦審偐丄埲
壓偺(1)乣(4)偺忦審傪枮偨偡応崌偵尷傝丄杮僜僼僩僂僃傾乮杮僜僼僩僂僃
傾傪夵曄偟偨傕偺傪娷傓丅埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丄
棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丅
(1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丄忋婰偺挊嶌
尃昞帵丄偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丄偦偺傑傑偺宍偱僜乕
僗僐乕僪拞偵娷傑傟偰偄傞偙偲丅
(2) 杮僜僼僩僂僃傾傪嵞棙梡壜擻側僶僀僫儕僐乕僪乮儕儘働乕僞僽儖僆僽
僕僃僋僩僼傽僀儖傗儔僀僽儔儕側偳乯偺宍偱棙梡偡傞応崌偵偼丄棙梡
偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丄忋婰偺挊嶌尃昞帵丄
偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丅
(3) 杮僜僼僩僂僃傾傪嵞棙梡晄壜擻側僶僀僫儕僐乕僪偺宍傑偨偼婡婍偵慻
傒崬傫偩宍偱棙梡偡傞応崌偵偼丄師偺偄偢傟偐偺忦審傪枮偨偡偙偲丅
(a) 棙梡偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丄忋婰偺挊嶌
尃昞帵丄偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丅
(b) 棙梡偺宍懺傪丄暿偵掕傔傞曽朄偵傛偭偰丄忋婰挊嶌尃幰偵曬崘偡傞
偙偲丅
(4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
奞偐傜傕丄忋婰挊嶌尃幰傪柶愑偡傞偙偲丅
杮僜僼僩僂僃傾偼丄柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丅忋婰挊嶌尃幰偼丄
杮僜僼僩僂僃傾偵娭偟偰丄偦偺揔梡壜擻惈傕娷傔偰丄偄偐側傞曐徹傕峴傢
側偄丅傑偨丄杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠偨偄
偐側傞懝奞偵娭偟偰傕丄偦偺愑擟傪晧傢側偄丅
------------------------------------------------------------------------
侾. PowerPC32 僞乕僎僢僩埶懚晹偺奣梫
1.1 僞乕僎僢僩僔僗僥儉偲奐敪娐嫬
PowerPC32僾儘僙僢僒偺僞乕僎僢僩僔僗僥儉偲偟偰偼丄埲壓偺僾儘僙僢僒傪僒
億乕僩偟偰偄傞丅
丒MPC860T (儌僩儘乕儔)
僒億乕僩偟偰偄傞儃乕僪偼丄埲壓偺捠傝偱偁傞丅
丒(姅)僞儞僶僢僋惢 TB6102S(CPU:MPC860T)
奐敪娐嫬偵偼丄GCC 側偳偺 GNU奐敪娐嫬傪梡偄丄僆僽僕僃僋僩僼傽僀儖僼僅乕
儅僢僩偼 ELF 傪昗弨偲偡傞丅
僨傿儗僋僩儕峔惉傪埲壓偵帵偡丅PowerPC斉偱偼僔僗僥儉埶懚晹偱堦晹僾儘
僙僢僒埶懚乮庡偵妱崬傒僐儞僩儘乕儔埶懚乯峴偭偰偄傞丅偦偺偨傔丄僾儘僙僢
僒埶懚晹偲僔僗僥儉埶懚晹偲偄偆昞婰偼岆夝傪彽偒傗偡偄偺偱丄埲屻丄$CPU
僨傿儗僋僩儕偲$SYS僨傿儗僋僩儕偲偄偆昞婰傪梡偄傞丅
丂$CPU=powerpc32僨傿儗僋僩儕
丂丂丂PowerPC嫟捠晹
丂丂丂丂PowerPC傾乕僉僥僋僠儍偵傛偭偰婯掕偝傟偰偄傞斖埻撪偱
丂丂丂丂幚憰偱偒傞晹暘
丂丂丂丂偡傋偰偺PowerPC宯僾儘僙僢僒偱嫟捠偵巊梡偱偒傞丅
丂丂丂丂
丂$SYS僨傿儗僋僩儕
丂丂丂廬棃偺儃乕僪埶懚晹乮僔僗僥儉埶懚晹乯
丂丂丂妱崬傒僐儞僩儘乕儔埶懚
丂丂丂僞僀儅僪儔僀僶
丂丂丂僔儕傾儖僪儔僀僶
傑偨丄The IBM PowerPC Embedded Environment傾乕僉僥僋僠儍岦偗偺僔僗僥儉
埶懚晹偺僒儞僾儖僐乕僪傪儗僼傽儗儞僗梡偵娷傫偱偄傞偑丄偙偪傜偼摦嶌妋擣
偟偰偄側偄丅乮僨僶僀僗埶懚偺掕媊傪揔媂丄捛壛偡傞昁梫偑偁傞丅乯
1.2 僒億乕僩偡傞婡擻偺奣梫
PowerPC32僞乕僎僢僩埶懚偺婡擻偲偟偰丄妱崬傒儅僗僋偺曄峏丒嶲徠(chg_ipm丄
get_ipm)偲丄惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻(vxget_tim)傪僒億乕僩偟偰偄
傞丅妱崬傒偺嬛巭偲嫋壜(dis_int丄ena_int)偼僒億乕僩偟偰偄側偄丅
1.3 懠偺僞乕僎僢僩傊偺億乕僥傿儞僌
PowerPC傾乕僉僥僋僠儍偼僾儘僙僢僒丒僐傾偺晹暘偺傒偑婯掕偝傟偰偍傝丄偙
偺僐傾傪梡偄偨僾儘僙僢僒偑奺敿摫懱儊乕僇乕偐傜惢昳壔偝傟偰偄傞丅妱崬傒
僐儞僩儘乕儔偺巇條偑奺僀儞僾儕儊儞僥乕僔儑儞枅偵堎側偭偰偄傞偨傔丄妱崬
傒僐儞僩儘乕儔埶懚偺張棟偼$SYS僨傿儗僋僩儕乮僔僗僥儉埶懚晹乯偵暘棧偝傟
偰偄傞丅懠偺PowerPC傾乕僉僥僋僠儍丒僾儘僙僢僒傊億乕僥傿儞僌偡傞応崌偼
$SYS僨傿儗僋僩儕埲壓傪廋惓偡傟偽傛偄丅
億乕僥傿儞僌偺岺悢偼妱傝崬傒僐儞僩儘乕儔偺傾乕僉僥僋僠儍偵埶懚偡傞丅
乮嬶懱揑側廋惓崁栚偼乽7. 僇乕僱儖堏怉幰岦偗偺忣曬乿傪嶲徠乯
側偍丄崱夞偼PowerPC 32價僢僩傾乕僉僥僋僠儍傪懳徾偵僇乕僱儖偺幚憰傪峴偭
偨丅
1.4 GDB 僗僞僽
尰嵼偺 TOPPERS/JSP僇乕僱儖 PowerPC32斉偼ROM壔偺傒傪僒億乕僩偟偰偄傞丅
彨棃丄GDB僗僞僽偲慻傒崌傢偣偰巊梡偡傞偙偲傪峫椂偟偰丄懠婡庬斉偺JSP僇乕
僱儖偲摨條偵僜乕僗僐乕僪撪偵GDB_STUB儅僋儘偵傛傞忦審僐儞僷僀儖偺愝掕傪
峴偭偰偄傞丅
1.5 僔儕傾儖億乕僩
僇乕僱儖偺儘僌弌椡梡偵僔儕傾儖億乕僩傪侾偮巊梡偡傞丅
僔儕傾儖億乕僩偺愝掕偼
丒8價僢僩
丒僷儕僥傿側偟
丒僗僩僢僾價僢僩丗1價僢僩
丒儃乕儗乕僩丗9600bps
偱偁傞丅
側偍丄儃乕儗乕僩偵偮偄偰偼丄BAUD_RATE儅僋儘偵偰掕媊偟偰偄傞偺偱昁梫偵
墳偠偰曄峏偡傞偙偲偑偱偒傞丅
(user_config.h)
1.6 僄儞僨傿傾儞
奺僞乕僎僢僩偼僨傿僢僾僗僀僢僠偵傛傝僄儞僨傿傾儞傪曄峏偡傞偙偲偑壜擻偱
偁傞丅偙傟偵崌傢偣偰丄僇乕僱儖偺僄儞僨傿傾儞偺愝掕偼奺僔僗僥儉埶懚晹偱
曄峏壜擻偱偁傞丅僄儞僨傿傾儞偼埲壓偺屄強偱愝掕偡傞丅
丒$SYS僨傿儗僋僩儕偺 Makefile.config
僐儞僷僀儖僆僾僔儑儞
丂-mbig丗價僢僌丒僄儞僨傿傾儞
丂-mlittle丗儕僩儖丒僄儞僨傿傾儞
丒僔僗僥儉掕媊乮user_config.h乯
SIL_ENDIAN
丂SIL_ENDIAN_BIG丗價僢僌丒僄儞僨傿傾儞
丂SIL_ENDIAN_LITTLE丗儕僩儖丒僄儞僨傿傾儞
拲堄
丂儕僩儖丒僄儞僨傿傾儞偱偺摦嶌妋擣偼峴偭偰偄側偄
俀. PowerPC32僞乕僎僢僩埶懚晹偺婡擻
偙偺愡偱偼丄僇乕僱儖偍傛傃僔僗僥儉僒乕價僗偺婡擻偺拞偱丄PowerPC32僞乕
僎僢僩埶懚偺晹暘偵偮偄偰夝愢偡傞丅
2.1 僨乕僞宆
int宆偍傛傃 unsigned int宆偺僒僀僘偼 32價僢僩偱偁傞丅
2.2 僀儞僾儕儊儞僥乕僔儑儞埶懚惈偺婰弎曽朄偵偮偄偰
PowerPC32傾乕僉僥僋僠儍偼妱崬傒僐儞僩儘乕儔傪婯掕偟偰偄側偄偨傔丄奺僀
儞僾儕儊儞僥乕僔儑儞偵傛偭偰妱崬傒張棟偑堎側傞丅偦偙偱PowerPC32埶懚晹
偺幚憰偱偼丄$CPU僨傿儗僋僩儕捈壓偵偼PowerPC32傾乕僉僥僋僠儍偱婯掕偝傟
偰偄傞撪梕偺傒傪婰弎偟丄僀儞僾儕儊儞僥乕僔儑儞埶懚乮摿偵妱傝崬傒僐儞僩
儘乕儔埶懚乯偺張棟偼$SYS僨傿儗僋僩儕偱掕媊偟偰偄傞丅
崱夞棙梡偟偨僞乕僎僢僩埲奜偵堏怉偡傞偨傔偺妱崬傒張棟偵娭偡傞僀儞僞
僼僃乕僗忣曬偼丄偙偺暥彂偺嵟屻偵乽7. 僇乕僱儖堏怉幰岦偗偺忣曬乿偲偟偰
傑偲傔偰婰嵹偟偰偄傞偺偱嶲徠偺偙偲丅
2.3 妱崬傒娗棟婡擻
僇乕僱儖娗棟奜偺妱崬傒偲偟偰偼丄 NMI偑偁傞丅傛偭偰丄CPU儘僢僋忬懺傗弶
婜壔儖乕僠儞撪偱偼丄NMI 埲奜偺妱崬傒偼偡傋偰嬛巭偝傟偰偄傞丅嬶懱揑偵偼丄
MSR(Machine Status Register)偺EE價僢僩偑0偵愝掕偝傟傞丅
DEF_INH 偱巜掕偡傞妱崬傒僴儞僪儔斣崋(inhno)偼丄僾儘僙僢僒偺僴乕僪僂僃
傾偺昞婰偵崌傢偣傞偙偲傪尨懃偲偡傞丅
妱崬傒儅僗僋乛妱崬傒桪愭搙惂屼偺偨傔偺丄掕媊丒API偼埲壓偺捠傝偱偁傞丅
(1) IPM宆
丂妱崬傒僐儞僩儘乕儔偺妱崬傒儅僗僋傪埖偆偨傔偺宆偱偁傞丅
(sys_defs.h)
(2) define_ipm 丂丂丂丂妱崬傒庴晅帪偺妱崬傒儅僗僋偺愝掕
丂丂丂丂丂丂丂丂丂丂丂丂丂丂丂丂乮僆僾僔儑儞乯
亂C尵岅API亃
define_ipm(INHNO inhno, IPM ipm);
亂僷儔儊乕僞亃
INHNO inhno 妱崬傒僴儞僪儔斣崋
IPM ipm 妱崬傒儅僗僋
亂儕僞乕儞僷儔儊乕僞亃
側偟
亂婡擻亃
丂妱崬傒僴儞僪儔斣崋inhno偺妱崬傒傪庴偗晅偗偨偲偒偵妱崬傒
丂僐儞僩儘乕儔偺IPM偵愝掕偡傞抣傪掕媊偡傞丅妱崬傒僐儞僩儘乕儔
丂偑懡廳妱崬傒偺儗儀儖惂屼傪僴乕僪僂僃傾偱僒億乕僩偟偰偄傟偽丄
丂僜僼僩僂僃傾偱偙偺傛偆側弨旛傪偡傞昁梫偼側偄丅
丂僨僶僀僗僪儔僀僶偺弶婜壔張棟偱巊梡偝傟傞偙偲傪憐掕偟偰偄傞
(sys_config.h)
2.4 chg_ipm偺僒億乕僩偵偮偄偰
PowerPC32傾乕僉僥僋僠儍埶懚偺婡擻偲偟偰丄妱崬傒僐儞僩儘乕儔偺妱傝崬傒
儅僗僋偺抣傪曄峏偡傞偨傔偺僒乕價僗僐乕儖 chg_ipm 偲丄嶲徠偡傞偨傔偺
僒乕價僗僐乕儖 get_ipm 傪僒億乕僩偟偰偄傞丅側偍丄妱傝崬傒儅僗僋價僢僩
偺抣傪昞偡僨乕僞宆 IPM 偼丄$SYS僨傿儗僋僩儕偵偰掕媊偝傟偰偄傞丅
偙傟傜偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺応崌
偵偺傒屇傃弌偡偙偲偑偱偒傞丅chg_ipm 偵傛傝 壗傜偐偺妱崬傒偑嬛巭偝傟偰
偄傞忬懺偵偟偨応崌偱傕丄僨傿僗僷僢僠偼嬛巭偝傟偢丄chg_ipm 偵傛傝曄峏偟
偨 IPM 偺抣偼丄僨傿僗僷僢僠屻偺僞僗僋偵堷偒宲偑傟傞丅椺偊偽丄偁傞僞僗
僋偱 IPM 傪 0x01 偵曄峏偟偨屻丄壗傜偐偺妱崬傒偵傛傝暿偺僞僗僋偵愗傝懼
傢傞偲丄愗傝懼傢偭偨屻偺僞僗僋偱傕 IPM 偼 0x01 偵側傞丅
chg_ipm 傪僒億乕僩偡傞偨傔偵丄妱崬傒僴儞僪儔偺弌擖岥張棟側偳偵僆乕僶僿僢
僪傪惗偠偰偄傞丅偦偙偱丄SUPPORT_CHG_IPM 偲偄偆儅僋儘偵傛傝丄偙傟傜偺僒乕
價僗僐乕儖傪僒億乕僩偡傞偐偳偆偐傪愗傝懼偊傜傟傞傛偆偵偟偰偄傞丅
SUPPORT_CHG_IPM 偼丄user_config.h 偺拞偱 #define 偝傟偰偄傞丅
PowerPC32僞乕僎僢僩埶懚偺妱崬傒儅僗僋偺曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕
儖偺巇條偼師偺捠傝丅
(1) chg_ipm 妱崬傒儅僗僋偺曄峏
亂C尵岅API亃
ER ercd = chg_ipm(IPM ipm);
亂僷儔儊乕僞亃
IPM ipm 愝掕偡傋偒 IPM 偺抣
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
E_PAR 僷儔儊乕僞僄儔乕(ipm 偑晄惓)
亂婡擻亃
丂妱崬傒儅僗僋傪 ipm 偱巜掕偝傟偨抣偵愝掕偡傞丅巜掕偟偨抣偑妱崬傒僐儞
丂僩儘乕儔偺妱崬傒儅僗僋偺斖埻撪偵擖偭偰偄側偄応崌偵偼E_PAR僄儔乕傪曉
丂偡丅
丂傑偨丄愝掕偟偨IPM偺抣偼丄僨傿僗僷僢僠屻傕堷偒宲偑傟傞丅
丂
丂偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒
丂屇傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟
丂偨応崌偵偼丄E_CTX僄儔乕偲側傞丅
(2) get_ipm 妱崬傒儅僗僋偺嶲徠
亂C尵岅API亃
ER ercd = get_ipm(IPM *p_ipm);
亂僷儔儊乕僞亃
側偟
亂儕僞乕儞僷儔儊乕僞亃
ER ercd 僄儔乕僐乕僪
IPM *p_ipm 尰嵼偺 IPM 偺抣
亂僄儔乕僐乕僪亃
E_CTX 僐儞僥僉僗僩僄儔乕
亂婡擻亃
丂尰嵼偺 妱崬傒儅僗僋偺抣傪撉傒弌偟丄p_ipm偑巜偟帵偡椞堟偵彂偒崬傓丅
丂
丂偙偺僒乕價僗僐乕儖偼丄僞僗僋僐儞僥僉僗僩偱 CPU儘僢僋夝彍忬懺偺帪偺傒
丂屇傃弌偡偙偲偑偱偒傞丅旕僞僗僋僐儞僥僉僗僩傗 CPU儘僢僋忬懺偱屇傃弌偟
丂偨応崌偵偼丄E_CTX僄儔乕偲側傞丅
丂
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -