2873|6

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

VirtualStart 问题 [复制链接]

关于VirtualStart的问题,差不多看了论坛上关于虚地址的帖子,可是调试过程中,灯仍然不工作,郁闷,帮我看下吧,谢谢
oalAddressTable如下:
ALIGN
g_oalAddressTable
        DCD     0x80000000, 0xA0000000, 64      ; PLATO: SDRAM (64MB).
                                                ; PLATO: SDRAM future expansion gap(64MB).
        DCD     0x88000000, 0x5C000000,  1      ; BULVERDE: Internal SRAM (64KB bank 0).
        DCD     0x88100000, 0x58000000,  1      ; BULVERDE: Internal memory PM registers.
        DCD     0x88200000, 0x4C000000,  1      ; BULVERDE: USB host controller.
        DCD     0x88300000, 0x48000000,  1      ; BULVERDE: Memory controller.
        DCD     0x88400000, 0x44000000,  1      ; BULVERDE: LCD controller.
        DCD     0x88500000, 0x40000000, 32      ; BULVERDE: Memory-mapped registers (peripherals).
        DCD     0x8A500000, 0x50000000,  1      ; BULVERDE: Camera peripheral interface.
        DCD     0x8A600000, 0xE0000000,  1      ; PLATO:    Zero-bank (in reserved slot - no physical memory required).
        DCD     0x8A700000, 0x00000000, 64      ; PLATO:    nCS0: Boot Flash (64MB).
                                                ; PLATO:    Flash future expansion gap (64MB).                DCD     0x92700000, 0x10000000,  1      ; PLATO:    Debug LED & SMSC Controller on Debug Board.
        DCD     0x00000000, 0x00000000,  0      ; end of table

;------------------------------------------
ACTIVATEMMU  
    mov     r0, #0x82 ; 6 //闪亮了
    bl      setHexSEG
    ; The 1st Level Section Descriptors are setup. Initialize the MMU and turn it on.
    ;
    mov     r1, #1
    mcr     p15, 0, r1, c3, c0, 0   ; Set up access to domain 0.
    mcr     p15, 0, r0, c8, c7, 0   ; Flush the instruction and data TLBs.
    mcr     p15, 0, r1, c7, c10, 4  ; Drain the write and fill buffers.

    mov     r1, #0x78               ; Bits [6:3] must be written as 1's.
    orr     r1, r1, #0x1            ; Enable MMU.
    orr     r1, r1, #0x1000         ; Enable IC.
    orr     r1, r1, #0x0800         ; Enable BTB.
    orr     r1, r1, #0x4            ; Enable DC.
    ldr     r2, =VirtualStart       ; Get virtual address of 'VirtualStart' label.
   
    cmp     r2, #0                  ; Make sure no stall on "mov pc,r2" below.
    ; Enable the MMU.
    ;
    mcr     p15, 0, r1, c1, c0, 0   ; MMU ON:  All memory accesses are now virtual.       
    ; Jump to the virtual address of the 'VirtualStart' label.
    ;
    mov     r0, #0xf8 ; 7   //不亮
    bl      setHexSEGMMU
    mov     pc, r2                  ;
    nop
    nop
    nop
   
    ALIGN
   
VirtualStart

    ;  Set up a supervisor mode stack.
    ;
    ; NOTE: These values must match the OEMAddressTable and .bib file entries for
    ; the bootloader.
    ;
    ldr     sp, =IMAGE_BOOT_STACK_RAM_CA_START

    ; Jump to the C entrypoint.
    ;
    bl      main                              ; Jump to main.c::main(), never to return...

;------------------------------------------
ALIGN
setHexSEG
    ldr     r1, =0x04006000
    strb    r0,[r1,#0]

  IF Interworking :LOR: Thumbing
    bx      lr
  ELSE
    mov     pc, lr                            ; Return to caller.
  ENDIF
  
    ALIGN
setHexSEGMMU
    ldr     r1, =0x8C706000
    strb    r0,[r1,#0]

  IF Interworking :LOR: Thumbing
    bx      lr
  ELSE
    mov     pc, lr                            ; Return to caller.
  ENDIF  

大家帮忙看看这虚地址到底应该是多少,谢谢,没办法啊,才刚刚接触
谢谢大侠


最新回复

这个问题很复杂,在精华帖当中,有我发的一些关于虚拟地址MMU等想干的帖子。比较复杂的。你翻来看看吧。一言难尽。   详情 回复 发表于 2009-2-16 13:40
点赞 关注

回复
举报

65

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
        DCD     0x8A700000, 0x00000000, 64      ; PLATO:    nCS0: Boot Flash (64MB).
                                                ; PLATO:    Flash future expansion gap (64MB).                               
        DCD     0x92700000, 0x10000000,  1      ; PLATO:    Debug LED & SMSC Controller on Debug Board.
上面的这里弄一行去了
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
50分没人帮我吗?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
使能MMU后注意只能使用虚拟地址。
并且该地址是ucached 的虚拟地址。前几天刚有人问这个问题,并且解决了,你看看老帖吧。
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

5
 
看来你看帖不仔细,跟我以前回答的那个问题一样。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
前段时间用MAINSTONEIII改的,这个地方,虚拟地址是9CA00000,灯就是对的
我现在改成9CA00000不行,
不明白的地方就是这个映射到底是根据来什么来定的?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 yang1002 的回复:
前段时间用MAINSTONEIII改的,这个地方,虚拟地址是9CA00000,灯就是对的
我现在改成9CA00000不行,
不明白的地方就是这个映射到底是根据来什么来定的?


这个问题很复杂,在精华帖当中,有我发的一些关于虚拟地址MMU等想干的帖子。比较复杂的。你翻来看看吧。一言难尽。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表