C語言是所有編程語言中的強者
可以用于單片機、DSP、類似ARM的各種芯片的編程,因此必須非常熟練地掌握。我推薦閱讀譚浩強的書籍,這本經(jīng)典教材非常好,《The C Programming Language》這本老外寫的書籍也是不錯的選擇。
其次,了解操作系統(tǒng)原理也是必需的。如果您是計算機專業(yè)畢業(yè)生,那就無所謂了,但如果您不是計算機專業(yè)的,就需要找一本比較淺顯的計算機原理書籍來學(xué)習(xí),以便了解“進程”、“線程”、“系統(tǒng)調(diào)度”等基本問題。
第三,Linux操作系統(tǒng)是用C語言編寫的,因此您也應(yīng)該先學(xué)習(xí)Linux方面的編程,只有當(dāng)您掌握應(yīng)用后,才能進一步了解其內(nèi)核的精髓。我推薦閱讀《UNIX環(huán)境高級編程》(第2版)。
第四,了解ARM的架構(gòu)、原理以及匯編指令也非常重要。在嵌入式開發(fā)中,我們一般很少去寫匯編,但起碼的要求是能夠看懂ARM匯編。如果您需要了解更多信息,可以查看我總結(jié)的一些嵌入式資料。
第五,在進行系統(tǒng)移植時,您需要從下層的bootloader開始,然后移植內(nèi)核、文件系統(tǒng)等。由于移植這部分對硬件的依賴性非常大,配置步驟相對復(fù)雜,因此也沒有太多詳細資料可供參考。
最后,如果您有興趣進行驅(qū)動開發(fā),Linux驅(qū)動程序設(shè)計將是一個極具挑戰(zhàn)性的領(lǐng)域。Linux驅(qū)動程序設(shè)計本質(zhì)上屬于Linux內(nèi)核編程范疇,因此對Linux內(nèi)核和內(nèi)核編程有一定的要求。在學(xué)習(xí)之前,您需要了解Linux內(nèi)核的組成,因為每個部分都需要詳細研究,足夠可以擴展成一本厚書。
剛好我這里有資料需要的可以私我