国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2368|回復: 0
打印 上一主題 下一主題

嵌入式開發

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2016-4-16 11:57:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
針對近些日子新手的學習一些最基本的嵌入式開發中涉及到的一些基礎知識,基本概念,本來我認為大家應該懂的,但發現確實不少徒弟們還處于比較初級的學習階段,所以這里我做個總結,下面的概念都是你必須要知道的,請花一定的時間理解這些概念,不懂的網上搜索下為自己拓展下這些知識點:
(1)嵌入式系統
對于嵌入式系統的概念,我的理解就是:嵌入式系統一定是個軟件,硬件統一起來的概念,特定的軟件系統是緊密的、有針對性的某款具體硬件的,有的嵌入式系統是有獨立使用功能的,比如無線路由器,而有的只是一個嵌入式產品的一部分,比如手機modem部分,DSP處理器部分。
(2)arm
arm有兩個概念,一個是指arm公司,一個是指arm核,我們看到的arm926,arm11,cortexa8,a9等說法,都是arm core的概念,是arm公司設計的最基本的架構,它類比于x86的概念。
而平時我們說的6410,2440,都是叫嵌入式處理器的,是具體的CPU的概念。是這些半導體公司使用arm core,再加上自己的外設IP,造就出的一顆特定的CPU產品。舉例子:s3c6410是基于arm11的core來做出的一個CPU,但是6410不等同于arm11處理器。
(3)Linux
Linux是個操作系統,是運用操作系統理論寫的一個軟件,它實現了最基本的操作系統API給上層用戶,同時它還管理著硬件操作。
(4)ubuntu
ubuntu是個linux的發行版,其實就是個桌面系統,winxp總用過吧,類似了。就是把一系列具有界面功能的軟件組合在一起供你方便的使用么。你可以把ubuntu理解成一系列的linux應用軟件的組合。我們就是利用ubuntu來進行程序的交叉編譯的哦。
(5)c語言
Linux內核的所有程序都是用c語言開發的,沒學過c語言的趕緊開始吧,這個是最基本的元素了,c語言都不懂其他的啥也別看了。編程語言可是所有應用,內核等軟件的基礎啊。
(6)開發板
拿ok6410的開發板來舉個例子,s3c6410是顆三星的CPU,它是基于arm11的core制作的。而ok6410是個開發板,是用s3c6410作為主CPU,然后自己設計一些外設,組合成的一塊板子,可以用來做產品搞開發,這就是開發板的概念。你可以類比聯想下:你的筆記本電腦就是個開發板,它有好多外設供你使用,鍵盤,lcd,usb,硬盤,內存等等吧,它用的CPU是intel x86的核。
(7)GCC,Glibc
gcc是編譯器,是用來在linux的環境下編譯c語言的編譯器,因為linux是用c語言寫的,所以gcc也是用來編譯linux的編譯器工具。這個可以聯想windows上的c編譯工具,tubo c,VC++,不過這類都是IDE集成開發環境,我們這的gcc完全是單個的,命令行編譯器。
glibc,是一些列c語言的庫函數的組合,就是一些最基本的,最通用的功能,不需要你自己再去實現啦,你只需要調用glibc中這些庫就可以啦,方便啊。
(8)編譯器工具鏈
顧名思義就是把一系列用來編譯生成程序最終可執行檔的工具組合,比如:gcc,glibc等。我們在編譯arm linux的時候經?吹絘rm-linux-gcc這類都是用來交叉編譯基于arm的cpu的程序可執行文件,當我要你在ubuntu上編譯個c hello程序,gcc -c hello.c hello,其實生成的hello程序是針對x86架構的程序,因為這個hello程序我不是要你們運行了么?哪里運行的,就是你自己的PC機啊。你pc是什么cpu的啊,x86的啊。
如果你想編譯基于arm核的CPU的的程序,運行在ok6410的開發板上,你就要用arm-linux-gcc的編譯器,這個編譯完成之后生成的文件只能運行在arm的開發板上的哦,arm-linux-gcc -c hello.c hello,把你編譯后的hello文件在你的電腦上運行下,怎么樣,執行不了了吧?因為這個是針對arm的文件,不是x86的了。
(9)Makefile
你編譯一個簡單的hello.c文件,執行:arm-linux-gcc -c hello.c hello,這個看上去很簡單,但是如果你要編譯linux內核這么多,上萬的文件,難道你也一個個的書寫文件名字?肯定是不行的,所以我們發明了Makefile了,呵呵,就是把一系列編譯命令抽象的統一起來到Makefile中,然后你編譯只需要輸入一個make就可以了。 Makefile文件 Makefile 一個工程中的源文件不計數,其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執行操作系統的命令。
(10)shell命令行解釋器
我不是經常要大家編譯c程序么,輸入的一些linux命令什么的不都是在用一個叫“終端解釋器”的工具么?這個工具就是shell命令行解釋器,它的作用就是遵循一定的語法將輸入的命令加以解釋并傳給linux系統。它為用戶提供了一個向Linux發送請求以便運行程序的接口系統級程序,用戶可以用Shell來啟動、掛起、停止甚至是編寫一些程序。
(11)shell腳本
更明白的來說,shell script就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易的就能夠一個操作執行多個命令,每一個單個的命令都可以運行在shell命令行解釋器中運行,而一系列的命令被匯總到一個文件中,統一執行,這個文件就是shell腳本。
(12)編譯Linux內核
大家要知道編譯linux內核用的也是arm-linux-gcc工具,但是不需要glibc庫的,glibc的庫是給linux應用程序來用的,我們的內核和應用是有區別的,linux內核有自己的c庫,屬于內核程序。編譯內核,就是make命令,然后makefile就會自動編譯全部內核文件,make menuconfig是用來配置linux內核的命令。
(13)內核開發,驅動開發
   內核開發與驅動開發相輔相成,對于Linux內核的開發者來說,比如linux之父linus,他就是個內核開發者,對linux內核相關的程序進行設計開發者,而我們目前的階段都是處于驅動開發階段,都是利用linux的內核提供的函數API開發自己的驅動程序。
(14)交叉編譯
我們先看一個非交叉編譯的情況,當我們在ubuntu x86的pc上,寫一個hello的程序,然后gcc -c hello.c hello來生成hello文件,并運行在ubuntu的命令解釋器終端工具中。那么這個在x86的機器上編譯程序hello,并且這個hello可以直接運行在x86的機器中的過程就是“編譯”,它是個“非交叉編譯”的概念。  那么我們的arm上面的程序是如何編譯的呢?
我們利用arm-linux-gcc -c hello.c hello來編譯生成hello程序,是不能運行在x86上面的,只能在arm的板子上,例如:ok6410開發板,運行。
這個過程,編譯器在ubuntu的x86 pc機上編譯能夠運行在arm架構的開發板上的過程就是“交叉編譯”的概念啊。
更多資訊可加交流群QQ277686564     QQ2905283896  

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

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久受www免费人成 | 亚洲天天更新 | 日韩男女视频 | 国产在线每日更新 | 四虎影院在线观看免费 | 久久99精品九九九久久婷婷 | 欧美午夜精品久久久久免费视 | 欧美精品一区二区三区在线 | 高傲名媛野外耻辱调教h | 成视频年人黄网站免费动漫 | 美女黄频视频免费国产大全 | 国产精品久久久一区二区三区 | 性欧美大战久久久久久久久 | 久草资源视频 | 欧美三级网站在线观看 | 欧美开嫩苞实拍视频在线观看 | 99re6精品| 欧美在线视频导航 | 国产高清国产专区国产精品 | 久久久精品久久久久久 | 青青操综合 | 欧美黄网站免费观看 | 日本不卡视频在线视频观看 | 九九精品视频在线 | 久久精品国产99国产精品免费看 | 成年人快播 | 麻豆va在线精品免费播放 | 国产精品午夜寂寞视频 | 国产欧美日韩在线观看 | 青青久操视频 | www.四虎影院在线观看 | 久草精品在线 | 闲人吧综合免费888精品 | 青春草国产成人精品久久 | 四虎精品成人免费永久 | 国产对白精品刺激一区二区 | 久久婷婷国产精品香蕉 | 中文字幕一区二区三区免费视频 | 中文字幕麻豆 | 97成人在线观看 | 亚洲视频免费播放 |