開發板上一般已經燒寫好了嵌入式系統內核鏡像,文件系統和前面講的U-Boot,在掌握了燒寫方法后,可以自己下載。
3.4源程序的獲得、編譯和調試
由于Linux是開源軟件,所以運行在其下的應用軟件也是開源軟件,不管是哪一類的都免費獲得源代碼?梢灾苯釉谝延械脑创a上進行修改得到符合要求的代碼。論文中使用的就是已有的源代碼,如圖2所示。
Linux操作系統支持匯編,C,C++,Basic,Fortran,Pascal,JAVA,PHP等多種編程語言。其下的文本編輯器是Vi和Emacs,二者均有強大的編輯功能。圖形界面的編程用的是Qt或是MiniGUI。利用以上軟件,跟在Windows和其他操作系統下的軟件編寫方法完全相同。
編寫軟件的過程與在其他系統下沒有什么不同,不同的地方在與編譯和調試。嵌入式中稱之為交叉編譯和交叉調試。
交叉編譯就是將在PC上編寫好的源代碼經過編譯、鏈接生成可以在嵌入式系統上運行的代碼,如圖2所示。
在交叉調試中,調試器和被調試程序分別在PC系統和嵌入式系統中,這是與一般調試不同的地方。交叉調試一般分為軟件調試和硬件調試。
軟件調試插入調試樁的方式進行。典型的是GDB調試器,它分為GdbServer和GdbClient,前者作為調試樁安裝在arm的嵌入式系統中,后者駐于本地PC中,二者可通過串口、網口、并口通信。
硬件調試一般都使用的是仿真器,常用的如ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。硬件調試功能更強大,性能更優秀,但是有的價格昂貴,額外的設備增加了成本。而ARM的JTAG端口實現在CPU內部調試,通過端口發送命令和接收信息。
JTAG采用的主要技術為邊界掃描技術,它的基本思想就是在靠近芯片的輸入輸出管腳上增加一個移位寄存器單元。當芯片處于調試狀態時候,這些邊界掃描寄存器可以將芯片和外圍的輸入輸出隔離開來。通過這些邊界掃描寄存器單元,可以實現對芯片輸入輸出信號的觀察和控制,它提供了一個便捷的方式用于觀測和控制所需要調試的芯片。通過JTAG接口可以方便地對目標系統進行測試,同時,還可以實現Flash的編程,是非常受人歡迎的調試方式。
4結 論
主機從網絡下載mp3格式歌曲,通過串口(或tftp)傳送到開發板上,用經過調試的播放器,結合教研室開發的功率放大器,很好的實現了播放音頻的功能。
在此基礎上,還可以進一步開發視頻播放功能。除了播放器應用軟件,還可以根據存儲器的大小增加其他應用程序。