我以前做过手机驱动。其中碰到一个问题:就是随着手机整机代码的变大,调试过程中编译,download 代码花去了很多时间。有时候我只是修改简单的几个寄存器,想看看结果,就需要花很长的时间去编译和下载,这对我来说是不能容忍的。我的想法就是 :在驱动调试的时候整理一个小的手机程序,不需要mmi,只包含底层模块的代码,能够点屏,响应按键,有串口输出, 这些基本功能就可以了。但是,搞过手机的人就知道,随着手机功能的不断增加,同时缺少对新增模块的代码维护,模块间函数乱调,全局变量泛滥这已经是普遍现象,单从编译角度去掉不相关的模块也不是一件轻松的事情了。所以我就干脆移植一个简单的os,在这之上加入我想要的底层模块,加入串口驱动,调试新增的硬件模块。于是我先后在我做过的手机平台 sysol2,TI,MTK 上移植了ucos,后来我又仿照TI的riveria 对ucos进行了封装,使它在创建task和timer等接口上跟原手机代码基本一致,由于底层模块可以自己增减,生成的手机程序很小,下载它只需几秒钟时间,这大大加快了驱动调试和移植的速度。甚至在产线上进行质量检查的时候也可以用小程序代替原来的整机程序。至于ucos的移植技巧,已经在网上被写烂了,就不多作介绍,如果有什么问题和新的心得欢迎来跟我交流。[52RD |