Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Devices
求助,RW007 +F407初始化错误
发布于 2020-03-30 09:57:54 浏览:1857
订阅该版
* 本帖最后由 sync 于 2020-3-30 10:38 编辑 * F407 使用的spi3口和flash共用一个spi,flash已经调试通过,RW007上电后,要么调试串口直接无响应,要么过好久才能打印出WLAN.dev的调试信息。``` \ | / - RT - Thread Operating System / | \ 4.0.3 build Mar 30 2020 2006 - 2020 Copyright by rt-thread team lwIP-2.0.2 initialized! [I/drv.rtc] RTC hasn't been configured, please use
command to config. [I/sal.skt] Socket Abstraction Layer initialize success. [I/WLAN.dev] wlan init success [E/WLAN.dev] L:81 wlan config mode failed [E/WLAN.mgnt] F:rt_wlan_set_mode L:882 F:rt_wlan_set_mode L:882 wlan init failed [I/WLAN.dev] wlan init success [E/WLAN.dev] L:81 wlan config mode failed [E/WLAN.mgnt] F:rt_wlan_set_mode L:882 F:rt_wlan_set_mode L:882 wlan init failed rw007 sn: [?] rw007 ver: [?] ``` 调试发现应该是函数spi_wifi_transfer的问题,但不知道怎么修改 现象如下![1585533228(1).png](/uploads/202003/30/095542beijjd35j3eowdbv.png) 降低spi速度到2M后,现象还是一样
查看更多
caowent
2020-05-29
这家伙很懒,什么也没写!
深入分析了下,找到问题了。 最后是HAL库的“HAL_GPIO_DeInit”函数实现上有漏洞导致的问题。 STM32F4HAL库V1.7.7(CUBE F4 PACK V1.24.2/ CUBEMX V5.50 以上)已经修复该漏洞。 release note:Update GPIO initialization sequence to avoid unwanted pulse on GPIO Pin’s。 具体触发问题的流程: 1.rw007有一个数据发送线程,该线程可以通过INT/BUSY引脚外部中断唤醒。 2.RW007数据发送线程正常发送数据时,INT/BUSY引脚复用为BUSY功能,用于表征RW007模块的忙碌状态。 此过程中禁用了INT/BUSY的外部中断,防止在数据发送过程中BUSY信号触发本身线程,导致本身线程无限循环。 3.事实是在发送数据钱关中断调用HAL_GPIO_DeInit,由于存在漏洞会置位EXTI的Pending位,导致发完数据再次 打开外部中断的时候,直接触发了外部中断,直接唤醒了本线程,导致无限循环。 4.由于发送线程优先级是9 高于 wifi初始化线程10,所以会出现无响应。 5.解决方法就是把STM32F4HAL库更新到V1.7.7以上。
10
个回答
默认排序
按发布时间排序
aozima
2020-03-30
调网络不抓包,调I2C等时序不上逻辑分析仪,就像电工不用万用表!多用整理的好的文字,比截图更省流量,还能在整理过程中思考。
驱动更新到最新版了吗? 把FLASH程序屏蔽掉,并把芯片焊下来看看?
sync
2020-03-30
这家伙很懒,什么也没写!
flash 程序屏蔽了,但是芯片还没拆下, 驱动时最新的 ``` /* * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2014-07-31 aozima the first version * 2014-09-18 aozima update command & response. * 2017-07-28 armink fix auto reconnect feature * 2018-12-24 zyh porting rw007 from rw009 * 2019-02-25 zyh porting rw007 to wlan * 2020-02-28 shaoguoji add spi transfer retry */ ```
sync
2020-03-30
这家伙很懒,什么也没写!
查看了rw007的调试口,应该是进入spi模式了,打印信息如下: ``` \ | / - RT - Thread Operating System / | \ 3.1.1 build Dec 19 2019 2006 - 2018 Copyright by rt-thread team lwIP-2.0.2 initialized! LDO Mode, BD_Info: 0 LDO Mode, BD_Info: 0 i2c_idx:0 [I/SAL_SOC] Socket Abstraction Layer initialize success. [start_value]: 3 AT uart mode init [I/at.svr] RT-Thread AT server (V1.2.0) initialize success. [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w0 [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w1 Mac:88:97:46:07:c7:e7 rw007 sn: [rw007746978800e7c7] rw007 ver: [1.2.9-72a55281-28908] [D/FAL] (fal_flash_init:63) Flash device | norflash0 | addr: 0x00000000 | len: 0x00200000 | blk_size: 0x00001000 |initialized finish. [I/FAL] ==================== FAL partition table ==================== [I/FAL] | name | flash_dev | offset | length | [I/FAL] ------------------------------------------------------------- [I/FAL] | app | norflash0 | 0x0000b000 | 0x00135000 | [I/FAL] | env | norflash0 | 0x00140000 | 0x00001000 | [I/FAL] | download | norflash0 | 0x00141000 | 0x000af000 | [I/FAL] | bootloader | norflash0 | 0x001f0000 | 0x0000f000 | [I/FAL] | rdp | norflash0 | 0x001ff000 | 0x00001000 | [I/FAL] ============================================================= [I/FAL] RT-Thread Flash Abstraction Layer (V0.2.0) initialize success. [Flash] (packages/EasyFlash/src/ef_env.c:152) ENV start address is 0x00000000, size is 4096 bytes. [Flash] (packages/EasyFlash/src/ef_env.c:821) Calculate ENV CRC32 number is 0xCF40710A. [Flash] (packages/EasyFlash/src/ef_env.c:833) Verify ENV CRC32 result is OK. [Flash] EasyFlash V3.2.3 is initialize success. [Flash] You can get the latest version on https://github.com/armink/EasyFlash . build time: Dec 19 2019 11:19:44 Hello RT-Thread! [Flash] (packages/EasyFlash/src/ef_env.c:152) ENV start address is 0x00000000, size is 4096 bytes. [Flash] (packages/EasyFlash/src/ef_env.c:821) Calculate ENV CRC32 number is 0xCF40710A. [Flash] (packages/EasyFlash/src/ef_env.c:833) Verify ENV CRC32 result is OK. [Flash] EasyFlash V3.2.3 is initialize success. [Flash] You can get the latest version on https://github.com/armink/EasyFlash . ROM:[V0.1] FLASHRATE:4 BOOT TYPE:0 XTAL:40000000 IMG1 DATA[1128:10002000] IMG1 ENTRY[800052d:100021ef] IMG1 ENTER CHIPID[000000ff] read_mode idx:0, flash_speed idx:0 calibration_result:[1:9:9][5:d] calibration_result:[2:13:7][1:d] calibration_result:[3:3:3][1:3] calibration_ok:[2:13:7] FLASH CALIB[NEW OK] OTA2 ADDR[81f0000] OTAx SELE[fffffffe] OTA2 USE OTA2 SIGN[35393138:31313738] IMG2 DATA[0x81fa806:252:0x10005000] IMG2 SIGN[RTKWin(10005008)] IMG2 ENTRY[0x10005000:0x81f87a5] [I/STARTUP] ===== Enter Bootloader ==== System_Init1 [I/STARTUP] boot reason: 0 [I/BOOT] Hello RT-Thread! [D/FAL] (fal_flash_init:63) Flash device | norflash0 | addr: 0x00000000 | len: 0x00200000 | blk_size: 0x00001000 |initialized finish. [I/FAL] ==================== FAL partition table ==================== [I/FAL] | name | flash_dev | offset | length | [I/FAL] ------------------------------------------------------------- [I/FAL] | app | norflash0 | 0x0000b000 | 0x00135000 | [I/FAL] | env | norflash0 | 0x00140000 | 0x00001000 | [I/FAL] | download | norflash0 | 0x00141000 | 0x000af000 | [I/FAL] | bootloader | norflash0 | 0x001f0000 | 0x0000f000 | [I/FAL] | rdp | norflash0 | 0x001ff000 | 0x00001000 | [I/FAL] ============================================================= [I/FAL] RT-Thread Flash Abstraction Layer (V0.2.0) initialize success. [I/OTA] RT-Thread OTA package(V0.2.1) initialize success. [E/OTA] (part_fw_hash_verify:265) Verify firmware hash(calc.hash: 7f2538c4 != hdr.hash: dfbf72a4) failed on partition 'bootloader'. [E/OTA] (get_fw_hdr:150) Get firmware header occur CRC32(calc.crc: 17159786 != hdr.info_crc32: b1b8f9af) error on 'download' partition! [I/OTA] check upgrade... [E/OTA] (get_fw_hdr:150) Get firmware header occur CRC32(calc.crc: 17159786 != hdr.info_crc32: b1b8f9af) error on 'download' partition! [E/OTA] (rt_ota_check_upgrade:464) Get OTA download partition firmware header failed! [I/OTA] No firmware upgrade! [I/OTA] Verify 'app' partition(fw ver: 1.2.4, timestamp: 1576754488) success. [I/BOOT] Run application ===== Enter Image 2 ==== System_Init1 OSC8M: 8390004 boot reason: 0 System_Init2 \ | / - RT - Thread Operating System / | \ 3.1.1 build Dec 19 2019 2006 - 2018 Copyright by rt-thread team lwIP-2.0.2 initialized! LDO Mode, BD_Info: 0 LDO Mode, BD_Info: 0 i2c_idx:0 [I/SAL_SOC] Socket Abstraction Layer initialize success. [start_value]: 1 SPI raw mode init [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w0 [I/WLAN.dev] wlan init success [I/WLAN.lwip] eth device init ok name:w1 [D/FAL] (fal_flash_init:63) Flash device | norflash0 | addr: 0x00000000 | len: 0x00200000 | blk_size: 0x00001000 |initialized finish. [I/FAL] ==================== FAL partition table ==================== [I/FAL] | name | flash_dev | offset | length | [I/FAL] ------------------------------------------------------------- [I/FAL] | app | norflash0 | 0x0000b000 | 0x00135000 | [I/FAL] | env | norflash0 | 0x00140000 | 0x00001000 | [I/FAL] | download | norflash0 | 0x00141000 | 0x000af000 | [I/FAL] | bootloader | norflash0 | 0x001f0000 | 0x0000f000 | [I/FAL] | rdp | norflash0 | 0x001ff000 | 0x00001000 | [I/FAL] ============================================================= [I/FAL] RT-Thread Flash Abstraction Layer (V0.2.0) initialize success. [Flash] (packages/EasyFlash/src/ef_env.c:152) ENV start address is 0x00000000, size is 4096 bytes. [Flash] (packages/EasyFlash/src/ef_env.c:821) Calculate ENV CRC32 number is 0xCF40710A. [Flash] (packages/EasyFlash/src/ef_env.c:833) Verify ENV CRC32 result is OK. [Flash] EasyFlash V3.2.3 is initialize success. [Flash] You can get the latest version on https://github.com/armink/EasyFlash . Mac:88:97:46:07:c7:e7 rw007 sn: [rw007746978800e7c7] rw007 ver: [1.2.9-72a55281-28908] build time: Dec 19 2019 11:19:44 Hello RT-Thread! [Flash] (packages/EasyFlash/src/ef_env.c:152) ENV start address is 0x00000000, size is 4096 bytes. [Flash] (packages/EasyFlash/src/ef_env.c:821) Calculate ENV CRC32 number is 0xCF40710A. [Flash] (packages/EasyFlash/src/ef_env.c:833) Verify ENV CRC32 result is OK. [Flash] EasyFlash V3.2.3 is initialize success. [Flash] You can get the latest version on https://github.com/armink/EasyFlash . msh /> ```
sync
2020-03-30
这家伙很懒,什么也没写!
不过调试RW007,执行wifi scan似乎wifi也是不能正常工作 [code]msh />wifi scan LDO Mode, BD_Info: 0 scan ap down ap down SID MAC security rssi chn Mbps ------------------------------- ----------------- -------------- ---- --- ---- 00:00:00:00:00:00 UNKNOWN 0 281 0 00:00:00:00:00:00 OPEN 0 0 0 00:00:00:00:00:00 OPEN 0 0 0 00:00:00:00:00:00 OPEN 0 0 0
国际哥
2020-03-30
这家伙很懒,什么也没写!
在 continue之前打印result看下返回值
sync
2020-03-30
这家伙很懒,什么也没写!
打印的返回值都是-4
sync
2020-03-30
这家伙很懒,什么也没写!
单步调试几乎每次都走到这里 ``` if ((cmd.M2S_len == 0) && (resp.S2M_len == 0)) { result = -RT_EEMPTY; } ```
sync
2020-03-31
这家伙很懒,什么也没写!
>在 continue之前打印result看下返回值 --- 你好,板子上的flash芯片已经去掉了,spi3单独连接rw007,还是一样的情况,还有可能是哪里问题呢?
sync
2020-03-31
这家伙很懒,什么也没写!
可以结帖了,反复测试发现,是spi_wifi_rw007.c文件的关系,不要使用最新版本 使用下面这个版本的就可以了,速度慢些,总算是可以使用啊 ``` /* * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2014-07-31 aozima the first version * 2014-09-18 aozima update command & response. * 2017-07-28 armink fix auto reconnect feature * 2018-12-24 zyh porting rw007 from rw009 * 2019-02-25 zyh porting rw007 to wlan */ ```
撰写答案
登录
注册新账号
关注者
0
被浏览
1.9k
关于作者
sync
这家伙很懒,什么也没写!
提问
12
回答
412
被采纳
78
关注TA
发私信
相关问题
1
问个问题,ili9320驱动里面rt_hw_lcd_draw_blit_line 这个函数是干什么用的
2
LCD双缓冲有什么好的办法实现
3
LCD NT35510 驱动代码
4
io设备驱动的疑惑与建议
5
液晶屏驱动 U8g2 移植
6
求助:在模板上添加LCD模块出现L6406E错误
7
hwtimer硬件定时器驱动和使用经验
8
硬件定时器超时时间计算问题
9
请教spi驱动lcd显示屏问题
10
rtt-master(3.1.1)bsp—armfly中drv_lcd.c中是不是错了啊?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
简单两步配置RTT源码阅读环境 vsc+clangd
2
恩智浦[FRDM-MCXN947]初探 之 ADC与DAC
3
LVGL使用字库IC芯片显示中文
4
基于STM32H750和Rt-Thread的CANFD通信实现的记录(一)
5
freemodbus主机在freertos的适配,参考rtthread例程
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
805
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部