Place Image and Font Ressources in external Flash with Keil

785 views
asked Jan 21, 2018 in Embedded Wizard Studio by 消逝的风
Hello,

in my Project i want to place all Bitmap and Font Ressources into the external Flash.

My board is STM32F429 - Evalboard

1 Answer

0 votes
answered Jan 22, 2018 by mli
Hi,

- add the required driver/bsp files for the external flash to you project
  and add the needed init code

- add an explicit scatter file to you project (project options, Linker) and
  add a NOR FLASH section:
  e. g.
  LR_NOR 0x60000000 0x01000000 {   
  ER_NOR 0x60000000 0x01000000 {
  Application.o(+RO-DATA)
  }
  }

- add all the object files that contain Bitmap and Font Resources
  to this ER_NOR section (as for 'Application.o' in the example above)

- if no suitable external flash loader is available in Keil MDK, use
  STM32 Link Utility for programming the external flash device

Best Regards,
Martin
commented Jan 23, 2018 by 消逝的风

Hi,

I follow the steps above you provide, and compile a success.the  explicit scatter file is follow

But I don't know how to use  STM32 Link Utility.Can you say about the detailed steps

 

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x08000000 0x00100000  {    ; load region size_region
  ER_IROM1 0x08000000 0x00100000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000000 0x00030000  {  ; RW data
   .ANY (+RW +ZI)
  }
}

LR_NOR x60000000 0 x01000000 {
ER_NOR x60000000 0 x01000000 {
Application.o(+ RO-DATA)
}
}

 

 

 

commented Jan 23, 2018 by mli
Hi,

Open the GUI version of STM32 Link Utility
External Loader -> Add External Loader -> select 'M29W128GL_STM324x9I-EVAL'
Open your hex file to program
Target -> Program...

Alternatively you can also use the new STM tool "STM32CubeProgrammer"

BTW.
In scatter file there should not be some space in the size parameter (0 x01000000 -> 0x01000000)

 

Best Regards,
Martin
commented Jan 23, 2018 by 消逝的风
you say In scatter file there should not be some space in the size parameter (0 x01000000 -> 0x01000000)。

But you said above

- add an explicit scatter file to you project (project options, Linker) and
  add a NOR FLASH section:
  e. g.
  LR_NOR 0x60000000 0x01000000 {   
  ER_NOR 0x60000000 0x01000000 {
  Application.o(+RO-DATA)
  }
  }
commented Jan 24, 2018 by 消逝的风
I also want to know the data can save to the nand flash, if you can how to download.Like STM32 Link the Utility does not support.
commented Jan 25, 2018 by mli
Could you please repeat you question more detailed?
commented Jan 27, 2018 by 消逝的风

I am using the board is stm32f429-discovery  (Before think that stm32f429-EVAL)

I use the download tool is STM32 ST-LINK Utility v4.2.0 

first

Open the GUI version of STM32 Link Utility
External Loader -> Add External Loader -> select 'M29W128GL_STM324x9I-EVAL'

Link to success, but I found that if the 0x08000000 write data is ok, but I will write data 0x60000000 errors
:Error occured during memory writing.

 

 

I estimate whether the memory can be written, external flash write。

commented Jan 29, 2018 by mli
In contrast to stm32f429-EVAL the stm32f429 discovery board does not contain external NOR flash.

Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint

...