diff --git a/components/finsh/finsh.h b/components/finsh/finsh.h index fd51b72a64da181c41bd39fe2ac3f23046d9e716..03a2e4778ae22bf89d8c3373eaf39b7212b40d9e 100644 --- a/components/finsh/finsh.h +++ b/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 diff --git a/components/finsh/shell.c b/components/finsh/shell.c index d399fdacabc7e5d7a6160600261fff0578e1bbcb..601bf647f623f84e2ffda0a297a9a1b6be866b10 100644 --- a/components/finsh/shell.c +++ b/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 diff --git a/include/rtdef.h b/include/rtdef.h index 6bd8ed002ec98e2e9e6410decde06c1abd67fc94..213eb1dd145fe4c3b14f8e1f69658d55cea87301 100644 --- a/include/rtdef.h +++ b/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 + #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 */ diff --git a/include/rtthread.h b/include/rtthread.h index fd697b8ed924e88dce17b36eb72a2e870fd46e48..d37534218e5161b5e616801d0b29b588656fd048 100644 --- a/include/rtthread.h +++ b/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 */ diff --git a/src/kservice.c b/src/kservice.c index da4d7980b6abe7c1f77323f2a8d61d221f71cb87..a49cc377e96cd74dcd015fb37d8cac3b303d875e 100644 --- a/src/kservice.c +++ b/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)