|
在使用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)函数都不会得到执行。
2. A_entry进程任务执行结果出错,任务没有死掉,但是最终的结果不符合预期。
请教大家,这个问题该怎么解决? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|