之前分享了,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。5 F& S: y. P0 Y/ A, K+ D) t 这次分享一下,在W25Q128上运行程序的教程。: z# i- D6 S6 a. z5 t 首先看看手册, ( {, G; I! j- p( _: B 在外部flash运行,要么bootloader跳转、要么设置OB中的Boot0 启动地址。 这里我只给出bootloader方式启动。 伪中文代码:; S& s2 I8 D- x- A( ^# m# i1 `; _ main{ 初始化时钟;' x, Q% l& R4 K4 b8 b l. A 初始化QSPI;7 O" W6 M! m8 f( `5 f7 A! C2 V1 K 读FlashID 确保Flash存在且容量足够+ p/ T6 m! r2 [% \* n Y 关系统时钟中断" w! R4 E- B1 X 跳转+ p2 i8 K1 W7 I2 F1 d* p }) k2 [9 {0 i2 n8 k4 k 为何给出伪代码原因: 系统不一样,我觉得给出一个模板就可以了,有时候系统时钟不一定是systick 也有可能是tim,自己选择关中断。+ B. n% r3 E4 H APP程序: main{ s2 b/ x; |, {* w1 W- i 你的应用; 8 a5 \, i9 x: f5 j& L/ l+ g } 修改中断向量偏移地址 ,编译器的起始地址。这里我是0x90000000,MDK魔法棒设置flash 0x90000000。 用MDK烧写W25Q128 Flash,然后开始运行。(烧写算法自己写的,如果要扩展板,我再发flm文件)! v O% P# Y; l, M" g7 O+ C ,我这里使用FreeRTOS 发送msg 闪烁LED。 ; N0 Y7 H4 C6 Z6 V5 o! h0 { + a0 `: ]" P! D# _ |
收藏 |