山外有山,天外有天,学无止境,做产品,搞技术更是如此。没有任何个人及公司能够闭门造车研发出好产品来,需要不断的学习别人先进的东西,取长补短,这样人类才能不断的进步,社会才能不断的发展。当今社会,商品经济环境早已成为主流,学习、创新能力变得越来越重要,没有学习,就不可能有创新。
要学习、学会先进技术,对于嵌入式产品而言,要了解硬件原理,有电路板就可以,这也容易获得,买个设备就可以了。而对于嵌入式软件,最好莫过于得到源代码。而源代码是公司的命脉,外界的人不可能获得。除非去偷,这是犯法伤德的事,可不能干。就没有其它方法了?非也,那就是以技攻技,即以更前沿、更具技术含量的方案去解决,我这里称这方法为逆向分析。
第一步,得有被学习、研究的对象,花钱买要学习的产品。这步没有技术含量,只是商务运作。商品经济下,只要有钱,应该就可以解决。
第二步,将设备的核心,即CPU的程序读出来,得到二进制即BIN程序文件。这个步骤,需要专业人士操作,非专业人士勿试。
第三步,将第二步得到的BIN程序文件进行反汇编,得到可阅读性强的汇编源代码,这样,就可以完全学习了。只有读懂了,才能够修正、创新。这个步骤,涉及的面比较广,首先是需要解决反汇编工具的问题,必须要有支持本CPU的反汇编工具。其次是要有看得懂本CPU汇编程序的工程师 。
第四步,也是最高境界了,就是将第三步获得的已看懂的汇编程序,精准的翻译成更为直观的C语言程序。有此C源代码为基础,就可以任意发挥创新了。这一步要求工程师不仅兼备汇编语言及C语言,对耐心、细心要求也高,工程师对这项枯燥的工作,一定要感兴趣,否则再牛的工程师,也往往让项目做失败。