嵌入式c編程
無區別,只不過編譯器不一樣罷了。因為不同的cpu構架有不同的指令集。而嵌入式基本使用RISC結構的cpu,需要使用pc上的cpu編譯出在能嵌入式cpu上運行的二進製程序。這叫交叉編譯。pc上的程序不可以直接在其他cpu上運行,需要重新編譯。
因為編譯器不一樣,執行的c語言標准就跟編譯器相關。
管理內存映射,設置中斷系統等在pc上也有,不是嵌入式的專利。
只是做嵌入式里的界面、網路、文件編程的話,跟pc上幾乎沒有差別,因為有操作系統罩著。如果開發驅動程序,就要求你對所使用的cpu和板子的結構很了解,也就是看得懂硬體手冊即可。
另外嵌入式環境同pc的差別 如cpu位數、硬體資源緊缺等是需要程序員考慮的。
B. 宓屽叆寮廲璇璦
C璇璦鏄緙栫▼璇璦錛屽祵鍏ュ紡鏄涓涓琛屼笟錛屽崟鐗囨満鏄涓涓騫沖彴涔熸槸涓涓宸ュ叿錛岃仈緋昏搗鏉ュ氨鏄錛岀敤C璇璦緙栬緫鍑轟唬鐮侊紝鐒跺悗縐繪嶅埌鍗曠墖鏈轟笂榪愯岋紝涓よ呯粨鍚堝仛鍑轟竴涓紼嬪簭錛屾渶鍚庣Щ妞嶅埌鏌愪竴涓宓屽叆寮忎駭鍝佷笂姣斿傛墜鏈猴紝MP4錛孧P3絳夌瓑錛岀『淇濆彲浠ャ
宓屽叆寮忕紪紼嬬敤鐨勬渶澶氱殑涔熸槸C璇璦錛屽拰鏅閫氱殑windows涓嬬殑C緙栫▼涓嶅悓鐨勫氨鏄錛屾瘮濡傚簲鐢ㄥ眰寮鍙戱紝宓屽叆寮忓紑鍙戝嚭鏉ョ殑搴旂敤紼嬪簭鏈緇堜笉鏄瑕佽繍琛屽湪PC涓 鐨勶紝鑰屾槸鐩鏍囨澘鎵浠ュ祵鍏ュ紡寮鍙戝氨涓瀹氫細鏈変氦鍙夌紪璇戣繖涓鐜鑺傜畝鍗曚竴鐐圭悊瑙e氨鏄錛屽湪P銆
鍙堣兘瀹炵幇涓婂眰鐨勫簲鐢ㄧ▼搴忓紑鍙戱紝騫朵笖榪愯岄珮鏁堝彲縐繪嶏紝鍑犱箮鎵鏈夌殑鎿嶄綔緋葷粺搴曞眰鐨勫疄鐜扮粷澶ч儴鍒嗛兘鏄浣跨敤C璇璦鏉ュ疄鐜扮殑錛屽皯鏁板湴鏂歸渶瑕佷嬌鐢ㄦ眹緙栬璦錛屽祵鍏ュ紡璁懼囩殑榪愯岃佹眰鍜孋璇璦鏄涓鎷嶅嵆鍚堝惂銆
宓屽叆寮忎篃鍒嗗緢澶氱嶇殑錛屾嵁鍒涘㈠﹂櫌浠嬬粛錛屾湁紜浠跺仛鑺鐗囩殑涓昏佸FPGAVerilogHDLVHDL璇璦錛岀‖浠惰捐$數璺鐨勬ā鐢+PCB+MCUC璇璦錛岃蔣浠跺仛鎿嶄綔緋葷粺椹卞姩鐨凜C++璇璦錛岃蔣浠跺仛鎿嶄綔緋葷粺搴旂敤鐨凜C++璇璦錛岃蔣浠跺仛BSP鐨勩
澹版槑鏍煎紡涓 extern type var娉ㄦ剰涓嶅彲浠ユ湁鍒濆嬪寲鍊煎0鏄庡悗錛屽彲浠ュ湪澹版槑璇鍙ュ埌澹版槑璇鍙ユ墍鍦ㄦ枃浠跺熬浣跨敤璇ュ彉閲忎篃鍙浠ュ啓鍦ㄥご鏂囦歡涓錛岃繖鏍峰湪寮曠敤璇ュご鏂囦歡鐨凜鏂囦歡涓錛屽彲浠ュ湪寮曠敤浣嶇疆鍒版枃浠剁粨灝句嬌鐢ㄨュ彉閲忋
鏄鎸変綅涓庡弻鐩榪愮畻絎︼紝闇瑕2涓鎿嶄綔鏁版槸鎸変綅鎴栧弻鐩榪愮畻絎︼綖鏄鎸変綅闈炲崟鐩榪愮畻絎10=0錛 01=0錛 00=0錛 11=1 10=1錛 01=1錛 00=0錛 11=1 ~1=0錛寏0=1 a=b絳変環浜巃=ab鍚岀悊a銆
緙栧啓C璇璦鐨勮蔣浠跺彨c璇璦緙栬瘧鍣ㄨ屾敮鎸乧璇璦鐨勭紪璇戝櫒姣旇緝澶氬湪鍗曠墖鏈虹瓑宓屽叆寮忓紑鍙戜腑鏈涓昏佺敤鐨勬槸keil c 鍦ㄦ垜浠甯哥敤鐨剋indows緋葷粺涓嬫渶甯哥敤鐨勬槸Visual C++緙栬瘧鍣 鍏朵粬鐨勮繕鏈夊緢澶 涓嬮潰鏄痺indows緋葷粺涓嬶紝澶у︽暀瀛︿腑鐩鍓嶅紑鍦ㄣ
鍝 榪欓噷鐢ㄥ埌鏄瀹忓晩涓浜烘槸鍒濆﹁咃紝姣旇緝鍠滄㈢洿鎺ュ啓涓鑸榪欑被鎿嶄綔灝卞寘鎷涓ょ嶅啓涓緗闆跺拰鍐欎竴緗涓姣斿傛兂瑕0x00000000鐨勭浜屼綅緗涓錛屽彉鎴0x00000004鐨勮瘽錛屼究鏄0x000000000x1ltlt2灝卞彲浠ヤ簡 濡傛灉瑕佷嬌寰0x00000004鍙樹負0x銆
C. 闆跺熀紜瀛﹀祵鍏ュ紡Linux C緙栫▼鐩褰
闆跺熀紜瀛﹀祵鍏ュ紡Linux C緙栫▼鐩褰曟傝
姝ょ洰褰曟兜鐩栦簡浠庡叆闂ㄥ埌娣卞叆鐨勫祵鍏ュ紡Linux C緙栫▼鏁欑▼錛屽府鍔╁垵瀛﹁呴愭ユ帉鎻$浉鍏崇煡璇嗐
絎涓綃囷細寮鍙戝熀紜
絎1絝狅細浠嬬粛宓屽叆寮忕郴緇熷熀紜鐭ヨ瘑錛屽寘鎷瀹氫箟銆佺壒鐐廣佸巻鍙層佸簲鐢ㄩ嗗煙鍙婁笌PC鐨勫尯鍒銆
絎2絝狅細璁茶ВLinux鐜澧冧笅C璇璦鐨勫熀紜錛屾秹鍙奀璇璦鍥為【銆佸紑鍙戠幆澧冮厤緗鍜孡inux緋葷粺鎿嶄綔銆
絎3絝狅細鏋勫緩宓屽叆寮廘inux寮鍙戠幆澧冿紝鍖呮嫭U-Boot縐繪嶅拰鍐呮牳緙栬瘧榪囩▼銆
絎浜岀瘒錛氬熀紜緙栫▼
絎4絝狅細C璇璦緙栫▼鍩虹錛屾秹鍙婄紪杈戝櫒浣跨敤銆佺紪璇戝櫒涓庤皟璇曞櫒鐨勪嬌鐢錛屼互鍙奙akefile鍜孍macs緙栬緫鍣ㄧ殑浠嬬粛銆
絎5絝狅細鏁版嵁銆佽繍綆楃﹀拰琛ㄨ揪寮忕殑璁茶В錛屾繁鍏ョ悊瑙C璇璦璇娉曡勫垯鍜屽熀鏈姒傚康銆
絎6絝狅細鏁版嵁鐨勮緭鍏ュ拰杈撳嚭錛屽寘鎷琾rintf鍜宻canf鍑芥暟鐨勪嬌鐢ㄣ
鍚庣畫絝犺妭閫愭ユ繁鍏ュ埌緇撴瀯鍖栫紪紼嬨佹暟緇勩佸嚱鏁般佸唴瀛樼$悊絳夊唴瀹廣
絎涓夌瘒錛氶珮綰х紪紼
絎13絝狅細鎺㈣℅UI寮鍙戞妧鏈錛屽侴TK+鍜孡inux涓嬬殑涓嶅悓GUI閫夐」銆
絎14絝狅細璁懼囬┍鍔ㄥ紑鍙戱紝璁茶В璁懼囬┍鍔ㄤ笌鍐呮牳鐨勫叧緋誨拰鍩烘湰寮鍙戞妧鏈銆
鍏朵粬絝犺妭鍖呮嫭鏂囦歡鎿嶄綔銆佽繘紼嬬$悊涓庣嚎紼嬫帶鍒剁瓑銆
緇煎悎瀹炰緥
絎18絝狅細宓屽叆寮忕綉緇滈槻寰′綋緋昏捐★紝瀹炴垬欏圭洰銆
絎19絝狅細ARM Linux瑙嗛戦噰闆嗕笌浼犺緭錛屽疄璺靛簲鐢ㄣ
絎20絝狅細ARM Linux鎸囩汗璇嗗埆錛岄珮闃舵妧鏈瀹炶返銆