URN Logo
UNIX Resources » Linux » China Linux Forum » Linux内核技术 » 第18页 » 请教arm汇编,多谢了。
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.com
  LinuxForum General Chat
  Linux Advocacy
  LinuxForum Polls
  Introductions
  Linux Kernel Support
  Patch Management
  Development Release
  Linux Programming
  Linux Security
  Linux Software
  Linux Hardware Problems
    Linux Video Problems
    Linux Sound Problems
  Linux Networking Support
  Linux Printing Support
  Linux Human Interface Devices Support
  Linux Data Storage Support
  Linux Applications Support
  Linux Installation Support
  Linux Laptops Support
  Linux Motherboard, Chipsets, CPU, Memory
  Miscellaneous
  Debian Linux Support
  Ubuntu Linux Support
  LiveCD Discussions
  Gentoo Linux Support
  Mandrake Linux Support
  Redhat / Fedora Linux Support
  Slackware Linux Support
  SuSE Linux Support
  CentOS Linux Support
  Linux Web Servers
  Linux DNS Servers
  Linux Database Servers
  Linux Email Servers
  Linux FTP Servers
  Linux Squid Proxy Server
  Linux Samba Help
  Linux cPanel Help
  Linux Ensim Help
  Linux Plesk Help
  Linux Webmin / Usermin Help
  Qmail Toaster Help
  Linux Games
  Windows Game Emulation
  Linux Discussions
  General Linux Discussions
  Red Hat Linux Discussions
  More Red Hat Linux Discussions
  Mandrake Linux Discussions
  Slackware Linux Discussions
  SuSE Linux Discussions
  Debian Discussions
  Samba Help
  Linux Security
  Linux Networking
  Gentoo Help
  Operating System Rant Forum
  Hardware Rants
   
请教arm汇编,多谢了。
请教arm汇编,多谢了。 - bob2004 [2007-11-21 12:57 | 2,240 byte(s)]
 
Re: 请教arm汇编,多谢了。 - littletiger [2007-11-23 17:39 | 149 byte(s)]
 
Re: 请教arm汇编,多谢了。 - shinakira [2007-11-22 15:08 | 33 byte(s)]
 
Re: 请教arm汇编,多谢了。 - cdbdyx [2007-11-22 09:35 | 174 byte(s)]
 
Re: 请教arm汇编,多谢了。 - IN_FLAMES [2007-11-21 13:35 | 21 byte(s)]
 
Re: 请教arm汇编,多谢了。 - bob2004 [2007-11-21 13:39 | 433 byte(s)]
 
Re: 请教arm汇编,多谢了。 - ovis_poly [2007-11-22 17:14 | 329 byte(s)]
 
Re: 请教arm汇编,多谢了。 - IN_FLAMES [2007-11-21 14:43 | 69 byte(s)]
 
Subject: 请教arm汇编,多谢了。
Author: bob2004    Posted: 2007-11-21 12:57    Length: 2,240 byte(s)
[Original] [Print] [Top]
1> 看u-boot的 1。2。0的 arm920T的 start.S 的时候 有疑问:


.globl _start

_start: b reset

ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq

_undefined_instruction: .word undefined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word fiq

.balignl 16,0xdeadbeef

我知道上面定义的是 几组向量表, 当系统reset 后, u-boot
会立即执行reset向量里面的入口函数。

那后面呢? 当 产生irq的时候, 会 进入 irq向量的入口, 这是怎么做到呢?
就凭后面那几句ldr 吗? 怎么都给写到一起了呢? 这是语法?
看起来会连续执行哦, 但是从道理上又肯定不会 。
大侠给解释一下啊?


2> 另外看代码搬移的时候 有点疑问:

relocate:
。。。。。。。。。。

copy_loop:
ldmia r0!, {r3-r10}
stmia r1!, {r3-r10}
cmp r0, r2
ble copy_loop google_ad_slot = "0192557422"; google_ad_width = 160; google_ad_height = 600; //-->
----
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: IN_FLAMES    Posted: 2007-11-21 13:35    Length: 21 byte(s)
[Original] [Print] [Top]
pc都给ldr了还不跳转么
----
CLF最大的马甲
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: bob2004    Posted: 2007-11-21 13:39    Length: 433 byte(s)
[Original] [Print] [Top]
我知道跳转啊 , 可是 这么写:


ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq


我的意思是当发生irq , 怎么就自动执行: ldr pc, _irq
了 呢? 是这个疑问?
谢谢了。
----
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: IN_FLAMES    Posted: 2007-11-21 14:43    Length: 69 byte(s)
[Original] [Print] [Top]
那是arm体系结构的硬件决定的,如果有显式的跳转指令就不叫中断,叫轮询了
----
CLF最大的马甲
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: cdbdyx    Posted: 2007-11-22 09:35    Length: 174 byte(s)
[Original] [Print] [Top]
据我所知好像uboot不支持中断的

我觉得搬移代码假如8个字节,那每次都拷贝8个字节,假如要拷贝的没有对齐到8字节,那也无所谓,多拷贝几个字节对代码来说没什么影响吧
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: shinakira    Posted: 2007-11-22 15:08    Length: 33 byte(s)
[Original] [Print] [Top]
le应该是little or equal的意思~~
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: ovis_poly    Posted: 2007-11-22 17:14    Length: 329 byte(s)
[Original] [Print] [Top]
_start就是异常向量表的地址吧,呵呵,不晓得arm中是不是这么叫?
每个中断向量占32bit,arm的指令都是定长的。所以每个ldr就是表中的一项,某个异常产生,硬件就跳到向量表的相应表项,即ldr pc ,xxx,接着就跳到xxx了。

啊,我没仔细看你的帖子,你也说了这是异常向量表,那还有什么可疑惑的?异常向量表不就是这样的么?
[Original] [Print] [Top]
Subject: Re: 请教arm汇编,多谢了。
Author: littletiger    Posted: 2007-11-23 17:39    Length: 149 byte(s)
[Original] [Print] [Top]
有中断或者异常时,cpu会自动根据异常向量表跳转的。至于跳到向量表的哪个item上是硬件规定的。
另外,向量表的地址也是可以通过cp15更改的,默认为0.
----
[Original] [Print] [Top]
« Previous thread
是不是一个内核bug?
Linux内核技术
18
Next thread »
请教NUMA的问题
     

Copyright © 2018 UNIX Resources Network, All Rights Reserved.    About URN | Privacy & Legal | Help | Contact us