典型案例分析

1、拷勤打卡钟产品QR-732,QR-733,原来的产品使用的单片机为NEC的uPD78F9418,由于货源、成本的原因,需要换成一种低成本易采购的单片机,根据用到的资源我们选择了义隆EM78P569进行开发,这颗IC有LCD驱动,IO口很多,有副时钟可以做实时时钟,正好符合要求,我们分析了原先的NEC程序代码,用义隆汇编代码重写,并按客户要求做了一些改进,园满完成任务。

    2、客户的产品是电机变频器,原先用的MCU是EE87C196CM,属于英特尔典型的工业级16位单片机,由于停产的原因,客户找到我们重新开发,但没有源代码,只能提供BIN文件,我们经过评估选定dsPIC30F3011重新开发,为了保证功能高度一致,我们对BIN进行了反编译,并分析汇编代码,然后用C重写,非常成功,得到了客户高度评价。  dsPIC30F3011程序样本  196程序样本

    3、客户是做远程抄表系统的,由于工程师跑了,造成集中器程序无法修改以适应不同的表头,该集中器是无线的,内置中兴的GPRS模块,通过485总线采集读数后通过GPRS转到后台,采用华帮MCU。客户要求我们用C重写整个程序,并做好注解,经过一个来月完成任务,客户非常满意。

    4、因为货源的原因,客户需要把代码从PIC18F6527转到PIC18F66K22,经过分析Datasheet,发现这两颗IC属于同一系列、在引脚功能、内部资源、ROM大小、EEPROM大小、A/D位数都差别不大,这就满足了转码的最基本要求,首先反编译 6527,再用66K22编译,一次就全部通过,很好,但不代表就可以直接使用,因为从资料上看,66K22的寄存器位置、有些位标置、有些寄存器配置方法不一样,我们选定6527来反编译刚得到的66K22代码,得到的ASM再与原6527的ASM对比,发现有几十行代码不一样,这说明这里面所涉及到的寄存器在两个IC中处于不同位,我们重点核对这些寄存器在两个IC中的功能,如果一致,就不用更改,不一致就要人工修正。这个产品用到了ADC,原 6527是10位,而66K22是12位,配置方法也不同,我们人工修正配置方法,再把采样结果从12位修改成10位的,新加入的代码放在了空白的地方,经过上机测试,功能完全OK。依托我们强大的反编译技术,项目得到顺利完成。另一例是PIC18F2480转到PIC18F25K80(汽车诊断仪OBD-II,OBD2,Vgate SCAN ELM327 V1.5)。

    5、客户之前采用腾富公司单片机JA5857E,由于IC停产,只能提供OBJ代码,无源代码,找到我们希望把代码转换到其它IC上,经过研究,这颗IC与EM78P447,MDT2020,FM8PE59,PIC16C57都相互兼容,管脚封装一模一样,这样就不必修改PCB板,其中指令与 MDT2020、PIC16C57最为接近,但从价格看MDT2020更便宜,所以我们推荐MDT2020,并且成功转码。

    6、成功破解菲林feeling单片机烧录时序,成功破解芯睿单片机烧录时序。

 

相关