AT91SAM9X25 boot problem

Discussion around AT91RM9200 and SAM9 Series Products.

Moderator: nferre

Posts: 3
Joined: Fri Jan 26, 2018 9:25 am

AT91SAM9X25 boot problem

Fri Jan 26, 2018 10:13 am


I am trying standalone program to AT91SAM9X25. but boot file is large.

how to solve this problem?

I use win7, IAR 7.7, sam-ba v2.18 and copy "test.bin"

"test.bin" size is 77kb. and It is an output file that combines led, ethernet, and nandflash examples.

SAM-BA -> SerialFlash AT25/AT26 -> Send Boot File -> Execute -> test.bin

Message is...

loading history file ... 5 events added
SAM-BA console display active (Tcl8.5.9 / Tk8.5.9)
(sam-ba_2.18) 6 %
(sam-ba_2.18) 6 % GENERIC::SendBootFileGUI
-E- Unauthorized Boot File Size
(sam-ba_2.18) 6 %
Location: USA
Posts: 1590
Joined: Thu Apr 19, 2007 10:15 pm

Re: AT91SAM9X25 boot problem

Sun Jan 28, 2018 2:58 am

Mulsome post wrote:I use win7, IAR 7.7, sam-ba v2.18 and copy "test.bin"

"test.bin" size is 77kb. and It is an output file that combines led, ethernet, and nandflash examples.
You've omitted some salient details.
From where do these "examples" come?
At what memory address does this program load, or which memory type (SRAM or DRAM/EBI_DDR) was specified when built?

Mulsome post wrote:SAM-BA -> SerialFlash AT25/AT26 -> Send Boot File -> Execute -> test.bin
Apparently SAM-BA has a sanity test that compares the size of image to be stored versus the size of the internal SRAM where the boot file would eventually be loaded and executed.
According to its datasheet, the AT91SAM9X25 has an internal SRAM of 32Kbytes.
A program that is 77KB cannot be loaded into a memory that is only 32KB.

A program that large needs to be loaded and executed out of the external DRAM.
How to flash SAMA5D4 Xplained usb bare metal examples?
SAMA5D2 xplained start application bare metal (without os)
for solutions.

Posts: 3
Joined: Fri Jan 26, 2018 9:25 am

Re: AT91SAM9X25 boot problem

Mon Jan 29, 2018 2:18 am

Thanks for your answer.

An example is downloaded from ... sam9x25-ek.
"SAM9X25-EK IAR Software Package for EWARM 1/2/2017 10:57:15 PM 17MB"

and memory address is... I think I refer to this.

/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
/*-Memory Regions-*/
define symbol __ICFEDIT_region_DDRAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_DDRAM_end__ = 0x21FFFFFF;
define symbol __ICFEDIT_region_RAM_start__ = 0x300000;
define symbol __ICFEDIT_region_RAM_end__ = 0x307FFF;
define symbol __ICFEDIT_size_startup__ = 0x100;
define symbol __ICFEDIT_size_vectors__ = 0x100;
define symbol __ICFEDIT_size_cstack__ = 0x4000;
define symbol __ICFEDIT_size_sysstack__ = 0x60;
define symbol __ICFEDIT_size_irqstack__ = 0x60;
define symbol __ICFEDIT_size_heap__ = 0x0;
Location: USA
Posts: 1590
Joined: Thu Apr 19, 2007 10:15 pm

Re: AT91SAM9X25 boot problem

Mon Jan 29, 2018 7:18 am

Mulsome wrote:and memory address is... I think I refer to this.
No, that's just symbol definitions for both types for memory.
You need to report which type of memory or the actual link address for the program that you built.
Is there a map file generated during the link phase of the build?

Since you have the Atmel/Microchip Software Package, did you experiment with both versions of the 'Getting Started' example?
Your response above indicates that you didn't learn the difference between the two versions. (E.G. the C source code doesn't change, so what's different?)

Posts: 3
Joined: Fri Jan 26, 2018 9:25 am

Re: AT91SAM9X25 boot problem

Wed Jan 31, 2018 10:04 am

Sorry for the late reply.

icf file is like below

Code: Select all

/*###ICF### Section handled by ICF editor, don't touch! ****/
/*-Editor annotation file-*/
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */
define symbol __ICFEDIT_intvec_start__ 		 = 0x00000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_DDRAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_DDRAM_end__   = 0x21FFFFFF;
define symbol __ICFEDIT_region_RAM_start__   = 0x00300000;
define symbol __ICFEDIT_region_RAM_end__     = 0x003FFFFF;
define symbol __ICFEDIT_size_startup__  = 0x100;
define symbol __ICFEDIT_size_vectors__  = 0x100;
define symbol __ICFEDIT_size_cstack__   = 0x4000;
define symbol __ICFEDIT_size_sysstack__ = 0x60;
define symbol __ICFEDIT_size_irqstack__ = 0x60;
define symbol __ICFEDIT_size_heap__     = 0x0;
export symbol __ICFEDIT_region_DDRAM_start__;
export symbol __ICFEDIT_region_DDRAM_end__;
export symbol __ICFEDIT_region_RAM_start__;
export symbol __ICFEDIT_region_RAM_end__;
export symbol __ICFEDIT_size_startup__;
export symbol __ICFEDIT_size_vectors__;
export symbol __ICFEDIT_size_cstack__;
export symbol __ICFEDIT_size_sysstack__;
export symbol __ICFEDIT_size_irqstack__;
export symbol __ICFEDIT_size_heap__;
/**** End of ICF editor section. ###ICF###*/

define memory mem with size = 4G;
define region STA_region =   mem:[from __ICFEDIT_region_DDRAM_start__ size __ICFEDIT_size_startup__];
define region DDRAM_region = mem:[from __ICFEDIT_region_DDRAM_start__+__ICFEDIT_size_startup__ to __ICFEDIT_region_DDRAM_end__];
define region VEC_region =   mem:[from __ICFEDIT_region_RAM_start__ size __ICFEDIT_size_vectors__];
define region RAM_region =   mem:[from __ICFEDIT_region_RAM_start__+__ICFEDIT_size_vectors__ to __ICFEDIT_region_RAM_end__];

define block CSTACK    with alignment = 8, size = __ICFEDIT_size_cstack__   { };
define block SYS_STACK with alignment = 8, size = __ICFEDIT_size_sysstack__ { };
define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };
define block HEAP      with alignment = 8, size = __ICFEDIT_size_heap__     { };

initialize by copy { section .vectors };
do not initialize  { section .noinit };

place at address mem:__ICFEDIT_intvec_start__ {section .intvec };

place in STA_region { section .cstartup };
place in VEC_region { section .vectors };
place in DDRAM_region { readonly };
place in DDRAM_region { zeroinit };
place in DDRAM_region { readwrite };
place in DDRAM_region { block IRQ_STACK, block SYS_STACK, block CSTACK, block HEAP };

and map file is like below.

Code: Select all

# IAR ELF Linker V7.70.1.11437/W32 for ARM                31/Jan/2018  16:55:10
# Copyright 2007-2016 IAR Systems AB.
#    Output file  =  
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\bin\ddram.out
#    Map file     =  
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj\
#    Command line =  
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libboard_sam9xx5-ek\lib\libboard_sam9x25_ek_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libchip_sam9xx5\lib\libchip_sam9x25_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libnandflash\lib\libnandflash_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libpmecc\lib\libpmecc_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libsdmmc\lib\libsdmmc_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\libraries\libspiflash\lib\libspiflash_ewarm_dbg.a
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj\main.o
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj\MiniIp.o
#        --redirect _Printf=_PrintfSmall --redirect _Scanf=_ScanfSmall -o
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\bin\ddram.out
#        --map
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj\
#        --config
#        C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\sram.icf
#        --remarks --entry resetHandler --vfe


CppFlavor       = *
__SystemLibrary = DLib


"P1":  place in [from 0x20000000 to 0x200000ff] { section .cstartup };
"P2":  place in [from 0x00300000 to 0x003000ff] { section .vectors };
"P3":  place in [from 0x20000100 to 0x21ffffff] { ro };
"P4":  place in [from 0x20000100 to 0x21ffffff] { zi };
"P5":  place in [from 0x20000100 to 0x21ffffff] { rw };
"P6":  place in [from 0x20000100 to 0x21ffffff] {
          block IRQ_STACK, block SYS_STACK, block CSTACK, block HEAP };
initialize by copy { section .vectors };

  Section             Kind        Address     Size  Object
  -------             ----        -------     ----  ------
"P2":                                         0x98
  P2-1                         0x00300000     0x98  <Init block>
    .vectors          inited   0x00300000     0x98  board_cstartup_iar.o [4]
                             - 0x00300098     0x98

"P1":                                         0x44
  .cstartup           ro code  0x20000000     0x44  board_cstartup_iar.o [4]
                             - 0x20000044     0x44

"P3-P6", part 1 of 3:                      0x13280
  SAM9X5-EK           ro code  0x20000100    0xc7c  RawNandFlash.o [6]
  SAM9X5-EK           ro code  0x20000d7c    0x2e4  NandFlashModel.o [6]
  SAM9X25             ro code  0x20001060    0x374  pio.o [5]
  SAM9X5-EK           ro code  0x200013d4     0xe8  NandFlashDma.o [6]
  .text               ro code  0x200014bc     0x3c  printf.o [3]
  .text               ro code  0x200014f8     0x38  assert.o [3]
  SAM9X5-EK           ro code  0x20001530    0x450  NandFlashOnfi.o [6]
  SAM9X5-EK           ro code  0x20001980     0x3c  pmecc.o [7]
  .text               ro code  0x200019bc    0x1a8  I32DivMod.o [8]
  .text               ro code  0x20001b64     0xd4  ABImemcpy.o [8]
  SAM9X25             ro code  0x20001c38     0x64  pmc.o [5]
  SAM9X25-EK          ro code  0x20001c9c    0x46c  dmad.o [4]
  .text               ro code  0x20002108    0x820  xprintfsmall.o [3]
  .text               ro code  0x20002928      0x8  abort.o [3]
  .text               ro code  0x20002930      0x4  IntDivZer.o [8]
  SAM9X25             ro code  0x20002934    0x3a8  dmac.o [5]
  .text               ro code  0x20002cdc     0x20  strchr.o [8]
  .text               ro code  0x20002cfc     0x54  strlen.o [8]
  .text               ro code  0x20002d50     0x94  memchr.o [8]
  .text               ro code  0x20002de4     0x14  XXexit.o [8]
  SAM9X25-EK          ro code  0x20002df8    0xbfc  macb.o [4]
  SAM9X25             ro code  0x200039f4    0x3ac  emac.o [5]
  SAM9X25             ro code  0x20003da0     0x64  rstc.o [5]
  SOFTPACK            ro code  0x20003e04    0x74c  main.o [1]
  SAM9X25-EK          ro code  0x20004550     0xa4  led.o [4]
  SAM9X25-EK          ro code  0x200045f4    0x574  emacd.o [4]
  SAM9X25             ro code  0x20004b68     0xa8  pit.o [5]
  SAM9X25-EK          ro code  0x20004c10     0x88  timetick.o [4]
  SAM9X5-EK           ro code  0x20004c98    0x3b8  SkipBlockNandFlash.o [6]
  .text               ro code  0x20005050      0x8  ABImemclr4.o [8]
  SAM9X25             ro code  0x20005058      0xc  wdt.o [5]
  SAM9X25             ro code  0x20005064     0x1c  cp15.o [5]
  SAM9X25-EK          ro code  0x20005080     0xb0  board_memories.o [4]
  SAM9X25             ro code  0x20005130     0x7c  aic.o [5]
  SAM9X25             ro code  0x200051ac    0x15c  tc.o [5]
  SAM9X25-EK          ro code  0x20005308    0x1b4  dbgu_console.o [4]
  .text               ro code  0x200054bc     0x24  uwrite4.o [8]
  .text               ro code  0x200054e0     0x20  uread4.o [8]
  SAM9X5-EK           ro code  0x20005500     0x1c  NandSpareScheme.o [6]
  SAM9X5-EK           ro code  0x2000551c    0x118  EccNandFlash.o [6]
  .text               ro code  0x20005634     0x78  ABImemset.o [8]
  .text               ro code  0x200056ac     0x38  ABImemset48.o [8]
  .CP15_ReadControl   ro code  0x200056e4      0xc  cp15_asm_iar.o [5]
  .CP15_WriteControl  ro code  0x200056f0     0x28  cp15_asm_iar.o [5]
  .rodata             const    0x20005718    0x414  main.o [1]
  SAM9X25-EK          ro code  0x20005b2c    0x30c  board_lowlevel.o [4]
  .rodata             const    0x20005e38    0x2c4  NandFlashModelList.o [6]
  Initializer bytes   const    0x200060fc     0x98  <for P2-1>
  .rodata             const    0x20006194     0x84  NandSpareScheme.o [6]
  .rodata             const    0x20006218     0x84  NandSpareScheme.o [6]
  .rodata             const    0x2000629c     0x84  NandSpareScheme.o [6]
  .rodata             const    0x20006320     0x84  NandSpareScheme.o [6]
  .rodata             const    0x200063a4     0x7c  RawNandFlash.o [6]
  .rodata             const    0x20006420     0x7c  dmad.o [4]
  .rodata             const    0x2000649c     0x78  tc.o [5]
  .rodata             const    0x20006514     0x78  pmc.o [5]
  .rodata             const    0x2000658c     0x78  dmac.o [5]
  .rodata             const    0x20006604     0x48  SkipBlockNandFlash.o [6]
  .rodata             const    0x2000664c     0x48  tc.o [5]
  .text               ro code  0x20006694     0x3c  zero_init3.o [8]
  .rodata             const    0x200066d0     0x30  SkipBlockNandFlash.o [6]
  .rodata             const    0x20006700     0x30  SkipBlockNandFlash.o [6]
  .text               ro code  0x20006730     0x30  copy_init3.o [8]
  .text               ro code  0x20006760     0x2c  cmain.o [8]
  .text               ro code  0x2000678c      0x8  low_level_init.o [3]
  .text               ro code  0x20006794     0x28  data_init.o [8]
  .text               ro code  0x200067bc      0x4  exit.o [3]
  .text               ro code  0x200067c0     0x10  cexit.o [8]
  .rodata             const    0x200067d0     0x24  RawNandFlash.o [6]
  .text               ro code  0x200067f4     0x24  xprout.o [3]
  .iar.init_table     const    0x20006818     0x24  - Linker created -
  .rodata             const    0x2000683c     0x20  NandFlashModel.o [6]
  .rodata             const    0x2000685c     0x1c  macb.o [4]
  .rodata             const    0x20006878     0x1c  macb.o [4]
  .rodata             const    0x20006894     0x1c  macb.o [4]
  .rodata             const    0x200068b0     0x1c  macb.o [4]
  .rodata             const    0x200068cc     0x1c  macb.o [4]
  .rodata             const    0x200068e8     0x1c  macb.o [4]
  .rodata             const    0x20006904     0x1c  macb.o [4]
  .rodata             const    0x20006920     0x1c  macb.o [4]
  .rodata             const    0x2000693c     0x1c  NandFlashModel.o [6]
  .rodata             const    0x20006958     0x1c  NandFlashModel.o [6]
  .rodata             const    0x20006974     0x1c  NandFlashModel.o [6]
  .rodata             const    0x20006990     0x1c  NandFlashModel.o [6]
  .rodata             const    0x200069ac     0x1c  dmac.o [5]
  .rodata             const    0x200069c8     0x18  led.o [4]
  .rodata             const    0x200069e0     0x18  macb.o [4]
  .rodata             const    0x200069f8     0x18  macb.o [4]
  .rodata             const    0x20006a10     0x18  macb.o [4]
  .rodata             const    0x20006a28     0x18  NandFlashModel.o [6]
  .rodata             const    0x20006a40     0x18  NandFlashModel.o [6]
  .rodata             const    0x20006a58     0x14  macb.o [4]
  .rodata             const    0x20006a6c     0x14  macb.o [4]
  .rodata             const    0x20006a80     0x14  NandFlashModel.o [6]
  .rodata             const    0x20006a94     0x14  RawNandFlash.o [6]
  .rodata             const    0x20006aa8     0x14  tc.o [5]
  .rodata             const    0x20006abc     0x10  macb.o [4]
  .rodata             const    0x20006acc     0x10  RawNandFlash.o [6]
  .rodata             const    0x20006adc     0x10  dmad.o [4]
  .rodata             const    0x20006aec      0xc  dbgu_console.o [4]
  .rodata             const    0x20006af8      0xc  pmc.o [5]
  .rodata             const    0x20006b04      0xc  dmac.o [5]
  .rodata             const    0x20006b10      0x8  dmac.o [5]
  .rodata             const    0x20006b18      0x4  led.o [4]
  .text               ro code  0x20006b1c      0x4  vectortrap.o [8]
  .rodata             const    0x20006b20      0x0  zero_init3.o [8]
  .rodata             const    0x20006b20      0x0  copy_init3.o [8]
  .data               rw data  0x20006b20   0xc850  main.o [1]
  .data               rw data  0x20013370      0xc  dbgu_console.o [4]
  .data               rw data  0x2001337c      0x4  dbgu_console.o [4]
                             - 0x20013380  0x13280

"P3-P6", part 2 of 3:                       0x4060
  IRQ_STACK                    0x20013380     0x60  <Block>
    IRQ_STACK         uninit   0x20013380     0x60  <Block tail>
  CSTACK                       0x200133e0   0x4000  <Block>
    CSTACK            uninit   0x200133e0   0x4000  <Block tail>
                             - 0x200173e0   0x4060

"P3-P6", part 3 of 3:                       0x110c
  .bss                zero     0x200173e0   0x10e0  main.o [1]
  .bss                zero     0x200184c0     0x14  NandFlashDma.o [6]
  .bss                zero     0x200184d4      0x4  timetick.o [4]
  .bss                zero     0x200184d8      0x4  NandFlashOnfi.o [6]
  .bss                zero     0x200184dc      0x4  pmecc.o [7]
  .bss                zero     0x200184e0      0x4  NandFlashDma.o [6]
  .bss                zero     0x200184e4      0x4  NandFlashDma.o [6]
  .bss                zero     0x200184e8      0x1  dbgu_console.o [4]
  .bss                zero     0x200184e9      0x1  NandFlashOnfi.o [6]
                             - 0x200184ea   0x110a


          Address     Size
          -------     ----
Zero (__iar_zero_init3)
    1 destination range, total size 0x110a:
          0x200173e0  0x110a

Copy (__iar_copy_init3)
    1 source range, total size 0x98:
          0x200060fc    0x98
    1 destination range, total size 0x98:
          0x00300000    0x98


    Module                ro code  rw code  ro data  rw data
    ------                -------  -------  -------  -------
C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj: [1]
    main.o                  1 868             1 044   55 600
    Total:                  1 868             1 044   55 600

command line: [2]

dl5E_aln.a: [3]
    abort.o                     8
    assert.o                   56
    exit.o                      4
    low_level_init.o            8
    printf.o                   60
    xprintfsmall.o          2 080
    xprout.o                   36
    Total:                  2 252

libboard_sam9x25_ek_ewarm_dbg.a: [4]
    board_cstartup_iar.o       68      152      152
    board_lowlevel.o          780
    board_memories.o          176
    dbgu_console.o            436                12       17
    dmad.o                  1 132               140
    emacd.o                 1 396
    led.o                     164                28
    macb.o                  3 068               352
    timetick.o                136                          4
    Total:                  7 356      152      684       21

libchip_sam9x25_ewarm_dbg.a: [5]
    aic.o                     124
    cp15.o                     28
    cp15_asm_iar.o             52
    dmac.o                    936               168
    emac.o                    940
    pio.o                     884
    pit.o                     168
    pmc.o                     100               132
    rstc.o                    100
    tc.o                      348               212
    wdt.o                      12
    Total:                  3 692               512

libnandflash_ewarm_dbg.a: [6]
    EccNandFlash.o            280
    NandFlashDma.o            232                         28
    NandFlashModel.o          740               212
    NandFlashModelList.o                        708
    NandFlashOnfi.o         1 104                          5
    NandSpareScheme.o          28               528
    RawNandFlash.o          3 196               196
    SkipBlockNandFlash.o      952               168
    Total:                  6 532             1 812       33

libpmecc_ewarm_dbg.a: [7]
    pmecc.o                    60                          4
    Total:                     60                          4

rt5E_al.a: [8]
    ABImemclr4.o                8
    ABImemcpy.o               212
    ABImemset.o               120
    ABImemset48.o              56
    I32DivMod.o               424
    IntDivZer.o                 4
    XXexit.o                   20
    cexit.o                    16
    cmain.o                    44
    copy_init3.o               48
    data_init.o                40
    memchr.o                  148
    strchr.o                   32
    strlen.o                   84
    uread4.o                   32
    uwrite4.o                  36
    vectortrap.o                4
    zero_init3.o               60
    Total:                  1 388

    Linker created                               36   16 480
    Grand Total:           23 148      152    4 088   72 138


Entry                      Address    Size  Type      Object
-----                      -------    ----  ----      ------
.iar.init_table$$Base   0x20006818           --   Gb  - Linker created -
.iar.init_table$$Limit  0x2000683c           --   Gb  - Linker created -
?main                   0x20006760          Code  Gb  cmain.o [8]
Abort_Handler           0x20006b1c          Code  Wk  vectortrap.o [8]
                        0x20005094    0x98  Code  Gb  board_memories.o [4]
BOARD_RemapRam          0x20005080    0x14  Code  Gb  board_memories.o [4]
CP15_EnableIcache       0x20005064    0x1c  Code  Gb  cp15.o [5]
CP15_ReadControl        0x200056e4          Code  Gb  cp15_asm_iar.o [5]
CP15_WriteControl       0x200056f0          Code  Gb  cp15_asm_iar.o [5]
CSTACK$$Base            0x200133e0           --   Gb  - Linker created -
CSTACK$$Limit           0x200173e0           --   Gb  - Linker created -
DBGU_Configure          0x20005308    0xe0  Code  Gb  dbgu_console.o [4]
DBGU_GetChar            0x20005444    0x50  Code  Gb  dbgu_console.o [4]
DBGU_PutChar            0x200053e8    0x5c  Code  Gb  dbgu_console.o [4]
DMAC_DisableChannel     0x200029f0    0x60  Code  Gb  dmac.o [5]
DMAC_EnableChannel      0x20002990    0x60  Code  Gb  dmac.o [5]
DMAC_EnableIt           0x20002934    0x30  Code  Gb  dmac.o [5]
DMAC_GetChannelStatus   0x20002a50    0x2c  Code  Gb  dmac.o [5]
DMAC_GetStatus          0x20002964    0x2c  Code  Gb  dmac.o [5]
DMAC_SetControlA        0x20002bf0    0x6c  Code  Gb  dmac.o [5]
DMAC_SetControlB        0x20002c5c    0x68  Code  Gb  dmac.o [5]
DMAC_SetDescriptorAddr  0x20002b50    0xa0  Code  Gb  dmac.o [5]
                        0x20002ae8    0x68  Code  Gb  dmac.o [5]
DMAC_SetSourceAddr      0x20002a7c    0x6c  Code  Gb  dmac.o [5]
DMAD_Handler            0x20001c9c   0x194  Code  Gb  dmad.o [4]
DMAD_IsTransferDone     0x20001e30    0xb8  Code  Gb  dmad.o [4]
                        0x20002000   0x100  Code  Gb  dmad.o [4]
DMAD_StartTransfer      0x20001ee8   0x118  Code  Gb  dmad.o [4]
EMACD_Handler           0x20004750   0x270  Code  Gb  emacd.o [4]
EMACD_Init              0x200049c0    0xa4  Code  Gb  emacd.o [4]
EMACD_InitTransfer      0x20004a64   0x104  Code  Gb  emacd.o [4]
EMACD_ResetRx           0x200046a0    0xb0  Code  Lc  emacd.o [4]
EMACD_ResetTx           0x200045f4    0xac  Code  Lc  emacd.o [4]
EMAC_BroadcastDisable   0x20003b50    0x2c  Code  Gb  emac.o [5]
EMAC_ClearRxStatus      0x20003c30     0x8  Code  Gb  emac.o [5]
EMAC_ClearStatistics    0x20003a80    0x10  Code  Gb  emac.o [5]
EMAC_ClearTxStatus      0x20003c20     0x8  Code  Gb  emac.o [5]
EMAC_Configure          0x20003abc     0x8  Code  Gb  emac.o [5]
EMAC_CpyAllEnable       0x20003b24    0x2c  Code  Gb  emac.o [5]
EMAC_DisableIt          0x20003c58     0x8  Code  Gb  emac.o [5]
EMAC_EnableIt           0x20003c50     0x8  Code  Gb  emac.o [5]
EMAC_FullDuplexEnable   0x20003af8    0x2c  Code  Gb  emac.o [5]
EMAC_GetConfigure       0x20003ac4     0x8  Code  Gb  emac.o [5]
EMAC_GetItMask          0x20003c68     0x8  Code  Gb  emac.o [5]
EMAC_GetItStatus        0x20003c60     0x8  Code  Gb  emac.o [5]
EMAC_GetRxStatus        0x20003c28     0x8  Code  Gb  emac.o [5]
EMAC_GetTxStatus        0x20003c18     0x8  Code  Gb  emac.o [5]
EMAC_IsIdle             0x20003c08    0x10  Code  Gb  emac.o [5]
EMAC_ManagementEnable   0x20003a54    0x2c  Code  Gb  emac.o [5]
EMAC_NetworkControl     0x200039f4     0x8  Code  Gb  emac.o [5]
EMAC_PHYData            0x20003cd8    0x1c  Code  Gb  emac.o [5]
EMAC_PHYMaintain        0x20003c70    0x68  Code  Gb  emac.o [5]
EMAC_RMIIEnable         0x20003d48    0x2c  Code  Gb  emac.o [5]
EMAC_ReadPhy            0x20002e4c    0x78  Code  Lc  macb.o [4]
EMAC_ReceiveEnable      0x200039fc    0x2c  Code  Gb  emac.o [5]
EMAC_SetAddress         0x20003cf4    0x54  Code  Gb  emac.o [5]
EMAC_SetClock           0x20003b7c    0x7c  Code  Gb  emac.o [5]
EMAC_SetRxQueue         0x20003c38     0xc  Code  Gb  emac.o [5]
EMAC_SetSpeed           0x20003acc    0x2c  Code  Gb  emac.o [5]
EMAC_SetTxQueue         0x20003c44     0xc  Code  Gb  emac.o [5]
                        0x20003a90    0x2c  Code  Gb  emac.o [5]
                        0x20003d74    0x2c  Code  Gb  emac.o [5]
EMAC_TransmitEnable     0x20003a28    0x2c  Code  Gb  emac.o [5]
EMAC_WaitPhy            0x20002df8    0x54  Code  Lc  macb.o [4]
EMAC_WritePhy           0x20002ec4    0x74  Code  Lc  macb.o [4]
                        0x2000551c    0x88  Code  Gb  EccNandFlash.o [6]
EccNandFlash_ReadPage   0x200055a4    0x48  Code  Gb  EccNandFlash.o [6]
EccNandFlash_WritePage  0x200055ec    0x48  Code  Gb  EccNandFlash.o [6]
EraseBlock              0x200003e0    0x90  Code  Lc  RawNandFlash.o [6]
FIQ_Handler             0x20006b1c          Code  Wk  vectortrap.o [8]
GetDelayInTicks         0x20004c68    0x20  Code  Gb  timetick.o [4]
GetTickCount            0x20004c88     0xc  Code  Gb  timetick.o [4]
IRQ_ConfigureIT         0x20005130    0x4c  Code  Gb  aic.o [5]
IRQ_DisableIT           0x20005194    0x18  Code  Gb  aic.o [5]
IRQ_EnableIT            0x2000517c    0x18  Code  Gb  aic.o [5]
IRQ_STACK$$Base         0x20013380           --   Gb  - Linker created -
IRQ_STACK$$Limit        0x200133e0           --   Gb  - Linker created -
ISR_Emac                0x20003e28     0x8  Code  Lc  main.o [1]
IsOperationComplete     0x20000234    0x38  Code  Lc  RawNandFlash.o [6]
LED_Configure           0x20004550    0x38  Code  Gb  led.o [4]
LED_Toggle              0x20004588    0x64  Code  Gb  led.o [4]
LoadInt                 0x200026c0    0x90  Code  Lc  xprintfsmall.o [3]
LowLevelInit            0x20005b38   0x300  Code  Wk  board_lowlevel.o [4]
MACB_AutoNegotiate      0x200033f4   0x404  Code  Gb  macb.o [4]
MACB_DumpRegisters      0x2000305c   0x1c4  Code  Gb  macb.o [4]
MACB_FindValidPhy       0x20002f38   0x124  Code  Gb  macb.o [4]
MACB_GetLinkSpeed       0x200037f8   0x1c4  Code  Gb  macb.o [4]
MACB_Init               0x20003220    0x18  Code  Gb  macb.o [4]
MACB_InitPhy            0x200032f4   0x100  Code  Gb  macb.o [4]
MACB_ResetPhy           0x20003238    0xbc  Code  Gb  macb.o [4]
MacAddress              0x20006b9c     0x8  Data  Lc  main.o [1]
NandEbiDetect           0x20001728   0x224  Code  Gb  NandFlashOnfi.o [6]
                        0x200013d4    0xbc  Code  Gb  NandFlashDma.o [6]
NandFlashIsDmaActived   0x20001490    0x20  Code  Gb  NandFlashDma.o [6]
NandFlashModel_Find     0x20000d7c   0x1d0  Code  Gb  NandFlashModel.o [6]
                        0x20000ff0     0xc  Code  Gb  NandFlashModel.o [6]
                        0x20000fcc    0x24  Code  Gb  NandFlashModel.o [6]
                        0x20001018    0x20  Code  Gb  NandFlashModel.o [6]
                        0x20000f74    0x28  Code  Gb  NandFlashModel.o [6]
                        0x20000f9c    0x30  Code  Gb  NandFlashModel.o [6]
                        0x20000ffc     0x8  Code  Gb  NandFlashModel.o [6]
                        0x20001004    0x14  Code  Gb  NandFlashModel.o [6]
                        0x20000f6c     0x8  Code  Gb  NandFlashModel.o [6]
                        0x20001038    0x28  Code  Gb  NandFlashModel.o [6]
NandGetEccStatus        0x20001968     0xc  Code  Gb  NandFlashOnfi.o [6]
NandGetOnfiPageParam    0x20001634    0xf4  Code  Gb  NandFlashOnfi.o [6]
NandIsOnficompatible    0x2000159c    0x98  Code  Gb  NandFlashOnfi.o [6]
                        0x20005500    0x10  Code  Gb  NandSpareScheme.o [6]
                        0x20005510     0xc  Code  Gb  NandSpareScheme.o [6]
NandSwitchEcc           0x2000194c    0x1c  Code  Gb  NandFlashOnfi.o [6]
OnfiPageParameter       0x20006b88    0x14  Data  Lc  main.o [1]
PIO_Clear               0x20001358    0x10  Code  Gb  pio.o [5]
PIO_Configure           0x20001234   0x114  Code  Gb  pio.o [5]
PIO_Get                 0x20001368    0x48  Code  Gb  pio.o [5]
                        0x200013b0    0x24  Code  Gb  pio.o [5]
PIO_Set                 0x20001348    0x10  Code  Gb  pio.o [5]
PIO_SetInput            0x20001180    0x58  Code  Lc  pio.o [5]
PIO_SetOutput           0x200011d8    0x5c  Code  Lc  pio.o [5]
PIO_SetPeripheralA      0x20001060    0x50  Code  Lc  pio.o [5]
PIO_SetPeripheralB      0x200010b0    0x48  Code  Lc  pio.o [5]
PIO_SetPeripheralC      0x200010f8    0x48  Code  Lc  pio.o [5]
PIO_SetPeripheralD      0x20001140    0x40  Code  Lc  pio.o [5]
PIT_Enable              0x20004bb0    0x20  Code  Gb  pit.o [5]
PIT_EnableIT            0x20004bd0    0x20  Code  Gb  pit.o [5]
PIT_GetPIVR             0x20004c00    0x10  Code  Gb  pit.o [5]
PIT_GetStatus           0x20004bf0    0x10  Code  Gb  pit.o [5]
PIT_Init                0x20004b68    0x48  Code  Gb  pit.o [5]
PIT_IrqHandler          0x20003e30    0x24  Code  Lc  main.o [1]
PMC_EnablePeripheral    0x20001c38    0x5c  Code  Gb  pmc.o [5]
PMECC_Disable           0x2000198c    0x2c  Code  Gb  pmecc.o [7]
                        0x20001980     0xc  Code  Gb  pmecc.o [7]
Prefetch_Handler        0x20006b1c          Code  Wk  vectortrap.o [8]
RSTC_ExtReset           0x20003dd4    0x18  Code  Gb  rstc.o [5]
RSTC_GetNrstLevel       0x20003dec    0x18  Code  Gb  rstc.o [5]
RSTC_SetExtResetLength  0x20003da0    0x34  Code  Gb  rstc.o [5]
                        0x20000be0    0x54  Code  Gb  RawNandFlash.o [6]
                        0x20000ac8    0xa8  Code  Gb  RawNandFlash.o [6]
RawNandFlash_ReadId     0x20000b90    0x50  Code  Gb  RawNandFlash.o [6]
RawNandFlash_ReadPage   0x20000c34    0x48  Code  Gb  RawNandFlash.o [6]
RawNandFlash_Reset      0x20000b70    0x20  Code  Gb  RawNandFlash.o [6]
RawNandFlash_WritePage  0x20000c7c    0xec  Code  Gb  RawNandFlash.o [6]
ReadData                0x20000344    0x9c  Code  Lc  RawNandFlash.o [6]
ReadPage                0x20000470   0x1d0  Code  Lc  RawNandFlash.o [6]
Region$$Table$$Base     0x20006818           --   Gb  - Linker created -
Region$$Table$$Limit    0x2000683c           --   Gb  - Linker created -
SWI_Handler             0x20006b1c          Code  Wk  vectortrap.o [8]
                        0x20004c98    0xf8  Code  Gb  SkipBlockNandFlash.o [6]
                        0x20004e78    0xec  Code  Gb  SkipBlockNandFlash.o [6]
                        0x20004d90    0xe8  Code  Gb  SkipBlockNandFlash.o [6]
                        0x20004f64    0x74  Code  Gb  SkipBlockNandFlash.o [6]
                        0x20004fe4    0x6c  Code  Gb  SkipBlockNandFlash.o [6]
TC0_IrqHandler          0x20003e04    0x24  Code  Lc  main.o [1]
TC_Configure            0x200051ac    0x50  Code  Gb  tc.o [5]
TC_FindMckDivisor       0x20005238    0xc4  Code  Gb  tc.o [5]
TC_Start                0x200051fc    0x3c  Code  Gb  tc.o [5]
TimeTick_Configure      0x20004c28    0x40  Code  Gb  timetick.o [4]
TimeTick_Increment      0x20004c10    0x18  Code  Gb  timetick.o [4]
Undefined_Handler       0x20006b1c          Code  Wk  vectortrap.o [8]
WDT_Disable             0x20005058     0xc  Code  Gb  wdt.o [5]
WaitReady               0x200001ec    0x48  Code  Lc  RawNandFlash.o [6]
WriteColumnAddress      0x20000100    0x90  Code  Lc  RawNandFlash.o [6]
WriteData               0x2000026c    0xd8  Code  Lc  RawNandFlash.o [6]
WritePage               0x20000640   0x160  Code  Lc  RawNandFlash.o [6]
WritePageWithPmecc      0x200007a0   0x328  Code  Lc  RawNandFlash.o [6]
WriteRowAddress         0x20000190    0x5c  Code  Lc  RawNandFlash.o [6]
_LitobSmall             0x20002750   0x178  Code  Lc  xprintfsmall.o [3]
_NandReadStatus         0x20001530    0x6c  Code  Lc  NandFlashOnfi.o [6]
_PrintfSmall            0x20002108   0x5b8  Code  Gb  xprintfsmall.o [3]
_Prout                  0x200067f4    0x24  Code  Gb  xprout.o [3]
_PutcharsSmall          0x200028c8    0x58  Code  Lc  xprintfsmall.o [3]
__ICFEDIT_region_DDRAM_end__ {Abs}
                        0x21ffffff          Data  Gb  command line/config [2]
__ICFEDIT_region_DDRAM_start__ {Abs}
                        0x20000000          Data  Gb  command line/config [2]
__ICFEDIT_region_RAM_end__ {Abs}
                        0x003fffff          Data  Gb  command line/config [2]
__ICFEDIT_region_RAM_start__ {Abs}
                        0x00300000          Data  Gb  command line/config [2]
__ICFEDIT_size_cstack__ {Abs}
                        0x00004000          Data  Gb  command line/config [2]
__ICFEDIT_size_heap__ {Abs}
                        0x00000000          Data  Gb  command line/config [2]
__ICFEDIT_size_irqstack__ {Abs}
                        0x00000060          Data  Gb  command line/config [2]
__ICFEDIT_size_startup__ {Abs}
                        0x00000100          Data  Gb  command line/config [2]
__ICFEDIT_size_sysstack__ {Abs}
                        0x00000060          Data  Gb  command line/config [2]
__ICFEDIT_size_vectors__ {Abs}
                        0x00000100          Data  Gb  command line/config [2]
__aeabi_assert          0x200014f8    0x18  Code  Gb  assert.o [3]
__aeabi_idiv            0x200019bc          Code  Gb  I32DivMod.o [8]
__aeabi_idiv0           0x20002930          Code  Gb  IntDivZer.o [8]
__aeabi_idivmod         0x200019bc          Code  Gb  I32DivMod.o [8]
__aeabi_memclr4         0x20005050          Code  Gb  ABImemclr4.o [8]
__aeabi_memcpy          0x20001b64          Code  Gb  ABImemcpy.o [8]
__aeabi_memcpy4         0x20001b88          Code  Gb  ABImemcpy.o [8]
__aeabi_memcpy8         0x20001b88          Code  Gb  ABImemcpy.o [8]
__aeabi_memset          0x20005634          Code  Gb  ABImemset.o [8]
__aeabi_uidiv           0x200019e8          Code  Gb  I32DivMod.o [8]
__aeabi_uidivmod        0x200019e8          Code  Gb  I32DivMod.o [8]
__aeabi_uread4          0x200054e0          Code  Gb  uread4.o [8]
__aeabi_uwrite4         0x200054bc          Code  Gb  uwrite4.o [8]
__cmain                 0x20006760          Code  Gb  cmain.o [8]
__exit                  0x20002de4          Code  Gb  XXexit.o [8]
__iar_Memchr            0x20002d50          Code  Gb  memchr.o [8]
__iar_Memset            0x20005634          Code  Gb  ABImemset.o [8]
__iar_Memset4_word      0x200056ac          Code  Gb  ABImemset48.o [8]
__iar_Memset8_word      0x200056ac          Code  Gb  ABImemset48.o [8]
__iar_Memset_word       0x20005640          Code  Gb  ABImemset.o [8]
__iar_Strchr            0x20002cdc          Code  Gb  strchr.o [8]
__iar_copy_init3        0x20006731    0x30  Code  Gb  copy_init3.o [8]
__iar_data_init3        0x20006795    0x28  Code  Gb  data_init.o [8]
__iar_zero_init3        0x20006695    0x3c  Code  Gb  zero_init3.o [8]
__low_level_init        0x2000678c     0x8  Code  Gb  low_level_init.o [3]
_bConsoleIsInitialized  0x200184e8     0x1  Data  Gb  dbgu_console.o [4]
_call_main              0x20006774          Code  Gb  cmain.o [8]
_dwTickCount            0x200184d4     0x4  Data  Lc  timetick.o [4]
_exit                   0x200067c0          Code  Gb  cexit.o [8]
_main                   0x2000677c          Code  Gb  cmain.o [8]
_nandPerformanceTest    0x20003e54   0x19c  Code  Lc  main.o [1]
abort                   0x20002928     0x8  Code  Gb  abort.o [3]
bLed1Active             0x20006b55     0x1  Data  Gb  main.o [1]
block                   0x20006b20     0x2  Data  Lc  main.o [1]
currentEcc              0x200184e9     0x1  Data  Gb  NandFlashOnfi.o [6]
dbgpDbgu                0x20013370     0xc  Data  Lc  dbgu_console.o [4]
defaultFiqHandler       0x20005b30     0x4  Code  Gb  board_lowlevel.o [4]
defaultIrqHandler       0x20005b34     0x4  Code  Gb  board_lowlevel.o [4]
defaultSpuriousHandler  0x20005b2c     0x4  Code  Gb  board_lowlevel.o [4]
dmaNandTxDesc           0x200184c0    0x14  Data  Lc  NandFlashDma.o [6]
emacPins                0x20005aa8    0x84  Data  Lc  main.o [1]
emacRstPins             0x20005a84    0x24  Data  Lc  main.o [1]
exit                    0x200067bc     0x4  Code  Gb  exit.o [3]
gEmacd                  0x20006b28    0x2c  Data  Lc  main.o [1]
gMacb                   0x20006ba4     0xc  Data  Lc  main.o [1]
gRxDs                   0x20006d30    0x80  Data  Lc  main.o [1]
gTxCbs                  0x20006bb0    0x80  Data  Lc  main.o [1]
gTxDs                   0x20006c30   0x100  Data  Lc  main.o [1]
irqHandler              0x00300034          Code  Gb  board_cstartup_iar.o [4]
main                    0x20003ff4   0x4ac  Code  Gb  main.o [1]
memchr                  0x20002d50          Code  Gb  memchr.o [8]
nandDmaTxChannel        0x200184e4     0x4  Data  Lc  NandFlashDma.o [6]
nandFlashModelList      0x20005e38   0x2c4  Data  Gb  NandFlashModelList.o [6]
nandSpareScheme2048     0x2000629c    0x84  Data  Gb  NandSpareScheme.o [6]
nandSpareScheme256      0x20006194    0x84  Data  Gb  NandSpareScheme.o [6]
nandSpareScheme4096     0x20006320    0x84  Data  Gb  NandSpareScheme.o [6]
nandSpareScheme512      0x20006218    0x84  Data  Gb  NandSpareScheme.o [6]
nfBusWidth              0x20006b54     0x1  Data  Lc  main.o [1]
nfCePin                 0x20005a6c     0xc  Data  Lc  main.o [1]
nfRbPin                 0x20005a78     0xc  Data  Lc  main.o [1]
numLeds                 0x20006b18     0x4  Data  Lc  led.o [4]
pCurrentDma             0x200184e0     0x4  Data  Lc  NandFlashDma.o [6]
pCurrentOnfiPageParam   0x200184d8     0x4  Data  Lc  NandFlashOnfi.o [6]
                        0x200184dc     0x4  Data  Lc  pmecc.o [7]
pDbgPort                0x2001337c     0x4  Data  Lc  dbgu_console.o [4]
pPinsNf                 0x20005a48    0x24  Data  Lc  main.o [1]
pRxBuffer               0x20012b70   0x800  Data  Lc  main.o [1]
pTxBuffer               0x20006db0  0xbdc0  Data  Lc  main.o [1]
pageBuffer              0x200173e0  0x10e0  Data  Lc  main.o [1]
pageSize                0x20006b24     0x4  Data  Lc  main.o [1]
pinsDbgu                0x20006aec     0xc  Data  Lc  dbgu_console.o [4]
pinsLeds                0x200069c8    0x18  Data  Lc  led.o [4]
printf                  0x200014bc    0x3c  Code  Gb  printf.o [3]
putchar                 0x200054a0    0x1c  Code  Wk  dbgu_console.o [4]
resetHandler            0x20000000          Code  Gb  board_cstartup_iar.o [4]
resetVector             0x00300000          Code  Gb  board_cstartup_iar.o [4]
skipBlockNf             0x20006b58    0x30  Data  Lc  main.o [1]
strchr                  0x20002cdc          Code  Gb  strchr.o [8]
strlen                  0x20002cfc          Code  Gb  strlen.o [8]

[1] = C:\Temp\sam9x25_softpack_1.0_for_ewarm_5.50_6.21\arm\examples\Atmel\sam9x25-ek\examples_storage\smc_nandflash_test\build\ewarm_550\ddram\obj
[2] = command line
[3] = dl5E_aln.a
[4] = libboard_sam9x25_ek_ewarm_dbg.a
[5] = libchip_sam9x25_ewarm_dbg.a
[6] = libnandflash_ewarm_dbg.a
[7] = libpmecc_ewarm_dbg.a
[8] = rt5E_al.a

  23 148 bytes of readonly  code memory
     152 bytes of readwrite code memory
   4 088 bytes of readonly  data memory
  72 138 bytes of readwrite data memory

Errors: none
Warnings: none

I did not see the atmel example.

Do you know where you can download it?

*My goal is to have a large amount of bin files run when the board is powered on.

thank you for your interest.
Location: USA
Posts: 1590
Joined: Thu Apr 19, 2007 10:15 pm

Re: AT91SAM9X25 boot problem

Thu Feb 01, 2018 1:48 am

Mulsome wrote:and map file is like below.
So what did you learn from it?

I see .text sections assigned to the 0x20000000 address region, which is implemented by the external DRAM of the board.
The SAM-BA 'send boot file' command that you tried to use is for storing a (second-stage boot) program that would execute in the internal SRAM, i.e. the 0x00300000 address region.
Even if your program was small enough to fit, it would still fail to execute properly when loaded at the wrong memory region.

Mulsome wrote:I did not see the atmel example.
How hard did you look?
Mulsome wrote:Do you know where you can download it?
It's in the URL that you previously mentioned.

Mulsome wrote:*My goal is to have a large amount of bin files run when the board is powered on.
First learn the difference between the two version of the 'getting-started' example, and then how to load one program by studying those two topics mentioned previously.
Otherwise your goal is only attainable with a lot of work or an operating system.


Return to “SAM9 ARM9 MPU”

Who is online

Users browsing this forum: Bing [Bot] and 1 guest