打印

redboot启动代码?各位大侠帮帮看看

[复制链接]
2503|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xs3c|  楼主 | 2009-5-28 16:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟今天刚开始看redboot启动代码,发现一个问题请各位大侠指教?就是这条语句UNMAPPED_PTR(reset_vector)的目的何在?为啥不可以写成PTR(reset_vector)呢?
先谢过各位!!!!!
#ifndef UNMAPPED        
#ifdef CYGHWR_HAL_ARM_HAS_MMU
# ifndef CYGHWR_HAL_ROM_VADDR
#  define CYGHWR_HAL_ROM_VADDR __exception_handlers
# endif
# define UNMAPPED(x) ((x)-CYGHWR_HAL_ROM_VADDR)
#else
# define UNMAPPED(x) (x)
#endif
#endif        
                                
#define UNMAPPED_PTR(name)              
.##name: .word  UNMAPPED(name)
#define PTR(name)               
.##name: .word  name

 .global __exception_handlers
__exception_handlers:
#ifdef CYGSEM_HAL_ROM_RESET_USES_JUMP
// Assumption:  ROM code has these vectors at the hardware reset address.
// A simple jump removes any address-space dependencies [i.e. safer]
        b       reset_vector                    // 0x00
#else        
        ldr     pc,.reset_vector                // 0x00
#endif        
        ldr     pc,.undefined_instruction       // 0x04
        ldr     pc,.software_interrupt          // 0x08 start && software int
        ldr     pc,.abort_prefetch              // 0x0C
        ldr     pc,.abort_data                  // 0x10
        .word   0                               // unused
        ldr     pc,.IRQ                         // 0x18
        ldr     pc,.FIQ                         // 0x1C

// The layout of these pointers should match the vector table above since
// they are copied in pairs.
        .global vectors
vectors:
UNMAPPED_PTR(reset_vector)                      // 0x20
PTR(undefined_instruction)                      // 0x24
PTR(software_interrupt)                         // 0x28
PTR(abort_prefetch)                             // 0x2C
PTR(abort_data)                                 // 0x30
        .word   0                               // 0x34
PTR(IRQ)                                        // 0x38
PTR(FIQ)                                        // 0x3c
#ifdef CYGSEM_HAL_ARM_PID_ANGEL_BOOT         
PTR(start) // This is copied to 0x28 for bootup // 0x40
#endif        

相关帖子

沙发
armecos| | 2009-5-30 23:52 | 只看该作者

不用看这些,我已经移植很多redboot了,

至今都没弄明白这几句是啥意思,所以,刚开始学习不要钻牛角尖,这些都没用,关键是搞清楚整体思路。

www.armecos.com上有完整redboot资料。

使用特权

评论回复
板凳
qingfengyishi| | 2009-5-31 09:36 | 只看该作者

我还不知道怎么回事哪,驱动和HAL酒移植好了,不可思议

我还不知道怎么回事哪,驱动和HAL酒移植好了,不可思议

使用特权

评论回复
地板
lifuhua666666| | 2012-5-11 11:13 | 只看该作者
知道了告诉我啊,楼主!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝