Ⅰ keil如何打開多個點c並完整編譯
點擊全局編譯按鈕
,完成後在相應目錄文件夾(之前存放hex文件的路徑)下即可看到生成的ethernet.lib文件。知鋒
6、lib文件生成後,還需.h文件,h文件有兩種方式,一種是保留之前.c文件對應的.h文件,繼續照常使用,另一種是可將單獨的.h文件合並成一個新的ethernet.h,直接在main.c調用ethernet.h即可。
7、將lib文件剪切放到Ethernet文件路徑下,將之前的socket.c、w5500.c等文件刪除掉,頭文件換成ethernet.h,工程里將ethernet.lib加攔辯入到group(ethernet文件夾)里。
8、將取消編譯的文件重新打開,將編譯後文件類型改回.hex文件,然後全編譯,沒有錯誤即完成。
另外,若想將一個.c文件生成一個lib文件,只需保留該.c文件進行編譯,.h文件也保持不變,將工程中原先的.c文件替換成.lib文件即可。
用心寫好每篇文章,分享給需要的你☺,如果對您有用希望能留下您的腳印(點贊/評論/收藏)!
stm32
c語言
keil mdk
嵌入式
注意!注意!你有一個手機待領取
巨摩互動
廣告
Keil對lib封裝庫反匯編成C語言.pdf
502下載·22評論
2013年5月6日
把c++的exe工程編譯為動態庫dll靜態庫lib,並實現調用(超詳細)
2087閱讀·0評論·1點贊
2020年8月28日
源代碼封裝成庫Lib的方法
504閱讀·0評論·0點贊
2022年10月14日
STM32/keil把多個c文件編譯為簡猛缺靜態庫lib
2190閱讀·0評論·6點贊
2021年1月5日
C/C++ 靜態庫(lib)的概念和使用方法
3432閱讀·0評論·4點贊
2022年5月2日
Keil 下生成LIB庫文件以及如何使用LIB庫文件
732閱讀·1評論·0點贊
2020年12月19日
注意!注意!你有一個手機待領取
巨摩互動
廣告
C語言 之 編譯自己的lib庫
1457閱讀·0評論·1點贊
2020年8月7日
CMake交叉編譯簡單教程
3.2W閱讀·2評論·14點贊
2018年9月7日
如何將c語言封裝成dll文件,封裝動態庫dll與靜態庫lib(原理及簡單實例)
2069閱讀·0評論·1點贊
2021年5月21日
keil C對lib封裝庫反匯編成C語言,Keil軟體「C語言」及「匯編」混編 —— 相關知識整理.doc...
1587閱讀·0評論·0點贊
2021年5月21日
keil 加密:編譯代碼成lib庫
454閱讀·0評論·0點贊
2022年7月28日
Keil C 裡面Lib庫文件的生成與調用
11下載·0評論
2020年8月4日
keil C對lib封裝庫反匯編成C語言
101下載·4評論
2011年4月8日
C語言編譯lib庫手動添加
1888閱讀·0評論·0點贊
2017年6月18日
基於Keil下多文件打包生成Lib庫文件的具體操作
2667閱讀·3評論·2點贊
2020年1月18日
Windows DOS命令行編譯C/C++程序----庫文件.lib的鏈接
1752閱讀·0評論·0點贊
2019年2月21日
keil把源代碼生成lib的方法
2754閱讀·0評論·6點贊
2022年1月25日
keil 編譯生成 .lib文件
2244閱讀·4評論·1點贊
2018年1月8日
keil多文件編譯
724閱讀·0評論·1點贊
2022年4月3日
在keil中將文件封裝為lib庫文件需要注意的地方
1395閱讀·0評論·0點贊
2021年11月15日
去首頁
看看更多熱門內容
評論1
YJer
贊
你好,第6點中提到的,將單獨的.h文件合並成一個新的ethernet.h,
Ⅱ 如何利用Eclipse C/C++搭建嵌入式ARM開發環境
由於覺得在linux下不方便編寫代碼,所以准備在windows上搭建開發環境,其實在Linux上也搭建好了,但是使用起來不是很人性化,尤其是文件比較多的時候就很麻煩。下面就選擇在windows上用Eclipse做開發。【後來發現還是需要在Linux下編程,因為Windows下沒法包含Linux下的一些頭文件,所以下面也介紹Linux環境下的Eclipse搭建】。
Windows下的Eclipse環境搭建:
1. 下載並安裝Eclipse C/C++
2. 下載交叉編譯器,之前在Linux都用的arm-linux-gcc,後來使用TI的ti-sdk-am335x-evm-08開發包,裡面安裝的編譯器是arm-none-linux-gnueabi-gcc,都是能用的,所以我也選擇了arm-none-linux-gnueabi-gcc作為交叉編譯器,下載windows平台的編譯器,然後安裝。
下載地址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc
3. 開啟Eclipse的ssh遠程登錄功能,我分別開啟了Beaglebone Black和Linux的ssh terminal,操作起來很是方便。
4. 新建C項目工程「hello」,編寫簡單的hello代碼,注意選擇交叉編譯選項,交叉編譯器前綴「arm-none-linux-gnueabi-」交叉編譯器路徑選擇arm-none-linux-gnueabi-gcc安裝的路徑「…Linuxin」,在此文件夾下有arm-none-linux-gnueabi-gcc.exe、arm-none-linux-gnueabi-gdb.exe等,還有cs-make.exe,這里需要把「cs-make.exe」改成「make.exe」,因為Eclipse不認cs-make.exe編譯的時候會報錯的。
圖文安裝參考:http://www.linuxidc.com/Linux/2016-03/129577.htm
5. 調試(構建Ctrl+B)的時候會自動生成makefile,生成編譯結果,放到ARM嵌入式平台運行就可以了,成功執行並輸出「hello」。
Linux下的Eclipse環境搭建:
官網下載http://www.eclipse.org/downloads/
發下是收費的
sudo apt-get install eclipse直接就安裝了
然後sudo eclipse –s啟動後發現「窗口->打開視圖」裡面沒有ssh遠程登錄的選項,網路一下發現它是Eclipse的插件,查詢下這個軟體:sudo apt-cache search Remote System Explorer,發現一個eclipse-rse,就是它了,然後直接安裝:sudo apt-get install eclipse-rse
重啟eclipse
新建工程時發現沒有C/C++工程,只有Java工程,再次搜索sudo apt-cache search eclipse C/C++
發現其中一條:
eclipse-cdt - C/C++ Development Tools for Eclipse
繼續安裝:
sudo apt-get install eclipse-cdt
再次重啟eclipse,就有了C/C++項目,高興ing。
新建C工程,添加編譯器:
arm-none-linux-gnueabi-
/opt/toolschain/4.4.3/bin
編寫hello程序,編譯OK,在BBB上執行,成功!
Ⅲ 如何使用CMake進行交叉編譯
cmake交叉編譯配置
很多時候,我們在開發的時候是面對嵌入式平台,因此由於資源的限制需要用到相關的交叉編譯。即在你host宿主機上要生成target目標機的程序。裡面牽扯到相關頭文件的切換和編譯器的選擇以及環境變數的改變等,我今天僅僅簡單介紹下相關CMake在面對交叉編譯的時候,需要做的一些准備工作。
CMake給交叉編譯預留了一個很好的變數CMAKE_TOOLCHAIN_FILE,它定義了一個文件的路徑,這個文件即toolChain,裡面set了一系列你需要改變的變數和屬性,包括C_COMPILER,CXX_COMPILER,如果用Qt的話需要更改QT_QMAKE_EXECUTABLE以及如果用BOOST的話需要更改的BOOST_ROOT(具體查看相關Findxxx.cmake裡面指定的路徑)。CMake為了不讓用戶每次交叉編譯都要重新輸入這些命令,因此它帶來toolChain機制,簡而言之就是一個cmake腳本,內嵌了你需要改變以及需要set的所有交叉環境的設置。
toolChain腳本中設置的幾個重要變數
1.CMAKE_SYSTEM_NAME:
即你目標機target所在的操作系統名稱,比如ARM或者Linux你就需要寫"Linux",如果Windows平台你就寫"Windows",如果你的嵌入式平台沒有相關OS你即需要寫成"Generic",只有當CMAKE_SYSTEM_NAME這個變數被設置了,CMake才認為此時正在交叉編譯,它會額外設置一個變數CMAKE_CROSSCOMPILING為TRUE.
2. CMAKE_C_COMPILER:
顧名思義,即C語言編譯器,這里可以將變數設置成完整路徑或者文件名,設置成完整路徑有一個好處就是CMake會去這個路徑下去尋找編譯相關的其他工具比如linker,binutils等,如果你寫的文件名帶有arm-elf等等前綴,CMake會識別到並且去尋找相關的交叉編譯器。
3. CMAKE_CXX_COMPILER:
同上,此時代表的是C++編譯器。
4. CMAKE_FIND_ROOT_PATH:
指定了一個或者多個優先於其他搜索路徑的搜索路徑。比如你設置了/opt/arm/,所有的Find_xxx.cmake都會優先根據這個路徑下的/usr/lib,/lib等進行查找,然後才會去你自己的/usr/lib和/lib進行查找,如果你有一些庫是不被包含在/opt/arm裡面的,你也可以顯示指定多個值給CMAKE_FIND_ROOT_PATH,比如
set(CMAKE_FIND_ROOT_PATH /opt/arm /opt/inst)
該變數能夠有效地重新定位在給定位置下進行搜索的根路徑。該變數默認為空。當使用交叉編譯時,該變數十分有用:用該變數指向目標環境的根目錄,然後CMake將會在那裡查找。
5. CMAKE_FIND_ROOT_PATH_MODE_PROGRAM:
對FIND_PROGRAM()起作用,有三種取值,NEVER,ONLY,BOTH,第一個表示不在你CMAKE_FIND_ROOT_PATH下進行查找,第二個表示只在這個路徑下查找,第三個表示先查找這個路徑,再查找全局路徑,對於這個變數來說,一般都是調用宿主機的程序,所以一般都設置成NEVER
6. CMAKE_FIND_ROOT_PATH_MODE_LIBRARY:
對FIND_LIBRARY()起作用,表示在鏈接的時候的庫的相關選項,因此這里需要設置成ONLY來保證我們的庫是在交叉環境中找的.
7. CMAKE_FIND_ROOT_PATH_MODE_INCLUDE:
對FIND_PATH()和FIND_FILE()起作用,一般來說也是ONLY,如果你想改變,一般也是在相關的FIND命令中增加option來改變局部設置,有NO_CMAKE_FIND_ROOT_PATH,ONLY_CMAKE_FIND_ROOT_PATH,BOTH_CMAKE_FIND_ROOT_PATH
8. BOOST_ROOT:
對於需要boost庫的用戶來說,相關的boost庫路徑配置也需要設置,因此這里的路徑即ARM下的boost路徑,裡面有include和lib。
9. QT_QMAKE_EXECUTABLE:
對於Qt用戶來說,需要更改相關的qmake命令切換成嵌入式版本,因此這里需要指定成相應的qmake路徑(指定到qmake本身)
toolChain demo
# this is required
SET(CMAKE_SYSTEM_NAME Linux)
# specify the cross compiler
SET(CMAKE_C_COMPILER /opt/arm/usr/bin/ppc_74xx-gcc)
SET(CMAKE_CXX_COMPILER /opt/arm/usr/bin/ppc_74xx-g++)
# where is the target environment
SET(CMAKE_FIND_ROOT_PATH /opt/arm/ppc_74xx /home/rickk/arm_inst)
# search for programs in the build host directories (not necessary)
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# configure Boost and Qt
SET(QT_QMAKE_EXECUTABLE /opt/qt-embedded/qmake)
SET(BOOST_ROOT /opt/boost_arm)
這樣就完成了相關toolChain的編寫,之後,你可以靈活的選擇到底採用宿主機版本還是開發機版本,之間的區別僅僅是一條-DCMAKE_TOOLCHAIN_FILE=./toolChain.cmake,更爽的是,如果你有很多程序需要做轉移,但目標平台是同一個,你僅僅需要寫一份toolChain放在一個地方,就可以給所有工程使用。
Ⅳ cmake使用方法(詳細)
例子
在 cmake 腳本中,設置編譯選項可以通過 add_compile_options 命令,也可以通過 set 命令修改 CMAKE_CXX_FLAGS 或 CMAKE_C_FLAGS 。
使用這兩種方式在有的情況下效果是一樣的,但請注意它們還是有區別的:
例子
也可以直接在編譯的時候指定:
語法
待補充
語法
在CMake中基礎的數據形式是字元串。CMake也支持字元串列表。
列表通過分號分隔。譬如兩個聲明給變數VAR設同樣的值:
字元串列表可以通過foreach命令迭代或直接操控列表命令。
CMake 支持簡單的變數可以是字元串也可以是字元串列表。變數參考使用 ${VAR} 語法。多參數可以使用 set 命令組合到一個列表中。所有其他的命令
通過空白分隔符傳遞命令來擴展列表,例如
像大多數語言一樣,Cmake 提供了控制流結構。Cmake提供了三中控制流:
更多控制流信息參見命令 if,while,foreach,macro,function文檔。
在CMake中原義字元串用雙引號括起來。字元串可以是多行字元串,並在其中嵌入新的行。例如
也可以在一個字元串中轉義字元和使用變數
同樣支持標准C中的轉義
如果字元在引號之前是空格則原義字元串只是原義字元串。但是引號必須成對,例如
cmake可以使用正則表達式
cmake project 頭文件必須存在這行命令, 例如 cmake_minimum_required(VERSION 3.10)
設置項目名稱 project(Tutorial)
語法
例子
語法
將指定的源文件(CPP文件)生成鏈接文件,然後添加到工程中去。
語法
其中 <name> 表示庫文件的名字,該庫文件會根據命令里列出的源文件來創建。而 STATIC 、 SHARED 和 MODULE 的作用是指定生成的庫文件的類型。
例子
在子文件夾添加了 library 或者 executable 之後,在上層目錄添加 subdirectory , 也可以在同一個CMakeList.txt中使用
它相當於 g++ 選項中的 -I 參數的作用,也相當於環境變數中增加路徑到CPLUS_INCLUDE_PATH變數的作用。
語法:
它相當於 g++ 命令的 -L 選項的作用,也相當於環境變數中增加 LD_LIBRARY_PATH 的路徑的作用。
語法:
語法:
該指令的作用主要是指定要鏈接的庫文件的路徑,該指令有時候不一定需要。因為find_package和find_library指令可以得到庫文件的絕對路徑。不過你自己寫的動態庫文件放在自己新建的目錄下時,可以用該指令指定該目錄的路徑以便工程能夠找到。
語法:
link_libraries(library1 <debug | optimized> library2 ...)
可以鏈接一個,也可以多個,中間使用空格分隔.
語法:
語法:
簡單的例子如下:
一般情況下, make install 在不指定 prefix 默認安裝在`/usr/local/bin
Ⅳ 嵌入式編程需要懂哪些
嵌入式編程需要懂C語言,Linux,還有ARM的知識。
關於如何學習嵌入式,我剛才看到一篇很不錯的文章,是一個專科生介紹自己如何自學嵌入式,並找到嵌入式的工作,裡面介紹了他的學習方法和學習過程,希望對你有幫助。
專科生學嵌入式到找到工作的前前後後--學習的榜樣
先做個自我介紹,我07年考上一所很爛專科民辦的學校,學的是生物專業,具體的學校名稱我就不說出來獻丑了。09年我就輟學了,我在那樣的學校,一年學費要1萬多,但是根本沒有人學習,我實在看不到希望,我就退學了。
退學後我也迷茫,大專都沒有畢業,我真的不知道我能幹什麼,我在糾結著我能做什麼。所以輟學後我一段時間,我想去找工作,因為我比較沉默寡言,不是很會說話,我不適合去應聘做業務。我想應聘做技術的,可是處處碰壁。
一次偶然的機會,我才聽到嵌入式這個行業。那天我去新華書店,在計算機分類那邊想找本書學習。後來有個女孩子走過來,問我是不是讀計算機的,有沒有興趣學習嵌入式,然後給我介紹了一下嵌入式現在的火熱情況,告訴我學嵌入式多麼的有前景,給我了一份傳單,嵌入式培訓的廣告。聽了她的介紹,我心裡癢癢的,確實我很想去學會一門自己的技術,靠自己的雙手吃飯。
回家後,我就上網查了下嵌入式,確實是當今比較熱門的行業,也是比較好找工作的,工資也是相對比較高。我就下決心想學嵌入式了。於是我去找嵌入式培訓的相關信息,說真的,我也很迷茫,我不知道培訓是否真的能像他們宣傳的那樣好,所以我就想了解一段時間再做打算。
後來,我在網路知道看到一篇讓我很鼓舞的文章《如何學習嵌入式》,是一個嵌入式高手介紹沒有基礎的朋友怎麼自學入門學嵌入式,文章寫的很好,包含了如何學習,該怎麼學習。他提到一個方法就是看視頻,因為看書實在太枯燥和費解的,很多我們也看不懂。這點我真的很認同,我自己看書往往看不了幾頁。
我在想,為什麼別人都能自學成才,我也可以的!我要相信自己,所以我就想自學,如果實在學不會我再去培訓。
主意一定,我就去搜索嵌入式的視頻,雖然零星找到一些嵌入式的視頻,但是都不系統,我是想找一個能夠告訴我該怎麼學的視頻,一套從入門到精通的視頻,一個比較完整的資料,最好能有老師教,不懂可以請教的。
後來我又找到一份很好的視頻,是在嵌入式學習網推出的一份視頻《嵌入式視頻教程--零基礎手把手教你學嵌入式》,裡面的教程還不錯,很完整,可以讓我從基礎的開始學起。視頻不便宜啊,但是我也忍了,畢竟買幾本書都要幾百了,何況他們還有半年的技術咨詢和服務,算值了。
======這里我就不給出他們的網址,如果你也想要嵌入式視頻的話,那就自己去網路搜索:零基礎手把手教你學嵌入式。
下面介紹下我的學習流程,希望對和我一樣完全沒有基礎的朋友有所幫助。
收到他們寄過來的光碟後,我就開始學習了,由於我沒有什麼基礎,我就從最簡單的C語言視頻教程學起,話說簡單,其實我還是很多不懂的,我只好請教他們,他們還是很熱心的,都幫我解決了。C語言我差不多學了一個禮拜,接下來我就學了linux的基本命令,我在他們提供linux虛擬機上都有做練習,敲linux的基本命令,寫簡單的C語言代碼,差不多也就三個禮拜。我每天都在不停的寫一些簡單的代碼,這樣一月後我基本掌握了C和linux的基本操作。
接下來我就去學習了人家的視頻的培訓教程,是整套的,和去參加培訓沒有多大的區別,這一看就是兩個月,學習了ARM的基本原理,學習嵌入式系統的概念,也掌握了嵌入式的環境的一些搭建,對linux也有更深層次的理解了,明白了嵌入式應用到底是怎麼做的,但是驅動我只是有一點點的了解,這個相對難一點,我想以後再慢慢啃。
這兩個月,除了吃飯睡覺,我幾乎都在學習。因為我知道幾乎沒有基礎,比別人差勁,我只能堅持努力著,我不能放棄,我必要要靠自己來養活自己,必須學好這門技術,同時我不懂的就問,這里真的很感謝他們的技術客服對我的任何問題都是耐心的解答,每天都我幾乎都有好幾個問題問他們,然後我就把不懂的問題總結記下來,這樣慢慢積累了一段時間,我發現自己真的有點入門了。
最後的一個月,我就去看關於實踐部分的內容,了解嵌入式項目具體的開發流程,需要什麼樣的知識,我就開始准備這方面的知識,也就是學習這方面的視頻,同時他們建議我去找了找一些嵌入式面試的題目,為自己以後找工作做准備。我就到網上找了很多嵌入式的題目,把他們理解的記下來,這樣差不多准備了20天左右
我覺得自己差不多入門了,會做一些簡單的東西了。我就想去找工作看看,於是我就到51job瘋狂的投簡歷,因為我學歷的問題,專科沒有畢業,說真的,大公司沒有人會要我,所以我投的都是民營的小公司,我希望自己的努力有所回報。沒有想過幾天過後,就有面試了,但是第一次面試我失敗了,雖然我自認為筆試很好,因為我之前做了准備,但是他們的要求比較嚴格,需要有一年的項目經驗,所以我沒有被選中。
後來陸續面試了幾家公司,終於功夫不負有心人。我終於面試上的,是在閔行的一家民營的企業,公司規模比較小,我的職務是嵌入式linux應用開發,做安防產品的應用的。我想我也比較幸運,經理很看重我的努力,就決定錄用我,開的工資是3500一個月,雖然我知道在上海3500隻能過溫飽的生活,但是我想我足夠了。我至少不用每天都要靠父母養,我自己也能養活自己的。我想只要我繼續努力,我工資一定會翻倍的。
把本文寫出來,希望能讓和我一樣的沒有基礎的朋友有信心,其實我們沒有必要自卑,我們不比別人笨,只要我們肯努力,我們一樣會成功。
最後祝願所有想學嵌入式的朋友更早的入門!
-----------------------------------------------------------
希望我的回答能幫到你吧
Ⅵ 嵌入式開發如何入門
1、Linux基礎
安裝Linux操作系統Linux文件系統Linux常用命令Linux啟動過程詳解熟悉Linux服務能夠獨立安裝Linux操作系統
能夠熟練使用Linux系統的基本命令認識Linux系統的常用服務安裝Linux操作系統Linux基本命令實踐設置Linux環境變數定製Linux的服務
Shell編程基礎使用vi編輯文件使用Emacs編輯文件使用其他編輯器
2、Shell編程基礎
Shell簡介認識後台程序Bash編程熟悉Linux系統下的編輯環境熟悉Linux下的各種Shell熟練進行shell編程熟悉vi基本操作
熟悉Emacs的基本操作比較不同shell的區別編寫一個測試伺服器是否連通的shell腳本程序編寫一個查看進程是否存在的shell腳本程序
編寫一個帶有循環語句的shell腳本程序
3、Linux下的C編慧蠢悄程基礎
linuxC語言環境概述G使用方法Gdb調試技術AutoconfAutomakeMakefile代碼優化
熟悉Linux系統下的開發環境熟悉G編譯器熟悉Makefile規則編寫Hello,World程序使用make命令編譯程序編寫帶有一個循環的程序
調試一個有問題的程序
4、嵌入式系統開發基礎
嵌入式系統概述交叉編譯配置TFTP服務配置NFS服務下載Bootloader和內核
嵌入式Linux應用軟體開發流程熟悉嵌入式系統概念以及開發流程建立嵌入式系統開發環境製作cross_g工具鏈編譯並下載U-boot
編譯並下載Linux內核編譯並下載Linux應用程序
5、嵌入式系統移植
Linux內核代碼平台相關代碼分析ARM平台介紹平台移植的關鍵技術移植Linux內核到ARM平台了解移植的概念
能夠移植Linux內核移植Linux2.6內核到ARM9開發板
6、嵌入式Linux下串口通信
串列I/O的基本概念嵌入式Linux應用軟體開發流程Linux系統的文件和設備與文件相關的系統調用配置超級終端和MiniCOM
能夠熟悉進行串口通信熟悉文件I/O編寫串口通信程序編寫多串口通信程序
7、嵌入式系統中多進程程序設計
Linux系統進程概述嵌入式系統的進程特點進程操作守護進檔鉛程相關的系統調用了解Linux系統中進程的概念能夠編寫多進程程序編寫多進程程序
編寫一個守護進程程序sleep系統調用任務管理、同步與通信Linux任務概述任務調度管道信號共享內存任務管理API了解Linux系統任務管理機制
熟悉進程間通信的幾種方式熟悉前渣嵌入式Linux中的任務間同步與通信編寫一個簡單的管道程序實現文件傳輸編寫一個使用共享內存的程序
8、嵌入式系統中多線程程序設計
線程的基礎知識多線程編程方法線程應用中的同步問題了解線程的概念能夠編寫簡單的多線程程序編寫一個多線程程序
9、嵌入式Linux網路編程
網路基礎知識嵌入式Linux中TCP/IP網路結構socket編程常用API函數分析Ping命令的實現基本UDP套介面編程許可證管理
PPP協議GPRS了解嵌入式Linux網路體系結構能夠進行嵌入式Linux環境下的socket編程熟悉UDP協議、PPP協議熟悉GPRS
使用socket編寫代理伺服器使用socket編寫路由器編寫許可證伺服器指出TCP和UDP的優缺點編寫一個web伺服器編寫一個運行在
ARM平台的網路播放器
10、GUI程序開發
GUI基礎嵌入式系統GUI類型編譯QT進行QT開發熟悉嵌入式系統常用的GUI能夠進行QT編程使用QT編寫「Hello,World」程序
調試一個加入信號/槽的實例通過重載QWidget類方法處理事件
11、Linux字元設備驅動程序
設備驅動程序基礎知識Linux系統的模塊字元設備驅動分析fs_operation結構載入驅動程序了解設備驅動程序的概念
了解Linux字元設備驅動程序結構能夠編寫字元設備驅動程序編寫Skull驅動編寫鍵盤驅動編寫I/O驅動分析一個看門狗驅動程序
對比Linux2.6內核與2.4內核中字元設備驅動的不同Linux塊設備驅動程序塊設備驅動程序工作原理典型的塊設備驅動程序分析
塊設備的讀寫請求隊列了解Linux塊設備驅動程序結構能夠編寫簡單的塊設備驅動程序比較字元設備與塊設備的異同編寫MMC卡驅動程序分析一個文件系統
對比Linux2.6內核與2.4內核中塊設備驅動的不同
12、文件系統
虛擬文件系統文件系統的建立ramfs內存文件系統proc文件系統devfs文件系統MTD技術簡介MTD塊設備初始化
MTD塊設備的讀寫操作了解Linux系統的文件系統了解嵌入式Linux的文件系統了解MTD技術能夠編寫簡單的文件系統為ARM9開發板添加MTD支持
移植JFFS2文件系統通過proc文件系統修改操作系統參數分析romfs文件系統源代碼創建一個cramfs文件系統
無論選擇哪一方向,基本的linux的知識是需要具備的,其他還需要掌握的知識有ARM(最常用的一款嵌入式處理器)和C語言編程,每一方面知識的掌握熟練程度都最終決定了個人進行嵌入式linux開發的綜合能力。