互芯平台GSM软件简明教程(3)

2025-08-03

如果手机里面已经有正常运行的软件,则Ruby Script栏会输出0xffffffff和0x57,可以依次来判断手机和coolwatcher之间的通讯是否正常。点击工具栏的第8个图标,就开始下载,右下角会显示下载的进度条。

3.3、抓trace首先要确保编译出含有trace输出的软件。当前由于ROM空间的限制,默认trace输出都是关闭的。打开trace需要编辑相应项目的target.def文件,如下几行: ## 31 ## # trace 设置

GLOBAL_EXPORT_FLAG += MMI_NO_TRACE GLOBAL_EXPORT_FLAG += EDRV_NO_TRACE GLOBAL_EXPORT_FLAG += HAL_NO_PRINTF GLOBAL_EXPORT_FLAG += PAL_NO_TRACE GLOBAL_EXPORT_FLAG += SXS_NO_PRINTF GLOBAL_EXPORT_FLAG += APS_NO_PRINTF GLOBAL_EXPORT_FLAG += ARS_NO_PRINTF GLOBAL_EXPORT_FLAG += SXS_NO_DUMP GLOBAL_EXPORT_FLAG += MCI_NO_TRACE GLOBAL_EXPORT_FLAG += CSW_NO_TRACE GLOBAL_EXPORT_FLAG += CALIB_NO_PRINTF GLOBAL_EXPORT_FLAG += UMSS_NO_PRINTF GLOBAL_EXPORT_FLAG += UCTLS_NO_PRINTF GLOBAL_EXPORT_FLAG += VOIS_NO_PRINTF GLOBAL_EXPORT_FLAG += STACK_NO_PRINTF GLOBAL_EXPORT_FLAG += RFD_NO_TRACE 例如如果要打开MMI的trace,则修改为: #GLOBAL_EXPORT_FLAG += MMI_NO_TRACE #GLOBAL_EXPORT_FLAG += SXS_NO_PRINTF

也就是说,打开任何一个或者几个trace,GLOBAL_EXPORT_FLAG += SXS_NO_PRINTF都要被注释掉。然后全部重编(将\\soft\\build\\相应的目录删掉,再编译),这时的软件就是含有trace输出信息的。如果ROM空间不够,可以只保留英文 打开coolwatcher的Plugins菜单,选择Activate Trace Tool,右边会出现新的Trace tool标签,如下图:

选择图标

,可以设置trace level,如下图:

点击Apply,将手机开机,点击,就可以输出trace信息了。

3.4、上面提到的trace输出是非实时的,系统在空闲的时候输出trace,而且输出的数据量比较大的时候可能会输出不完整。另外有一种更简单的调试手段,使用hal_HstSendEvent()函数输出一个32bit的数据,这个输出是实时的,也不会被冲掉,输出的数据显示在Ruby Script栏里。事实上上面提到的开机输出的0x57就是调用这个函数输出的。

3.5、如果程序遇到异常,debug版本的软件会冻屏。这时连上coolwatcher,点击第5个图标,选择C:\\CSDTK\\cooltools\\rbbase\\common\\plugins\\CoolGDB\\profiles\\gallite_xcpu.cgd文件(选择一次即可,以后系统会默认用上次选择的)。然后选择第4个图标,即可进入gdb调试窗口。第一次使用的时候windows防火墙会提示拦截,请放行。常用如下gdb命令,可以用来帮助debug:

bt和bt f,输出出现异常的task异常现场的call stack; print或p,输出全局变量的值,如p gIsOnSearchingScreen;

其它常用gdb命令请查看gdb手册,在gnu目录下的《GDB Quick Reference.pdf》。

4、 开始一个新项目

我们的整个软件由三部分构成:target配置、代码、资源包。一套软件里面,有很多target配置,也有很多资源包,但是只有一套代码。新建一个target,选择一个现有的资源包或新建一个资源包,进行适当的编辑,再和当前的代码一起编译,就会生成一个新的项目的lod。 注意:下面提到的gallite若不特意说明指的是CT1129/30/31(8806),不包括CT1128。 4.1、target配置。一个新的项目,第一步是要配置其target。一般来说,我们可以选择一个现有的和新项目硬件配置比较接近的target作为基础,修改成新项目的target。

我们在\\soft\\target目录下面可以看到很多目录,每个目录是一个项目的target配置。 target配置分成三个文件

target.def : 主要是配置芯片型号和全局参数 tgt_board_cfg.h : 主要是配置gallite芯片接口和外设 tgt_app_cfg.h : 主要是配置文件系统和内存分配 下面我们详细描述一下这几个文件的具体参数的定义 4.1.1、target.def详细描述

输入资料:原理图和产品定义

参与人员:原理图设计者、驱动工程师

开始配置target之前,需要问清楚,项目所使用的 FLASH、LCD(模组和 IC 的 SPEC)、Sensor、RF PA、Audio PA、蓝牙等型号,以及支持的SIM卡数等。

先看一个模板,我们以gallite_r440_3232为例说明,蓝色部分是源文件内容,黑色部分是我对会经常修改的部分的注释。这里只是贴一个例子,后续对于专门问题会专门讨论: #######下面是gallite集成配置,不能随意改动################## CT_ASIC ?= gallite CT_ASIC_CFG ?= chip 3GPP_MODE ?= gsm ROM_TYPE ?= chip

##chip package for different sram size:CT1129/CT1130/CT1131 ##CT1129: 16Mbit sram ##CT1130: 32Mbit sram ##CT1131: 64Mbit sram CT_CHIP_PKG ?= CT1130 ##chip DIE:8805/8806/8808 CT_CHIP_DIE ?= 8806 CT_ROMULATOR ?= no

PM_MODEL ?= rda1203_gallite_CT1129 XCV_MODEL ?= xcv_rda6220_gallite_CT1129 AD_MODEL ?= codec_gallite

#上面是gallite芯片集成的配置。根据内置psram和spi flash大小的不同,gallite目前分为CT1129,CT1130和CT1131。根据贴的具体的芯片型号和批次,这里要给CT_CHIP_PKG和CT_CHIP_DIE赋正确的值。其它部分不必修改。注:CT_CHIP_PKG和CT_CHIP_DIE在bv3及以前的版本中不必定义。

######触屏驱动 gallite集成,需要则配rda1203_gallite,否则为空####### TSD_MODEL ?=

######FM驱动 gallite集成,需要则配rda5802e_gallite,特别注意的是若是使用ATV RDA5888S或RDA5888E中集成的FM时,需要配成rda5888e####### FM_MODEL ?= rda5802e_gallite

#有的带atv的项目客户对内置fm的效果不满意,要求使用外置fm,这里就需要修改成rda5888e

#######上面是gallite集成配置,不能随意改动###################

##注意1:除非特别说明,module的名字必须和edrv目录下面的目录名保持一致, ##否则编译的时候找不到对应的目标。如果edrv下面没有相关的目录,

##说明暂时没有这个设备的驱动,需要驱动工程师自己去开发一个新的驱动, ##驱动程序可以根据设备的SPEC参考已有的驱动进行修改。

## 1 ##

#######RF PA型号 驱动程序在edrv/rfd目录###################

## pa_rda6212 ## pa_rda6216 ## pasw_rda6218 ## pasw_rda6231

## pasw表示集成PA和Switch ## 推荐使用pasw_rda6231

PA_MODEL ?= pasw_rda6231

#对于4频的项目,一般会贴6232,但是软件驱动是通用的,这里也配成pasw_rda6231就行了。

##Switch型号

SW_MODEL ?=

#################################################################

## 2 ##

#######选择FLASH型号,驱动程序edrv/memd################### ##ADMUX MCP

##1 Numonyx M36L0R7050U3ZS 128+32 ## Numonyx M36L0R7050L3ZS 128+32 ## Numonyx M36L0R7050T4 128+32 ## Numonyx M36L0R7050T3 128+32 ## Numonyx M36P0R8060N0ZS 256+64 ## Numonyx M36W0R6050U4ZS 64+32

##2 Spansion S71NS128PB0 128+32 ## Spansion S71NS256NB0 256+32 ## Spansion S71NS256PC0 256+64 ## Spansion S71WS256NC0 256+32 ## Spansion S71WS256PD0 256+32

##3 TOSHIBA TY5701111183KC 128+32 ## TOSHIBA TY671111184KC 128+64

##Normal MCP

##1 Samsung K5L6331CAA_D270 64+32 ## Samsung K5L2731CAA_D770 128+32 ## Samsung K5J6332CTM-D770 64+32 ## Samsung K5L3316CAM 32+16

##2 TOSHIBA TV00560002EDGB 64+32 ## TOSHIBA TV00570002ARGQ 128+32

##3 EON EN71PL0640B0 64+32

## EON EN71GL064B0 64+32 ## EON EN71PL032A0 32+16 ## EON EN71GL032A0 32+16

##4 Spansion S71PL064JB0 64+32 ## Spansion S71PL064JA0 64+16 ## Spansion S71PL127NB0 128+32 ## Spansion S71PL256NC0 256+64 ##5 ESMT FM91L03216UA 32+16 ##6 Silicon7 SVME3216UTA 32+16

##7 Numonyx M36W0T60x0xTB3 64+16/32

##flash model interface:parallel/spi FLSH_IF ?= spi

FLSH_MODEL ?= flsh_gd25q32

#spi flash的驱动是通用的,这里可以根据容量来统一使用通用驱动flsh_spi32m、flsh_spi32x2m、flsh_spi64m和flsh_spi64x2m。在bv3及以前的版本中,还是需要使用特定驱动,比如flsh_gd25q32

SYS_MEMD_EBC_CLK ?= __52MHz__

ifeq \

##SPIFLASH spi CLK cfg:__52MHz__/__78MHz__/__104MHz__/__156MHz__ SYS_MEMD_FLSH_SPI_CLK ?= __78MHz__

GLOBAL_EXPORT_FLAG += __PRJ_WITH_SPIFLSH__ endif # (${FLSH_IF},)

##ram is ADMUX or not

GLOBAL_EXPORT_FLAG += MEMD_RAM_IS_ADMUX ##flash is ADMUX or not

#GLOBAL_EXPORT_FLAG += MEMD_FLASH_IS_ADMUX ## ram support burst mode or not

GLOBAL_EXPORT_FLAG += MEMD_RAM_IS_BURST ##flash support burst mode or not

#GLOBAL_EXPORT_FLAG += MEMD_FLASH_IS_BURST

##ebc clock use 52MHz/78MHz/104MHz

ifeq \GLOBAL_EXPORT_FLAG += RAM_CLK_IS_52M endif

ifeq \GLOBAL_EXPORT_FLAG += RAM_CLK_IS_78M


互芯平台GSM软件简明教程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化工厂实习周记

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219