------------------------------------------------------------------------------
  Hyper Operating System V4  ITRON4.0 Real-Time OS                      
    V850ES(CA850) ɥ                                              
                                                                              
                                       Copyright (C) 1998-2008 by Project HOS 
                                       http://sourceforge.jp/projects/hos/    
------------------------------------------------------------------------------

1. 

  ܥɥȤ Hyper Operating System V4ʰʲ HOS-V4ˤV850ES
  θͭʬˤĤƤ򵭺ܤޤ
  äˡCQǼInterface2007ǯ5ϿĤ˥ޥƤޤΤǡ
  ¾ʤŬѤϡǽȤʤ礬ޤ

2. ưĶȤι

2.1 CPUܡ

ưǧƤCPUܡɤϡʲΤΤǤ

- CQǼInterface2007ǯ5Ͽ (V850ES/JG2)
-  V850ES (V850ES/JG2, JG3)

2.2 ȯĶ

NEC 쥯ȥ˥()  PM+(v6.31)+CA850(v3.20,v3.30)ưǧƤޤ

2.3 HOSΥѥ

libh4v850.a 饤֥ˡ򵭤ޤ2.3.1  HOS-v4 ̤
ȤȤʤޤ饤֥ˡϣ̤ˡꤷܤƤ
ޤ2.3.2ϤǤϡPM+ǹԤ硢2.3.3ϤǤϡmsyscygwinǹԤ
硢2.3.4ϤǤϡbcc5.5δĶѤơWindows Ķcommand.com ˤ
ԤǤͤδĶ˹碌ƤȤ

2.3.1 HOS-v4 (hos4cfg.txt)
- hos4cfg.txt 򻲾ȤΤWindowsΥͥƥ֥ɤĶǡ
hos4cfg.exe Ƥ餫Ѱդ줿 hos4cfg.exe 
ѤƤ빽Ǥ

- 塢ꥸʥʴĶǳȯԤȤꤷơ嵭
hos4cfg(.exe)  C:\WINDOWS\system32 ʤ PATH ̤äƤȤ
ԡƤǤ

2.3.2 V850ESͭ (PM+ Ķξ)
- hos-v4/lib/v850es/v850es_pm_r?? Ȥƣγѿ쥸⡼ɤ
碌ĶѰդޤΤǡ줾Υե libh4v850.prw 
PM+ ĶǳƤ줾 libh4v850.prw ֥륯å
ƤƤⳫޤ

- ݤˡPM+, CA850 ʤɤΥСΰ㤤˥󥰡⤷
顼ǽޤŬԤäƤ
ʥСΰ㤤ǤСΤΥɥޤΤǡ
ͤδĶˤ륳ѥʤɤΥСꤤз빽Ǥ
ʥե̾ΰ㤤䡢include ե뤬ĤʤȤåϡ
̵뤷ƤƷ빽ǤPM+ ˤ꼫ưϤǤ

- 嵭եβ tmp Ȥ̾Υե뤳ȤǧƤ
ʤʤСtmp Ȥ̾Ǻ򤷤Ƥ
tmp եβˡ饤֥֥ե(.S, .o)ޤ

- libh4v850.a եνǧƤäˡ嵭 libh4v850.prw
ǥСΰ㤤Ŧ줿ϡѹɬܤǤ
[ġ] -> [Хץ] -> [֥ե]
֥ե˥եꤷʤϡlibh4v850.prw եƱ
եlibh4v850.a ޤ

CA850 v3.30 ǥ쥸⡼ɤ r22 ⡼ɤξ硢
C:\Program Files\NEC Electronics Tools\CA850\W3.30\lib850\r22\libh4v850.a

CA850 v3.20 ǥ쥸⡼ɤ r32 ⡼ɤξ硢
C:\Program Files\NEC Electronics Tools\CA850\W3.20\lib850\r32\libh4v850.a

- ʥ˥ӥɤƤ
libh4v850.a ν꤬ƤСlibh4v850.a  PM+ Ķ˹碌
󥹥ȡ뤵ޤξ硢ԡפǤ꤬Ƥʤϡ
ӥɸ˳ͼȤŬԡ»ܤƤ


2.3.3 V850ESͭ (msys, cygwin Ķξ)
- hos-v4/lib/v850es/v850es_ca850/˰ưޤ

- h4v850es.mk򥳥ѥˤ碌ѹޤ
ca850.exe, as850.exe, ld850.exe, ar850.exe Τ
binǥ쥯ȥ꤬֤Ƥǥ쥯ȥ TOOLDIR 
ꤷƤ

ߤλϡ
TOOLDIR= "C:\Program Files\NEC Electronics Tools\CA850\W3.20"
Ǥ
$(TOOLDIR)/bin  ca850.exe ʤɤΥѥ餬
$(TOOLDIR)/include ˥ѥ餬Ȥإåǥ쥯ȥ꤬
$(TOOLDIR)/lib850 ˥饤֥꤬

- MSYS  Cygwin  make -f h4v850es.mkȤmakeޤ

- libh4v850es.a r22/, r26/, r32/ ǥ쥯ȥˤ줾
ޤ-reg22, -reg26, -reg32 б饤֥
줾Υǥ쥯ȥʬ̤Ǥ

- make -f h4v850es.mk install ¹Ԥޤ
ˤꡢr22/, r26/, r32/ Τ줾Υǥ쥯ȥ줿
饤֥꤬ $(TOOLDIR)/lib850/ ʲΥ饤֥ե˥ԡ
ޤ

2.3.4 V850ESͭ (Windows󥽡Ķbcc5.5makeȤ)
bcc5.5  make ޥɤĶѿ PATH ˻ꤵƤ뤳Ȥ
ǤɸΥ󥹥ȡξϡc:\borland\bcc55\bin β
make.exe ȻפޤΤǡWindows Υƥץư
ʥȥѥͥ뤫顢ƥॢ򥯥åƵư
[ܺ]TAG -> [Ķѿ]ܥ򥯥åθ塢ƥĶѿ
PATH ιܤˡmake.exe Τե̾ɵƤ
ѥ̾ζڤʸ ; Ǥ

- hos-v4/lib/v850es/v850es_ca850/˰ưޤ

- bcc55.mk򥳥ѥˤ碌ѹޤ
ca850.exe, as850.exe, ld850.exe, ar850.exe Τ
binǥ쥯ȥ꤬֤Ƥǥ쥯ȥ TOOLDIR 
ꤷƤ

ߤλϡ
TOOLDIR= "C:\Program Files\NEC Electronics Tools\CA850\W3.20"
Ǥ
$(TOOLDIR)/bin  ca850.exe ʤɤΥѥ餬
$(TOOLDIR)/include ˥ѥ餬Ȥإåǥ쥯ȥ꤬
$(TOOLDIR)/lib850 ˥饤֥꤬

- Windows Υ󥽡ưޤ
[] -> [ե̾ꤷƼ¹] θ塢[̾]
ˡ
command
Ϥ[OK] 򥯥åƤ

- make -i -f bcc55.mk Ȥ make ¹ԤƤ
ǡ-i  command.com Υޥɤʤɤǥ顼ǤǤ⡢
¹ԤԤץǤr22, r26, r32 ե¸ߤȡ
顼ȤʤߤޤΤɤΤǤ

⤷ѥ륨顼Ƥ⡢Τޤ޼ make Ȥ³
뤳Ȥ򤱤ϡ-i ץȤʤС顼
make ȤޤޤȤʬƤ

- libh4v850es.a r22/, r26/, r32/ ǥ쥯ȥˤ줾
ޤ-reg22, -reg26, -reg32 б饤֥
줾Υǥ쥯ȥʬ̤Ǥ

- make -f h4v850es.mk install ¹Ԥޤ
ˤꡢr22/, r26/, r32/ Τ줾Υǥ쥯ȥ줿
饤֥꤬ $(TOOLDIR)/lib850/ ʲΥ饤֥ե˥ԡ
ޤ


2.4 ץץΥѥ

2.4.1 ץץ򤽤ΤޤưƤߤ

- PM+ ưhos-v4/sample/v850es ˤץ sample 򳫤ޤ
sample.prw ֥륯åǤ빽Ǥ
κݡĤΥե뤬Ĥޤ󡢤ȡʺǽΣ٤ɽޤ
̵뤷ƤƷ빽Ǥhos4cfg.exe ˤ system.cfg ե뤬
ѥåˤƤʤΤΤǤ

- Хåʥ˥ӥɤޤ
system.cfg  hos4cfg 뤿ᡢХåʥ˥ӥɤˤƼ»ܤƤ
ץʳξϡ2.5Ϥ򻲾ȤΤХåԤäƤ

- 줿romp.hexޥ¢ΥեåROMؽ񤭹ߤޤ

2.4.2 OSѳߤˤĤ
system.cfg  ostimer.c ˤơOSѤγߤƤޤ
Υ޳ߤҲ𤷤Ƥޤ
Ĥϡץޤˤ륤󥿡Х륿޳ߤѤˡǡ
⤦ĤϡTMMޤˤߤǤ
ץޤξ硢OSޤμ礦1msec.ȤƤޤΤǡ
֤򤭤椷TMMȤ褦ˤƤ
ʹ׼ǤϻץޤǤ¸Ǥ뤫⤷ޤ

2.5 ե졼եΥѥ
2.4ϤΥץǤϥХåӥɤѤơsystem.cfg  hos4cfg.exe 
̤ơkernel_cfg.c  kernel_id.h ԤäƤޤ
ʲˡ򵭤ޤ

PM+ ˤƥץȤ򳫤֤ˤưʲԤץ
ꤷƤ

- PM+˥塼 [ӥ] -> [ӥ(G)...] ˤƥӥꥦɥ򳫤
- ɥΥ [ӥ] ֡
- Σޥɤ򣱤Ĥɲä롣
ɲåܥ򲡤ƣĤϿ

ܡˡcopy system.cfg system.c
ܡˡ"c:\Program Files\NEC Electronics Tools\CA850\W3.20\bin\ca850.exe" -Xcxxcom -P system.c
ܡˡdel system.c
ܡˡhos4cfg.exe system.i

ա˾嵭ޥܤ ca850 ΥѥȾѥڡޤ硢
""֥륯ơˤƤäƲ
աca850.exe ΥѥϳͤδĶ˹碌ꤷƤ
ä˥Сΰ㤤ˤϤդ
(v3.20 -> W3.20, v3.30 -> W3.30)
աca850.exe  .c ʤϿƤĥҤ̤ʤᡢ
ɬܡܤΥޥɤǥե̾ѹɬפǤ
աhos4cfg.exe Υѥ̤äƤʤˤϡ
ca850.exe Ʊ͡ХѥԤäƲ

- ʾˤꡢӥɤ»ܤˡޥɤӥɤ٤˼¹Ԥ褦
ʤޤ

2.6 ѿ쥸ؤб
libh4v850.a  -reg22, -reg26, -reg32 γѿ쥸бǡ
ޤɴޤ᤿饤֥Խϡ
פǤhos4ɸ饤֥Ϥ٤ -reg22 
ޤʤۤ¿Υ쥸ѿѤʤǽ⤤ᡢ
-reg22, -reg26, -reg32 ǤƱ .o ե뤬ƤΤȿ¬
Ƥޤˡ

PM+ Υץ 22, 26, 32 Υ쥸⡼ɤ򤹤Ȥǡ
饤֥ޤƼưڤؤޤ


3. ޥåסʹ


4 㳰ʳߤޤˤˤĤ

4.1 ߤưˤĤ
ߡɸͤȤơTMM0  16ӥåȥ󥿤Ѥơ1msec.
ޤ¸Ƥޤ
ޤTMM0 ޤ᤿٤Ƥγߤϡ4.2Ϥߥ٥ֹ̤
r2쥸ֹθ塢Ʊ롼 int_handler() ƤӽФޤ
r2쥸 CA850 ˤ RTOSѤȤƳ꿶Ƥ뤿ᡢ߽䡢
ڤؤ(dispatch)κݤˡ¸ޤ󡣡ޤɬ
ֹ椬뤿ᡢޤΤǡѤʤǤ

4.2 ߥ٥ֹʹ

Ʊֹ˰ۤʤƤΤΤ V850ESͤȤƤޤΤǡ
ĤʤϡNEC쥯ȥ˥ʳȯԤΥ桼ޥ˥奢
Ȥ

     ֹ  װ            
     ----------------------------------------------------------------------
            0       --              ǥեȥϥɥ
            1       --              (ͽ)
            2       --              (ͽ)
            3       --              (ͽ)
            4       --              (ͽ)
            5       --              (ͽ)
            6       --              (ͽ)
            7       --              (ͽ)
            8       INTLV1          (ͽ)
            9       INTP0           üϥå¸(INTP0)
            10      INTP1           üϥå¸(INTP1)
            11      INTP2           üϥå¸(INTP2)
            12      INTP3           üϥå¸(INTP3)
            13      INTP4           üϥå¸(INTP4)
            14      INTP5           üϥå¸(INTP5)
            15      INTP6           üϥå¸(INTP6)
            16      INTP7           üϥå¸(INTP7)
            17      INTTQ0OV        TMQ0 Сե
            18      INTTQ0CC0       TMQ0 ץ0 / ڥ0
            19      INTTQ0CC1       TMQ0 ץ1 / ڥ1
            20      INTTQ0CC2       TMQ0 ץ2 / ڥ2
            21      INTTQ0CC3       TMQ0 ץ3 / ڥ3
            22      INTTP0OV        TMP0 Сե
            23      INTTP0CC0       TMP0 ץ0 / ڥ0
            24      INTTP0CC1       TMP0 ץ1 / ڥ1
            25      INTTP1OV        TMP1 Сե
            26      INTTP1CC0       TMP1 ץ0 / ڥ0
            27      INTTP1CC1       TMP1 ץ1 / ڥ1
            28      INTTP2OV        TMP2 Сե
            29      INTTP2CC0       TMP2 ץ0 / ڥ0
            30      INTTP2CC1       TMP2 ץ1 / ڥ1
            31      INTTP3OV        TMP3 Сե
            32      INTTP3CC0       TMP3 ץ0 / ڥ0
            33      INTTP3CC1       TMP3 ץ1 / ڥ1
            34      INTTP4OV        TMP4 Сե
            35      INTTP4CC0       TMP4 ץ0 / ڥ0
            36      INTTP4CC1       TMP4 ץ1 / ڥ1
            37      INTTP5OV        TMP5 Сե
            38      INTTP5CC0       TMP5 ץ0 / ڥ0
            39      INTTP5CC1       TMP5 ץ1 / ڥ1
            40      INTTM0EQ0       TMM0 ڥסHOS TimerȤƻѡ
            41      INTCB0R         CSIB0 λ / 顼
            42      INTCB0T         CSIB0 Ϣ³񤭹ߵ
            43      INTCB1R         CSIB1 λ / 顼
            44      INTCB1T         CSIB1 Ϣ³񤭹ߵ
            45      INTCB2R         CSIB2 λ / 顼
            46      INTCB2T         CSIB2 Ϣ³񤭹ߵ
            47      INTCB3R         CSIB3 λ / 顼
            48      INTCB3T         CSIB3 Ϣ³񤭹ߵ
            49      INTCB4R         CSIB4 λ / 顼
            50      INTCB4T         CSIB4 Ϣ³񤭹ߵ
            51      INTUA1R         UARTA1 μλ / 顼
            52      INTUA1T         UARTA1 Ϣ³
            53      INTUA2R         UARTA2 μλ / 顼
            54      INTUA2T         UARTA2 Ϣ³
            55      INTAD           A/DѴλ
            56      INTDMA0         DMA0žλ
            57      INTDMA1         DMA1žλ
            58      INTDMA2         DMA2žλ
            59      INTDMA3         DMA3žλ
            60      INTKR           ꥿
            61      INTWT1          (ͽ)
            62      INTWT           ץޤδ
            63      --              (ͽ)

------------------------------------------------------------------------------
 Copyright (C) 1998-2008 by Project HOS                                       
------------------------------------------------------------------------------
