之前分享了,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, https://www.stmcu.org.cn/module/forum/thread-621674-1-1.html。* y/ C r4 o- ]' e) z 这次分享一下,在W25Q128上运行程序的教程。 首先看看手册, . m: v8 R" g# K& A3 C' p 在外部flash运行,要么bootloader跳转、要么设置OB中的Boot0 启动地址。 这里我只给出bootloader方式启动。! u8 N) h9 X; e2 W 5 X: h o1 ~ l: g" [) d2 t( e6 H 伪中文代码: main{) M' W% V3 O' {* ^# _, V 初始化时钟;- ]: c' v" C+ Q8 ~9 F 初始化QSPI;8 j$ U) [5 A' Y 读FlashID 确保Flash存在且容量足够2 @! d L! T. O5 Y: f% b; ]* | 关系统时钟中断 跳转' o3 |9 I5 f+ B/ z7 b }9 _3 H* K1 F ^! n 为何给出伪代码原因: 系统不一样,我觉得给出一个模板就可以了,有时候系统时钟不一定是systick 也有可能是tim,自己选择关中断。 0 t j. h1 q3 E/ D APP程序: main{ 你的应用; 1 m* H9 e: u, D8 d3 `$ | } 修改中断向量偏移地址 ,编译器的起始地址。这里我是0x90000000,MDK魔法棒设置flash 0x90000000。 用MDK烧写W25Q128 Flash,然后开始运行。(烧写算法自己写的,如果要扩展板,我再发flm文件) ,我这里使用FreeRTOS 发送msg 闪烁LED。 , s M6 T( d) \( {3 {- u |
收藏 |