OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4209|回复: 4

单片机读写外部nor flash需要关中断嘛?

[复制链接]

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
发表于 2017-12-6 18:50:21 | 显示全部楼层 |阅读模式
1金钱
<1>使用单片机外设自带的硬件spi。
<2>外部nor flash使用战舰开发板自带的w25q128。

额,看网上帖子,很多人说未关中断读写flash时导致进入HardFault中断。
请问,如果读写外部nor flash,是否有必要关中断?为什么?

恳请指教,感谢!

最佳答案

查看完整内容[请看2#楼]

时间没有限制,只要期间别的程序不要来操作SPI,也不要动CS就可以。 一般在软件上,对SPI做软件互斥。驱动上,最好使用DMA,这样传输过程中有中断也不影响速度。
电子爱好者
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2017-12-6 18:50:22 | 显示全部楼层
时间没有限制,只要期间别的程序不要来操作SPI,也不要动CS就可以。
一般在软件上,对SPI做软件互斥。驱动上,最好使用DMA,这样传输过程中有中断也不影响速度。
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-12-6 23:47:41 | 显示全部楼层
没必要
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2017-12-7 11:48:59 | 显示全部楼层

感谢原子哥百忙之中抽空指教!

有点疑问,还想麻烦原子哥指点!如下如所示:
000.png
我随意从w25q128的说明手册上截取一个指令。假设在写入指令码后(还没有写入读取数据的地址之前)发生了中断,假设经过X时间之后,才回来并重新写入flash地址。

问题:flash会不会对这个X时间长度有限制?
PS:我在想,如果单片机维护一个足够大的缓存(硬件寄存器组),将整个读flash指令都推送到这个硬件寄存器组中,那么后续操作自然都是硬件自动完成,当然不需要CPU参与。可是stm32没有,所以我有些怀疑,还请指正。

电子爱好者
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2017-12-7 14:07:37 | 显示全部楼层
aozima 发表于 2017-12-7 11:59
时间没有限制,只要期间别的程序不要来操作SPI,也不要动CS就可以。
一般在软件上,对SPI做软件互斥。驱动 ...

感谢aozima指教!
经过验证,您说的是正确的。实验如下:
<1>我在读和写函数上各加上1s延时。
<2>在0地址上写入0x123456,然后再读0地址数据,依然正确!
001.png 002.png 003.png
电子爱好者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 15:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表