欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
手機開(kāi)發(fā)感想篇

手機開(kāi)發(fā)感想篇(連載)
首先我要說(shuō)明的是,我對手機開(kāi)發(fā)的了解還是很少,開(kāi)發(fā)的時(shí)間也比較短,可是說(shuō)還是入門(mén)階段,但在從事在方面的工作過(guò)程中,個(gè)人確實(shí)有很多感想,現想拿出來(lái)給大家分享分享。如有不到之處,還請大俠們斧正??!
我畢業(yè)有3年多了,早期主要是從事一些DSC的開(kāi)發(fā),也就是fireware方面的開(kāi)發(fā)了,直到去年七月份才真正走入手機開(kāi)發(fā)這個(gè)行列中來(lái)。
對于第一次接觸這個(gè)東東,確實(shí)有些茫然,但由于早期開(kāi)發(fā)的經(jīng)驗和個(gè)人對研發(fā)產(chǎn)品的理解,我在第一階段就對手機研發(fā)做了如下一些分解。
軟件分解:
1、os:(這是系統的kernel,一般現在我們采用的os還多數是國外的,由于
   我對此不感興趣,再者也沒(méi)有機會(huì )接觸到,所以就把他當成庫來(lái)用。:))
2、MMI:這個(gè)大家都知道了。后面在詳細描述。
3、底層驅動(dòng):包括midi,audio,lcd,keyboard等相關(guān)的驅動(dòng)。
4、media?。椋泸寗?dòng)。這主要是mp3,mpeg和dsc的驅動(dòng)。
5、短信:這個(gè)是手機不可少的。
6、輸入法:嘿嘿,這個(gè)東有點(diǎn)難的。
7、電話(huà)本相關(guān)的管理:這個(gè)比較重要。
8、手機的一些其它服務(wù):包括鬧鐘等相關(guān)附加功能。
9、wap:主要是上網(wǎng)等功能。
硬件:
1、基帶芯片:多半是arm+DSP?。螅铮恪。悖穑?。
2、電源管理芯片:這個(gè)不可少的。
3、附加多媒體芯片:(如果用的不是mtk平臺的話(huà),基本都要加吧)
4、audio 芯片:不可少的哦,沒(méi)它就每喲聲音。
5、midi芯片:4和5這兩寬目前有很多方案都能合成到一個(gè)芯片上了。
6、lcd屏:沒(méi)它,大家能看到什么:)
7、射頻模塊:用的都是集成的ic。且要bb支持。
還有就是鍵盤(pán),基本也就這些了,其它的都是小模塊。重要,但都可以劃分到大模塊中去。

真是不好意思,這些天太忙了,同時(shí)在開(kāi)發(fā)4個(gè)項目啊,太累了。
現在我描述下當初我一開(kāi)始在對軟件和硬件做了簡(jiǎn)單的分類(lèi)后,個(gè)人是如何在分類(lèi)的基礎上學(xué)習的。
由于我們所在公司用的是國外手機平臺,所以在做任何事情前,首先得了解下這個(gè)平臺的
運行機制。
對于平臺的理解和學(xué)習我主要從下面3個(gè)方面著(zhù)手:
1、編譯原理和仿真原理;
2、平臺的驅動(dòng)架構;
3、平臺的應用架構;
一個(gè)成功的平臺,其必然有自己一套程序的軟件仿真機制和一個(gè)download到手機
中的編譯系統。在我們采用的平臺中,軟件仿真IDE用的是.net,這個(gè)東東,剛開(kāi)始
我還不知道是什么東東呢,不過(guò)以我之前接觸過(guò)嵌入式IDE的經(jīng)歷,對它簡(jiǎn)單的應用上手
還是很快了,不就模擬用用,呵呵,簡(jiǎn)單?。。ㄟ@里有個(gè)誤區,就是很多人在開(kāi)始學(xué)習的時(shí)候,
是多么希望把整個(gè)系統搞的很熟很熟,她們認為這樣才是學(xué)東西,可是我卻不這么認為,因為整
個(gè)東西你是不可能學(xué)會(huì )的,你只需要選些你感興趣并且是熱門(mén)的知識點(diǎn)就可以了,其它的你只要了解下,
并能簡(jiǎn)單用用就可以了。把主要精力放在你愛(ài)學(xué)的方面,學(xué)專(zhuān)了,你就是專(zhuān)家,就不愁什么了?。海?br>有信心就學(xué)會(huì )了,軟件仿真花了2天時(shí)間從安裝到模擬,嘿嘿,通過(guò)。接著(zhù)是如何了解編譯下載到手機中
的軟件的機制;這方面,看了平臺提供的手冊,發(fā)現基本采用linux的makefile編譯機制,
唯一不同的是,具體編譯過(guò)程用的是tcc、ADS以及dos批處理,呵呵,這個(gè)我以前比較熟悉,
所以也沒(méi)有費什么時(shí)間就搞定了,注意我所謂的搞定就是她們的運行原理,而不是理解他編譯系統中設計
的所以dso批處理及相關(guān)的命令操作。對編譯和仿真系統了解后,就開(kāi)始學(xué)習真正的平臺軟件了。
(我之所以要重復走上面的路,是因為我來(lái)公司時(shí)候,公司對平臺的培訓早完成了,所以以后所有的學(xué)習都是我自學(xué)的?。?br>

 

現在就開(kāi)始主要講具體的開(kāi)發(fā)了,有些朋友好像等的不耐煩了?。海?/p>

二、對于平臺的驅動(dòng)架構,我進(jìn)行了幾個(gè)分類(lèi):

1、DI的運行原理;

2、鍵盤(pán)的運行流程;

3、如果外擴media芯片,了解擴充機制;

4、audio和midi的運行流程;

由于我剛進(jìn)公司,老大就安排我先把公司demo顯示搞定,呵呵,所以我就的先了解LCD的驅動(dòng),以及我們平臺的di運行原理。

當時(shí),我們LCM是直接沿用公司早期開(kāi)發(fā)手機LCM模塊,那個(gè)lcm和logic(30萬(wàn)image處理chip)芯片組合在一起的;lcd控制器是HD66773,65Kcolor;我們平臺lcd的設計采用的是bypass模式,lcd是直接接在multimedia芯片上(采用的是臺灣芯片,具體型號不好說(shuō)),BB通過(guò)A2和A3地址線(xiàn)來(lái)選通主副lcd,lcd的硬件復位直接與系統復位接在一起,bypass控制直接用bb一個(gè)gpio口控制。剛開(kāi)始是第一次接觸這種彩色lcd;所以花了2天時(shí)間來(lái)看廠(chǎng)商提供的lcd驅動(dòng)程序,看后覺(jué)得基本掌握了日系列的lcd控制器的基本原理,她們的控制器能控制的寄存器也就40幾個(gè)左右,主要分為:power控制,reset控制,display控制,area控制,gamma控制等。掌握以上的控制流程,基本可以點(diǎn)亮lcd了,當然,lcd的效果調試比較難,需要細細研究,我到現在也不太會(huì ),雖然我調試了20幾款lcd。在對LCD的驅動(dòng)和硬件設計有個(gè)初步的了解并編寫(xiě)代碼后,基本完成了lcd的驅動(dòng)級別設計,當然隨后的工作最重要,就如何把這些驅動(dòng)代碼放到我們平臺的驅動(dòng)架構中去,接著(zhù)就是必不可少的調試。在我們的平臺當中,對lcd驅動(dòng)的初始化放在對ARM做了最基本的初始化后,平臺提供的源程序有lcd驅動(dòng)的程序,我沒(méi)有花多少時(shí)間就找到了,然后就是用我的lcd驅動(dòng)替代它的lcd驅動(dòng)。這步做完后,我并沒(méi)有馬上去了解我們平臺的di刷新原理,因為我認為這個(gè)時(shí)候最重要的就是要把lcd調亮,然后再去看系統di機制。在具體調試lcd的過(guò)程中,那簡(jiǎn)直不是人過(guò)的日子啊,我整整調試了1個(gè)多星期,最后才調試出來(lái)。之所以花這么多時(shí)間才調試成功,關(guān)鍵是我首先要了解multimedia芯片的基本bypass原理,代image?。悖穑酢。欤悖砭唧w控制,以及硬件電路的正確否。最后在總結工作中發(fā)現,我主要花的時(shí)間在對帶了image?。悖穑酢。欤悖淼目刂粕?。因為lcm上多了一個(gè)cpu,所以我要通過(guò)image

cpu來(lái)控制lcd的控制器,當然,由于當初的lcd硬件電路上和bb的bus時(shí)序還有些問(wèn)題。(對于以上的具體我將不描述了,因為這種現象一般大家很難遇到?。。┰冢欤悖湔{試成功后,我得趕緊看我們平臺的di運行機制,這方面我請教了我們公司其它的員工,花了一天的時(shí)間,大概了解運行原理。在我們這個(gè)平臺,把顯示作為一個(gè)task來(lái)運行,當運行這個(gè)task的時(shí)候,就會(huì )調用lcd的的刷新函數,把需要刷新的數據刷到lcd上,當然,系統開(kāi)了一個(gè)lcd刷新數據的buffer,用來(lái)存儲MMI層刷邏輯lcd的數據。在lcd驅動(dòng)這塊,就直接把這個(gè)buffer刷到lcd上。在完完全全走通上面的工程中,我花了2周多時(shí)間,同時(shí)對DI的運行原理有了一個(gè)比較系統,但是不是很詳細的了解。

 

四、

       寫(xiě)得太慢了,讓各位大俠等急了?。海?/p>

上次講了下關(guān)于我們手機平臺的DI運行原理,如有不正之處,請大俠們指出來(lái)。這回我就講講鍵盤(pán)的運行流程;說(shuō)到鍵盤(pán),估計各位都或多或少的寫(xiě)過(guò)相關(guān)的程序,我在接觸手機鍵盤(pán)之前,也寫(xiě)過(guò)一些嵌入式設備的簡(jiǎn)單鍵盤(pán)驅動(dòng)程序,記得最復雜的一次鍵盤(pán)驅動(dòng)是用cpld寫(xiě)了一個(gè)20個(gè)鍵的鍵盤(pán)掃描驅動(dòng),cpld把掃描到的鍵值通過(guò)bus傳給51cpu(當初我是用c51做主cpu的:),當時(shí)的設計是把51外擴地址0x7fff作為鍵盤(pán)值存放地址。),cpu這邊我是做了一個(gè)時(shí)間片輪系統,對于鍵盤(pán)的掃描是沒(méi)20ms做一次,去抖2ms,當時(shí)用起來(lái)還算比較穩定,沒(méi)有任何問(wèn)題??墒侨缃裎医佑|到我們手機平臺的鍵盤(pán)處理,感覺(jué)自己以前的鍵盤(pán)處理簡(jiǎn)直是太笨了,想法太簡(jiǎn)單。我們目前BB端都有直接的鍵盤(pán)接口, 5X5的鍵盤(pán),硬件只要把橫豎5條線(xiàn)直接接到10 個(gè)鍵盤(pán)口上就可以了,至于當有按鍵的時(shí)候,鍵盤(pán)io口有中斷響應,上面我之所以說(shuō)我們平臺的手機鍵盤(pán)做的好,主要是說(shuō)它的驅動(dòng)做的好。從我對程序代碼的理解,我們平臺的鍵盤(pán)驅動(dòng)主要由以下一些狀態(tài)組成:

1、  鍵盤(pán)硬件中斷:這塊主要是鍵盤(pán)口有電壓變化,從而觸發(fā)鍵盤(pán)的中斷,BB端cpu就會(huì )進(jìn)入中斷處理程序塊;

2、  中斷程序入口:這塊寫(xiě)的特別巧,所有的中斷初始化,中斷處理程序都統一放到一個(gè)具有回調功能的數組里處理,對編寫(xiě)程序的人員來(lái)說(shuō),整個(gè)系統中斷管理清晰,代碼簡(jiǎn)潔,關(guān)于其具體代碼這里就不一一描述。

3、  中斷服務(wù)程序:這段也做了一些特殊的處理,當鍵盤(pán)中斷來(lái)了后,首先是通過(guò)上面的中斷程序入口的回調直接到中斷服務(wù)程序中去,中斷服務(wù)程序首先是掃描中斷過(guò)來(lái)的鍵碼,在得到鍵碼后,馬上啟動(dòng)一個(gè)最高級別的定時(shí)器,其大概是20ms,在20ms的定時(shí)器到后,又來(lái)掃描這個(gè)時(shí)候的鍵盤(pán)鍵碼,如果鍵碼一樣,就把這個(gè)鍵碼發(fā)到應用處理層的task中去。如果在定時(shí)器還沒(méi)有到的時(shí)候,有鍵盤(pán)中斷來(lái),那么前面一次的處理全部釋放,定時(shí)器解除,直接處理下次中斷。

4、  以上就是關(guān)于我們手機平臺的底層鍵盤(pán)驅動(dòng)的大致框架,個(gè)人認為這個(gè)框架對嵌入式的設備的鍵盤(pán)處理都有很好的借鑒作用。當然,關(guān)于上層鍵盤(pán)的應用處理也是十分關(guān)鍵的,不過(guò)底層的鍵盤(pán)處理時(shí)間短,那么整個(gè)系統對按鍵的響應比較快,對整個(gè)手機的菜單處理就越有利;

關(guān)于鍵盤(pán)的流程我就簡(jiǎn)單將將,因為這塊我想了想,實(shí)在不好描述啊,如果是看過(guò)一些相關(guān)代碼的話(huà),對其理解就更好了,當然我不能直接移植代碼到這里來(lái),所以不太理解的地方,歡迎各位一起來(lái)探討。

 

五、

       關(guān)于aquasnake兄說(shuō)的建議非常之好,不過(guò)我們平臺確實(shí)可以在啟動(dòng)20MS的定時(shí)器期間可以響應鍵盤(pán)中斷,同時(shí)我說(shuō)的最高級別定時(shí)器,其意義在于這個(gè)定時(shí)不在中斷內,而是在系統最高定時(shí)器所在的task中運行。當時(shí)間到了之后,會(huì )回調定時(shí)器啟動(dòng)時(shí)候寫(xiě)入的回調函數。

外擴media芯片的問(wèn)題。

其實(shí)我最主要的時(shí)間就是花在這塊上,所以對于這塊我將會(huì )詳細講講,讓大家和我一起分享下media中的樂(lè )趣。我們外擴media芯片用的是臺灣sunplus公司的;相信各位對此都有些了解。sunplus的手機media芯片在目前的市場(chǎng)上,其性能只能算中等,與韓國一些芯片相當,比ti級別的要差些,但sunplus的價(jià)格還可以,在做中端手機選擇sunplus還是有些優(yōu)勢,不過(guò)就是在運行mp3功能的時(shí)候,功耗偏大。閑話(huà)就不說(shuō)了,回歸到我剛開(kāi)始接觸這款media時(shí)候的情景吧。剛開(kāi)始接觸的時(shí)候,我以為我們公司會(huì )叫我負責media芯片功能的維護,誰(shuí)知道,后來(lái)和sunplus溝通后,發(fā)現我們只是在bb端來(lái)調用sunplus已經(jīng)做好的api,讓后用這些api來(lái)實(shí)現類(lèi)是于mp3,mp4等功能,乍一聽(tīng)做這些,感覺(jué)挺沒(méi)有意思的,就是用用api,感覺(jué)太簡(jiǎn)單了,可是在后來(lái)的應用中發(fā)現,其難度還是很大的,尤其是做好,那難度還是非常之大啊。

       前面講過(guò)了lcd的調試,其實(shí)在LCD的調試過(guò)程中,就已經(jīng)涉及到了media芯片的bypass功能,直接通過(guò)media芯片的bypass?。瑁椋纾韫δ馨芽偩€(xiàn)上的lcd數據通過(guò)media芯片送到lcd上,之所以要通過(guò)media芯片接lcd,是因為,在后續的拍照。錄像,lcd的數據是直接由media送到lcd上,而不是通過(guò)bb送到lcd,提高刷屏速度,減少bb端cpu的資源。

       說(shuō)到bypass功能,相信各位都很熟悉啊,我對此也上了解,談不上深刻,不過(guò)bypass的功能于具體的media芯片有關(guān)系,如果media芯片做的好的話(huà),bypass功能的高低切換基本不需要做什么延時(shí),對于國內的c625,我只是看過(guò)一些資料,但沒(méi)有詳細用過(guò),不知道其bypass功能性能,但我調試過(guò)臺灣兩家其它小公司的media芯片,發(fā)現其bypass功能的切換時(shí)間比較長(cháng),需要延時(shí),所以在調試過(guò)程中要特別注意。在理解了bypass功能之后,我就研究下media和bb端的通信協(xié)議,根據sunplus提供的一些上層代碼,同時(shí)再聽(tīng)她們FAE講解了一些關(guān)于通信協(xié)議的問(wèn)題,我基本了解了這種通信機制,這種通信機制硬件主要采用的是總線(xiàn)i86接法,軟件能用的是master和slave通信原理,bb是master,media是slave,bb端下cmd給media,然后查詢(xún)cmd是否發(fā)送成功已經(jīng)media是否正確執行cmd;這樣的機制很簡(jiǎn)單,便于軟件和硬件的連接和驅動(dòng),可是其由于簡(jiǎn)單的通信機制,會(huì )給bb對整個(gè)系統的可靠運行增加負擔,比如說(shuō)cmd命令不成功,bb端將如何處理等問(wèn)題。當然sunplus底層的軟件跑的還是非常穩定。很少出現這樣的問(wèn)題。在理解了bypass和通信機制后,在bb做相應的驅動(dòng)和應用api就簡(jiǎn)單多了。


 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一個(gè)嵌入式Linux系統的鍵盤(pán)驅動(dòng)實(shí)現
基于stc51單片機的PS\2鍵盤(pán)通信程序
定時(shí)器 計數器芯片,同時(shí)驅動(dòng)數碼管進(jìn)行計數計時(shí),不懂得可以學(xué)習
單片機入門(mén)培訓專(zhuān)題(十六)- 紅外通信
筆記本15類(lèi)故障
簡(jiǎn)單的4×4行列式鍵盤(pán)控制電路設計(三款電路設計原理圖詳解)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久