From ff8332d9dcc5b4ee00c050a660a0c3012beea2a5 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Sun, 12 Apr 2015 10:11:32 +0000 Subject: [PATCH 1/5] [libc] fix compiling warning for newlib --- components/libc/newlib/libc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c index 0427a6d91..e1a2c5407 100644 --- a/components/libc/newlib/libc.c +++ b/components/libc/newlib/libc.c @@ -51,5 +51,7 @@ int libc_system_init(void) #ifdef RT_USING_PTHREADS pthread_system_init(); #endif + + return 0; } INIT_COMPONENT_EXPORT(libc_system_init); From 21fdff8fbf906dc2d003aca295b13516a9e05367 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Thu, 16 Apr 2015 16:47:48 +0800 Subject: [PATCH 2/5] [Kernel] Fix main() issue in Keil MDK --- src/init.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/init.c b/src/init.c index 56b7e0bf8..b697b7318 100644 --- a/src/init.c +++ b/src/init.c @@ -149,13 +149,14 @@ struct rt_thread main_thread; void main_thread_entry(void *parameter) { extern int main(void); + extern int $Super$$main(void); /* RT-Thread components initialization */ rt_components_init(); /* invoke system main function */ #ifdef __CC_ARM - $Sub$$main(); + $Super$$main(); /* for ARMCC. */ #else main(); #endif @@ -183,6 +184,8 @@ void rt_application_init(void) int rtthread_startup(void) { + rt_hw_interrupt_disable(); + /* board level initalization * NOTE: please initialize heap inside board initialization. */ From 3e24db1f8eccd01655e078d8f7a5a1c33679d830 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Fri, 24 Apr 2015 11:41:52 +0800 Subject: [PATCH 3/5] Fix compiling warning. --- components/finsh/msh_cmd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/components/finsh/msh_cmd.c b/components/finsh/msh_cmd.c index 206b640c1..cc8b2dce0 100644 --- a/components/finsh/msh_cmd.c +++ b/components/finsh/msh_cmd.c @@ -280,6 +280,7 @@ FINSH_FUNCTION_EXPORT_ALIAS(cmd_time, __cmd_time, Execute command with time.); int cmd_free(int argc, char** argv) { extern void list_mem(void); + extern void list_memheap(void); #ifdef RT_USING_MEMHEAP_AS_HEAP list_memheap(); From 20c06ccb00d6181f925d9b2d8f92b8e16edfc314 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Fri, 24 Apr 2015 11:42:40 +0800 Subject: [PATCH 4/5] Add extern declaration for C++. --- components/drivers/include/rtdevice.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/drivers/include/rtdevice.h b/components/drivers/include/rtdevice.h index bb01da2d1..5d74ed619 100644 --- a/components/drivers/include/rtdevice.h +++ b/components/drivers/include/rtdevice.h @@ -28,6 +28,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + #define RT_DEVICE(device) ((rt_device_t)device) /* completion flag */ @@ -362,5 +366,9 @@ rt_inline void rt_work_init(struct rt_work* work, void (*work_func)(struct rt_wo #include "drivers/pin.h" #endif +#ifdef __cplusplus +} +#endif + #endif /* __RT_DEVICE_H__ */ From e043eaad0e1bcc2d0eaa784eb0b8b6aa5f357007 Mon Sep 17 00:00:00 2001 From: Bernard Xiong Date: Fri, 24 Apr 2015 11:43:38 +0800 Subject: [PATCH 5/5] [tools] Using object name to decide whether use alias name in Keil MDK. --- tools/keil.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/tools/keil.py b/tools/keil.py index 9d6b14b81..214b3928d 100644 --- a/tools/keil.py +++ b/tools/keil.py @@ -66,9 +66,19 @@ def MDK4AddGroupForFN(ProjectFiles, parent, name, filename, project_path): file = SubElement(files, 'File') file_name = SubElement(file, 'FileName') name = os.path.basename(path) - if ProjectFiles.count(name): + + if name.find('.cpp') != -1: + obj_name = name.replace('.cpp', '.o') + elif name.find('.c') != -1: + obj_name = name.replace('.c', '.o') + elif name.find('.s') != -1: + obj_name = name.replace('.s', '.o') + elif name.find('.S') != -1: + obj_name = name.replace('.s', '.o') + + if ProjectFiles.count(obj_name): name = basename + '_' + name - ProjectFiles.append(name) + ProjectFiles.append(obj_name) file_name.text = name.decode(fs_encoding) file_type = SubElement(file, 'FileType') file_type.text = '%d' % _get_filetype(name) @@ -98,9 +108,19 @@ def MDK4AddGroup(ProjectFiles, parent, name, files, project_path): file = SubElement(files, 'File') file_name = SubElement(file, 'FileName') name = os.path.basename(path) - if ProjectFiles.count(name): + + if name.find('.cpp') != -1: + obj_name = name.replace('.cpp', '.o') + elif name.find('.c') != -1: + obj_name = name.replace('.c', '.o') + elif name.find('.s') != -1: + obj_name = name.replace('.s', '.o') + elif name.find('.S') != -1: + obj_name = name.replace('.s', '.o') + + if ProjectFiles.count(obj_name): name = basename + '_' + name - ProjectFiles.append(name) + ProjectFiles.append(obj_name) file_name.text = name.decode(fs_encoding) file_type = SubElement(file, 'FileType') file_type.text = '%d' % _get_filetype(name)