|The Good, the Bad and the Ugly|
| || |
|Apr 5, 2014|
|Inspired by the success stories of Dr Wang, nearly all Palmmicro early employees started their own businesses after leaving Centrality/SiRF/CSR.
Tang Rui was the latest one to join this unsuccessful road. After losing money for a whole year, he asked me one question last month: why Palm1 failed in the mp3 business?
I had already thought over the question a few years ago, so I can answer him immediately, it was because we wrote the software too bad.
My recent attempt to modify the Palm1/PA1688 software showed just how ugly the software structure was built by myself.
An user sent us several images of his eHOG and asked for upgrade software. I have never seen the device before.
Judging from the PCB I guess it is a mix of PA168P and PA168V.
I decided to add a new hardware type EHOG. It must have been a long time since the last time I made serious changes to PA1688 software, so I fully underestimated it.
I added VER_EHOG in inc\version.h and modified other related part in the same file and began to compile it with command line mk ehog sip cn.
Soon I found that I also need to add VER_EHOG related changes in inc\flags.h and ehog related changes in make_hex.bat.
After those changes, no compiler error was shown, but I still can not find the upgrade binary file ehog_sip_cn_169006.bin supposed to be generated after compilation.
After checking each steps, I found that I also need to add ehog to PALMTOOL\P_MERGE\p_merge.cpp and recompile bin\p_merge.exe.
The would be a huge task because p_merge.exe was compiled by VC6.
Considering the effort I made when I was converting AR1688 Windows tools from VC6 to VC2008, I decided to give up adding hardware type EHOG to PA1688 software.
As a typical bad software, p_merge.exe will fail to merge unknown hardware type binary file silently without any warning or error output. And it kept its hardware type text strings in .exe file instead of a configuration file.
Finally I managed to get an upgrade file pa168p_sip_cn_fxo_169006.bin by adding an OEM_FXO compile option and sent to the user.
To my dismay I was told that the new software did not work with his device.
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
No comments for this page yet.