在使用RT-thread中,定义了一个任务进程。这个任务进程被如下定义的:
rt_thread_create("Flash",A_entry, RT_NULL,2048, 3, 10);
在这个任务进程中,启动了一个软件定时器。
rt_timer_start(&Updata_Timer); //启动更新超时的定时器
这个定时器超时了就会执行
void Updates_Timerout(void *parameter)这个函数。
问题:
我在 void Updates_Timerout(void *parameter)这个函数里面定义了一个比较大的缓冲数组 A[512];只要执行这个函数的时候,系统就会打印如下信息:
psr: 0x61000000 pc: 0x08007df2 lr: 0x08007d8d r12: 0x00000000 r03: 0x00000000 r02: 0x00000000 r01: 0x00000000 r00: 0x00000000 hard fault on thread: tidle
我尝试将 rt_thread_create(“Flash”,A_entry, RT_NULL,2048, 3, 10);中的2048Byte 改为 6KByte,但是改为6K之后,出现如下现象:
1.void Updates_Timerout(void *parameter)函数都不会得到执行。
A_entry进程任务执行结果出错,任务没有死掉,但是最终的结果不符合预期。
请教大家,这个问题该怎么解决?
更多回帖