在uboot中调试过程中遇到data abort的奔溃异常,详细打印如下:
data abort
pc : [<7fe50764>] lr : [<7fe73cf8>]
sp : 76ddfa58 ip : 00000000 fp : 4a0009b0
r10: 4a019540 r9 : 76df7e40 r8 : 000001e0
r7 : 00000500 r6 : 78a08df0 r5 : 7fedc238 r4 : 78108db0
r3 : 78108da8 r2 : 9b969796 r1 : 13a7253e r0 : 00000001
Flags: nzCv IRQs on FIQs off Mode SVC_32
Resetting CPU ...
从打印上看可能是越界或者非法访问,仔细查了下代码,发现是在程序中操作了使用free此前
申请的内存引起的。将相应的free操作屏蔽掉,就不会出现此问题。
这个问题很奇怪,理论上free此前申请的内存是没问题的,但是这个确会出现报错。后续如果分析
到具体问题原因再补充。
2018-07-05 更新:
后续此问题我在调试中发现,由于是在uboot中,刚好是申请一帧YUV数据空间,后续在做处理的时候,
有做地址对齐之类的处理,我将申请空间增大至YVV size*10倍,再做测试就能解决掉这个问题。