你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STMF767Nucleo扩展板实验一 【程序在QSPI Flash内运行】

[复制链接]
lebment 发布时间:2019-10-29 14:15
  之前分享了,STMF767Nucleo的扩展板,https://www.stmcu.org.cn/module/forum/thread-621811-1-1.html,https://www.stmcu.org.cn/module/forum/thread-622164-1-1.html,
( H* m7 t" I- F# }3 y! z- H, zhttps://www.stmcu.org.cn/module/forum/thread-621674-1-1.html。. o: o* c7 J% ?
  _0 L1 g9 ^6 w
这次分享一下,在W25Q128上运行程序的教程。$ T7 A% W' u' }/ P8 o3 A+ L
  首先看看手册, 批注 2019-10-29 140045.png ,QSPI可以映射到内部,QSPI Flash地址参考手册Bank1地址0x90000000,QSPI Flash 没有onchip flash快,最好是开Cache 开TCM interface,最快133MHZ,我画的板子没有那么快的速度,所以只能凑合用(全速216MHZ时钟、FLash Pres 设置为2可以正常读写)。
" `; c. _) \4 n! K1 U/ Z7 [- _' p) \0 }( f. U  V
在外部flash运行,要么bootloader跳转、要么设置OB中的Boot0 启动地址。: |8 z4 Y+ i1 t$ @- b9 \
这里我只给出bootloader方式启动。" h, R6 r2 a+ k& c5 }/ m+ w" s& i
+ ?" t4 c/ z5 e0 |9 e& A: Y3 `
伪中文代码:0 o% ^( _; j8 f- H
main{/ Y4 l$ j4 I% O7 `% h1 T: {
初始化时钟;' a5 ^* p& w2 S! p/ z' h# M
初始化QSPI;
) x3 S3 X/ [7 [读FlashID 确保Flash存在且容量足够
6 e  E: D; d* ^* @0 E关系统时钟中断  N1 }( Y6 s9 @, z! ^1 e4 L, k
跳转- f. w" Q4 G3 W/ i
}
& ]' n' I( l, n6 [, Q" a为何给出伪代码原因: 系统不一样,我觉得给出一个模板就可以了,有时候系统时钟不一定是systick 也有可能是tim,自己选择关中断。
0 G+ f" Y  Q  m1 n, H0 x, f+ p7 ]5 o1 s) {* R5 O
APP程序:1 a! y6 L! y# q, a; E
main{& z) M1 [8 F( K6 t' Q( u- V0 c$ |
你的应用;
+ C/ O4 l9 q1 T/ ^" I/ x, e# ?* f
}
, [) L5 ~4 j) a% N, t修改中断向量偏移地址 ,编译器的起始地址。这里我是0x90000000,MDK魔法棒设置flash 0x90000000。* I2 Q8 {* W  u: _3 ~
  _2 ^+ M9 I: m, {6 f: D# Q
用MDK烧写W25Q128 Flash,然后开始运行。(烧写算法自己写的,如果要扩展板,我再发flm文件)
  o! q. V; A$ `1 y 批注 2019-10-29 141309.png
: j7 q2 _- \1 N0 c' j" _,我这里使用FreeRTOS 发送msg  闪烁LED。 批注 2019-10-29 143301.png   x0 V9 b. f8 v  y! s
5 w3 o( R; h( S5 F
- D4 [7 M* Z) [) K4 a* T8 w7 ^  P

. |3 r  I8 u  q& P
赞 收藏 1 评论1 发布时间:2019-10-29 14:15

举报

1个回答
Kevin_G 回答时间:2019-10-30 09:43:41
收藏
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版