When exploring the example projects, I've noticed that the regular Blinky project has 3 targets.


I think I understand what Flash and RAM stand for (it's all a bit confusing), but I haven't seen "OPT" before; what is it? What could it be used for?

I've seen multiple address spaces described for STM32F407 (that I'm using). How does it relate to them?

I think that the assembly file is additionally linked with the OPT target. The parts that interested me were:

;// <e> Flash Option Bytes
FLASH_OPT       EQU     1


;// </e>

                IF      FLASH_OPT <> 0
                AREA    |.ARM.__AT_0x1FFFC000|, CODE, READONLY
                DCD     FLASH_OPTCR


I admit I understand close to nothing from them, though.

  • \$\begingroup\$ Not familiar with that particular part but maybe a typo for OTP (one-time programmable). Does that part have any ROM type variants that can only be programmed once? \$\endgroup\$ – PeterJ Oct 11 '14 at 10:24
  • \$\begingroup\$ @PeterJ Hmm, the [ST reference manual]st.com/web/en/resource/technical/document/reference_manual/… seems to confirm that it does indeed have some OTP space; but it looks like it's rather small, certainly not being able to fit the whole program binary. \$\endgroup\$ – Bartek Banachewicz Oct 11 '14 at 10:27
  • \$\begingroup\$ Maybe it's "Optional" memory - i.e., external memory on the EIB. \$\endgroup\$ – Majenko Oct 11 '14 at 10:30
  • \$\begingroup\$ @Majenko I've added some additional - hopefully helpful - information. \$\endgroup\$ – Bartek Banachewicz Oct 11 '14 at 10:33
  • 1
    \$\begingroup\$ Also it may refer to the "option" bytes at 0x1FFF C000 - 0x1FFF C007, which if they are anything like the PIC chips are to do with configuring how the chip runs at startup - things like clock sources, etc. \$\endgroup\$ – Majenko Oct 11 '14 at 10:42

Oh, I found that in the description (should've looked there at once):

The Blinky program is available in different targets:

  STM32F407 RAM:      configured for on-chip RAM
                      (used for target debugging)

  STM32F407 Flash:    configured for on-chip Flash
                      (used for production or target debugging)

  STM32F407 OPT:      STM32F407 with Flash Options Bytes
                      (used for programming)

Your Answer

