1. linux環境下C開發_linux搭建c語言開發環境
一:C語言嵌入式Linux工程師的學習需要具備一定的C語言基礎,C語言是嵌入式領域最重要也是最主要的編程語言,通過大量編程實例重點理解C語言的基礎編程以及高級編程知識。包括:基本數據類型、數組、指針、結構體、鏈表、文件操作、隊列、棧等。
二:Linux基礎Linux操作系統的概念、安裝方法,詳細了解Linux下的目錄結構、基本命令、編輯器VI,編譯器GCC,調試器GDB和Make項目管理工具,ShellMakefile腳本編寫等知識,嵌入式開發環境的搭建。
三:Linux系統編程重點學習標准I/O庫,Linux多任務編程中的多進程和多線程,以及進程間通信(pipe、FIFO、消息隊列、共享內存、signal、信號量等),同步與互斥對共享資源訪問控制等重要知識,主要提升對Linux應用開發的理解和代碼調試的能力。
四:Linux網路編程計算機網路在嵌入式Linux系統應用開發過程中使用非常廣泛,通過Linux網路發展、TCP/IP協議、socket編程、TCP網路編程、UDP網路編程、Web編程開發等方面入手,全面了解Linux網路應用程序開發。重點學習網路編程相關API,熟練掌握TCP協議伺服器的編程方法和並發伺服器的實現,了解HTTP協議及其實現方法,熟悉UDP廣播、多播的原理及編程方法,掌握混合C/S架構網路通信系統的設計,熟悉HTML,javascript等Web編程技術及實現方法。
五:數據結構與演算法數據結構及演算法在嵌入式底層驅動、通信協議、及各種引擎開發中會得到大量應用,對其掌握的好壞直接影響程序的效率、簡潔及健壯旅瞎性。此階段的學習要重點理解數據結構與演算法的基礎內容,包括順序表、鏈表、隊列、棧、樹、圖、哈希表、各種查找排序演算法等應用及其C語言實現過程。
六:C、QTC是Linux應用開發主要語言之一,本階段重點掌握面向對象編程的基本思想以及C的重要內容。圖形界面編程是嵌入式開發中非常重要的一個環節。由於QT具有跨平台、面向對象、豐富API、支持2D/3D渲染、支持XML、多國語等強大功能,在嵌入式領域的GUI開發中得到了廣范的應用,在本階段通過基於QT圖形庫的學習使學員可以熟練編寫GUI程序,並移植QT應用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息與槽機制的應用、滑鼠、鍵盤及繪圖事件處理及文件處理的應用。
七:CortexA8、Linux平台開發通過基於ARMCortex-A8處理s5pv210了解晶元手冊的基本閱讀技巧,掌握s5pv210系統資源、時鍾控制器、電源管理、異常中斷控制器、nandflash控制器等模塊,為底層平台搭建做好准備。Linux平台包括內核裁減、內核移植、交叉編譯、GNU工具使用、內核調試、Bootloader介紹、製作與原理分析、根文件系統製作以及向內核中添加自己的模塊,並在s5pv210實驗平台上運行自己製作的Linux系統,集成部署Linux系統整個流程。同時了解Android操作系統開發流程。Android系統是基於Linux平台的開源操作系統,該平台由操作系統、中間件、用戶界面和應用軟體組成,是首個為移動終端打造的真正開放和完整的移動軟體,目前它的應用不再局限於移動終端,還包括數據電視、機頂盒、PDA等消費類電子產品。
八:驅動開發拆顫空驅動程序設計是嵌入式Linux開發工作中重要的一部分,也是比較困難的一部分。本階洞租段的學習要熟悉Linux的內核機制、驅動程序與用戶級應用程序的介面,掌握系統對設備的並發操作。熟悉所開發硬體的工作原理,具備ARM硬體介面的基礎知識,熟悉ARMCortex-A8處理器s5pv210各資源、掌握Linux設備驅動原理框架,熟悉工程中常見Linux高級字元設備、塊設備、網路設備、USB設備等驅動開發,在工作中能獨立勝任底層驅動開發。
以上就是列出的關於一名合格嵌入式Linux開發工程師所必學的理論知識,其實,作為一個嵌入式開發人員,專業知識和項目經驗同樣重要,所以在我們的理論學習中也要有一定的項目實踐,鍛煉自己的項目開發能力。
2. linux鐜澧冩惌寤烘ラわ紵
Linux鐜澧冩惌寤烘ラゆ槸錛
鎵撳紑linux錛岀偣鍑誨彸涓嬫柟鐨勭綉緇滈傞厤鍣錛屾墦寮璁劇疆錛岄夋嫨緗戠粶閫傞厤鍣錛屽叾涓鏈夌綉緇滆繛鎺ワ紝甯歌佹湁妗ユ帴妯″紡浠ュ強NAT妯″紡錛屾ˉ鎺ユā寮忕浉褰撲簬鎴戜滑鐨勮櫄鎷熸満鍜屾垜浠鐨刉indows涓繪満騫跺垪鐨勫彟澶栦竴鍙扮嫭絝嬬殑鏈哄櫒錛岄氬父鐐瑰嚮妗ユ帴妯″紡錛岀『瀹氫箣鍚庡啀嬈″彉鎴愯摑鑹插嵆琛ㄧず妗ユ帴瀹屾瘯銆
?榪欑嶆柟寮忓苟涓嶉傚悎鍋氬疄楠岋紝鍥犱負鍚勪釜浜虹殑緗戠粶鐜澧冧笉涓鏍鳳紝鐢ㄦˉ鎺ョ殑鏂瑰紡浼氶渶瑕佺敵璇蜂竴涓鐙絝嬬殑ip,鑻ュ湪鍏鍙革紝寰堟湁鍙鑳戒笌鍒浜虹殑ip鍦板潃鍐茬獊錛岄犳垚涓嶅繀瑕佺殑楹葷儲銆
浣跨敤NAT妯″紡錛岀浉褰撲簬鏋勯犱簡鐙絝嬬殑灞鍩熺綉鐜澧冿紝榪欎釜灞鍩熺綉鐜澧冩槸涓嶅彈澶栫晫緗戠粶騫叉壈錛岃屼笖鍐呴儴灞鍩熺綉緇滃彲浠ラ氳繃Windows涓繪満鍏變韓涓婄綉銆
3. linux鎼寤哄紑鍙戠幆澧冩剰涔塴inux鎼寤哄紑鍙戠幆澧
鎬庝箞璁劇疆golang鐨勭幆澧冨彉閲弆inux錛
Linux涓嬪畨瑁匞o寮鍙戠幆澧冩搷浣滄ラょ涓姝ワ細鐧婚檰linux絎浜屾ワ細鐢ㄥ懡浠yuminstallmercurial瀹夎卪ercurial鍖呯涓夋ワ細鐢ㄥ懡浠yuminstallgit瀹夎単it鍖呯鍥涙ワ細鐢ㄥ懡浠yuminstallgcc瀹夎単cc
linux緋葷粺鎬庢牱榪涜宩ava寮鍙戱紵
linux涓媕ava緙栫▼涓庡湪windows涓嬩竴鏍鳳紝閲嶇偣鍦ㄤ簬鎼寤簀ava寮鍙戠幆澧冦俵inux涓嬫惌寤簀ava寮鍙戠幆澧冩ラわ細
1銆佷笅杞絣inux鐜澧冧笅鐨凧DK錛屼婦渚嬶細
JDK紼嬪簭鍚嶄負錛歫dk-7u11-linux-i586.tar.gz淇濆瓨璺寰勶細/home/wyl/tools-wyl/JDK7u11eclipse紼嬪簭鍚嶄負:eclipse-jee-juno-SR1-linux-gtk.tar.gz淇濆瓨璺寰勶細/home/wyl/tools-wyl/eclipse-javaEE
2銆佽В鍘嬩笅杞界殑jdk-7u11-linux-i586.tar.gz鏂囦歡chmod777jdk-7u11-linux-i586.tar.gztarxzvfjdk-7u11-linux-i586.tar.gz(鏅閫氱敤鎴瘋韓浠借В鍘嬪嵆鍙)
3銆侀厤緗鐜澧冨彉閲忎互瓚呯駭鐢ㄦ埛韜浠芥墽琛屼笅闈㈢殑鍛戒護錛#vim/etc/profile鍦ㄦ枃浠舵湯灝懼姞涓婁互涓嬪唴瀹瑰悗淇濆瓨閫鍑猴紙:wq錛塭xportJAVA_HOME=/home/wyl/tools-wyl/JDK7u11/jdk1.7.0_11錛堣存槑錛氳繖涓鏄疛DK瑙e帇鍚庢枃浠跺す鐨勮礬寰勶級exportPATH=$JAVA_HOME/bin:$PATH鎴杄xportPATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.
4銆佹敞閿閲嶆柊鐧誨綍鍚庡湪緇堢杈撳叆java,javac,java-version,javac-version.嫻嬭瘯鏄鍚﹀畨瑁呮垚鍔熴$java-versionjavaversion"1.7.0_11"Java(TM)SERuntimeEnvironment(build1.7.0_11-b21)JavaHotSpot(TM)ServerVM(build23.6-b04,mixedmode)$javac-versionjavac1.7.0_11$
5銆佽В鍘媏clipse-jee-juno-SR1-linux-gtk.tar.gz騫惰繍琛屽畠(chmod777eclipse...)
5.1銆佽В鍘嬶細tarxzvfeclipse-jee-juno-SR1-linux-gtk.tar.gz錛堟櫘閫氱敤鎴瘋韓浠借В鍘嬪嵆鍙錛屽惁鍒欐瘡嬈¢兘瑕佷互瓚呯駭鐢ㄦ埛韜浠借繍琛屽畠錛夈
5.2銆佽繍琛岋細榪涘叆瑙e帇鍚庣殑鐩褰曪紝鎵ц屽懡浠わ細./eclipse鍗沖彲榪愯宔clipse.鎴栬呰繘鍏ヨВ鍘嬪悗鐨勭洰褰曪紝鍙屽嚮eclipse鍥炬爣鍗沖彲銆傝繍琛宔clipse鍗沖彲榪涜宩ava緙栫▼銆
瑁卨inux緋葷粺闇瑕佸氬ぇ鐨勭┖闂達紵
centos鐨勫唴瀛樹竴鑸緇1g灝卞熶簡錛岃繖涓鍏蜂綋瑕佺湅浣犵殑浜嬫儏鐜澧冿紝鑷宸辯墿鐞嗘満鐨勫唴瀛樺ぇ灝忥紝涓鑸鎯呭喌涓嬩竴鑸瀹夎呯郴緇熺殑鏃跺欓兘鏄緇欏唴瀛樺ぇ涓鐐逛竴鑸緇2g鎴栬呮洿澶с傚畨瑁呭畬linux鍚庯紝鐒跺悗鎶婄綉鍗mac鍒犻櫎錛屾妸鈥/etc/udev/rules.d/70-persistent-net.rules鈥濆垹闄わ紝鐒跺悗鍋氬揩鐓э紝鍋氬厠闅嗐傛墍鏈夌殑鎿嶄綔閮芥槸鍦ㄥ厠闅嗘満鍣ㄩ噷闈㈡搷浣滅殑錛屽疄楠岀幆澧冪殑linux涓鑸瀹夎呴渶瑕侀夋嫨鍥懼艦鍖栨垨鍛戒護琛岋紝鏈夋椂鍊欏仛闆嗙兢鐜澧冧腑linux鍐呭瓨緇4-5鐧懼厗灝卞彲浠ヤ簡銆傝繖涓鏄鎴戠殑緇忛獙銆
linux鐨勫︿範寤鴻鍘粀ww.linuxprobe.com鐪嬬湅錛屽笇鏈涙偍鑳藉熸湁鏀惰幏銆傚湪linux鐨勫︿範涓鎺屾彙涓涓濂界殑鏂規硶鑳藉熸彁楂樺︿範鏁堢巼鐨勩傚緩璁鎵句竴涓濂界殑緗戠珯錛屽ソ濂界殑瀛︿範linux銆傜濅綘濂借繍錛侊紒