7139|13

64

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Nboot+Eboot! eboot 起不来? [复制链接]

[code]
        [ CLKVAL = 399
FCLK                EQU        (399)
PLLVAL                EQU (((92 << 12) + (1 << 4) + 1))
CLKDIVVAL        EQU 7        ; 0x0 = 1:1:1, 0x1 = 1:1:2, 0x2 = 1:2:2, 0x3 = 1:2:4, 0x4 = 1:4:4, 0x5 = 1:4:8, 0x6 = 1:3:3, 0x7 = 1:3:6
D4VAL                EQU 0        ; 1.3V
D3VAL                EQU 1
D2VAL                EQU 0
D1VAL                EQU 0
D0VAL                EQU 1
        ]

......
UPLLVAL                EQU (((60 << 12) + (0x4 << 4) + 0x2))  ;48MHz
.....
IMPORT main    ; C entrypoint for Steppingstone loader.

        EXPORT MMU_EnableICache
        EXPORT MMU_SetAsyncBusMode
  
    STARTUPTEXT
    LEAF_ENTRY StartUp
   
    b        ResetHandler  
    b        .
    b        .
    b        .               
    b        .               
    b        .               
    b        .                       
    b        .
                   
PowerOffCPU
        str                r1, [r0]                ; Enable SDRAM self-refresh
        str                r3, [r2]                ; MISCCR Setting
        str     r5, [r4]                ; Power Off !!
        b       .

    ; Resume handler code.
    ;
WAKEUP_POWER_OFF
    ; Release SCLKn after wake-up from the POWER_OFF mode.
    ldr                r1, =MISCCR
    ldr                r0, [r1]
    bic                r0, r0, #(7<<17) ; SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:L->H.
    str                r0, [r1]

    ; Set up the memory control registers.
    ;
    add     r0, pc, #SMRDATA - (. + 8)
    ldr                r1, =BWSCON             ; BWSCON Address.
    add                r2, r0, #52             ; End address of SMRDATA.
3      
    ldr                r3, [r0], #4   
    str                r3, [r1], #4   
    cmp                r2, r0               
    bne                %B3

        mov     r0, #0x2000
4
        subs    r0, r0, #1
        bne     %B4

;------------------------------------------------------------------------------
;   Recover Process : Starting Point
;
;   1. Checksum Calculation saved Data
        ldr     r5, =SLEEPDATA_BASE_PHYSICAL    ; pointer to physical address of reserved Sleep mode info data structure
        mov     r3, r5                          ; pointer for checksum calculation
        ldr     r2, =0x0
        ldr     r0, =(SLEEPDATA_SIZE-1)             ; get size of data structure to do checksum on
50       
        ldr     r1, [r3], #4                    ; pointer to SLEEPDATA
        and     r1, r1, #0x1
        mov     r1, r1, ROR #31
        add     r2, r2, r1
        subs    r0, r0, #1                      ; dec the count
        bne     %b50                            ; loop till done   

        ldr     r0,=GSTATUS3
        ldr     r3, [r0]                        ; get the Sleep data checksum from the Power Manager Scratch pad register
        cmp     r2, r3                          ; compare to what we saved before going to sleep
        bne     BringUpWinCE                    ; bad news - do a cold boot
   
;   2. MMU Enable
        ldr     r10, [r5, #SleepState_MMUDOMAIN] ; load the MMU domain access info
        ldr     r9,  [r5, #SleepState_MMUTTB]    ; load the MMU TTB info
        ldr     r8,  [r5, #SleepState_MMUCTL]    ; load the MMU control info
        ldr     r7,  [r5, #SleepState_WakeAddr ] ; load the LR address
        nop         
        nop
        nop
        nop
        nop

; if software reset
        mov     r1, #0
        teq     r1, r7
        bne     %f60
        b              BringUpWinCE

; wakeup routine
60        mcr     p15, 0, r10, c3, c0, 0          ; setup access to domain 0
        mcr     p15, 0, r9,  c2, c0, 0          ; PT address
        mcr     p15, 0, r0,  c8, c7, 0          ; flush I+D TLBs
        mcr     p15, 0, r8,  c1, c0, 0          ; restore MMU control

;   3. Jump to Kernel Image's fw.s (Awake_address)
        mov     pc, r7                          ;  jump to new VA (back up Power management stack)
        nop

BringUpWinCE
        ; bad news, data lose, bring up wince again
        mov         r0, #2
        ldr                r1, =GSTATUS2
        str                r0, [r1]
       
  LTORG   

最新回复

楼主问题解决了吗?遇到相同问题!把结果贴出来分享下!  详情 回复 发表于 2009-10-30 15:21
点赞 关注

回复
举报

89

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

  1.        
  2. ;-----------------------------------
  3. ; Steppingstone loader entry point.
  4. ;-----------------------------------
  5. ResetHandler
  6.         VOLTAGECHANGE
  7.         ldr     r0, = GPFCON
  8.         ldr     r1, = 0x55aa      
  9.         str     r1, [r0]

  10.     ldr                r0, =WTCON       ; disable the watchdog timer.
  11.     ldr                r1, =0x0         
  12.     str                r1, [r0]

  13.     ldr                r0, =INTMSK      ; mask all first-level interrupts.
  14.     ldr                r1, =0xffffffff
  15.     str                r1, [r0]

  16.     ldr                r0, =INTSUBMSK   ; mask all second-level interrupts.
  17.     ldr                r1, =0x7fff
  18.     str                r1, [r0]

  19.     ; CLKDIVN
  20.     ldr         r0,=CLKDIVN
  21.     ldr         r1,=0x7     ; 0x0 = 1:1:1  ,  0x1 = 1:1:2        , 0x2 = 1:2:2  ,  0x3 = 1:2:4,  0x4 = 1:4:4,  0x5 = 1:4:8, 0x6 = 1:3:3, 0x7 = 1:3:6
  22.     str         r1,[r0]

  23.         ; BATT_FLT
  24.     ldr                r1, =MISCCR
  25.     ldr                r0, [r1]
  26.     bic                r0, r0, #(7<<20)
  27.     orr                r0, r0, #(4<<20)
  28.     str                r0, [r1]

  29.     ; MMU_SetAsyncBusMode FCLK:HCLK= 1:2
  30.     ands         r1, r1, #0x2
  31.     beq         %F5
  32.     bl                MMU_SetAsyncBusMode
  33. 5

  34. ; TODO: to reduce PLL lock time, adjust the LOCKTIME register.
  35.     ldr                r0, =LOCKTIME
  36.     ldr                r1, =0xffffff
  37.     str                r1, [r0]
  38.   
  39.     ; Configure the clock PLL.
  40.     ;      
  41.           [ PLL_ON_START
  42.        
  43.         ldr                r0, =UPLLCON         
  44.     ldr                r1, =UPLLVAL  ; Fin=16.9344MHz, Fout=48MHz.
  45.     str                r1, [r0]

  46.         nop
  47.         nop
  48.         nop
  49.         nop
  50.         nop
  51.         nop
  52.         nop
  53.         nop

  54.         ldr                r0, =MPLLCON         
  55.     ldr                r1, =PLLVAL
  56.     str                r1, [r0]

  57.     mov     r0, #0x2000
  58. 10   
  59.     subs    r0, r0, #1
  60.     bne     %B10
  61.         ]

  62.     ; Are we waking up from a suspended state?
  63.     ;
  64.     ldr                r1, =GSTATUS2
  65.     ldr                r0, [r1]
  66.     tst                r0, #0x2
  67.     ; Yes?  Then go to the resume handler code...
  68.     bne                WAKEUP_POWER_OFF

  69.     ; Set up the memory control registers.
  70.     ;
  71.     add     r0, pc, #SMRDATA - (. + 8)
  72.     ldr                r1, =BWSCON             ; BWSCON Address.
  73.     add                r2, r0, #52             ; End address of SMRDATA.
  74. 15      
  75.     ldr                r3, [r0], #4   
  76.     str                r3, [r1], #4   
  77.     cmp                r2, r0               
  78.     bne                %B15
  79.         
  80.     ; Turn on all LEDs.
  81.   
  82.     ldr                r0, =GPFCON
  83.     ldr                r1, =0x55aa
  84.     str                r1, [r0]
  85.     ldr                r0, =GPFUP
  86.     ldr                r1, =0xff
  87.     str                r1, [r0]
  88.     ldr                r0, =GPFDAT
  89.     ldr                r1, =0x0
  90.     str                r1, [r0]
  91.      
  92.   
  93.   
  94.   
  95.   
  96.     ; If this is a cold boot or a warm reset, clear RAM because the RAM filesystem may be
  97.     ; bad.  If this is a software reboot (triggered by the watchdog timer), don't clear RAM.
  98.     ;
  99.     ldr                r1, =GSTATUS2   ; Determine why we're in the startup code.
  100.     ldr                r10, [r1]       ;
  101.     str          r10, [r1]       ; Clear GPSTATUS2.
  102.     tst                r10, #0x4       ; Watchdog (software) reboot?  Skip code that clears RAM.
  103.     bne                %F40
  104.      
  105.     ; Clear RAM.
  106.     ;
  107.     mov         r1,#0
  108.     mov         r2,#0
  109.     mov         r3,#0
  110.     mov         r4,#0
  111.     mov         r5,#0
  112.     mov         r6,#0
  113.     mov         r7,#0
  114.     mov         r8,#0
  115.        
  116.     ldr                r0,=0x30000000   ; Start address (physical 0x3000.0000).
  117.     ldr                r9,=0x04000000   ; 64MB of RAM.
  118. 20       
  119.     stmia        r0!, {r1-r8}
  120.     subs        r9, r9, #32
  121.     bne                %B20

  122.     ; Initialize stacks.
  123.     ;
  124. 30
  125.     mrs                r0, cpsr
  126.     bic                r0, r0, #MODEMASK|NOINT
  127.     orr                r1, r0, #SVCMODE
  128.     msr                cpsr_cxsf, r1                  ; SVCMode.
  129.     ldr                sp, =SVCStack
  130.        
  131.     ; Jump to main C routine.
  132.     ;
  133.     bl                main

  134.     ;;; 20060404  for s/w reset
  135. 40
  136. ;    ldr                r4, =0x22B784
  137.     ldr                r4, =0x200000
  138.     add                r4, r4, #0x30000000
  139.     mov                pc, r4
  140.     b .
复制代码
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 


  1.         LTORG

  2. SMRDATA DATA
  3.     ; Memory configuration should be optimized for best performance .
  4.     ; The following parameter is not optimized.                     
  5.     ; Memory access cycle parameter strategy
  6.     ; 1) The memory settings is  safe parameters even at HCLK=75Mhz.
  7.     ; 2) SDRAM refresh period is for HCLK=75Mhz.
  8.     ;
  9.     DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
  10.     DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
  11.     DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1
  12.     DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
  13.     DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
  14.     DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
  15.     DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
  16.     DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))                                                        ;GCS6
  17.     DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))                                                        ;GCS7
  18.     DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)   
  19.    
  20.     DCD (0x32|0x80)     ; SCLK power saving mode, BANKSIZE 128M/128M, 4-burst.

  21.     DCD 0x20            ; MRSR6 CL=3clk.
  22.     DCD 0x20            ; MRSR7.


  23. ;------------------------------------
  24. ; MMU Cache/TLB/etc on/off functions
  25. ;------------------------------------
  26. R1_I        EQU        (1<<12)
  27. R1_C        EQU        (1<<2)
  28. R1_A        EQU        (1<<1)
  29. R1_M          EQU        (1)
  30. R1_iA        EQU        (1<<31)
  31. R1_nF         EQU        (1<<30)

  32. ; void MMU_EnableICache(void);
  33. ;
  34.     LEAF_ENTRY MMU_EnableICache       
  35.    
  36.     mrc         p15, 0, r0, c1, c0, 0
  37.     orr         r0, r0, #R1_I
  38.     mcr         p15, 0, r0, c1, c0, 0
  39.     mov         pc, lr

  40. ; void MMU_SetAsyncBusMode(void);
  41. ; FCLK:HCLK= 1:2
  42. ;
  43.     LEAF_ENTRY MMU_SetAsyncBusMode
  44.     mrc         p15, 0, r0, c1, c0, 0
  45.     orr         r0, r0, #R1_nF:OR:R1_iA
  46.     mcr         p15, 0, r0, c1, c0, 0
  47.     mov         pc, lr


  48. ; NAND code...
  49. ;
  50. A410_BASE_ADDR        EQU        0x2000000

  51. ;;;        MACRO
  52. ;;;        LDR4STR1 $src,$tmp1,$tmp2       
  53. ;;;        ldrb        $tmp1,[$src]
  54. ;;;        ldrb        $tmp2,[$src]
  55. ;;;        orr                $tmp1,$tmp1,$tmp2,LSL #8
  56. ;;;        ldrb        $tmp2,[$src]
  57. ;;;        orr                $tmp1,$tmp1,$tmp2,LSL #16
  58. ;;;        ldrb        $tmp2,[$src]
  59. ;;;        orr                $tmp1,$tmp1,$tmp2,LSL #24
  60. ;;;        MEND

  61.         EXPORT        __RdPage512
  62. __RdPage512
  63.         ;input:a1(r0)=pPage
  64.         stmfd        sp!,{r1-r11}

  65.         ldr        r1,=0x4e000010  ;NFDATA
  66.         mov        r2,#0x200
  67. 10       
  68.         ldr         r4,[r1]
  69.         ldr         r5,[r1]
  70.         ldr         r6,[r1]
  71.         ldr         r7,[r1]
  72.         ldr         r8,[r1]
  73.         ldr         r9,[r1]
  74.         ldr         r10,[r1]
  75.         ldr         r11,[r1]
  76.         stmia                r0!,{r4-r11}
  77.         subs                r2,r2,#32
  78.         bne                        %B10

  79.         ldmfd                sp!,{r1-r11}
  80.         mov                        pc,lr


  81.     END

复制代码


NBOOT起来了,但EBOOT无法执行!
我在EBOOT里面点灯!没反应! 看过有人说是SDRAM没有起来! 但我不知道怎么改了!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个问题太大了
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
能调试不?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
调试环境有点恼火!只能用J-TAG!
烧写 EBOOT就傻了!   
----------
我的EBOOT.nb0前4K基本上时零,所以就烧bin了!
这个应该没问题吧?

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

  1. SMRDATA DATA
  2.     ; Memory configuration should be optimized for best performance .
  3.     ; The following parameter is not optimized.                     
  4.     ; Memory access cycle parameter strategy
  5.     ; 1) The memory settings is  safe parameters even at HCLK=75Mhz.
  6.     ; 2) SDRAM refresh period is for HCLK=75Mhz.
  7.     ;
  8.     DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
  9.     DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))   ;GCS0
  10.     DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))   ;GCS1
  11.     DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))   ;GCS2
  12.     DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))   ;GCS3
  13.     DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))   ;GCS4
  14.     DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))   ;GCS5
  15. [color=#FF0000]    DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))                                                        ;GCS6
  16.     DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))                                                        ;GCS7[/color]
  17.     DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)   
  18.    
  19.     DCD (0x32|0x80)     ; SCLK power saving mode, BANKSIZE 128M/128M, 4-burst.

  20.     DCD 0x20            ; MRSR6 CL=3clk.
  21.     DCD 0x20            ; MRSR7.
复制代码


这些代码是不是有做SDRAM的初始化的!  不知道怎么用?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
如果在NBOOT的读nand操作中出现ECC校验错误,该怎么解决?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
J-TAG可以调试吗?可以在memory里跑起来吗?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
可以先烧写在nand里面在 看
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
我的EBOOT.nb0前4K基本上时零,所以就烧bin了!
这个应该没问题吧?


这个可以吗??nboot复制它到RAM的时候不会解压缩的吧?
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

11
 
这个....
之前用的不是NBOOT+EBOOT的模式来引导!
就是一个被叫做BIOS的引导程序 ,它就是BIN格式的!
也是通过J-TAG来烧写的!
-------------------------------------
为什么我的EBOOT.nb0会出现前4K为零呢
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

12
 
烧bin应该不可以吧,内部空间划分就全白做了

你看一下生成eboot.nb0的那个bat文件,那个批处理就是把一群文件copy到一起,找找哪个文件在第一个,那个文件为什么前4k数据都是0x0
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 11 楼 aaassd_cn 的回复:
烧bin应该不可以吧,内部空间划分就全白做了


你指的是config.bib中的划分吗?
在bib中没有体现?
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

14
 
楼主问题解决了吗?遇到相同问题!把结果贴出来分享下!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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