📄 m32c.txt
字号:
亖 TOPPERS/JSP僇乕僱儖 儐乕僓僘儅僯儏傾儖 亖
乮M32C 僞乕僎僢僩埶懚晹乯
乮Release 1.4懳墳丆嵟廔峏怴: 31-Oct-2004乯
------------------------------------------------------------------------
TOPPERS/JSP Kernel
Toyohashi Open Platform for Embedded Real-Time Systems/
Just Standard Profile Kernel
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2003-2004 by Naoki Saito
Nagoya Municipal Industrial Research Institute, JAPAN
Copyright (C) 2003-2004 by Platform Development Center
RIOCH COMPANY,LTD. JAPAN
忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
(1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
(2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
偲丏
(a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
(b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
曬崘偡傞偙偲丏
(4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
@(#) $Id: m32c.txt,v 1.1 2006/04/14 02:46:18 9564907 Exp $
------------------------------------------------------------------------
1. M32C 僞乕僎僢僩埶懚晹偺奣梫
1.1 僞乕僎僢僩僔僗僥儉偲奐敪娐嫬
丂M32C僾儘僙僢僒偺僞乕僎僢僩僔僗僥儉偼丄僆乕僋僗揹巕姅幃夛幮偺OAKS32傪
僒億乕僩偟偰偄傞丏OAKS32偼M30833FJFP(100pin斉)偍傛傃M30835FJGP(144pin斣)傪
搵嵹偟偰偄傞丏
1.2 奐敪娐嫬偲幚峴娐嫬
丂奐敪娐嫬偼丄儖僱僒僗僥僋僲儘僕幮惢偺奐敪娐嫬傪巊梡偡傞丏
Windows偑僀儞僗僩乕儖偝傟偰偍傝丄僔儕傾儖億乕僩傪傕偮僷僜僐儞偑偁傟偽丄
儘乕僪儌僕儏乕儖偺峔抸丄儃乕僪傊偺揮憲丄偍傛傃儃乕僪忋偱偺幚峴偑壜擻偱偁傞丏
1.3 僒億乕僩偡傞婡擻偺奣梫
丂惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻 (vxget_tim) 偼僒億乕僩偟偰偄傞偑丄
妱崬傒儅僗僋偺曄峏丒嶲徠 (chg_ixx丄 get_ixx)丄 妱傝崬傒偺嬛巭偲嫋壜
(dis_int丄ena_int) 偼僒億乕僩偟偰偄側偄丏
1.4 懠偺僞乕僎僢僩傊偺億乕僥傿儞僌
丂M32C偼CPU忋偵懡偔偺僨僶僀僗偑幚憰偝傟偰偍傝丄SFR偲偄偆宍幃偱摑堦壔偝傟偰
偄傞偨傔M32C僔儕乕僘偺CPU傪傕偮儃乕僪偱偁傟偽丄億乕僥傿儞僌偼梕堈偵
弌棃傞偲巚傢傟傞丏
1.5 僔儕傾儖億乕僩
丂億乕僥傿儞僌偼UART0億乕僩傊偺懳墳偑峴傢傟偰偄傞丏
UART1偼僨僶僢僈KD3083傪梡偄偨僨僶僢僌梡億乕僩偲偟偰巊梡偡傞偙偲傪憐掕偟偰偄傞.
UART0億乕僩偺愝掕傪埲壓偵帵偡丏
丒儃乕儗乕僩丄38400[bps]
丒僨乕僞挿丄8 價僢僩
丒僗僩僢僾價僢僩丄1 價僢僩
丒僷儕僥傿側偟
2. M32C 僾儘僙僢僒埶懚晹偺婡擻
偙偺愡偱偼丆僇乕僱儖偍傛傃僔僗僥儉僒乕價僗偺婡擻偺拞偱丆M32C埶懚偺晹暘
偵偮偄偰夝愢偡傞丏
2.1 僨乕僞宆
丂int 宆偲 unsigned int 宆偺僒僀僘偼 16價僢僩偱偁傞丏傑偨丄_int64_ 偼懳墳
偟偰偄側偄丏億僀儞僞偵娭偟偰丄M32C偱偼16價僢僩挿偺near億僀儞僞偲32價僢
僩挿偺far億僀儞僞偑偁傞丏near億僀儞僞偼RAM傗僨僶僀僗偺億乕僩椞堟偱偁傞
SFR傪傾僋僙僗偡傞堊偺億僀儞僞偱偁傝丄far億僀儞僞傪偙傟偵壛偊偰ROM椞堟傑
偱傾僋僙僗偑壜擻偲側傞丏崱夞偺億乕僥傿儞僌偱偼VP偍傛傃 VP_INT偼嫟偵far
億僀儞僞偲掕媊偟偰偄傞丏
丂柧帵揑偵 near 傕 far 傕巜掕偟側偄応崌丄僐儞僷僀儔偼億僀儞僞曄悢傪far
億僀儞僞偲偟偰埖偆偨傔丄捠忢偺巊梡偱偼億僀儞僞偺僒僀僘傪摿偵堄幆偡傞昁梫偼
側偄偑丄near偲far傪摨帪偵巊偆応崌偼堄幆偡傞昁梫偑偁傞丏
2.2 妱崬傒娗棟婡擻偲妱崬傒僴儞僪儔
丂僴乕僪僂僃傾妱崬傒偼妱崬傒嬛巭偲偡傞偙偲偑偱偒傞丏M32C偺妱崬傒偺嬛巭偼
僼儔僌儗僕僗僞拞偺妱崬傒嫋壜僼儔僌(I僼儔僌)偵傛偭偰峴偆丏偡側傢偪丄I僼
儔僌偑侽偺応崌偼儅僗僇僽儖妱崬傒偼嬛巭偝傟侾偺応崌偼嫋壜偝傟傞丏
丂妱崬傒儀僋僞偼愝掕埵抲偵惷揑偵攝抲偝傟傞丏杮奐敪娐嫬偱偼僐儞僼傿僊儏
儗乕僔儑儞偐傜惗惉偝傟傞 kernel_cfg.c 偺撪梕傪幆暿偟丄帺摦揑偵惷揑側
妱崬傒儀僋僞掕媊僼傽僀儖傪惗惉偡傞儐乕僥傿儕僥傿傪梡堄偟偰偄傞丏 偙偺
儐乕僥傿儕僥傿偼慜張棟偝傟偨 kernel_cfg.c 偺撪梕傪 utils/m16c-renesas
僨傿儗僋僩儕拞偺 m16cvec.exe 僐儅儞僪偱夝愅偟丄妱崬傒儀僋僞掕媊僼傽僀儖
m16cvec.inc 傪惗惉偡傞丏m16cvec.inc 偼CPU偺僗僞乕僩傾僢僾儌僕儏乕儖偱偁傞
start.a30 偐傜僀儞僋儖乕僪偝傟丄妱崬傒儀僋僞傪ROM忋偵惷揑偵攝抲偡傞丏
2.3 CPU 椺奜娗棟婡擻偲 CPU 椺奜僴儞僪儔
CPU椺奜偲偟偰丄僴乕僪僂僃傾僲儞儅僗僇僽儖妱崬傒偲僜僼僩僂僃傾僲儞儅僗僇
僽儖妱崬傒偑偁傞丏僴乕僪僂僃傾僲儞儅僗僇僽儖妱崬傒拞偺儕僙僢僩傪彍偄偰
儀僋僩儖偺愝掕偑壜擻偱偁傞丏
CPU椺奜儀僋僞偼妱崬傒僴儞僪儔偲摨條偵愝掕埵抲偵惷揑偵攝抲偝傟傞丏
CPU椺奜僴儞僪儔偵娭偟偰傕妱崬傒僴儞僪儔偲摨條偵 m16cvec.exe 傪梡偄偰丄
CPU椺奜儀僋僞掕媊傪帺摦揑偵惗惉偡傞偙偲偑偱偒傞丏偙偺僨乕僞偼妱崬傒
僴儞僪儔偲摨條偵m16cvec.inc偵愝掕偝傟傞丏
丂DEF_EXC 偱巜掕偡傞CPU椺奜僴儞僪儔斣崋乮excno乯偼丆M32C偱偺妱崬傒
儀僋僞斣崋傪昞偟丆偦偺僨乕僞宆乮EXCNO乯偼 char宆偵掕媊偝傟偰偄傞丏
2.4 僗僞乕僩傾僢僾儌僕儏乕儖
m32c埶懚偺僗僞乕僩傾僢僾儌僕儏乕儖 (start.a30) 偼師偵帵偡弶婜壔傪幚峴
偟偨屻丄僇乕僱儖 (kernel_start) 傪婲摦偡傞丏偨偩偟丄 kernel_start 偐傜
栠偭偰偔傞偙偲偼憐掕偟偰偄側偄丏
(1) 僗僞僢僋億僀儞僞偺愝掕
(2) CPU娭楢偺弶婜愝掕
僾儘僙僢僒儌乕僪偺愝掕偲僋儘僢僋偺愝掕傪峴偆丏
(3) hardware_init_hook 偺屇弌偟(枹幚峴)
丂M32C傾僙儞僽儔偱偼丄hardware_init_hook 偺敾掕偑偱偒側偄偙偲偲丄
M32C偺僴乕僪僂僃傾愝掕偑丄sys_initialize()娭悢拞偱峴偭偰傕
廫暘偵懳墳偱偒傞偲峫偊傜傟傞偙偲偐傜懳墳偟偰偄側偄.
(4) bss僙僋僔儑儞偲 data僙僋僔儑儞偺弶婜壔
bss僙僋僔儑儞傪僛儘僋儕傾偡傞丏傑偨丆data僙僋僔儑儞傪弶婜壔偡傞丏
(5) software_init_hook 偺屇弌偟
丂software_init_hook偑 0偱側偗傟偽丄software_init_hook 傪屇弌偡丏software
_init_hook 偼僇乕僱儖婲摦慜偵丄僜僼僩僂僃傾娐嫬 (儔僀僽儔儕摍) 埶懚偺
弶婜壔傪峴偆偨傔偵梡堄偝傟偰偄傞丏
丂software_init_hook偺掕媊偼cpu_config.c拞偵0偺愝掕偱壖偵峴偭偰偄傞丏
奜晹偱software_init_hook傪掕媊偡傞応崌偼丄峔抸帪偵俠僐儞僷僀儔偺掕媊偲偟偰
EXTERNAL_SOFT_HOOK傪掕媊偡傟偽丄偙偺愝掕偼僐儞僷僀儖偝傟偢奜晹偐傜偺愝掕偑
壜擻偲側傞丏椺偊偽丄儔僀僽儔儕偺弶婜愝掕側偳傪峴偄偨偄応崌偼奜晹偐傜偺
愝掕偑壜擻偲側傞丏
(6) 僇乕僱儖偺婲摦
kernel_start 傊暘婒偟丆僇乕僱儖傪婲摦偡傞丏kernel_start 偐傜儕僞乕儞偟
偰偔傞偙偲偼憐掕偟偰偄側偄丏
2.5 妱崬傒敪惗帪偺僗僞僢僋巊梡検偵偮偄偰
僇乕僱儖婲摦丄媦傃丄妱崬傒敪惗帪偼僞僗僋梡偺僗僞僢僋偲偼暿偺丄
妱崬傒愱梡偺僗僞僢僋傪巜掕偟偰偄傞丏偙偺僗僞僢僋偼RAMEND掕媊偱巜掕偝傟傞
RAM椞堟偺嵟廔埵抲偐傜僨僋儕儊儞僩偟偰巊梡偝傟傞丏偦偺偨傔丄
僔僗僥儉愝掕帪偵偼偙偺椞堟傪妋曐偟側偗傟偽側傜側偄丏
妱崬傒僱僗僩儗儀儖偑 0偱妱崬傒偑敪惗偡傞偲丄僞僗僋僐儞僥僉僗僩梡僗僞僢
僋偵儗僕僗僞傪曐懚偟偨屻丄妱崬傒梡僗僞僢僋偵愗傝懼偊傞偨傔丄僞僗僋僐儞
僥僉僗僩梡僗僞僢僋巊梡検偼 奺儗僕僗僞丄僼儔僌丄PC偱30僶僀僩偱偁傞丏
妱崬傒僱僗僩儗儀儖 1埲忋偺僴儞僪儔 偱偼丄妱崬傒僗僞僢僋偵忬懺偺曐懚偑峴
傢傟傞(妱崬傒偛偲30僶僀僩)丏偙傟埲奜偵丄妱崬傒儖乕僠儞偱巊梡偝傟傞僗僞
僢僋僒僀僘偑壛嶼偝傟傞丏
3. 僔僗僥儉埶懚晹偺婡擻
3.1 僔僗僥儉僋儘僢僋僪儔僀僶
僔僗僥儉僋儘僢僋僪儔僀僶偑isig_tim傪屇傃弌偡廃婜偼丆sys_defs.h拞偺
TIC_NUME偲TIC_DENO偱掕媊偝傟偰偄傞乮昗弨偼 1儈儕昩廃婜乯丏偙偺掕媊傪曄
峏偡傞偙偲偱丆isig_tim傪屇傃弌偡廃婜傪曄峏偡傞偙偲偑偱偒傞丏偨偩偟丆僞
僀儅偺惛搙偑1兪昩偱偁傞偨傔丆1兪昩扨埵偱抂悢偵側傞抣傪愝掕偟偨応崌偵偼丆
isig_tim偺屇弌偟廃婜偵岆嵎偑惗偠傞偙偲偵側傞丏
3.2 惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻
M32C偱偼丄惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻 (vxget_tim) 傪僒億乕僩偟偰偄傞丏
OAKS16偱偼惛搙 0.0333[us]偱偁傞丏SYSUTIM宆偼 UW 宆 (32 價僢僩晞崋側偟惍悢
宆) 偱偁傞丏
3.3 僔儕傾儖僀儞僞僼僃乕僗僪儔僀僶
OAKS32偱偼UART0偲UART1偺俀偮偺僔儕傾儖億乕僩偑儃乕僪忋偵幚憰偝傟偰偄傞丏
僔儕傾儖僀儞僞僼僃乕僗僪儔僀僶偱偼UART0偺傒偵懳墳偟丄儘僌弌椡梡偵巊梡偟偰偄傞丏
UART1 偼 僨僶僢僈 KD3083 偱儂僗僩PC偲偺捠怣梡億乕僩偲偟偰巊梡偡傞偙偲傪
憐掕偟偰偄傞偨傔丄偦偺傑傑偱偼僪儔僀僶偱巊梡偱偒側偄.
3.4 儊儌儕儅僢僾
3.4.1 OAKS32偺儊儌儕儅僢僾
(1) 幚峴娐嫬
0x000000 - 0x0003ff SFR椞堟
0x000400 - 0x0077ff 撪憻 RAM丄data_NE丄data_NO丄bss_NE丄bss_NO
0x007800 - 0x007fff 撪憻 RAM丄僨僶僢僌儌僯僞梡RAM椞堟乮儌僯僞偑巊梡仸乯
0xf80000 - 0x0ffdff 撪憼 ROM丄program丄rom_FE丄rom_FO丄data_NEI丄data_NOI
0xffbd00 - 0xffbdff 撪憼 ROM丄僴乕僪丄僜僼僩妱崬傒儀僋僞椞堟 (vvector)
0xffbe00 - 0xfffdff 撪憼 ROM丄僨僶僢僌儌僯僞僾儘僌儔儉椞堟仸
0xfffe00 - 0xffffdb 撪憼 ROM丄僗儁僔儍儖儁乕僕儀僋僞僥乕僽儖椞堟
0xffffdc - 0xffffff 撪憼 ROM丄僴乕僪CPU椺奜儀僋僞椞堟(fvector)
拲仸 僨僶僢僈KD3083傪巊梡偟側偄応崌偼捠忢偺儊儌儕偲偟偰巊梡壜擻
4. 奐敪
4.1 奐敪娐嫬
奐敪娐嫬偼丄Windows 2000偲Windows XP傪梡偄偨丏峔抸娐嫬偼埲壓偺俀偮偺曽朄
偑偁傞丏
(1) 儖僱僒僗僥僋僲儘僕幮惢偺摑崌奐敪娐嫬TM傪偦偺傑傑巊梡偡傞丏
乮OAKS32-FullKit偵傕摨崼偝傟偰偄傞乯
懳徾丗OAKS32儃乕僪
曽幃丗儖僱僒僗僥僋僲儘僕幮偺摑崌奐敪娐嫬TM傪梡偄偰峔抸
僇乕僱儖晹傪儔僀僽儔儕壔偣偢峔抸偡傞
偦偺懠丗僐儞僷僀儔NC308WA
摦嶌妋擣偼 Version3.10 Release2僄儞僩儕乕斉偲
Version5.10 Release1惢昳斉偱峴側偭偨
(2) DOS憢偐傜make僐儅儞僪傪梡偄偰奐敪傪峴偆娐嫬
懳徾丗OAKS32儃乕僪
曽幃丗DOS憢偐傜make傪巊偭偰峔抸
僇乕僱儖傪儔僀僽儔儕壔偡傞曽朄偲偟側偄曽朄偺椉曽偵懳墳
偦偺懠丗僐儞僷僀儔NC308WA
Version3.10 Release2 僄儞僩儕乕斉偲
Version5.10 Release1 惢昳斉偱摦嶌妋擣
GNU make (version 3.77 偱摦嶌妋擣嵪)
Perl (摦嶌妋擣偼 Active Perl v5.6.1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -