mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-20 09:28:49 +08:00
module developing
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@742 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
@@ -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)
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user