天天看點

嵌入式學習路線-嵌入式系統開發流程中常見的問題

    嵌入式系統無疑是目前熱門和有發展前景的IT應用領域之一,特别是随着消費家電的智能化,嵌入式更顯重要性,嵌入式系統開發簡單來講就是對電腦之外所有電子裝置上的作業系統的開發,嵌入式系統開發的範圍很廣,開發對象也有很多,接下來先簡單了解下嵌入式系統開發流程中常見的幾大問題:

    1、Bootloader如何寫入Flash 

    初學者一般都會遇到如何将程式寫入處理器的問題。對于不同的處理器,可以采用不同的方法。例如Intel的Xscale處理器可以使用Intel公司提供的JFlash工具燒寫。對于具有JTAG調試工具軟體的處理器,可以使用如下思路:編寫一段程式,這段程式能将位于SDRAM/SRAM 固定位址中的資料寫入Flash中。

    2、什麼是arm-elf-gccarm-elf-gcc是一個交叉C語言編譯器。我們在PC平台下編譯程式,編譯器運作的處理器同生成的代碼将要運作的處理器相同。但是,在PC機上編譯ARM程式時,編譯器運作的處理器同生成的代碼運作的處理器不同,這種編譯器叫做交叉編譯器,其中的elf是指編譯器生成的目标檔案格式。

嵌入式學習路線-嵌入式系統開發流程中常見的問題

    3、走了哪條編譯路徑

    系統程式和驅動程式往往包含很多的編譯選項,很多選項都是在編譯時通過指令行定義的,如果想知道編譯的是那一段程式可以使用如下的方法:

    #ifdef PLAT_AAA

    #error Code for Platform AAA

    #else

    #error Code NOT for Platform AAA

    #endif

    這樣在編譯的時候就知道,編譯的是哪一條路經了。對于支援#pragma message( “I am here”)的編譯器也可使用#pragma message預編譯指令。

    4、我怎麼知道那段代碼在那個檔案中

    系統程式設計中經常需要使用在多個檔案中搜尋字元串,在windows平台下可以使用平台提供的多檔案字元串搜尋工具。在linux平台下,可以使用grep來搜尋字元串。Grep的搜尋功能十分強大,支援正規表達式搜尋,熟練使用grep對于閱讀系統和驅動程式代碼是很有幫助的。

    5、系統是從那個檔案開始運作的

    對于Windows CE系統,一般從WINCE420PLATFORMYourPlatformKERNELHAL目錄的某個彙編檔案中。對于Linux系統版本不同會存在一定差異,以arm處理器為例,一般會在linux2.4.xarcharmkernel的head-armv.S中。

    6、程式執行到了那裡

    可以在程式中插入如下代碼來實作

    printf( “I am here %s, %dn”,__FILE__, __LINE__);

    代碼将打出printf語句所在的檔案名和行号。

    嵌入式開發與桌面開發既有不同,又有非常大的聯系,以上六大嵌入式系統開發流程中常見的問題就簡單介紹這些了,這些常見問題在很多嵌入式工程師在開發過程中都會遇到。

轉載于:https://blog.51cto.com/14033587/2323189

繼續閱讀