Hi!
I've been trying to download a program into the flash memory by using the following gdb init script:
#
# connect to the J-Link gdb server
#
target remote localhost:2331
#
# Setup flash programming
#
monitor flash device = TMS470R1B1M
monitor flash download = 1
#monitor WorkRAM = <SAddr>-<EAddr>
#monitor flash CFI = <SAddr>-<EAddr>
#
# Select target endianess
#
monitor endian big
#
# Set init JTAG speed to 30 kHz
#
monitor speed 30
#
# Reset the chip to get to a known state.
#
monitor reset
#
# CPU core initialization (to be done by user)
#
monitor DisableChecks
monitor WriteU32 0xFFFFFFE0 0x00004007
# 1 MB FLASH memory @ address 0
# Mem fine base high reg 0
monitor WriteU32 0xFFFFFE00 0x00000000
# Mem fine base low reg 0
monitor WriteU32 0xFFFFFE04 0x000000B0
# Mem fine base high reg 1
monitor WriteU32 0xFFFFFE08 0x00000000
# Mem fine base low reg 1
monitor WriteU32 0xFFFFFE0C 0x00000000
# 64 kB SRAM memory @ address 0x400000
# Mem fine base high reg 2
monitor WriteU32 0xFFFFFE10 0x00000040
# Mem fine base low reg 2
monitor WriteU32 0xFFFFFE14 0x00000070
# Mem fine base high reg 3
monitor WriteU32 0xFFFFFE18 0x00000000
# Mem fine base low reg 3
monitor WriteU32 0xFFFFFE1C 0x00000000
# Mem fine base high reg 4
monitor WriteU32 0xFFFFFE20 0x00000080
# Mem fine base low reg 4
monitor WriteU32 0xFFFFFE24 0x00000010
# Mem fine base low reg 0, activate memory map
monitor WriteU32 0xFFFFFE04 0x000001B0
monitor WriteU32 0xFFFFF724 0x80000000
monitor memU32 0x0000FFE0
monitor memU32 0x0000FFE4
monitor memU32 0x0000FFE8
monitor memU32 0x0000FFEC
monitor WriteU32 0xFFFFFFDC 0x00000002
monitor EnableChecks
monitor speed 12000
monitor WorkRAM = 0x400000-0x40FFFF
#monitor flash CFI= 0x0-0x00FFFFF
#
# Setup GDB for faster downloads
#
set remote memory-write-packet-size 4096
set remote memory-write-packet-size fixed
monitor speed 12000
file ADC_LCD_FLASH.out
#monitor reset
#break main
load
#go
#continue
The program is an IAR demo that works fine when running from the IAR environment. However, when I try to download it to FLASH by using the Segger GDB server, it fails to work at all.
Do I have to do something "special" in order to write the program correctly into flash ? I'm pretty sure that I've set up the address mapping correctly as well as unlocked the memory module(s)
All help will be appreciated
I've been trying to download a program into the flash memory by using the following gdb init script:
#
# connect to the J-Link gdb server
#
target remote localhost:2331
#
# Setup flash programming
#
monitor flash device = TMS470R1B1M
monitor flash download = 1
#monitor WorkRAM = <SAddr>-<EAddr>
#monitor flash CFI = <SAddr>-<EAddr>
#
# Select target endianess
#
monitor endian big
#
# Set init JTAG speed to 30 kHz
#
monitor speed 30
#
# Reset the chip to get to a known state.
#
monitor reset
#
# CPU core initialization (to be done by user)
#
monitor DisableChecks
monitor WriteU32 0xFFFFFFE0 0x00004007
# 1 MB FLASH memory @ address 0
# Mem fine base high reg 0
monitor WriteU32 0xFFFFFE00 0x00000000
# Mem fine base low reg 0
monitor WriteU32 0xFFFFFE04 0x000000B0
# Mem fine base high reg 1
monitor WriteU32 0xFFFFFE08 0x00000000
# Mem fine base low reg 1
monitor WriteU32 0xFFFFFE0C 0x00000000
# 64 kB SRAM memory @ address 0x400000
# Mem fine base high reg 2
monitor WriteU32 0xFFFFFE10 0x00000040
# Mem fine base low reg 2
monitor WriteU32 0xFFFFFE14 0x00000070
# Mem fine base high reg 3
monitor WriteU32 0xFFFFFE18 0x00000000
# Mem fine base low reg 3
monitor WriteU32 0xFFFFFE1C 0x00000000
# Mem fine base high reg 4
monitor WriteU32 0xFFFFFE20 0x00000080
# Mem fine base low reg 4
monitor WriteU32 0xFFFFFE24 0x00000010
# Mem fine base low reg 0, activate memory map
monitor WriteU32 0xFFFFFE04 0x000001B0
monitor WriteU32 0xFFFFF724 0x80000000
monitor memU32 0x0000FFE0
monitor memU32 0x0000FFE4
monitor memU32 0x0000FFE8
monitor memU32 0x0000FFEC
monitor WriteU32 0xFFFFFFDC 0x00000002
monitor EnableChecks
monitor speed 12000
monitor WorkRAM = 0x400000-0x40FFFF
#monitor flash CFI= 0x0-0x00FFFFF
#
# Setup GDB for faster downloads
#
set remote memory-write-packet-size 4096
set remote memory-write-packet-size fixed
monitor speed 12000
file ADC_LCD_FLASH.out
#monitor reset
#break main
load
#go
#continue
The program is an IAR demo that works fine when running from the IAR environment. However, when I try to download it to FLASH by using the Segger GDB server, it fails to work at all.
Do I have to do something "special" in order to write the program correctly into flash ? I'm pretty sure that I've set up the address mapping correctly as well as unlocked the memory module(s)
All help will be appreciated
