]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Starting 'hcs12x' branch
authorjoek <devnull@localhost>
Fri, 22 Oct 2010 09:22:47 +0000 (11:22 +0200)
committerjoek <devnull@localhost>
Fri, 22 Oct 2010 09:22:47 +0000 (11:22 +0200)
13 files changed:
arch/hc1x/hcs12d/drivers/Dio.c
arch/hc1x/hcs12d/drivers/Port.c
arch/hc1x/hcs12d/kernel/arch.c
arch/hc1x/hcs12d/kernel/arch_krn.sx
arch/hc1x/hcs12d/kernel/context.h
arch/hc1x/hcs12d/kernel/context.sx
arch/hc1x/hcs12d/scripts/linkscript_gcc.ldf
boards/board_common.mk
boards/hcs12_elmicro_card12/memory.ldf
common/newlib_port.c
common/printf.c
scripts/rules.mk
system/kernel/makefile

index 74fc0432246396c7b41ec3854b0fe6a68cb6d8a6..032e4d4bd42613484b7a0aa3c4b34b41f70872b3 100644 (file)
@@ -115,7 +115,10 @@ Dio_LevelType Dio_ReadChannel(Dio_ChannelType channelId)
                level = STD_LOW;\r
        }\r
 \r
-       cleanup: return (level);\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+       cleanup:\r
+#endif\r
+       return (level);\r
 }\r
 \r
 void Dio_WriteChannel(Dio_ChannelType channelId, Dio_LevelType level)\r
@@ -133,7 +136,10 @@ void Dio_WriteChannel(Dio_ChannelType channelId, Dio_LevelType level)
 \r
        Dio_WritePort(DIO_GET_PORT_FROM_CHANNEL_ID(channelId), portVal);\r
 \r
-       cleanup: return;\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+       cleanup:\r
+#endif\r
+       return;\r
 }\r
 \r
 Dio_PortLevelType Dio_ReadPort(Dio_PortType portId)\r
@@ -152,7 +158,10 @@ Dio_PortLevelType Dio_ReadPort(Dio_PortType portId)
        else if(portId == DIO_PORT_T){level = PTT;}\r
        else if(portId == DIO_PORT_H){level = PTH;}\r
 \r
-       cleanup: return level;\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+       cleanup:\r
+#endif\r
+       return level;\r
 }\r
 \r
 void Dio_WritePort(Dio_PortType portId, Dio_PortLevelType level)\r
@@ -170,7 +179,10 @@ void Dio_WritePort(Dio_PortType portId, Dio_PortLevelType level)
        else if(portId == DIO_PORT_T){PTT = level;}\r
        else if(portId == DIO_PORT_H){PTH = level;}\r
 \r
-    cleanup: return;\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+    cleanup:\r
+#endif\r
+    return;\r
 }\r
 \r
 Dio_PortLevelType Dio_ReadChannelGroup(\r
@@ -185,7 +197,10 @@ Dio_PortLevelType Dio_ReadChannelGroup(
        // Shift down\r
        level = level >> channelGroupIdPtr->offset;\r
 \r
-       cleanup: return level;\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+       cleanup:\r
+#endif\r
+       return level;\r
 }\r
 \r
 void Dio_WriteChannelGroup(const Dio_ChannelGroupType *channelGroupIdPtr,\r
@@ -204,5 +219,8 @@ void Dio_WriteChannelGroup(const Dio_ChannelGroupType *channelGroupIdPtr,
 \r
        Dio_WritePort(channelGroupIdPtr->port, portVal);\r
 \r
-       cleanup: return;\r
+#if ( DIO_DEV_ERROR_DETECT == STD_ON )\r
+       cleanup:\r
+#endif\r
+       return;\r
 }\r
index 55f8e9d280b95edf5bb3b11d2339ba32112b6f99..9045ff95bc09878d618ecdf7eae94ad4b2e75c69 100644 (file)
@@ -162,7 +162,10 @@ void Port_Init(const Port_ConfigType *configType)
 \r
     _portState = PORT_INITIALIZED;\r
     _configPtr = configType;\r
-    cleanup: return;\r
+#if (PORT_DEV_ERROR_DETECT == STD_ON)\r
+    cleanup:\r
+#endif\r
+    return;\r
 }\r
 \r
 /** @req PORT141 */\r
@@ -327,7 +330,10 @@ void Port_RefreshPortDirection(void)
     DDRT = curValue;\r
 #endif\r
 \r
-    cleanup: return;\r
+#if (PORT_DEV_ERROR_DETECT == STD_ON)\r
+    cleanup:\r
+#endif\r
+    return;\r
 }\r
 \r
 /** req PORT143 */\r
index a072cf053f6e27e69c9f22a7556d61f57d1b1043..0252a9e8a228b52e6800554800193ce733ad6c4d 100644 (file)
@@ -59,17 +59,21 @@ void Os_ArchSetupContext( OsPcbType *pcb ) {
  */\r
 \r
 void Os_ArchSetTaskEntry(OsPcbType *pcbPtr ) {\r
-       uint16_t *context_words = (uint16_t *)pcbPtr->stack.curr;\r
        uint8_t *context_bytes = (uint8_t *)pcbPtr->stack.curr;\r
+       uint16_t temp;\r
 \r
        /* Set Return to start function */\r
 \r
        context_bytes[8] = OS_KERNEL_CODE_PPAGE;\r
 \r
        if( pcbPtr->proc_type == PROC_EXTENDED ) {\r
-               context_words[8] = (uint16_t)Os_TaskStartExtended;\r
+               temp = (uint16_t)Os_TaskStartExtended;\r
+               context_bytes[HIGH_BYTE_RETURN_ADRESS] = temp >> 8;\r
+               context_bytes[LOW_BYTE_RETURN_ADRESS] = temp & 0xFF;\r
        } else if( pcbPtr->proc_type == PROC_BASIC ) {\r
-               context_words[8] = (uint16_t)Os_TaskStartBasic;\r
+               temp = (uint16_t)Os_TaskStartBasic;\r
+               context_bytes[HIGH_BYTE_RETURN_ADRESS] = temp >> 8;\r
+               context_bytes[LOW_BYTE_RETURN_ADRESS] = temp & 0xFF;\r
        }\r
 }\r
 \r
index 72204e2b0503e6bc166f7ad86be12aac34683e12..b8454ef6d25adb848fb17b22edc54bd011adbce4 100644 (file)
@@ -2,6 +2,7 @@
 \r
 #define _ASSEMBLER_\r
 #include "kernel_offset.h"\r
+#include "context.h"\r
 #include "asm_hc1x.sx"\r
 #include "context.sx"\r
 \r
index 5e06fca404d375bb3cfe3bd794a75eb678741b99..d06b3368d2cd93c11c7dd12fb8d086e18fa5c711 100644 (file)
 #define SC_PATTERN                             0xde\r
 #define LC_PATTERN                             0xad\r
 \r
-#define        CONTEXT_SIZE_W                  9\r
-\r
+#if defined(CFG_HCS12D)\r
+#define Y_SP_OFFSET             6  // The offset from P to Y in the context\r
+#define        CONTEXT_SIZE_W            9  // The context size in words\r
+#define HIGH_BYTE_RETURN_ADRESS 16 // The offset in the context that contains the high order byte of return address\r
+#define LOW_BYTE_RETURN_ADRESS  17 // The offset in the context that contains the low order byte of return address\r
+\r
+#elif defined(CFG_HCS12XD)\r
+#define Y_SP_OFFSET             7    // The offset from P to Y in the context\r
+#define        CONTEXT_SIZE_W                  10   // The context size in words ( Actual size 9+1/2)\r
+#define HIGH_BYTE_RETURN_ADRESS 17   // The offset in the context that contains the high order byte of return address\r
+#define LOW_BYTE_RETURN_ADRESS  18   // The offset in the context that contains the low order byte of return address\r
+#else\r
+#error "HC1X: Subarchitecture not defined."\r
+#endif\r
 \r
 #endif /* CONTEXT_H_ */\r
index 6e271754396760f310e55554fc9e3ab6df14dada..b3d1c89bc7ce64448e08a4a1c64f71f3b68243bf 100644 (file)
        sty                     1, -sp                  // save Y -> ctx(Y)\r
        stx                     2, -sp                  // save X -> ctx(X)\r
        stab            2, -sp                  // save B -> ctx(B)  (skipping ctx(A))\r
+#ifdef CFG_HCS12D\r
        pshc                                            // save CCR -> ctx(CCR)\r
+#endif\r
+#ifdef CFG_HCS12XD     \r
+       .short 0x1839                           // save CCR -> ctx(CCR)\r
+#endif \r
        psha                                            // save P -> ctx(P) *\r
        movw    _.tmp ,2,-sp            // save tmp -> ctx(tmp)\r
        movw    _.xy, 2,-sp                     // save xy -> ctx(xy)\r
        movw    2,sp+, _.z                      // load z <- ctx(z)\r
        movw    2,sp+, _.xy                     // load xy <- ctx(xy)\r
        movw    2,sp+, _.tmp            // load tmp <- ctx(tmp)\r
-       ldy             6,sp                            // load Y <- ctx(Y)\r
-       movb    1,sp+, 6,sp                     // move ctx(P) -> callctx(P)\r
-       pulc                                            // load CCR <- ctx(CCR)\r
+       ldy             Y_SP_OFFSET,sp          // load Y <- ctx(Y)\r
+       movb    1,sp+, Y_SP_OFFSET,sp                   // move ctx(P) -> callctx(P)\r
+#ifdef CFG_HCS12D\r
+       pulc                                            // save CCR -> ctx(CCR)\r
+#endif\r
+#ifdef CFG_HCS12XD\r
+       .short 0x1838                           // load CCR <- ctx(CCR)\r
+#endif\r
        puld                                            // load D <- ctx(D)\r
        pulx                                            // load X <- ctx(X)\r
        ins                                                     // skipping ctx(Yh)\r
index ac116f9eb9565ee1f153ae56c18f3e4f0b41a071..cf747efbd17ee6d47fc5302c6349db5e18f5aa23 100644 (file)
@@ -135,13 +135,12 @@ SECTIONS
   \r
   \r
   /* PPAGE memory banks */\r
-\r
-  .bank8 :\r
+  .bank_A :\r
   {\r
-    *(.bank8)\r
-    *(.text.bank8*)\r
+    *(.bank_A)\r
+    *(.text.bank_A*)\r
     \r
-    /* BANK8 MODULES */\r
+    /* BANK_A MODULES */\r
     Os_Cfg.o(.text)\r
     EcuM.o(.text)\r
     EcuM_Cfg.o(.text)\r
@@ -154,14 +153,14 @@ SECTIONS
     alarm.o(.text)\r
        \r
     . = ALIGN(2);\r
-  } > bank8 AT>bank8_lma  =0xff\r
+  } > bank_A AT>bank_A_lma  =0xff\r
 \r
-  .bank9 :\r
+  .bank_B :\r
   {\r
-    *(.bank9)\r
-    *(.text.bank9*)\r
+    *(.bank_B)\r
+    *(.text.bank_B*)\r
 \r
-    /* BANK9 MODULES */\r
+    /* BANK_B MODULES */\r
     resource.o(.text)\r
     sched_table.o(.text)\r
     counter.o(.text)\r
@@ -174,15 +173,16 @@ SECTIONS
     newlib_port.o(.text)\r
 \r
     . = ALIGN(2);\r
-  } > bank9 AT>bank9_lma =0xff\r
+  } > bank_B AT>bank_B_lma =0xff\r
 \r
 \r
-  .bank10 :\r
+  .bank_C :\r
   {\r
-    *(.bank10)\r
-    *(.text.bank10*)\r
+    *(.bank_C)\r
+    *(.text.bank_C*)\r
 \r
-    /* BANK10 MODULES */       \r
+    /* BANK_C MODULES */\r
+    printf.o(.text)    \r
        *_memcpy.o(.text)\r
        *_memset.o(.text)\r
        *_abort.o(.text)\r
@@ -211,56 +211,58 @@ SECTIONS
        *_memcpy.o(.text)\r
        \r
     . = ALIGN(2);\r
-  } > bank10 AT>bank10_lma  =0xff\r
+  } > bank_C AT>bank_C_lma  =0xff\r
 \r
 \r
-  .bank11 :\r
+  .bank_D :\r
   {\r
-    *(.bank11)\r
-    *(.text.bank11*)\r
+    *(.bank_D)\r
+    *(.text.bank_D*)\r
 \r
-    /* BANK11 MODULES */\r
+    /* BANK_D MODULES */\r
     Can*.o(.text)\r
     Pdu*.o(.text)\r
     Dio*.o(.text)\r
 \r
     . = ALIGN(2);\r
-  } > bank11 AT>bank11_lma  =0xff\r
+  } > bank_D AT>bank_D_lma  =0xff\r
 \r
 \r
-  .bank12 :\r
+  .bank_E :\r
   {\r
-    *(.bank12)\r
-    *(.text.bank12*)\r
+    *(.bank_E)\r
+    *(.text.bank_E*)\r
 \r
-    /* BANK12 MODULES */\r
-    Com*.o(.text)\r
+    /* BANK_E MODULES */\r
     Port*.o(.text)\r
+    Com*.o(.text)\r
 \r
     . = ALIGN(2);\r
-  } > bank12 AT>bank12_lma  =0xff\r
+  } > bank_E AT>bank_E_lma  =0xff\r
 \r
 \r
-  .bank13 :\r
+  .bank_F :\r
   {\r
-    *(.bank13)\r
-   *(.text.bank13*)\r
+    *(.bank_F)\r
+   *(.text.bank_F*)\r
 \r
-    /* BANK13 MODULES */\r
+    /* BANK_F MODULES */\r
     Adc*.o(.text)\r
-    . = ALIGN(2);\r
-  } > bank13 AT>bank13_lma  =0xff\r
+    Dem*.o(.text)\r
+    IoHwAb*.o(.text)\r
+        . = ALIGN(2);\r
+  } > bank_F AT>bank_F_lma  =0xff\r
   \r
   \r
   /* Start of text section.  */\r
   .stext   :\r
   {\r
     *(.stext)\r
-  }  > text AT>bank14_lma\r
+  }  > text AT>bank_FIX1_lma\r
   .init          :\r
   {\r
     *(.init)\r
-  } AT>bank14_lma =0\r
+  } AT>bank_FIX1_lma =0\r
   .text  :\r
   {\r
     /* Put startup code at beginning so that _start keeps same address.  */\r
@@ -287,17 +289,17 @@ SECTIONS
     _etext = .;\r
     PROVIDE (etext = .);\r
     . = ALIGN(2);\r
-  }  > text AT>bank14_lma =0xa7a7a7a7\r
+  }  > text AT>bank_FIX1_lma =0xa7a7a7a7\r
   \r
   .eh_frame   :\r
   {\r
     KEEP (*(.eh_frame))\r
-  }  > text AT>bank14_lma\r
+  }  > text AT>bank_FIX1_lma\r
   \r
   .gcc_except_table   :\r
   {\r
     *(.gcc_except_table)\r
-  }  > text AT>bank14_lma\r
+  }  > text AT>bank_FIX1_lma\r
   \r
   .rodata    :\r
   {\r
@@ -305,13 +307,13 @@ SECTIONS
     *(.rodata.*)\r
     *(.gnu.linkonce.r*)\r
     . = ALIGN(2);\r
-  }  > text_h AT>bank15_lma =0xffffffff\r
+  }  > text_h AT>bank_FIX2_lma =0xffffffff\r
   \r
   .rodata1   :\r
   {\r
     *(.rodata1)\r
     . = ALIGN(2);\r
-  }  > text_h AT>bank15_lma =0xffffffff\r
+  }  > text_h AT>bank_FIX2_lma =0xffffffff\r
   \r
   /* Constructor and destructor tables are in ROM.  */\r
   /*\r
@@ -353,7 +355,7 @@ SECTIONS
     _edata  =  .;\r
     PROVIDE (edata = .);\r
     . = ALIGN(2);\r
-  }  > data AT>bank15_lma =0xffffffff\r
+  }  > data AT>bank_FIX2_lma =0xffffffff\r
   __data_section_size = SIZEOF(.data);\r
   PROVIDE (__data_section_size = SIZEOF(.data));\r
   __data_image_end = __data_image + __data_section_size;\r
@@ -365,6 +367,11 @@ SECTIONS
        *(.dem_eventmemory_pri)\r
   } > data\r
   \r
+  .noice_port 0x2000 :\r
+  {\r
+      *(.noice_port)\r
+  } > data\r
+    \r
 /* SCz: this does not work yet... This is supposed to force the loading\r
    of _map_data.o (from libgcc.a) when the .data section is not empty.\r
    By doing so, this should bring the code that copies the .data section\r
@@ -390,7 +397,7 @@ SECTIONS
     *(.gnu.linkonce.b.*)\r
     *(COMMON)\r
     PROVIDE (_end = .);\r
-  }  > data AT>bank15_lma\r
+  }  > data AT>bank_FIX2_lma\r
   __bss_size = SIZEOF(.bss);\r
   PROVIDE (__bss_size = SIZEOF(.bss));\r
   .eeprom   :\r
index d2c18ec93f93bd797d8df0274af8f94f804452bd..d0935ee4fb45bc13cc26aa48efa6f3b6567b1415 100644 (file)
@@ -1,5 +1,5 @@
 obj-$(CFG_PPC) += crt0.o\r
-obj-$(CFG_HCS12D) += crt0.o\r
+obj-$(CFG_HC1X) += crt0.o\r
 vpath-$(CFG_ARM_CM3) += $(ARCH_PATH-y)kernel\r
 obj-$(CFG_ARM_CM3) += core_cm3.o\r
 obj-$(CFG_ARM_CM3) += startup_stm32f10x.o\r
index 5ce02782b251e65f9bdb20c441954dc9cd9908f7..22c9397e1876d859266c73d326614a10d0f4aea4 100644 (file)
@@ -18,38 +18,38 @@ text_h (rx)  : ORIGIN = 0xc002, LENGTH = 16k-0x102
 vectors (rx)  : ORIGIN = 0xff80, LENGTH = 0x80\r
   \r
 /* Flash memory banks VMA:s */\r
-bank8  (rx)   : ORIGIN = 0x0f0000, LENGTH = 16k\r
-bank9  (rx)   : ORIGIN = 0x0f4000, LENGTH = 16k\r
-bank10 (rx)   : ORIGIN = 0x0f8000, LENGTH = 16k\r
-bank11 (rx)   : ORIGIN = 0x0fc000, LENGTH = 16k\r
-bank12 (rx)   : ORIGIN = 0x100000, LENGTH = 16k\r
-bank13 (rx)   : ORIGIN = 0x104000, LENGTH = 16k\r
+bank_A  (rx)   : ORIGIN = 0x0f0000, LENGTH = 16k\r
+bank_B  (rx)   : ORIGIN = 0x0f4000, LENGTH = 16k\r
+bank_C (rx)   : ORIGIN = 0x0f8000, LENGTH = 16k\r
+bank_D (rx)   : ORIGIN = 0x0fc000, LENGTH = 16k\r
+bank_E (rx)   : ORIGIN = 0x100000, LENGTH = 16k\r
+bank_F (rx)   : ORIGIN = 0x104000, LENGTH = 16k\r
   \r
-bank14 (rx)   : ORIGIN = 0x108000, LENGTH = 16k\r
-bank15 (rx)   : ORIGIN = 0x10c002, LENGTH = 16k-0x102\r
+bank_FIX1 (rx)   : ORIGIN = 0x108000, LENGTH = 16k\r
+bank_FIX2 (rx)   : ORIGIN = 0x10c002, LENGTH = 16k-0x102\r
   \r
 /* Flash memory banks LMA:s */\r
 /* iSystem winIDEA */\r
-bank8_lma  (rx)   : ORIGIN = 0x0f0000, LENGTH = 16k\r
-bank9_lma  (rx)   : ORIGIN = 0x0f4000, LENGTH = 16k\r
-bank10_lma (rx)   : ORIGIN = 0x0f8000, LENGTH = 16k\r
-bank11_lma (rx)   : ORIGIN = 0x0fc000, LENGTH = 16k\r
-bank12_lma (rx)   : ORIGIN = 0x100000, LENGTH = 16k\r
-bank13_lma (rx)   : ORIGIN = 0x104000, LENGTH = 16k\r
+bank_A_lma  (rx)   : ORIGIN = 0x0f0000, LENGTH = 16k\r
+bank_B_lma  (rx)   : ORIGIN = 0x0f4000, LENGTH = 16k\r
+bank_C_lma (rx)   : ORIGIN = 0x0f8000, LENGTH = 16k\r
+bank_D_lma (rx)   : ORIGIN = 0x0fc000, LENGTH = 16k\r
+bank_E_lma (rx)   : ORIGIN = 0x100000, LENGTH = 16k\r
+bank_F_lma (rx)   : ORIGIN = 0x104000, LENGTH = 16k\r
 \r
-bank14_lma (rx)   : ORIGIN = 0x108000, LENGTH = 16k\r
-bank15_lma (rx)   : ORIGIN = 0x10c002, LENGTH = 16k-0x102\r
+bank_FIX1_lma (rx)   : ORIGIN = 0x108000, LENGTH = 16k\r
+bank_FIX2_lma (rx)   : ORIGIN = 0x10c002, LENGTH = 16k-0x102\r
 vectors_lma (rx)  : ORIGIN = 0x10ff80, LENGTH = 0x80\r
   \r
 /* Freescale Codewarrior Hiwave (s19, TBDML)\r
-bank8_lma  (rx)   : ORIGIN = 0x388000, LENGTH = 16k\r
-bank9_lma  (rx)   : ORIGIN = 0x398000, LENGTH = 16k\r
-bank10_lma (rx)   : ORIGIN = 0x3a8000, LENGTH = 16k\r
-bank11_lma (rx)   : ORIGIN = 0x3b8000, LENGTH = 16k\r
-bank12_lma (rx)   : ORIGIN = 0x3c8000, LENGTH = 16k\r
-bank13_lma (rx)   : ORIGIN = 0x3d8000, LENGTH = 16k\r
+bank_A_lma  (rx)   : ORIGIN = 0x388000, LENGTH = 16k\r
+bank_B_lma  (rx)   : ORIGIN = 0x398000, LENGTH = 16k\r
+bank_C_lma (rx)   : ORIGIN = 0x3a8000, LENGTH = 16k\r
+bank_D_lma (rx)   : ORIGIN = 0x3b8000, LENGTH = 16k\r
+bank_E_lma (rx)   : ORIGIN = 0x3c8000, LENGTH = 16k\r
+bank_F_lma (rx)   : ORIGIN = 0x3d8000, LENGTH = 16k\r
 \r
-bank14_lma (rx)   : ORIGIN = 0x3e8000, LENGTH = 16k\r
-bank15_lma (rx)   : ORIGIN = 0x3f8002, LENGTH = 16k-0x102\r
+bank_FIX1_lma (rx)   : ORIGIN = 0x3e8000, LENGTH = 16k\r
+bank_FIX2_lma (rx)   : ORIGIN = 0x3f8002, LENGTH = 16k-0x102\r
 vectors_lma (rx)  : ORIGIN = 0x3fff80, LENGTH = 0x80\r
-*/
\ No newline at end of file
+*/\r
index 60a756795ae7e9055fd1de2ef3d49a09175ee8db..6db2292ce807b46626db85af8745081c874d0cf9 100644 (file)
@@ -82,6 +82,13 @@ static volatile char g_TConn __attribute__ ((section (".winidea_port")));
 \r
 #define FILE_RAMLOG            3\r
 \r
+/* Location MUST match NoICE configuration */\r
+#ifdef USE_TTY_NOICE\r
+static volatile char VUART_TX __attribute__ ((section (".noice_port")));\r
+static volatile char VUART_RX __attribute__ ((section (".noice_port")));\r
+volatile unsigned char START_VUART = 0;\r
+#endif\r
+\r
 /*\r
  * T32 stuff\r
  */\r
@@ -194,6 +201,17 @@ int read( int fd, void *buf, size_t nbytes )
        (void)g_TRBuffer[0];\r
 #endif\r
 \r
+#ifdef USE_TTY_NOICE\r
+       // Not tested at all\r
+    int retval;\r
+    while (VUART_RX != 0)\r
+    {\r
+    }\r
+\r
+    retval = VUART_RX;\r
+    VUART_RX = 0;\r
+#endif\r
+\r
        /* Only support write for now, return 0 read */\r
        return 0;\r
 }\r
@@ -206,6 +224,30 @@ int write(  int fd, const void *_buf, size_t nbytes)
 \r
 \r
        if( fd <= STDERR_FILENO ) {\r
+#ifdef USE_TTY_NOICE\r
+       char *buf1 = (char *)_buf;\r
+       if (START_VUART)\r
+       {\r
+          for (int i = 0; i < nbytes; i++) {\r
+                  char c = buf1[i];\r
+                  if (c == '\n')\r
+                  {\r
+                          while (VUART_TX != 0)\r
+                          {\r
+                          }\r
+\r
+                          VUART_TX = '\r';\r
+                  }\r
+\r
+                  while (VUART_TX != 0)\r
+                  {\r
+                  }\r
+\r
+                  VUART_TX = c;\r
+          }\r
+       }\r
+#endif\r
+\r
 #ifdef USE_TTY_WINIDEA\r
                if (g_TConn)\r
                {\r
index 028ff81c9af0650853c8f65a50a7d46fda9a9b4a..dfded21c1a6011e70ed3a00b255e8f62782cd38a 100644 (file)
@@ -48,7 +48,7 @@
 \r
 //#define HOST_TEST    1\r
 \r
-int arc_putchar(int fd, int c);\r
+int arc_putchar(_PTR fd, int c);\r
 int print(FILE *file, char **buffer, size_t n, const char *format, va_list ap);\r
 \r
 int printf(const char *format, ...) {\r
@@ -305,17 +305,20 @@ int print(FILE *file, char **buffer, size_t n, const char *format, va_list ap)
                        }\r
 \r
                        /* Find flags */\r
-                       switch (ch) {\r
-                       case '0':\r
+                       if (ch == '0')\r
+                       {\r
                                flags = FL_ZERO;\r
-                               break;\r
-                       case ' ':\r
+                       }\r
+                       else if (ch == ' ')\r
+                       {\r
                                flags = FL_SPACE;\r
-                               break;\r
-                       case '-':\r
+                       }\r
+                       else if (ch == '-')\r
+                       {\r
                                flags = FL_ALIGN_LEFT;\r
-                               break;\r
-                       default:\r
+                       }\r
+                       else\r
+                       {\r
                                /* Not supported or no flag */\r
                                flags = FL_NONE;\r
                                format--;\r
@@ -333,27 +336,32 @@ int print(FILE *file, char **buffer, size_t n, const char *format, va_list ap)
                        }\r
 \r
                        /* Find type */\r
-                       switch (ch) {\r
-                       case 'c':\r
+                       if (ch =='c')\r
+                       {\r
                                emitChar(file,buffer,(char )va_arg( ap, int ),&left);\r
-                               break;\r
-                       case 'd':\r
+                       }\r
+                       else if (ch == 'd')\r
+                       {\r
                                flags |= FL_TYPE_SIGNED_INT;\r
                                emitInt(file,buffer,va_arg( ap, int ),10,width,flags,&left);\r
-                               break;\r
-                       case 'u':\r
+                       }\r
+                       else if (ch == 'u')\r
+                       {\r
                                flags |= FL_TYPE_UNSIGNED_INT;\r
                                emitInt(file,buffer,va_arg( ap, int ),10,width,flags,&left);\r
-                               break;\r
-                       case 'x':\r
+                       }\r
+                       else if (ch == 'x')\r
+                       {\r
                                flags |= FL_TYPE_UNSIGNED_INT;\r
                                emitInt(file,buffer,va_arg( ap, int ),16,width,flags,&left);\r
-                               break;\r
-                       case 'p':\r
+                       }\r
+                       else if (ch == 'p')\r
+                       {\r
                                flags |= FL_TYPE_POINTER;\r
                                emitInt(file,buffer,va_arg( ap, int ),16,width,flags,&left);\r
-                               break;\r
-                       case 's':\r
+                       }\r
+                       else if (ch == 's')\r
+                       {\r
                                str = (char *)va_arg( ap, int );\r
 \r
                                if( str == NULL ) {\r
@@ -361,12 +369,11 @@ int print(FILE *file, char **buffer, size_t n, const char *format, va_list ap)
                                }\r
 \r
                                emitString(file,buffer,str,width,flags,&left);\r
-                               break;\r
-                       default:\r
+                       }\r
+                       else\r
+                       {\r
                                assert(0); // oops\r
-                               break;\r
                        }\r
-\r
                } else {\r
                        flags = FL_NONE;\r
                        emitChar(file,buffer,ch,&left);\r
index 8e2aff80883b827252e14df14deb259547529950..aa59d10410ee1b88f31a1e4c077a0f8ca05b81e4 100644 (file)
@@ -183,7 +183,7 @@ ifeq ($(CROSS_COMPILE),)
        $(Q)$(CC) $(LDFLAGS) -o $@ $(libpath-y) $(obj-y) $(lib-y) $(libitem-y)  \r
 else   \r
        $(Q)$(LD) $(LDFLAGS) -T $(ldcmdfile-y) -o $@ $(libpath-y) --start-group $(obj-y) $(lib-y) $(libitem-y) --end-group $(LDMAPFILE)\r
-ifdef CFG_MC912DG128A\r
+ifdef CFG_HC1X\r
        @$(CROSS_COMPILE)objdump -h $@ | gawk -f $(ROOTDIR)/scripts/hc1x_memory.awk\r
 else\r
        @echo "Image size: (decimal)"\r
index 9ab1ff07cca41844e8197c5f8491e460f5c012fb..aeb1102ead4cfa6324913016eada9612dc595a43 100644 (file)
@@ -5,7 +5,7 @@ vpath-y += $(ARCH_PATH-y)/kernel
 obj-y += asm_sample.o\r
 #CFLAGS_asm_sample.o += -O3\r
 obj-y += arch_krn.o\r
-obj-$(CFG_HCS12D) += arch_irq.o\r
+obj-$(CFG_HC1X) += arch_irq.o\r
 #obj-y += stm32f10x_it.o\r
 \r
 # object files \r