您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI DaVinci >> TMS320DM3x SOC >> 正文
  DM3730上Android的调试           ★★★ 【字体:
DM3730上Android的调试
作者:river_hk…    文章来源:river_hkw    点击数:    更新时间:2013-10-30    

环境变量设置

export JAVA_HOME=/home/jdk1.6.0_27
 export PATH=$JAVA_HOME/bin:$PATH
 cd /home/dm3730
 export ANDROID_PATH=`pwd`
 export PATH=$ANDROID_PATH/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH
 export CROSS_COMPILE=arm-eabi-
 export ARCH=arm
 export PATH=$ANDROID_PATH/u-boot/tools:$PATH
 export TARGET_PRODUCT=pantherboard
 export OMAPES=5.x
 export TOOL=$ANDROID_PATH/tools


 


 

1.x-loader  uboot   kernel和android改变调试信息的输出端口

要想使用uart2作为输出口,在x-loader中,加入
#if 1
    /* Enable UART2 clocks */
    sr32(CM_FCLKEN1_CORE, 14, 1, 0x1);
    sr32(CM_ICLKEN1_CORE, 14, 1, 0x1);
#endif
MUX_VAL(CP(McBSP3_CLKX),    (IDIS | PTD | DIS  | M1)) /*UART2_TX*/\  //4800216C and 48002170
MUX_VAL(CP(McBSP3_DR),      (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\
MUX_VAL(CP(McBSP3_DX),      (IEN | PTU | DIS | M1)) /*UART2_CTS*/\
MUX_VAL(CP(McBSP3_FSX),     (IEN | PTU | DIS | M1)) /*UART2_RX*/\

//如果板子上使用的是uart2,直接设置如下就行
MUX_VAL(CP(UART2_TX),       (IDIS | PTD | DIS | M0)) /*UART1_TX*/\
MUX_VAL(CP(UART2_RTS),      (IDIS | PTD | DIS | M0)) /*GPIO_149*/\
MUX_VAL(CP(UART2_CTS),      (IDIS | PTD | DIS | M0)) /*GPIO_150*/\
MUX_VAL(CP(UART2_RX),       (IEN  | PTD | DIS | M0)) /*UART1_RX*/\

/////////////////////////u-boot////////////////////////////
make distclean;make panther_config;make 2>&1 |tee u-boot_make.out

同x-loader,添加UART2时钟,修改UART2的管脚模式,   
MUX_VAL(CP(UART2_RX),        (IEN  | PTD | DIS | M4)) /*GPIO_147*/
改为
MUX_VAL(CP(UART2_RX),        (IEN  | PTD | DIS | M0)) /*UART2_RX*/

void per_clocks_enable(void)
{
...
#if 1
    /* Enable UART2 clocks */
    sr32(&prcm_base->fclken1_core, 14, 1, 0x1);
    sr32(&prcm_base->iclken1_core, 14, 1, 0x1);

#endif
    /* UART 3 Clocks */
    sr32(&prcm_base->fclken_per, 11, 1, 0x1);
    sr32(&prcm_base->iclken_per, 11, 1, 0x1);
...
}
 /*Bluetooth*/\
    MUX_VAL(CP(MCBSP3_DX),        (IEN  | PTD | DIS | M4)) /*GPIO_140*/\
    MUX_VAL(CP(MCBSP3_DR),        (IEN  | PTD | DIS | M4)) /*GPIO_142*/\
    MUX_VAL(CP(MCBSP3_CLKX),        (IEN  | PTD | DIS | M4)) /*GPIO_141*/\
    MUX_VAL(CP(MCBSP3_FSX),        (IEN  | PTD | DIS | M1)) /*UART2_RX*/\
    MUX_VAL(CP(UART2_CTS),        (IEN  | PTU | EN  | M0)) /*UART2_CTS*/\
    MUX_VAL(CP(UART2_RTS),        (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
    MUX_VAL(CP(UART2_TX),        (IDIS | PTD | DIS | M0)) /*UART2_TX*/\
    MUX_VAL(CP(UART2_RX),        (IEN  | PTD | DIS | M4)) /*GPIO_147*/\
--->
    MUX_VAL(CP(UART2_CTS),        (IEN  | PTU | EN  | M0)) /*UART2_CTS*/\
    MUX_VAL(CP(UART2_RTS),        (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\
    MUX_VAL(CP(UART2_TX),        (IDIS | PTD | DIS | M0)) /*UART2_TX*/\
    MUX_VAL(CP(UART2_RX),        (IEN  | PTD | DIS | M0)) /*GPIO_147*/\


////////////////kernel  &  adnroid/////////////////////////
root=/dev/mmcblk0p2 rootwait console=ttyO1,115200

第一步,使用默认调试信息,得到如下打印:
Kernel command line: console=ttyO2,115200n8 androidboot.console=ttyO2 mem=68M@0x80000000 mem=384M@0x88000000 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off omap_vout.vid1_static_vrfb_alloc=y omapdss.def_disp=dvi vram=32M omapfb.mode=dvi:1280x720MR-16 omapfb.vram=0:16M mpurate=1000
再做以下操作:
make menuconfig
boot option-->
选择使用默认command line:
修改default command line如下,因为一直显示的是uart3的,所以,将串口打印出的信息copy下来,完了在此强制使用此command,console=ttyO2是串口3打印,console=ttyO1是串口2打印,console=ttyO0是串口1打印。

 


2. 分辨率的修改

启动参数直接设置就可以

Kernel command line: console=ttyO2,115200n8 androidboot.console=ttyO2 mem=68M@0x80000000 mem=384M@0x88000000 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off omap_vout.vid1_static_vrfb_alloc=y omapdss.def_disp=dvi vram=32M omapfb.mode=dvi:1280x720MR-16 omapfb.vram=0:16M mpurate=1000

 


3. 

VFS: Cannot open root device "mmcblk0p2" or unknow-block(0,0)

Please append a correct "root=" boot option; here are the available partitions:

........

Kernel panic - not syncingL VFS: Unable to mount root fs on unknown-block(0,0)

PANIC: VFS: Unable to mount root fs on unknown-block(0,0)
解决:

在XXX-board.c中关闭gpio_wp只读;

同时在/driver/mmc/core/core.c中,在mmc_rescan()函数中,注释掉如下部分:

#if 0
    if (host->ops->get_cd && host->ops->get_cd(host) == 0)
    {
printk("mmc_rescan (1523)  \n");
        goto out;
    }
#endif

 


4,如果文件系统启动过程中,启动画面或者logo显示不正常,可以在/arch/arm/mach-omap2/XXX-board.c中,

尝试修改

    OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP |
            OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW |
            OMAP_PIN_OFF_WAKEUPENABLE),

或许可以解决问题。

 

 

 

 

 

 

////////其它一些问题可以参照看看

注:
cd $YOU_PATH/android/extern/ti-dsp
删除already_clean文件
cd $YOU_PATH/android
make TARGET_PRODUCT=pantherboard clean;make TARGET_PRODUCT=pantherboard OMAPES=5.x -j2 2>&1 |tee android_make.out

make  OMAPES=5.x


8、问题八:
host C++: libutils <= frameworks/base/libs/utils/RefBase.cpp
frameworks/base/libs/utils/RefBase.cpp: In member function ‘void android::RefBase::weakref_type::trackMe(bool, bool)’:
frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1

 解决方法:
打开Android.mk
$ gedit frameworks/base/libs/utils/Android.mk
将下面这一行
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
改为
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive


解决:
yum install libX11-devel.i686
顺便再根据http://scfofo.javaeye.com/blog/696676 的提示再安装gperf(yum install gperf)

8. /usr/bin/ld: cannot find -lhistory
看来fedora中缺的东西不算少
解决:
yum install readline-devel

 

So to enable
> > > > > Add HAVE_CUSTOM_WIFI_DRIVER_2 := true to
> > > > > build/target/board/generic/BoardConfig.mk file


make[2]: Entering directory /home/dm3730/android/external/ti-dsp/ti-dvsdk_dm3730-evm_04_03_00_06
make[2]: *** 没有规则可以创建目标“ce”。 停止。
#    make -C $(DVSDK_INSTALL_DIR) ce


修改分辨率:
修改frameworks/base/core/java/android/content/res/CompatibilityInfo.java里面的两个参数即可:
/**
The default width of the screen in portrait mode.
*/
//原来的
// public static final int DEFAULT_PORTRAIT_WIDTH = 240;
//public static final int DEFAULT_PORTRAIT_HEIGHT = 320;
//修改后
public static final int DEFAULT_PORTRAIT_WIDTH = 600;
public static final int DEFAULT_PORTRAIT_HEIGHT = 800;
此外修改系统设置文件里面的LCD参数可以调整显示效果,实际上是一种伪分辨率修改办法
使用hdpi-drawable:
在编译源码以后, out/target/product/generic/system/framework/framework-res.apk 中没有hdpi文件夹,虽然在out/target/common/obj/APPS/framework-res_intermediates/public_resources.xml中
hdpi文件夹的资源都已经被编译出来了,可是未能在system.img中有hdpi的资源,从而导致即便是设置800*600的分辨率显示的结果依旧是mdpi的资源,因此需要做以下修改
在文件 夹 build\target\product\generic.mk加入
CUSTOM_LOCALES:= hdpi mdpi
重新编译

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    DM3730 WinCE6 内存分配
    DM3730调试心得之CEMEK
    DAVINCI DM3730开发攻略——…
    DAVINCI DM3730开发攻略——…
    构建DM3730嵌入式linux开发环…
    构建DM3730嵌入式linux开发环…
    TI多媒体高性能处理器omap,a…
    repo下载TI ICS4.0.3源码,小…
    DM3730 qt和tslib 移植记录
    DM3730触摸屏校验
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2