world leader in high performance signal processing
Trace: » flash-programmer

VisualDSP Flash Programmer

The VisualDSP environment defines a flash programmer interface so that standalone applications (the flash drivers) can be leveraged to quickly program misc flash devices on a board. Communication with the flash driver is via JTAG, but the flash itself need only be accessible by the Blackfin core. Since the core is handling the programming process, flashes can be programmed faster than bit-banging the commands directly from JTAG (by orders of magnitude).

Historically, this functionality has been available under the Windows and VisualDSP environment only. With a few scripts and a little magic, now those same flash drivers may be used with the GNU toolchain. For now, these helper scripts only work under a Unix-like environment.

Flash Drivers

Writing a flash driver is beyond this document. Consult the included VDSP help.

VDSP itself comes with many example flash drivers. To make things easier, they have been archived here as well. Obtaining flash drivers for any other board/part is beyond this document as well.

GNU Toolchain

You can obtain the GNU Toolchain here.

Command line Interface


With the flash driver and GNU toolchain in hand, you just need the helper scripts. You can find the latest versions here. You will need the files named u-boot, vdsp-flash-programmer, and


These scripts work with gdb directly, so you will need to launch gdbproxy like normal so that it connects to the board.


Now run the and give it the path to the flash driver. Here you can see the programmer used on a BF537-STAMP.

$ ./ BF537EzFlashDriver.dxe
INFO: Cleaning up driver: BF537EzFlashDriver.dxe
INFO: Launching gdb
(no debugging symbols found)
0x20000000 in ?? ()
0x20000000 in ?? ()
Loading section L1_data_b, size 0xf18 lma 0xff900000
Loading section L1_code, size 0x10c lma 0xffa00000
Loading section L1_code_sram, size 0x2b64 lma 0xffa00110
Loading section L1_code, size 0x3774 lma 0xffa10000
Start address 0xffa00000, load size 29436
Transfer rate: 454610 bits/sec, 7359 bytes/write.
Hardware assisted breakpoint 1 at 0xffa11e56

Flash Programmer information:
 Title         : ADSP-BF537 EZ-KIT Lite
 Description   : STMicro. M29W320DB
 DeviceCompany : STMicroelectronics
 BuildDate     : Jul 31 2008
 DrvVersion    : 1.00.5
 Buffer        : 0xff804660
 Size          : 0x600
 ManCode       : 0x20
 DevCode       : 0x22cb
 Error         : 0

Flash layout: (16 bit, 67 sectors, 4 MiB)
  0: 0x00000000 0x00004000 0x00006000 0x00008000 0x00010000
  5: 0x00020000 0x00030000 0x00040000 0x00050000 0x00060000
 10: 0x00070000 0x00080000 0x00090000 0x000a0000 0x000b0000
 15: 0x000c0000 0x000d0000 0x000e0000 0x000f0000 0x00100000
 20: 0x00110000 0x00120000 0x00130000 0x00140000 0x00150000
 25: 0x00160000 0x00170000 0x00180000 0x00190000 0x001a0000
 30: 0x001b0000 0x001c0000 0x001d0000 0x001e0000 0x001f0000
 35: 0x00200000 0x00210000 0x00220000 0x00230000 0x00240000
 40: 0x00250000 0x00260000 0x00270000 0x00280000 0x00290000
 45: 0x002a0000 0x002b0000 0x002c0000 0x002d0000 0x002e0000
 50: 0x002f0000 0x00300000 0x00310000 0x00320000 0x00330000
 55: 0x00340000 0x00350000 0x00360000 0x00370000 0x00380000
 60: 0x00390000 0x003a0000 0x003b0000 0x003c0000 0x003d0000
 65: 0x003e0000 0x003f0000

Now you can use the commands (run 'help cmd' for more info):

At this point, you're free to erase/program/whatever you like.