zoukankan      html  css  js  c++  java
  • 【原创】WCDMA新平台BOOT的开发调试总结

      调试一个新的WCDMA平台有一个多月了,目前算是可以正常运行了。一路走来,磕磕碰碰,遇到了各种各样的问题,吃一堑长一智,从中也学到了很多东西。

    问题一,编译成功,但是通过TRACE32不能下载代码

    表现: 在TRACE32上执行tools目录下的mjnand脚本,选择操作菜单“1: Send Partition Table”, 出现错误:

          "----  DID NOT COMPLETE Send Partition Table"
      "EXITING due to failed command:: Send Partition Table"

    调试: 由于用TRACE32烧写代码,首先要把一段代码(jnand.elf)烧到RAM中,然后把控制权交到RAM中的这段程序,之后通过软断点回到TRACE32继续操作。 所以可以先看看RAM中的jnand代码是否正确执行。 打开jnand_param.cmm可以看到jnand的代码存在在RAM中的0x00100000地址,在TRACE32中设置0x100000断点,打开断点可以看到符号表跟汇编代码不一直,所以猜测是RAM的配置错误,导致Jnand的程序错误,当然也就不能接收Trace32的命令。

       用于这时的MCP都是空的,所以配置SDRAM都是在setupebi1_20mhz.cmm这个脚本中,根据spec检查脚本中寄存器的配置,发现默认的配置是针对1Gb的SDRAM的,而我们硬件上时256Mb的SDRAM,所以要修改SDRAM row&col size , 从原来的A14~A10改成A13~A9。 修改后就可以正常烧写代码。

      

    问题二,通过TRACE32开始运行,每次都不能跳转到AMSS的入口

    表现: 代码烧写完成以后,就可以用TRACE32开始运行,但是发现每次都可以执行到L4的入口地址:0x100000(与jnand的开始地址相同,但是内容已经不一样了),但是不能执行到AMSS的开始地址:0x1e7000。

    解决方式: 去掉TRAC32 Break->OnChip Trigger..中的Set下的DABORT,PABORT,UNDEF 3个选项。

       由于之前烧写代码都是用tools\mjnand\mjnand.cmm这个脚本,它只是简单的把代码烧到MCP中。所以可以改用build\ms\目录下的mjnload.cmm,它不仅烧写代码,还可以加载全部的符号表,并且去掉TARCE32中的这几个选项。

     

    问题三, 系统运行起来后,设备管理器上找不到口

    解决方式:通过检查硬件连接,发现高通VREG_USB默认是由VREG_5V提供的,而我们是直接由VBUS提供的。所以可以在hsu_api_init_phy中修改VREG_USB的提供电压。

     

    问题四, 可以通过AT命令打电话,但是不能拨号上网

    表现: 系统也跑起来了,口也找到了,通过超级终端也可以发送AT命令,通过WindowsXP自带的拨号软件可以拨成功(提示"拨号成功,速度115200kpbs"),但实际上打开IE也不能访问网站。

    解决方式: 在拨号前,要先发送一条设置AT命令:AT+CGDCONT=1,"IP","3GNET","",0,0

     

     

     

  • 相关阅读:
    mac 格式化U盘
    SSD接口详解,再也不会买错固态硬盘了
    详解Paste deploy
    (实用)Ubuntu Linux静态IP网络配置
    Python WSGI开发随笔
    利用CA私钥和证书创建中间CA
    使用OpenSSL创建自己的CA root certificate
    创建自己的PKI公/私密钥对和公钥证书
    openssl创建自己的CA certificate
    Keystone中间件WSGI环境变量总结
  • 原文地址:https://www.cnblogs.com/hengfeng/p/1646554.html
Copyright © 2011-2022 走看看