STMCU小助手
发布时间:2021-12-21 22:16
|
83.1 初学者重要提示 操作本章配套例子前务必先将QSPI Flash的下载算法放到MDK安装目录。 本章节与第28章的时间关键代码在ITCM执行的设置思路是一样的,可以让大家对本章节的方法有个更全面的认识。7 F! w" w% G- g% _- T7 m' X: Z 9 r7 ^ `% ^5 j, Q 83.2 内部Flash和QSPI Flash混合执行程序的优势4 `+ j- z) f7 V" O- B1 | 现在大家使用H750或H743在外置QSPI Flash执行程序,都倾向于制作个BOOT,再制作一个运行在外置QSPI Flash的APP程序。即本教程第82章讲解的内容。 " ~2 ]" ~9 H% [5 |7 k 本章要实现的这种方式对于我们想外置QSPI Flash运行程序,在调试测试阶段更加方便,甚至是项目使用,可以性能最大化。 ( ?6 y: T+ p5 Q7 f" f 83.3 下载算法存放位置% s% X8 O8 x% b8 X& k4 R 编译例子:V7-060_QSPI Flash的MDK下载算法制作,生成的算法文件位于此路径下: 5 A" \3 g* w& M
5 o& L4 a9 w8 Z9 [ 生成算法文件后,需要大家将其存到到MDK安装目录,有两个位置可以存放,任选其一,推荐第2种: 第1种:存放到MDK的STM32H7软包安装目录里面:\Keil\STM32H7xx_DFP\2.6.0\CMSIS\Flash(软包版本不同,数值2.6.0不同)。 第2种:MDK的安装目录 \ARM\Flash里面。
83.4 内部Flash和QSPI Flash混合执行程序说明 混合程序的设置注意以下两点即可。 83.4.1 初始化QSPI Flash并设置内存映射模式/ O' D& _ \) C8 Q' j, E" f 在bsp.c文件中初始在bsp.c文件中初始QSPI Flash并设置为内存映射模式。注意,配置好时钟后,优先初始化QSPI Flash并设置为内存映射模式:8 B7 T* V! ~% w" A# c1 k $ s2 v! }5 D0 d0 q
83.4.2 设置运行在内部Flash和QSPI Flash的程序6 Z* e, ]* e, I: N e; d$ W 由于我们要把QSPI Flash初始化并设置为内存映射模式后才可以使用QSPI Flash运行程序,所以要在QSPI Flash运行程序之前的所有操作都在内部Flash里面实现,主要是滴答定时器,RCC,QSPI和HAL库等相关配置。其它所有程序都可以在外部QSPI Flash执行:3 ?; F: ?) d7 n/ V1 x" G% ~ ) b. _' V" T$ x+ g% |8 E' P
' E. m( J( W9 _9 k% J( Y 83.5 内部Flash和QSPI Flash程序调试下载配置 将下面两个地方配置后,就可以像使用内部Flash一样使用QSPI Flash进行调试了。并且这种方式可以方便的调试程序,内部Flash和外部Flash都做调试。/ M! S+ y5 N$ Z$ y! H; x: W & o% k5 t" ~1 u O 83.5.1 下载配置5 z, b% k# A* K& Y" X3 O 注意这里一定要够大,否则会提示算法文件无法加载:
% X" p" k [# d* N: ~5 {- c7 o5 _ 我们这里是将其加到DTCM中,即首地址为0x20000000,大家也可以存储到任意其它RAM地址,只要空间还够加载算法文件即可。推荐使用AXI SRAM(地址0x24000000),因为这块RAM空间足够大。 如果要下载程序到内部Flash和外部QSPI Flash里面,需要做如下配置,两个下载算法都要添加进来:. k% y7 T% \$ \7 h. M 1 E- z* c7 O) R
/ W% s- f9 e3 O* m8 n 83.5.2 调试配置 注意这里一定要够大,否则会提示算法文件无法加载:$ u- P. e$ ~9 X 3 H6 v( Z. o* e& g% \ 3 u+ n0 S9 L* `. `5 U 我们这里是将其加到DTCM中,即首地址为0x20000000,大家也可以存储到任意其它RAM地址,只要空间还够加载算法文件即可。. O% N- w) t. }) k+ q. ]: b 如果要做调试下载,需要做如下配置:; X; Q+ M, T' }0 @, k9 A * s( [# b8 B8 |! ]1 j# O7 ?5 e
! C8 i. \9 i, ` w 83.5.3 程序调试效果8 }% d2 N# V. P) _8 \ 调试效果如下: " L, i' A: c3 L3 J* b
83.6 实验例程说明 本章节配套例子:V7-064_内部Flash和QSPI Flash都运行程序的混合方式,无需单独制作BOOT和APP(强烈推荐), T' Y& ^; b$ u& |) u: u
编译此程序弹出的警告不用管,可以选择屏蔽此警告:5 o5 F+ f9 H8 b% S$ b 7 w6 _, R6 c# W 83.7 总结+ R0 x" ?; \. m: [ 本章节就为大家讲解这么,为了熟练掌握,大家可以尝试自己实现一个内部Flash和外部Flash混合运行的程序。. q+ U6 y9 _" t3 R6 ? 6 [# z5 c$ m5 r' U: R, x' I ' f; H) w7 h: T8 ` [# e1 q ( M" w0 d: v% Y' e2 U, t% V |
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
【STM32H735G-DK测评】ADC3+TIMER1+DMA 采样模拟信号
【STM32H735DK测评】Ethernet+lwip DHCP获取IP地址
STM32H743基于CubeMx5.0配置手册
【STM32H735G-DK测评】lvgl移植
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
【福利三:逢7发帖赢大礼】使用MPU6050模块、img_dsc、img_btn机制实现一些简单有趣的动画效果
【福利三:逢7发帖赢大礼】使用arc弧形拉条控件控制PWM舵机及使用SPI3接口操作NRF24L01模块进行无线通信
【福利三:逢7发帖赢大礼】调试nucleo-WBA65RI工程测试样板的一些心得
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
微信公众号
手机版