|
用的是s3c2440的平台,RTGUI已经能run起来了,这几天正在折腾触摸屏功能,初始化就碰到点问题,由于用户手册里面对于触摸屏初始化的内容很少,这个问题也困惑了许久,实在是搞不定了,只能向大侠求助,不知道小弟的用法对不对。
我是在初始化的时候首先调用rtgui_touch_hw_init这个函数初始化触摸屏的。函数体就直接沿用bsp里面的mini2440的实例程序。
一开始就在分配堆栈是有点问题
touch = (struct rtgui_touch_device*)rt_malloc (sizeof(struct rtgui_touch_device));
if (touch == RT_NULL) return; /* no memory yet */
这时候会去调用slab.c程序里面的rt_malloc,
if (size >= zone_limit)
{
size = RT_ALIGN(size, RT_MM_PAGE_SIZE);
chunk = rt_page_alloc(size >> RT_MM_PAGE_BITS);
if (chunk == RT_NULL) return RT_NULL;
运行到这里chunk就返回RULL了。继而,在touch.c中,touch这个变量也返回RT_NULL,分配失败。
不知道是什么问题,是我哪里初始化define参数没设对还是什么问题啊?请教大侠了!! |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|