新的平台,新的挑战

开始弄高通平台快三个月了,全新的平台,全新的挑战。跟MTK(ralink)、Realtek 平台开发差异太大了。

以前开发主要靠两个文档,开发手册和datasheet。datasheet主要是驱动开发时候使用(寄存器和地址),但是开发手册基本上什么都有,软件开发 so easy.

BUT。。。高通平台,没有找到开发手册,不仅如此,其他的资料也非常难找,找到的资料基本对开发入门毫无作用。

那么现在就有以下几个方面需要自己搜集资料、向别人请教,慢慢上路了。


1、代码结构。

代码结构一般对应硬件结构。硬件有

新的平台,新的挑战_第1张图片

那么对应软件就以下几个模块了:

boot_images代码、apps_proc linux代码、modem_proc代码、RPM代码、音频代码等。后面两块没怎么用,主要就是boot_images代码、apps_proc linux代码、modem_proc代码这三块了,apps_proc linux代码则是修改最频繁的代码了。


2、编译方法(编译环境)

这一块是非常纠结的,现在仍然很多东西不懂,感觉bitbake有点变态。

linux工程的编译是采用bitbake模块化的编译机制,它支持模块的单独clean、compile和install。模块编译如下:

  . build/conf/set_bb_env.sh

  bitbake -fccleanall   oem

  bitbake -fc compile oem

  bitbake -fc install oem

  build9615

编译目录在:\oe-core\build\tmp-eglibc\work\armv7a-vfp-neon-oe-linux-gnueabi下。

bitbake是什么东西呢?那么就得知道OpenEmbedded了,OpenEmbedded(OE)是一个开源的嵌入式linux系统构建环境,下一篇转载一下它的内容。


另外需要看的两篇文档是:BitBake User Manual.pdf  openembed user manual.pdf,网上可以找到。


bitbake是编译的一个难点,还有一个难点是autotool,也在以后介绍了。


3、烧录方法

linux里面习惯性,通过串口进入bootloader,然后就可以根据bootloader的命令进行烧录下载了。

BUT。。。

这个产品根据没有引出串口,因为还涉及Modem的代码,即不是一个纯粹的linux系统,根本不能在boot模式进行烧录下载。

高通提供了两个工具QPST和TPST,QPST可以根据模块选择下载,TPST下载最终的download.img.

这两个工具也不是很好用,需要积累吧。


4、调试方法

linux里面一个printf、一个printk,通过串口打印,调试代码简单快捷。

但是这边没串口。

方法有:

A、高通提供了QXDM这个工具,和自己的打印函数,基本上可以当做printf用了。

另外QXDM这个工具太强大了,很多功能现在还不会用,以后还得研究研究。

B、adb shell切换工作,在CMD下,杀死进程,再打开进程,就有这个进程的调试信息了。

C、脚本里面把数值写到根目录的某个文件下

D、C代码也可以system()函数调用shell命名,如 system("touch 2013"),当跟目录下有2013这个文件,就证明运行到这一句了;

E、驱动开发呢?还是需要找硬件焊接串口,用printk了。




你可能感兴趣的:(新的平台,新的挑战)