Ver código fonte

Added VisualDSP++ Compiler support.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@2137 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong@gmail.com 13 anos atrás
pai
commit
3ad6f43ff3
5 arquivos alterados com 25 adições e 3 exclusões
  1. 1 1
      components/finsh/finsh.h
  2. 11 1
      components/finsh/shell.c
  3. 7 0
      include/rtdef.h
  4. 5 0
      include/rtthread.h
  5. 1 1
      src/kservice.c

+ 1 - 1
components/finsh/finsh.h

@@ -59,7 +59,7 @@ typedef unsigned char  u_char;
 typedef unsigned short u_short;
 typedef unsigned long  u_long;
 
-#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__)
+#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__) && !defined(__ADSPBLACKFIN__)
 typedef unsigned int size_t;
 
 #ifndef NULL

+ 11 - 1
components/finsh/shell.c

@@ -53,7 +53,7 @@ char *strdup(const char *s)
 }
 #endif
 
-#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__)
+#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__) && !defined(__ADSPBLACKFIN__)
 int isalpha( int ch )
 {
 	return (unsigned int)((ch | 0x20) - 'a') < 26u;
@@ -452,6 +452,13 @@ void finsh_system_var_init(const void* begin, const void* end)
     #pragma section="FSymTab"
     #pragma section="VSymTab"
   #endif
+#elif defined(__ADSPBLACKFIN__) /* for VisaulDSP++ Compiler*/
+  #ifdef FINSH_USING_SYMTAB
+    extern "asm" int __fsymtab_start;
+    extern "asm" int __fsymtab_end;
+    extern "asm" int __vsymtab_start;
+    extern "asm" int __vsymtab_end;
+  #endif
 #endif
 
 /*
@@ -483,6 +490,9 @@ void finsh_system_init(void)
 	extern const int __vsymtab_end;
 	finsh_system_function_init(&__fsymtab_start, &__fsymtab_end);
 	finsh_system_var_init(&__vsymtab_start, &__vsymtab_end);
+#elif defined(__ADSPBLACKFIN__) /* for VisualDSP++ Compiler */
+    finsh_system_function_init(&__fsymtab_start, &__fsymtab_end);
+    finsh_system_var_init(&__vsymtab_start, &__vsymtab_end);
 #endif
 #endif
 

+ 7 - 0
include/rtdef.h

@@ -126,6 +126,13 @@ typedef rt_base_t                       rt_off_t;       /**< Type for offset
     #define ALIGN(n)                    __attribute__((aligned(n)))
     #define rt_inline                   static __inline
     #define RTT_API
+#elif defined (__ADSPBLACKFIN__)        /* for VisualDSP++ Compiler */
+    #include <stdarg.h>
+    #define SECTION(x)                  __attribute__((section(x)))
+    #define UNUSED                      __attribute__((unused))
+    #define ALIGN(n)                    __attribute__((aligned(n)))
+    #define rt_inline                   static inline
+    #define RTT_API	
 #endif
 
 /* event length */

+ 5 - 0
include/rtthread.h

@@ -375,6 +375,11 @@ void rt_interrupt_leave(void);
  */
 rt_uint8_t rt_interrupt_get_nest(void);
 
+/**
+ * application module
+ */
+void rt_system_module_init(void);
+
 /**
  * @addtogroup KernelService
  */

+ 1 - 1
src/kservice.c

@@ -1022,7 +1022,7 @@ rt_device_t rt_console_set_device(const char *name)
 }
 #endif
 
-#if defined(__GNUC__)
+#if defined(__GNUC__) || defined(__ADSPBLACKFIN__)
 void rt_hw_console_output(const char *str) __attribute__((weak));
 void rt_hw_console_output(const char *str)
 #elif defined(__CC_ARM)