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

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: send_linux
打印 上一主題 下一主題

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

論壇徽章:
0
11 [報(bào)告]
發(fā)表于 2014-04-26 02:40 |只看該作者

1、您的Linux驅(qū)動(dòng)開發(fā)的經(jīng)驗(yàn)之談
     Linux驅(qū)動(dòng)的開發(fā)主要還是在掌握模型,其實(shí)總結(jié)起來Linux下有三類驅(qū)動(dòng),字符驅(qū)動(dòng),塊驅(qū)動(dòng),網(wǎng)絡(luò)驅(qū)動(dòng),這個(gè)是根本,但是在有平臺驅(qū)動(dòng)和總線驅(qū)動(dòng),這種高級點(diǎn)的概念,現(xiàn)在驅(qū)動(dòng)模型已經(jīng)很成熟了沒個(gè)類型的驅(qū)動(dòng)都包括兩個(gè)或三個(gè)層次,在實(shí)際寫驅(qū)動(dòng)時(shí),我們只把最下邊的層次做好就行了。但是由于驅(qū)動(dòng)和內(nèi)核聯(lián)系緊密,所以我們對驅(qū)動(dòng)的層次結(jié)構(gòu)和內(nèi)核的技術(shù)也要有比較好的了解。學(xué)習(xí)linux驅(qū)動(dòng)可以先閱讀下比較經(jīng)典的驅(qū)動(dòng)書籍,同時(shí)多看看代碼,當(dāng)然練習(xí)是必須的。這個(gè)不能省。盡量找些資源,多練習(xí),多嘗試。所有知識要想消化到自己的肚子里,必須多練習(xí)。

2、傳統(tǒng)的Linux驅(qū)動(dòng)開發(fā)和Android驅(qū)動(dòng)開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
     傳統(tǒng)Linux 驅(qū)動(dòng)開發(fā) 和Android 驅(qū)動(dòng)開發(fā)區(qū)別不大,但是由于Android在Liunx驅(qū)動(dòng)之上又做了一次封裝,所以區(qū)別的部分關(guān)鍵在這里。這個(gè)封裝是android的秘密所在,
它被包含在framework里分為兩個(gè)部分 -- HAL 和 JNI 。
     如果你有時(shí)間研究下就會(huì)發(fā)現(xiàn),HAL 其實(shí)就是類似Linux下應(yīng)用的結(jié)構(gòu),只不過是換了個(gè)名稱,結(jié)構(gòu)上稍微有些不一樣,但是實(shí)質(zhì)是一樣 比如打開設(shè)備文件,有open、close、ioctrl 等典型方法。
     JNI 是java native interface,也就是Java 和 C 的橋梁,有了它就可以再java程序中調(diào)用c的代碼了,其實(shí)它也是HAL 的又一層封裝。有固定的模式。

論壇徽章:
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
12 [報(bào)告]
發(fā)表于 2014-04-26 10:05 |只看該作者
lininglive 發(fā)表于 2014-04-26 02:40
1、您的Linux驅(qū)動(dòng)開發(fā)的經(jīng)驗(yàn)之談
     Linux驅(qū)動(dòng)的開發(fā)主要還是在掌握模型,其實(shí)總結(jié)起來Linux下有三類驅(qū) ...


感謝參與,這都是半夜干活的主啊,呵呵

論壇徽章:
0
13 [報(bào)告]
發(fā)表于 2014-04-26 10:53 |只看該作者
呵呵,可能大家白天都忙吧,只有晚上才得有空。很高興能在這里與各位Linux與Android資深專家們們一起討論。

看來大家共同認(rèn)可HAL是Android與Linux的驅(qū)動(dòng)的第一大區(qū)別。
誠如樓上lininglive所述,在HAL會(huì)有許多關(guān)于基于標(biāo)準(zhǔn)Linux驅(qū)動(dòng) VFS的訪問操作,這是必須的。但大家仍然把HAL理解為驅(qū)動(dòng)的一般,是因?yàn)槠渫ㄟ^底層驅(qū)動(dòng)收集了I/O數(shù)據(jù),在HAL往往還需要做一起處理,再向上層應(yīng)用提供相應(yīng)的服務(wù)。一個(gè)典型的例子就是3D顯示引擎,圖像數(shù)據(jù)在通過顯卡(Android里應(yīng)是顯示控制器)輸出之前,繁雜而費(fèi)時(shí)的三維圖像運(yùn)算工作就可以放在HAL中實(shí)現(xiàn)。這應(yīng)是HAL更核心的價(jià)值所在,有效地保護(hù)了開發(fā)廠商的核心利益,又不會(huì)太混淆應(yīng)用和其它開發(fā)者的視聽。

如有偏頗,請大家拍磚。

論壇徽章:
17
戌狗
日期:2013-09-02 23:43:02技術(shù)圖書徽章
日期:2014-04-29 14:16:02技術(shù)圖書徽章
日期:2014-04-24 15:51:26未羊
日期:2014-04-06 22:10:30丑牛
日期:2014-04-06 21:23:29辰龍
日期:2014-04-06 21:20:22處女座
日期:2014-04-06 21:16:18技術(shù)圖書徽章
日期:2014-04-02 15:10:51金牛座
日期:2014-03-10 22:26:18巨蟹座
日期:2014-02-17 17:12:12技術(shù)圖書徽章
日期:2014-01-24 10:38:43摩羯座
日期:2013-11-29 18:00:18
14 [報(bào)告]
發(fā)表于 2014-04-26 12:10 |只看該作者
Android 開發(fā)是目前最有前景的行業(yè)。支持Android 系統(tǒng)發(fā)展。

論壇徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉雞
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午馬
日期:2013-10-25 21:22:48技術(shù)圖書徽章
日期:2013-11-01 09:11:32雙魚座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉雞
日期:2013-12-04 19:56:39
15 [報(bào)告]
發(fā)表于 2014-04-28 09:26 |只看該作者
這個(gè)話題不錯(cuò),但是可能差異還是不大吧

論壇徽章:
0
16 [報(bào)告]
發(fā)表于 2014-04-28 09:37 |只看該作者
1、您的Linux驅(qū)動(dòng)開發(fā)的經(jīng)驗(yàn)之談
     從玩單片機(jī)轉(zhuǎn)過來的人。感覺linux驅(qū)動(dòng)就是把對硬件的操作套入linux的驅(qū)動(dòng)模型了。這事參考著同類型的源碼做過一兩次就感覺沒有什么難度了。但linux的驅(qū)動(dòng)-總線模型還是挺復(fù)雜的,還好網(wǎng)上資料多。慢慢學(xué)習(xí)吧。

論壇徽章:
0
17 [報(bào)告]
發(fā)表于 2014-04-28 11:38 |只看該作者
回復(fù) 12# send_linux
感謝 樓主 關(guān)注! 也許是加班的習(xí)慣養(yǎng)成吧!總覺的夜深人靜的時(shí)候,才能安靜的做點(diǎn)事情!我也是android新手!請大家多指教!

   

論壇徽章:
0
18 [報(bào)告]
發(fā)表于 2014-04-29 10:45 |只看該作者
linux 驅(qū)動(dòng)和android驅(qū)動(dòng)都接觸過,可是都沒深入。

linux驅(qū)動(dòng)大部分是參考和模仿現(xiàn)有驅(qū)動(dòng),因?yàn)轵?qū)動(dòng)那個(gè)套路就在那里;
android的驅(qū)動(dòng)在linux kernel層的修改是有限的,adb bind log等幾塊;對具體設(shè)備的驅(qū)動(dòng)到是基于linux驅(qū)動(dòng)上,對設(shè)備調(diào)用api的實(shí)現(xiàn)。比如gps的驅(qū)動(dòng),在linux層可能是個(gè)串口或usb設(shè)備的驅(qū)動(dòng),但在android hal層它給的是一個(gè).h的接口,實(shí)現(xiàn)了這些接口,就完成了驅(qū)動(dòng)。ril也是類似的。

論壇徽章:
1
金牛座
日期:2014-08-18 17:32:41
19 [報(bào)告]
發(fā)表于 2014-04-29 12:00 |只看該作者
本帖最后由 andycrusoe 于 2014-04-29 12:15 編輯

1、您的Linux驅(qū)動(dòng)開發(fā)的經(jīng)驗(yàn)之談
linux驅(qū)動(dòng)學(xué)習(xí)分為三個(gè)部分
1)硬件部分40%,要求有一定的硬件基礎(chǔ),能看懂原理圖,能使用基本的示波器,萬用表,邏輯分析儀等等。各種不同硬件接口的時(shí)序,走線等等,如串口,camera,網(wǎng)口。新硬件,datasheet要認(rèn)真看,注意看重點(diǎn)。
2)協(xié)議部分20%,硬件工作一般按照一定的時(shí)序操作,I2C,SPI常見,復(fù)雜的USB邏輯分層,不同的硬件不同,需要經(jīng)驗(yàn)積累,看文檔
3)linux驅(qū)動(dòng)框架部分40%,字符設(shè)備,塊設(shè)備,網(wǎng)絡(luò)設(shè)備三大塊。細(xì)節(jié)有同步,中斷上下文,SMP的不同,poll,platform,tty,proc,sys,同步異步。把驅(qū)動(dòng)框架掌握好了后,就有術(shù)了,有內(nèi)功,一般的驅(qū)動(dòng)修改不成問題,從頭開始寫驅(qū)動(dòng)至少還得花3倍以上精力吧。

做驅(qū)動(dòng)不易,linux驅(qū)動(dòng)框架,內(nèi)核基礎(chǔ)一定得有,這是一個(gè)大難點(diǎn),需要很長時(shí)間入門,基本的linux驅(qū)動(dòng)框架,函數(shù)接口熟悉一遍就需要不少時(shí)間。這是一個(gè)非常陡峭的山坡,一定要突擊時(shí)間一次性的上去,否則一段時(shí)間不看就忘了,又掉下來,下次學(xué)習(xí)又需要從頭開始,學(xué)習(xí)的過程中做好筆記,要把書越看越薄。主意理解linux把一切都看出文件的思想,說到底,最好都是實(shí)現(xiàn)各種file operations,申請,初始化,注冊,使用,釋放,注銷,基本就這個(gè)流程,各個(gè)框架函數(shù)不一樣,封裝層次也有差別,加上一些內(nèi)核其它方法,定時(shí)器,工作隊(duì)列,線程,鎖等,就能完成非常多的工作了

個(gè)人建議學(xué)習(xí)驅(qū)動(dòng)有一定的數(shù)電模電基礎(chǔ),最好做過單片機(jī),那個(gè)郭天華的十天學(xué)習(xí)單片機(jī)不錯(cuò)。然后從linux的內(nèi)核編程學(xué)起,學(xué)習(xí)linux驅(qū)動(dòng)框架,linux device driver入門不錯(cuò),宋寶華的書不適合新手,當(dāng)手冊查還行。然后實(shí)踐,大量的調(diào)試,各個(gè)硬件,總線協(xié)議,慢慢積累經(jīng)驗(yàn)。

做驅(qū)動(dòng)的最好有應(yīng)用層開發(fā)經(jīng)驗(yàn),知道應(yīng)用層需要什么。驅(qū)動(dòng)是底層硬件和應(yīng)用層的溝通交互人,要把底層給上層屏蔽掉。所以C語言基礎(chǔ)很重要,要扎實(shí)的C功底,一定的面向?qū)ο笏枷,還有GNU C對標(biāo)準(zhǔn)C的擴(kuò)展需要了解,各種宏的使用也很重要,新手對各種宏容易暈。

驅(qū)動(dòng)的進(jìn)階BSP開發(fā),需要匯編知識了,一般ARM平臺的多,arm thumb指令,匯編、C混合編程。靜態(tài)映射很重要,做過一個(gè)平臺后,差不多就找到感覺了。Uboot,linux kernel移植有了基礎(chǔ),看點(diǎn)資料就不難了。
linux內(nèi)核社區(qū)的開發(fā)可以看看,了解一下,還有各個(gè)平臺的一些開發(fā)平臺,git源等,多關(guān)注,很可能你在調(diào)試的bug上面已經(jīng)有patch了

2、傳統(tǒng)的Linux驅(qū)動(dòng)開發(fā)和Android驅(qū)動(dòng)開發(fā)有何區(qū)別,如何轉(zhuǎn)為后者?
android和linux底層都是linux 內(nèi)核,android對內(nèi)核改動(dòng)了一些,還把一些內(nèi)核驅(qū)動(dòng)功能移到hal層,個(gè)人理解差不多就是應(yīng)用層的驅(qū)動(dòng),類似于應(yīng)用層的I2C,SPI驅(qū)動(dòng),底層驅(qū)動(dòng)提供接口,hal層提供業(yè)務(wù)邏輯。
有l(wèi)inux驅(qū)動(dòng)基礎(chǔ)轉(zhuǎn)android還是很快會(huì)上手的,補(bǔ)一下android開發(fā)基礎(chǔ)知識,java語言學(xué)習(xí)一下,再學(xué)一下jni,四大組件也可以看一看。
做android就需要了解android了,轉(zhuǎn)向android驅(qū)動(dòng)最好有一定的java基礎(chǔ),JNI,NDK編程需要了解。底層是C驅(qū)動(dòng),然后java通過JNI調(diào)用接口在上層使用。android的四大組件,不同于純linux開發(fā)的地方也需要了解。android只是個(gè)人興趣學(xué)習(xí),沒多深入,

以上是個(gè)人看法,歡迎交流。做驅(qū)動(dòng)一定要心里有譜,硬件,協(xié)議,驅(qū)動(dòng),內(nèi)核,應(yīng)用層,心里有數(shù)據(jù)流的每一個(gè)過程,能分析出來問題在哪里。還有可能是電子器件損壞,焊接問題,原理圖設(shè)計(jì)問題,pcb封裝問題,走線干擾問題,做多了,可能會(huì)遇到,不知道各位又遇到什么其它罕見的問題沒。你得懷疑每一個(gè)值得懷疑的地方,然后慢慢排查,這里不要推卸責(zé)任,交流溝通很重要,定位了問題,就成功了一半,切忌相互推諉,要溝通。

    寫了不少,很多很簡略,展開可能就非常長了。歡迎有經(jīng)驗(yàn)的交流,共同進(jìn)步

評分

參與人數(shù) 1可用積分 +6 收起 理由
send_linux + 6

查看全部評分

論壇徽章:
0
20 [報(bào)告]
發(fā)表于 2014-04-29 13:14 |只看該作者
回復(fù) 13# hongduna


    贊
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP