📄 m16c.txt
字号:
亖 TOPPERS/JSP僇乕僱儖 儐乕僓僘儅僯儏傾儖 亖
乮M16C 僞乕僎僢僩埶懚晹乯
乮Release 1.4懳墳丆嵟廔峏怴: 18-Jan-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: m16c.txt,v 1.1 2006/04/14 02:46:17 9564907 Exp $
------------------------------------------------------------------------
1. M16C 僞乕僎僢僩埶懚晹偺奣梫
1.1 僞乕僎僢僩僔僗僥儉偲奐敪娐嫬
M16C僾儘僙僢僒偺僞乕僎僢僩僔僗僥儉偼丆僆乕僋僗揹巕姅幃夛幮偺OASKS16偲
OAKS16-MINI傪僒億乕僩偟偰偄傞丏OAKS16偼M30620FCAFP-CPU傪丆OAKS16-MINI偼
M30262F8FG-CPU傪搵嵹偟偰偄傞丏
1.2 奐敪娐嫬偲幚峴娐嫬
奐敪娐嫬偼丆俀偮偺宍懺傪梡堄偟偨丏
傂偲偮偼OAKS16-FullKit傑偨偼OAKS16-MINI FULLKIT BOARD偵摨崼偝傟偰偄傞
CD-ROM拞偺儖僱僒僗僥僋僲儘僕幮惢偺奐敪娐嫬傪偦偺傑傑巊梡偟偰奐敪傪峴偆
傕偺偱丆JSP1.4偺Windows斉幚峴偑壜擻偱僔儕傾儖億乕僩傪傕偮僷僜僐儞偑偁
傟偽丆峔抸丆儃乕僪忋幚峴偑壜擻偱偁傞丏偙偺娐嫬偱偼儖僱僒僗僥僋僲儘僕幮
偺摑崌奐敪娐嫬TM傪巊梡偡傞丏
傕偆傂偲偮偺奐敪娐嫬偼DOS憢偐傜make僐儅儞僪傪梡偄偰奐敪傪峴偆娐嫬偱偁
傞丏偙偺娐嫬偺懳墳偼OAKS16儃乕僪偺傒偱偁傝丆奐敪娐嫬偲偟偰儖僱僒僗僥僋
僲儘僕幮偺惓幃偺奐敪娐嫬偲perl偺幚峴娐嫬偑昁梫偲側傞丏
奐敪偺徻嵶偵娭偟偰偼丆tools/M16C-RENESAS僨儗僋僩儕傿拞偺README.txt傪嶲
徠偺偙偲丏
1.3 僒億乕僩偡傞婡擻偺奣梫
惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻 (vxget_tim) 偼僒億乕僩偟偰偄傞偑丆 妱崬
傒儅僗僋偺曄峏丒嶲徠 (chg_ixx丆 get_ixx)丆 妱傝崬傒偺嬛巭偲嫋壜
(dis_int丆ena_int) 偼僒億乕僩偟偰偄側偄丏
1.4 懠偺僞乕僎僢僩傊偺億乕僥傿儞僌
偙偺億乕僥傿儞僌偼嫵堢揑側栚揑傪懳徾偵峴傢傟偰偄傑偡偑丏M16C偼CPU忋偵
懡偔偺僨僶僀僗偑幚憰偝傟偰偍傝丆SFR偲偄偆宍幃偱摑堦壔偝傟偰偄傞偨傔M16
C僔儕乕僘偺CPU傪傕偮儃乕僪偱偁傟偽丆億乕僥傿儞僌偼梕堈偵弌棃傞偲巚傢傟
傞丏
1.5 僔儕傾儖億乕僩 (SCI)
儃乕僪忋偼UART1偑幚憰偝傟偰偍傝丆UART0偑幚憰壜擻偲側偭偰偄傞丏億乕僥
傿儞僌偼俀偮偺懳墳偑峴傢傟偰偄傞丏側偍丆OAKS16-MINI斉偼RAM僒僀僘偑2KB
偟偐側偔丏XON/XOFF傗僄僐乕摍偺婡擻偵偼懳墳偟偰偄側偄丏
僔儕傾儖億乕僩偺愝掕傪埲壓偵帵偡丏
丒儃乕儗僀僩丆19200[bps]丏
丒僨乕僞挿丆8 價僢僩丏
丒僗僩僢僾價僢僩丆1 價僢僩丏
丒僷儕僥傿側偟丏
2. M16C 僾儘僙僢僒埶懚晹偺婡擻
偙偺愡偱偼丆僇乕僱儖偍傛傃僔僗僥儉僒乕價僗偺婡擻偺拞偱丆M16C埶懚偺晹暘
偵偮偄偰夝愢偡傞丏
2.1 僨乕僞宆
int 宆偲 unsigned int 宆偺僒僀僘偼 16價僢僩偱偁傞丏傑偨丆_int64_偼懳墳
偟偰偄側偄丏億僀儞僞偵娭偟偰丆M16C偱偼16價僢僩挿偺near億僀儞僞偲32價僢
僩挿偺far億僀儞僞偑偁傞丏near億僀儞僞偼RAM傗僨僶僀僗偺億乕僩椞堟偱偁傞
SFR傪傾僋僙僗偡傞堊偺億僀儞僞偱偁傝丆far億僀儞僞傪偙傟偵壛偊偰ROM椞堟傑
偱傾僋僙僗偑壜擻偲側傞丏儐乕僓僾儘僌儔儉傪嶌惉偡傞応崌丆億僀儞僞偺僒僀
僘傪堄幆偟偰僾儘僌儔儉傪嶌惉偡傞昁梫偑偁傞丏崱夞偺億乕僥傿儞僌偱偼VP傪
near億僀儞僞丆VP_INT傪far億僀儞僞偲掕媊偟偰偄傞丏
2.2 妱崬傒娗棟婡擻偲妱崬傒僴儞僪儔
僴乕僪僂僃傾妱崬傒偼妱崬傒嬛巭偲偡傞偙偲偑偱偒傞丏M16C偺妱崬傒偺嬛巭偼
僼儔僌儗僕僗僞拞偺妱崬傒嫋壜僼儔僌(I僼儔僌)偵傛偭偰峴偆丏偡側傢偪丆I僼
儔僌偑僛儘偺応崌偼僴乕僪僂僃傾儅僗僇僽儖妱崬傒偼嬛巭偝傟侾偺応崌偼嫋壜
偝傟傞丏
妱崬傒僴儞僪儔偼CPU偺愝掕埵抲偵惷揑偵攝抲偝傟傞丏杮奐敪娐嫬偱偼僐儞僼傿
僊儏儗乕僔儑儞偐傜惗惉偝傟傞kernel_cfg.c偺撪梕傪幆暿偟丆帺摦揑偵惷揑側
妱崬傒僴儞僪儔傪惗惉偡傞儐乕僥傿儕僥傿傪梡堄偟偰偄傞丏偙偺儐乕僥傿儕僥
傿偼utils/m16c-renesas僨儗僋僩儕傿拞偺n16cvec.exe僐儅儞僪偱丆僾儕僐儞僷
僀儖偝傟偨kernel_cfg.c偺撪梕傪夝愅偟妱崬傒僴儞僪儔儕僗僩偱偁傞m16cvec.i
nc傪惗惉偡傞丏m16cvec.inc偼CPU偺僗僞乕僩傾僢僾儌僕儏乕儖偱偁傞start.a30
偵僀儞僋儖乕僪偝傟偰偍傝丆僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偺妱崬傒僴儞僪
儔愝掕傪ROM忋偵惷揑偵攝抲偡傞丏
側偍丆妱崬傒僴儞僪儔偲偟偰枹掕媊偺抣傪愝掕偟偨応崌偼丆掕媊偝傟偰偄側偄
妱崬傒僴儞僪儔偺僴儞僪儔偲偟偰愝掕偝傟傞偨傔儐乕僓偼枹掕媊偺妱崬傒偑敪
惗偟偨応崌偺僴儞僪儔偲偟偰巊梡偡傞偙偲偑偱偒傞丏
2.3 CPU 椺奜娗棟婡擻偲 CPU 椺奜僴儞僪儔
CPU椺奜偲偟偰丆僴乕僪僂僃傾僲儞儅僗僇僽儖妱崬傒偲僜僼僩僂僃傾僲儞儅僗僇
僽儖妱崬傒偑偁傞丏僴乕僪僂僃傾僲儞儅僗僇僽儖妱崬傒拞偺儕僙僢僩傪彍偄偰
儀僋僩儖偺愝掕偑壜擻偱偁傞丏
CPU椺奜僴儞僪儔偼妱崬傒僴儞僪儔偲摨條偵CPU偺愝掕埵抲偵惷揑偵攝抲偝傟傞
丏CPU椺奜僴儞僪儔偵娭偟偰傕妱崬傒僴儞僪儔偲摨條偵m16cvec.exe傪梡偄偰丆
帺摦揑偵惷揑側CPU椺奜僴儞僪儔傪惗惉偡傞偙偲偑偱偒傞丏偙偺僨乕僞偼妱崬傒
僴儞僪儔偲摨條偵m16cvec.inc偵愝掕偝傟傞丏側偍丆CPU椺奜僴儞僪儔偲偟偰枹
掕媊偺抣傪愝掕偟偨応崌偼丆掕媊偝傟偰偄側偄CPU椺奜僴儞僪儔偺僴儞僪儔偲偟
偰愝掕偝傟傞偨傔儐乕僓偼枹掕媊偺妱崬傒偑敪惗偟偨応崌偺僴儞僪儔偲偟偰巊
梡偡傞偙偲偑偱偒傞丏
DEF_EXC 偱巜掕偡傞妱崬傒僴儞僪儔斣崋乮excno乯偼丆M16C偱偺椺奜儀僋僞
斣崋傪昞偟丆偦偺僨乕僞宆乮EXCNO乯偼 unsigned int宆偵掕媊偝傟偰偄傞丏
2.4 僗僞乕僩傾僢僾儌僕儏乕儖
m16c埶懚偺僗僞乕僩傾僢僾儌僕儏乕儖 (start.a30) 偼師偵帵偡弶婜壔傪幚峴
偟偨屻丆僇乕僱儖 (kernel_start) 傪婲摦偡傞丏偨偩偟丆 kernel_start 偐傜
栠偭偰偔傞偙偲偼憐掕偟偰偄側偄丏
(1) 僗僞僢僋億僀儞僞偺愝掕
(2) CPU娭楢偺弶婜愝掕
僾儘僙僢僒儌乕僪偺愝掕偲僋儘僢僋偺愝掕傪峴偆丏
(3) hardware_init_hook 偺屇弌偟(枹幚峴)
M16C傾僙儞僽儔偼丆俠尵岅僐儞僷僀儔偲摨婜傪庢偭偨僾儕僐儞僷僀儖張棟偑偱
偒側偄丏hardware_init_hook偺敾掕偑偱偒側偄偨傔懳墳偟偰偄側偄丏
幚嵺丆M16C偺僴乕僪僂僃傾愝掕偵娭偟偰偼丆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掕媊偱巜掕偝傟傞RA
M椞堟偺嵟廔埵抲偐傜僨僋儕儊儞僩偟偰巊梡偝傟傞丏偦偺偨傔丆僔僗僥儉愝掕
帪偵偼偙偺椞堟傪妋曐偟側偗傟偽側傜側偄丏
妱崬傒僱僗僩儗儀儖偑 0偱妱崬傒偑敪惗偡傞偲丆僞僗僋僐儞僥僉僗僩梡僗僞僢
僋偵儗僕僗僞傪曐懚偟偨屻丆妱崬傒梡僗僞僢僋偵愗傝懼偊傞偨傔丆僞僗僋僐儞
僥僉僗僩梡僗僞僢僋巊梡検偼 奺儗僕僗僞丆僼儔僌丆PC偱20僶僀僩偱偁傞丏
妱崬傒僱僗僩儗儀儖 1埲忋僴儞僪儔 偱偼丆妱崬傒僗僞僢僋偵忬懺偺曐懚偑峴
傢傟傞(妱崬傒偛偲20僶僀僩)丏偙傟埲奜偵丆妱崬傒儖乕僠儞偱巊梡偝傟傞僗僞
僢僋僒僀僘偑壛嶼偝傟傞丏
3. 僔僗僥儉埶懚晹偺婡擻
3.1 僔僗僥儉僋儘僢僋僪儔僀僶
僔僗僥儉僋儘僢僋僪儔僀僶偑isig_tim傪屇傃弌偡廃婜偼丆sys_defs.h拞偺
TIC_NUME偲TIC_DENO偱掕媊偝傟偰偄傞乮昗弨偼 1儈儕昩廃婜乯丏偙偺掕媊傪曄
峏偡傞偙偲偱丆isig_tim傪屇傃弌偡廃婜傪曄峏偡傞偙偲偑偱偒傞丏偨偩偟丆僞
僀儅偺惛搙偑1兪昩偱偁傞偨傔丆1兪昩扨埵偱抂悢偵側傞抣傪愝掕偟偨応崌偵偼丆
isig_tim偺屇弌偟廃婜偵岆嵎偑惗偠傞偙偲偵側傞丏
3.2 惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻
M16C偱偼丆惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻 (vxget_tim) 傪僒億乕僩偟偰偄傞
丏OAKS16偱偼惛搙 0.0625[us]丆OAKS16-MINI偱偼惛搙 1.6[us]偱偁傞丏SYSUTIM
宆偼 UW 宆 (32 價僢僩晞崋側偟惍悢宆) 偱偁傞丏
3.3 僔儕傾儖僀儞僞僼僃乕僗僪儔僀僶
OAKS16丆OAKS16-MINI偱偼UART0偲UART1偺俀偮偺僔儕傾儖億乕僩偑儃乕僪忋偵幚
憰偱偒傞丏偙偺偆偪僐僱僋僞偑幚憰偝傟偨UART1傪儘僌弌椡梡偵巊梡偟偰偄傞丏
3.4 儊儌儕儅僢僾
3.4.1 OAKS16偺儊儌儕儅僢僾
(1) 幚峴娐嫬
0x00000 - 0x003ff SFR椞堟
0x00400 - 0x02bff 撪憻 RAM丆data_NE丆data_NO丆bss_NE丆bss_NO
0xe0000 - 0xffdff 撪憼 ROM丆program丆rom_FE丆rom_FO丆data_NEI丆
data_NOI
0xffe00 - 0xfffdb 撪憼 ROM丆僴乕僪丆僜僼僩妱崬傒儀僋僞椞堟 (vector)
0xfffdc - 0xfffff 撪憼 ROM丆僴乕僪CPU椺奜儀僋僞椞堟(fvector)
3.4.2 OAKS16-MINI偺儊儌儕儅僢僾
(1) 幚峴娐嫬
0x00000 - 0x003ff SFR椞堟
0x00400 - 0x00bff 撪憻 RAM丆data_NE丆data_NO丆bss_NE丆bss_NO
0xe0000 - 0xffdff 撪憼 ROM丆program丆rom_FE丆rom_FO丆data_NEI丆
data_NOI
0xffe00 - 0xfffdb 撪憼 ROM丆僴乕僪丆僜僼僩妱崬傒儀僋僞椞堟 (vector)
0xfffdc - 0xfffff 撪憼 ROM丆僴乕僪CPU椺奜儀僋僞椞堟(fvector)
4. 奐敪
4.1 奐敪娐嫬偺峔抸
奐敪娐嫬偼丆Windows 2000偲Windows XP傪梡偄偨丏峔抸娐嫬偼埲壓偺俀偮偺峔抸
偑偁傞丏
(1) OAKS16-FullKit傑偨偼OAKS16-MINI FULLKIT BOARD偵摨崼偝傟偰偄傞
CD-ROM拞偺儖僱僒僗僥僋僲儘僕幮惢偺奐敪娐嫬傪偦偺傑傑巊梡偟偨娐嫬
懳徾丗OAKS16儃乕僪丆OAKS16-MINI儃乕僪
曽幃丗儖僱僒僗僥僋僲儘僕幮偺摑崌奐敪娐嫬TM傪梡偄偰峔抸
僇乕僱儖晹傪儔僀僽儔儕傿壔偣偢峔抸偡傞
偦偺懠丗僐儞僷僀儔NC30WA Version5.00 傑偨偼 4.00
(2) DOS憢偐傜make僐儅儞僪傪梡偄偰奐敪傪峴偆娐嫬
懳徾丗OAKS16儃乕僪
曽幃丗DOS憢偐傜make傪巊偭偰峔抸
僇乕僱儖晹儔僀僽儔儕傿壔偟偰峔抸偡傞
偦偺懠丗僐儞僷僀儔NC30WA Version5.00 (惓婯斉)
GNU make (version 3.77 偱摦嶌妋擣嵪)
Perl (摦嶌妋擣偼 Active Perl v5.6.1偱峴偭偨)
4.2 摑崌奐敪娐嫬TM傪梡偄偨峔抸
OAKS16僼儖僉僢僩傑偨偼OAKS16 MINI僼儖僉僢僩偺揧晅偝傟偰偄傞CD-ROM拞偺
奐敪娐嫬傪梡偄偰m16c梡偺TOPPERS/JSP傪峔抸偡傞丏峔抸偟偨MOT僼傽僀儖傪
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -