S3C2440開發板啟動時候選擇NandFlash啟動,然後輸入如下命令:

  r                                 /*復位cpu*/

  h                                /*暫停CPU*/

  loadbin e:/les.bin 0 /*下載e目錄下的leds.bin到0地址*/

  setpc 0                       /*設定pc執行地址為下載程式碼的地址0*/

  s                                 /*單步除錯*/

  regs                            /*檢視暫存器是否和預想的一樣*/

  s                                 /*繼續單步除錯*/

  每執行一行s,會彈出一個PC=xxxx的地址,

  這是還未執行的,PC當前指向的地址

   mem         /*從30000000地址讀取8位資料*/

   J-Link>mem      /*用於測試記憶體是否完成初始化*/

    =  DA A0 E3

   從低位到高位讀

   J-Link>w4  0x12345678 /*在0x30000000寫16位資料*/

   J-Link>mem  

    =    

  本次除錯所用到的命令:

 h          halt
g go
s Single step the target chip
mem Read memory. Syntax: mem <Addr>, <NumBytes> (hex)
w1 Write -bit items. Syntax: w1 <Addr>, <Data> (hex)
w2 Write -bit items. Syntax: w2 <Addr>, <Data> (hex)
w4 Write -bit items. Syntax: w4 <Addr>, <Data> (hex)
q Quit
qc Close JLink connection and quit
r Reset target (RESET)
Regs Display contents of registers
wreg Write register. Syntax: wreg <RegName>, <Value>
SetBP Set breakpoint. Syntax: SetBP <addr> [A/T] [S/H]
SetWP Set Watchpoint. Syntax: <Addr> [R/W] [<Data> [<D-Mask>] [A-Mask]]
ClrBP Clear breakpoint. Syntax: ClrBP <BP_Handle>
ClrWP Clear watchpoint. Syntax: ClrWP <WP_Handle>
loadbin Load binary file into target memory.
Syntax: loadbin <filename>, <addr>
SetPC Set the PC to specified value. Syntax: SetPC <Addr>
---- JTAG ------------
Config Set number of IR/DR bits before ARM device.
Syntax: Config <IRpre>, <DRpre>
speed Set JTAG speed. Syntax: speed <freq>|auto|adaptive, e.g. speed ,
i Read JTAG Id (Host CPU) Jlink 命令除錯-斷點/條件斷點 普通斷點: 通常使用的普通斷點的新增方法:SetBP <addr> [A/T] [S/H]
條件斷點: watch point, 可以視為一種條件斷點。
設定變數變為指定值時觸發的斷點:
setWP <addr> [<accesstype>] [<size>] [<data> [<data mask> [<addr mask>]]]
for example: 當變數m_marsh_test變為0xDEADBEEF時觸發
通過map檔案得到m_marsh_test的變數地址為0x20004f58;
setWP 0x20004f58 W S32 0xDEADBEEF

  除錯要對組合語言有充分的理解,.dis的反彙編檔案作為除錯中的重要參考檔案。