diff options
Diffstat (limited to 'components/module/examples')
3 files changed, 74 insertions, 0 deletions
diff --git a/components/module/examples/application/basicapp/SConscript b/components/module/examples/application/basicapp/SConscript new file mode 100644 index 0000000000..e8f79a5fd9 --- /dev/null +++ b/components/module/examples/application/basicapp/SConscript @@ -0,0 +1,27 @@ +Import('env') +Import('projects') +Import('RTT_ROOT') +Import('rtconfig') + +# group definitions +group = {} +group['name'] = 'examples' +group['src'] = Glob('*.c') +group['CCFLAGS'] = '' +group['CPPPATH'] = [RTT_ROOT + '/components/module/interface'] +group['CPPDEFINES'] = '' + +target = 'hello.mo' + +# add group to project list +projects.append(group) + +env.Append(CCFLAGS = group['CCFLAGS']) +env.Append(CPPPATH = group['CPPPATH']) +env.Append(CPPDEFINES = group['CPPDEFINES']) +module_env = env.Clone(CPPDEFINE = 'RT_MODULE') +module_env.Replace(LINKFLAGS = ' -mcpu=arm920t -r -d -e rt_module_entry -nostdlib -s') + +src_local = Glob('*.c') + +module_env.Program(target, src_local) diff --git a/components/module/examples/application/basicapp/basicapp.c b/components/module/examples/application/basicapp/basicapp.c new file mode 100644 index 0000000000..90d39f1427 --- /dev/null +++ b/components/module/examples/application/basicapp/basicapp.c @@ -0,0 +1,26 @@ +#include <rtthread.h> +#include <interface_help.h> + +int a = 0; +int b = 1000000; +int c = 0; + +void function(int count1, int count2, int count3) +{ + rt_kprintf("Hello RT-Thread %d %d\n", count1, count2, count3); +} + +int rt_application_entry(void) +{ + int i; + for(i=0; i<1000; i++) + { + a++; + b--; + c++; + function(a, b, c); + } + + return 0; +} + diff --git a/components/module/examples/application/basicapp/module_entry.c b/components/module/examples/application/basicapp/module_entry.c new file mode 100644 index 0000000000..1b523da100 --- /dev/null +++ b/components/module/examples/application/basicapp/module_entry.c @@ -0,0 +1,21 @@ +#include <rtthread.h>
+#include <interface_help.h>
+
+extern int rt_application_entry();
+rt_shell_t ishell = RT_NULL;
+
+int rt_module_entry(const void* shell, void** object_info)
+{
+ /* init shell */
+ ishell = (rt_shell_t)shell;
+ struct rt_module_info *info = (struct rt_module_info*)rt_malloc(sizeof(struct rt_module_info));
+
+ info->module_refs = 0;
+ info->module_type = RT_Module_Class_APP;
+ info->module_guid = 0xdead;
+ info->exec_entry = (void *)rt_application_entry;
+ info->module_interface = RT_NULL;
+
+ *object_info = info;
+}
+
|
