You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by cyl cyl <cy...@gmail.com> on 2021/01/22 07:38:22 UTC

STM32H7 run external applicaion HARDFAULT

Hi:

I'm tring to run external application on my stm32h7 board, nuttx version is
10.0.0, I followed the steps in the video, compiled elf file "hello",
and download
it into my qspi flash(n25q256)"/mnt/nxffs" by using command "get", and
everytime I run hello hardfault accurs.

I really don't know what to do now, thanks for any suggestion.

Attach files are .config file and System map file.

(Sometimes I "ls" or copy files in /mnt/nxffs still cause hardfault, 10.0.0
is much better than 8.2.0 or 9.1.0 but still happens occasionally)

NuttShell (NSH) NuttX-10.0.0
nsh> cd /mnt/nxffs
nsh> ls
/mnt/nxffs:
 m100k.txt
 m600k.txt
 m1000k.txt
 hello
nsh> hello
up_assert: Assertion failed at file:mm_heap/mm_free.c line: 148
up_registerdump: R0: 00000001 24002974 00000040 00000000 38001b1c 38001b20
00000
000 38001998
up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 38001978
0800a
f45 0800b87c
up_registerdump: xPSR: 61000000 PRIMASK: 00000000 CONTROL: 00000004
up_registerdump: EXC_RETURN: ffffffe9
up_dumpstate: sp:         380019b0
up_dumpstate: stack base: 38001d90
up_dumpstate: stack size: 000007ec
up_stackdump: 380019a0: 380019a0 380019a0 380019b0 38001b1c 38001b20
00000000 38
0019c0 0800b0c5
up_stackdump: 380019c0: 000007ec 38001d90 380019b0 38001100 380019e0
0800b175 00
000094 00000000
up_stackdump: 380019e0: 00000094 080503ec 380019f0 08007899 00000094
080503ec 38
001a00 08009777
up_stackdump: 38001a00: 38001570 24006f1c 38001a10 08009863 38004160
00000000 38
001588 38001568
up_stackdump: 38001a20: 38001a28 08009175 38004188 38001570 38001a38
0804b393 00
000000 38001570
up_stackdump: 38001a40: 38001a48 08047445 38001abc 380041c0 38004160
38001570 08
054558 00000000
up_stackdump: 38001a60: 38001a68 08047195 00000000 00000000 38001c08
08054558 38
001aa8 38001a80
up_stackdump: 38001a80: 380041c0 00000000 38001a98 08031703 38001b20
24000000 38
001c08 38001b20
up_stackdump: 38001aa0: 08054558 38001b16 00000000 00000000 00000000
00000000 38
001ac8 08031807
up_stackdump: 38001ac0: 38001ae0 0000455e 38001b20 38001b1c 08054558
38001b16 38
001af4 38001b20
up_stackdump: 38001ae0: 000c0002 38001b20 38001b00 08014f65 38001c08
00000000 00
000000 38004118
up_stackdump: 38001b00: 00000000 00000000 38001c04 38004118 00000000
00000000 00
000064 00000000
up_stackdump: 38001b20: 0002640c 00000000 00000800 0805460c 00000009
00000000 38
004118 38001334
up_stackdump: 38001b40: 38001b50 08013353 00000000 3800411d 00000000
38001c04 38
004118 38003eb0
up_stackdump: 38001b60: 38004118 38003eb0 0000000f 00000000 00000000
38004118 38
001b88 0800d997
up_stackdump: 38001b80: 00000000 00000000 00000000 38001c04 00000001
38003eb0 08
050a61 38004118
up_stackdump: 38001ba0: 38004118 38001bb0 38001bb0 38001bb0 38001bf8
38001c44 38
001c00 38003eb0
up_stackdump: 38001bc0: 38001c44 00000000 380040d8 010040d8 38004118
ffffffff 38
004118 38001334
up_stackdump: 38001be0: 38001bf0 0800f18b 00000000 00000000 38004118
38003eb0 00
000000 38004118
up_stackdump: 38001c00: 3800411e 38004118 00000000 00000000 00000000
00000000 00
000000 00000000
up_stackdump: 38001c20: 00000000 00000000 00000000 00000000 00000000
00000000 00
000000 00000000
up_stackdump: 38001c40: 00000000 00000000 00000000 00000000 00000000
00000000 00
000000 00000000
up_stackdump: 38001c60: 00000000 00000000 00000000 00000000 00000000
00000000 00
000000 00000000
up_stackdump: 38001c80: 00000000 00000000 00000000 00000000 00000000
00000000 00
000000 00000000
up_stackdump: 38001ca0: 38001ca8 38001ca8 000507cc 00000001 00000000
00000000 38
001cc0 0800f235
up_stackdump: 38001cc0: 38004118 38003eb0 3800139c 38001334 00000040
3800411d 00
000005 380040d8
up_stackdump: 38001ce0: 38004118 38004118 00000000 38004118 38001d00
08012e79 00
000003 080507c0
up_stackdump: 38001d00: 38001d90 00000001 01041270 38003eb0 38003eb0
00000006 00
000000 00000000
up_stackdump: 38001d20: 38001d28 0800d183 38001d90 00000001 0800d195
38003eb0 38
001d40 0800d115
up_stackdump: 38001d40: 38001d90 00000001 00000000 00000064 00000003
00000000 38
001d60 08007d97
up_stackdump: 38001d60: 00000000 38001d90 00000001 0800d0b5 38001d78
0800362b 00
000000 38001100
up_stackdump: 38001d80: 00000001 00000001 00000000 00000000 38001d98
00000000 6e
6f6e3c 3e656d61
arm_hardfault: Hard Fault:
arm_hardfault:   IRQ: 3 regs: 0x38001894
arm_hardfault:   BASEPRI: 000000f0 PRIMASK: 00000000 IPSR: 00000003
CONTROL: 000
00000
arm_hardfault:   CFAULTS: 00008200 HFAULTS: 40000000 DFAULTS: 00000000
BFAULTADD
R: 00010000 AFAULTS: 00000000
arm_hardfault: PANIC!!! Hard fault: 40000000
up_assert: Assertion failed at file:armv7-m/arm_hardfault.c line: 135
up_registerdump: R0: 00000000 38001270 00000003 00010000 38001b1c 38001b20
00000
000 38001968
up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 38001968
08003
e6b 08023222
up_registerdump: xPSR: 21000000 PRIMASK: 00000000 CONTROL: 00000000
up_registerdump: EXC_RETURN: ffffffe9
up_dumpstate: sp:         380017b8
up_dumpstate: stack base: 38001d90
up_dumpstate: stack size: 000007ec
up_stackdump: 380017a0: 38001d90 380017b8 380017a0 380017a0 380017b8
00008200 38
001b20 00000000
up_stackdump: 380017c0: 380017c8 0800b0c5 000007ec 38001d90 380017b8
38001100 38
0017e8 0800b175
up_stackdump: 380017e0: 00000087 00000000 00000087 0804fca0 380017f8
08007899 00
000087 0804fca0


[image: 112233.png]

Re: STM32H7 run external applicaion HARDFAULT

Posted by Brennan Ashton <ba...@brennanashton.com>.
Cyl,
Looks like you do not have CONFIG_STACK_COLORATION turned on, so it is a
little hard to say, but this sounds very likely to me.
I would recommend is turning that feature on and then grabbing this gdb
script and loading it, I think there is a setting in the eclipse debugger
(you want the latest but I think it should work with 10.0.0)
https://github.com/apache/incubator-nuttx/blob/master/tools/nuttx-gdbinit
and run this command from gdb at the breakpoint you added fro waitpid:
info_nxthreads

You will get a list of threads the state and estimated usage:

4 Thread 0x20013460  (Name: <pthread>, State: Stopped, Priority: 100,
Stack: 456/4100) PC: 0x5500 in

That would be a good starting place.

On Wed, Jan 27, 2021 at 9:58 PM cyl cyl <cy...@gmail.com> wrote:

>
> Everytime the hardfault happens after "ret = waitpid(ret, &rc,
> WUNTRACED);"   of file nsh_builtin.c when I do single step debug.
>
>
> [image: 11223344.png]
>
>
> cyl cyl <cy...@gmail.com> 于2021年1月22日周五 下午3:38写道:
>
>> Hi:
>>
>> I'm tring to run external application on my stm32h7 board, nuttx version
>> is 10.0.0, I followed the steps in the video, compiled elf file "hello",
>> and download it into my qspi flash(n25q256)"/mnt/nxffs" by using command
>> "get", and everytime I run hello hardfault accurs.
>>
>> I really don't know what to do now, thanks for any suggestion.
>>
>> Attach files are .config file and System map file.
>>
>> (Sometimes I "ls" or copy files in /mnt/nxffs still cause hardfault,
>> 10.0.0 is much better than 8.2.0 or 9.1.0 but still happens occasionally)
>>
>> NuttShell (NSH) NuttX-10.0.0
>> nsh> cd /mnt/nxffs
>> nsh> ls
>> /mnt/nxffs:
>>  m100k.txt
>>  m600k.txt
>>  m1000k.txt
>>  hello
>> nsh> hello
>> up_assert: Assertion failed at file:mm_heap/mm_free.c line: 148
>> up_registerdump: R0: 00000001 24002974 00000040 00000000 38001b1c
>> 38001b20 00000
>> 000 38001998
>> up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000
>> 38001978 0800a
>> f45 0800b87c
>> up_registerdump: xPSR: 61000000 PRIMASK: 00000000 CONTROL: 00000004
>> up_registerdump: EXC_RETURN: ffffffe9
>> up_dumpstate: sp:         380019b0
>> up_dumpstate: stack base: 38001d90
>> up_dumpstate: stack size: 000007ec
>> up_stackdump: 380019a0: 380019a0 380019a0 380019b0 38001b1c 38001b20
>> 00000000 38
>> 0019c0 0800b0c5
>> up_stackdump: 380019c0: 000007ec 38001d90 380019b0 38001100 380019e0
>> 0800b175 00
>> 000094 00000000
>> up_stackdump: 380019e0: 00000094 080503ec 380019f0 08007899 00000094
>> 080503ec 38
>> 001a00 08009777
>> up_stackdump: 38001a00: 38001570 24006f1c 38001a10 08009863 38004160
>> 00000000 38
>> 001588 38001568
>> up_stackdump: 38001a20: 38001a28 08009175 38004188 38001570 38001a38
>> 0804b393 00
>> 000000 38001570
>> up_stackdump: 38001a40: 38001a48 08047445 38001abc 380041c0 38004160
>> 38001570 08
>> 054558 00000000
>> up_stackdump: 38001a60: 38001a68 08047195 00000000 00000000 38001c08
>> 08054558 38
>> 001aa8 38001a80
>> up_stackdump: 38001a80: 380041c0 00000000 38001a98 08031703 38001b20
>> 24000000 38
>> 001c08 38001b20
>> up_stackdump: 38001aa0: 08054558 38001b16 00000000 00000000 00000000
>> 00000000 38
>> 001ac8 08031807
>> up_stackdump: 38001ac0: 38001ae0 0000455e 38001b20 38001b1c 08054558
>> 38001b16 38
>> 001af4 38001b20
>> up_stackdump: 38001ae0: 000c0002 38001b20 38001b00 08014f65 38001c08
>> 00000000 00
>> 000000 38004118
>> up_stackdump: 38001b00: 00000000 00000000 38001c04 38004118 00000000
>> 00000000 00
>> 000064 00000000
>> up_stackdump: 38001b20: 0002640c 00000000 00000800 0805460c 00000009
>> 00000000 38
>> 004118 38001334
>> up_stackdump: 38001b40: 38001b50 08013353 00000000 3800411d 00000000
>> 38001c04 38
>> 004118 38003eb0
>> up_stackdump: 38001b60: 38004118 38003eb0 0000000f 00000000 00000000
>> 38004118 38
>> 001b88 0800d997
>> up_stackdump: 38001b80: 00000000 00000000 00000000 38001c04 00000001
>> 38003eb0 08
>> 050a61 38004118
>> up_stackdump: 38001ba0: 38004118 38001bb0 38001bb0 38001bb0 38001bf8
>> 38001c44 38
>> 001c00 38003eb0
>> up_stackdump: 38001bc0: 38001c44 00000000 380040d8 010040d8 38004118
>> ffffffff 38
>> 004118 38001334
>> up_stackdump: 38001be0: 38001bf0 0800f18b 00000000 00000000 38004118
>> 38003eb0 00
>> 000000 38004118
>> up_stackdump: 38001c00: 3800411e 38004118 00000000 00000000 00000000
>> 00000000 00
>> 000000 00000000
>> up_stackdump: 38001c20: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00
>> 000000 00000000
>> up_stackdump: 38001c40: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00
>> 000000 00000000
>> up_stackdump: 38001c60: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00
>> 000000 00000000
>> up_stackdump: 38001c80: 00000000 00000000 00000000 00000000 00000000
>> 00000000 00
>> 000000 00000000
>> up_stackdump: 38001ca0: 38001ca8 38001ca8 000507cc 00000001 00000000
>> 00000000 38
>> 001cc0 0800f235
>> up_stackdump: 38001cc0: 38004118 38003eb0 3800139c 38001334 00000040
>> 3800411d 00
>> 000005 380040d8
>> up_stackdump: 38001ce0: 38004118 38004118 00000000 38004118 38001d00
>> 08012e79 00
>> 000003 080507c0
>> up_stackdump: 38001d00: 38001d90 00000001 01041270 38003eb0 38003eb0
>> 00000006 00
>> 000000 00000000
>> up_stackdump: 38001d20: 38001d28 0800d183 38001d90 00000001 0800d195
>> 38003eb0 38
>> 001d40 0800d115
>> up_stackdump: 38001d40: 38001d90 00000001 00000000 00000064 00000003
>> 00000000 38
>> 001d60 08007d97
>> up_stackdump: 38001d60: 00000000 38001d90 00000001 0800d0b5 38001d78
>> 0800362b 00
>> 000000 38001100
>> up_stackdump: 38001d80: 00000001 00000001 00000000 00000000 38001d98
>> 00000000 6e
>> 6f6e3c 3e656d61
>> arm_hardfault: Hard Fault:
>> arm_hardfault:   IRQ: 3 regs: 0x38001894
>> arm_hardfault:   BASEPRI: 000000f0 PRIMASK: 00000000 IPSR: 00000003
>> CONTROL: 000
>> 00000
>> arm_hardfault:   CFAULTS: 00008200 HFAULTS: 40000000 DFAULTS: 00000000
>> BFAULTADD
>> R: 00010000 AFAULTS: 00000000
>> arm_hardfault: PANIC!!! Hard fault: 40000000
>> up_assert: Assertion failed at file:armv7-m/arm_hardfault.c line: 135
>> up_registerdump: R0: 00000000 38001270 00000003 00010000 38001b1c
>> 38001b20 00000
>> 000 38001968
>> up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000
>> 38001968 08003
>> e6b 08023222
>> up_registerdump: xPSR: 21000000 PRIMASK: 00000000 CONTROL: 00000000
>> up_registerdump: EXC_RETURN: ffffffe9
>> up_dumpstate: sp:         380017b8
>> up_dumpstate: stack base: 38001d90
>> up_dumpstate: stack size: 000007ec
>> up_stackdump: 380017a0: 38001d90 380017b8 380017a0 380017a0 380017b8
>> 00008200 38
>> 001b20 00000000
>> up_stackdump: 380017c0: 380017c8 0800b0c5 000007ec 38001d90 380017b8
>> 38001100 38
>> 0017e8 0800b175
>> up_stackdump: 380017e0: 00000087 00000000 00000087 0804fca0 380017f8
>> 08007899 00
>> 000087 0804fca0
>>
>>
>> [image: 112233.png]
>>
>>

Re: STM32H7 run external applicaion HARDFAULT

Posted by cyl cyl <cy...@gmail.com>.
Everytime the hardfault happens after "ret = waitpid(ret, &rc, WUNTRACED);"
  of file nsh_builtin.c when I do single step debug.


[image: 11223344.png]


cyl cyl <cy...@gmail.com> 于2021年1月22日周五 下午3:38写道:

> Hi:
>
> I'm tring to run external application on my stm32h7 board, nuttx version
> is 10.0.0, I followed the steps in the video, compiled elf file "hello",
> and download it into my qspi flash(n25q256)"/mnt/nxffs" by using command
> "get", and everytime I run hello hardfault accurs.
>
> I really don't know what to do now, thanks for any suggestion.
>
> Attach files are .config file and System map file.
>
> (Sometimes I "ls" or copy files in /mnt/nxffs still cause hardfault,
> 10.0.0 is much better than 8.2.0 or 9.1.0 but still happens occasionally)
>
> NuttShell (NSH) NuttX-10.0.0
> nsh> cd /mnt/nxffs
> nsh> ls
> /mnt/nxffs:
>  m100k.txt
>  m600k.txt
>  m1000k.txt
>  hello
> nsh> hello
> up_assert: Assertion failed at file:mm_heap/mm_free.c line: 148
> up_registerdump: R0: 00000001 24002974 00000040 00000000 38001b1c 38001b20
> 00000
> 000 38001998
> up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 38001978
> 0800a
> f45 0800b87c
> up_registerdump: xPSR: 61000000 PRIMASK: 00000000 CONTROL: 00000004
> up_registerdump: EXC_RETURN: ffffffe9
> up_dumpstate: sp:         380019b0
> up_dumpstate: stack base: 38001d90
> up_dumpstate: stack size: 000007ec
> up_stackdump: 380019a0: 380019a0 380019a0 380019b0 38001b1c 38001b20
> 00000000 38
> 0019c0 0800b0c5
> up_stackdump: 380019c0: 000007ec 38001d90 380019b0 38001100 380019e0
> 0800b175 00
> 000094 00000000
> up_stackdump: 380019e0: 00000094 080503ec 380019f0 08007899 00000094
> 080503ec 38
> 001a00 08009777
> up_stackdump: 38001a00: 38001570 24006f1c 38001a10 08009863 38004160
> 00000000 38
> 001588 38001568
> up_stackdump: 38001a20: 38001a28 08009175 38004188 38001570 38001a38
> 0804b393 00
> 000000 38001570
> up_stackdump: 38001a40: 38001a48 08047445 38001abc 380041c0 38004160
> 38001570 08
> 054558 00000000
> up_stackdump: 38001a60: 38001a68 08047195 00000000 00000000 38001c08
> 08054558 38
> 001aa8 38001a80
> up_stackdump: 38001a80: 380041c0 00000000 38001a98 08031703 38001b20
> 24000000 38
> 001c08 38001b20
> up_stackdump: 38001aa0: 08054558 38001b16 00000000 00000000 00000000
> 00000000 38
> 001ac8 08031807
> up_stackdump: 38001ac0: 38001ae0 0000455e 38001b20 38001b1c 08054558
> 38001b16 38
> 001af4 38001b20
> up_stackdump: 38001ae0: 000c0002 38001b20 38001b00 08014f65 38001c08
> 00000000 00
> 000000 38004118
> up_stackdump: 38001b00: 00000000 00000000 38001c04 38004118 00000000
> 00000000 00
> 000064 00000000
> up_stackdump: 38001b20: 0002640c 00000000 00000800 0805460c 00000009
> 00000000 38
> 004118 38001334
> up_stackdump: 38001b40: 38001b50 08013353 00000000 3800411d 00000000
> 38001c04 38
> 004118 38003eb0
> up_stackdump: 38001b60: 38004118 38003eb0 0000000f 00000000 00000000
> 38004118 38
> 001b88 0800d997
> up_stackdump: 38001b80: 00000000 00000000 00000000 38001c04 00000001
> 38003eb0 08
> 050a61 38004118
> up_stackdump: 38001ba0: 38004118 38001bb0 38001bb0 38001bb0 38001bf8
> 38001c44 38
> 001c00 38003eb0
> up_stackdump: 38001bc0: 38001c44 00000000 380040d8 010040d8 38004118
> ffffffff 38
> 004118 38001334
> up_stackdump: 38001be0: 38001bf0 0800f18b 00000000 00000000 38004118
> 38003eb0 00
> 000000 38004118
> up_stackdump: 38001c00: 3800411e 38004118 00000000 00000000 00000000
> 00000000 00
> 000000 00000000
> up_stackdump: 38001c20: 00000000 00000000 00000000 00000000 00000000
> 00000000 00
> 000000 00000000
> up_stackdump: 38001c40: 00000000 00000000 00000000 00000000 00000000
> 00000000 00
> 000000 00000000
> up_stackdump: 38001c60: 00000000 00000000 00000000 00000000 00000000
> 00000000 00
> 000000 00000000
> up_stackdump: 38001c80: 00000000 00000000 00000000 00000000 00000000
> 00000000 00
> 000000 00000000
> up_stackdump: 38001ca0: 38001ca8 38001ca8 000507cc 00000001 00000000
> 00000000 38
> 001cc0 0800f235
> up_stackdump: 38001cc0: 38004118 38003eb0 3800139c 38001334 00000040
> 3800411d 00
> 000005 380040d8
> up_stackdump: 38001ce0: 38004118 38004118 00000000 38004118 38001d00
> 08012e79 00
> 000003 080507c0
> up_stackdump: 38001d00: 38001d90 00000001 01041270 38003eb0 38003eb0
> 00000006 00
> 000000 00000000
> up_stackdump: 38001d20: 38001d28 0800d183 38001d90 00000001 0800d195
> 38003eb0 38
> 001d40 0800d115
> up_stackdump: 38001d40: 38001d90 00000001 00000000 00000064 00000003
> 00000000 38
> 001d60 08007d97
> up_stackdump: 38001d60: 00000000 38001d90 00000001 0800d0b5 38001d78
> 0800362b 00
> 000000 38001100
> up_stackdump: 38001d80: 00000001 00000001 00000000 00000000 38001d98
> 00000000 6e
> 6f6e3c 3e656d61
> arm_hardfault: Hard Fault:
> arm_hardfault:   IRQ: 3 regs: 0x38001894
> arm_hardfault:   BASEPRI: 000000f0 PRIMASK: 00000000 IPSR: 00000003
> CONTROL: 000
> 00000
> arm_hardfault:   CFAULTS: 00008200 HFAULTS: 40000000 DFAULTS: 00000000
> BFAULTADD
> R: 00010000 AFAULTS: 00000000
> arm_hardfault: PANIC!!! Hard fault: 40000000
> up_assert: Assertion failed at file:armv7-m/arm_hardfault.c line: 135
> up_registerdump: R0: 00000000 38001270 00000003 00010000 38001b1c 38001b20
> 00000
> 000 38001968
> up_registerdump: R8: 00000000 00000000 00000000 00000000 00000000 38001968
> 08003
> e6b 08023222
> up_registerdump: xPSR: 21000000 PRIMASK: 00000000 CONTROL: 00000000
> up_registerdump: EXC_RETURN: ffffffe9
> up_dumpstate: sp:         380017b8
> up_dumpstate: stack base: 38001d90
> up_dumpstate: stack size: 000007ec
> up_stackdump: 380017a0: 38001d90 380017b8 380017a0 380017a0 380017b8
> 00008200 38
> 001b20 00000000
> up_stackdump: 380017c0: 380017c8 0800b0c5 000007ec 38001d90 380017b8
> 38001100 38
> 0017e8 0800b175
> up_stackdump: 380017e0: 00000087 00000000 00000087 0804fca0 380017f8
> 08007899 00
> 000087 0804fca0
>
>
> [image: 112233.png]
>
>