📄 h8.txt
字号:
丂丂丂丂丂丂丂丂丂丂IPRA傑偨偼IPRB儗僕僗僞
丂丂丂丂丂UB bit 丗IPR儗僕僗僞偺奩摉偡傞價僢僩斣崋
丂丂丂 丂丂IPM ipm丗愝掕偡傞妱崬傒儗儀儖
丂丂丂丂丂丂丂丂丂丂IPM_LEVEL0,IPM_LEVEL1偺偄偢傟偐
丂丂丂亂儕僞乕儞僷儔儊乕僞亃
丂丂丂丂丂側偟
丂丂丂亂婡擻亃
丂丂丂丂丂irc偑巜偟帵偡椞堟偺僨乕僞傪梡偄偰丄僨僶僀僗偐傜偺妱崬傒偺
丂丂丂丂丂僾儔僀僆儕僥傿丒儗儀儖傪愝掕偡傞丅
丂丂丂丂丂偙偺娭悢傪屇傃弌偡慜偵h8_sil.h傪僀儞僋儖乕僪偡傞昁梫偑偁傞丅
丂丂丂亂僞僀儅妱崬傒偱偺婰弎椺亃
丂丂丂丂丂jsp/config/h8/cpu_config.c
丂丂丂丂丂丂const IRC TIMER_IRC = {(UB*)SYSTEM_TIMER_IPR,
丂丂丂丂丂丂SYSTEM_TIMER_IP_BIT,
丂丂丂丂丂丂SYSTEM_TIMER_IPM
丂丂丂丂丂丂};
丂丂丂丂丂jsp/config/h8/hw_timer.h
丂丂丂丂丂丂hw_timer_initialize( )
丂丂丂丂丂 define_int_plevel(&TIMER_IRC);
丂丂丂愝掕偵梡偄傞抣偼儅僋儘掕媊偝傟偰偄傞丅
丂丂丂
丂丂丂丒IPRA丄IPRB儗僕僗僞偺傾僪儗僗
丂丂丂jsp/config/h8/h8_3069f.h
丂丂丂#define H8IPRA 0xfee018
丂丂丂#define H8IPRB 0xfee019
丂丂丂丒IPRA丄IPRB儗僕僗僞偺價僢僩斣崋
丂丂丂jsp/config/h8/h8_3069f.h
丂丂丂丒IPRA
丂丂丂#define H8IPR_IRQ0_BIT 7 /* IRQ0 */
丂丂丂#define H8IPR_IRQ1_BIT 6 /* IRQ1 */
丂丂丂#define H8IPR_IRQ2_BIT 5 /* IRQ2 */
丂丂丂#define H8IPR_IRQ3_BIT 5 /* IRQ3 */
丂丂丂#define H8IPR_IRQ4_BIT 4 /* IRQ4 */
丂丂丂#define H8IPR_IRQ5_BIT 4 /* IRQ5 */
丂丂丂#define H8IPR_WDT_BIT 3 /* WDT */
丂丂丂#define H8IPR_AD_BIT 3 /* A/D */
丂丂丂#define H8IPR_CMI_BIT 3 /* CMI */
丂丂丂#define H8IPR_ITU0_BIT 2 /* 16 bit timer 0 */
丂丂丂#define H8IPR_ITU1_BIT 1 /* 16 bit timer 1 */
丂丂丂#define H8IPR_ITU2_BIT 0 /* 16 bit timer 2 */
丂丂丂丒IPRB
丂丂丂#define H8IPR_TU80_BIT 7 /* 8 bit timer 0 */
丂丂丂#define H8IPR_TU81_BIT 6 /* 8 bit timer 1 */
丂丂丂#define H8IPR_DMAC_BIT 5 /* DMAC (CH0,1) */
丂丂丂#define H8IPR_SCI0_BIT 3 /* SCI0 */
丂丂丂#define H8IPR_SCI1_BIT 2 /* SCI1 */
丂丂丂#define H8IPR_SCI2_BIT 1 /* SCI2 */
(3)-2 妱崬傒嫋壜帪梡僾儔僀僆儕僥傿儗儀儖偺愝掕
丂丂丒****_intmask儅僋儘偺掕媊
丂丂丂H8埶懚晹偱偼丄惷揑API DEF_INH( )偱妱崬傒僴儞僪儔傪掕媊偡傞偲丄
丂丂丂僇乕僱儖僐儞僼傿僊儏儗乕僔儑儞偵傛傝丄妱崬傒偺擖岥張棟偑帺摦惗
丂丂丂惉偝傟傞丅
丂丂丂偙偺擖岥張棟偱偼丄C尵岅儖乕僠儞****傪屇傃弌偡捈慜偺妱崬傒嫋壜帪
丂丂丂偵妱崬傒儅僗僋偵愝掕偡傞抣偲偟偰丄儅僋儘****_intmask偑掕媊偝傟偰
丂丂丂偄傞偲壖掕偟偰偄傞偺偱丄妱崬傒梫場枅偵IPM_LEVEL1丄IPM_LEVEL2偺偄
丂丂丂偢傟偐偵掕媊偡傞偙偲丅
丂丂丂帺暘偲摨偠儗儀儖偺妱崬傒傪儅僗僋偡傞偨傔丄IPM偵偼侾偮忋偺儗儀儖
丂丂丂傪愝掕偡傞昁梫偑偁傞偺偱丄拲堄偡傞偙偲丅
丂丂丂cpu_config.h丄sys_config.h傑偨偼偙傟傜偐傜僀儞僋儖乕僪偝傟傞僼傽
丂丂丂僀儖偱掕媊偡傞偺傪昗弨偲偡傞丅
丂丂丂亂僞僀儅妱崬傒偱偺婰弎椺亃
丂丂丂丂jsp/config/h8/akih8_3069f/sys_config.h
丂丂丂
丂丂丂丂#if SYSTEM_TIMER_IPM == IPM_LEVEL0
丂丂丂丂#define timer_handler_intmask IPM_LEVEL1
丂丂丂丂#elif SYSTEM_TIMER_IPM == IPM_LEVEL1
丂丂丂丂#define timer_handler_intmask IPM_LEVEL2
丂丂丂丂#endif /* SYSTEM_TIMER_IPM == IPM_LEVEL0 */
2. 2. 3丂妱崬傒儅僗僋偺曄峏丒嶲徠
H8埶懚偺婡擻偲偟偰丆CCR儗僕僗僞拞偺IPM偺抣傪曄峏偡傞偨傔偺僒乕價僗僐乕
儖chg_ipm偲丆嶲徠偡傞偨傔偺僒乕價僗僐乕儖get_ipm傪僒億乕僩偟偰偄傞丏
側偍丆IPM偺抣傪昞偡僨乕僞宆IPM偼丆unsigned char宆偵掕媊偝傟偰偄傞丏
偙傟傜偺僒乕價僗僐乕儖偼丆僞僗僋僐儞僥僉僗僩偱CPU儘僢僋夝彍忬懺偺応崌
偵偺傒屇傃弌偡偙偲偑偱偒傞丏chg_ipm偵傛傝IPM傪儗儀儖0埲奜乮偡側傢偪丆
壗傜偐偺妱崬傒偑嬛巭偝傟偰偄傞忬懺乯偵偟偨応崌偱傕丆僨傿僗僷僢僠偼嬛巭
偝傟偢丆chg_ipm偵傛傝曄峏偟偨IPM偺抣偼丆僨傿僗僷僢僠屻偺僞僗僋偵堷偒宲
偑傟傞丏
椺偊偽丆偁傞僞僗僋偱IPM傪儗儀儖1偵曄峏偟偨屻丆壗傜偐偺妱崬傒偵傛傝暿偺
僞僗僋偵愗傝懼傢傞偲丆愗傝懼傢偭偨屻偺僞僗僋偱傕IPM偼儗儀儖1偵側傞丏
chg_ipm傪僒億乕僩偡傞偨傔偵丆妱崬傒僴儞僪儔偺弌擖岥張棟側偳偵僆乕僶
僿僢僪傪惗偠偰偄傞丏偦偙偱丆SUPPORT_CHG_IPM偲偄偆儅僋儘偵傛傝丆偙傟傜
偺僒乕價僗僐乕儖傪僒億乕僩偡傞偐偳偆偐傪愗傝懼偊傜傟傞傛偆偵偟偰偄傞丏
SUPPORT_CHG_IPM偼丆sys_config.h偱儅僋儘掕媊偝傟偰偄傞丏
H8埶懚偺妱崬傒儅僗僋偺曄峏丒嶲徠偺偨傔偺僒乕價僗僐乕儖偺巇條偼師偺捠傝丏
(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 偱巜掕偝傟偨抣偵愝掕偡傞丏
IPM偱梡偄傞抣偲偟偰丄埲壓偺儅僋儘偑梡堄偝傟偰偄傞丅
丂IPM_LEVEL0丗儗儀儖侽丂偡傋偰偺妱崬傒傪庴偗晅偗傞
丂IPM_LEVEL1丗儗儀儖侾丂NMI偍傛傃僾儔僀僆儕僥傿儗儀儖侾偺妱崬傒偺傒傪
丂丂丂丂丂丂丂丂丂丂丂丂庴偗晅偗傞
丂IPM_LEVEL2丗儗儀儖俀丂NMI埲奜偺妱崬傒傪庴偗晅偗側偄
IPM偵巜掕偟偨抣偑忋婰偺儅僋儘埲奜偺応崌丆E_PAR僄儔乕偲側傞丏IPM 傪
IPM_LEVEL0埲奜偵愝掕偟偨応崌偱傕丆僨傿僗僷僢僠偼嬛巭偝傟側偄丏傑偨丆愝
掕偟偨IPM偺抣偼丆僨傿僗僷僢僠屻傕堷偒宲偑傟傞丏僨傿僗僷僢僠傪嬛巭偟
偨偄応崌偵偼丆dis_dsp偲暪梡偡傟偽傛偄丏
偙偺僒乕價僗僐乕儖偼丆僞僗僋僐儞僥僉僗僩偱 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. 4 CPU椺奜娗棟婡擻偲CPU椺奜僴儞僪儔
H8偱偼乮僾儘僙僢僒帺懱偑乯CPU椺奜傪埖偭偰偄側偄偑丄懠婡庬偲偺屳姺惈
偺偨傔丄CPU椺奜僴儞僪儔斣崋偺僨乕僞宆(EXCNO)偲CPU椺奜僴儞僪儔偺愝掕娭
悢define_exc( )傪掕媊偟偰偄傞丅
2. 5 僗僞乕僩傾僢僾儌僕儏乕儖
H8 埶懚偺僗僞乕僩傾僢僾儌僕儏乕儖 (start.S) 偼師偵帵偡弶婜壔傪幚峴偟
偨屻丄僇乕僱儖 (kernel_start) 傪婲摦偡傞丅偨偩偟丄 kernel_start 偐傜栠偭
偰偔傞偙偲偼憐掕偟偰偄側偄丅
(1) 僗僞僢僋億僀儞僞偺愝掕
(2) hardware_init_hook 偺屇弌偟
hardware_init_hook 偑 0 偱側偗傟偽丄hardware_init_hook 傪屇
弌偡丅hardware_init_hook 偼僇乕僱儖傪婲摦偡傞慜偵丄僞乕僎僢僩
埶懚偺僴乕僪僂僃傾揑側弶婜壔傪峴偆偨傔偵梡堄偝傟偰偄傞丅 杮幚
憰偱偼丄SYSCR 儗僕僗僞偺 UE 價僢僩偺僋儕傾丄 妱崬傒桪愭儗僕僗
僞 (IPRA 偲 IPRB) 偺屄暿妱傝崬傒偺桪愭搙偺愝掕丄 奜晹儊儌儕嬻
娫偺桳岠壔傪峴偭偰偄傞丅hardware_init_hook 偑枹掕媊偺応崌丄儕
儞僇僗僋儕僾僩偺婰弎偵傛傝偙偺僔儞儃儖偑 0 偵掕媊偝傟傞丅
(3) bss 僙僋僔儑儞偺弶婜壔
bss 僙僋僔儑儞偺慡椞堟傪 0 僋儕傾偡傞丅
(4) data 僙僋僔儑儞偺弶婜壔
data 僙僋僔儑儞傪奜晹 RAM 偵揮憲偡傞丅
(5) software_init_hook 偺屇弌偟
software_init_hook 偑 0 偱側偗傟偽丄software_init_hook 傪屇
弌偡丅software_init_hook 偼僇乕僱儖傪婲摦偡傞慜偵丄僜僼僩僂僃
傾娐嫬 (儔僀僽儔儕摍) 埶懚偺弶婜壔傪峴偆偨傔偵梡堄偝傟偰偄傞丅
椺偊偽丄儔僀僽儔儕偺弶婜愝掕側偳偱偁傞丅software_init_hook 偑
枹掕媊偺応崌丄儕儞僇僗僋儕僾僩偺婰弎偵傛傝偙偺僔儞儃儖偑 0 偵
掕媊偝傟傞丅
3. 僔僗僥儉埶懚晹偺婡擻
3. 1 僔僗僥儉僋儘僢僋僪儔僀僶
僔僗僥儉僋儘僢僋僪儔僀僶偑 isig_tim 傪屇弌偡廃婜偼丄 sys_defs.h 撪偺
TIC_NUME 偲 TIC_DENO 偱掕媊偝傟偰偍傝丄僨傿僼僅儖僩偼 1[ms] 廃婜偱偁傞丅
偙偺掕媊傪曄峏偡傞偙偲偱丄isig_tim 傪屇弌偡廃婜傪曄峏偱偒傞丅 偨偩偟丄
H8/3048F 偺僋儘僢僋偑 16[MHz] 偱丄 僞僀儅偺惛搙偑 0.5[us]丄H8/3052F 偺
僋儘僢僋偑 25[MHz] 偱丄僞僀儅偺惛搙偑 0.32[us]丄H8/3069F 偺僋儘僢僋偑
20[MHz] 偱丄 僞僀儅偺惛搙偑 0.4[us] 偺偨傔丄偙傟傜扨埵偱抂悢偵側傞抣傪
愝掕偡傞偲丄 isig_tim 偺屇弌偟廃婜偵岆嵎偑敪惗偡傞丅
僨傿僼僅儖僩偺僋儘僢僋僨傿僶僀僗偼 H8/3048F 偲 H8/3052F 偑 ITU0丄
H8/3069F 偑 16 價僢僩僞僀儅儐僯僢僩 0 傪巊梡偟偰偄傞丅
3. 2 惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻
H8 偱偼丄惈擻昡壙梡僔僗僥儉帪崗嶲徠婡擻 (vxget_tim) 傪僒億乕僩偟偰偄
傞丅惛搙偼 0.5[us] 偱丄SYSUTIM 宆偼__LONG_LONG_MAX__儅僋儘偺抣偵傛傝丄
張棟宯偑埖偊傞惍悢偺斖埻傪敾掕偟丄掕媊曽朄傪慖戰偟偰偄傞丅64價僢僩惍悢
偑巊梡偱偒傞応崌偼丄64價僢僩晞崋側偟惍悢偵丄偦偆偱側偄応崌偼32價僢僩晞
崋側偟惍悢偲偟偰掕媊偟偰偄傞丅
3. 3 僔儕傾儖僀儞僞僼僃乕僗僪儔僀僶
H8/3048F 偲 H8/3052F 偵偼 SCI0 偲 SCI1 偺 2 杮丄H8/3069F 偵偼 SCI0
偐傜 SCI2 偺 3 杮偺僔儕傾儖億乕僩偑偁傝丄sys_config.h 偵掕媊偟偰偄傞
TNUM_PORT 偵傛傝壗杮巊梡偡傞偐巜掕偱偒傞丅
尰嵼偺幚憰偱偼 2 杮傑偱巊梡偱偒傞丅 JSP 僇乕僱儖偺儘僌弌椡梡偵偼 SCI1
傪巊梡偟偰偄傞丅
3. 4 儊儌儕儅僢僾
3. 4. 1 H8/3048F 偺儊儌儕儅僢僾
奜晹傾僪儗僗嬻娫傪桳岠偵偡傞昁梫偑偁傞偨傔丄儌乕僪 5 偺撪憼 ROM 桳岠
奼挘 1M 僶僀僩儌乕僪傪憐掕偟偰偄傞丅
(1) 僨僶僢僌帪
0x00000 - 0x1ffff 撪憼 ROM丄廐寧儌僯僞
0x20000 - 0x3ffff 奜晹 RAM丄.text丄.rodata丄.data丄.bss
0xfef10 - 0xfefff 撪憼 RAM丄廐寧儌僯僞
0xff000 - 0xff0ff 撪憼 RAM丄壖憐妱崬傒儀僋僞椞堟 (.vectors)
0xff100 - 0xfff0f 撪憼 RAM丄旕僞僗僋僐儞僥僉僗僩梡僗僞僢僋
0xfff1c - 0xfffff 撪憼 I/O 儗僕僗僞
(2) 儕儕乕僗帪
0x00000 - 0x1ffff 撪憼 ROM丄.vectors丄.text丄.rodata
0x20000 - 0xfef0f 奜晹 RAM丄.data丄.bss
0xfef10 - 0xfff0f 撪憼 RAM丄旕僞僗僋僐儞僥僉僗僩梡僗僞僢僋
0xfff1c - 0xfffff 撪憼 I/O 儗僕僗僞
3. 4. 2 H8/3052F 偺儊儌儕儅僢僾
撪憼儊儌儕偩偗偱偼晄懌偡傞偨傔丄 AKI-H8-USB 儃乕僪偵憰拝偟丄
AKI-H8-USB 儃乕僪偵偁傞 128K 僶僀僩偺 RAM 傪棙梡偟偰偄傞丅偙偺偨傔丄奜
晹傾僪儗僗嬻娫傪桳岠偵偡傞昁梫偑偁傝丄儌乕僪 6 偺撪憼 ROM 桳岠奼挘 16M
僶僀僩儌乕僪傪憐掕偟偰偄傞丅
(1) 僨僶僢僌帪
0x000000 - 0x07ffff 撪憼 ROM丄娙堈儌僯僞
0x220000 - 0x23ffff 奜晹 RAM丄.text丄.rodata丄.data丄.bss
0xffdf10 - 0xffdfff 奜晹 RAM丄娙堈儌僯僞
0xffe000 - 0xffe0ff 撪憼 RAM丄壖憐妱崬傒儀僋僞椞堟 (.vectors)
0xffe100 - 0xffff0f 撪憼 RAM丄旕僞僗僋僐儞僥僉僗僩梡僗僞僢僋
0xffff1c - 0xffffff 撪憼 I/O 儗僕僗僞
(2) 儕儕乕僗帪
0x000000 - 0x05ffff 撪憼 ROM丄.vectors丄.text丄.rodata
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -