关于jflash_spi烧录不通过自动识别下载flash

本文讲述了在调试过程中遇到的Flash无法自动识别问题,需手动连接并详细配置,包括页大小、页数量、SPI地址、numaddrbyte、sectorsize和statusregister等参数,以确保烧录成功,并提供了保存配置以备后续使用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调试过程中,发现用自动识别不能识别flash,只能通过手动连接,虽然能connect上,但是烧录一直失败校验失败。
后来自己去手动配置flash相关内容
分别是flash页大小,页数量,决定了flash的大小,一般大于烧录flash也没有关系
最主要的是numaddrbyte设置,这个是spi通讯的flash地址,我的是24bit地址,所以3个B
至于sectorsize不会影响flash大小,但是会影响烧录的速度。越大越快。我们一般按规格书的数量设置就行了。
最后在status register 设置busy bit ,否则不能烧录。
最后为了后面不用继续手配置数据,可以把这个烧录工程保存下来。
上面设置数据都是按16进制设置。

### JFlash 烧录返回值 1 的原因分析 当JFlash工具执行烧录操作并返回错误码1时,通常表示存在某种类型的失败。具体来说: - **硬件连接问题**:如果目标设备与编程器之间的物理连接稳定或正确,可能导致无法正常识别目标器件或数据传输中断[^3]。 - **配置设置当**:包括但限于波特率、电压等级等参数设定符合实际需求;另外,对于某些特定型号的MCU,在进行ISP(In System Programming)前可能还需要额外初始化一些寄存器。 - **文件兼容性问题**:待烧写的二进制映像(.bin/.hex)可能存在格式上的差异或是版本适配的情况,这会使得固件加载过程受阻。 针对上述情况提出的解决方案如下: #### 检查硬件环境 确认所有线缆已牢固插好,并且使用的接口适配于所选开发板。必要时可以尝试更换其他USB端口或者重新启动计算机来排除临时性的电气干扰因素。 #### 验证软件配置 仔细核对项目中的编译选项以及下载工具内的各项参数是否匹配官方文档的要求。特别是要注意CPU频率、工作模式等方面的选择应保持一致。 #### 更新/转换固件镜像 确保要刷入的目标程序是由对应平台支持的标准格式构建而成。如果是,则需利用专门的应用程序将其转化为合适的类型再做尝试。 ```c // 示例代码片段用于验证SPI通信状态 int spiCheckStatus(void){ int status; // 假设此处有函数获取当前SPI的状态 status = SPI_GetStatus(); if (status != SUCCESSFUL){ printf("SPI communication error.\n"); return ERROR; } return OKAY; } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值