提交 85ceda00 编写于 作者: wuyangyong's avatar wuyangyong

fixed rt_device_init issues.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1882 bbd45198-f89e-11dd-88c7-29a3b14d5316
上级 8634deeb
......@@ -2,19 +2,7 @@ Import('RTT_ROOT')
Import('rtconfig')
from building import *
src = Split('''
device.c
thread.c
scheduler.c
timer.c
irq.c
kservice.c
clock.c
object.c
mempool.c
ipc.c
idle.c
''')
src = Glob('*.c')
CPPPATH = [RTT_ROOT + '/include']
if rtconfig.CROSS_TOOL == 'keil' and GetDepend('RT_USING_MODULE') == True:
......@@ -22,14 +10,14 @@ if rtconfig.CROSS_TOOL == 'keil' and GetDepend('RT_USING_MODULE') == True:
else:
LINKFLAGS = ''
if GetDepend('RT_USING_MODULE'):
src += Split('rtm.c')
src += Split('module.c')
if GetDepend('RT_USING_MODULE') == False:
SrcRemove(src, ['rtm.c', 'module.c'])
if GetDepend('RT_USING_SLAB'):
src += Split('slab.c')
else:
src += Split('mem.c')
if GetDepend('RT_USING_HEAP') == False or GetDepend('RT_USING_SMALL_MEM') == False:
SrcRemove(src, ['mem.c'])
if GetDepend('RT_USING_HEAP') == False or GetDepend('RT_USING_SLAB') == False:
SrcRemove(src, ['slab.c'])
group = DefineGroup('Kernel', src, depend = [''], CPPPATH = CPPPATH, LINKFLAGS = LINKFLAGS)
......
......@@ -146,26 +146,29 @@ rt_device_t rt_device_find(const char *name)
*/
rt_err_t rt_device_init(rt_device_t dev)
{
rt_err_t result;
rt_err_t result = RT_EOK;
rt_err_t (*init)(rt_device_t dev);
RT_ASSERT(dev != RT_NULL);
/* get device init handler */
init = dev->init;
if (init != RT_NULL && !(dev->flag & RT_DEVICE_FLAG_ACTIVATED))
{
result = init(dev);
if (result != RT_EOK)
{
rt_kprintf("To initialize device:%s failed. The error code is %d\n",
dev->parent.name, result);
}
else
{
dev->flag |= RT_DEVICE_FLAG_ACTIVATED;
}
}
if (init != RT_NULL)
{
if(!(dev->flag & RT_DEVICE_FLAG_ACTIVATED))
{
result = init(dev);
if (result != RT_EOK)
{
rt_kprintf("To initialize device:%s failed. The error code is %d\n",
dev->parent.name, result);
}
else
{
dev->flag |= RT_DEVICE_FLAG_ACTIVATED;
}
}
}
else result = -RT_ENOSYS;
return result;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册