Skip to main content
christopher23
Associate II
October 20, 2010
Question

uClinux on STM3210E-Eval + STM32F103ZE

  • October 20, 2010
  • 14 replies
  • 2473 views
Posted on October 20, 2010 at 11:49

uClinux on STM3210E-Eval + STM32F103ZE

    This topic has been closed for replies.

    14 replies

    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    i think it has 512kb but when i start uclinux there are the lines

    Memory: 1MB 0MB = 1MB total

    Memory: 980KB available (336k code, 53k data, 8k init)

    what does this meen?

    and how can i fix the problem? i used everything 1:1 what st used in their guide and i dont understand why there comes an error like this.

    you have an idea?

    e:

    end now when i run ''ls''

    ls invoked oom-killer: gfp_mask=0x40d0, order=1, oomkilladj=0

    Mem-info:

    DMA per-cpu:

    CPU    0: hi:    0, btch:   1 usd:   0

    Active:63 inactive:0 dirty:0 writeback:0 unstable:0

     free:33 slab:0 mapped:0 pagetables:0 bounce:0

    DMA free:132kB min:128kB low:160kB high:192kB active:252kB inactive:0kB present:

    1016kB pages_scanned:0 all_unreclaimable? no

    lowmem_reserve[]: 0 0 0

    DMA: 1*4kB 0*8kB 0*16kB 0*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB

    0*4096kB = 132kB

    63 total pagecache pages

    256 pages of RAM

    44 free pages

    9 reserved pages

    0 slab pages

    0 pages shared

    0 pages swap cached

    Out of memory: kill process 18 (ls) score 3 or a child

    Killed process 18 (ls)

    but now uclinux run since 15min (long as never before) and throws error when something dont (see above).

    why it is so unstable and unpredictable?

    e2:

    and now while writing ''e'' the board ''dies'' with:

    / # CPU: 0    Not tainted  (2.6.26-uc0 #1)

    pc : [<00000000>]    lr : [<08032399>]    psr: 6000000b

    sp : 6802ff00  ip : 00000000  fp : 00000000

    r10: 00000000  r9 : 00000000  r8 : 6802ff48

    r7 : 00000000  r6 : 1dcd4400  r5 : 20004658  r4 : 6802ff08

    r3 : 00000000  r2 : 1dcd4400  r1 : 20003600  r0 : 6802ff08

    Flags: nZCv  IRQs on  Mode UK11_26  ISA ARM  Segment kernel

    xacc
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    How much external RAM comes with that board?

    I know my 'clone' of the STM3210E-Eval only has 512KB external.

    If I saw those numbers, it would likely be a memory overrun as the max I can go is 0x68080000.

    Just a guess :)

    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    if im not mistaken

    is61wv51216bll

    so if i understand it correctly my chip has 512k x 16bits = 1024kb?

    but in thix case i dont think that i have an overflow or?

    in the uc configuration i found the settings for the base addresses:

    internal sram base 0x20000000

    internal sram size 0x00010000

    ext sram base 0x68000000

    ext sram size 0x00100000

    ext flash base 0x64000000

    ext flash size 0x01000000

    could it be that this settings dont fit to my board?

    or have you any other idea what is going wrong?

    for my understanding:

    what does pc, lr, psr, sp, ip, fp, r1,.., r10 meen in the follow error message?

    so what can is read out of this mem adresses?

    pc : [<00000000>]    lr : [<08032399>]    psr: 6000000b

    sp : 6802ff00  ip : 00000000  fp : 00000000

    r10: 00000000  r9 : 00000000  r8 : 6802ff48

    r7 : 00000000  r6 : 1dcd4400  r5 : 20004658  r4 : 6802ff08

    r3 : 00000000  r2 : 1dcd4400  r1 : 20003600  r0 : 6802ff08

    xacc
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    What is the model number of the external SRAM?

    Mine is: IS61LV25616

    The size is 256k x 16 bits = 512KB.

    Tesla DeLorean
    Guru
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    but my open questions (atm) are:

     

    1. what are ''pc'', ''lr'' and ''psr'' in the error message (see prev post)

     

    They are ARM processor registers at the time of the crash/fault

    PC Program Counter (R15), the address of the faulting instruction

    LR Link Register (R14), the return address for the last subroutine call

    PSR Processor Status Register, flags carry, zero, etc.

    SP Stack Pointer (R13)

    FP Frame Pointer - Local/Parameter stack pointer at subroutine entry

    R0-R10 General purpose registers

    Try looking at ARM architecture manual if you want to understand the processor.

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    after several guides and articles i think that i understand something more

    but my open questions (atm) are:

    1. what are ''pc'', ''lr'' and ''psr'' in the error message (see prev post)

    2. / # CPU: 0    Not tainted  (2.6.26-uc0 #1)

    [...eg error above...]

    in such a line, what does the ''#1'' meen? now i get errors with ''#5'' and i dont know what that line want to tell me

    3. if anybody has work with stm32f103xx and uclinux:

    why the ''Led_Show'' example doesnt do what is describe in the .c - code? i can start it but then i recieve nothing from the board and cant send signals anymore. but the interessing thing is, that the board didnt stop. the led_show run but the only way to stop the app is to reset the whole board.

    i think the problem is that Led_Show blocks the core so nothing else could be done.

    any idea?

    i would be very glad if somebody can help be!

    mfg

    christopher

    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    thanks at first! i expected that pc is something like this.

    i also found the refering entry in the system.map and know that the some more errors came/come up in ''initramfs''. now i have to find the failing point(s) in the program.

    you have any idea to my other questions?

    and my new question:

    what means ''Flags: nZCv IRQs on Mode UK11_26 ISA ARM Segment kernel'' under an error dump?

    Tesla DeLorean
    Guru
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    The values for faulting PC all look to be even addresses, are you sure you don't have any 32-bit ARM code in your build? The STM32 will only run the 16-bit Thumb/Thumb2 instructions. (ISA = Instruction Set Architecture)

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    maybe it is relevant that i dont want(try) to use the NOR-flash version. i try to run the mcu-flash (internal flash) version.

    some minutes ago i tried the first time the NOR-flash version and until now everything seems to be fine.

    so can i expect that there are two possible problems:

    1. damaged internal flash

    2. damaged sourcefiles or compiler or image

    ??

    the least thing i could expect is that uclinux , against the guide, could not be run from internal flash memory.

    in the case, that it run perfectly from external flash, i think that something written in the guide is completly wrong refering to the problems i desribed above.

    am i right when i say that, its not possible to run uclinux in a stable way from internal flash?

    it would be nice if someone from st would say something to that.

    thanks

    christopher23
    Associate II
    May 17, 2011
    Posted on May 17, 2011 at 14:11

    im not sure.

    ill check the compiler settings.

    i have not changed anything in the code. at first i try/tried to run the raw version with no changings.

    edit:

    i check the compiler and i cant see something that points to an 32-bit setting

    slowly am understanding how the core and board works but i have no idea what i can do to solve the problem i have with getting error. that are so much, that it couldnt be in the image but what error source could it be?

    the only things that come to my mind are a failt on the board itself (damaged parts or so) and an error at downloading the image to the board.

    i will check an equal board tomorrow but how can i check the second idea?