VxWorks没有从FLASH复制映像到RAM再解压的启动方式啊,除非你修改VxWorks源代码。
对啊,我是想直接修改romstart.c中的源码,但是不知道怎么修改
从flash解压过程:从flash读->解压->写到ram。
从ram中解压过程:从flash读->写入ram->从ram读->解压->写到ram
你觉得哪个过程会快点?
这个我也是不清楚,所以需要验证下。还有虽然多了几个RAM中的操作,但是如果flash中解压的时间比在ram中长很多还是可以考虑的
启动慢是使用了大内存的问题吧,vxworks在初始化的时候对内存初始化特别耗时间
我也遇到了同样的问题,不过我的bootrom是非压缩的,主要是从flash拷贝到ram比较慢,
不知道怎么解决,
另外,我也没有打开cache,好像cache不是随便打开的,不知道打开cache对调试过程有没有什么影响
望高手指点迷津,谢谢!!!
我的操作系统启动慢的问题解决了,
启动慢有几个原因:1.当从flash向内存拷贝结束后,会把内存其余部分清零,这需要很长时间;
2.内存很大,在执行MMU内存初始化时需要时间;
3,cache没有打开,
我把上述三个方面做了修正以后,启动很快
可能的话,使能cache。我曾经遇到powerpc(MPC8548E)上,使能了指令cache和数据cache,但是初始化内存非常慢,后来发现,修改时忘了把flash中那段代码的区域设置为cachealbe,从而执行那个for循环要不停的从flash中取指,所以非常慢。修改好就正常了。
建议通过点灯等方式,一步一步确定是哪一段代码影响的速度
未必需要把要解压的代码读入RAM再解压,因为不管先读入RAM还是解压时读入,只要是读入一遍应该就没太大差别。
考虑先把解压代码读入RAM,再在RAM中执行解压代码, 如果楼主解压代码已经加载到RAM中解压了,当我没说
慢,是因为没有打开指令cache。通常情况下在bootrom当中要将指令cache打开,数据cache关闭的。