高通平台上的AMSS(Modeom端)Windows环境搭建
一、首先简单介绍一下,高通平台7&8系列平台的软硬件架构。
如图:
硬件上采用的是ARM9+ARM11(最新的采用Cotex-A8或是Cotex-A9)的架构。其中ANDROID是在ARM11上运行,而ARM9部分负责处理通信协议、射频、GPIO等,或者可以称作MODEM端,同样也运行一个OS,称为AMSS(Advanced Mobile Subscriber Software)。
二、主要介绍如何建立AMSS代码的编译环境
编译AMSS的source有两种方式:一是在windows下编译 ,另一是在linux下编译。因为无法取得linux环境下的RVCT2.2的licence,所以通常情况下都是在windows环境下编译。
编译所需要的工具
GNU make 3.81
RVDS (RVCT) 2.2.1 BLD593
Perl 5.8.5 or later
Python 2.4.x (注意:必须是Python2.4.X 版本太高了反而不行。)
elfweaver.exe
特别建议:配置文件中有些目录的设置,建议编译工具统一安装在同一个目录下,便于代码提交更新。如C:\ARM\
介绍编译工具的安装与注意事项
1、Perl 工具
Perl称为“实用报表提取语言”(Practical Extraction and Report Language),最初只是 Unix 系统管理员的一个工具,在工作日里被用在无数的小任务中。如今它已经发展成为一种非常复杂的,通用的编程语言,以及完整的开发环境,包括调试器,调节器,交叉引用,编译器,库,语法提示编辑器,以及所有其它“真正”的编程语言所具有的所有挂勾。当然,我们也只用到了Perl对AMSS整个代码中脚本的解析功能,其他的也就没有什么了。
网络上可以下载到最新的Perl版本,只要版本在5.8.5以上就可以了,安装过程中没有什么注意事项,选择“NEXT”,直到安装完成。安装的路径建议在统一规定的目录下,如C:\ARM
2、Python
Python(KK 英语发音:/'pa θɑn/, DJ 英语发音:/ paiθ n/)是一种面向对象、直译式计算机程序设计语言,创始人为Guido van Rossum。这种语言的语法简捷而清晰,并且具有丰富和强大的类库。python常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
同样的,我们也只需要这个工具进行编译,不用过多关注怎么使用。版本上只选择2.4.x,过高或是更低的版本都不适合,这点是高通平台Release Note 强调的。
官方下载地址:http://www.python.org/ftp/python/2.3.4/ (已经下载了。)
安装的路径建议在统一规定的目录下,如C:\ARM
3、GNU make
Windows环境下GNU工具,就是比较熟悉的Cygwin,但有一个问题,不是最新的版本就可以。已
经下载了安装执行文件和整个安装包,安装过程如下:
1)
2) 选择安装程序来源
3)
同样是建议安装的路径统一在规定的目录下,如C:\ARM
4) 选择安装时,为下载储存的目录(由于安装程序源都已经下载了,因此直接选择到该目录)
5) 选择需要安装的套件
注:一定要选择全部安装,否则无法实现编译。
6) 安装完成……
4、RVDS
编译需要的RVCT2.2.1版本,破解的版本。简单介绍一下破解方法。下载的破解包有三个压缩包RVDS220.rar、RVCT22_593_Windows.zip 和RVDS Crack.rar
1)安装
解压缩文件RVDS220.rar,运行Setup.exe。
安装过程中,可能会提示“WARNING: Machine needsrebooting”,如果你确认没有新安装什么软件或者windows更新,可以点击“Ignore”忽略这个提示
同样是建议安装的路径统一在规定的目录下,如C:\ARM
下一步,会有一个Advanced…按钮,点击它,取消“Update environment variables inregistry”,不更新环境变量,这是为了避免和ADS12冲突。
有一个步骤是和文件关联,全部取消——你不会喜欢用Code Warrior编辑源代码的
最后,会弹出一个窗口,提示要license,这个直接取消。
2)打补丁到 build 593
拷贝RVCT22_593_Windows.zip 到本地,解压,可以看到一堆.exe文件
将其全部拷贝到安装目录C:\ARM\rvct22\RVCT\Programs\2.2\349\win_32-pentium,覆盖同名文件
3)破解
解压RVDS Crack 文件夹,运行 keygen.exe
点击上图中所示的Generate,则它会在本目录下生成license.dat。在C盘根目录下建文件夹flexlm 把生成的license.dat拷贝到里面。。。。。。这一步不知道如何破解,如果license.dat在其他目录下,无法正确完整破解RVDS工具。
导入license.dat。运行Licence Wizard 4.0
下一步,选择Install Lice…
即完成了License.dat的导入步骤。
4)对部分文件进行patch
运行patch.exe,
点击 Patch,然后依次选择下列所有文件。。。。这一步比较繁琐,要求每个文件都要Patch。
C:\apps\rvct22\IDEs\CodeWarrior\CodeWarrior\5.6.1\1592\win_32-pentium\bin\Plugins\License\oemlicense.dll
C:\apps\rvct22\IDEs\CodeWarrior\RVPlugins\1.0\86\win_32-pentium\oemlicense\oemlicense.dll
C:\apps\rvct22\RDI\armsd\1.3.1\66\win_32-pentium\armsd.exe
C:\apps\rvct22\RDI\AXD\1.3.1\98\win_32-pentium\axd.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\armasm.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\armcc.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\armcpp.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\armlink.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\fromelf.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\tcc.exe
C:\apps\rvct22\RVCT\Programs\2.2\349\win_32-pentium\tcpp.exe
C:\apps\rvct22\RVD\Core\1.8\734\win_32-pentium\bin\tvs.exe
C:\apps\rvct22\RVD\Core\1.8\734\win_32-pentium\bin\xry100.dll
C:\apps\rvct22\RVARMulator\ARMulator\1.4.1\206\win_32-pentium\armiss.sdi
C:\apps\rvct22\RVARMulator\ARMulator\1.4.1\206\win_32-pentium\armulate.sdi
C:\apps\rvct22\RVARMulator\ARMulator\1.4.1\206\win_32-pentium\v6armiss.sdi
C:\apps\rvct22\RVARMulator\v6ARMulator\1.4.1\238\win_32-pentium\v6thumb2.sdi
C:\apps\rvct22\RVARMulator\v6ARMulator\1.4.1\238\win_32-pentium\v6trustzone.sdi
执行到这一步,已经完成了RVCT的安装。
5)验证
打开命令行窗口。在里面执行
armcc--vsn
输出应该是即表示安装成功。
ARM/ThumbC/C++ Compiler, RVCT2.2 [Build 593]
Softwaresupplied by: mammoth//ZWTiSO 2005
编译工具安装到上述4个步骤,就已经完成了AMSS Windows编译环境的建立。
5、Elfwearver.exe
这一步介绍的Elfwearver.exe工具是用来合并elf文件的,因为高通现在的release不包括Elfwearver.exe这个文件,因此需要自己生成,这个也是需要安装Python工具的一个原因。根据高通的文档(Release Note)
即可以生成所需的Elfwearver.exe。其中setup.py这个文件高通有提供。当然也可以用现成的Elfwearver.exe (也许还需要MSVCR71.dll等)。
生成Elfwearver.exe后,要修改Dmss_rule.min文件,
修改ELFWEAVER_CMD =tools/pyelf/elfweaver.exe为ELFWEAVER_CMD = python tools/pyelf/elfweaver
上述5个步骤中,其中的3、4、5步可以直接拷贝已经安装好的文件,不需要每个人都全部重新安装一次。
三、Windows环境变量设置
需要在系统环境变量中加入以下Path属性(有些自动会生成)
C:\ARM\Perl\site\bin;
C:\ARM\Perl\bin;
C:\ARM\Python24;
C:\ARM\RVCT22\bin\win_32-pentium;
C:\ARM\RVCT22\RVD\Core\1.8\734\win_32-pentium\bin;
C:\ARM\RVCT22\RVCT\Programs\2.2\349\win_32-pentium;
C:\ARM\RVCT22\Utilities\FLEXlm\9.2\release\win_32-pentium;
C:\ARM\cygwin\bin;
所需修改的文件路径为RVDS安装目录下的这两个文件
1.RDI/ARMSD/1.3.1/66/install.xml
2.utilities/installer/1.6/43/install.xml中
需要修改的内容两个文件是一样的
把%(HOSTPLAT)%全部替换为%(FS)win_32-pentium%