OSDN Git Service

git-svn-id: http://svn.osdn.jp/svnroot/mimic/trunk@28 47198e57-cb75-475f-84c4-a814cd6...
authornyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Mon, 10 Oct 2011 09:44:30 +0000 (09:44 +0000)
committernyatla <nyatla@47198e57-cb75-475f-84c4-a814cd6f29e0>
Mon, 10 Oct 2011 09:44:30 +0000 (09:44 +0000)
lib/src/NyLPC_cThread.c
lib/src/driver/uip/emac.c
lib/src/mimicvm/NyLPC_cMiMicTxtCompiler.c
lib/src/mimicvm/NyLPC_cMiMicVM.c
lib/src/mimicvm/NyLPC_cMiMicVM_protected.h

index 70e869d..08e8011 100644 (file)
@@ -68,8 +68,8 @@ void NyLPC_cThread_join(NyLPC_TcThread_t* i_inst)
 }\r
 void NyLPC_cThread_sleep(NyLPC_TUInt32 i_time_in_msec)\r
 {\r
-       vTaskDelay(i_time_in_msec);//少し待つ。\r
-\r
+       //ミリ秒単位で待つ\r
+       vTaskDelay(i_time_in_msec/portTICK_RATE_MS);\r
 }\r
 \r
 static void _task(void *pvParameters)\r
index 0d143e7..9cf9d50 100644 (file)
@@ -76,7 +76,8 @@
 #define emacPINSEL2_VALUE                      ( 0x50150105 )\r
 \r
 /* If no buffers are available, then wait this long before looking again.... */\r
-#define emacBUFFER_WAIT_DELAY  ( 3 / portTICK_RATE_MS )\r
+#define emacBUFFER_WAIT_DELAY          ( 3 / portTICK_RATE_MS )\r
+#define emacBUFFER_WAIT_EMPTY_DELAY    ( 10 / portTICK_RATE_MS )\r
 \r
 /* ...and don't look more than this many times. */\r
 #define emacBUFFER_WAIT_ATTEMPTS       ( 30 )\r
@@ -461,7 +462,8 @@ NyLPC_TUInt32 waitForTxEthFrameEmpty(void)
        //送信キューフルが解除されるまで待ち\r
        while(IndexNext == LPC_EMAC->TxConsumeIndex)\r
        {\r
-               vTaskDelay( emacBUFFER_WAIT_DELAY *100);\r
+               //\r
+               vTaskDelay(emacBUFFER_WAIT_EMPTY_DELAY);\r
        }\r
 \r
        //(TxProduceIndex+1)→TxConsumeIndexにあるデータのsentフラグを消去\r
index 5b84af9..9d8f688 100644 (file)
@@ -183,6 +183,12 @@ NyLPC_TcMiMicTxtCompiler_RET NyLPC_cMiMicBcCompiler_compileFragment(NyLPC_TcMiMi
                                                NyLPC_OnErrorGoto(ERROR);\r
                                        }\r
                                        break;\r
+                               case NyLPC_TcMiMicVM_OPR_TYPE_H08:\r
+                                       if(!txt2UInt(i_inst->tmp,2,&(wptr->h8_32.h8)))\r
+                                       {\r
+                                               NyLPC_OnErrorGoto(ERROR);\r
+                                       }\r
+                                       break;\r
                                default:\r
                                        NyLPC_OnErrorGoto(ERROR);\r
                                }\r
@@ -292,7 +298,7 @@ static NyLPC_TBool bc2opc(const NyLPC_TChar* i_char,NyLPC_TcMiMicVM_OP_TYPE* o_o
 \r
 \r
                {"ZA",NyLPC_TcMiMicVM_OP_TYPE_NOP,NyLPC_TcMiMicVM_OPR_TYPE_NONE},\r
-               {"ZB",NyLPC_TcMiMicVM_OP_TYPE_NOP,NyLPC_TcMiMicVM_OPR_TYPE_WM_H08},\r
+               {"ZB",NyLPC_TcMiMicVM_OP_TYPE_NOP,NyLPC_TcMiMicVM_OPR_TYPE_H08},\r
 \r
                {"ZZ",NyLPC_TcMiMicVM_OP_TYPE_EXIT,NyLPC_TcMiMicVM_OPR_TYPE_NONE},\r
                {NULL}\r
@@ -313,6 +319,8 @@ static NyLPC_TBool bc2opc(const NyLPC_TChar* i_char,NyLPC_TcMiMicVM_OP_TYPE* o_o
 \r
 /**\r
  * i_numバイトコードを、16進数に変換する。\r
+ * @param i_num\r
+ * 変換する文字数\r
  * @param out\r
  *\r
  */\r
@@ -377,7 +385,7 @@ static void NyLPC_TcMiMicVM_OPR_TYPE_getOpInfo(NyLPC_TcMiMicVM_OPR_TYPE i_type,N
                {NyLPC_TcMiMicVM_OPR_TYPE_WM_H16,       (1+2)*2,        2},\r
                {NyLPC_TcMiMicVM_OPR_TYPE_WM_H32,       (1+4)*2,        2},\r
                {NyLPC_TcMiMicVM_OPR_TYPE_WM,           (1)*2,          1},\r
-               {NyLPC_TcMiMicVM_OPR_TYPE_H8,           (1)*2,          1},\r
+               {NyLPC_TcMiMicVM_OPR_TYPE_H08,          (1)*2,          1},\r
                {NyLPC_TcMiMicVM_OPR_TYPE_H16,          (2)*2,          1},\r
                {NyLPC_TcMiMicVM_OPR_TYPE_H32,          (4)*2,          2},\r
                {0,0,0}\r
index 06e54fd..34e7cee 100644 (file)
@@ -229,7 +229,7 @@ static NyLPC_TUInt8 process_instruction(NyLPC_TcMiMicVM_t* i_inst,const union Ny
                        i_inst->wm[ist->wmwm_32.wm1]=i_inst->wm[ist->wmwm_32.wm2];\r
                        break;\r
                case NyLPC_TcMiMicVM_OPR_TYPE_WM_H32:\r
-                       i_inst->wm[ist->wmh32_64.wm]=i_inst->wm[ist->wmh32_64.h32];\r
+                       i_inst->wm[ist->wmh32_64.wm]=ist->wmh32_64.h32;\r
                        break;\r
                default:\r
                        NyLPC_OnErrorGoto(ERROR);\r
@@ -239,8 +239,8 @@ static NyLPC_TUInt8 process_instruction(NyLPC_TcMiMicVM_t* i_inst,const union Ny
                switch(ist->op.oprtype){\r
                case NyLPC_TcMiMicVM_OPR_TYPE_NONE:\r
                        break;\r
-               case NyLPC_TcMiMicVM_OPR_TYPE_WM_H08:\r
-                       i_inst->_event_handler->sleep(i_inst->_event_handler,ist->wmh08_32.h8);\r
+               case NyLPC_TcMiMicVM_OPR_TYPE_H08:\r
+                       i_inst->_event_handler->sleep(i_inst->_event_handler,ist->h8_32.h8);\r
                        break;\r
                default:\r
                        NyLPC_OnErrorGoto(ERROR);\r
@@ -258,7 +258,7 @@ static NyLPC_TUInt8 process_instruction(NyLPC_TcMiMicVM_t* i_inst,const union Ny
        case NyLPC_TcMiMicVM_OPR_TYPE_WM_WM:\r
        case NyLPC_TcMiMicVM_OPR_TYPE_WM_H08:\r
        case NyLPC_TcMiMicVM_OPR_TYPE_WM:\r
-       case NyLPC_TcMiMicVM_OPR_TYPE_H8:\r
+       case NyLPC_TcMiMicVM_OPR_TYPE_H08:\r
        case NyLPC_TcMiMicVM_OPR_TYPE_H16:\r
                return 1;\r
        case NyLPC_TcMiMicVM_OPR_TYPE_WM_H16:\r
index 0cb1b0b..b583e2d 100644 (file)
@@ -74,7 +74,7 @@
 #define NyLPC_TcMiMicVM_OPR_TYPE_WM_H16  0x13\r
 #define NyLPC_TcMiMicVM_OPR_TYPE_WM_H32  0x14\r
 #define NyLPC_TcMiMicVM_OPR_TYPE_WM      0x21\r
-#define NyLPC_TcMiMicVM_OPR_TYPE_H8      0x22\r
+#define NyLPC_TcMiMicVM_OPR_TYPE_H08      0x22\r
 #define NyLPC_TcMiMicVM_OPR_TYPE_H16     0x23\r
 #define NyLPC_TcMiMicVM_OPR_TYPE_H32     0x24\r
 \r