公司有一产品用到了J2ME技术,而且原来使用的pbp1.0将使用另外一家公司新开发的新产品。
据说两三个月内无法交货,那我们又不能等,只好自己先做一个测试平台。所以只有移植原有的
pbp1.0。
可是我们项目组的人谁也没有做过这事,组长只好把这事分到我一个人头上,试试看。
原有的pbp1.0是MIPS平台上跑的,而我要做的就是把它移植到superh4上。由于移植之前做了
些调查,发现包括自动生成的有不少于八个的汇编代码文件。一开始就觉得有不少困难,不过最后学是
修改完成,过是编译通过后生成的可执行程序在调用JNI_CreateJVM的时候就CoreDump了,最终
跟踪到是JNI_invokeFromC的问题,这是一个汇编程序里的函数,而这个函数是由GRASP动态生成
的。所以查起来非常困难。
我们组长看到希望比较渺茫,就让我先移植CDC1.0试试。取得CDC1.0的代码后,发现也有一个汇编
程序文件,不过远比PBP1.0少多了。修改CVMjniInvokeNative,也就是invokeNative_superh4.S
里的函数完成后,测试通过,在几次调用CVMjniInvokeNative函数都正常,但是有一次出现了问题便
抛出了IllegalMonitorStateException的异常,后来就一直进入了这个死循环,一直在那里加载
java.lang.Object和java.lang.String并一直都抛出这个异常。
到这步我实在是没有办法了,不知道下一步该怎么走了。希望各位大虾们能帮帮忙。
谢谢!万分感激!
(不好意思我实在是没分了,只能给2分,全都给了!)
会员注册
会员登录
个人空间
发表评论