Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2151583
  • 博文数量: 438
  • 博客积分: 3871
  • 博客等级: 中校
  • 技术积分: 6075
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-10 00:11
个人简介

邮箱: wangcong02345@163.com

文章分类

全部博文(438)

文章存档

2017年(15)

2016年(119)

2015年(91)

2014年(62)

2013年(56)

2012年(79)

2011年(16)

分类: 其他平台

2015-10-12 11:05:40

一.环境搭建
XP与win7下都可以用下面的方法搭建环境
1. 将win7下面绿色破解版本RVDS3.1.rar里面的ARM文件夹解压到C:\Program Files\中
2. 将armar.rar解压,将解压出来的armar.exe拷贝到C:\Program Files\ARM\RVCT\Programs\3.1\569\win_32-pentium中覆盖掉以前的armar.exe
   注:原先的armar.exe是580KB,正确的armar.exe是594KB
3. 设置环境变量
  1. ARMLMD_LICENSE_FILE C:\Program Files\ARM\Licenses\rvds.dat
  2. ARMROOT    C:\Program Files\ARM
  3. Path    添加在后面 C:\Program Files\ARM\bin\win_32-pentium;C:\Program Files\ARM\Utilities\FLEXlm\10.8.5.0\1\win_32-pentium;C:\Program Files\ARM\RVCT\Programs\3.1\569\win_32-pentium
  4. RVCT31BIN    C:\Program Files\ARM\RVCT\Programs\3.1\569\win_32-pentium
  5. RVCT31INC    C:\Program Files\ARM\RVCT\Data\3.1\569\include\windows
  6. RVCT31LIB    C:\Program Files\ARM\RVCT\Data\3.1\569\lib
4.检查
  1. cmd中运行如下:
  2. C:\Users\Administrator>armar --vsn
  3. ARM Archiver, RVCT3.1 [Build 1055]
5.安装office
一般系统都带了office,如果没有安装则需要装office中的excel
只需要装excel就可以了,office2003就够用,office2007也可以.
6. 安装perl
双击安装ActivePerl_5.16.2.3010812913.exe即可
7. 源码下面需要拷贝的文件及目录
  1. cmd.exe
  2. tools\MinGW
  3. tools\msys
  4. tools\make.exe
  5. \plutommi\Customer\ResGenerator\7za.exe
  6. \plutommi\Customer\ResGenerator\convert.exe


二.编译
1.编译方法
E:\6261\make\CENON61D_3232_11C_GPRS.mak
在源码的make目录下,有一堆*.make文件,能一个CENON61D_3232_11C_GPRS.mak及CENON61D_3232_11C_GPRS.mak(KAL_TRACE_OUTPUT=FULL)后面有KAL_TRACE_OUTPUT=FULL的两个*.mak文件就对了。
构造编译命令时把GPRS去掉,写成如下
make CENON61D_3232_11C gprs new
make VITA61A_BT_11C gprs new
2. 出错及问题的解决
2.1 出现
C:\Program Files\ARM\ADSv1_2\licenses\license.dat is not existed!
不用管,没有问题

2.2
在.\plutommi\Customer\ResGenerator\ResgenXML\ResgenSrc\mmi_rp_xml.c中
添加定义L335 
static void mmi_rp_mgr_output_res_base_table();

2.3
E:/temp/mcu/plutommi/Customer/ResGenerator/ResgenCore/src/common/ImageGroupCreator.cpp:35: undefined reference to `std::__default_alloc_template::allocate(unsigned int)'
把下面三个目录下的.o删掉
E:\cong\6261\plutommi\Customer\ResGenerator\OfflineResGenerator\lib\common\*.o
E:\cong\6261\plutommi\Customer\ResGenerator\ResgenLog\lib\common\*.o
E:\cong\6261\plutommi\Customer\ResGenerator\ResgenCore\lib\common\*.o

2.4
nvram_gen_util.c:1002: error: conflicting types for 'nvram_gen_search_entry'
在E:\MTK\6261\tools\NVRAMStatistic\src\nvram_gen_util.c的开头添加定义
nvram_ltable_entry_struct* nvram_gen_search_entry(nvram_lid_enum lid);

2.5 这个可能不需要
[ERROR] Cannot determine the original codegen database: BPLGUInfoCustomApp_MT6261_S01_MAUI_11C_W13_52_MP_V2 BPLGUInfoCustomApp_MT6261_S01_MAUI_11C_W13_52_MP_V2_F4
make: *** [.\build\CENON61D_3232_11C\gprs\MT6261r\codegen_dep\cgen_cfg.det] Error 2
new
把下面三个目录下的BPLGUInfoCustomApp_MT6261_S01_MAUI_11C_W13_52_MP_V2删掉
E:\cong\6261a\tst\database_classb
E:\cong\6261a\tst\database_classb\MT6261\S00\gprs\KAL_TRACE_OUTPUT\FULL\GEMINI\2
E:\cong\6261a\tst\database_classb\MT6261\S00\gprs\KAL_TRACE_OUTPUT\FULL\GEMINI\FALSE
E:\cong\6261a\tst\database_classb\MT6261\S00\gprs\KAL_TRACE_OUTPUT\NONE\GEMINI\2
E:\cong\6261a\tst\database_classb\MT6261\S00\gprs\KAL_TRACE_OUTPUT\NONE\GEMINI\FALSE
BPLGUInfoCustomApp_MT6261_S00_MAUI_11C_W13_52_MP_V5

2.6 刚开始编译就出现下面
tools\make.exe: Interrupt/Exception caught (code = 0xc0000005, addr = 0x7ef928c8)
网上说跟环境变量有关系,如path中不能用()或者将program file改为PROGRA~1都没有用,直接重装系统
以前是ghost的,换了一个win7企业版的,就没有再出现上面的问题了.

2.7
start MMI feature check...
get feature list from MMI_features.h...
get feature list from MMI_features_switch.h...
generate feature check file...
validate features...
ARM/Thumb C/C++ Compiler, RVCT3.1 [Build 569]
make: *** [mmi_feature_check] Error 1

b.打开log文件
D:\6261a\build\VITA61A_BT_11C\log\mmi_check.log会显示如下:
FLEXnet Licensing error:-1,359.  System Error: 2 "No such file or directory"
For further information, refer to the FLEXnet Licensing End User Guide,

c.解决方法:
设置环境变量:
ARMLMD_LICENSE_FILE    C:\Program Files\ARM\Licenses\rvds.dat;C:\Program Files\ARM\Licenses\rvds.dat


三. 烧写问题
1. 版本
FlashTool_v5.1332.01  -->no
FlashTool_v5.1420.00  -->ok
2 烧写过程
a. 运行flash tools, 点Scatter/ConfigFile按钮
弹出的对话框中选中
.\build\VITA61A_BT_11C\VITA61A_BT_11C_PCB01_gprs_MT6261_S00.MAUI_11C_W13_52_MP_V5.bin\VITA61A_BT_11C_BB.cfg
b. 点Format按钮
c. 板子接上usb
d. 首次连接时需要装驱动,驱动会自动安装,安装好之后再次拔插usb,此时FlashTools就会检测到MTK,然后就会进行烧写.
3 烧写出错:
 not response --> 只是板子插usb不行,需要接上电池
 
4 烧写出错: S_DL_MAUI_FLASH_ID_NOT_MATCHED_WITH_TARGET(5095)
a.错误的解决方法:
      D:\6261\custom\system\VITA61A_BT_11C_BB\custom_MemoryDevice.h
      D:\6261\custom\system\VITA61A_BT_11C_BB\combo_flash_id.h 
      原先: {0xC2, 0x25, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00}   -->no
      修改:  {0xC8, 0x80, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}  -->no
      修改:  {0xC8, 0x60, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00}  -->yes
   但是这样改用remake编译时没有问题,而用new编译时这个改动又还原回去了
b. 正确的修改方法-->改配置文件
D:\6261\custom\system\VITA61A_BT_11C_BB\custom_MemoryDevice.h
b.1 该文件中的第1处改动
  1. #define MEMORY_DEVICE_TYPE SERIAL_FLASH
  2. #define CS0_PART_NUMBER FAKE_SLT_26MHz_GD25LQ128      //MTK_INTERNAL_MX25U12835FZNI_10G_FAKE64Mbits
  3. //#define CS1_PART_NUMBER FAKE_SLT_26MHz_GD25LQ128    //MTK_INTERNAL_MX25U12835FZNI_10G_FAKE64Mbits

  4. #define COMBO_MEM_ENTRY_COUNT 1
  5. #define COMBO_MEM01_CS0_PART_NUMBER FAKE_SLT_26MHz_GD25LQ128 //MTK_INTERNAL_MX25U12835FZNI_10G_FAKE64Mbits
  6. #define COMBO_MEM01_CS1_PART_NUMBER FAKE_SLT_26MHz_GD25LQ128 //MTK_INTERNAL_MX25U12835FZNI_10G_FAKE64Mbits

  7. //#define FLASH_ACCESS_TYPE ASYNC_ACCESS
  8. #define FLASH_ACCESS_TYPE SYNC_ACCESS
  9. #define RAM_ACCESS_TYPE SYNC_ACCESS
b.2 该文件中的第2处改动
  1. #define NOR_BOOTING_NOR_FS_BASE_ADDRESS 0x00750000     //7.5M 这个是给固件留出的空间
  2. #define NOR_BOOTING_NOR_FS_SIZE 0x00750000             //7.5M 这个是filesystem的空间
  3. #define NOR_BOOTING_NOR_FS_FIRST_DRIVE_SECTORS 0       //这个是u盘的空间
b.3 在 D:\6261\tools\MemoryDeviceList\MemoryDeviceList_MT6261_Since11CW1352.xls中添加一行
  FAKE_SLT_26MHz_GD25LQ128 (把L43行的FAKE_SLT_26MHz_GD25LQ32复制一下改一下名就行了)
其内容复制MemoryDeviceList_MT6250_Since11BW1212.xls
c. 错误的改动
  1. c.1 D:\6261\make\VITA61A_BT_11C_GPRS.mak L2636 去掉combo_memory_support
  2. #COMBO_MEMORY_SUPPORT = TRUE
  3. COMBO_MEMORY_SUPPORT = FALSE
  4. 这会导致启动时报错:
  5. Jump to ExtBL, 0x6060
  6. MiniBL is
  7.  c.2 D:\6261\custom\system\VITA61A_BT_11C_BB\custom_MemoryDevice.h
  8.       #define COMBO_MEM_ENTRY_COUNT 0 //由1改为0时
  9.       编译会出错: 出现flash_opt.h not found


四. 调试
4.1 bootloader及bootloader_ext调试
SecureCRT中串口设置: 115200 8N1

4.2 OS下的调试

4.2.1 uart+catcher调试
a. CENON61D_3232_11C_GPRS.mak中的改动

D:\6216d\make\CENON61D_3232_11C_GPRS.mak中的改动
  1. KAL_TRACE_OUTPUT = FULL
  2. #KAL_TRACE_OUTPUT = NONE

  3. PARTIAL_TRACE_LIB = drv custom peripheral bmt
  4. #PARTIAL_TRACE_LIB = NONE

  5. KAL_RECORD_BOOTUP_LOG = TRUE
  6. #KAL_RECORD_BOOTUP_LOG = FALSE

  7. KAL_DEBUG_LEVEL = SLIM_DEBUG_KAL
  8. #KAL_DEBUG_LEVEL = RICH_DEBUG_KAL    
  9. #KAL_DEBUG_LEVEL = RELEASE_KAL
b.nvram_data_items.c中的改动
D:\6261\custom\common\hal\nvram\nvram_data_items.c
在结构体NVRAM_EF_PORT_SETTING_DEFAULT中
添加#define DEF_KAL_TRACE_OUTPUT_UART 0 // 4,99-->none,0-->uart1,1-->uart2,4-->usb
将其中的两个99改为DEF_KAL_TRACE_OUTPUT_UART
见下图:





4.2.2 usb+catcher调试
  1. a. CENON61D_3232_11C_GPRS.mak中的改动同2.1

  2. b. nvram_data_items.c中的改动同上2.1
  3.   D:\6261\custom\common\hal\nvram\nvram_data_items.c
  4.   在结构体NVRAM_EF_PORT_SETTING_DEFAULT中
  5.   添加#define DEF_KAL_TRACE_OUTPUT_UART 4 //这儿由0改为4 // 4,99-->none,0-->uart1,1-->uart2,4-->usb
  6.   将其中的两个99改为DEF_KAL_TRACE_OUTPUT_UART

  7. c.catcher中usb设置filter时出错
  8.   Failed to send filter to L1 trace. Please see [View] ->[Catcher information]
  9.   用usb调试时,很容易出现上面这个问题
  10.  解决方法:
  11.   在catcher中设置了filter,然后确定时,catcher会去找usb的com口(这与FlashTools很类似),发现现在没有usb的com口,就会报错
  12.   当板子上电时,会枚举出一个usb的com口,若在此时正好点了filter的确定按钮,catcher也查找到了usb的com口,OK,完美!
  13.   所以点catcher中filter的确定按钮的时机很重要
4.3 注意usb与uart打印的切换
如果板子是以前是从usb打印的,再烧了一个串口打印的固件,这时候需要用flash tools执行一下Total Format.

五. 功能测试
5.1 打电话测试
a. 使用AT命令拨打语音电话12345的命令格式是ATD12345;
注意以;结尾,拨打成功后,返回OK
b. 可以在catcher中使用如下所示:

注意: catcher连接上板子之后send才起作用


阅读(8703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~