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