Jlink + ADS調(diào)試 S3C2440
ADS 項目屬性設(shè)置:
-ro-base = 0x30000000
entry 0x30000000
Init Section: 2440init.o Init
AXD下需要加載一個SDRAM初始化文件。
AXD下-->Option->Config Interface->session file->run configuration script.
選擇一個初始化文件,內(nèi)容如下:
Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32
關(guān)掉option->config procossor->semihosting
用以上的方法,能在SDRAM中運行一次或幾次一個小程序。
option->config procossor->vector catch -> 選clear all
就不會有 too many breakpoint了。
幾乎和JTAG一致。只是選的仿真DLL不同。
首先寫好內(nèi)存初始化文件,就是初始化內(nèi)存控制器的表。-裝好JLINK的光盤驅(qū)動。打開ADS點擊debug,進入后選target configuration吧。設(shè)置內(nèi)存初始化文件路徑,設(shè)置JLINK 仿真DLL路徑,貌似JLINK有說明的吧。
確定,下次啟動ADS debug就自動使用JLINK了。
正解!
板子中一般都有bootloader,其啟動過程中做好了硬件的初始化。所以你如果等boot起來再打開AXD調(diào)試(禁止J-LINK復位)就不用AXD DEBUGGER文件了
找到一個 Jlink V8 調(diào)試帶字幕的視頻教程,看看有沒有用
http://v.youku.com/v_show/id_XMTQ5ODc5ODA4.html
(已解決)ARM79_0 raise an exption,cause:The processor was reset.
ADS+JLINK 為什么在進入AXD下載了IMAGE 運行就提示
ARM79_0 raise an excption,cause:The processor was reset.
下面是在網(wǎng)上搜到的解決方法:
ARM Jtag調(diào)試時,默認AXD并不會初始化SDRAM(這也難怪,AXD并不知道板子的連線情況),因此在把代碼下到SDRAM調(diào)試之前需要進行初始化。也可以讓AXD通過JTAG配置2440的SDRAM控制寄存器實現(xiàn)對SDRAM的初始化,引用別人的;勞動成果:
通過axd命令行對目標板進行設(shè)置
因為sdram是在0x30000000地址的,所以需要先對存儲器控制寄存器進行設(shè)置,在axd下設(shè)置方法是:選systems views->command lines interface,輸入如下命令對寄存器設(shè)置
地址 值 長度
setmem 0x53000000, 0x00000000, 32
還可以將要設(shè)置的寄存器寫入一個文件,在命令行用ob(obey) config.ini即可批量執(zhí)行設(shè)置指令或在options->Configure Interface中做如下設(shè)置
我的config文件內(nèi)容如下:
setmem 0x53000000, 0x00000000, 32
setmem 0x4a000008, 0xffffffff, 32
setmem 0x4a00001c, 0x00007fff, 32
setmem 0x48000000, 0x2212d110, 32
setmem 0x48000004, 0x00000f40, 32
setmem 0x48000008, 0x00002e50, 32
setmem 0x4800000c, 0x00002e50, 32
setmem 0x48000010, 0x00002e50, 32
setmem 0x48000014, 0x00002e50, 32
setmem 0x48000018, 0x00002e50, 32
setmem 0x4800001c, 0x00018005, 32
setmem 0x48000020, 0x00018005, 32
setmem 0x48000024, 0x00960542, 32
setmem 0x48000028, 0x00000032, 32
setmem 0x4800002c, 0x00000030, 32
setmem 0x48000030, 0x00000030, 32
如果設(shè)置正確則開發(fā)版的SDRAM生效,則可以加載目標代碼了
http://www.e-online.cc/bbs/thread-76-1-1.html
今天調(diào)試時還發(fā)現(xiàn)了原來那個板子的問題(寫0x30000000時0x30000001~3一起跟著變)
在option->configure interface->session file里面加載配置文件
內(nèi)容如下
Setmem 0x53000000 0x00000000 32
Setmem 0x4A000008 0xFFFFFFFF 32
Setmem 0x4A00001C 0x000007FF 32
Setmem 0x53000000 0x00000000 32
Setmem 0x56000050 0x000055AA 32
Setmem 0x4C000014 0x00000007 32
Setmem 0x4C000000 0x00FFFFFF 32
Setmem 0x4C000004 0x00061012 32
Setmem 0x4C000008 0x00040042 32
Setmem 0x48000000 0x22111120 32
Setmem 0x48000004 0x00002F50 32
Setmem 0x48000008 0x00000700 32
Setmem 0x4800000C 0x00000700 32
Setmem 0x48000010 0x00000700 32
Setmem 0x48000014 0x00000700 32
Setmem 0x48000018 0x0007FFFC 32
Setmem 0x4800001C 0x00018005 32
Setmem 0x48000020 0x00018005 32
Setmem 0x48000024 0x008E0459 32
Setmem 0x48000028 0x00000032 32
Setmem 0x4800002C 0x00000030 32
Setmem 0x48000030 0x00000030 32
后,就OK了,看來還是內(nèi)存配置的問題呀
把下面的內(nèi)容放到一個文件里,用jink file.txt加載,可以自動把NBOOT2nd.bin下載并運行
注:如果沒有W4那堆配置內(nèi)存的命令,下載文件到RAM中會是錯的
r
h
w4 0x53000000 0x00000000
w4 0x4A000008 0xFFFFFFFF
w4 0x4A00001C 0x000007FF
w4 0x53000000 0x00000000
w4 0x56000050 0x000055AA
w4 0x4C000014 0x00000007
w4 0x4C000000 0x00FFFFFF
w4 0x4C000004 0x00061012
w4 0x4C000008 0x00040042
w4 0x48000000 0x22111120
w4 0x48000004 0x00002F50
w4 0x48000008 0x00000700
w4 0x4800000C 0x00000700
w4 0x48000010 0x00000700
w4 0x48000014 0x00000700
w4 0x48000018 0x0007FFFC
w4 0x4800001C 0x00018005
w4 0x48000020 0x00018005
w4 0x48000024 0x008E0459
w4 0x48000028 0x00000032
w4 0x4800002C 0x00000030
w4 0x48000030 0x00000030
speed 12000
loadbin d:NBOOT2nd.bin,0x30000000
setpc 0x30000000
g
//用下面命令可以檢測內(nèi)存中寫入的數(shù)據(jù)是否正確
mem 30000000,16
w1 30000000,0x12
mem 30000000,16
評論