📄 configurator.txt
字号:
奺僨乕僞僉儏乕枅偵丆昁梫側僒僀僘偺僨乕僞僉儏乕椞堟傪掕媊偡傞丏嬶懱揑偵
偼丆忋婰偺惷揑API偵懳偟偰丆師偺掕媊傪惗惉偡傞丏
#if (dtqcnt) > 0
static VP_INT <僨乕僞僉儏乕椞堟偺曄悢柤>[dtqcnt];
#else
#define <僨乕僞僉儏乕椞堟偺曄悢柤> NULL
#endif
偙偙偱丆<僨乕僞僉儏乕椞堟偺曄悢柤> 偼丆僨乕僞僉儏乕枅偵堎側傞幆暿巕傪
惗惉偟偰梡偄傞丏
(3-4-2) 僨乕僞僉儏乕偺弶婜壔忣曬
僨乕僞僉儏乕弶婜壔僽儘僢僋拞偵惗惉偡傞僨乕僞僉儏乕偺弶婜壔忣曬偼丆師偺
宍幃偲偡傞丏
{ dtqatr, dtqcnt, <僨乕僞僉儏乕椞堟偺曄悢柤> }
(3-4-3) 僄儔乕忦審
僨乕僞僉儏乕偺弶婜壔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒(dtqatr & ~(TA_TPRI)) 偑 0 偱側偄応崌乮E_RSATR乯
丒dtq 偑 NULL 偱側偄応崌乮E_NOSPT乯
(3-5) 儊乕儖儃僢僋僗偵娭偡傞掕媊
儊乕儖儃僢僋僗偵娭偡傞掕媊偺僀儞僋儖乕僪僼傽僀儖柤偲僆僽僕僃僋僩偺徣棯
婰崋偼師偺捠傝偱偁傞丏
僀儞僋儖乕僪僼傽僀儖柤: mailbox.h
僆僽僕僃僋僩偺徣棯婰崋: MBX
埲壓偱偼丆僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偵師偺惷揑API偑娷傑傟
偰偄傞帪偵惗惉偡傋偒忣曬偵偮偄偰弎傋傞丏側偍丆儊乕儖儃僢僋僗偵昁梫側儊
儌儕椞堟偼側偄丏
CRE_MBX(mbxid, { mbxatr, maxmpri, mprihd });
(3-5-1) 儊乕儖儃僢僋僗偺弶婜壔忣曬
儊乕儖儃僢僋僗弶婜壔僽儘僢僋拞偵惗惉偡傞儊乕儖儃僢僋僗偺弶婜壔忣曬偼丆
師偺宍幃偲偡傞丏
{ mbxatr, maxmpri }
(3-5-2) 僄儔乕忦審
儊乕儖儃僢僋僗偺弶婜壔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒(mbxatr & ~(TA_TPRI|TA_MPRI)) 偑 0 偱側偄応崌乮E_RSATR乯
丒(TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI) 偱側偄応崌乮E_PAR乯
丒mprihd 偑 NULL 偱側偄応崌乮E_NOSPT乯
(3-6) 屌掕挿儊儌儕僾乕儖偵娭偡傞掕媊
屌掕挿儊儌儕僾乕儖偵娭偡傞掕媊偺僀儞僋儖乕僪僼傽僀儖柤偲僆僽僕僃僋僩偺
徣棯婰崋偼師偺捠傝偱偁傞丏
僀儞僋儖乕僪僼傽僀儖柤: mempfix.h
僆僽僕僃僋僩偺徣棯婰崋: MPF
埲壓偱偼丆僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偵師偺惷揑API偑娷傑傟
偰偄傞帪偵惗惉偡傋偒忣曬偵偮偄偰弎傋傞丏
CRE_MPF(mpfid, { mpfatr, blkcnt, blksz, mpf });
(3-6-1) 屌掕挿儊儌儕僾乕儖偵昁梫側儊儌儕椞堟偺掕媊
屌掕挿儊儌儕僾乕儖偵昁梫側儊儌儕椞堟偲偟偰丆屌掕挿儊儌儕僾乕儖椞堟偑偁
傞丏惗惉偡傞奺屌掕挿儊儌儕僾乕儖枅偵丆昁梫側僒僀僘偺屌掕挿儊儌儕僾乕儖
椞堟傪掕媊偡傞丏嬶懱揑偵偼丆忋婰偺惷揑API偵懳偟偰丆師偺掕媊傪惗惉偡傞丏
static VP <屌掕挿儊儌儕僾乕儖椞堟偺曄悢柤>[TCOUNT_VP(blksz) * (blkcnt)];
偙偙偱丆<屌掕挿儊儌儕僾乕儖椞堟偺曄悢柤> 偼丆屌掕挿儊儌儕僾乕儖枅偵堎
側傞幆暿巕傪惗惉偟偰梡偄傞丏
(3-6-2) 屌掕挿儊儌儕僾乕儖偺弶婜壔忣曬
屌掕挿儊儌儕僾乕儖弶婜壔僽儘僢僋拞偵惗惉偡傞屌掕挿儊儌儕僾乕儖偺弶婜壔
忣曬偼丆師偺宍幃偲偡傞丏
{ mpfatr, TROUND_VP(blksz), <屌掕挿儊儌儕僾乕儖椞堟偺曄悢柤>,
(VP)(((VB *) <屌掕挿儊儌儕僾乕儖椞堟偺曄悢柤>)
+ sizeof(<屌掕挿儊儌儕僾乕儖椞堟偺曄悢柤>)) }
(3-6-3) 僄儔乕忦審
屌掕挿儊儌儕僾乕儖偺弶婜壔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒(mpfatr & ~(TA_TPRI)) 偑 0 偱側偄応崌乮E_RSATR乯
丒blkcnt 偑 0 偺応崌乮E_PAR乯
丒blksz 偑 0 偺応崌乮E_PAR乯
丒mpf 偑 NULL 偱側偄応崌乮E_NOSPT乯
(3-7) 廃婜僴儞僪儔偵娭偡傞掕媊
廃婜僴儞僪儔偵娭偡傞掕媊偺僀儞僋儖乕僪僼傽僀儖柤偲僆僽僕僃僋僩偺徣棯婰
崋偼師偺捠傝偱偁傞丏
僀儞僋儖乕僪僼傽僀儖柤: cyclic.h
僆僽僕僃僋僩偺徣棯婰崋: CYC
埲壓偱偼丆僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偵師偺惷揑API偑娷傑傟
偰偄傞帪偵惗惉偡傋偒忣曬偵偮偄偰弎傋傞丏側偍丆廃婜僴儞僪儔偵昁梫側儊儌
儕椞堟偼側偄丏
CRE_CYC(cycid, { cycatr, exinf, cychdr, cyctim, cycphs });
(3-7-1) 廃婜僴儞僪儔偺弶婜壔忣曬
廃婜僴儞僪儔弶婜壔僽儘僢僋拞偵惗惉偡傞廃婜僴儞僪儔偺弶婜壔忣曬偼丆師偺
宍幃偲偡傞丏
{ cycatr, exinf, (FP)(cychdr), cyctim, cycphs }
(3-7-2) 僄儔乕忦審
廃婜僴儞僪儔偺弶婜壔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒(cycatr & ~(TA_STA)) 偑 0 偱側偄応崌乮E_RSATR乯
丒(cyctim > TMAX_RELTIM) 偺応崌乮E_PAR乯
丒(cycphs > TMAX_RELTIM) 偺応崌乮E_PAR乯
仸 偙偺懠偵丆cychdr 偑僾儘僌儔儉偺奐巒斣抧偲偟偰惓偟偄側偄応崌偵傕僄儔乕
偲偡傋偒偩偑丆僄儔乕忦審偑僞乕僎僢僩偵埶懚偟偰偟傑偆偨傔丆崱屻偺壽戣偲
偡傞丏
(4) 妱崬傒僴儞僪儔偵娭偡傞掕媊
僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖拞偵丆妱崬傒僴儞僪儔傪掕媊偡傞惷
揑API乽DEF_INH乿偑娷傑傟偰偄傞応崌偵丆妱崬傒僴儞僪儔偵娭偡傞掕媊傪惗惉
偡傞丏嬶懱揑偵偼師偺捠傝丏
(4-1) 掕媊偡傞妱崬傒僴儞僪儔偺悢
掕媊偡傞妱崬傒僴儞僪儔偺悢傪儅僋儘掕媊偡傞僾儕僾儘僙僢僒僨傿儗僋僥傿僽
乮#define乯傪惗惉偡傞丏傑偨丆偦偺抣傪帩偮曄悢偺掕媊傪惗惉偡傞丏嬶懱揑
偵偼丆師偺傛偆側峴傪惗惉偡傞丏
#define TNUM_INHNO <掕媊偡傞妱崬傒僴儞僪儔偺悢>
const UINT tnum_inhno = TNUM_INHNO;
(4-2) 妱崬傒僴儞僪儔偺弌擖岥張棟
掕媊偡傞奺妱崬傒僴儞僪儔枅偵丆妱崬傒僴儞僪儔偺弌擖岥張棟儖乕僠儞傪惗惉
偡傞丏嬶懱揑偵偼丆
DEF_INH(inhno, { inhatr, inthdr });
偲偄偆惷揑API偵懳偟偰丆
CFG_INTHDR_ENTRY(inthdr);
偲偄偆峴傪惗惉偡傞丏
(4-3) 妱崬傒僴儞僪儔弶婜壔僽儘僢僋偺掕媊
妱崬傒僴儞僪儔弶婜壔僽儘僢僋傪惗惉偡傞丏嬶懱揑偵偼丆師偺傛偆側峴傪惗惉
偡傞丏
const INHINIB inhinib_table[TNUM_INHNO] = {
<妱崬傒僴儞僪儔 1 偺弶婜壔忣曬>,
<妱崬傒僴儞僪儔 2 偺弶婜壔忣曬>,
乧乧
<妱崬傒僴儞僪儔 TNUM_INHNO 偺弶婜壔忣曬>
};
偙偺拞偺妱崬傒僴儞僪儔偺弶婜壔忣曬偼丆師偺宍幃偲偡傞丏
{ inhno, inhatr, (FP)CFG_INT_ENTRY(inthdr) }
(4-4) 僄儔乕忦審
妱崬傒僴儞僪儔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒inhatr 偑 0 偱側偄応崌乮E_RSATR乯
仸 偙偺懠偵丆inthdr 偑僾儘僌儔儉偺奐巒斣抧偲偟偰惓偟偄側偄応崌傗丆
inhno 偑妱崬傒僴儞僪儔斣崋偲偟偰惓偟偔側偄応崌偵傕僄儔乕偲偡傋偒偩偑丆
僄儔乕忦審偑僞乕僎僢僩偵埶懚偟偰偟傑偆偨傔丆崱屻偺壽戣偲偡傞丏
(5) CPU椺奜僴儞僪儔偵娭偡傞掕媊
僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖拞偵丆CPU椺奜僴儞僪儔傪掕媊偡傞
惷揑API乽DEF_EXC乿偑娷傑傟偰偄傞応崌偵丆CPU椺奜僴儞僪儔偵娭偡傞掕媊傪
惗惉偡傞丏嬶懱揑偵偼師偺捠傝丏
(5-1) 掕媊偡傞CPU椺奜僴儞僪儔偺悢
掕媊偡傞CPU椺奜僴儞僪儔偺悢傪儅僋儘掕媊偡傞僾儕僾儘僙僢僒僨傿儗僋僥傿
僽乮#define乯傪惗惉偡傞丏傑偨丆偦偺抣傪帩偮曄悢偺掕媊傪惗惉偡傞丏嬶懱
揑偵偼丆師偺傛偆側峴傪惗惉偡傞丏
#define TNUM_EXCNO <掕媊偡傞CPU椺奜僴儞僪儔偺悢>
const UINT tnum_excno = TNUM_EXCNO;
(5-2) CPU椺奜僴儞僪儔偺弌擖岥張棟
掕媊偡傞奺CPU椺奜僴儞僪儔枅偵丆CPU椺奜僴儞僪儔偺弌擖岥張棟儖乕僠儞傪惗
惉偡傞丏嬶懱揑偵偼丆
DEF_EXC(excno, { excatr, exchdr });
偲偄偆惷揑API偵懳偟偰丆
CFG_EXCHDR_ENTRY(exchdr);
偲偄偆峴傪惗惉偡傞丏
(5-3) CPU椺奜僴儞僪儔弶婜壔僽儘僢僋偺掕媊
CPU椺奜僴儞僪儔弶婜壔僽儘僢僋傪惗惉偡傞丏嬶懱揑偵偼丆師偺傛偆側峴傪惗
惉偡傞丏
const EXCINIB excinib_table[TNUM_EXCNO] = {
<CPU椺奜僴儞僪儔 1 偺弶婜壔忣曬>,
<CPU椺奜僴儞僪儔 2 偺弶婜壔忣曬>,
乧乧
<CPU椺奜僴儞僪儔 TNUM_EXCNO 偺弶婜壔忣曬>
};
偙偺拞偺CPU椺奜僴儞僪儔偺弶婜壔忣曬偼丆師偺宍幃偲偡傞丏
{ excno, excatr, (FP)CFG_EXC_ENTRY(exchdr) }
(5-4) 僄儔乕忦審
CPU椺奜僴儞僪儔偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒excatr 偑 0 偱側偄応崌乮E_RSATR乯
仸 偙偺懠偵丆excthdr 偑僾儘僌儔儉偺奐巒斣抧偲偟偰惓偟偄側偄応崌傗丆
excno 偑CPU椺奜僴儞僪儔斣崋偲偟偰惓偟偔側偄応崌偵傕僄儔乕偲偡傋偒偩偑丆
僄儔乕忦審偑僞乕僎僢僩偵埶懚偟偰偟傑偆偨傔丆崱屻偺壽戣偲偡傞丏
(6) 僞僀儉僀儀儞僩娗棟偵娭偡傞掕媊
僞僀儉僀儀儞僩娗棟偵娭楢偟偰丆師偺掕媊傪惗惉偡傞丏
TMEVTN tmevt_heap[TNUM_TSKID + TNUM_CYCID];
(7) 奺儌僕儏乕儖偺弶婜壔娭悢偺掕媊
奺僇乕僱儖僆僽僕僃僋僩偺娗棟丆妱崬傒娗棟丆CPU椺奜僴儞僪儔娗棟偺奺婡擻
傪弶婜壔娭悢傪弴偵屇傃弌偡娭悢乮object_initialize乯傪惗惉偡傞丏巊梡偟
側偄婡擻偺弶婜壔娭悢偼丆屇傃弌偝側偄丏
偡傋偰偺婡擻傪巊偭偨応崌偵惗惉偝傟傞娭悢偼師偺捠傝偱偁傞丏
void
object_initialize()
{
task_initialize();
semaphore_initialize();
eventflag_initialize();
dataqueue_initialize();
mailbox_initialize();
mempfix_initialize();
cyclic_initialize();
interrupt_initialize();
exception_initialize();
}
(8) 弶婜壔儖乕僠儞偺幚峴娭悢偺掕媊
乽ATT_INI乿惷揑API偱捛壛偟偨弶婜壔儖乕僠儞傪弴偵屇傃弌偡娭悢傪惗惉偡傞丏
嬶懱揑偵偼丆
ATT_INI({ iniatr, exinf, inirtn });
偲偄偆惷揑API偵懳偟偰丆
inirtn((VP_INT)(exinf));
傪屇傃弌偡娭悢傪丆call_inirtn 偲偄偆柤慜偱惗惉偡傞丏弶婜壔儖乕僠儞傪屇
傃弌偡弴彉偼丆僔僗僥儉僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖拞偱偺惷揑API偺弴
彉偵堦抳偝偣傞丏
椺偊偽丆
ATT_INI({ TA_HLNG, 0, timer_initialize });
ATT_INI({ TA_HLNG, (INT) CONSOLE_PORTID, serial_initialize });
偲偄偆擇偮偺惷揑API偑偙偺弴彉偱婰弎偝傟偨帪偵惗惉偡傞娭悢偼師偺捠傝偱
偁傞丏
void
call_inirtn()
{
timer_initialize((VP_INT)(0));
serial_initialize((VP_INT)((INT) CONSOLE_PORTID));
}
(8-1) 僄儔乕忦審
弶婜壔儖乕僠儞偵娭偡傞僄儔乕忦審偼師偺捠傝偱偁傞丏
丒iniatr 偑 0 偱側偄応崌乮E_RSATR乯
仸 偙偺懠偵丆inirtn 偑僾儘僌儔儉偺奐巒斣抧偲偟偰惓偟偄側偄応崌偵傕僄儔乕
偲偡傋偒偩偑丆僄儔乕忦審偑僞乕僎僢僩偵埶懚偟偰偟傑偆偨傔丆崱屻偺壽戣偲
偡傞丏
埲忋
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -