Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
SFUD
潘多拉开发板_Pandora
SFUD 提示闪存超过32g
发布于 2020-12-03 14:29:20 浏览:2697
订阅该版
使用官方提供潘多拉开发板IoT_Board-1.2.0的实例程序19_iot_mqtt(应该很多示例程序都会这样),下载后重启板子就出现闪存大小超过32g的错误,导致挂在不上 ``` \ | / - RT - Thread Operating System / | \ 4.0.1 build Dec 3 2020 2006 - 2019 Copyright by rt-thread team lwIP-2.0.2 initialized! [32m[I/sal.skt] Socket Abstraction Layer initialize success.[0m [SFUD] Error: The flash capacity is grater than 32 Gb/ 4 GB! Not Supported. [SFUD] Warning: This flash device is not found or not support. [SFUD] Error: w25q128 flash device is initialize fail. ERROR: SPI flash probe failed by SPI device qspi10. ```
查看更多
7
个回答
默认排序
按发布时间排序
木又寸
2022-07-17
这家伙很懒,什么也没写!
板载FLASH: NM25Q128EV 在sfud_flash_def.h添加相关信息,参考:https://github.com/armink/SFUD/blob/master/sfud/inc/sfud_flash_def.h 已经正常挂载了。
zhd
2023-05-27
这家伙很懒,什么也没写!
sfud_sfdp.c文件中,read_basic_table函数负责解析读取到的JECED闪存基本参数表,打开sfud调试带打印可以看到从NM25Q128的参数表: ```c [175] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:203) JEDEC basic flash parameter table info: [186] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:204) MSB-LSB 3 2 1 0 [197] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0001] 0xFF 0xF9 0x20 0xE5 [207] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0002] 0xFF 0xFF 0xFF 0x07 [217] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0003] 0x6B 0x08 0xEB 0x44 [228] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0004] 0xBB 0x84 0x3B 0x08 [238] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0005] 0xFF 0xFF 0xFF 0xFE [248] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0006] 0xFF 0x00 0xFF 0xFF [258] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0007] 0xEB 0x44 0xFF 0xFF [269] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0008] 0x52 0x0F 0x20 0x0C [279] D/SFUD: (../rt-thread/components/drivers/spi/sfud/src/sfud_sfdp.c:206) [0009] 0xFF 0x00 0xD8 0x10 ``` ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20230527/445f57114cc45172e9fe521e04b04d92.png.webp) 表中第二行就是flash的容量大小,16M -> 0x07FFFFFF bit。而read_basic_table函数中解析该信息的代码是 ```c /* get flash memory capacity */ uint32_t table2_temp = ((long)table[7] << 24) | ((long)table[6] << 16) | ((long)table[5] << 8) | (long)table[4]; switch ((table[7] & (0x01 << 7)) >> 7) { case 0: sfdp->capacity = 1 + (table2_temp >> 3); break; case 1: table2_temp &= 0x7FFFFFFF; if (table2_temp > sizeof(sfdp->capacity) * 8 + 3) { sfdp->capacity = 0; SFUD_INFO("Error: The flash capacity is grater than 32 Gb/ 4 GB! Not Supported."); return false; } sfdp->capacity = 1L << (table2_temp - 3); break; } ``` 可以看到table2_temp拼接字节时,[4]作为最低字节,[7]作为最高字节,这和读出的表顺序相反,想要成功解析这张表,改一下这里就好了。 ```c /* get flash memory capacity */ // uint32_t table2_temp = ((long)table[7] << 24) | ((long)table[6] << 16) | ((long)table[5] << 8) | (long)table[4]; //对NM25Q128高低字节要反过来解析,芯片bug? uint32_t table2_temp = ((long)table[4] << 24) | ((long)table[5] << 16) | ((long)table[6] << 8) | (long)table[7]; // switch ((table[7] & (0x01 << 7)) >> 7) { switch ((table[4] & (0x01 << 7)) >> 7) { case 0: sfdp->capacity = 1 + (table2_temp >> 3); break; case 1: table2_temp &= 0x7FFFFFFF; if (table2_temp > sizeof(sfdp->capacity) * 8 + 3) { sfdp->capacity = 0; SFUD_INFO("Error: The flash capacity is grater than 32 Gb/ 4 GB! Not Supported."); return false; } sfdp->capacity = 1L << (table2_temp - 3); break; } ``` 猜测是NM25Q128的问题?
张世争
2020-12-03
学以致用
你这问题必现吗? 我的不会?需要更新下代码? ``` msh > \ | / - RT - Thread Operating System / | \ 4.0.0 build Dec 3 2020 2006 - 2018 Copyright by rt-thread team lwIP-2.0.2 initialized! [I/SAL_SOC] Socket Abstraction Layer initialize success. [SFUD] Find a Winbond flash chip. Size is 16777216 bytes. [SFUD] w25q128 flash device is initialize success. msh />[I/FAL] RT-Thread Flash Abstraction Layer (V0.2.0) initialize success. ```
mijjjj
2020-12-03
这家伙很懒,什么也没写!
刚才跟原子电子那边沟通了,可能是W25Q128有问题,需要回厂返修。 刚买的就遇到这种问题查了好几天资料,郁闷了
whj467467222
认证专家
2020-12-03
开源,分享,交流,共同进步
可以拿着放大镜好好看看 FLASH 的丝印,确定一下是不是 W25Q128
xiaoyu
2020-12-30
这家伙很懒,什么也没写!
我也遇到这个问题了
wsccyp
2021-05-23
这家伙很懒,什么也没写!
我也遇到这个问题了,换了个winbond的w25Q128好了,单片机上的那个芯片是开发板上拆下来的。 ![e21416d8ab35feefa3b9a62154378988.png](https://oss-club.rt-thread.org/uploads/20210523/e21416d8ab35feefa3b9a62154378988.png)
撰写答案
登录
注册新账号
关注者
0
被浏览
2.7k
关于作者
mijjjj
这家伙很懒,什么也没写!
提问
1
回答
1
被采纳
0
关注TA
发私信
相关问题
1
【分享】如何使用 SFUD 库来操作 SPI Flash 设备
2
SFUD怎么使用
3
请教大家一下关于 SFUD 的的问题
4
移植sfud
5
使用SFUD操作FLASH
6
env使用easyflash不是3.2.4版本,而且没有type插件?
7
新增了W25X32设备成功,无法格式化
8
easyflash随着数据存储量增加,耗费时间加长
9
关于SFDP的问题
10
spi nand flash 能使用SFUD驱动吗
推荐文章
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
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部