【正文】
自己平時也要多寫代碼,多練習(xí)(這一點我做的不好,寫的少)。如果再遇到問題,再去發(fā)貼問,這樣也顯得咱們有水平。現(xiàn)在買一塊開發(fā)板很便宜,飛凌的OK6410的開發(fā)板就不錯,源碼完全開放,而且資料也很豐富,完全能滿足初學(xué)者學(xué)習(xí)用,有人說友善的板子也不錯,我個人覺得友善的板子不錯,但是不適合初學(xué)者,因為他的很多的東西是不給代碼的,用過友善的板子的同學(xué)經(jīng)常有這樣的痛苦,想學(xué)一個東西,去找他的代碼的時候,卻找不到,很多友善提供的代碼中很多的都是封裝好的,只提供給客戶一個庫,初學(xué)者想要找代碼的時候就不知道怎么辦了。所以不要眼高手低。還有,不要直接閱讀linux內(nèi)核源代碼,看一些自己把頭撞破也想不明白的事,會打擊初學(xué)者的積極性,要循序漸進,今天學(xué)個做個led,明天做個串口,后天說不定就做硬件編解碼了。初學(xué)者看前4講就可以了。操作系統(tǒng)原理也應(yīng)該知道基本的原理的,我記得我大學(xué)沒這個課還是去電信學(xué)院蹭別的專業(yè)的課呢,后來學(xué)習(xí)發(fā)現(xiàn)很多的東西都是在這個課上學(xué)到的。而且還能感覺到每天都有收獲。閑話有點多了,說了很多都是自己大學(xué)那點破事。交叉編譯器會幫我們做好這些事情,他比我們更了解arm結(jié)構(gòu)。所以我認為,買一個開發(fā)板是完全有必要的,拿到實物操作一下就不會感覺太抽象了。我們學(xué)習(xí)51芯片,是為了以后的打基礎(chǔ),知道是怎么通過配置寄存器來實現(xiàn)功能。我這個專業(yè)沒學(xué)過C++,一開始不知道什么是向?qū)ο螅裁唇忻嫦蜻^程,這可能讓大家笑話了。嵌入式系統(tǒng)的外存形式多樣了,嵌入式文件系統(tǒng) ○需方便的掛接不同存儲設(shè)備的驅(qū)動程序,具有靈活的設(shè)備管理能力。除支持標準的文件系統(tǒng)外,為提高實時性,有些嵌入 ○式文件系統(tǒng)還支持自定義的實時文件系統(tǒng),這些文件系統(tǒng)一般采用連續(xù)的方式存儲文件。提供對文件的加密和解密功能。提供用戶共享文件的機制。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調(diào)用命令向用戶程序提供服務(wù)。提供設(shè)備統(tǒng)一的驅(qū)動接口。支持開放性和可伸縮性的體系結(jié)構(gòu)。二.嵌入式系統(tǒng)的組成一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層組成。如果能到這個地步,打住吧,該改行去做市場了。要想成為大師級人物再從如下領(lǐng)域開始修煉: 1,精通一種系統(tǒng)建模語言和工具Telelogic tau SDL/UML suit最經(jīng)典。2,分析一種通訊協(xié)議棧的實現(xiàn)方式TCP/IP最實用。` 判斷撥號是否成功 for n in `seq 3` do pingc 1 ${ADDRESSIP}I ${INTERFACE} /dev/null 2amp。` ADDRESSIP=`grep ”$ADDRESSIPNAME“ ${WR}/$4|awk 39。then killINT `cat /var/run/$` If the kill did not work then there is no process running for this may also mean that the lock file will be may wish to delete the lock file at the same [!”$?“ = ”0“ ]。 CONNECT 39。 rAT OK 39。 CONNECT 39。 rAT OK 39。在這里,就可以獲取系統(tǒng)要使用的是哪個設(shè)備來進行聯(lián)網(wǎng)、設(shè)備的速率是多少。腳本設(shè)置成功以后,?這個需要從pppd程序的主函數(shù)入手。int child_wait = 5。char *bundle_name = NULL。bool tune_kernel。int log_to_fd = 1。char *ipparam = NULL。char passwd[MAXSECRETLEN]。bool nodetach = 0。demond參數(shù)告訴pppd停留在后臺,監(jiān)視網(wǎng)絡(luò)數(shù)據(jù),一旦有要求就立即進行連網(wǎng),超時后就斷開連接,但pppd仍然停留在后臺等待下次數(shù)據(jù)傳送 :int debug = 0。加上參數(shù)v 告訴 chat命令將其所有的輸出/入拷貝到系統(tǒng)記錄里(通常是 /var/log/messages)。所以在考慮到各種特殊情況下,配置一個PPP連接的CHAT腳本就可以像下面這樣: TIMEOUT 30 ABORT BUSY ABORT NO ANSWER ABORT RINGING ”“ AT OK ATDT dialnumber CONNECT ”“OPTIONS腳本的內(nèi)容,為PPP連接指定了連接使用的設(shè)備、使用的控制字符傳輸速率、指定了硬件加速、溢出控制等。前面的字符串都是期望獲取的串,緊跟的是發(fā)送的字符串。這個腳本每一項的具體含義是這樣的:1)MODEM期望空字符串。例如下面的options腳本:ttyS0指定連接使用的設(shè)備,例如:ttyS0、ttyS1等57600設(shè)置連接使用的控制字符傳輸速率,可以設(shè)置為57600、115200等 debug如果需要加入調(diào)試信息,就加入?yún)?shù)debug logfile /var/ ppplog將連接過程中的信息輸入到某個文件中 mtu 1500detach noipdefault不使用默認IP就可以加入?yún)?shù)noipdefault defaultroute usepeerdns使用服務(wù)器端協(xié)商的DNS就可以設(shè)置參數(shù)usepeerdns lcpechofailure 4當連續(xù)4次沒有收到發(fā)出的LCP回聲請求時,就認為服務(wù)器端已不再響應(yīng),就退出執(zhí)行。t 6 指定了執(zhí)行chat該命令的時間為6s。int kdebugflag = 0。bool updetach = 0。bool persist = 0。int idle_time_limit = 0。bool log_default = 1。int connect_delay = 1000。bool dump_options。一般情況下,PPP連接是需要進行身份認證的。這個過程是這樣的:Pppd程序啟動以后。Pppd 將配置的參數(shù)解析為程序當中的全局變量標識符,進行pppd連接控制。AT+CGDCONT=1,”IP“,”CMNET“39。39。AT+CGDCONT=1,”IP“,”CMNET“39。39。then rmf /var/run/$ echo ”ERROR: Removed stale pid file“ exit 1 fi pppd clean u