最近负责将A公司一个比较稳定的代码分支移植到新平台上,新平台中包含了M公司和B公司的代码,这样的一个代码架构方便以后不同公司芯片方案的添加和开发。
在移植的过程中,编译成功后DUT上电,但是出现解压文件系统失败,串口信息:
0.760000] unlzma 632
[ 0.760000] unlzma 634
[ 0.764000] unlzma 632
[ 0.768000] CPU 0 Unable to handle kernel paging request at virtual address c0101f38, epc == 800f02c8, ra == 800f0264
[ 0.776000] Oops[#1]:
[ 0.776000] Cpu 0
[ 0.776000] $ 0 : 00000000 00000000 ffffff38 01000000
[ 0.776000] $ 4 : ff0000e0 000000e0 ff000000 000019e3
[ 0.776000] $ 8 : 802c0000 00000001 00000001 0000000a
跟进到出错的地方,是kernel中的lib\decompress_unlzma.c中函数unlzma出错,这个函数应该是解压squashfs中的文件。进一