1 概述
sung公司的S3C4510B是基于以太網(wǎng)應(yīng)用系統(tǒng)的高性價比16/32位RISC微控制器,內(nèi)含一個由ARM公司設(shè)計的16/32位ARM7TDMI RISC處理器核,ARM7TDMI為低功耗、高性能的16/32核,是目前應(yīng)用廣泛的一款A(yù)RM芯片。作者通過對這款典型芯片在網(wǎng)絡(luò)通訊應(yīng)用項目的開發(fā),掌握了ARM的技術(shù)特點和開發(fā)流程,并且在中斷調(diào)試方面獲得了一些高級技巧。
2 硬件特點
S3C4510B的主要特性描述如下:
支持ROM/SRAM、FLASH、DRAM和外部I/O以8/16/32位的方式操作;
100M/10Mbps IEEE802.3標(biāo)準(zhǔn)兼容、提供MII和7線制10Mbps接口Ethernet控制器;
2個10Mbps HDLC (High-Level Data Link Control) 高層數(shù)據(jù)鏈路協(xié)議通道;
2個可工作于DMA方式或中斷方式的UART模塊,支持紅外發(fā)送和接收;
IIC接口(主控模式);
2個可編程32位定時器;18個可編程I/O口;2個DMA通道;
21個中斷源,包括4個外部中斷源;
外部時鐘可由片內(nèi)PLL倍頻;工作頻率最高為50MHz。發(fā)板800
3 調(diào)試環(huán)境
開發(fā)環(huán)境包括Embest IDE集成開發(fā)環(huán)境,Embest 仿真器,基于ARM(S3C4510B)的電路板。
參照嵌入式軟件的開發(fā)流程,如圖1所示。在整個流程中,用戶首先需要建立工程并對工程做初步的配置,包括配置處理器和配置調(diào)試設(shè)備。編輯工程文件,包括自己編寫的匯編和C語言源程序,還有工程編譯時需要編寫的鏈接腳本文件,調(diào)試過程中需要編寫存儲區(qū)映像文件和命令腳本文件,以及上電復(fù)位時的程序運行入口的啟動程序文件。
5 中斷調(diào)試
歡迎訪問無由電子開發(fā)網(wǎng)(技術(shù)文章 在線閱讀 在線商城)
軟件調(diào)試可以在SDRAM中或FLASH中進(jìn)行。在SDRAM中,讀寫方便,訪問速度快。一般軟件調(diào)試應(yīng)在RAM中完成,但當(dāng)RAM空間小于FLASH程序空間,程序只能在FLASH運行和調(diào)試時,或者用戶希望了解程序在FLASH中實際運行情況時,就可以在FLASH中進(jìn)行程序調(diào)試。
進(jìn)行中斷調(diào)試時,應(yīng)注意中斷入口位于SDRAM中或FLASH中0x18或0x1c地址,鏈接腳本文件必須使整個系統(tǒng)的代碼正確定位于0x0起始處,但SDRAM或FLASH對應(yīng)的鏈接腳本文件及工程配置注意區(qū)別。
(1)程序在SDRAM中運行
在SDRAM中調(diào)試,使用SDRAM對應(yīng)的鏈接腳本文件。調(diào)試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;下載程序(在IDE開發(fā)環(huán)境中使用擴(kuò)展名*.elf);調(diào)試。
下載程序前必須啟動命令腳本文件完成前述的一些特定的操作,命令腳本文件的啟動在連接仿真器時自動進(jìn)行,其中存儲區(qū)映射應(yīng)與程序在SDRAM中運行時相同,保證整個系統(tǒng)的代碼正確定位于0x0起始處。下載程序的起始地址也為0x0,下載成功后便可進(jìn)行調(diào)試工作。
(2)程序在FLASH中運行
在FLASH中調(diào)試,使用FLASH對應(yīng)的鏈接腳本文件。調(diào)試過程需要以下幾步:編譯、鏈接工程;連接仿真器和電路板;程序格式轉(zhuǎn)換(*.elf轉(zhuǎn)換為*.bin);固化*.bin程序;調(diào)試。
連接仿真器后不需要下載程序,存儲區(qū)映射由本身工程中啟動文件運行完成,不需要命令腳本文件。在本環(huán)境調(diào)試過程中,可以設(shè)置兩個硬件斷點。
(3)程序從FLASH中調(diào)到SDRAM中運行
在某些應(yīng)用場合,強調(diào)程序運行速度的情況下,希望程序在SDRAM中運行,這樣就需要將FLASH中存儲的程序,在系統(tǒng)上電后搬運到SDRAM某空間
位置,然后自動運行。這種所謂的Bootloader技術(shù),在DSP系統(tǒng)中常被采用。
調(diào)試過程分兩步:
(1)首先將用戶程序在SDRAM中調(diào)試通過,然后將*.bin文件固化到FLASH某一非0扇區(qū)地址空間;
(2)將自己編寫的Bootloader搬運程序調(diào)試通過并將Bootloader.bin文件固化到FLASH的 0扇區(qū)地址空間,搬運程序在系統(tǒng)上電后,將(1)中FLASH某一非0扇區(qū)地址空間存儲的程序,搬運到在SDRAM調(diào)試中同樣的空間位置,實現(xiàn)程序在SDRAM中運行的目的。
另外注意,因為用戶實際的程序中斷入口必須位于FLASH的0x18或0x1c地址,所以Bootloader搬運程序還應(yīng)具有中斷入口的跳轉(zhuǎn)功能,即把PC指針由此轉(zhuǎn)向處于SDRAM空間的中斷程序入口表,就是整個用戶程序被搬運到SDRAM的那一位置。
如:LDR PC, =HandleIRQ
// HandleIRQ位于SDRAM空間中斷程序入口表
在本項目開發(fā)過程中,由于系統(tǒng)實時性要求高,定時器中斷達(dá)到微秒級,程序在FLASH中運行時,速度不能達(dá)到系統(tǒng)要求,故采用把程序從FLASH中調(diào)到SDRAM中運行的方式,問題得到解決。
6 結(jié)束語
上述有關(guān)中斷動態(tài)處理方法及其3種運行方式,是基于S3C4510B系統(tǒng)調(diào)試的一點小結(jié),在ARM技術(shù)的實際應(yīng)用中具有典型性和代表性,讀者可根據(jù)自己的應(yīng)用場合及應(yīng)用目的參考指正。
參考文獻(xiàn)
1、ARM Limited. ARM7TDMI(Rev4) Technical Reference Manual
2、李駒光. ARM應(yīng)用系統(tǒng)開發(fā)詳解──基于S3C4510B的系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2003
3、馬忠梅. ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2003