OSDN Git Service

(none)
authorryuz <ryuz>
Sun, 19 Aug 2007 10:22:39 +0000 (10:22 +0000)
committerryuz <ryuz>
Sun, 19 Aug 2007 10:22:39 +0000 (10:22 +0000)
20 files changed:
aplfw/build/common/gmake/aplfwsrc.inc
aplfw/driver/serial/at91/at91usartdrv_open.c
aplfw/driver/serial/at91/at91usartdrv_write.c
aplfw/driver/tcpip/ipether/ipether_write.c
aplfw/driver/tcpip/tcpip/tcpip_create.c
aplfw/driver/tcpip/tcpip/tcpip_local.h
aplfw/driver/tcpip/tcpip/tcpip_recv.c
aplfw/system/file/file_initialize.c
cfgrtr/build/vc60/h4acfg.dsp
cfgrtr/build/vc60/h4acfg.dsw
kernel/build/win/win32/vc60/hosv4a.dsp
kernel/build/win/win32/vc60/hosv4a.dsw
kernel/source/arch/proc/arm/arm_v4t/armcc/kfiq_hdr.s
sample/sh/sh7144/shc/startup.src
sample/win/win32/vc60/sample.dsp
sample/win/win32/vc60/sample.dsw
test/que/test_que.dsp
test/que/test_que.dsw
tools/cmtcnv/cmtcnv.dsp
tools/cmtcnv/cmtcnv.dsw

index bf245d0..02aeaa9 100755 (executable)
@@ -216,6 +216,20 @@ CSRCS         += $(PC16550_DIR)/pc16550drv_create.c                                        \
                  $(PC16550_DIR)/pc16550hal_getstatus.c
 
 
+# ARMUART (PL011)
+ARMUART_DIR    = $(APLFW_DIR)/driver/serial/arm
+SRC_DIRS      += $(ARMUART_DIR)
+CSRCS         += $(ARMUART_DIR)/armuartdrv_create.c                                    \
+                 $(ARMUART_DIR)/armuartdrv_delete.c                                    \
+                 $(ARMUART_DIR)/armuartdrv_open.c                                      \
+                 $(ARMUART_DIR)/armuartdrv_close.c                                     \
+                 $(ARMUART_DIR)/armuartdrv_iocontrol.c                         \
+                 $(ARMUART_DIR)/armuartdrv_seek.c                                      \
+                 $(ARMUART_DIR)/armuartdrv_read.c                                      \
+                 $(ARMUART_DIR)/armuartdrv_write.c                                     \
+                 $(ARMUART_DIR)/armuartdrv_flush.c                                     \
+                 $(ARMUART_DIR)/armuartdrv_isr.c                                       \
+
 
 
 # --------------------------------------------------
@@ -256,4 +270,11 @@ SRC_DIRS      += $(KEYTEST_DIR)
 CSRCS         += $(KEYTEST_DIR)/keytest_main.c
 
 
+# Ether Snoopt
+ETHERSNOOP_DIR = $(APLFW_DIR)/application/netcmd/ethersnoop
+SRC_DIRS      += $(ETHERSNOOP_DIR)
+CSRCS         += $(ETHERSNOOP_DIR)/ethersnoop_main.c
+
+
+
 # end of file
index 74d4b15..76c0d20 100755 (executable)
@@ -32,13 +32,16 @@ HANDLE At91UsartDrv_Open(C_DRVOBJ *pDrvObj, const char *pszPath, int iMode)
        /* オープン処理 */
        if ( self->iOpenCount++ == 0 )
        {
+               AT91USART_REG_WRITE(self, AT91USART_US_CR,   0x0000010c);       /* reset */
+
+               AT91USART_REG_WRITE(self, AT91USART_US_BRGR, 0x00000034);
                AT91USART_REG_WRITE(self, AT91USART_US_MR,   0x000008c0);       /* 8bit, non-paroty */
                AT91USART_REG_WRITE(self, AT91USART_US_CR,   0x00000050);       /* enable */
-               AT91USART_REG_WRITE(self, AT91USART_US_BRGR, 0x00000034);
-
+               AT91USART_REG_WRITE(self, AT91USART_US_IER,  0x00000001);       /* 受信割り込み許可 */          
+               
                SysInt_Enable(self->iIntNum);
        }
-
+       
        return (HANDLE)pChrFile;
 }
 
index b17bdc0..6a96b06 100755 (executable)
@@ -51,7 +51,7 @@ FILE_SIZE At91UsartDrv_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void
                AT91USART_REG_WRITE(self, AT91USART_US_THR, c);
        }
 loop_end:
-
+       
        /* クリティカルセクションを出る */
        SysMtx_Unlock(self->hMtxSend);
 
index 9256503..f538114 100755 (executable)
@@ -11,6 +11,7 @@
 
 #include <string.h>
 #include "ipether_local.h"
+#include "library/algorithm/ipchecksum/ipchecksum.h"
 
 
 /* IPパケット送信 */
@@ -22,6 +23,8 @@ FILE_SIZE IpEther_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pDat
        unsigned char           *pubSendBuf;
        unsigned char           ubMacAddr[6];
        int                                     iPacketSize;
+       C_IPCHECKSUM            ics;
+       unsigned short          uhSum;
        
        /* upper cast */
        self = (C_IPETHER *)pDrvObj;
@@ -69,9 +72,38 @@ FILE_SIZE IpEther_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pDat
        pubSendBuf[12] = 0x08;
        pubSendBuf[13] = 0x00;
        
-       /* IPデータグラム */
+       
+       /* IPデータグラムコピー */
        memcpy(&pubSendBuf[14], pubData, Size);
        
+       /* データ長 */
+       pubSendBuf[14 + 2] = (unsigned char)((Size >> 8) & 0xff);       
+       pubSendBuf[14 + 3] = (unsigned char)((Size >> 0) & 0xff);
+       
+       /* フラグメント */
+       pubSendBuf[6] = 0x00;
+       pubSendBuf[7] = 0x00;
+       
+       /* IPチェックサム */
+       pubSendBuf[14 + 10] = 0x00;
+       pubSendBuf[14 + 11] = 0x00;
+                       
+       /* 自IPアドレス */
+       pubSendBuf[14 + 12] = self->ubMyIpAddr[0];
+       pubSendBuf[14 + 13] = self->ubMyIpAddr[1];
+       pubSendBuf[14 + 14] = self->ubMyIpAddr[2];
+       pubSendBuf[14 + 15] = self->ubMyIpAddr[3];
+       
+       
+       /* IPヘッダ部のチェックサム計算 */
+       IpCheckSum_Create(&ics);
+       IpCheckSum_Update(&ics, &pubSendBuf[14], (pubSendBuf[14 + 0] & 0x0f) * 4);
+       uhSum = IpCheckSum_GetDigest(&ics);
+       IpCheckSum_Delete(&ics);
+       pubSendBuf[14 + 10] =uhSum / 256;
+       pubSendBuf[14 + 11] =uhSum % 256;
+       
+       
        /* パディング */
        iPacketSize = Size + 14;
        while ( iPacketSize < 60 )
index 30cae7c..df63eaa 100755 (executable)
 /* 仮想関数テーブル */
 static const T_DRVOBJ_METHODS TcpIp_Methods = 
        {
-               0,
-/*             Tcpip_Delete,
+               Tcpip_Delete,
                Tcpip_Open,
                Tcpip_Close,
                Tcpip_IoControl,
                Tcpip_Seek,
                Tcpip_Read,
                Tcpip_Write,
-               Tcpip_Flush,*/
+               Tcpip_Flush,
        };
 
 
@@ -32,8 +31,8 @@ static const T_DRVOBJ_METHODS TcpIp_Methods =
 void Tcpip_Create(C_TCPIP *self, HANDLE hIp)
 {
        /* 親クラスコンストラクタ呼び出し */
-//     ChrDrv_Create(&self->ChrDrv, &IpEther_Methods);
-
+       ChrDrv_Create(&self->ChrDrv, &TcpIp_Methods);
+       
        /* メンバ変数初期化 */
        self->iOpenCount = 0;
        self->hIp        = hIp;
index 272526e..97b9fe6 100755 (executable)
 
 
 #include "tcpip.h"
+#include "system/file/chrfile.h"
+#include "library/container/stmbuf/stmbuf.h"
+
+
+#define TCP_FLAG_FIN                   0x01
+#define TCP_FLAG_SYN                   0x02
+#define TCP_FLAG_RST                   0x04
+#define TCP_FLAG_PSH                   0x08
+#define TCP_FLAG_ACK                   0x10
+#define TCP_FLAG_URG                   0x20
+
+
+#define TCPIPFILE_TYPE_TCP             6
+#define TCPIPFILE_TYPE_UDP             17
+
+#define TCPIPFILE_RECV_BUFSIZE 2048
+
+
+typedef struct c_tcpipfile
+{
+       C_CHRFILE                       ChrFile;                /* キャラクタ型ファイルオブジェクトを継承 */
+
+       char                            iType;
+       unsigned char           ubIpAddr[4];
+       unsigned short          uhPortNum;
+       
+       struct c_tcpipfile      *pNext;
+       struct c_tcpipfile      *pPrev;
+       
+       C_STREAMBUF                     RecvBuf;
+       unsigned char           ubRecvBuf[TCPIPFILE_RECV_BUFSIZE];
+       
+} C_TCPIPFILE;
+
 
 
 #ifdef __cplusplus
@@ -28,7 +62,10 @@ FILE_SIZE Tcpip_Read(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, void *pBuf, FILE_SI
 FILE_SIZE Tcpip_Write(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj, const void *pData, FILE_SIZE Size);
 FILE_ERR  Tcpip_Flush(C_DRVOBJ *pDrvObj, C_FILEOBJ *pFileObj);
 
-void      Tcpip_Recv(VPARAM Param);                                                                                                                                                    /* 受信プロセス */
+int       Tcpip_GetSendBuf(C_TCPIP *self, void **ppBuf);               /* IPデータグラム送信バッファ取得 */
+void      Tcpip_SendBuf(C_TCPIP *self, void **ppBuf);                  /* IPデータグラムバッファ送信 */
+void      Tcpip_Recv(VPARAM Param);                                                            /* IPパケット受信プロセス */
+
 
 #ifdef __cplusplus
 }
index 855cb53..32f3d71 100755 (executable)
 
 #include <string.h>
 #include "tcpip_local.h"
+#include "library/algorithm/ipchecksum/ipchecksum.h"
 
 
-static void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize);
+
+void Tcpip_IcmpRecv(C_TCPIP *self, const unsigned char *pubBuf, int iSize);
+
+
+
+void Tcpip_TcpRecv(C_TCPIP *self, const unsigned char *pubBuf, int iSize)
+{
+       const unsigned char *pubRecvTcp;
+       unsigned short          uhMyPort;
+       unsigned short          uhYourPort;
+
+       pubRecvTcp = &pubBuf[20];
+       
+       uhYourPort = (pubRecvTcp[0] << 8) + pubRecvTcp[1];
+       uhMyPort   = (pubRecvTcp[2] << 8) + pubRecvTcp[3];
+       
+       if ( pubRecvTcp[13] == TCP_FLAG_SYN )
+       {
+               unsigned long   uwSeqNum;
+               unsigned char   *pubSendBuf;
+               unsigned char   *pubSendTcp;
+               C_IPCHECKSUM    ics;
+               
+               pubSendBuf = self->ubSendBuf;
+               pubSendTcp = &pubSendBuf[20];
+               
+               
+               /******** IPヘッダ ********/
+               
+               /* バージョン4, ヘッダ長 0x14 */
+               pubSendBuf[0] = 0x45;
+               
+               /* 優先度, サービスタイプ */  
+               pubSendBuf[1] = 0x00;
+               
+               /* データ長 */
+               pubSendBuf[2] = iSize / 256;
+               pubSendBuf[3] = iSize % 256;
+               
+               /* ID */
+               pubSendBuf[4] = self->uhPacketId / 256;
+               pubSendBuf[5] = self->uhPacketId % 256;
+               self->uhPacketId++;
+               
+               /* フラグメント */
+               pubSendBuf[6] = 0x00;
+               pubSendBuf[7] = 0x00;
+               
+               /* TTL */
+               pubSendBuf[8] = 0xff;
+               
+               /* プロトコル */
+               pubSendBuf[9] = 0x06;   /* TCP */
+               
+               /* 送信元IPアドレス */
+               memcpy(&pubSendBuf[12],  &pubBuf[16], 4);
+
+               /* 送信先IPアドレス */
+               memcpy(&pubSendBuf[16],  &pubBuf[12], 4);
+               
+               
+               
+               /******** TCP ********/
+               /*
+
+               pubSendTcp[0] = 0x00;
+
+               IP_SET_HALFWORD(&pubRecvTcp[0], uhMyPort);
+               IP_SET_HALFWORD(&pubRecvTcp[2], uhYourPort);
+               
+               uwSeqNum = IP_GET_WORD(&pubRecvTcp[4]);
+               IpCheckSum_Create(&ics);
+               IpCheckSum_Update(&ics, &pubSendBuf[20], iSize - 20);
+               uhSum = IpCheckSum_GetDigest(&ics);
+               IpCheckSum_Delete(&ics);
+               */
+       }
+}
+
+
+void Tcpip_UdpRecv(C_TCPIP *self, const unsigned char *pubBuf, int iSize)
+{
+       
+}
 
 
 /* 受信プロセス */
@@ -31,7 +115,7 @@ void Tcpip_Recv(VPARAM Param)
        for ( ; ; )
        {
                /* 受信 */
-               if ( (iSize = File_Read(self->hIp, pubRecvBuf, 2048)) < 10 )
+               if ( (iSize = File_Read(self->hIp, pubRecvBuf, 2048)) < 20 )
                {
                        continue;
                }
@@ -40,21 +124,32 @@ void Tcpip_Recv(VPARAM Param)
                switch ( pubRecvBuf[9] )
                {
                case 0x01:      /* ICMP */
-                       Tcpip_RecvIcmp(self, pubRecvBuf, iSize);
+                       Tcpip_IcmpRecv(self, pubRecvBuf, iSize);
+                       break;
+
+               case 0x06:      /* TCP */
+                       Tcpip_TcpRecv(self, pubRecvBuf, iSize);
+                       break;
+
+               case 0x11:      /* UDP */
+                       Tcpip_UdpRecv(self, pubRecvBuf, iSize);
                        break;
                }
        }
 }
 
-void Tcpip_SetIpCheckSum(unsigned char *pubBuf);
 
-
-void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize)
+void Tcpip_IcmpRecv(C_TCPIP *self, const unsigned char *pubBuf, int iSize)
 {
+       C_IPCHECKSUM    ics;
+       unsigned short  uhSum;
        unsigned char   *pubSendBuf;
        
        pubSendBuf = self->ubSendBuf;
        
+       
+       /******** IPヘッダ ********/
+       
        /* バージョン4, ヘッダ長 0x14 */
        pubSendBuf[0] = 0x45;
        
@@ -69,7 +164,7 @@ void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize)
        pubSendBuf[4] = self->uhPacketId / 256;
        pubSendBuf[5] = self->uhPacketId % 256;
        self->uhPacketId++;
-
+       
        /* フラグメント */
        pubSendBuf[6] = 0x00;
        pubSendBuf[7] = 0x00;
@@ -78,7 +173,7 @@ void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize)
        pubSendBuf[8] = 0xff;
        
        /* プロトコル */
-       pubSendBuf[9] = 0x01;
+       pubSendBuf[9] = 0x01;   /* ICMP */
        
        /* 送信元IPアドレス */
        memcpy(&pubSendBuf[12],  &pubBuf[16], 4);
@@ -86,6 +181,10 @@ void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize)
        /* 送信先IPアドレス */
        memcpy(&pubSendBuf[16],  &pubBuf[12], 4);
        
+       
+       
+       /******** ICMP ********/
+       
        /* タイプ */
        pubSendBuf[20] = 0x00;
 
@@ -107,49 +206,18 @@ void Tcpip_RecvIcmp(C_TCPIP *self, unsigned char *pubBuf, int iSize)
        /* データ */
        memcpy(&pubSendBuf[28], &pubBuf[28], iSize - 28);
        
-       {
-               unsigned long   uwSum;
-               int                             i;
-       
-               uwSum = 0;
-               for ( i = 0; i < iSize - 20; i++ )
-               {
-                       uwSum += (unsigned short)(pubSendBuf[20 + i*2]*256 + pubSendBuf[20 + i*2 + 1]);
-               }
-               uwSum  = (uwSum & 0xffff) + (uwSum >> 16);
-               uwSum  = (uwSum & 0xffff) + (uwSum >> 16);
-               uwSum  = (~uwSum & 0xffff);
-               
-               pubSendBuf[22] = ((uwSum >> 8) & 0xff);
-               pubSendBuf[23] = (uwSum & 0xff);
-       }
-       
-       Tcpip_SetIpCheckSum(pubSendBuf);
-       
-       File_Write(self->hIp, pubSendBuf, iSize);
-}
+       /* ICPM部のチェックサム計算 */
+       IpCheckSum_Create(&ics);
+       IpCheckSum_Update(&ics, &pubSendBuf[20], iSize - 20);
+       uhSum = IpCheckSum_GetDigest(&ics);
+       IpCheckSum_Delete(&ics);
 
-
-
-void Tcpip_SetIpCheckSum(unsigned char *pubBuf)
-{
-       unsigned long   uwSum;
-       int                             i;
+       pubSendBuf[22] = uhSum / 256;
+       pubSendBuf[23] = uhSum % 256;
        
-       pubBuf[10] = 0x00;
-       pubBuf[11] = 0x00;
        
-       uwSum = 0;
-       for ( i = 0; i < 10; i++ )
-       {
-               uwSum += (unsigned short)(pubBuf[i*2]*256 + pubBuf[i*2 + 1]);
-       }
-       uwSum  = (uwSum & 0xffff) + (uwSum >> 16);
-       uwSum  = (uwSum & 0xffff) + (uwSum >> 16);
-       uwSum  = (~uwSum & 0xffff);
-       
-       pubBuf[10] = ((uwSum >> 8) & 0xff);
-       pubBuf[11] = (uwSum & 0xff);
+       /* 送信 */    
+       File_Write(self->hIp, pubSendBuf, iSize);
 }
 
 
index 6f1616d..b64c103 100755 (executable)
@@ -10,6 +10,7 @@
 
 
 #include "file_local.h"
+#include "sysvol.h"
 
 
 C_FILE  g_File;
index 83c1eb6..ea622c4 100755 (executable)
@@ -1,21 +1,19 @@
 # Microsoft Developer Studio Project File - Name="h4acfg" - Package Owner=<4>\r
 # Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+# ** \95ÿÿW\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**\r
 \r
 # TARGTYPE "Win32 (x86) Console Application" 0x0103\r
 \r
 CFG=h4acfg - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
+!MESSAGE \82ÿÿÿÿÿÿL\8cÿÿ\94Ð\89\96¥\89×\82ÿÿÿÿ \82ÿÿÿÿÿÿÿÿB \82ÿÿ\96Êàz\8eÜ\85¶ÿÿèÉ\9f×\92Ü\82ÿÿÿÿÿÿÿÿÿÿÿÿNMAKE \82ð\8eg\97p\82ÿÿÿÿÿÿÿÿÿÿÿÿB\r
+!MESSAGE [\99°\8cÊ\84Qÿÿ\96²\8c»\97Ý\88Â] \8dÍ\9fcÿÿð\8eg\97p\82ÿÿÄ\8eÿÿs\82ÿÿÿÿÿÿÿÿÿÿÿÿ!MESSAGE \r
 !MESSAGE NMAKE /f "h4acfg.mak".\r
 !MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE NMAKE \82Ì\8eÿÿs\8e\9e\82ÿÿ\\90ÿÿð\8ew\92ÿÿÿÿÿÿÿÿÿÿ!MESSAGE \8dÍ\9fcÿÿ\9cQÿÿÿÿ\93n\8cÙ\82ÿÿÿÿÿÿÿÿÿÿ`\82ÿÿÿÿÿÿB\97ÿÿ\r
 !MESSAGE \r
 !MESSAGE NMAKE /f "h4acfg.mak" CFG="h4acfg - Win32 Debug"\r
 !MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \91I\91ÿÿÿÿ\\82\94É\9f×\92Ü \9aO\92Ü:\r
 !MESSAGE \r
 !MESSAGE "h4acfg - Win32 Release" ("Win32 (x86) Console Application" \97p)\r
 !MESSAGE "h4acfg - Win32 Debug" ("Win32 (x86) Console Application" \97p)\r
index 8b20e73..d21714b 100755 (executable)
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+# \8cx\8d\90\82ÿÿ\96Ú\88\8flàOÿÿ\96¥\89× \82ÿÿÿÿW\82ÿÿÿÿÿÿÿÿ\9c\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r
 \r
 ###############################################################################\r
 \r
index a1f7354..f2a2f55 100755 (executable)
@@ -1,21 +1,19 @@
 # Microsoft Developer Studio Project File - Name="hosv4a" - Package Owner=<4>\r
 # Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+# ** \95ÿÿW\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**\r
 \r
 # TARGTYPE "Win32 (x86) Static Library" 0x0104\r
 \r
 CFG=hosv4a - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
+!MESSAGE \82ÿÿÿÿÿÿL\8cÿÿ\94Ð\89\96¥\89×\82ÿÿÿÿ \82ÿÿÿÿÿÿÿÿB \82ÿÿ\96Êàz\8eÜ\85¶ÿÿèÉ\9f×\92Ü\82ÿÿÿÿÿÿÿÿÿÿÿÿNMAKE \82ð\8eg\97p\82ÿÿÿÿÿÿÿÿÿÿÿÿB\r
+!MESSAGE [\99°\8cÊ\84Qÿÿ\96²\8c»\97Ý\88Â] \8dÍ\9fcÿÿð\8eg\97p\82ÿÿÄ\8eÿÿs\82ÿÿÿÿÿÿÿÿÿÿÿÿ!MESSAGE \r
 !MESSAGE NMAKE /f "hosv4a.mak".\r
 !MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE NMAKE \82Ì\8eÿÿs\8e\9e\82ÿÿ\\90ÿÿð\8ew\92ÿÿÿÿÿÿÿÿÿÿ!MESSAGE \8dÍ\9fcÿÿ\9cQÿÿÿÿ\93n\8cÙ\82ÿÿÿÿÿÿÿÿÿÿ`\82ÿÿÿÿÿÿB\97ÿÿ\r
 !MESSAGE \r
 !MESSAGE NMAKE /f "hosv4a.mak" CFG="hosv4a - Win32 Debug"\r
 !MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \91I\91ÿÿÿÿ\\82\94É\9f×\92Ü \9aO\92Ü:\r
 !MESSAGE \r
 !MESSAGE "hosv4a - Win32 Release" ("Win32 (x86) Static Library" \97p)\r
 !MESSAGE "hosv4a - Win32 Debug" ("Win32 (x86) Static Library" \97p)\r
index 45b7d32..a7b747e 100755 (executable)
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+# \8cx\8d\90\82ÿÿ\96Ú\88\8flàOÿÿ\96¥\89× \82ÿÿÿÿW\82ÿÿÿÿÿÿÿÿ\9c\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r
 \r
 ###############################################################################\r
 \r
index 8d99293..2676da6 100755 (executable)
@@ -71,7 +71,7 @@ _kernel_fiq_hdr
                        ; ---- 割込みマスク値復帰処理
                                ldr             r1, [sp, #4]                                                    ; spsr_fiq 値取り出し
                                and             r1, r1, #F_Bit:OR:I_Bit
-                               cmp             r1, r3                                                                  ; 旧imsk値と比較
+                               cmp             r1, r3                                                                  ; 旧imsk値と比較(IRQ処理前のFIQ発生をケアする)
                                bne             return_int                                                              ; 不一致なら終了処理スキップ
                                strb    r3, [r0, #ICTXCB_IMSK]                                  ; マスク値復帰
                                
index 3c25a77..eba20fe 100755 (executable)
@@ -8,7 +8,7 @@
                                .SECTION        P, CODE, ALIGN=4
 _ResetHandler: 
                                mov.l   addr_VECTTBL, r1
-                               ldc             r1, VBR
+       ;                       ldc             r1, VBR
                                mov.l   addr_INITSCT, r0
                                jsr             @r0
                                nop
index 32e4d09..30efba5 100755 (executable)
@@ -1,21 +1,19 @@
 # Microsoft Developer Studio Project File - Name="sample" - Package Owner=<4>\r
 # Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+# ** \95ÿÿW\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**\r
 \r
 # TARGTYPE "Win32 (x86) Console Application" 0x0103\r
 \r
 CFG=sample - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
+!MESSAGE \82ÿÿÿÿÿÿL\8cÿÿ\94Ð\89\96¥\89×\82ÿÿÿÿ \82ÿÿÿÿÿÿÿÿB \82ÿÿ\96Êàz\8eÜ\85¶ÿÿèÉ\9f×\92Ü\82ÿÿÿÿÿÿÿÿÿÿÿÿNMAKE \82ð\8eg\97p\82ÿÿÿÿÿÿÿÿÿÿÿÿB\r
+!MESSAGE [\99°\8cÊ\84Qÿÿ\96²\8c»\97Ý\88Â] \8dÍ\9fcÿÿð\8eg\97p\82ÿÿÄ\8eÿÿs\82ÿÿÿÿÿÿÿÿÿÿÿÿ!MESSAGE \r
 !MESSAGE NMAKE /f "sample.mak".\r
 !MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE NMAKE \82Ì\8eÿÿs\8e\9e\82ÿÿ\\90ÿÿð\8ew\92ÿÿÿÿÿÿÿÿÿÿ!MESSAGE \8dÍ\9fcÿÿ\9cQÿÿÿÿ\93n\8cÙ\82ÿÿÿÿÿÿÿÿÿÿ`\82ÿÿÿÿÿÿB\97ÿÿ\r
 !MESSAGE \r
 !MESSAGE NMAKE /f "sample.mak" CFG="sample - Win32 Debug"\r
 !MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \91I\91ÿÿÿÿ\\82\94É\9f×\92Ü \9aO\92Ü:\r
 !MESSAGE \r
 !MESSAGE "sample - Win32 Release" ("Win32 (x86) Console Application" \97p)\r
 !MESSAGE "sample - Win32 Debug" ("Win32 (x86) Console Application" \97p)\r
index 6e8d891..aa625a5 100755 (executable)
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+# \8cx\8d\90\82ÿÿ\96Ú\88\8flàOÿÿ\96¥\89× \82ÿÿÿÿW\82ÿÿÿÿÿÿÿÿ\9c\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r
 \r
 ###############################################################################\r
 \r
index 30097b5..0cc40a3 100755 (executable)
@@ -1,21 +1,19 @@
 # Microsoft Developer Studio Project File - Name="test_que" - Package Owner=<4>\r
 # Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+# ** \95ÿÿW\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**\r
 \r
 # TARGTYPE "Win32 (x86) Console Application" 0x0103\r
 \r
 CFG=test_que - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
+!MESSAGE \82ÿÿÿÿÿÿL\8cÿÿ\94Ð\89\96¥\89×\82ÿÿÿÿ \82ÿÿÿÿÿÿÿÿB \82ÿÿ\96Êàz\8eÜ\85¶ÿÿèÉ\9f×\92Ü\82ÿÿÿÿÿÿÿÿÿÿÿÿNMAKE \82ð\8eg\97p\82ÿÿÿÿÿÿÿÿÿÿÿÿB\r
+!MESSAGE [\99°\8cÊ\84Qÿÿ\96²\8c»\97Ý\88Â] \8dÍ\9fcÿÿð\8eg\97p\82ÿÿÄ\8eÿÿs\82ÿÿÿÿÿÿÿÿÿÿÿÿ!MESSAGE \r
 !MESSAGE NMAKE /f "test_que.mak".\r
 !MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE NMAKE \82Ì\8eÿÿs\8e\9e\82ÿÿ\\90ÿÿð\8ew\92ÿÿÿÿÿÿÿÿÿÿ!MESSAGE \8dÍ\9fcÿÿ\9cQÿÿÿÿ\93n\8cÙ\82ÿÿÿÿÿÿÿÿÿÿ`\82ÿÿÿÿÿÿB\97ÿÿ\r
 !MESSAGE \r
 !MESSAGE NMAKE /f "test_que.mak" CFG="test_que - Win32 Debug"\r
 !MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \91I\91ÿÿÿÿ\\82\94É\9f×\92Ü \9aO\92Ü:\r
 !MESSAGE \r
 !MESSAGE "test_que - Win32 Release" ("Win32 (x86) Console Application" \97p)\r
 !MESSAGE "test_que - Win32 Debug" ("Win32 (x86) Console Application" \97p)\r
index f55812e..422b6d8 100755 (executable)
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+# \8cx\8d\90\82ÿÿ\96Ú\88\8flàOÿÿ\96¥\89× \82ÿÿÿÿW\82ÿÿÿÿÿÿÿÿ\9c\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r
 \r
 ###############################################################################\r
 \r
index b6aba36..565ddff 100755 (executable)
@@ -1,21 +1,19 @@
 # Microsoft Developer Studio Project File - Name="cmtcnv" - Package Owner=<4>\r
 # Microsoft Developer Studio Generated Build File, Format Version 6.00\r
-# ** \95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢ **\r
+# ** \95ÿÿW\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**\r
 \r
 # TARGTYPE "Win32 (x86) Console Application" 0x0103\r
 \r
 CFG=cmtcnv - Win32 Debug\r
-!MESSAGE \82±\82ê\82Í\97L\8cø\82ÈÒ²¸Ì§²Ù\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81\82±\82ÌÌßÛ¼Þª¸Ä\82ðËÞÙÄÞ\82·\82é\82½\82ß\82É\82Í NMAKE \82ð\8eg\97p\82µ\82Ä\82­\82¾\82³\82¢\81B\r
-!MESSAGE [Ò²¸Ì§²Ù\82Ì´¸½Îß°Ä] ºÏÝÄÞ\82ð\8eg\97p\82µ\82Ä\8eÀ\8ds\82µ\82Ä\82­\82¾\82³\82¢\r
-!MESSAGE \r
+!MESSAGE \82ÿÿÿÿÿÿL\8cÿÿ\94Ð\89\96¥\89×\82ÿÿÿÿ \82ÿÿÿÿÿÿÿÿB \82ÿÿ\96Êàz\8eÜ\85¶ÿÿèÉ\9f×\92Ü\82ÿÿÿÿÿÿÿÿÿÿÿÿNMAKE \82ð\8eg\97p\82ÿÿÿÿÿÿÿÿÿÿÿÿB\r
+!MESSAGE [\99°\8cÊ\84Qÿÿ\96²\8c»\97Ý\88Â] \8dÍ\9fcÿÿð\8eg\97p\82ÿÿÄ\8eÿÿs\82ÿÿÿÿÿÿÿÿÿÿÿÿ!MESSAGE \r
 !MESSAGE NMAKE /f "cmtcnv.mak".\r
 !MESSAGE \r
-!MESSAGE NMAKE \82Ì\8eÀ\8ds\8e\9e\82É\8d\\90¬\82ð\8ew\92è\82Å\82«\82Ü\82·\r
-!MESSAGE ºÏÝÄޠײÝ\8fã\82ÅϸÛ\82Ì\90Ý\92è\82ð\92è\8b`\82µ\82Ü\82·\81B\97á:\r
+!MESSAGE NMAKE \82Ì\8eÿÿs\8e\9e\82ÿÿ\\90ÿÿð\8ew\92ÿÿÿÿÿÿÿÿÿÿ!MESSAGE \8dÍ\9fcÿÿ\9cQÿÿÿÿ\93n\8cÙ\82ÿÿÿÿÿÿÿÿÿÿ`\82ÿÿÿÿÿÿB\97ÿÿ\r
 !MESSAGE \r
 !MESSAGE NMAKE /f "cmtcnv.mak" CFG="cmtcnv - Win32 Debug"\r
 !MESSAGE \r
-!MESSAGE \91I\91ð\89Â\94\\82ÈËÞÙÄÞ Ó°ÄÞ:\r
+!MESSAGE \91I\91ÿÿÿÿ\\82\94É\9f×\92Ü \9aO\92Ü:\r
 !MESSAGE \r
 !MESSAGE "cmtcnv - Win32 Release" ("Win32 (x86) Console Application" \97p)\r
 !MESSAGE "cmtcnv - Win32 Debug" ("Win32 (x86) Console Application" \97p)\r
index 51caa6b..c2a0f06 100755 (executable)
@@ -1,5 +1,5 @@
 Microsoft Developer Studio Workspace File, Format Version 6.00\r
-# \8cx\8d\90\82±\82ÌÜ°¸½Íß°½ Ì§²Ù \82ð\95Ò\8fW\82Ü\82½\82Í\8dí\8f\9c\82µ\82È\82¢\82Å\82­\82¾\82³\82¢!\r
+# \8cx\8d\90\82ÿÿ\96Ú\88\8flàOÿÿ\96¥\89× \82ÿÿÿÿW\82ÿÿÿÿÿÿÿÿ\9c\82ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\r
 \r
 ###############################################################################\r
 \r