時間:2018-07-02 00:00:00 來源:信盈達 作者:信盈達
初學(xué)的學(xué)員在學(xué)習(xí)嵌入式Linux經(jīng)常會遇到一些問題,信盈達小編整理了一些問題和解答方法,大家可以看看了解一下:
1.Bootloader部分:
a.很多人匯編部分會自己學(xué)著寫
如果HDIVN非0,則需要將fast bus mode 轉(zhuǎn)換為asynchronous bus mode;為提高啟動速度,需開啟ICACHE;都是對p15協(xié)處理器進行操作,很多初學(xué)者容易混淆
正確方式是:
模式轉(zhuǎn)換 mrc p15, 0, r1 ,c1, c0, 0 (換行) orr r1, r1, #0xc0000000 (換行) mcr p15, 0, r1, c1, c0, 0
啟動ICACHE mrc p15, 0, r0, c1, c0, 0 (換行) orr r0, r0 ,#(1<<12) (換行)mcr p15, 0, r0, c1, c0, 0
b.編譯時 start.S warning: no newline end of file ---文件末尾要有一個回車,光標(biāo)到下一行最左
對于*.c文件的換行,用"\n\r"比較好
c.更新了一個文件再重新編譯時,出現(xiàn) warning clock skew detected
---make clean后再make可解決(雖然該警告不影響編譯,但解決了比較好)
2.linux操作系統(tǒng)部分:
a.裝在虛擬機上的linux,若系統(tǒng)文件沒有指定IP,重啟時需要重新設(shè)定IP, 可在/etc/rc.d/rc.local文件中設(shè)定,加入
ifconfig eth0 *.*.*.* (需要設(shè)定的IP地址)
b.終端下執(zhí)行某些指令,輸出的內(nèi)容太多,卷標(biāo)托到最上也看不到全部,可使用如 ls > /home/print.txt使輸出轉(zhuǎn)移到指定 文件再查看
c.linux退出vi,命令模式下用ctrl+shift+':',輸入wq或q!;有些嵌入式終端卻不行,則可能是設(shè)定成了shift+':'至末尾
3.交叉編譯環(huán)境及工具
a.使用ADS工具及Jlink,AXD有時會卡死,需注意make, debug等的節(jié)奏,剛開始使用感覺不太順暢,需先關(guān)閉Jlink再重啟
b.使用Jlink燒寫裸板程序及u-boot,需要找到對應(yīng)的*.jflash
c.查看u-boot和kernel的代碼,用source insight比較好,要學(xué)會使用
4.代碼的編寫
a.腳本文件中不能有注釋;類似 . =ALIGN(4);的語句, .和=之間要有空格,不然編譯會出錯
新手查看Makefile比較困難,記住以下常用符號的涵義:
-c代表只編譯,不鏈接; $@代表目標(biāo); $^代表所有依賴對象; @<代表第一個依賴對象
b.volatile代表編譯時不優(yōu)化,設(shè)定一些常量時很有用;C語言中的void類型,代表任意類型,而不是空的意思,需要注意
c.指針與一般整數(shù)變量之間的關(guān)系運算沒有意義,但指針可以和零進行等于或不等于的關(guān)系運算,判斷指針是否為空
信盈達2008年在深圳特區(qū)南山高新科技園成立。自成立至今近九年來專注為企業(yè)和個人提供高端方案設(shè)計、高端嵌入式/Android培訓(xùn)等服務(wù)。公司下設(shè)信盈達實訓(xùn)學(xué)院、信盈達研發(fā)中心、信盈達教學(xué)儀器三大業(yè)務(wù)板塊。九年來公司堅持"技術(shù)領(lǐng)先、服務(wù)領(lǐng)先",以雄厚的實力和專業(yè)的品質(zhì)成為國內(nèi)唯一有實力從產(chǎn)品最底層研發(fā)到系統(tǒng)層開發(fā)的嵌入式實訓(xùn)、產(chǎn)品解決方案提供商。為中國IT行業(yè)提供最具價值的職業(yè)教育服務(wù)。專業(yè)培訓(xùn)i嵌入式、物聯(lián)網(wǎng)、人工智能、Java、單片機等課程,想了解更多信息點擊立馬咨詢
免費領(lǐng)取試聽卡
申請已經(jīng)提交
老師會馬上給您安排試聽課程!
申請出錯了
您可以加老師QQ:914865590報名咨詢!