天天看點

了解了自己的工作

工作五年,各種折騰linux uboot, driver, soc, 産品,協定棧(afdx,wimax, lora),os(ucos,rtems, arduino,nuttx,linux,windows), 異步通信軟體設計,讀了以下文章,深有同感,終于更加深入的了解自己做的東西,了解了自己在2007年左右所想象的研發的内容,10年時間尋找答案,終于明白了, 曆經5家公司,7.5年工作,仿佛真的太笨了........

讀了許多書,走了許多路,經曆了許多事,33歲明白了一些事情,希望不是太晚

未來五年,希望能夠按照節奏,做成一件事情........

origin:http://blog.csdn.net/yanleizhouqing/article/details/47105073

大學畢業,初入公司,招進去的是android驅動開發工程師的崗位,那時候剛進去,首先學到的就是如何搭建kernel、android的編譯環境,然後就是了解如何刷裝置以及一些最基本的工具。如adb、fastboot、grep、minicom、kermit、svn、git、eclispe、ndk等相關的知識,記得那時候很挫,過去很多東西都不懂。到了那,一周,都是熟悉使用ubuntu,然後了解刷機的流程,了解uboot、kernel、ramdisk、recovery、system的作用以及相關的架構,印象最深的是,就搞定刷機這個問題,都折騰了很久,原因之前的文章也說了,usb id 沒有配好,因為android裝置在開機狀态和fastboot的模式下,usb id是不一樣的。在開機狀态下,可以通過adb shell 進入android系統,但一切換fastboot模式,就發現無法找到裝置。當初,學習驅動開發的第一步,就是點亮一個LED燈,當然是基于android系統的,不是裸版上操作。正所謂初生牛犢不怕虎,先把百度,網上多的是例子,很高興,馬上copy一份代碼,修改修改,試一試,編譯通過,然後按着說明步驟,一步一步操作,發現insmod led.ko的時候,加載不成功,沒辦法,繼續百度,搞了半天,沒找到問題所在,然後嘗試靜态的編進去,别說,成功加載了,在/dev下找到自己的驅動,燈也亮了。當時,覺得完成任務,也沒有多考慮什麼,就向師父說,搞定了。就這樣,一步一步的學下去,平台裝置驅動模型,幀緩沖裝置,輸入子系統,中斷,并态競争,并開始慢慢解bug,調子產品,UHF,nfc,rfid,電池,3G,音頻,掃描頭,wifi等一些,也許由于時間較緊,或者更可能也是因為得過且過,覺得在這家公司也能生存下去,對一些細節、原理性的東西并未深究。比如,核心層的數組越界表現為裝置整個重新開機,JNI層數組越界,可能從andorid重新開機,app出現問題,表現應用挂掉。現在,事情不太多,想着把以前學的東西,從新梳理一下,并且深入的跟一下,畢竟不能浮于表面,應該多學習學習。