青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

franksunny的個(gè)人技術(shù)空間
獲得人生中的成功需要的專注與堅(jiān)持不懈多過天才與機(jī)會(huì)。 ——C.W. Wendte

今天一個(gè)很偶然的機(jī)會(huì),需要回答一個(gè)將無符號數(shù)據(jù)存到有符號變量的問題。我編碼如下,結(jié)果很有意思,我是在VC6里調(diào)試的,有高人看到可否幫忙指點(diǎn)下。
int main()
{
    unsigned short temp1 = 65535;
    short temp2 = temp1;
    unsigned short temp3 = (unsigned short)temp2;
    unsigned short temp4 = temp2;
    int temp5 = temp2;
    unsigned int temp6 = temp2;
    unsigned long temp7 = temp2;
    int temp8 = (unsigned short)temp2;
    short temp9 = temp2;
    printf("temp1 = %d\n temp2 = %d\n temp3 = %d\n temp4 = %d\n temp5 = %d\n temp6 = %d\n temp7 = %d\n temp8 = %d\n temp9 = %d\n",
     temp1,temp2,temp3,temp4, temp5,temp6,temp7,temp8,temp9);
    return 0;
}
//改程序的輸出結(jié)果
//temp1 = 65535
//temp2 = -1
//temp3 = 65535
//temp4 = 65535
//temp5 = -1
//temp6 = -1
//temp7 = -1
//temp8 = 65535
//temp9 = -1;


//根據(jù)結(jié)果也就是說,無符號符號數(shù)據(jù)是可以存儲(chǔ)在有符號型變量內(nèi)存中的,
//而且有例子在內(nèi)存塊長度一樣時(shí),不用強(qiáng)轉(zhuǎn),直接賦給無符號變量時(shí)也可行
//上述事實(shí)可以解釋為內(nèi)存塊不變,采用不同的解碼方式解出不同的數(shù)據(jù)
//但是讀出來的時(shí)候要注意,如果有符號轉(zhuǎn)無符號一定要強(qiáng)轉(zhuǎn)
//之所以上例unsigned int輸出-1,我并不是很清楚

posted @ 2007-10-17 22:46 frank.sunny 閱讀(3034) | 評論 (13)編輯 收藏
     摘要: 昨天遇到類內(nèi)靜態(tài)函數(shù),本想自己整理下,誰知道已經(jīng)有人整理的很好了,為此就不麻煩了,看了一篇就轉(zhuǎn)貼在自己空間里,以便以后查詢。C++的static關(guān)鍵字作者:韓耀旭 C++的static有兩種用法:面向過程程序設(shè)計(jì)中的static和面向?qū)ο蟪绦蛟O(shè)計(jì)中的static。前者應(yīng)用于普通變量和函數(shù),不涉及類;后者主要說明static在類中的作用。 一、面向過程設(shè)計(jì)中的static 1、靜態(tài)全局變量 ...  閱讀全文
posted @ 2007-10-16 21:03 frank.sunny 閱讀(1785) | 評論 (2)編輯 收藏

本文并非本人原創(chuàng),文中紅色字體為我新加,原文出處http://blog.donews.com/sevenworld/archive/2005/10/17/591911.aspx

 

如何設(shè)置S60模擬器的網(wǎng)絡(luò)參數(shù)

 

在調(diào)試使用Socket進(jìn)行數(shù)據(jù)通訊的Symbian S60程序過程中,需要編寫客戶端與服務(wù)器的數(shù)據(jù)交互代碼,如果S60的模擬器可以直接訪問網(wǎng)絡(luò)中的服務(wù)器程序,調(diào)試就會(huì)非常方便。S60的模擬器提供了這些功能,不過需要對網(wǎng)絡(luò)參數(shù)進(jìn)行一些設(shè)置,下面將討論這一問題。

首先是網(wǎng)絡(luò)參數(shù)的設(shè)置,在Symbian安裝目錄的..\Epoc32\tools目錄下有一個(gè)網(wǎng)絡(luò)參數(shù)設(shè)置程序network_config.bat,對于不同的開發(fā)包,這個(gè)名字可能會(huì)有一些不同(可以選擇開始菜單下SDK目錄tools下的Ethernet Support Configuration)。執(zhí)行該程序,將顯示參數(shù)設(shè)置界面。其實(shí)參數(shù)的設(shè)置和對局域網(wǎng)中的PC設(shè)置一樣,你就把它當(dāng)成是在設(shè)置PC的網(wǎng)絡(luò)配置就可以了。分配一個(gè)沒有使用的IP注意絕對不能與本機(jī)IP相同),填寫好子網(wǎng)掩碼,設(shè)置好局域網(wǎng)的網(wǎng)關(guān)。唯一的不同是要選擇所使用的網(wǎng)卡。當(dāng)你點(diǎn)OK關(guān)閉該設(shè)置對話框的時(shí)候(或著點(diǎn)那個(gè)Adapters按鈕),會(huì)顯示一個(gè)命令行界面,列出了當(dāng)前機(jī)器上可以使用的網(wǎng)卡的信息,你需要輸入一個(gè)數(shù)字選擇一個(gè)網(wǎng)卡,注意,應(yīng)該選擇你的PC所使用的那個(gè)真實(shí)的網(wǎng)卡,也就是標(biāo)識(shí)你機(jī)器在局域網(wǎng)內(nèi)IP地址的那個(gè)網(wǎng)卡。

按照官方文檔來說,這樣就可以,但實(shí)際上不是所有的機(jī)器都可以,我沒有測試過,不知道別人的機(jī)器如何,反正我使用的機(jī)器不可以。后來我在一本書里看到,還需要運(yùn)行另外一個(gè)程序,才可以達(dá)到我們的目的。這個(gè)程序與上面的設(shè)置程序在同一個(gè)目錄下,叫做npacketadmin.exe。執(zhí)行它,會(huì)顯示一個(gè)程序,并跳出一個(gè)設(shè)置對話框,首先在下拉列表框里選擇你剛才選定的那個(gè)網(wǎng)卡,然后點(diǎn)擊下面的Start按鈕,這樣就可以了。這時(shí)你就可以使用模擬器調(diào)試你的Symbian S60通訊程序了。(我實(shí)際測試中發(fā)現(xiàn)不用啟動(dòng)npacketadmin.exe也是可以的

測試是否連通的方法是,執(zhí)行模擬器中的網(wǎng)絡(luò)應(yīng)用程序,然后輸入一個(gè)網(wǎng)址,比如www.sina.com.cn,如果設(shè)置正確,將顯示該頁面,注意也許是亂碼,不過不要緊,因?yàn)槲覀冎幌胫谰W(wǎng)絡(luò)是否已經(jīng)可用了。(強(qiáng)烈建議使用非中文網(wǎng)站做測試,比如www.google.com

 

如果以上的過程中,不啟動(dòng)npacketadmin.exe就不能連接的用戶,必須注意下面幾個(gè)問題:

1.在調(diào)試期間可以關(guān)閉npacketadmin.exe的那個(gè)設(shè)置對話框,但是不能關(guān)閉該程序。如果關(guān)閉了,網(wǎng)絡(luò)將不通。

2.如果不小心關(guān)閉了該程序,需要重新啟動(dòng),并重新做上面的第二步的操作。

3.應(yīng)該在啟動(dòng)模擬器之前就啟動(dòng)該程序,不然模擬器可能會(huì)異常退出。

 

 

本人剛開始調(diào)試時(shí),犯了以下一些問題:

首先用msconfig工具將S60Ethernet Packet Service這個(gè)服務(wù)停掉了,后來每一次模擬器試圖用Socket連接時(shí)都彈出“Error1058 無法啟動(dòng)服務(wù)……”的報(bào)錯(cuò)。該錯(cuò)誤在npacketadmin.exe啟動(dòng)時(shí)也會(huì)出現(xiàn)。

其次沒有注意IP的問題,用跟本機(jī)同一個(gè)IP,結(jié)果怎么連都連不上,后來改成我同事的,害得他一個(gè)下午都因?yàn)榫W(wǎng)絡(luò)上有同名IP而半天沒得上網(wǎng)。



另注:最近更換環(huán)境時(shí)發(fā)現(xiàn),假如主機(jī)是通過自動(dòng)獲取ip就可以上網(wǎng)的話,不知道模擬器的ip不設(shè),讀者能否實(shí)現(xiàn),我本人試過老是出現(xiàn)“網(wǎng)關(guān)無響應(yīng)”提示,所以我覺得原則上還是需要設(shè)置ip的,當(dāng)然前提是主機(jī)設(shè)了固定IP也能上網(wǎng),然后模擬器設(shè)置一個(gè)不同于主機(jī)的ip地址 modify 2008.03.17
posted @ 2007-09-25 16:21 frank.sunny 閱讀(2923) | 評論 (2)編輯 收藏

本文檔我上傳過程中圖片沒有粘貼上來,為此如果有人感興趣,請下載word文檔,地址是http://m.shnenglu.com/Files/franksunny/Symbian應(yīng)用程序框架淺析.rar,歡迎大家給我指點(diǎn)。

Symbian 應(yīng)用程序框架淺析

 

S60應(yīng)用程序的運(yùn)行依賴于大量的OS組件,例如屏幕繪圖和應(yīng)用程序數(shù)據(jù)持久性等,可以直接使用OS的窗口服務(wù)器或者文件服務(wù)器即可。

 

應(yīng)用程序核心框架類

應(yīng)用程序框架由一套核心類組成,這些類是所有應(yīng)用程序框架的基礎(chǔ)。這些類封裝了應(yīng)用程序和所需OS服務(wù)器之間的相互作用。

應(yīng)用程序核心框架類

第一層:CBaseCActive兩個(gè)基類,其中CActive也是派生于CBase,而CActive又被第二層的CConEnv派生

第二層:包含兩個(gè)基本組件:AppArcCONE。AppArc代表應(yīng)用程序架構(gòu),這些類提供了基本的應(yīng)用程序結(jié)構(gòu)、將系統(tǒng)信息提交到應(yīng)用程序的機(jī)制,以及使用文件服務(wù)器持久化數(shù)據(jù)。其中的類在命名時(shí)都帶有前綴“*Apa”。CONE是控制環(huán)境的縮寫,在這個(gè)組件中的類提供用于處理用戶輸入并創(chuàng)建用戶界面的機(jī)制--這些類主要用于和窗口服務(wù)器進(jìn)行交互,其中的類在命名時(shí)都帶有前綴“*Coe”。這一層中的許多類都是抽象類,僅僅定義了一個(gè)API的接口。

第三層:Uikon組件。這是具有豐富功能、非抽象框架類的一般性設(shè)備無關(guān)實(shí)現(xiàn),并且提供了一個(gè)在所有symbian OS上公用的UI庫層。一些具體的UI控件(比如列表框和滾動(dòng)條等)都可以在該層創(chuàng)建,這些控件有時(shí)也被稱為Eikon控件。UIkon組件中的類在命名時(shí)都帶有前綴“*Eik”添加了一個(gè)公共的symbian OS實(shí)現(xiàn),和其他Symbian OS UI平臺(tái)共享。

第四層:由Avkon類組成,這些類提供了核心的S60 UI功能,例如菜單支持。Avkon控件的類在命名時(shí)都帶有前綴“*Akn”。在框架上添加S60特有的實(shí)現(xiàn)。

第五層:針對應(yīng)用程序的層,設(shè)計(jì)自己的應(yīng)用程序,添加自定義應(yīng)用程序?qū)崿F(xiàn)。

以上提到的這些類簡單來說就是:視圖(View)、文檔(Document)、應(yīng)用程序(Application)、應(yīng)用程序UIApplication UI)。那么一個(gè)S60 UI應(yīng)用程序是如何用這些類來實(shí)現(xiàn)其有機(jī)程序呢,這個(gè)就涉及到一個(gè)應(yīng)用程序框架的初始化問題。

 

應(yīng)用程序框架初始化

必須創(chuàng)建下面的每個(gè)方法,才能提供最小的S60應(yīng)用程序:

a、 框架入口:所有S60 UI都實(shí)現(xiàn)一個(gè)全局函數(shù)E32DLL()(非UI類的全局入口函數(shù)為E32Main),當(dāng)應(yīng)用程序啟動(dòng)時(shí),框架將首先調(diào)用該函數(shù),該函數(shù)也稱為DLL入口點(diǎn),應(yīng)用程序必須存在該函數(shù)。每個(gè)S60 UI 應(yīng)用程序都是一個(gè)多態(tài)DLL。

b、新建應(yīng)用程序?qū)嵗?/span>讓框架調(diào)用NewApplication(),該函數(shù)是由DLL導(dǎo)出的唯一函數(shù),負(fù)責(zé)創(chuàng)建應(yīng)用程序類的一個(gè)實(shí)例,并返回它的指針,以后框架使用該指針完成應(yīng)用程序的創(chuàng)建。這里在堆上創(chuàng)建應(yīng)用程序?qū)嵗褂玫氖?#8220;new”方法而不是Symbian OS常見的“new (ELeave)”方法,這是因?yàn)?span lang=EN>TRAP harness(陷阱捕捉)這時(shí)還沒有創(chuàng)立。如果系統(tǒng)不能為新的實(shí)例分配內(nèi)存,那返回的指針就是NULL,應(yīng)用程序框架能夠檢查到并處理這個(gè)問題。

c、返回UID由框架調(diào)用AppDllUid()返回應(yīng)用程序的UID。該函數(shù)必須返回在.mmp文件中指定的UID值,該值可用于確定應(yīng)用程序的實(shí)例是否正在運(yùn)行。如果一個(gè)應(yīng)用程序正在運(yùn)行,而要啟動(dòng)這個(gè)程序的另一個(gè)實(shí)例,這時(shí)該運(yùn)行的程序就會(huì)被切換到前臺(tái),而不是重新生成一個(gè)。

d、新建文檔實(shí)例:框架通過框架調(diào)用應(yīng)用程序類實(shí)例的CreateDocumentL()函數(shù)獲取指向新創(chuàng)建的Document類實(shí)例的指針。通過文檔實(shí)例指針,框架就可以調(diào)用文檔實(shí)例的某些功能,同時(shí)文檔實(shí)例也通過調(diào)用自身的NewL()和NewLC()雙重靜態(tài)構(gòu)造函數(shù)(為什么是雙重構(gòu)造,這跟Symbian的異常處理機(jī)制有關(guān),而之所以設(shè)計(jì)成靜態(tài)函數(shù)我現(xiàn)在也還不是很清楚)來創(chuàng)建自己。

e、是否裝入文件:框架重新調(diào)用AppDllUid()來觀察是否要從文件系統(tǒng)中裝入一個(gè)文件。(似乎這里跟某些永久存儲(chǔ)信息有關(guān),目前項(xiàng)目還沒用到這個(gè)功能,我也不知道這個(gè)該怎么用

f、 新建AppUiView實(shí)例:框架通過調(diào)用文檔對象的CreateAppUiL()方法生成了一個(gè)AppUi實(shí)例并獲取指向它的指針。此處AppUi實(shí)例創(chuàng)建自身時(shí)使用的是C++的默認(rèn)構(gòu)造函數(shù)并返回實(shí)例的指針,之后框架通過這個(gè)指針調(diào)用AppUi實(shí)例的ConstructL()函數(shù)來完成構(gòu)造。而在這個(gè)ConstructL()函數(shù)中首先調(diào)用的是AppUi基類的BaseContructL()函數(shù),處理了讀入與該程序相關(guān)的資源的事宜,其次是新建需要加載的View類的實(shí)例(通過雙重構(gòu)造),如果不止一個(gè)View的情況下需要調(diào)用AddViewL()函數(shù)將新建的View實(shí)例加載進(jìn)來,最后如果是多個(gè)View時(shí)通過SetDefaultViewL()函數(shù)設(shè)置缺省的默認(rèn)視圖。如讀入一個(gè)與該程序相關(guān)的資源文件AppUi調(diào)用了AppView類的NewL函數(shù)來生成其實(shí)例,這里也是用的雙重構(gòu)造

g View的重繪:通過以上的創(chuàng)建過程,框架已經(jīng)擁有了View的無限調(diào)度權(quán)利,此時(shí)如果有一般的system事件框架就可以通過窗口服務(wù)器調(diào)用ViewDraw()函數(shù),至于這些System事件一般指程序啟動(dòng)、應(yīng)用程序獲得焦點(diǎn)或者選項(xiàng)菜單消失等等。在這里需要注意的是編程開發(fā)者并不能直接調(diào)用Draw,它要求在調(diào)用前系統(tǒng)的graphics context處于激活狀態(tài),如果編程開發(fā)者希望進(jìn)行屏幕的重繪,則只能調(diào)用DrawNow()方法。還有就是Draw函數(shù)是不能異常退出的,這是因?yàn)樵摵瘮?shù)能被框架直接調(diào)用,而框架是不知道如何處理可能發(fā)生的異常的。因此Draw自己需要捕捉和處理可能發(fā)生的錯(cuò)誤。

h、 處理命令:完成以上步驟后,用戶可以通過比如菜單選項(xiàng)之類的交互UI使框架調(diào)用HandleCommandL()函數(shù),并傳遞一個(gè)參數(shù)aCommand,它指明了用戶所選擇的命令,HandleCommandL()會(huì)據(jù)此來判斷不同的命令以分別調(diào)度執(zhí)行。在此處還有一個(gè)必須注意的地方是如果要程序的View實(shí)例也回應(yīng)用戶的按鍵,則必須將View實(shí)例通過AppUiAddToStackL()函數(shù)加入到AppUi實(shí)例的控件堆棧(control stack)中。具體的調(diào)用方式實(shí)現(xiàn)以按鍵來解釋如下流程所示:

對于上面的調(diào)用方式實(shí)現(xiàn)說明,個(gè)人覺得有必要再將AppUi的幾個(gè)重要事件處理方法羅列一下:

HandleWsEventL()用于處理窗口服務(wù)器傳遞的事件,它的作用使框架調(diào)用下面這些具體事件處理方法;

HandKeyEvent()用于處理用戶按鍵事件(此函數(shù)在控件堆棧為空時(shí)調(diào)用,否則框架將會(huì)調(diào)用OfferKeyEventL()函數(shù));

HandleForegroundEventL()當(dāng)應(yīng)用程序切換到前臺(tái)或從前臺(tái)切換到后臺(tái)時(shí)調(diào)用該函數(shù),默認(rèn)的實(shí)現(xiàn)可以處理鍵盤焦點(diǎn)的改變;

HandleSystemEventL()用于處理由窗口服務(wù)器生成的事件;

HandleApplicationSpecificEventL()用于處理自己定義的自定義事件。默認(rèn)的實(shí)現(xiàn)可以處理顏色方案改變的通知;

HandleCommandL()用于處理用戶選擇的菜單項(xiàng);

HandleSwitchOnEventL()用于處理像設(shè)備切換之類的特定切換事件;

HandleMessageReadyL()用于處理窗口服務(wù)器產(chǎn)生的消息事件。

在以上各函數(shù)處理事件中,除了第一個(gè)HandleWsEventL()函數(shù)外,其它函數(shù)默認(rèn)都是純虛函數(shù),需要重載才能用。

通過以上對應(yīng)用程序框架初始化步驟后,一個(gè)完整的框架就創(chuàng)建完畢了,其具體過程可以由一個(gè)圖來形象做結(jié)。

本文中參考了網(wǎng)絡(luò)上的一些文章鏈接如下:

Symbian程序框架研究http://www.sf.org.cn/Article/lumen/200607/18837.html

Symbian開發(fā)初級手冊http://www.sf.org.cn/Article/lumen/200508/34.html

 

 

 

posted @ 2007-09-21 06:56 frank.sunny 閱讀(3861) | 評論 (0)編輯 收藏
     摘要:   Symbian 資源文件解析   一、何為資源文件: 在symbian應(yīng)用程序中,資源文件指的是后綴名為.rss的文件,每個(gè)應(yīng)用程序至少要有一個(gè)與之關(guān)聯(lián)的資源文件。資源編譯器rcomp編譯資源文件后,生成一個(gè).rsc二進(jìn)制文件和一個(gè)相伴的頭文件(.rsg)。這樣在應(yīng)用程序框架啟動(dòng)應(yīng)用程序時(shí),會(huì)打開這個(gè)二進(jìn)制文件,借助在.rsg文件中創(chuàng)建的資源標(biāo)志符,根據(jù)需要把各個(gè)資...  閱讀全文
posted @ 2007-09-19 17:30 frank.sunny 閱讀(2418) | 評論 (0)編輯 收藏
     摘要: 該文檔在網(wǎng)上比較多見,我只是找來結(jié)合自己的安裝做了些增補(bǔ),增補(bǔ)以紅色字體示出 第一章     環(huán)境搭建               Symbian是Nokia公司開發(fā)的一款智能手機(jī)操作系統(tǒng)。Nokia根據(jù)手機(jī)的屏幕大小和價(jià)格高低把手機(jī)分成了多...  閱讀全文
posted @ 2007-09-19 17:27 frank.sunny 閱讀(2080) | 評論 (4)編輯 收藏

自從開始用VC以后,一直以來都在用Visual Assist,感覺這個(gè)工具真的非常好,但是有些自動(dòng)文檔功能就個(gè)人覺得并非很適合,不過可能由于自身的E文比較差吧,從來沒想過自己如何去修改這個(gè)東西。來新單位已經(jīng)兩個(gè)禮拜了,馬上又要下班了,就沖著這個(gè)查了下如何修改AutoText,終于發(fā)現(xiàn)了官網(wǎng)上的詳細(xì)說明,現(xiàn)在粘帖在下面,以備不時(shí)之需 http://www.wholetomato.com/products/features/autotext.asp

為了查找方便,自己也將常用的命令粘帖過來

Code

Type your expanded code into the Code field. Include reserved strings to expand the date, filename and more.


Reserved String Meaning
Date $DATE$ Year/month/day formatted as %04d/%02d/%02d
$DAY$ Day of month formatted as %d
$DAY_02$ Day of month formatted as %02d
$DAYNAME$ Three-character abbreviation of day
$DAYLONGNAME$ Full name of day
$MONTH$ Month formatted as %d
$MONTH_02$ Month formatted as %02d
$MONTHNAME$ Three-character abbreviation of month
$MONTHLONGNAME$ Full name of month
$YEAR$ Year formatted as %d
$YEAR_02$ Year formatted as %02d
File $FILE$ Full filename with path*
$FILE_UPPER$ Full filename with path in uppercase*
$FILE_BASE$ Filename without path or extension*
$FILE_BASE_UPPER$ Filename without path or extension in upper case*
$FILE_EXT$ Filename extension*
$FILE_EXT_UPPER$ Filename extension in upper case*
$FILE_PATH$ Path of file*
$FILE_PATH_UPPER$ Path of file in upper case*
General $clipboard$ Current clipboard
$end$ Position of caret after expansion
$selected$ Current selection**
$$ $
GUID $GUID_DEFINITION$ Generated GUID formatted for use in a definition
$GUID_STRING$ Generated GUID formatted for use in a string
$GUID_STRUCT$ Generated GUID formatted for use in a struct
(Note that all instances of GUID reserved words will use a singe generated GUID.)
Refactor $GeneratedPropertyName$ Property name generated during Encapsulate Field
$MethodArg$ One parameter of the method and its type
$MethodArgName$ One parameter of the method
$MethodArgType$ Type of one parameter of the method
$MethodBody$ Body of implementation
$MethodQualifier$ Optional qualifiers of method
$ParameterList$ Parameters separated by commas
$SymbolContext$ Context and name of method
$SymbolName$ Name of method
$SymbolPrivileges$ Access of method
$SymbolStatic$ Keyword static or blank
$SymbolType$ Return type of method
$SymbolVirtual$ Keyword virtual or blank
Time $HOUR$ Hour formatted as %d
$HOUR_02$ Hour formatted as %02d
$MINUTE$ Minute formatted as %02d
$SECOND$ Second formatted as %02d

*Reserved strings beginning with $FILE expand using the case of the current file.

**Lines with whitespace and $selected$ are omitted from expanded code if there is no selection. (This lets you define a single entry to be used with and without a selection.)

Autotext entries containing $GUID_* are available in IDL files.

Access the list of reserved strings using the context menu inside the Code field when editing Autotext.

autotextCodeInsertNew.png 
posted @ 2007-09-14 17:27 frank.sunny 閱讀(1515) | 評論 (0)編輯 收藏
     摘要:   IP地址與子網(wǎng)掩碼   一般考試中都會(huì)給定一個(gè)IP地址和對應(yīng)的子網(wǎng)掩碼,讓你計(jì)算1、子網(wǎng)數(shù)目2、網(wǎng)絡(luò)號3、主機(jī)號4、廣播地址5、可用IP地址范圍碰到這類題,我們應(yīng)該怎么樣來解題呢。方法如下: 首先,不要管這個(gè)IP是A類還是B類還是C類,IP是哪一類對于解題是沒有任何意義的,因?yàn)樵诤芏囝}中B類掩碼和A類或是C類網(wǎng)絡(luò)一起出現(xiàn),不要把這認(rèn)為是一個(gè)錯(cuò)誤,很多時(shí)候都是這樣出題...  閱讀全文
posted @ 2007-08-05 22:03 frank.sunny 閱讀(1692) | 評論 (5)編輯 收藏

 

關(guān)于C51內(nèi)的code,idata,xdata

 

以前沒搞過C51,大學(xué)時(shí)代跟單片機(jī)老師的時(shí)候也是搗鼓下匯編,現(xiàn)在重新搞單片機(jī),因?yàn)槭诸^資料不多,找到一些C51的程序,發(fā)現(xiàn)里面有這些關(guān)鍵字,不甚明了,沒辦法只好找了下,發(fā)現(xiàn)如下描述:


   從數(shù)據(jù)存儲(chǔ)類型來說,
8051系列有片內(nèi)、片外程序存儲(chǔ)器,片內(nèi)、片外數(shù)據(jù)存儲(chǔ)器,片內(nèi)程序存儲(chǔ)器還分直接尋址區(qū)和間接尋址類型,分別對應(yīng)code、data、xdata、idata以及根據(jù)51系列特點(diǎn)而設(shè)定的pdata類型,使用不同的存儲(chǔ)器,將使程序執(zhí)行效率不同,在編寫C51程序時(shí),最好指定變量的存儲(chǔ)類型,這樣將有利于提高程序執(zhí)行效率(此問題將在后面專門講述)。與ANSI-C稍有不同,它只分SAMLLCOMPACT、LARGE模式,各種不同的模式對應(yīng)不同的實(shí)際硬件系統(tǒng),也將有不同的編譯結(jié)果。

 

51系列中data,idata,xdata,pdata的區(qū)別

data:固定指前面0x00-0x7f128個(gè)RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。

idata:固定指前面0x00-0xff256個(gè)RAM,其中前128data128完全相同,只是因?yàn)樵L問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:mox ACC,@Rx.(不重要的補(bǔ)充:cidata做指針式的訪問效果很好)

xdata:外部擴(kuò)展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

pdata:外部擴(kuò)展RAM的低256個(gè)字節(jié),地址出現(xiàn)在A0-A7的上時(shí)讀寫,用movx ACC,@Rx讀寫。這個(gè)比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優(yōu)點(diǎn),具體用法屬于中級問題,這里不提。

 

 

posted @ 2007-08-05 18:19 frank.sunny 閱讀(8610) | 評論 (0)編輯 收藏
     摘要:   USB設(shè)備枚舉全紀(jì)錄   在編寫這部分程序之前,首先需要了解有關(guān)USB協(xié)議,重點(diǎn)是USB數(shù)據(jù)通信結(jié)構(gòu)、11條標(biāo)準(zhǔn)請求命令和標(biāo)準(zhǔn)USB描述符。 因?yàn)榍度胧皆O(shè)備的軟硬件是密切相關(guān)的,所以還需做的準(zhǔn)備工作是了解選用的USB芯片及主控MCU的性能。   一.硬件篇 USB芯片 作用: 1.      管理...  閱讀全文
posted @ 2007-08-04 21:33 frank.sunny 閱讀(5403) | 評論 (2)編輯 收藏
僅列出標(biāo)題
共7頁: 1 2 3 4 5 6 7 

常用鏈接

留言簿(13)

隨筆分類

個(gè)人其它博客

基礎(chǔ)知識(shí)鏈接

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜精品久久久久久浪潮| 免费永久网站黄欧美| 欧美日韩高清在线播放| 久久精品国产一区二区三| 午夜精品久久久久| 亚洲男人的天堂在线aⅴ视频| 日韩视频一区二区三区在线播放免费观看| 亚洲成色www8888| 最新高清无码专区| 国产一区二区三区在线观看精品| 日韩视频专区| 国产日韩综合一区二区性色av| 国产精品麻豆va在线播放| 欧美日韩一区精品| 国产精品久久久久久一区二区三区| 国产精品久久久久久久久久妞妞| 国产欧美日韩一级| 亚洲国产精品久久久久婷婷老年 | 亚洲欧美日韩综合一区| 午夜影院日韩| 麻豆精品精华液| 欧美日韩一二三区| 国产无一区二区| 亚洲欧洲精品一区| 亚洲欧美日产图| 欧美大胆成人| 亚洲主播在线观看| 蜜桃av一区二区在线观看| 国产精品久久久久一区二区三区共 | 欧美精品观看| 国产日韩亚洲欧美| 亚洲精品国产精品国自产在线| 亚洲欧美日韩人成在线播放| 欧美国产一区视频在线观看| 亚洲制服欧美中文字幕中文字幕| 欧美jizzhd精品欧美巨大免费| 国产精品自拍小视频| 一本综合久久| 欧美激情成人在线视频| 亚洲欧美一区二区激情| 欧美区一区二| 亚洲欧洲在线免费| 久久在线免费| 欧美一级视频免费在线观看| 欧美午夜剧场| 亚洲美女精品成人在线视频| 玖玖综合伊人| 欧美一区二区在线免费观看| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 欧美69wwwcom| 国产一区二区电影在线观看| 亚洲深夜福利视频| 亚洲电影毛片| 久久夜色精品国产噜噜av| 国产日韩专区| 欧美片第1页综合| 久久久久久网站| 国产一区二区三区视频在线观看| 午夜久久美女| 亚洲香蕉成视频在线观看| 欧美人体xx| 一本在线高清不卡dvd| 亚洲黄一区二区| 欧美韩日一区二区三区| 亚洲精品永久免费| 亚洲三级电影全部在线观看高清| 老司机午夜精品| 亚洲人体大胆视频| 亚洲精品国精品久久99热| 欧美国产日韩在线| 一本一道久久综合狠狠老精东影业 | 欧美四级电影网站| 中文精品视频| 亚洲午夜国产一区99re久久 | 9色国产精品| 国产精品乱子久久久久| 欧美一区二区三区免费在线看 | 91久久夜色精品国产九色| 亚洲电影免费在线观看| 欧美—级a级欧美特级ar全黄| 亚洲精品中文字幕有码专区| 亚洲精品在线视频| 国产精品国产福利国产秒拍| 久久国产精品亚洲va麻豆| 久久蜜桃资源一区二区老牛 | 欧美中文字幕在线播放| 欧美在线播放视频| 亚洲高清久久久| 亚洲精品久久久久久久久久久| 欧美日韩精品一本二本三本| 午夜精品美女自拍福到在线| 久久国产精品久久久久久电车| 亚洲福利国产| 亚洲视频日本| 在线看欧美日韩| 一本色道久久综合亚洲精品小说 | 欧美丰满高潮xxxx喷水动漫| 亚洲色图制服丝袜| 午夜亚洲福利| 羞羞视频在线观看欧美| 国产精品久久久久永久免费观看| 久久岛国电影| 欧美精品乱人伦久久久久久 | 国产精品区一区二区三区| 久久综合网色—综合色88| 欧美日韩精品是欧美日韩精品| 久久久人成影片一区二区三区| 欧美成人69| 久久精品视频va| 欧美日韩国产精品成人| 开心色5月久久精品| 国产精品爱久久久久久久| 欧美成人一区在线| 国产日韩欧美精品综合| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲网友自拍| 亚洲精品综合精品自拍| 久久久久成人精品免费播放动漫| 中文欧美日韩| 欧美激情精品| 欧美激情黄色片| 激情久久久久久| 亚洲一区二区三区免费在线观看 | 久久久久综合网| 欧美有码在线观看视频| 欧美日韩亚洲综合一区| 亚洲三级国产| 日韩视频一区二区三区在线播放免费观看 | 在线看一区二区| 欧美一区二区三区另类| 亚洲女与黑人做爰| 欧美日韩久久久久久| 亚洲韩国一区二区三区| 亚洲高清免费在线| 久久九九有精品国产23| 久久久精品国产99久久精品芒果| 欧美吻胸吃奶大尺度电影| 亚洲精选国产| 一区二区免费在线观看| 欧美精品日韩一区| 亚洲精品美女在线观看播放| 亚洲麻豆av| 欧美日韩免费观看一区二区三区| 亚洲日本欧美在线| 亚洲一品av免费观看| 国产精品久久久久久久久久久久| 一本大道久久a久久精二百| 亚洲视频中文| 国产精品一区二区在线观看| 亚洲综合国产精品| 欧美在线三区| 一区二区三区在线观看国产| 久久女同精品一区二区| 国产精品久久久对白| 99精品国产高清一区二区| 久久久综合网| 欧美激情1区2区3区| 日韩一级欧洲| 国产精品二区三区四区| 亚洲一区久久| 噜噜噜噜噜久久久久久91| 亚洲高清电影| 欧美四级在线观看| 欧美在线视屏| 亚洲级视频在线观看免费1级| 亚洲私人黄色宅男| 国产在线精品成人一区二区三区| 久久综合精品一区| 亚洲久久成人| 久久精品国产亚洲aⅴ| 亚洲第一精品电影| 欧美日韩在线视频一区| 香蕉视频成人在线观看| 欧美国产综合| 午夜精品区一区二区三| 亚洲国产精品一区| 国产精品久久网| 欧美h视频在线| 欧美在线免费| av成人福利| 亚洲第一区在线观看| 欧美一区二区三区婷婷月色| 亚洲精品久久久蜜桃| 国产精品永久免费视频| 卡一卡二国产精品| 亚洲欧美国产不卡| 亚洲国产成人精品女人久久久 | 亚洲人成在线播放网站岛国| 国产精品资源| 欧美精品久久久久久久| 欧美在线视频a| 99视频精品在线| 欧美大片在线看| 久久精品视频网| 午夜精品久久久久久久99热浪潮| 91久久久久久| 1000部国产精品成人观看| 国产欧美一区二区精品忘忧草| 欧美日韩视频在线一区二区| 久久婷婷av|