⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jload.cmm

📁 QUALCOMM JNAND DRIVER
💻 CMM
字号:
;****************************************************************************
;**           jload.CMM                                                    **
;**           This script sets up MSM6250 for software load                **
;**           and debug                                                    **
;**                                                                        **
;**           Changes:                                                     **
;**           05-12-03   MSM6250 changes                                   **
;**           05-01-02   First version                                     **
;**           09-25-02   Cleanup                                           **
;****************************************************************************

;This .cmm script acts as a main routine for setting up a MSM6250 platform.
;
; detect if this script has already been run -- only do this for parts that
;  get called when the jtag reconnects with the target
;
;

;
;  CMM script variables
;
;
;
; image to load to target
global &ELFname
global &ELFdir

ENTRY &ELFname

IF "&ELFname"!=""
(
   &ELFdir=OS.FILE.PATH(&ELFname)
   //PRINT "&ELFdir"
   &ELFname=OS.FILE.NAME(&ELFname)
   //PRINT "&ELFname"
)

; load up globals, reset config to blank
DO Constants.cmm

WinClear
System.Reset
map.reset

; WINDOW work, pre-load
  ;winpos X.start y.start x.width y.height x.scalearea y.scalearea name mode title
  ;  WinPOS sets up the parameters for the next window-generating command
  ;  start, width, height parameters can be in
  ;      % (percentage) of the T32 app window, upper left is 0%,0%
  ;      nn. (integer), in units of rows or columns of text
  ;      for scale area, see online help (units of rows & cols only)


  ; Delete all existing windows.
  WinPage.Reset
  SCREEN.ON // refresh screen after every print command

  ;create CMM logging window, named LOG_WIN
  WINPOS 50% 5% 50. 20. 0. 0. LOG_WIN NORMAL "CMM Log Window"
  area
  &DATE=CLOCK.DATE()
  &TIME=CLOCK.TIME()
  PRINT " "
  PRINT "JLOAD &ELFname commenced &DATE at &TIME"

;
; system options
;
;
  ; Turbo mode of debug state accesses - CPU makes checks of memory access in debug mode
  System.Option TURBO off

  ; Disable "Emulator berr error"
  System.Option ShowError OFF

  ; Disassembler selection - Automatically selects correct one.
  System.Option DisMode Auto

  ; select CPU and options
  SYSTEM.CPU ARM926EJ

  SYSTEM.OPTION BIGENDIAN OFF
  SYSTEM.OPTION ENRESET ON

   ; jtag clock is set for real in DetectTarget.cmm
  system.jtagclock 1000000. //hack in a safe value until detecttarget
  system.up


;
;  Target specific setup information
;
;
;

&TARGET_TYPE="MASTODON_SURF"       //MASTODON_SURF, FFA


do DetectTarget

do didwdogreset

local &platform &memconf &temp
IF "&ELFname"!=""
  (
    &platform=STRING.CHAR("&ELFname",0)
    &memconf=STRING.CHAR("&ELFname",1)
    ;
    ; Check SURF/FFA first
    ;
    IF CONV.CHAR(&platform)=='S'
      (
      IF STRING.SCAN("&TARGET_TYPE","SURF",0)==-1
        (
        print "ERROR: Image is for SURF, target is not a SURF (&TARGET_TYPE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&platform)=='s'
      (
      IF STRING.SCAN("&TARGET_TYPE","SURF",0)==-1
        (
        print "ERROR: Image is for SURF, target is not a SURF (&TARGET_TYPE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&platform)=='F'
      (
      IF STRING.SCAN("&TARGET_TYPE","FFA",0)==-1
        (
        print "ERROR: Image is for FFA, target is not an FFA (&TARGET_TYPE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&platform)=='f'
      (
      IF STRING.SCAN("&TARGET_TYPE","FFA",0)==-1
        (
        print "ERROR: Image is for FFA, target is not an FFA (&TARGET_TYPE)"
        enddo
        )
      )
      ;
      ; CHECK memory config now
      ;

    IF CONV.CHAR(&memconf)=='S'
      (
      &SHADOW_MODE=0x1
      IF STRING.SCAN("&BOOT_MODE","NOR",0)==-1
        (
        print "ERROR: Image is for Shadow, mem config is not NOR (&BOOT_MODE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&memconf)=='s'
      (
      &SHADOW_MODE=0x1
      IF STRING.SCAN("&BOOT_MODE","NOR",0)==-1
        (
        print "ERROR: Image is for Shadow, mem config is not NOR (&BOOT_MODE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&memconf)=='A'
      (
      IF STRING.SCAN("&BOOT_MODE","NOR",0)==-1
        (
        print "ERROR: Image is for Async, mem config is not NOR (&BOOT_MODE)"
        enddo
        )
      PRINT "You're loading a NOR build without using JFLASH -- please use JFLASH instead"
      PRINT "Starting JFLASH for you..."
      PRINT "cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname"

      cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname
      cd ..\..\build\ms
      enddo
      )
    ELSE IF CONV.CHAR(&memconf)=='B'
      (
      IF STRING.SCAN("&BOOT_MODE","NOR",0)==-1
        (
        print "ERROR: Image is for Burst, mem config is not NOR (&BOOT_MODE)"
        enddo
        )
      PRINT "You're loading a burst build without using JFLASH -- please use JFLASH instead"
      PRINT "Starting JFLASH for you..."
      PRINT "cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname"

      cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname
      cd ..\..\build\ms
      enddo
      )
    ELSE IF CONV.CHAR(&memconf)=='b'
      (
      IF STRING.SCAN("&BOOT_MODE","NOR",0)==-1
        (
        print "ERROR: Image is for Burst, mem config is not NOR (&BOOT_MODE)"
        enddo
        )
      PRINT "You're loading a burst build without using JFLASH -- please use JFLASH instead"
      PRINT "Starting JFLASH for you..."
      PRINT "cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname"

      cd.do ..\..\tools\jtag\jf29bds640 &ELFdir &ELFname
      cd ..\..\build\ms
      enddo
      )  
    ELSE IF CONV.CHAR(&memconf)=='N'
      (
      IF STRING.SCAN("&BOOT_MODE","NAND",0)==-1
        (
        print "ERROR: Image is for SDRAM/NAND, mem config is not SDRAM/NAND (&BOOT_MODE)"
        enddo
        )
      )
    ELSE IF CONV.CHAR(&memconf)=='M'
      (
      IF STRING.SCAN("&BOOT_MODE","NAND",0)==-1
        (
        print "ERROR: Image is for SDRAM/NAND, mem config is not SDRAM/NAND (&BOOT_MODE)"
        enddo
        )
      )
  )


;
;
; Establish the memory map for the memory configuration, and set flags
; for the memories to configure
;
;
do setupMemMap

;
; get clock rates setup, for JTAG session.  doesn't change clocks used during boot
&MCLK_RATE=19200000. // don't forget the decimal or you'll be using 19.2mil hex
&HCLK_RATE=19200000.

&MEM_CTL_MARGIN_NS=5. // timing margin for memory controller settings, in nanoseconds
; 5ns is a reasonable number when things are stable

;
;
; Setup MSM for download -- memory registers, GPIOs, Memory controller if needed
;
do setupmems
;



;
;
; Setup environment defaults
;
  Symbol.AsmFrame on
  Symbol.CutLine 3
  Symbol.Spath + ".."
  Symbol.case off


;
;
; Download and set initial breakpoints
;
; load the image
  IF "&ELFname"==""
  (
    area.create WARNING 120. 60.
    AREA.view WARNING
    AREA.select WARNING
    PRINT "    use 'DO JLOAD <buildtype>' to check memory config against loaded image!"
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    PRINT " "
    WAIT 3.s
    area.close WARNING
    area.select A000
    print "select file to program in browser: "
    d.load.elf *.elf
  )
  ELSE
  (
    print "Loading &ELFname.elf target image "
    data.load.elf &ELFdir\&ELFname.elf
  )

; resets registers
  register.reset

; setup breakpoints
break.delete /all
do breakpoints.cmm
tronchip.set RESET off

;
;
;
;  Setup Path for source code (y.spath env variable)
;
;
do setupyspath.cmm



;
;
;
; Window Setup
;
;
;
do setupWindows.cmm


;
; ETM setup
;
do setupETM.cmm


PRINT "Completed JLOAD &ELFname ..."
PRINT "   ...for &TARGET_TYPE boot: &BOOT_MODE"



ENDDO













⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -