年前做过一款Android 2.3,用飞思卡尔iMX5的系统,

过了几天猪狗不如的生活。。终于搞定。

有了上次经验,这次用iMX6做Android 4的平台,就顺畅了很多。

第一天,下载系统

下载飞思卡尔的iMX6安卓软件包。下过来后,按照文档的指示,下载repo,

克隆各种git仓库路径。。网速太慢,晚上放着下。。

第二天,编译系统

第二天早上一看,代码全下好了,好现象!还是按照文档,编译uboot,kernel,boot.img,system.img等各部分。期间遇到编译错误若干,还好都不难解决,基本上还是编译iMX5安卓时遇到的老问题,还有就是linux编译机器要装一个软件包。大半天的功夫,编译完成。

接下来的功夫,参考硬件设定的管脚分配,在linux kernel的arch/arm下,将管脚分配的代码重新整理一遍。上百管脚映射到代码里,真不是省心的事情。

------ (分割线,等待硬件打板子贴片回来)

(N天后的)第三天,软硬件联合调试

硬件板子终于回来,开始软硬件联合调试,真正的挑战开始了。刚开始心里非常没谱,这拿到手里的就是块砖啊,能不能运行起来是个未知数。。。如果硬件有什么问题,咱调试软件可就苦了。事后证明,我们的硬件工程师Y大神,是非常牛逼且细致的,几乎没出什么问题。

软件调试的过程,就是拔除一个个问题的过程。

第一步,先把uboot启动起来。开始极不顺,uboot烧进去,板子啥输出都没有。这不是板子,就是砖拿。。后来发现问题了,弄错一个芯片小型号,找到对应型号的uboot,串口终于打出数据。低级错误,简直。。

第二步,启动linux kernel。研究下uboot的启动参数,将booti命令指向正确的mmc设备,linux正常启动。

第三步,让linux kernel正确加载init并引导文件系统。这里又遇到不小的困难,kernel启动完就不动了。不过呢,咱不是飞思卡尔做系统的工程师,所以咱相信,一定是小问题。。各种可能的问题一一考虑,文件系统所在的分区对否?mmc卡的驱动对否?加载顺序对否?mmc卡4线还是8线模式?mmc卡硬件上供电没?一一确认修改无误后,并调整mmc卡为4线,调整文件系统所在的mmc卡为linux识别到的第一块卡。android系统的串口终端命令行,终于运行起来了。

碰壁无数,怀疑无数,Y大神给打气无数。。好在收获不小。此时天色已晚,代码渐欲迷人眼,收拾装备,明日再站。

第四天,继续软硬件联合调试

安卓的串口界面出来了,是个好现象,给了大家不少的鼓舞。不过遗憾的是,仍旧没看到lvds屏幕显示出图形界面。Y大神帮看了又看硬件电路,觉得应该没有问题的。屏幕的背光能亮,但是屏幕上就是完全没有内容。Y大神提醒,会不会IPU的输出通道设错了呢?果真如此的话,也是很令人吐血的,一则系统默认的参数,不大可能留着第一个通道不用,用第二个;二则咱trace了下内核关于IPU部分的代码,铩羽而归。

然而,事情就是如此的巧合,事后证明,的确是这个地方问题所在。期间种种迂回曲折,不说了。

屏幕点亮后,启动进入安卓界面,接上鼠标,管用!再测试RTC,管用!兴奋异常!

然后将触控屏的驱动加到内核里,再次管用!当然还有点问题,触控屏的位置不对,联想到Android 4和以前的2.3不同,它的触控屏需要有个idc描述文件。抄段idc文件,用PID/VID命令方式,放到指定的idc目录下。能使用触屏的安卓系统,也做出来了。

一面是疲惫,一面是激动,安卓系统虽然成功运行,后续需要优化的其实还很多。

此时又是天色已晚,代码渐欲迷人眼。鏖战几天,人跟散架了似的。跟老总告假调休,将代码提交到仓库,后续的工作交代给同事,休假去也。

(转载请标明:http://www.cnblogs.com/xhawk18/)

更多相关文章

  1. Android 电子书应用完全开源代码
  2. [置顶] 如何使Android应用程序获取系统权限来修改系统时间
  3. 去除Android系统应用的通知功能
  4. Android缩略图类源代码
  5. Android 根文件系统分析(2)
  6. 深入浅出Android Gradle构建系统(三:build task)
  7. 手势识别兼容Android 1.x和2.x的代码

随机推荐

  1. android中开启子线程
  2. Android(安卓)Service 两种启动方式的区
  3. Android仿微信雷达扫描效果的实现方法
  4. Android(安卓)Vibrator的使用
  5. Android(安卓)8.0指纹流程
  6. 使用AlertDialog实现使用在android中弹出
  7. 修改android SDK 模拟器(avd) 内存大小
  8. Parcelable的使用
  9. android studio dependencies依赖的库(jar
  10. Android(安卓)9(API级别28)特性总结