]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Fixed compile bug for TMS570. Added terminal support for Code Composer.
authormaek <devnull@localhost>
Mon, 17 Sep 2012 09:34:03 +0000 (11:34 +0200)
committermaek <devnull@localhost>
Mon, 17 Sep 2012 09:34:03 +0000 (11:34 +0200)
common/newlib_port.c
include/arm/Cpu.h

index ad1706f585cf2cdf7d623be8f3e6aad38f7f9076..b90093bd860753f9e97894ca0d4c7c93b990f938 100644 (file)
@@ -110,6 +110,8 @@ static unsigned char parmbuf[8];
 #define BUFSIZ 512\r
 #define CC_BUFFER_SIZE ((BUFSIZ)+32)\r
 volatile unsigned int _CIOBUF_[CC_BUFFER_SIZE] __attribute__ ((section (".cio")));\r
+static unsigned char CIOTMPBUF[BUFSIZ];\r
+static uint16 cio_tmp_buf_index = 0;\r
 \r
 /***************************************************************************/\r
 /*                                                                         */\r
@@ -179,15 +181,29 @@ int HOSTwrite(int dev_fd, const char *buf, unsigned count)
 {\r
    int result;\r
 \r
+   // WARNING. Can only handle count == 1!\r
+   if (count != 1) _exit(1);\r
+\r
    if (count > BUFSIZ) count = BUFSIZ;\r
 \r
+   if (cio_tmp_buf_index < BUFSIZ) {\r
+          CIOTMPBUF[cio_tmp_buf_index++] = *buf;\r
+\r
+          if (*buf != 0xA) { // Only flush if newline\r
+                  return 0;\r
+          }\r
+   }\r
+\r
+\r
    LOADSHORT(parmbuf,dev_fd,0);\r
-   LOADSHORT(parmbuf,count,2);\r
-   writemsg(_DTWRITE,parmbuf,(char *)buf,count);\r
+   LOADSHORT(parmbuf,cio_tmp_buf_index,2);\r
+   writemsg(_DTWRITE,parmbuf,(char *)CIOTMPBUF,cio_tmp_buf_index);\r
    readmsg(parmbuf,NULL);\r
 \r
    result = UNLOADSHORT(parmbuf,0);\r
 \r
+   cio_tmp_buf_index = 0;\r
+\r
    return result;\r
 }\r
 \r
index bf4c9e0823b6d40c647767ff4b97362905fb6ae8..5faf0cf0d31e9dfa489199d2f01451a627ee6e72 100644 (file)
@@ -43,4 +43,6 @@ typedef uint32_t imask_t;
 
 #define CallService(index,param)
 
+#define ilog2(x) __builtin_ffs(x)
+
 #endif /* CPU_H_ */