在rt_application_init()
中调用rt_thread_create()
函数创建线程时,在rt_thread_create()
函数中:
有rt_object_allocate()
和RT_KERNEL_MALLOC()
函数都会调用rt_malloc()
。
这里的rt_malloc()没有问题。
但是当我在自己创建的thread1()
线程中调用rt_malloc()
函数时,会创建失败。
如图所示:
堆栈空间的大小没有问题,也不会有交叉或重叠问题。
单步调试发现,当我进入线程函数时,此时的堆空间的起始地址0xA00004A0中的值0x00001EA0被改写为0x85007D70。其中0x85007D70为_thread_exit()
函数的入口地址。
不知道是在哪里被修改了,求指教。
改大改小都试过了,没有用
建议贴代码出来
@rv666
感谢回复,问题已经解决