亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12345下一頁
最近訪問板塊 發(fā)新帖
查看: 61762 | 回復: 42
打印 上一主題 下一主題

Linux設(shè)備驅(qū)動開發(fā)轉(zhuǎn)Android驅(qū)動開發(fā),您準備好了么?(獲獎名單已公布-2014-5-22) [復制鏈接]

論壇徽章:
49
15-16賽季CBA聯(lián)賽之福建
日期:2016-06-22 16:22:002015年亞洲杯之中國
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36雙魚座
日期:2015-01-02 22:04:33午馬
日期:2014-11-25 09:58:35辰龍
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龍
日期:2014-08-21 10:47:58
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-04-23 16:45 |只看該作者 |倒序瀏覽
獲獎名單已公布,詳情請看:http://72891.cn/thread-4139467-1-1.html

Android底層是基于Linux內(nèi)核的,因此要基于Android開發(fā)智能手機或終端,就少不了Linux內(nèi)核與底層驅(qū)動的開發(fā)。據(jù)了解,這方面的開發(fā)人員目前還很缺乏,其中一個重要的原因就是Linux是一個與Windows一樣復雜的軟件系統(tǒng),要理解它,本身不是一件容易的事。但是從另外一個角度來看,對于驅(qū)動開發(fā)來說,設(shè)備模型的理解是根本,毫不夸張得說,理解了設(shè)備模型,再去看那些五花八門的驅(qū)動程序,你會發(fā)現(xiàn)自己站在了另一個高度。

本期話題:
1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?

活動時間:
2014年4月22日-5月12日

本期嘉賓:
《Android驅(qū)動開發(fā)權(quán)威指南》圖書作者:楊柳,社區(qū)ID為hongduna
嵌入式開發(fā)版斑竹:daniel_kohler

活動獎品:
最佳討論獎:獎勵《Android驅(qū)動開發(fā)權(quán)威指南》一本,共6名

獎品信息:
Android驅(qū)動開發(fā)權(quán)威指南   席卷全球的硬件創(chuàng)業(yè)科技浪潮專題

作者: 楊柳   
出版社:機械工業(yè)出版社
ISBN:9787111451822
上架時間:2014-3-21
出版日期:2014 年3月
開本:16開
頁碼:320

活動要求:
1、 要言之有物,不能低于20個字。
2、 本次話題主要關(guān)注Linux和Android設(shè)備驅(qū)動開發(fā)的討論,其他問題可能不做重點

論壇徽章:
18
卯兔
日期:2013-09-27 17:41:0615-16賽季CBA聯(lián)賽之佛山
日期:2016-07-09 17:34:45操作系統(tǒng)版塊每周發(fā)帖之星
日期:2015-12-02 15:01:04IT運維版塊每日發(fā)帖之星
日期:2015-12-02 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-07 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-03 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-10-01 06:20:00羊年新春福章
日期:2015-04-01 17:56:06拜羊年徽章
日期:2015-04-01 17:56:062015年迎新春徽章
日期:2015-03-04 09:49:452015年辭舊歲徽章
日期:2015-03-03 16:54:15天秤座
日期:2015-01-14 06:39:28
2 [報告]
發(fā)表于 2014-04-23 18:35 |只看該作者
路過,支持.............

論壇徽章:
16
CU十二周年紀念徽章
日期:2013-10-24 15:41:3415-16賽季CBA聯(lián)賽之廣東
日期:2015-12-23 21:21:55青銅圣斗士
日期:2015-12-05 10:35:30黃金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日論壇發(fā)貼之星
日期:2015-11-18 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-11-18 06:20:002015亞冠之城南
日期:2015-11-10 19:10:492015亞冠之薩濟拖拉機
日期:2015-10-28 18:47:282015亞冠之柏太陽神
日期:2015-08-30 17:21:492015亞冠之山東魯能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
3 [報告]
發(fā)表于 2014-04-23 20:55 |只看該作者
個人理解linux設(shè)備驅(qū)動主要就是熟悉linux內(nèi)核api,多看相關(guān)的設(shè)備驅(qū)動,然后模仿學習。
設(shè)備驅(qū)動涉及到內(nèi)核這個大“進程”,所以對里面的共享訪問,互斥,多cpu要能理解。
android沒有接觸過。。不熟悉

論壇徽章:
0
4 [報告]
發(fā)表于 2014-04-24 08:49 |只看該作者
支持, 還沒學過andriod,linux的驅(qū)動倒是研究過。

論壇徽章:
0
5 [報告]
發(fā)表于 2014-04-24 13:55 |只看該作者
1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
粗略看完《linux device driver》the third editon、宋寶華《linux設(shè)備驅(qū)動開發(fā)詳解》、宋寶華《精通linux設(shè)備驅(qū)動程序開發(fā)》。覺的設(shè)備模型是重點,理清設(shè)備模型,就會發(fā)現(xiàn)驅(qū)動均有其規(guī)律可遵循。然后就是實際工作中主要用到磁盤的盤符驅(qū)動。
2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
android內(nèi)核本身就是linux內(nèi)核發(fā)展來,android也有自有的一些驅(qū)動類型,但是有l(wèi)inux驅(qū)動基礎(chǔ),就不難理解android驅(qū)動。

希望能申請到這本書籍啊,

論壇徽章:
7
CU大牛徽章
日期:2013-03-13 15:32:35CU大;照
日期:2013-03-13 15:38:15CU大;照
日期:2013-03-13 15:38:52CU大;照
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大;照
日期:2013-03-14 14:14:29CU十二周年紀念徽章
日期:2013-10-24 15:41:34
6 [報告]
發(fā)表于 2014-04-24 20:05 |只看該作者
1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
    做Linux驅(qū)動,我個人覺得首先得了解,熟悉驅(qū)動模型,總線,進程調(diào)度等相關(guān)內(nèi)容,這個是硬傷,理論知識豐富了,進而學習linux 里面牛人的寫的驅(qū)動。
這樣就比較容易了。
2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
    Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā),我覺得本質(zhì)都是一樣的。而且相似度非常高。
如果要轉(zhuǎn)為Android驅(qū)動,我覺得可以先了解下Linux驅(qū)動與Android驅(qū)動的不同,而且轉(zhuǎn)后上手還是非?斓。

論壇徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵節(jié)徽章
日期:2015-03-06 15:50:392015亞冠之大阪鋼巴
日期:2015-06-12 16:01:352015年中國系統(tǒng)架構(gòu)師大會
日期:2015-06-29 16:11:2815-16賽季CBA聯(lián)賽之四川
日期:2018-12-17 14:10:21
7 [報告]
發(fā)表于 2014-04-24 21:11 |只看該作者
本帖最后由 T-Bagwell 于 2014-04-24 21:13 編輯

1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
Linux驅(qū)動開發(fā),其實吧東西并不是特別多,主要就是了解設(shè)備模型,驅(qū)動模型,以及能看懂datasheet,看懂原理圖,基本可以上手
一般是先上電,在根據(jù)datasheet去設(shè)置時鐘,中斷等,相關(guān)的操作在IC手冊中都已經(jīng)有很好的描述了
Linux已經(jīng)將框架都寫好了,照著原有的框架套用就可以了。

2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā),其實Linux部分我感覺沒啥區(qū)別,現(xiàn)在好多android下的優(yōu)勢的東西都已經(jīng)可以在pc上用了,例如PM之類的。
Android驅(qū)動開發(fā)在Linux部分差別不大,但是在HAL部分可能就稍顯明顯了,例如camera驅(qū)動開發(fā),一般是在HAL和Driver之間,有一個vendor部分,vendor部分其實可以理解為pc下面直接操作/dev/下面的設(shè)備節(jié)點的東西,camera部分的isp3a方面的操作一般是在這里面操作。其實好多關(guān)鍵的東西都在這里面;
有些硬件平臺有點差別,例如異構(gòu)的平臺,有modem部分系統(tǒng)和Linux部分系統(tǒng),好多純粹的硬件操作都是在modem系統(tǒng)部分操作了,Linux只是通過rpc從對應的內(nèi)存空間取數(shù)據(jù)就可以了。

總結(jié),Android設(shè)備驅(qū)動開發(fā)與傳統(tǒng)Linux設(shè)備驅(qū)動開發(fā),差別不大,很好上手,做過了就知道了

論壇徽章:
0
8 [報告]
發(fā)表于 2014-04-24 21:44 |只看該作者
版主是正解。Android實際上是Linux OS上的一個衍生品。其驅(qū)動與Linux驅(qū)動有許多相通之處。從源頭看看,導致Android驅(qū)動與PC上Linux驅(qū)動相異的主要有2個:一是Android是嵌入式系統(tǒng),與PC 臺式機系統(tǒng)不同;二是Android OS在Linux內(nèi)核之上遵循Apache License。其中源頭二就使得Android OS在Linux內(nèi)核之上,引入了HAL 層,以支持各設(shè)備驅(qū)動廠商與開發(fā)者的商業(yè)利益。而源頭一則使得在Android系統(tǒng)中,只會選擇會用到的設(shè)備驅(qū)動程序,而不像電腦pc中會有過多的冗余,因為Android作為一個便攜式移動終端,其上運行的設(shè)備,在出廠前基本固定死,而不用像PC那樣要支持太多的設(shè)備擴展性。

另外正如T-BagWell所述,Androd的由于運用場景不一樣,可能更多地會偏重于GPS、GSensor等便攜式的感應器,這些對于PC Linux是不適合的。當然,對于一個底層驅(qū)動的工程師來講,本質(zhì)區(qū)別不大,但在向上層提供服務(wù)的實時性上應有更多考量。

同時,Android作為一個實時性O(shè)S,還定制了一些獨有的驅(qū)動,比如Binder等,以實現(xiàn)輕量級的進程間通信,以支撐C/S應用架構(gòu)的快速響應。這些都是Android系統(tǒng)引以為豪的。

同時, Android驅(qū)動也是門實踐性很強的技術(shù),有了Linux驅(qū)動開發(fā)經(jīng)驗肯定會方便許多;有機會大家可以也動手開發(fā)下Android類的驅(qū)動,并著手為自己所編寫的驅(qū)動編寫相應的服務(wù),相信大家一定會感觸更多。學過COM的甚至可能體會到分布式計算思想也融入其中,深入些的可能也就會體會到Android的架構(gòu)之美和Google的野望^_^

論壇徽章:
3
CU十二周年紀念徽章
日期:2013-10-24 15:41:34雙子座
日期:2014-03-02 00:11:39fulanqi
日期:2016-06-17 17:54:25
9 [報告]
發(fā)表于 2014-04-24 22:39 |只看該作者
1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
明確基本概念:系統(tǒng)調(diào)用——應用程序OS內(nèi)核之間的接口;設(shè)備驅(qū)動——OS內(nèi)核和底層硬件之間的接口。
設(shè)備驅(qū)動封裝了硬件的細節(jié),應用程序可以像操作普通文件那樣操作硬件設(shè)備。設(shè)備驅(qū)動要完成如下功能:
1)設(shè)備的初始化和關(guān)閉
2)從內(nèi)核向設(shè)備文件雙向傳輸數(shù)據(jù)
3)檢測和處理設(shè)備可能出現(xiàn)的錯誤
Linux系統(tǒng)有三類設(shè)備文件類型:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備跟硬件I/O相關(guān);塊設(shè)備會操作系統(tǒng)內(nèi)存;網(wǎng)絡(luò)設(shè)備跟通信相關(guān)。這在設(shè)備文件的文件屬性中注明。
每個文件都有兩個設(shè)備號:一是主設(shè)備號,它標識驅(qū)動程序;二是從設(shè)備號,它標識同一設(shè)備驅(qū)動程序的不同硬件設(shè)備。
Linux設(shè)備驅(qū)動開發(fā)和傳統(tǒng)應用程序的開發(fā)有很大不同,以至于兩者的經(jīng)驗無法相互借用。
Linux設(shè)備驅(qū)動開發(fā)工作于內(nèi)核態(tài)。
Linux設(shè)備驅(qū)動開發(fā)必備的技能有:良好的C語言功底;熟悉硬件;熟悉Linux內(nèi)核源碼;精通多任務(wù)設(shè)計。
通常使用GNU C來開發(fā)驅(qū)動程序。
Linux設(shè)備驅(qū)動開發(fā)要注意,程序是沒有內(nèi)存保護機制的,而且內(nèi)核棧非常小。

2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
Android是Linux OS的衍生版,兩者有很多共通之處。兩者的區(qū)別在于:
1)Android引入了一個硬件抽象層HAL
HAL是Linux內(nèi)核驅(qū)動程序的封裝,向上提供接口,屏蔽了底層的實現(xiàn)細節(jié)。
HAL運行于用戶空間,而內(nèi)核驅(qū)動程序運行于內(nèi)核空間。
內(nèi)核驅(qū)動層指提供簡單的硬件訪問邏輯,復雜的功能都放在HAL了。
2)Android應用是Java程序,它通過JNI訪問C程序提供的硬件訪問服務(wù)。
基本上來說,Android驅(qū)動開發(fā)有如下的步驟:
一是在Android內(nèi)核源碼中編寫硬件驅(qū)動程序;
二是在Android系統(tǒng)中填寫C語言可執(zhí)行程序,它用于訪問硬件驅(qū)動程序;
三是在Android的HAL添加接口模塊訪問硬件驅(qū)動程序;
四是在Android系統(tǒng)中編寫JNI方法,為應用程序框架層提供Java訪問硬件的接口;
五是為Android系統(tǒng)的應用程序框架層添加硬件服務(wù)接口;
六是用Java開發(fā)Android應用程序,調(diào)用JNI訪問硬件服務(wù),驗證接口是否OK。
3)Linux內(nèi)核驅(qū)動是開源的,Android驅(qū)動是閉源的。

Linux驅(qū)動開發(fā)轉(zhuǎn)向Android驅(qū)動開發(fā)是很容易的,原理相通,Android驅(qū)動開發(fā)顯得復雜了一點,但沒有質(zhì)的差異。而且Android驅(qū)動的閉源給廣大驅(qū)動開發(fā)程序員帶來了更多的就業(yè)機會。

論壇徽章:
0
10 [報告]
發(fā)表于 2014-04-25 18:16 |只看該作者
1、您的Linux驅(qū)動開發(fā)的經(jīng)驗之談
     就Linux驅(qū)動開發(fā)而言,大家通常講只要了解設(shè)備模型就能比較好的理解設(shè)備驅(qū)動。話雖如此,但是如果僅僅是這樣,要想開發(fā)驅(qū)動程序可能也不太現(xiàn)實。個人覺得更多的內(nèi)核機制是必不可少的。比如內(nèi)存管理、線程管理、文件系統(tǒng)。 而其他一些小機制也必須掌握, 中斷、鏈表、隊列、定時器……等等。畢竟做驅(qū)動開發(fā),不是說往系統(tǒng)里面注冊了這個設(shè)備就完事了,更重要的是要完成設(shè)備所做的工作。
     在開發(fā)的過程中,多看別人的驅(qū)動程序是必不可少的,也是學習的捷徑;
     所謂磨刀不誤砍柴功,花點時間學習調(diào)試的方法和相關(guān)的工具也是有必要的。
     檢驗驅(qū)動完善與否的唯一途徑就是測試, 所以,一個優(yōu)秀的開發(fā)人員,必定是一個優(yōu)秀的測試工程師。

2、傳統(tǒng)的Linux驅(qū)動開發(fā)和Android驅(qū)動開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
     Linux驅(qū)動 主要是針對Linux操作系統(tǒng),兼容性是其一個比較重要的評價標準;而且Linux 版本如此眾多,Linux系統(tǒng)廠商也很多,就主流的 ubuntu、redhat、fedroa等也都有各自的差異,所以能開發(fā)一款通用性高的驅(qū)動程序也是Linux驅(qū)動開發(fā)工程師面臨的難題;    而Android的驅(qū)動程序雖然基于LINux內(nèi)核,但是內(nèi)核版本通常固定,而且主要針對某一固定終端設(shè)備,所以只要在該終端上沒有問題就可以了, 也正因為如此,android 驅(qū)動開發(fā)工程師需要開發(fā)的驅(qū)動會比較多,而不像PC linux 驅(qū)動那樣,專注于某一個設(shè)備的驅(qū)動。
     關(guān)于如何轉(zhuǎn)換,我覺得必要的硬件知識是需要的;另外就是要善于利用網(wǎng)絡(luò)資源。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP