使用Carbide c++ 2.0在S60 Nokia 6120C上搭建真機debug調試環境的要點

http://blog.csdn.net/comiunknown/archive/2009/10/13/4663094.aspx

最近正式開始學習nokia s60方面的開發,碰到的第一個基礎問題就是如何在真機上搭建debug調試環境。我用的手機是nokia 6120C,該手機的操作系統是Symbian OS v9.2,開發平臺式是S60 3rd Edition, Feature Pack 1。

參考了各位先輩的carbide c++真機調試的文章,以及nokia官網的錄像視頻,相關鏈接見:
http://hi.baidu.com/refyl/blog/item/294f5ad11b15d6309b502788.html (carbide2.0如何聯機調試)
http://blog.csdn.net/hhygcy/archive/2008/11/20/3339388.aspx (Carbide 聯機調試慘痛經歷)
http://blog.csdn.net/lius1984/archive/2008/06/19/2564254.aspx (S60真機調試手記)
http://www.forum.nokia.com/info/sw.nokia.com/id/7ce0e6e5-737b-4ac4-8959-9367281cd8ca/On_device_debugging_with_Carbide_cpp.html (視頻 Carbide c++ 1.3)


結果第一次搭建還是導致手機頻繁死機重啓。經過瘋狂google搜索+找人請教+在csdn/devdiv上發帖求助,外加一夜輾轉反側, 無數次試驗,終於把問題解決,不敢100%保證搭建真機調試一次成功,但上述血淚試驗中總結出的一些經驗相信對以後其他型號的真機調試還是有所幫助的,爲 此整理出該篇博文,留作記錄。

一、男怕入錯行,女怕嫁錯郎。首先,你一定要選擇適合調試真機的TRK。否則,不但你的手機一啓動TRK就可能自動重啓,而且就算你萬幸成功啓動TRK,一旦開始debug,你的手機100%會黑屏重啓,debug當然也100%失敗。

調試手機的開發平臺和carbide c++ 2.0的device OS對應關係估計是這樣的:
1、s60 3.0.0對應的是S60 3rd Ed
2、s60 3.1.0對應的是S60 3rd Ed FP1
3、s60 3.2.0對應的是S60 3rd Ed FP2
4、s60 5.0.0對應的是S60 5th Ed

不清楚調試手機對應什麼操作系統的話可以去nokia的官網查詢:
http://www.forum.nokia.com/devices/

如果你想讓carbide c++ 2.0自己下載最新的TRK,可以通過Debug Configurations -> Symbian OS Application TRK -> your App Phone Debug(GCCE)->Main -> Use connection -> Edit -> Next -> Install remote agents,選擇適合的最新版TRK,然後點下面的“Install”按鈕,該安裝方式會自動聯網並從下載你選中的TRK,然後自動安裝到連接到電腦的 調試手機上(沒反應的話多點幾次)。如果你的電腦沒聯網或者不想使用最新的TRK,也可以自己從carbide的安裝目錄下,相對路徑 是/Carbide.c++ v2.0/plugins/com.nokia.carbide.trk.support_1.4.0.014/trk/s60,找到相對應的TRK 3.0.8安裝包,我測試過,只要選對device OS(見上面的對應關係),不管是TRK 3.0.8還是TRK 3.1.2,都可以成功搭建真機調試環境。

注意:TRK 3.08和TRK 3.1.2相比,可以多修改一項設置,即連接所用的Port,TRK 3.1.2估計是想簡化開發者的配置,將Port強制設爲1,且不能修改。但是,假如你調試的電腦的COM1已被被其他外設佔用,Nokia PC套件只能使用其他COM口來建立電腦和手機之間的通訊的話,悲劇估計就要發生了......

二、萬事俱備,只欠東風?確保調試手機和電腦連好,安裝並啓動了合適的TRK後,在carbide c++的Set Connection Settings的“Serial Port”中選擇你手機所用的COM口,Device OS中也選對了調試手機的操作系統,點擊“Ensure TRK is running on the device”中“Initiate service testing”按鈕,返回了類似“Installed TRK is latest available version: version = 3.x.x”的信息。但是,一開始真機調試,還是失敗。悲劇啊,Why?

別急,你先檢查一下,電腦的“設備管理器”的“端口(COM和LPT)”中,調試手機所用的COM口是幾?然後再看看調試手機上TRK的Port是 幾?2者相同嗎?不同的話,恭喜,你碰到我曾經碰到的第二個悲劇了。閒話一下,我使用電腦的前置USB口和手機相連,系統居然分配了COM17用來和調試 手機建立連接,而我手機上安裝的TRK是3.1.2,Port永遠都是1,悲劇就這樣發生了。相同呢?相同還是調試失敗的話,我也沒轍了,你再去 google試試吧。

如果相同的悲劇已經上演,還是有辦法把它轉變爲正劇的。回到電腦的“設備管理器”,選擇調試手機所用的COM口,進入其屬性配置窗口,在“端口設置”中,點下面的“高級”,哈哈,可以修改端口號,趕緊把端口號改成TRK中設定的端口號,一路確定。趕緊再試試吧...

三、屢戰屢敗?還是失敗的話,試試Windows藍屏的經典解決辦法吧,把電腦和手機都重啓一次,重新連接好,確定2者使用相同的COM口連 接,“Initiate service testing”也成功後,再試驗一下吧。堅持就是一切,在我這運氣極度匱乏的人生中,我無數次的證明了這句話的正確性。

發佈了23 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章