同样的操作系统在不同板子上一个能跑一个不能跑的问题

做板子适配的时候,发现同样的镜像,在一个板子上能跑,另一个板子上不能跑。发生的现象如下同样的操作系统在不同板子上一个能跑一个不能跑的问题同样的操作系统在不同板子上一个能跑一个不能跑的问题

同样的操作系统在不同板子上一个能跑一个不能跑的问题

同样的操作系统在不同板子上一个能跑一个不能跑的问题

在走到这一步,之后一直是这样。当时以为是系统初始化未完成的问题,查了代码查好久都没解决。在查了bios里的standard cmos setup之后,发现内存才126M,而可视化配置的heap达到512M,这属于系统初始化的时候操作内存非法访问了,没有初始化完。在可视化配置的时候在heap里配置的堆到96M的时候,问题得到解决。


系统初始化的流程还需要进一步系统了解,在排错的时候是从sysAlib.S文件_start()开始排查,然后是bootcard.c然后查的prjConfi.c文件里的函数。接口流程顺序如下。

同样的操作系统在不同板子上一个能跑一个不能跑的问题同样的操作系统在不同板子上一个能跑一个不能跑的问题同样的操作系统在不同板子上一个能跑一个不能跑的问题

在解决这个问题的时候用了bochs调试这个镜像,系统不停的重启,在给镜像的内存配到6M之后,这个问题解决掉了,暂时不知道什么原因。