年前做过一款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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. android EditText设置不可写
  3. android 使用html5作布局文件: webview跟javascript交互
  4. android studio调试c/c++代码
  5. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  6. 锁屏界面
  7. 关于Android(安卓)Studio3.2新建项目Android(安卓)resource link
  8. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  9. android(NDK+JNI)---Eclipse+CDT+gdb调试android ndk程序

随机推荐

  1. Android(安卓)常用技术框架的基本使用
  2. android之和时间相关的DatePicker/TimerP
  3. android input system(frameworks) analy
  4. 如何在android虚拟机中安装APK
  5. android 获取 apk mainfest.xml中的信息
  6. Android菜鸟笔记-selector的使用
  7. Retrofit +OKHttp简单封装使用
  8. Android 应用软件开发(一)
  9. 阿拉伯语布局修改总结
  10. android退出系统的绝杀方法