你好!
我现在在用TM4C1230D5PM,上面已经移植了7个任务了(ucos的移植,参照TI_LM4F232_FPU_ucos),包含显示,ADC,输出,输入等任务。刚开始的时候,运行正常,但是大概在过半个小时左右,自己跳入了FAULT中断。我查看了各个任务的堆栈,都没有发现溢出的现象, 我现在用的是CCS,在发现FAULT时,查看FAULTSTAT寄存器,发现是0x0000001。
我的问题是:我能通过什么办法,定位在进入fault之前的程序位置。
谢谢。
你好!
我现在在用TM4C1230D5PM,上面已经移植了7个任务了(ucos的移植,参照TI_LM4F232_FPU_ucos),包含显示,ADC,输出,输入等任务。刚开始的时候,运行正常,但是大概在过半个小时左右,自己跳入了FAULT中断。我查看了各个任务的堆栈,都没有发现溢出的现象, 我现在用的是CCS,在发现FAULT时,查看FAULTSTAT寄存器,发现是0x0000001。
我的问题是:我能通过什么办法,定位在进入fault之前的程序位置。
谢谢。
你好,按照你的描述
约半小时后Configurable Fault Status (FAULTSTAT), offset 0xD28 的最低位会变成1.
参阅tm4c1230d5pm.pdf ,该错误属于 Memory Management Fault Status (MFAULTSTAT), bits 7:0。
详细说明如下:
The processor attempted an instruction fetch from a location
that does not permit execution.
This fault occurs on any access to an XN region, even when the MPU
is disabled or not present.
When this bit is set, the PCvalue stacked for the exception return points
to the faulting instruction and the addre
另外你的软件中的各个任务可以多记录一点时间标记, 同时可以修改RTOS的任务调度的时间片,看问题出现的时间是否等比例出现,以便找出该问题的规律性。
希望能帮到你。!