Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


OpenOCD and AT91SAM7 flash programming

Posted by Adam Turowski on May 17, 2009
I am trying to get OpenOCD working and I've managed to connect it with GDB and AT91SAM7X256. Debugging seems to work fine. Unfortunately I've tried to use OpenOCD to program MCU internal flash, but without success. Can you please provide me example of OpenOCD/GDB configuration file/commands which allows you to program internal flash?


RE: OpenOCD and AT91SAM7 flash programming

Posted by Richard on May 17, 2009
There are some example scripts in the FreeRTOS download - with documentation provided on the FreeRTOS.org WEB site. However the version in the download is rather old and the commands are different if you are using a newer version of OpenOCD.

You can also use the Atmel provided SAM-BA program to program the flash rather than using OpenOCD for this.


RE: OpenOCD and AT91SAM7 flash programming

Posted by Joel cote on June 30, 2009
I already use SAM-BA to program the flash and it's work, but I need to program the flash with the JTAGkey_tiny Amontec. I want a know if someone have some cfg file with the new command who work with open ocd 0.1.0. when I try to program the flash with open ocd with the external tool of eclipse i have this error :

OLD SYNTAX: DEPRECATED - translating to new syntax
jtag newtap CHIP TAP -irlen 4 -ircapture 0x1 -irvalue 0xf
Example: STM32 has 2 taps, the cortexM3(len4) + boundryscan(len5)
jtag newtap stm32 cortexm3 ....., thus creating the tap: "stm32.cortexm3"
jtag newtap stm32 boundry ....., and the tap: "stm32.boundery"
And then refer to the taps by the dotted name.
Runtime error, file "C:\0Data\SAM7_flash.cfg", line 23:
bad option "arm7tdmi": must be one of count, create, current, names, number, or types

Can someone help me?, I really don't know what to do.



RE: OpenOCD and AT91SAM7 flash programming

Posted by Joel cote on June 30, 2009
I have also this error

invalid command name "daemon_startup_reset"

RE: OpenOCD and AT91SAM7 flash programming

Posted by Joel cote on June 30, 2009
I have also this error

invalid command name "daemon_startup_reset"

RE: OpenOCD and AT91SAM7 flash programming

Posted by Stefano Oliveri on July 3, 2009
Hi all,

I received a working configuration file for AT91SAM7x / OpenOCD 0.1.0 / Amontec JTAGkey-Tiny. It uses only one big .cfg file. I can't test it because I have not board based on that MCU! But people are reporting that this file work fine, and... you can quickly try it!


#JC default ports
telnet_port 4444
gdb_port 3333
tcl_port 6666

# tell gdb our flash memory map
# and enable flash programming
gdb_memory_map enable
gdb_flash_program enable

interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8

jtag_khz 2000

jtag_nsrst_delay 200
jtag_ntrst_delay 200

#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only srst_pulls_trst

if { [info exists CHIPNAME] } {
} else {
set _CHIPNAME sam7x256

if { [info exists ENDIAN] } {
} else {
set _ENDIAN little

if { [info exists CPUTAPID ] } {
} else {
set _CPUTAPID 0x3f0f0f0f

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID

set _TARGETNAME [format "%s.cpu" $_CHIPNAME]

target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position $_TARGETNAME -variant arm7tdmi
$_TARGETNAME configure -event reset-init {
# disable watchdog
mww 0xfffffd44 0x00008000
# enable user reset
mww 0xfffffd08 0xa5000001
# CKGR_MOR : enable the main oscillator
mww 0xfffffc20 0x00000601
sleep 10
# CKGR_PLLR: 96.1097 MHz
mww 0xfffffc2c 0x00481c0e
sleep 10
# PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
mww 0xfffffc30 0x00000007
sleep 10
# MC_FMR: flash mode (FWS=1,FMCN=60)
mww 0xffffff60 0x003c0100
sleep 100

$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x4000 -work-area-backup 0

#flash bank <driver> <base> <size> <chip_width> <bus_width>
flash bank at91sam7 0 0 0 0 0

# For more information about the configuration files, take a look at:
# openocd.texi

#jc truc ajouté
reset halt
#flash write_image erase C:\0Data\AxesNetwork\0Firm\ARM7\SourceEL\getting-started-project-1.3-at91sam7x-ek\getting-started-project\bin\getting-started-project-at91sam7x256-flash.elf 0x0 elf
flash write_image C:/0Data/AxesNetwork/0Firm/ARM7/FreeRTOSV5.2.0/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/RTOSDemo.bin 0x00100000 bin
#verify_image getting-started-project-at91sam7x256-flash.elf
reset run

RE: OpenOCD and AT91SAM7 flash programming

Posted by Joel cote on July 7, 2009
Thank for your post stefano, I forgot to post that I have find the answer. Also this file is the one I wrote and send you be e-mail.

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers


STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner