第53章 代码与焊锡的协奏曲 - 原型机攻坚(2/3)
轮”,实现起来更是困难重重。需要定制开模的精密机械结构、高灵敏度的光电或电容传感器、以及与之匹配的cu(微控制器)接口和驱动程序。阿ken负责结构设计,小李负责硬件接口,小张负责驱动软件。三方紧密配合,反复试验,废掉了好几版设计,最终才在林轩的亲自指导下(他甚至画出了关键传感器的电路原理图和核心驱动算法的伪代码),勉强做出了一个功能基本可用、但手感和精度还有待改进的第一版原型。
软件团队在小张的带领下,同样面临着一场“榨干”硬件潜能的战争。
在“镣铐”中舞蹈: “启明一号”的ar7内核主频不高(相对于未来的处理器),板载ra和ro资源更是极其有限。要在这样的平台上实现林轩要求的、媲美未来产品的流畅ui动画、快速响应、以及对数千首歌曲的高效索引和管理,无异于要求一个小学生去解大学生的高等数学题。小张团队的工程师们几乎将每一行c代码和汇编代码都优化到了极致,对内存的分配和使用更是抠到了每一个字节。
算法的“降维打击”: 当团队在文件索引速度上遇到瓶颈时(当cf卡里歌曲超过一千首,查找和列表滚动就会变得卡顿),林轩直接将他前世早已烂熟于心的、适用于嵌入式环境的“内存优化型b+树索引算法”的核心思想和伪代码框架,“传授”给了小张。小张和他的团队如获至宝,连夜攻关,将这个算法成功移植并优化到了播放器的固件中。当他们看到优化后的版本,即使面对装满了5000首p3的16b cf卡(这在当时已是天文数字般的容量),依然能实现毫秒级的歌曲定位和“丝滑”的列表滚动时,整个软件团队都沸腾了!他们知道,仅凭这一项技术,他们的播放器就已经领先了时代至少五年!
ui的“精雕细琢”: 对于ui交互的流畅度和美观度,林轩的要求更是近乎苛刻。小张团队为了实现那些看似简单的滚动动画和淡入淡出效果,绞尽了脑汁。林轩再次出手,给他们讲解了基于“脏矩形”更新和“双缓冲”绘图的嵌入式gui优化技巧,并提供了一个极其轻量化的图形库核心代码框架。最终呈现出来的效果,虽然只是单色,但其流畅度和响应速度,足以秒杀当时市面上任何一款便携设备。
这段时间,
本章还未完,请点击下一页继续阅读>>>