爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1186|回复: 33
收起左侧

[教程] [原创]用vs2003 为SX1开发程序

[复制链接]
发表于 2006-8-23 12:56:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
用vs2003 为SX1开发程序

Alex
Yield Dynamics
2006-8-23

版权所有,转载注明出处。

前言

西门子机器从6688起就是爱好者们开发的热土。西门子官方也看到了人民大众的厉害,对开发者的支持也是极尽所能。从6688开发(或者更早),几乎每款机器都有相应的开发包(西门子称之为SMTK -- Siemens Mobility Toolkit)。到了SX1,换上了Symbian 6.1 这个开放系统(这也许是西门子的遗憾,Symbian看上去更像是Nokia自家的东西)。西门子同样也推出了对应的SMTK,开发环境则只限于VC6。对于想在VS2003开发的人来说非常不方便。以下就结合Nokia的工具(唉,非常不想提它),建立在VS2003上开发大S程序的环境。

准备

首先下载以下安装包

1.ActivePerl 5.8.7 build 813
支持编译脚本用的。




2.SDK for Symbian 60 v1.2

Symbian的SDK。


3.SMTK for Symbian OS and Series 60
;
(这个站是个人的,我这里平均3,4K,是ftp,用cuteftp等下载)。找到SMTK_S60_v_12.2077.06目录,只下载其中SiemensSeries60目录下的东西(如果开发JAVA,要下载Generic_Series60_MIDP_SDK目录下的东西)

或者去西门子网站(要注册)

这是西门子官方的开发包,有SX1的模拟器和SDK。



4.Carbide.vs 2.0.1

也可以去Nokia的官网下。
用来在VS2003上为Nokia的SDK建立开发环境。后面我们会写SX1的脚本文件,让VS2003也支持SX1的开发。

开始安装

说实话,Nokia手机造的不错,软件么,就不那么“以人为本”了。路径,脚本问题一大堆。所以,在开发包的安装过程中,尽可能安照教程中的顺序,而有些软件的地址有特殊的要求,我会在安装该软件的时候指出,如果安装中出现什么问题,比如模拟器不能运行,编译不了,可以回贴,我会尽力解答。

1.        安装ActivePerl

目录:任意
没什么特殊要求。

2.        安装 SDK for Symbian 60 v1.2

目录:最好只改变盘符,不改变路径,且最好和vs2003在同一盘中。它的默认路径为
SDK C:\Symbian\6.1\Series60
Shared C:\Symbian\6.1\Shared
如果你想安装到其它盘,最好保持目录结构,比如你想安装到E盘
SDK E:\Symbian\6.1\Series60
Shared E:\Symbian\6.1\Shared

没有其它什么特殊要求了。一路Next就可以。安装完成后,可以试一下模拟器。
(如果不是安装在默认目录,要修改模拟器的配置文件来改正一个bug。假设你的SDK安装到了E盘,那么转到E:\Symbian\6.1\Series60\Epoc32\Data下,打开epoc.ini,找到
_EPOC_DRIVE_D c:\symbian\6.1\Series60\epoc32\wins\d 改成
_EPOC_DRIVE_D e:\symbian\6.1\Series60\epoc32\wins\d
就可以了)
在控制台中键入epoc(如果在其它盘如E盘,要先换到该盘,如E:\epoc(回车)),然后回车,应该会出现一个虚拟的手机,并可以正常运行。

3.        安装SMTK for SX1

目录:可以说是必安装到安装程序指定的路径。安装程序会找到Symbian 60 SDK所在的目录,并建议你和它们安装在相同的地方(如Symbian 60 SDK的地址为e:\symbian\6.1\Series60,那么SMTK的地址就是e:\symbian\6.1\ Siemens)。不要改,一路NEXT就行。安装完成后,在控制台中再次输入epoc并回车(如果在其它盘,记得换过去),看看出来了什么。。。。。。运行在电脑上的SX1!!!!

这里要说一个比较重要的环境变量EPOCROOT(可以从控制面板->系统->高级->环境变量 中找到)。EPOCROOT 指出了模拟器的地址。装完Symbian 60 SDK 之后,EPOCROOT 的地址指向的是默认的模拟器,比如SDK在e:\symbian\6.1\Series60,那么EPOCROOT = \symbian\6.1\Series60\,等装完SMTK之后,EPOCROOT = \symbian\6.1\ Siemens \SX1\bin\。而且,都是相对路径,路径中是没有盘符的!这就是为什么在运行模拟器时总是要切换盘符的原因,模拟器会把当前盘符 + EPROCROOT 当成模拟器所在的路径。在后面加入的脚本文件中,EPOCROOT还有更重要的作用。

4.        安装carbide_vs

目录:任意,最好和SDK在同一盘

最好重启一下电脑,打开vs2003(可能会问你要注册码,你只要去nokia的官网注册一个用户,把用户名填在这,你就会得到一组注册码)。建一个Symbian的工程,编译,运行,如果一切正常,那么我们可以进下一步工作了。

配置(未完全完成,有个小bug,看其它)

先下载附件


Carbide_vs是这里的主角,我们主要是拿它开刀。Carbide_vs 检测安装在机器上的SDK,然后根据用户的选择,运行脚本文件,生成对应的vs2003工程。在编译时,vs2003会执行一个编译前命令-- rcmake,这是carbide_vs的一个工具,用来编译成生资源。最后,编译器编译源文件,连结,成生目标文件。要支持SX1,要添加几个我自己写的文件,下面,我们一项一项来。

1.        让Carbide_vs 检测到SMTK
假设你的系统盘为C盘。转到C:\Program Files\Common Files\Symbian\
找一下有没有devices.xml 这个文件,如果没有,附件里有一个,把它考过去。
打开它,把下面这一段加进去(如果有,那就不用加了

<device id="Siemens_SX1" name="com.Siemens.SMTK.SX1" default="no" userdeletable="no">
<epocroot>E:\Symbian\6.1\Siemens\SX1\bin\</epocroot>


<epocroot>指出的是你SX1的模拟器的地址,如果你的模拟器在其它路径,要改过去。

2. 添加脚本文件
        打开C:\Program Files\Common Files\Symbian\SDK Descriptors\Nokia\
        这里有很多的XML文件,都是脚本文件,用来告诉编译器模拟器的路径,各种工具的路径以及成生的文件要放在什么地方。
        把附件里的 SMTK_SX1.xml拷过来。
        如果你的SMTK安装在默认路径上,且之前vs2003成生Symbian工程也没有问题,那么恭喜你,现在你可以打开vs2003来成生SX1的工程了。如果不是,往下看。

如果你的SMTK 和Symbian安装在不同的盘,那么你只能重装了,我现在还没有办法解决。
如果在其它地址,请按照下面的作

打开SMTK_SX1.xml,
找到
<toolsPath>$(EPOCROOT)..\..\..\Shared\epoc32\tools;$(EPOCROOT)..\..\..\Shared\epoc32\gcc\bin</toolsPath>

看到那么$(EPOCROOT)了吧,那就是SX1模拟器的路径。现在要设置 tools ,就要根据这个地址来了,关键就是要根据EPOCROOT找到Shared目录。
如果你的 Symbian SDK 的Shared 目录 在 E:\Symbian\6.1\Shared,而SMTK 在 e:\SMTK
就要这么写
<toolsPath>$(EPOCROOT)..\Symbian\6.1\Shared\epoc32\tools;$(EPOCROOT)..\Symbian\6.1\Shared\epoc32\gcc\bin</toolsPath>把所有关于Shared目录的路径都改正确。好了,现在你也可以在vs2003中为SX1写程序了。

其它

如果直接编译SX1的项目,在编译时会出错,看output 是
0x101fb032 0 0x0d4fb15a (路径)\aif\hello2aif.aif
这里有问题

这是在用rcmake 成生 aif文件时出错了,我还没有办法搞定,但可以绕过去。一是先手动生成aif文件,然后再编译(很不好搞,我从来不用)。二是选择S60 v1.2的SDK,先生成它的目标文件,它会产生aif文件,这在在生成SX1也是可以用的。当然,不是每次生成SX1的目标文件时都要这么做,只有你的资源文件变化时才用这个借鸡下蛋的办法。


后记

写这篇文章之前,我用了很多精力来实验各种可能的情况,如何让SX1模拟器运行,如何可以调试,如何可以直接成生SX1的项目。。。。。。很多很多,可以说是费了牛劲了。最后得出的结论就是,Nokia不适合搞软件。

Alex
Yield Dynamics
2006-8-23

版权所有,转载注明出处。

sx1.rar

1.84 KB, 下载次数: 6

脚本文件

评分

参与人数 1实力分 +2 技术分 +1 收起 理由
segalgx + 2 + 1 奖:技术文章!

查看全部评分

发表于 2006-8-23 13:00:43 | 显示全部楼层
kan kan xian
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 13:25:44 | 显示全部楼层
没人理就自己顶一下
回复 支持 反对

使用道具 举报

发表于 2006-8-23 13:49:05 | 显示全部楼层
技术文章要顶
回复 支持 反对

使用道具 举报

发表于 2006-8-23 14:25:46 | 显示全部楼层
熟悉编程的机油可以试试,开发出自己的塞班程序……
回复 支持 反对

使用道具 举报

发表于 2006-8-23 14:31:36 | 显示全部楼层
支持!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 15:11:06 | 显示全部楼层
顶...........这么好..........
回复 支持 反对

使用道具 举报

发表于 2006-8-23 15:32:53 | 显示全部楼层
支持原创1!!!!!!!!!!!!!!!!

不过最近在关注Linux on SX1的进展.....驱动搞定后应用程序是个大问题阿,,
回复 支持 反对

使用道具 举报

发表于 2006-8-23 16:11:03 | 显示全部楼层
支持支持技术贴!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 16:28:28 | 显示全部楼层
支持!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 16:31:18 | 显示全部楼层
楼主说的那个BUG问题,解决方法如下

在VS.NET开发环境中选择"Tools"->"Options"->"Projects"->"Visual C++ Directories",添加上$(VCInstallDir)bin和$(VSInstallDir)Common7\IDE

因为我现在是VS.NET 2005 的环境,Carbide.vs不支持。

同兴趣的朋友有VS。NET2003的可以试试。

有Carbide.vs 切换SDK很方便。还有,其实不用装 SMTK,装个SDK for Symbian 60 v1.2就可以了。
回复 支持 反对

使用道具 举报

发表于 2006-8-23 16:37:56 | 显示全部楼层
楼主,有没有打包的下载阿?我这里貌似打不开
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 17:05:04 | 显示全部楼层
回10楼
环境变量我这里都设了,不行的。怀疑是carbide_vs内部的问题。再每次编译之前它都会检测当前安装的SDK,可能作了一些路径关联。SMTK它检测到了,但可能由于不是nokia自己的东西,它没关联路径,导致编译出错。
回头试一下把carbide_vs搬到vs2005上。。。。。(2005的IDE太慢了)

回11楼:
我过了,只有两个地方有下SMTK for SX1的,一个是官网,另一个就是ftp://www.fengbin.com/(注意,是ftp)
如果0110提供空间,我可以打包传上去
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:17:12 | 显示全部楼层
你可以试试上传到0110的FTP看看,地址见公告区或汇总帖子里
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:17:34 | 显示全部楼层
原帖由 hgrany 于 2006-8-23 17:05 发表
回10楼
环境变量我这里都设了,不行的。怀疑是carbide_vs内部的问题。再每次编译之前它都会检测当前安装的SDK,可能作了一些路径关联。SMTK它检测到了,但可能由于不是nokia自己的东西,它没关联路径,导致编译出 ...


用carbide_vs 不需要设环境变量
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:18:27 | 显示全部楼层
其实大家不用下SMTK,直接去NOKIA官方下载S60 1ND 就可以。
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:33:09 | 显示全部楼层
终于盼到大侠出手了!
SB的应用开发是真正的方向!
谢谢楼主用心!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:34:21 | 显示全部楼层
强烈建议斑竹置顶!
回复 支持 反对

使用道具 举报

发表于 2006-8-23 17:54:36 | 显示全部楼层
想起了阿斌的6688的java
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-23 18:05:12 | 显示全部楼层
ftp上不去,密码不对,我想传包,斑竹给个密码。

另外,SMTK还是有下载的必要的,SMTK的模拟器是SX1,不仅看上去爽,还有SX1的屏幕比 S60 1x的大那么一点(显电量的那部分)。二是SMTK中有radio开发模块,S60好像没有
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-8-10 01:34

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表