国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 11677|回復(fù): 9
打印 上一主題 下一主題

[提問(wèn)] arm-linux-gcc編譯的結(jié)果,反匯編出來(lái)的入口為什么不正確?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2009-6-19 01:56:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 編譯 , 匯編 , 結(jié)果 , 入口
.extern    main
.text
.global    _start
@ 0x00: 系統(tǒng)入口,此處放置一條跳轉(zhuǎn)語(yǔ)句,跳過(guò)中斷向量表,至于中斷向量表,實(shí)際是最后被copy到SDRAM的高端地址,通過(guò)MMU來(lái)處理進(jìn)入
_start:  @-------->這里定義的入口處
    b    real_start  @-------->這里是跳過(guò)reset,但是reset實(shí)際是存在的,但不是程序真正的開始

@ 0x04: 中斷向量表并非從0地址開始放置,因?yàn)槲覀兪褂玫闹苯覵DRAM調(diào)試時(shí),中斷入口是需要通過(guò)MMU來(lái)映射的
Reset:
    b    Reset            @直接在SDRAM中調(diào)試的話,實(shí)際是不使用Reset的,因此一Reset,硬件系統(tǒng)將從nand flash中讀取uboot來(lái)執(zhí)行,所以此處實(shí)際是個(gè)空語(yǔ)句處理


@ 0x08: Undefined instruction exception
HandleUndef:
    b    HandleUndef

@ 0x0c: Software interrupt exception  
HandleSWI:
    b    HandleSWI

@ 0x10: Prefetch Abort (Instruction Fetch Memory Abort)
HandlePrefetchAbort:
    b    HandlePrefetchAbort

@ 0x14: Data Access Memory Abort
HandleDataAbort:
    b    HandleDataAbort

@ 0x18: Not used
HandleNotUsed:
    b    HandleNotUsed

@ 0x1c: IRQ(Interrupt Request) exception
    ldr    pc,HandleIRQAddr

@ 0x20: FIQ(Fast Interrupt Request) exception
HandleFIQ:
    b    HandleFIQ
HandleIRQAddr:   
    .long    HandleIRQ

real_start:   
@here,跳過(guò)系統(tǒng)上電后從0地址出的中斷向量表開始執(zhí)行,這是為了不用燒寫FLASH來(lái)進(jìn)行調(diào)試
@here,此處應(yīng)該先將系統(tǒng)設(shè)置為上電時(shí)系統(tǒng)的默認(rèn)模式,因?yàn)榇藭r(shí)系統(tǒng)尚運(yùn)行于uboot的環(huán)境

    ldr    sp,    =0x30100000    @設(shè)置運(yùn)行于SDRAM時(shí)的堆棧
    bl    disable_watch_dog    @關(guān)閉看門狗
    bl    clock_init        @初始化時(shí)鐘,啟動(dòng)PLL,F(xiàn)CLK=200MHz,HCLK=100MHz,PCLK=50MHz
    bl    memsetup_2        @設(shè)置SDRAM
@    bl    init_nand        @SDARM調(diào)試,不使用nand flash,所以不用初始化nand 控制器
    bl    copy_vectors_to_high    @此處使用lelee自己的代碼,將0x3000 0004地址開始的中斷向量表copy到SDRAM的高端去
   


-----------------------------------------------------------
以上為head.s的開頭處

00000000 <.data>:
   0:    e1a0c00d     mov    ip, sp
   4:    e92dd800     stmdb    sp!, {fp, ip, lr, pc}
   8:    e24cb004     sub    fp, ip, #4    ; 0x4
   c:    e3a02313     mov    r2, #1275068416    ; 0x4c000000
  10:    e3e034ff     mvn    r3, #-16777216    ; 0xff000000
  14:    e5823000     str    r3, [r2]
  18:    e3a03313     mov    r3, #1275068416    ; 0x4c000000
  1c:    e2833014     add    r3, r3, #20    ; 0x14
  20:    e3a02003     mov    r2, #3    ; 0x3
  24:    e5832000     str    r2, [r3]
  28:    ee111f10     mrc    15, 0, r1, cr1, cr0, {0}
  2c:    e3811103     orr    r1, r1, #-1073741824    ; 0xc0000000
  30:    ee011f10     mcr    15, 0, r1, cr1, cr0, {0}
  34:    e3a02313     mov    r2, #1275068416    ; 0x4c000000
  38:    e2822004     add    r2, r2, #4    ; 0x4
  3c:    e3a03917     mov    r3, #376832    ; 0x5c000
  40:    e2833040     add    r3, r3, #64    ; 0x40
  44:    e5823000     str    r3, [r2]
  48:    e89da800     ldmia    sp, {fp, sp, pc}
  4c:    43434700     cmpmi    r3, #0    ; 0x0
  50:    4728203a     undefined
  54:    2029554e     eorcs    r5, r9, lr, asr #10
  58:    2e342e33     mrccs    14, 1, r2, cr4, cr3, {1}
  5c:    00000031     andeq    r0, r0, r1, lsr r0
  60:    eafffffe     b    0x60  @---->這里是中斷入口了
  64:    eafffffe     b    0x64
  68:    eafffffe     b    0x68
  6c:    eafffffe     b    0x6c
  70:    eafffffe     b    0x70
  74:    eafffffe     b    0x74
  78:    e59ff000     ldr    pc, [pc, #0]    ; 0x80
  7c:    eafffffe     b    0x7c
  80:    300040c4     andcc    r4, r0, r4, asr #1
  84:    e59fd04c     ldr    sp, [pc, #76]    ; 0xd8

-----------------------------------------------

很納悶,不知道為什么突然邊成這樣了,之前都還是好好的,反匯編的開始處是中斷入口

誰(shuí)給個(gè)答案?小弟謝謝了

沙發(fā)
發(fā)表于 2009-6-19 13:22:09 | 只看該作者
呵呵,沒(méi)怎么理解清楚樓主的問(wèn)題

0x18應(yīng)該為IRQ的入口吧怎么會(huì)是:

@ 0x18: Not used
HandleNotUsed:
    b    HandleNotUsed
板凳
發(fā)表于 2009-6-19 13:30:05 | 只看該作者
傳說(shuō)中的一式三招,ls...
地板
發(fā)表于 2009-6-19 13:30:18 | 只看該作者
傳說(shuō)中的一式三招,ls...
地下室
 樓主| 發(fā)表于 2009-6-19 18:39:29 | 只看該作者
南哥,我在連接的時(shí)候,直接把程序全放在0x30004000處了,直接通過(guò)uboot下載到SDRAM中去跑,而不是每次都燒寫nand,所以在程序的最開始處,相當(dāng)于中斷向量表中的Reset的位置放置了一條跳轉(zhuǎn)指令b    real_start 來(lái)跳過(guò)reset,而真正的中斷向量表是往后推了4個(gè)字節(jié)來(lái),所以那個(gè)保留的未使用的存放地址就到了0x18了,我的程序里邊用了段代碼將b    real_start后邊的7個(gè)word空間的向量表copy到SDRAM的高地址去了(這樣應(yīng)該是可以進(jìn)中斷的吧?中斷的進(jìn)入只與pc的值和存放位置有關(guān),與編譯連接應(yīng)該沒(méi)什么關(guān)系吧?)

我的問(wèn)題是,為什么編譯的結(jié)果,0地址的b    real_start和緊接著的中斷向量表不在最開始處,而是跑到了“60:    eafffffe     b    0x60  @---->這里是中斷入口了”這里來(lái)了?

昨天改程序,改來(lái)改去,編譯結(jié)果還是這樣,反匯編出來(lái)的代碼就是一樓里貼的,而且下載到SDRAM里了,根本不跑
6
 樓主| 發(fā)表于 2009-6-19 18:45:49 | 只看該作者
本來(lái)弄了個(gè)簡(jiǎn)單的,不開中斷的 程序,在main()里邊的while(1)中用led的交替亮滅來(lái)測(cè)試,是正常的(就是連接直接指明程序從30004000處開始運(yùn)行,編譯結(jié)果用uboot下載到30004000處,然后go 30004000,是可以正常跑的。MMU也開了,64M的SDRAM的地址空間,除了33f0 0000映射到ffff 0000處(33f0 0000開始存放中斷向量表),其他地址都是映射為本身,寄存器也一頁(yè)映射為本身地址)
但是加了timer0后,編譯的結(jié)果就成這樣了,莫名其妙
7
發(fā)表于 2009-6-22 09:05:09 | 只看該作者
其實(shí)問(wèn)題沒(méi)有考慮太多.但是有一點(diǎn)必需清楚的認(rèn)識(shí)到,CPU復(fù)位之后PC指向0x0地址,產(chǎn)生IRQ時(shí)PC指向0x18,這是三星ARM處理器的鐵的實(shí)事.就是俺是中國(guó)人一樣永遠(yuǎn)是改變不了的事實(shí)!
8
發(fā)表于 2009-6-22 09:06:10 | 只看該作者
其實(shí)問(wèn)題沒(méi)有考慮太多.但是有一點(diǎn)必需清楚的認(rèn)識(shí)到,CPU復(fù)位之后PC指向0x0地址,產(chǎn)生IRQ時(shí)PC指向0x18,這是三星ARM處理器的鐵的實(shí)事.就是俺是中國(guó)人一樣永遠(yuǎn)是改變不了的事實(shí)!
9
 樓主| 發(fā)表于 2009-6-24 22:53:53 | 只看該作者
2410中斷入口有兩中擺放方式嘛,低端和高端
如果放高端的話,復(fù)位后PC指向FFFF0000吧
IRQ來(lái)的時(shí)候就指向FFFF0018了吧
10
發(fā)表于 2011-1-14 10:12:08 | 只看該作者
居然有人這種問(wèn)題都沒(méi)有搞懂
11
發(fā)表于 2011-1-14 10:12:28 | 只看該作者
0x18就是未用嘛
12
 樓主| 發(fā)表于 2011-1-14 12:04:06 | 只看該作者
LS弄明白到底時(shí)什么問(wèn)題了么?!:-)

討論的是反匯編的結(jié)果不正確,正常反匯編出來(lái)的結(jié)果不是這樣

至于0X18用沒(méi)用,壓根沒(méi)提到過(guò),并且是把程序入口重新映射了,并且用鏈接腳本處理過(guò)

弄明白了再跟貼

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 黄页免费在线观看 | 色婷婷精品大全在线视频 | 精品一区二区久久久久久久网精 | 麻豆精品久久精品色综合 | 变态 另类 国产 亚洲 | 澳门毛片精品一区二区三区 | 日本视频高清免费观看xxx | 日日摸夜夜夜夜夜添 | 午夜官网 | 在线免费观看一级毛片 | 四虎永久在线精品 | 天堂看动漫 | 久久婷婷久久一区二区三区 | 日本一区二区三区不卡在线视频 | 亚洲欧美日本国产综合在线 | 欧美精品伊人久久 | 国产亚洲欧美日韩在线看片 | 大香线蕉97久久 | 极品粉嫩在线 | 99热这里有免费国内精品 | 亚洲97在线 | 青青国产成人久久91 | 色综合视频一区二区观看 | 日韩每日更新 | 日日噜噜夜夜狠狠视频 | 四虎国产精品永久地址51 | 免费一级a毛片在线搐放正片 | 四虎在线永久视频观看 | 色博网 | 日本不卡高清免费v | www狠狠| 日韩毛片 | 自拍偷拍亚洲第一页 | 精品欧美一区二区三区四区 | 亚洲免费黄色网 | 激情视频在线观看网站 | 99热国产这里只有精品 | 四虎影城库 | 美日韩一级 | 欧美国产成人精品一区二区三区 | 国内自拍小视频 |