在王老板成功故事的影响下, 差不多所有Palmmicro的早期员工都在离开Centrality, SiRF或者CSR后开了自己的公司.
唐锐是最后一个踏上这条失败路的. 在赔了整整一年的钱后, 上个月他问我: 为什么当初Palm1的mp3生意失败了?
这个问题我早几年前就仔细思考过了. 所以我能够立刻回答他, 是因为我们的软件写得太差了. 我最近试图修改Palm1/PA1688软件的经历就充分说明了我当年亲手构架的软件结构有多么丑陋.
一个用户给我们发了几张他手头eHOG的图片, 找我们要升级软件.
我以前没有见过这个设备, 从PCB看我猜想它是一个PA168P和PA168V的混合体.
我决定添加新的硬件型号EHOG. 一定是因为距离上一次我真正修改PA1688软件已经很久远了, 我完全低估了这个工作.
我在inc\version.h中加入了VER_EHOG, 修改了同一文件中其它相关部分, 然后开始用命令行mk ehog sip cn编译.
很快我发现还需要添加inc\flags.h中VER_EHOG相关部分和make_hex.bat中ehog相关部分. 改完后没有编译错误了, 但是我还是找不到编译后应该产生出来的升级文件ehog_sip_cn_169006.bin.
检查了每一步后, 我发现还需要在PALMTOOL\P_MERGE\p_merge.cpp中加入ehog并且重新编译产生bin\p_merge.exe.
这下就复杂了, 因为p_merge.exe是用VC6编译的, 考虑到我把AR1688 Windows工具从VC6转换到VC2008编译过程中的工作量, 我决定放弃给PA1688软件添加EHOG硬件型号.
作为一个典型的坏软件, p_merge.exe在碰到未知硬件类型而不能合并出升级文件的时候, 居然会静悄悄的失败, 没有输出任何警告或者错误信息. 另外它把硬件类型的字符串保存在.exe文件中而不是一个配置文件中.
最后我总算通过添加OEM_FXO编译选项的方式产生了一个升级文件pa168p_sip_cn_fxo_169006.bin发给了这个用户, 不过他反馈说不工作.
In pursuit of profit there is no such thing as good and evil, generosity or deviousness; everything depends on chance, and not the best wins but the luckiest. -- Sergio Leone
|