HOS-v4(uITRON4.0½àµò)¤òH8¤ËƳÆþ¤·¤Æ¤ß¤¿




HOS-v4(uITRON4.0½àµò)¤òH8¤ËƳÆþ¤·¤Æ¤ß¤¿

2003/SEP/28

¤Á¤Þ¤¿¤Ç²¿¤«¤È±½¤Ë¤Ê¤ëÁȤ߹þ¤ßµ¡´ïÍÑOS¡¢ITRON¤ò¤Á¤í¤Á¤í¤¤¤¸¤Ã¤Æ¤Þ¤¹¡£ ¤È¤¤¤Ã¤Æ¤âÀè¿Í¤¬H8¤Ë°Ü¿¢¤µ¤ì¤¿¤Î¤ò¡¢¥Ü¥ó¥«¥ì¡¼¤è¤í¤·¤¯¼ê»ý¤Á¤ÎH8¤ËºÜ¤»¤¿¤é ¥µ¥ó¥×¥ë¤¬¤¢¤Ã¤µ¤êư¤¤¤¿¡¢¤È¤¤¤¦¤ªÏäǤ¹¡£


H8¾å¤Î¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤Ä¤¤¤Æ¤¢¤ëÄøÅÙ¤´Â¸ÃΤǡ¢¤«¤ÄTRON¥×¥í¥¸¥§¥¯¥È¤Ë¤Ä¤¤¤Æ¤Ï Á´¤¯ÃΤé¤ó¡¢´Êñ¤Ë¤¤¤¸¤ì¤ë¤Ê¤é¿¨¤Ã¤Æ¤ß¤Æ¤âÎɤ¤¡¢¤ÊÊý¤òÂоݤ˽ñ¤¤¤Æ¤Þ¤¹¡£

¤È¤¤¤¦watson8¤¬Á´¤¯¤ÎÁǿͤʤó¤Ç¡¢¤à¤·¤íÆÉ¤ó¤Ç¤¯¤À¤µ¤Ã¤Æ¤ë¤¢¤Ê¤¿¤È°ì½ï¤ËÊÙ¶¯¤·¤Æ¤¤¤­¤¿¤¤¤Ê¤¡¤È¡£ ¤Ç¤¹¤«¤é¤â¤Á¤í¤ó
̵ÊݾڤǤ¹¡£³Æ¼«¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¤ª´ê¤¤¤·¤Þ¤¹¡£

¤Õ¡¼¤ó¡£¤Ç¥µ¥Ý¡¼¥È¤¹¤ë¥Ç¥Ð¥¤¥¹¤Ï¡©
¤¤¤ä¡¢¤½¤¦¤¤¤¦Êý¸þ¤ÎOS¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó(¥«¡¼¥Í¥ë¤À¤·¤Í)¡£¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î°ìÍ÷¤Ê¤ó¤¾¸«¤ë¤ÈHOS¤¬¤ä¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ï ¤È¤¤¤¦´¶¤¸¤Ç¤¹¡£HOS¤¬(¥Ç¥Õ¥©¥ë¥È¤Ç)»ÈÍѤ¹¤ëITU0A°Ê³°¤Î¼þÊդϥ桼¥¶¤¬¹¥¤­¾¡¼ê¤Ë ÍøÍѤǤ­¤Þ¤¹¡£¸À¤¤Êý¤òÂØ¤¨¤ë¤È¡¢¼þÊÕ¤ò¥æ¡¼¥¶¥ì¥Ù¥ë¤Ç¤¤¤¸¤ë¤Î¤È ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¤¤¤¦·Á¤ÇOS¦¤Ç¤¤¤¸¤ë¤Î¤È°ã¤¤¤¬¤Ï¤Ã¤­¤ê¤ï¤«¤ê¤Þ¤»¤ó¡£
¤â¤Á¤í¤ó¡¢HOSÍÑ(¤Þ¤¿¤ÏHOS¤ÈÁêÀ­¤ÎÎɤ¤)¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ÏÊÌÅÓ¤¢¤ë¤Î¤Ç¤·¤ç¤¦¤±¤É¡£

ÆÃ¤Ë¥³¥Þ¥ó¥É¥·¥§¥ë¤Î¤è¤¦¤Ê¤â¤Î¤Ï¤Ê¤¯(½ñ¤«¤ì¤Æ¤¤¤ëÊý¤¬¤ª¸«¤¨¤Î¤è¤¦¤Êµ¤¤â¤·¤Þ¤¹¤¬)¡¢ ¥â¥Ë¥¿¤«¤é":G 220200"¤È¤·¤¿¤é¡Öư¤¤¤¿¤Ã¡¦Æ°¤«¤Í¤§¡Á¡×¤Î¤É¤Á¤é¤«¤Ç¤¹¡£ ¤Ç¤ÏÈᤷ¤«¤í¤¦¤È¤¤¤¦¤³¤È¤Ç¡¢¤Ê¤ó¤È¤«½ãÀµ¥â¥Ë¥¿¤Ç¥Ç¥Ð¥Ã¥°¤Ç¤­¤Ê¤¤¤«¤È¸À¤¦Ïà ¤¬¸å¤í¤ÎÊý¤Ç½Ð¤Æ¤­¤Þ¤¹¡£
¤È¤ê¤¢¤¨¤º¤³¤ó¤Ê´¶¤¸¤ÇºÜ¤»¤Þ¤·¤¿
HOS¤Î¥¤¥á¡¼¥¸¤Ç¤¹¤è¤ó

¤È¡¢¤³¤ó¤Ê¤ó¤Ç¥¤¥á¡¼¥¸¤ï¤­¤Þ¤¹¡©HOS¥«¡¼¥Í¥ë¤È¸À¤Ã¤Æ¤â´ðËÜŪ¤ËC¤Ç½ñ¤«¤ì¤¿¥µ¥Ö¥ë¡¼¥Á¥ó·² (¥é¥¤¥Ö¥é¥ê·Á¼°)¤È¤·¤ÆÄ󶡤µ¤ì¤Þ¤¹¡£¤¶¤Ã¤¯¤ê¸À¤¦¤È¡¢main(),task1(),task2()¤òµ­½Ò¤·¡¢ ¤½¤ÎÄ󶡤µ¤ì¤¿¥é¥¤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¡¢°ìËܤÎMOT·Á¼°¤òºî¤ê¤Þ¤¹¡£¤Ä¤Þ¤ê¡Ö¥â¥Ë¥¿ÇÛ²¼¤Ç "g 220200"¤Çư¤¯LED¤ò¥Á¥«¥Á¥«¤¹¤ë¥×¥í¥°¥é¥à¡×¤òºî¤ë¤Î¤ÈÁ´¤¯ÊѤï¤ê¤Þ¤»¤ó¡£ task1()¤Ètask2()¤¬Ê¹Ԥ·¤ÆÁö¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë¸«¤¨¤ëÅÀ¤¬¤Á¤ç¤Ã¤È°ã¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡£ ROMÆâ¤Ë_printf()¤Ê¤É¥µ¥Ý¡¼¥È¥ë¡¼¥Á¥ó¤òÆþ¤ì¤Æ¤¢¤ì¤Ð¡¢¤½¤ì¤â(±¿¤¬¤è¤±¤ì¤Ð)ÍøÍѤǤ­¤Þ¤¹¡£
ɬÍפʤâ¤Î
´Êñ¤½¤¦¤Ë¸«¤¨¤Þ¤·¤¿¡©¼ÂºÝ¡Ö¥ª¥¹¥¹¥á´Ä¶­¡×¤Ç¥µ¥ó¥×¥ë¤òư¤«¤¹¤¯¤é¤¤¤Ê¤é¤¢¤Ã¤È¤¤¤¦´Ö ¤Ç¡¢watson8¤Ç¤âÁ´¤¯¿¿¤ÃÇò¤Ê¾õÂÖ¤«¤é¡¢»î¹Ôºø¸í¤ÎËö¤È¤ê¤¢¤¨¤ºÆ°¤­½Ð¤¹¤Þ¤Ç¤ï¤º¤«¿ô»þ´Ö¡£ ¤½¤ì¤â¤Û¤È¤ó¤É¥È¥éµ»C¤Çư¤«¤½¤¦¤È¤·¤Æ¥Ð¥¿¥Ð¥¿¤·¤Æ¤¿¤ï¤±¤Ç¡¢gcc¤Ë°Ü¹Ô¤·¤Æ¤«¤é¤Ï¤Û¤ó¤È¤Ë¤¢¤Ã¤È¤¤¤¦´Ö¤Ç Àè¿Í¤Ë´¶¼Õ´¶¼Õ¡£
gcc¤«¡©¥È¥éµ»/½©·îC¤«¡©
¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥¿
ITRON4.0¤é¤·¤¯¤ä¤í¤¦¤È¤¹¤ë¤È¢¬¤Î¤è¤¦¤Ê¼ê½ç¤Ë¤Ê¤ë¤½¤¦¤Ç¡¢¤É¤Ã¤Á¤Ç¹Ô¤¯¤«¤è¤©¤¯¹Í¤¨¤Æ²¼¤µ¤¤¡£ ¤â¤Á¤í¤ó¤É¤Ã¤Á¤«¤Ç¤Ç¤­¤ì¤Ð¡¢¤â¤¦°ìÊý¤Ø¤Î°ú±Û¤·¤Ï¤ï¤ê¤ÈÍÆ°×¤«¤È»×¤¤¤Þ¤¹¡£
¤Ã¤Ä¤¦¤«system.cfg¤Ã¤Æ²¿¼Ô¡©
UNIX¤ÇÎ㤨¤ë¤È¡¢/dev/FIFO¤ò»È¤¤¤¿¤¤¾ì¹ç¡¢main()¤ÎƬ¤Çopen()¤·¤Þ¤¹¤è¤Í¡£¤½¤Î¾ ɬÍפʥǥХ¤¥¹¤ä¥Õ¥¡¥¤¥ë¤òopen()¤·¤¿¤ê¡¢¥á¥â¥ê¤¬Íߤ·¤±¤ì¤Ðmalloc()¤ò¸Æ¤Ö¤ï¤±¤Ç¤¹¡£
¤Ç¡Ö¤Ü¤¯¤Ï/dev/FIFO»È¤¤¤¿¤¤¤ó¤Ç¤è¤í¤·¤¯¤Ã¡×¤Èsystem.cfg¤Ë½ñ¤¤¤È¤¯¤È ¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËÈô¤ó¤Ç¤­¤¿¤È¤­¤Ë¤Ï¡¢¤¹¤Ç¤Ëopen()ºÑ¤ß¤Ë¤Ê¤Ã¤Æ¤ë¡Ä¤Ê´¶¤¸¤Î»ÅÁȤߤǤ¹¡£ ¥ª¥Ö¥¸¥§¥¯¥Æ¥£¥Ö¤Ê½èÍý·Ï¤À¤È¤¢¤ê¤¬¤Á¤Êµ¡Ç½¤Ç¤¹¤Í¡£

¥«¡¼¥Í¥ë¤ò¥Ó¥ë¥É¤·¤è¤¦(gccÊÔ)

¥«¡¼¥Í¥ë¤ò¥Ó¥ë¥É¤·¤è¤¦(¥È¥éµ»C¡¦½©·îCÊÔ)

[ÄɲÃ.03/NOV/28]
¥«¡¼¥Í¥ë¤ò¥Ó¥ë¥É¤·¤è¤¦(SH-2/7045F¡¦½©·îgccÊÔ)
½©·î¤µ¤ó¤ÎSH-2/7045F+źÉÕgcc(Ver3·Ï¤Ç¤¹)¤Ç¤âÁ´¤¯Æ±¤¸¤è¤¦¤ËHOS¤¬Æ°¤­¤Þ¤¹¡£
¤Ê¤ó¤Èmon4.c¤È½ãÀµ¥â¥Ë¥¿¤Ë¤è¤ëȾ¥ê¥¢¥ë¥¿¥¤¥à¡¦¥·¥ó¥Ü¥ê¥Ã¥¯¥Ç¥Ð¥Ã¥°¤â²Äǽ¤Ë¡ª¡©
¤È¤ê¤¢¤¨¤ºmon4.c(SH-2ÈÇ)¤Ï¤³¤Á¤é¤Ë¤Æ¥Ð¥¤¥Ê¥ê²¾ÇÛÉÛ³«»Ï¤·¤Þ¤·¤¿¡£
¥µ¥ó¥×¥ë¤òư¤«¤·¤Æ¤ß¤ë(gccÊÔ)
¥·¥§¥ë¤Çhos-v4/sample/h83/¤Ø¹Ô¤Ã¤Æbash>make -f gcc.mak¤ò¼Â¹Ô¤·¤Æ sample.mot¤Þ¤Ç¤¤¤±¤Ð¤¤¤¤´¶¤¸¤Ç¤¹¡£3052F@25MHz+SRAM128KB¤Çư¤«¤·¤Þ¤·¤¿¤Î¤Ç ¤½¤ó¤¯¤é¤¤¤¤¤¸¤¯¤Ã¤Æsample.mot¤¬make¤Ç¤­¤¿¤é½ãÀµ¥â¥Ë¥¿¤«¤é":L sample.mot"¤Ç ":G 220200"¤Ç¤¹¡£Æ°¤­¤Þ¤·¤¿¡©
¥µ¥ó¥×¥ë¤òư¤«¤·¤Æ¤ß¤ë(¥È¥éµ»C¡¦½©·îCÊÔ)
ËܼÁŪ¤Ë¤ÏgccÈÇ¤ÈÆ±¤¸¤Ç¤¹¡£¥ê¥ó¥«¥¹¥¯¥ê¥×¥È¤Ï¤³¤ó¤Ê´¶¤¸¡£

     INPUT   crt0,vector,sample,ostimer,h8_sci,kernel_cfg
     input   $(LIBDIR)\3052F\spromsym.OBJ
     LIBRARY $(LIBDIR)\C38HA
     LIBRARY ..\..\lib\h83\mylib\h4h83aki
     DEFINE  MYSTACK(240000)
     PRINT   sample.map
     OUTPUT  sample.abs
     ROM     (D,X)
     START   VECT(0220000),P,C,D,X,B(220200)
     EXIT

¤â¤¦¤Á¤ç¤¤Æù¤Ä¤±¤Æ¤ß¤ë(LED¤Á¤«¤Á¤«ÊÔ)
¤â¤¦°ì¸Ä¡¢LED¤ò¥Á¥«¥Á¥«¤¹¤ë¥¿¥¹¥¯¤òʹԤ·¤ÆÎ®¤·¤Æ¤ß¤Þ¤¹¡£

        void
        Task2(VP_INT exinf)
        {
            for(;;) {
                PBDR |= 0x01;  /*PB0¤Ë¤Ä¤Ê¤¬¤Ã¤¿LED¤Î¾ÃÅô*/
                dly_tsk(500);  /* 500msÂԤΥ·¥¹¥Æ¥à¥³¡¼¥ë*/
                PBDR &= 0xfe;  /*PB0¤Ë¤Ä¤Ê¤¬¤Ã¤¿LED¤ÎÅÀÅô*/
                dly_tsk(500);
            }	
        }
¤³¤ó¤Ê¤ó¤òsample.c¤ËÄɲä·¤Þ¤¹¡£Task1()¤ËÂФ·¤Æ¤ä¤Ã¤Æ¤ë¤³¤È¤ò»²¹Í¤Ë¤·¤Ê¤¬¤é ¤°¤é¤¤¤Ç¤¨¤¤¤ä¤Ã¤Èmake¤¹¤ë¤È¡Ä¸µ¤Îưºî¤Ë²Ã¤¨¤ÆLED¤¬¥Á¥«¥Á¥«¤¹¤ë¤«¤Ê¤È¡£
¡ûÅöÌ̤ɤ¦¤Ç¤â¤¤¤¤¤Î¤Ç¤¹¤¬¡¢¤Þ¤¡½ñ¤¤¤Æ¤ª¤­¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¥¿¥¹¥¯¤Ï¡¢¼Â¹Ô»þ¤Ë¤âÀ¸À®¡¦ºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹(UNIX¤Ç¤¤¤¦fork();exec()¡¦kill())¡£ ¤·¤«¤·¼Â¹Ô»þ¤ËÀ¸À®¡¦ºï½ü¤ò·«¤êÊÖ¤¹¤È¥ê¥½¡¼¥¹(¼ç¤Ë¥á¥â¥ê¤Ç¤¹¤¬)¤Ë¥¬¥Ù¥Ã¥¸¤¬¤¿¤Þ¤ë²ÄǽÀ­¤¬ ¤¢¤ë¤¿¤á¡¢ÁȹþÍÑÅӤǤϡÖΩ¤Á¾å¤²»þ¤Ë¤É¤«¤Ã¤ÈÀ¸À®¤·¤ÆÅŸ»ÃǤޤǺï½ü¤·¤Ê¤¤¡×¥¹¥¿¥¤¥ë¤¬ ¿ä¾©¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¼Â¹Ô»þ¤Î¥¿¥¹¥¯À¸À®¤Ïcre_tsk()¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¹¤¬¡¢ system.cfg¤ËCRE_TSK()¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¡¢Î©¤Á¾å¤²»þ¤Ëcre_tsk()¤ò¸Æ¤Ö¥³¡¼¥É¤ò ¥³¥ó¥Õ¥£¥®¥å¥ì¡¼¥¿¤¬¼«Æ°Åª¤ËÀ¸À®¤·¤Æ¤¯¤ì¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¡¢¥æ¡¼¥¶¥×¥í¥°¥é¥à¤ËÅϤä¿»þ¤Ë¤Ïcre_tsk()¤Ï¥³¡¼¥ëºÑ¤Ç¤¹¡£¤³¤ì¤òÀÅŪÀ¸À®¤È¸À¤¦ ¤½¤¦¤Ç¤¹¡£
¥¿¥¹¥¯¤Î¾¡¢¥»¥Þ¥Õ¥©¤ä¥á¡¼¥ë¥Ü¥Ã¥¯¥¹Åù¤âƱ¤¸¤è¤¦¤Ë¾®Ê¸»ú¤Ç¥·¥¹¥Æ¥à¥³¡¼¥ë¡¢ Âçʸ»ú¤ÇÀÅŪÀ¸À®¤¬²Äǽ¤Ç¤¹¡£

¤â¤¦¤Á¤ç¤Ã¤ÈÆùÉÕ¤±¤·¤Æ¤ß¤ë(¥Ç¡¼¥¿¥­¥å¡¼ÊÔ)
¥·¥ó¥×¥ë¤Ê¥Ç¡¼¥¿¥­¥å¡¼¤ò»È¤Ã¤Æ¥¿¥¹¥¯´ÖÄÌ¿®¤ò¤ä¤Ã¤Æ¤ß¤Þ¤¹¡£UNIX¤Çsocket¤ò°·¤¨¤ëÊý¤Ê¤é´Êñ¤Ç¤·¤ç¤¦¡£
¥Ç¡¼¥¿¥­¥å¡¼¤Ç¤ÏVP_INT·¿(4¥Ð¥¤¥ÈĹ)¤Î¥Ç¡¼¥¿¤Î¤ß°·¤¨¤Þ¤¹¡£


¤¸¤ï¤¸¤ï¤¤¤¸¤¯¤Ã¤Æ¤ß¤ë(¤½¤Î¤¤¤Á)

¼¡¤Ï¡©
¤Þ¤¡¤ª¤¤¤ª¤¤Äɲ䷤Ƥ¤¤­¤Þ¤¹(^^;)¡£
»ñÎÁÊÔ

̵ÊݾڤǤ¹¡£³Æ¼«¤ÎÀÕǤ¤Ë¤ª¤¤¤Æ¤ª´ê¤¤¤·¤Þ¤¹¡£
watson8¤ËÌ䤤¹ç¤ï¤»¤ë¤è¤¦¤Ê¤³¤È¤Ï¡Ä¤ªµ¤·Ú¤Ë¤É¤¦¤¾¡£
´¶Áۤʤɤϥ᡼¥ë¤Ï¤³¤Á¤é ¤Þ¤¿¤Ï¤³¤Á¤é¤Î ¥Õ¥©¡¼¥à¤Ï¤³¤Á¤é ¤«¤é¤É¤¦¤¾¡£
¤Ä¤Ã¤³¤ß¤â¤ä¤ó¤ï¤ê¤È¤Ê¤é´¿·Þ¤·¤Þ¤¹¡£

¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¤â¤É¤ë