硬件层面的“硬骨头”被一一啃下,“蜂鸟一号”c的硅片本身已经证明了其强大的物理基础。然而,正如林轩反复强调的,芯片的价值最终需要通过软件来体现。特别是对于功能手机而言,那套复杂而精密的通信协议栈软件,以及运行于其上的操作系统和应用程序,才是真正决定用户体验和产品竞争力的“灵魂”。
将这套庞大而对实时性、稳定性要求极高的软件系统,完美地移植、集成并优化到全新的“蜂鸟”硬件平台上,成为了项目组下一阶段的核心任务。这项重担,主要落在了基带负责人张建华和他麾下的协议栈团队,以及小张(张明)领导的应用与嵌入式系统团队肩上。
启明芯深圳研发中心,软件实验室区域。这里的氛围与硬件测试区不同,少了几分仪器的蜂鸣和示波器的闪烁,多了键盘密集的敲击声和工程师们低声讨论代码逻辑的声音。空气中弥漫着代码编译的味道和…似乎永不枯竭的咖啡香气。
张建华团队面临的首要挑战,是如何将那套融合了收购来的以色列公司早期3g技术(可能主要是wcda物理层和部分协议栈ip)和团队自主开发的gs\/gprs协议栈的复杂软件,高效地运行在“蜂鸟”的ar9内核上,并与硬件基带处理器(dsp和专用加速器)实现天衣无缝的协同。
“内存!内存!还是内存!”负责协议栈底层移植的工程师小王,看着编译器报告中那超过了片上sra容量的代码段(de segnt)大小,痛苦地抓着本就不多的头发,“完整的l1\/l2\/l3协议栈,再加上rtos内核和驱动,怎么塞都塞不下!必须砍功能吗?”
“不能砍核心功能!”张建华斩钉截铁地说,“gs\/gprs的兼容性是底线!想办法优化!把所有能优化的空间都给我榨出来!”
一场针对代码尺寸和内存占用的极致优化攻坚战开始了。
编译器优化拉满: 工程师们尝试了g ar工具链提供的所有优化选项(-os, -o2, -o3),仔细比较每种选项对代码尺寸和性能的影响,寻找最佳平衡点。 汇编级手动优化: 对于协议栈中那些被频繁调用、对性能影响最大的关键函数(如信道编译码、加密算法的核心循环),甚至不惜动用