385 lines
15 KiB
Plaintext
385 lines
15 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: Example for flash declaration of Luminary Micro LM3S internal flash.
|
|
;
|
|
; @Description:
|
|
; Script arguments:
|
|
;
|
|
; DO lm3s [PREPAREONLY]
|
|
;
|
|
; PREPAREONLY only declares flash but does not execute flash programming
|
|
;
|
|
; Example:
|
|
;
|
|
; DO ~~/demo/arm/flash/lm3s PREPAREONLY
|
|
;
|
|
; List of Luminary Micro derivatives and their configuration:
|
|
;
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 8kB | 16kB | 16kB | 32kB | 64kB
|
|
; RAM | 2kB | 2kB | 4kB | 8kB | 8kB
|
|
; LM3Sxxx | LM3S101 | LM3S301 | LM3S300 | LM3S600 | LM3S800
|
|
; | LM3S102 | | LM3S308 | LM3S601 | LM3S801
|
|
; | | | LM3S310 | LM3S608 | LM3S808
|
|
; | | | LM3S315 | LM3S610 | LM3S811
|
|
; | | | LM3S316 | LM3S611 | LM3S812
|
|
; | | | LM3S317 | LM3S612 | LM3S815
|
|
; | | | LM3S328 | LM3S613 | LM3S817
|
|
; | | | | LM3S615 | LM3S818
|
|
; | | | | LM3S617 | LM3S828
|
|
; | | | | LM3S618 |
|
|
; | | | | LM3S628 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 16kB | 32kB | 64kB | 96kB | 128kB | 256kB
|
|
; RAM | 6kB | 8kB |12/16/24kB|16/32/64kB|20/32/64kB | 32/48/
|
|
; | | | | | | 64/96kB
|
|
; LM3S1xxx | LM3S1Z16 |LM3S1W16 | LM3S1110 | LM3S1332| LM3S1601 | LM3S1811
|
|
; | | | LM3S1133 | LM3S1435| LM3S1607 | LM3S1816
|
|
; | | | LM3S1138 | LM3S1439| LM3S1608 | LM3S1850
|
|
; | | | LM3S1150 | LM3S1512| LM3S1620 | LM3S1911
|
|
; | | | LM3S1162 | LM3S1538| LM3S1621 | LM3S1918
|
|
; | | | LM3S1165 | | LM3S1625 | LM3S1937
|
|
; | | | LM3S1N11 | | LM3S1626 | LM3S1958
|
|
; | | | LM3S1N16 | | LM3S1627 | LM3S1960
|
|
; | | | LM3S1P51 | | LM3S1635 | LM3S1968
|
|
; | | | | | LM3S1637 | LM3S1B21
|
|
; | | | | | LM3S1651 | LM3S1R21
|
|
; | | | | | LM3S1751 | LM3S1R26
|
|
; | | | | | LM3S1776 |
|
|
; | | | | | LM3S1J11 |
|
|
; | | | | | LM3S1J16 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 64kB | 96kB | 128kB | 256kB
|
|
; RAM | 16/32kB | 32/64kB |16/32/64kB| 64/96kB
|
|
; LM3S2xxx | LM3S2110 | LM3S2410 | LM3S2601 | LM3S2911
|
|
; | LM3S2139 | LM3S2412 | LM3S2608 | LM3S2918
|
|
; | LM3S2276 | LM3S2432 | LM3S2616 | LM3S2939
|
|
; | | LM3S2533 | LM3S2620 | LM3S2948
|
|
; | | | LM3S2637 | LM3S2950
|
|
; | | | LM3S2651 | LM3S2965
|
|
; | | | LM3S2671 | LM3S2B93
|
|
; | | | LM3S2678 |
|
|
; | | | LM3S2730 |
|
|
; | | | LM3S2739 |
|
|
; | | | LM3S2776 |
|
|
; | | | LM3S2793 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 16kB | 32kB | 64kB 128kB | 256kB
|
|
; RAM | 6kB | 8kB | 12kB 20/32/64kB| 32kB
|
|
; LM3S3xxx | LM3S3Z26 | LM3S3W26 | LM3S3N26 LM3S3634 | LM3S3826
|
|
; | | | LM3S3651 |
|
|
; | | | LM3S3739 |
|
|
; | | | LM3S3748 |
|
|
; | | | LM3S3749 |
|
|
; | | | LM3S3759 |
|
|
; | | | LM3S3768 |
|
|
; | | | LM3S3J26 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 16kB | 32kB | 64kB | 128kB | 256kB
|
|
; RAM | 8kB | 12kB | 24kB |24/32/64kB|48/64/96kB
|
|
; LM3S5xxx | LM3S5Y36 |LM3S5T36 |LM3S5P31 | LM3S5632 | LM3S5951
|
|
; | | |LM3S5P36 | LM3S5651 | LM3S5956
|
|
; | | |LM3S5P51 | LM3S5652 | LM3S5B91
|
|
; | | |LM3S5P56 | LM3S5656 | LM3S5R31
|
|
; | | | | LM3S5662 | LM3S5R36
|
|
; | | | | LM3S5732 |
|
|
; | | | | LM3S5737 |
|
|
; | | | | LM3S5739 |
|
|
; | | | | LM3S5747 |
|
|
; | | | | LM3S5749 |
|
|
; | | | | LM3S5752 |
|
|
; | | | | LM3S5757 |
|
|
; | | | | LM3S5762 |
|
|
; | | | | LM3S5768 |
|
|
; | | | | LM3S5769 |
|
|
; | | | | LM3S5791 |
|
|
; | | | | LM3S5K31 |
|
|
; | | | | LM3S5K36 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 64kB | 96kB | 128kB | 256kB
|
|
; RAM | 16kB | 32/64kB | 32/64kB | 64kB
|
|
; LM3S6xxx | LM3S6100 | LM3S6420 | LM3S6610 | LM3S6911
|
|
; | LM3S6110 | LM3S6422 | LM3S6611 | LM3S6918
|
|
; | | LM3S6432 | LM3S6618 | LM3S6938
|
|
; | | LM3S6537 | LM3S6633 | LM3S6950
|
|
; | | | LM3S6637 | LM3S6952
|
|
; | | | LM3S6730 | LM3S6965
|
|
; | | | LM3S6753 |
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 96kB | 128kB | 256kB
|
|
; RAM | 64kB | 32/64kB | 64kB
|
|
; LM3S8xxx | LM3S8530 | LM3S8630 | LM3S8930
|
|
; | LM3S8538 | LM3S8730 | LM3S8933
|
|
; | | LM3S8733 | LM3S8938
|
|
; | | LM3S8738 | LM3S8962
|
|
; | | | LM3S8970
|
|
; | | | LM3S8971
|
|
; --------------------------------------------------------------------------------
|
|
; Flash | 128kB | 256kB | 512kB
|
|
; RAM | 48/64kB | 64/96kB | 96kB
|
|
; LM3S9xxx | LM3S9781 | LM3S9997 | LM3S9D92
|
|
; | LM3S9790 | LM3S9B81 | LM3S9D96
|
|
; | LM3S9792 | LM3S9B90 |
|
|
; | LM3S9L97 | LM3S9B92 |
|
|
; | | LM3S9B95 |
|
|
; | | LM3S9B96 |
|
|
;
|
|
; @Author: WRD
|
|
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; @Chip: LM3S*
|
|
; --------------------------------------------------------------------------------
|
|
; $Rev: 10516 $
|
|
; $Id: lm3s.cmm 10516 2022-02-02 11:39:30Z bschroefel $
|
|
|
|
LOCAL ¶meters
|
|
ENTRY %LINE ¶meters
|
|
|
|
LOCAL ¶m_prepareonly
|
|
¶m_prepareonly=(STRing.SCAN(STRing.UPpeR("¶meters"),"PREPAREONLY",0)!=-1)
|
|
; ------------------------------------------------------------------------------
|
|
; Start debugging
|
|
|
|
IF SYStem.MODE()<5
|
|
(
|
|
SYStem.RESet
|
|
SYStem.CPU LM3S9B90
|
|
SYStem.Option EnReset OFF
|
|
SYStem.Up
|
|
)
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Flash declaration
|
|
|
|
FLASH.RESet
|
|
GOSUB FlashDeclaration
|
|
|
|
; Setup USECRL (uSec reload register)
|
|
Data.Set 0x400FE140 %Long 0x31
|
|
|
|
; In case of empty flash disable ROMCTL:BA (ROM Control register Boot Alias bit)
|
|
; to show flash contents at address 0x0
|
|
IF (Data.Long(ASD:0x400FE0F0)&0x01)==0x01
|
|
(
|
|
Data.Set ASD:0x400FE0F0 %Long 0x01
|
|
)
|
|
|
|
; Flash script ends here if called with parameter PREPAREONLY
|
|
IF ¶m_prepareonly
|
|
ENDDO PREPAREDONE
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Flash programming example
|
|
|
|
DIALOG.YESNO "Program flash memory?"
|
|
LOCAL &progflash
|
|
ENTRY &progflash
|
|
IF &progflash
|
|
(
|
|
; activate flash driver
|
|
FLASH.ReProgram ALL /Erase
|
|
; download application
|
|
Data.LOAD.auto *
|
|
; reprogram changes to flash memory
|
|
FLASH.ReProgram OFF
|
|
|
|
; Reset device
|
|
SYStem.Down
|
|
SYStem.Up
|
|
)
|
|
|
|
ENDDO
|
|
|
|
|
|
|
|
; --------------------------------------------------------------------------------
|
|
; Flash declaration depending on configuration
|
|
;
|
|
; RAM size greater 8kB is defaulted to 8kB because more RAM is not needed
|
|
; for flash programming.
|
|
|
|
FlashDeclaration:
|
|
LOCAL &FlashSize
|
|
LOCAL &RAMSize
|
|
LOCAL &cpu
|
|
|
|
&FlashSize=0x0
|
|
&RAMSize=0x2000
|
|
&cpu=SYStem.CPU()
|
|
|
|
; LM3Sxxx
|
|
IF (("&cpu"=="LM3S101")||("&cpu"=="LM3S102"))
|
|
(
|
|
&FlashSize=0x2000
|
|
&RAMSize=0x800
|
|
)
|
|
IF (("&cpu"=="LM3S301"))
|
|
(
|
|
&FlashSize=0x4000
|
|
&RAMSize=0x800
|
|
)
|
|
IF (("&cpu"=="LM3S300")||("&cpu"=="LM3S308")||("&cpu"=="LM3S310")||("&cpu"=="LM3S315")||("&cpu"=="LM3S316")||("&cpu"=="LM3S317")||("&cpu"=="LM3S328"))
|
|
(
|
|
&FlashSize=0x4000
|
|
&RAMSize=0x1000
|
|
)
|
|
IF (("&cpu"=="LM3S600")||("&cpu"=="LM3S601")||("&cpu"=="LM3S608")||("&cpu"=="LM3S610")||("&cpu"=="LM3S611")||("&cpu"=="LM3S612")||("&cpu"=="LM3S613")||("&cpu"=="LM3S615")||("&cpu"=="LM3S617")||("&cpu"=="LM3S618")||("&cpu"=="LM3S628"))
|
|
(
|
|
&FlashSize=0x8000
|
|
)
|
|
IF (("&cpu"=="LM3S800")||("&cpu"=="LM3S801")||("&cpu"=="LM3S808")||("&cpu"=="LM3S811")||("&cpu"=="LM3S812")||("&cpu"=="LM3S815")||("&cpu"=="LM3S817")||("&cpu"=="LM3S818")||("&cpu"=="LM3S828"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
; LM3S1xxx
|
|
IF (("&cpu"=="LM3S1Z16"))
|
|
(
|
|
&FlashSize=0x4000
|
|
&RAMSize=0x1800
|
|
)
|
|
IF (("&cpu"=="LM3S1W16"))
|
|
(
|
|
&FlashSize=0x8000
|
|
)
|
|
IF (("&cpu"=="LM3S1110")||("&cpu"=="LM3S1133")||("&cpu"=="LM3S1138")||("&cpu"=="LM3S1150")||("&cpu"=="LM3S1162")||("&cpu"=="LM3S1165")||("&cpu"=="LM3S1N11")||("&cpu"=="LM3S1N16")||("&cpu"=="LM3S1P51"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
IF (("&cpu"=="LM3S1332")||("&cpu"=="LM3S1435")||("&cpu"=="LM3S1439")||("&cpu"=="LM3S1512")||("&cpu"=="LM3S1538"))
|
|
(
|
|
&FlashSize=0x18000
|
|
)
|
|
IF (("&cpu"=="LM3S1601")||("&cpu"=="LM3S1607")||("&cpu"=="LM3S1608")||("&cpu"=="LM3S1620")||("&cpu"=="LM3S1621")||("&cpu"=="LM3S1625")||("&cpu"=="LM3S1626")||("&cpu"=="LM3S1627")||("&cpu"=="LM3S1635")||("&cpu"=="LM3S1637")||("&cpu"=="LM3S1651")||("&cpu"=="LM3S1751")||("&cpu"=="LM3S1776")||("&cpu"=="LM3S1J11")||("&cpu"=="LM3S1J16"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S1811")||("&cpu"=="LM3S1816")||("&cpu"=="LM3S1850")||("&cpu"=="LM3S1911")||("&cpu"=="LM3S1918")||("&cpu"=="LM3S1937")||("&cpu"=="LM3S1958")||("&cpu"=="LM3S1960")||("&cpu"=="LM3S1968")||("&cpu"=="LM3S1B21")||("&cpu"=="LM3S1R21")||("&cpu"=="LM3S1R26"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
IF (("&cpu"=="LM3S1D21")||("&cpu"=="LM3S5C31")||("&cpu"=="LM3S9D92")||("&cpu"=="LM3S9D96"))
|
|
(
|
|
&FlashSize=0x80000
|
|
)
|
|
; LM3S2xxx
|
|
IF (("&cpu"=="LM3S2110")||("&cpu"=="LM3S2139")||("&cpu"=="LM3S2276"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
IF (("&cpu"=="LM3S2410")||("&cpu"=="LM3S2412")||("&cpu"=="LM3S2432")||("&cpu"=="LM3S2533"))
|
|
(
|
|
&FlashSize=0x18000
|
|
)
|
|
IF (("&cpu"=="LM3S2616")||("&cpu"=="LM3S2601")||("&cpu"=="LM3S2608")||("&cpu"=="LM3S2620")||("&cpu"=="LM3S2637")||("&cpu"=="LM3S2651")||("&cpu"=="LM3S2671")||("&cpu"=="LM3S2678")||("&cpu"=="LM3S2730")||("&cpu"=="LM3S2739")||("&cpu"=="LM3S2776")||("&cpu"=="LM3S2793"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S2911")||("&cpu"=="LM3S2918")||("&cpu"=="LM3S2939")||("&cpu"=="LM3S2948")||("&cpu"=="LM3S2950")||("&cpu"=="LM3S2965")||("&cpu"=="LM3S2B93"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
; LM3S3xxx
|
|
IF (("&cpu"=="LM3S3Z26"))
|
|
(
|
|
&FlashSize=0x4000
|
|
&RAMSize=0x1800
|
|
)
|
|
IF (("&cpu"=="LM3S3W26"))
|
|
(
|
|
&FlashSize=0x8000
|
|
)
|
|
IF (("&cpu"=="LM3S3N26"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
IF (("&cpu"=="LM3S3634")||("&cpu"=="LM3S3651")||("&cpu"=="LM3S3739")||("&cpu"=="LM3S3748")||("&cpu"=="LM3S3749")||("&cpu"=="LM3S3759")||("&cpu"=="LM3S3768")||("&cpu"=="LM3S3J26"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S3826"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
; LM3S5xxx
|
|
IF (("&cpu"=="LM3S5Y36"))
|
|
(
|
|
&FlashSize=0x4000
|
|
&RAMSize=0x2000
|
|
)
|
|
IF (("&cpu"=="LM3S5T36"))
|
|
(
|
|
&FlashSize=0x8000
|
|
)
|
|
IF (("&cpu"=="LM3S5P31")||("&cpu"=="LM3S5P36")||("&cpu"=="LM3S5P51")||("&cpu"=="LM3S5P56"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
IF (("&cpu"=="LM3S5632")||("&cpu"=="LM3S5651")||("&cpu"=="LM3S5652")||("&cpu"=="LM3S5656")||("&cpu"=="LM3S5662")||("&cpu"=="LM3S5732")||("&cpu"=="LM3S5737")||("&cpu"=="LM3S5739")||("&cpu"=="LM3S5747")||("&cpu"=="LM3S5749")||("&cpu"=="LM3S5752")||("&cpu"=="LM3S5757")||("&cpu"=="LM3S5762")||("&cpu"=="LM3S5767")||("&cpu"=="LM3S5768")||("&cpu"=="LM3S5769")||("&cpu"=="LM3S5791")||("&cpu"=="LM3S5K31")||("&cpu"=="LM3S5K36"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S5951")||("&cpu"=="LM3S5956")||("&cpu"=="LM3S5B91")||("&cpu"=="LM3S5R31")||("&cpu"=="LM3S5R36"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
; LM3S6xxx
|
|
IF (("&cpu"=="LM3S6100")||("&cpu"=="LM3S6110"))
|
|
(
|
|
&FlashSize=0x10000
|
|
)
|
|
IF (("&cpu"=="LM3S6420")||("&cpu"=="LM3S6422")||("&cpu"=="LM3S6432")||("&cpu"=="LM3S6537"))
|
|
(
|
|
&FlashSize=0x18000
|
|
)
|
|
IF (("&cpu"=="LM3S6610")||("&cpu"=="LM3S6611")||("&cpu"=="LM3S6618")||("&cpu"=="LM3S6633")||("&cpu"=="LM3S6637")||("&cpu"=="LM3S6730")||("&cpu"=="LM3S6753"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S6911")||("&cpu"=="LM3S6918")||("&cpu"=="LM3S6938")||("&cpu"=="LM3S6950")||("&cpu"=="LM3S6952")||("&cpu"=="LM3S6965"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
; LM3S8xxx
|
|
IF (("&cpu"=="LM3S8530")||("&cpu"=="LM3S8538"))
|
|
(
|
|
&FlashSize=0x18000
|
|
)
|
|
IF (("&cpu"=="LM3S8630")||("&cpu"=="LM3S8730")||("&cpu"=="LM3S8733")||("&cpu"=="LM3S8738"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S8930")||("&cpu"=="LM3S8933")||("&cpu"=="LM3S8938")||("&cpu"=="LM3S8962")||("&cpu"=="LM3S8970")||("&cpu"=="LM3S8971"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
; LM3S9xxx
|
|
IF (("&cpu"=="LM3S9781")||("&cpu"=="LM3S9790")||("&cpu"=="LM3S9792")||("&cpu"=="LM3S9L97"))
|
|
(
|
|
&FlashSize=0x20000
|
|
)
|
|
IF (("&cpu"=="LM3S9997")||("&cpu"=="LM3S9B81")||("&cpu"=="LM3S9B90")||("&cpu"=="LM3S9B92")||("&cpu"=="LM3S9B95")||("&cpu"=="LM3S9B96"))
|
|
(
|
|
&FlashSize=0x40000
|
|
)
|
|
|
|
IF &FlashSize==0x0
|
|
(
|
|
PRINT %ERROR "FLASH size of CPU type is unknown"
|
|
ENDDO
|
|
)
|
|
|
|
FLASH.Create 1. 0x0++(&FlashSize-1) 0x400 TARGET Long
|
|
IF &RAMSize>=0x1000
|
|
(
|
|
FLASH.TARGET 0x20000000 0x20000800 0x400 ~~/demo/arm/flash/long/lm3s.bin
|
|
)
|
|
ELSE IF &RAMSize>=0x800
|
|
(
|
|
FLASH.TARGET 0x20000000 0x20000400 0x200 ~~/demo/arm/flash/long/lm3s.bin
|
|
)
|
|
ELSE
|
|
(
|
|
PRINT %ERROR "RAM size is not supported by the script"
|
|
ENDDO
|
|
)
|
|
|
|
RETURN
|