打印

DM642程序运行问题:

[复制链接]
1947|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
arm18|  楼主 | 2008-5-29 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序通过在片外SDRAM里运行正常,但是通过仿真器写到片外FLASH里上电不运行,看写FLASH的提示,应该已经正确写到里面了.

相关帖子

沙发
smartdsp| | 2008-5-30 09:51 | 只看该作者

boot代码有没有添加

使用特权

评论回复
板凳
arm18|  楼主 | 2008-5-30 13:35 | 只看该作者

2楼的大哥能否再说具体点,兄弟刚接触DSP

很多不明白,谢谢!

使用特权

评论回复
地板
arm18|  楼主 | 2008-5-30 14:08 | 只看该作者

工程文件下到是有个如下BOOT:

  .title  "Flash bootup utility for DM642 EVM"
            .option D,T
            .length 102
            .width  140

COPY_TABLE  .equ    0x90000400
EMIF_BASE   .equ    0x01800000

            .sect ".boot_load"
            .global _boot
            .global _my_reset
            .ref _c_int00

_boot:      
;************************************************************************
;* Debug Loop -  Comment out B for Normal Operation
;************************************************************************

            zero B1
_myloop:  ; [!B1] B _myloop  
            nop  5
_myloopend: nop

;************************************************************************
;* Configure EMIF
;************************************************************************

        mvkl  emif_values, a3  ; load pointer to emif values
        mvkh  emif_values, a3
        
        mvkl  EMIF_BASE, a4    ; load EMIF base address
        mvkh  EMIF_BASE, a4

        mvkl  0x0009, b0       ; load number of registers to set
        mvkh  0x0000, b0

emif_loop:
        ldw   *a3++, b5        ; load register value
        sub   b0,1,b0          ; decrement counter
        nop   2
 [ b0]  b     emif_loop
        stw   b5, *a4++        ; store register value
        nop   4  

;****************************************************************************
;* Copy code sections
;****************************************************************************
        mvkl  COPY_TABLE, a3   ; load table pointer
        mvkh  COPY_TABLE, a3

        ldw   *a3++, b1        ; Load entry point

copy_section_top:
        ldw   *a3++, b0        ; byte count 
        ldw   *a3++, a4        ; ram start address
        nop   3

 [!b0]  b copy_done            ; have we copied all sections?
        nop   5

copy_loop:
        ldb   *a3++,b5
        sub   b0,1,b0          ; decrement counter
 [ b0]  b     copy_loop        ; setup branch if not done
 [!b0]  b     copy_section_top
        zero  a1
 [!b0]  and   3,a3,a1
        stb   b5,*a4++
 [!b0]  and   -4,a3,a5         ; round address up to next multiple of 4
 [ a1]  add   4,a5,a3          ; round address up to next multiple of 4

;****************************************************************************
;* Jump to entry point
;****************************************************************************
copy_done:
        b    .S2 b1
        nop   5

emif_values:
        
        .long 0x000520f8      ; GBLCTL
        .long 0xfff1d10b      ; CECTL1 (Flash/FPGA)
        .long 0xffffffd3      ; CECTL0 (SDRAM)
        .long 0x00000000      ; Reserved
        .long 0xffffff03      ; CECTL2
        .long 0xffffff03      ; CECTL3
        .long 0x57119000      ; SDCTL
        .long 0x00000446      ; SDTIM (refresh period)
        .long 0x0005452b      ; SDEXT

;        .long 0x00052078      ; GBLCTL
 ;       .long 0x73a28e01      ; CECTL1 (Flash/FPGA)
;        .long 0xffffffd3      ; CECTL0 (SDRAM)
;        .long 0x00000000      ; Reserved
;        .long 0x22a28a22      ; CECTL2
;        .long 0x22a28a22      ; CECTL3
;        .long 0x57115000      ; SDCTL
;        .long 0x0000081b      ; SDTIM (refresh period)
;        .long 0x001faf4d      ; SDEXT
        
        
        
        
        .sect ".reset"
        
_my_reset:
        
        mvkl _c_int00, b1   ; reset
        mvkh  _c_int00, b1
        nop   5
        b    .S2 b1
        nop   5

使用特权

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

本版积分规则

7

主题

52

帖子

0

粉丝