ART-Pi启用“动态模块”后,wifi初始化出错

发布于 2021-01-12 21:39:01

在RT-Thread Studio里在基于开发板STM32H750-RT-ART-Pi例子art_pi_wifi里启用“动态模块”后,执行到wifi初始化出错,控制台显示如下:

   ___  ______  _____         ______  _   ______  _____  _____  _____
  / _ \ | ___ \|_   _|        | ___ \(_)  | ___ \/  _  \/  _  \|_   _|
 / /_\ \| |_/ /  | |   ______ | |_/ / _   | |_/ /| | | || | | |  | |
 |  _  ||    /   | |  |______||  __/ | |  | ___ \| | | || | | |  | |
 | | | || |\ \   | |          | |    | |  | |_/ /\ \_/ /\ \_/ /  | |
 \_| |_/\_| \_|  \_/          \_|    |_|  \____/  \___/  \___/   \_/

 Powered by RT-Thread.

msh >
 \ | /
- RT -     Thread Operating System
 / | \     4.0.3 build Jan 12 2021
 2006 - 2020 Copyright by rt-thread team
lwIP-2.0.2 initialized!
[I/sal.skt] Socket Abstraction Layer initialize success.
[I/SFUD] Find a Winbond flash chip. Size is 16777216 bytes.
[I/SFUD] norflash0 flash device is initialize success.
[I/SFUD] Probe SPI flash norflash0 by SPI device spi10 success.
[D/FAL] (fal_flash_init:63) Flash device |                norflash0 | addr: 0x00000000 | len: 0x01000000 | blk_size: 0x00001000 |initialized finish.
[I/FAL] ==================== FAL partition table ====================
[I/FAL] | name       | flash_dev |   offset   |    length  |
[I/FAL] -------------------------------------------------------------
[I/FAL] | wifi_image | norflash0 | 0x00000000 | 0x00080000 |
[I/FAL] | bt_image   | norflash0 | 0x00080000 | 0x00080000 |
[I/FAL] | download   | norflash0 | 0x00100000 | 0x00200000 |
[I/FAL] | easyflash  | norflash0 | 0x00300000 | 0x00100000 |
[I/FAL] | filesystem | norflash0 | 0x00400000 | 0x00c00000 |
[I/FAL] =============================================================
[I/FAL] RT-Thread Flash Abstraction Layer (V0.5.0) initialize success.
[I/FAL] The FAL MTD NOR device (filesystem) created successfully
[I/app.filesystem] mount to '/flash' success!
[Flash] (../packages/EasyFlash-v4.1.0/src/ef_env.c:1818) ENV start address is 0x00000000, size is 8192 bytes.
[Flash] EasyFlash V4.1.0 is initialize success.
[Flash] You can get the latest version on https://github.com/armink/EasyFlash .
[I/OTA] RT-Thread OTA package(V0.2.3) initialize success.
[I/OTA] Verify 'wifi_image' partition(fw ver: 1.0, timestamp: 1592464902) success.
msh />[I/SDIO] SD card capacity 498176 KB.
found part[0], begin: 16450560, size: 470.670MB
[I/app.filesystem] sd card mount to '/sdcard'
[I/WWD] wifi initialize done. wiced version 3.3.1
[I/WLAN.dev] wlan init success
psr: 0x21030000
r00: 0xffffffff
r01: 0x00000014
r02: 0x00000000
r03: 0xaf27be69
r04: 0xdeadbeef
r05: 0xdeadbeef
r06: 0xdeadbeef
r07: 0x24014060
r08: 0xdeadbeef
r09: 0xdeadbeef
r10: 0xdeadbeef
r11: 0xdeadbeef
r12: 0x240172c1
 lr: 0x9002b7ff
 pc: 0x9002eeb8
hard fault on thread: wifi_ini

thread   pri  status      sp     stack size max used left tick  error
-------- ---  ------- ---------- ----------  ------  ---------- ---
WWD        8  suspend 0x000000cc 0x00000800    30%   0x00000009 000
sdio_irq  15  suspend 0x000000b4 0x00000200    35%   0x00000014 000
sd_mount  30  suspend 0x000000b4 0x00000800    48%   0x00000010 000
wifi_ini  16  running 0x00000274 0x00001000    26%   0x0000000c 000
tshell    20  suspend 0x00000184 0x00001000    09%   0x00000009 000
sys_work  23  suspend 0x00000084 0x00000800    06%   0x0000000a 000
mmcsd_de  22  suspend 0x000000b8 0x00000400    61%   0x0000000f 000
wlan      15  suspend 0x00000084 0x00000800    10%   0x0000000a -01
tcpip     10  suspend 0x000000f0 0x00000400    36%   0x00000014 000
etx       12  suspend 0x000000ac 0x00000400    16%   0x00000010 000
erx       12  suspend 0x000000b8 0x00000400    17%   0x00000010 000
tidle0    31  ready   0x0000005c 0x00000100    51%   0x00000019 000
timer      4  suspend 0x000000b0 0x00000200    35%   0x00000009 000
main      10  suspend 0x00000144 0x00000800    54%   0x0000000a 000
FPU active!
usage fault:
SCB_CFSR_UFSR:0x100 UNALIGNED

使用的代码是例子art_pi_wifi,仅仅启用了“动态模块”就这样了。用例子art_pi_factory启用“动态模块”一样出错。但是使用更简单的例子art_pi_blink_led启用“动态模块”则运行正常。
有大师给分析一下为什么会这样吗?

查看更多

关注者
0
被浏览
146
1 个回答
lt6210925
lt6210925 认证专家 2021-02-03

可以看下地址 pc: 0x9002eeb8
这个具体是哪一行代码。
使用addr2line 来解析出哪一行代码。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览