第144章 年前
1月12日。
实验室里张明远在跑数据,周承宇在调算法,其他人各忙各的。
林东没打扰他们,走进自己的办公室,关上门,打开电脑。
屏幕上是他昨天写的系统框架。
liu內核裁剪了一半,驱动適配写了大半,进程管理写了一小半,內存管理刚开头。
內核裁剪剩下的部分,是电源管理和中断控制。
这两块不能砍,但可以精简。
他把不必要的中断源去掉,把电源状態机简化成三个模式一运行、待机、
关机。代码量不大,但逻辑绕。
他写了两小时,编译,跑起来,没报错。然后继续。
驱动適配还剩音频和传感器。
音频驱动他熟,传感器驱动麻烦一点,要调2c总线,要配寄存器地址。
他翻著数据手册,一行一行写,写完一个测一个。测到第三个的时候,12c通信死活不通。
他查了半小时,发现是地址写错了一手册上写的是068,实际应该是069。
改过来,通了。
他靠在椅背上,暗骂了一声。
这种低级错误,不该犯。
但一个人写系统,没人帮他看,没人帮他测,错了只能自己找。他揉了揉眼睛,继续。
请记住101 看书网藏书多,101??????.??????隨时读 网站,观看最快的章节更新
1月15日,內核裁剪完成,跑起来了。
屏幕上跳出几行启动信息,最后一行是“kernel alive”內核已启动。
驱动適配还剩最后一个一触控萤幕。
这是最关键的,周承宇的算法等著用。
他把数据手册翻到中断那章,开始写。
触控萤幕驱动分三块:i2c通信、中断处理、坐標上报。
12c通信他写好了,直接復用。中断处理要配gpi0,要写中断服务函数。坐標上报要转成屏幕坐標,要滤波去抖。
他写了两小时,编译,烧进去,屏幕没反应。
查1og,12c通信正常,中断没触发。
他翻数据手册,翻到引脚定义那页,发现中断引脚配错了。
改过来,重新编译,烧进去。手指按上去,屏幕上跳出一串坐標。
通了。
继续。
1月20日,驱动適配写完,硬体能认了。
屏幕亮了,触控能点了,电池能充了,天线有信號了。
他把手机主板接上去,屏幕上跳出东方科技的1?g0。那个小小的太阳,边缘一圈亮边,在暗色背景上微微发光。
继续写。
进程管理。
多任务调度、优先级、中断处理一这部分最复杂,也最核心。他写得很慢,每一行都要想清楚。不是不会,是不能错。错了后面全崩。
他先写任务控制块。
一个结构体,存任务d、优先级、栈指针、状態。写完,编译,没问题。再写任务调度器。双向炼表,按优先级插入,每次调度取第一个。
写了两小时,编译,跑起来,没问题。再写任务切换。保存当前任务上下文,恢復下一个任务上下文。这部分要写汇编,他不太熟,写写停停,翻了好几遍参考手册。
写到第三天,任务切换终於通了。
他开了三个测试程序同时跑,cu调度正常,没死机,没崩溃。
他靠在椅背上,揉了揉眼晴。
1月25日了。
还有內存管理。这是最后一块。
写完,系统就能开机了。
写完,手机就能跑了。
但內存管理也是最难的一块一內存分配、回收、碎片整理、虚擬地址映射一个人写,至少还要两周。
他咬了咬牙,继续。
先写物理內存分配器。
位图管理,每页4kb,总內存256mb,位图大小8kb。
写了一个小时,编译,跑起来,没问题。
再写虚擬內存映射。页表、页目录、地址转换一这部分最绕。
他写了两小时,编译,跑起来,没报错。
但一跑测试程序就崩。查10g,发现是页表没初始化。补上初始化代码,再跑,还是崩。查了两小时,发现是地址对齐问题。改过来,再跑,通了。
他靠在椅背上,长出一口气。
1月27日,內存管理写了大半,系统能开机了。
屏幕亮了,iogo出来了,桌面没跑起来。
还没写。但系统活了。內核在跑,驱动在跑,任务调度在跑,內存在跑。
他盯著屏幕上的开机信息,看了很久。
快了。
就差一点了。
他看了一眼时间,下午两点。
年前最后一次会议,三点开始。
他保存代码,关掉编辑器,站起来。
下午三点,会议室坐满了人。
张明远、周承宇、苏晓雯、程川、程屿、丁筱、李国辉、王梅、財叔、郑豪。十个人,围了一桌。
林东坐在主位,扫了一圈:“年前最后一次会,各模块报一下进度。”
张明远先开口。
他把笔记本翻开,念了一串数据:“主板功耗398ma,发热39.5度,连续跑了十天没死机。比年前目標好一点,但离最终目標还有距离。”
林东点头:“继续跑。年后目標一功耗350,发热38,跑30天。”
张明远点头,记下来。
他写的时候,笔尖在纸上停了一下,抬起头:“林总,30天连续跑,中间不能停。如果出问题一”
“出问题就解决。”林东说,“我们还有时间。”
张明远点了点头,没再问了。
周承宇推了推眼镜:“触控延迟11.8毫秒。年前目標达成。”
“年后10毫秒。”
“好。”周承宇说。他没多说什么,但推眼镜的频率比平时高了一点。10毫秒,比现在快將近2毫秒。他知道能做到,但需要时间。
程川说天线信號恢復正常,年前目標完成。程屿说散热压到了08度以內,比目標还好一点。丁筱说驱动配合算法跑通了,没问题。
苏晓雯说:“外壳50套,全部验收,0瑕疵。”
她把手里的中框放在桌上,银白色的金属在灯光下泛著冷冽的光。几个人凑过来看,程川伸手摸了一下,被程屿瞪了一眼。
李国辉在旁边清了清嗓子:“林总,有个事得跟您说。”
林东看著他。
“材料快用完了。”李国辉说,“那批航空铝材,之前大部分都卖了,留了一小部分做研发。50套外壳加上打样损耗,库存不多了。
按现在的良率,最多还能做500套左右。”
会议室安静了一瞬。
林东点头。
他当然记得。
日金山那批货,大部分变现了,留了小部分做样品和研发。500套,够年中之前用。年中之后,需要新货源。
“500套够用一阵子,”林东说,“年中之前,我会解决材料问题。”
李国辉点头,没再问了。
王梅在旁边记了一笔,抬起头看了林东一眼,想说点什么,又咽了回去。
林东站起来,走到白板前,写下年后目標:
主板一功耗350ma,发热38c,跑30天。
触控—10毫秒。
天线一比正常值高1个db。
散热—0.5度以內。
驱动——配合算法压到10毫秒。
外壳一500套良率98%以上。
他放下笔,转过来:“年后继续。都回去好好过年。”