XMC4300 Ether Cat Firmware Update - smaller bootloader/application size

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User18369
Level 2
Level 2
Hello,

I used example ETHCAT_FWUPDATE_SSC_APPLICATION_XMC48 to be able to update my Application on an XMC4300 via EtherCat.

My application started with the following Flash setting:

  • 1. first 64kB for Bootloader (0x0C000000 -0x0C010000)
  • 2. second 64kB for ErtherCatEEPROM (0x0C010000 -0x0C020000)
  • 3. APP Code from 0x0C020000 -0x0C035000
  • 4. Backup Buffer 0x0C035000 -0x0C040000


If I try set Bootloader in the first first 16kB or also 32kB its not working anymore. I changed following things: (for Bootloader size of 32kB)

  • linker_script.ld : memory and ABM Header Position

    • MEMORY
      {
      /* FLASH_1_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x000010000 */
      /* FLASH_1_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x000010000*/
      FLASH_1_cached(RX) : ORIGIN = 0x08000000, LENGTH = 0x000008000
      FLASH_1_uncached(RX) : ORIGIN = 0x0C000000, LENGTH = 0x000008000

      PSRAM_1(!RX) : ORIGIN = 0x1FFF0000, LENGTH = 0x10000
      DSRAM_1_system(!RX) : ORIGIN = 0x20000000, LENGTH = 0x10000
      SRAM_combined(!RX) : ORIGIN = 0x1FFF0000, LENGTH = 0x00020000
      }
    • /* http://mcuoneclipse.com/2012/11/01/defining-variables-at-absolute-addresses-with-gcc/ */
      /*.abm ABSOLUTE(0x0800FFE0): AT(0x0800FFE0 | 0x04000000)*/
      .abm ABSOLUTE(0x08007FE0): AT(0x08007FE0 | 0x04000000)
      {
      KEEP(*(.flash_abm))
      } > FLASH_1_cached



  • reduced the #defines for the max size of Code
    for example : #define APP_PARTITION_MAX_SIZE (128 * 1024)
  • Did not chang App Code position or Backup



What could be the problem ?
0 Likes
1 Reply
Bale
Level 4
Level 4
10 questions asked 100 sign-ins 5 solutions authored

Hi
Have you used FWupdate xmc4300 yet? Can you share sample source code?
Thank you,

0 Likes