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

【经验分享】学习stm32H7之路开始(STM32H7系列1) 前期准备,HAL库框架

[复制链接]
STMCU小助手 发布时间:2021-12-22 14:45
1.前期准备' B6 j# f: u3 S( x, f
keil安装
8 o' D' \! R& L: |1 c0 J/ Uslink安装
4 Q* M& d$ g( N" n+ GSTM32Cube安装$ M! E8 q4 d8 j/ }1 K) d5 W
( M  T; T+ Q% l7 O) t3 G; w
2.开发配置
" J, f1 ?% H) u" {' _按照 STM32H7开发指南-HAL库版本_V1.0 配置9 V' U+ T5 T; g$ O

* D5 C4 o3 [( O9 t* @; r7 T( N5 ^3.整体把控
1 n9 `5 v3 T  d# s# x; _/ g1) AXI线:(AXI线在STM32H7中有着举足轻重的作用。高并发性全靠这个总线了) - r1 w3 y5 G4 X  ]# H3 p
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
( h% [9 @1 `1 |7 }
" ^& Z" X" Z" v* h: c& O: `AXI的特点编辑/ M7 V. Y5 ?( H4 r0 Y! X, B9 s" ~
% v( d" n0 d" _) G4 y. @+ l! I  s
单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。& e  Q$ L' Y/ [! a0 D- O( N
支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
! ?5 u" K1 C8 ?) P1 @独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。8 l1 [" v4 p9 [6 F5 q
增强的灵活性。AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。+ w: b, _+ ~5 ]8 j2 N
3 }. p9 ^6 |# n( q4 ]: ~
2)keil MDK需要使用 go to def (跑到定义)的话需作如下操作
. N9 n2 q5 ^( s0 C$ f' e  Y
1 z. ^( V0 O/ O" {
20200107134641172.png

! \4 k! T$ V! P' A- j/ q( T- I& \* E) Y/ Q
: L; d, N% e( O: `2 l

5 B: ~8 U  O3 C4 N2 t0 d$ h. @
' J9 }% x: n7 J$ N1 v. E+ }# d# k4 t
* g8 A- h2 ?3 ^+ D10.STM32H7的FLASH,RAM和栈使用情况; k! {* N/ |$ G
ROM, FLASH和RAM的区别

, O# d7 \0 f8 q/ s" OROM: 只读存储器-因而常用于存储各种固化程序和数据。
/ G( w5 G, @0 ^$ X, {+ |* TRAM: 随机存储器-所以主要用于存储短时间使用的程序.它主要用来存储程序中用到的变量。凡是整个程序" B& ]8 y- @* }6 O+ x
中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。
3 t" L" a$ l1 }3 ?/ }flash: 闪存-因此适合用于做程序存储器。0 p" A8 j5 O. _
. L' L: j7 s  ]/ j4 P7 [
11.第11章看得云里雾里的,哈哈,先放一放; I, X6 e1 w& k: J3 D: m
12. STM32H7的HAL库框架设计学习" h0 o7 W: s! L% e, _
2 f2 C& Y9 g& Z! T' c( v
1)每一次开发新的芯片时都得先设置晶振, B  b/ q1 z8 f+ j( _7 d6 b
HAL库有一个专门的配置文件叫stm32h7xx_hal_conf.h***, 这个文件里面有一个很重要的参数,就是HSE_VALUE*,大家所设计板子使用的实际晶振大小一定要与这个数值一致。比如H750的外置晶振是25MHz,那么这里就务必配置宏定义为:
/ Y5 w7 f! h! ?% J) z2 g% \#define HSE_VALUE ((uint32_t)25000000)
2 |( ^& ?$ d* n, Q6 T1 |
& x2 |% c# h$ K0 x  n" j2)MCU,CPU,MPU,DSP% Z/ g) {& r" D3 z9 C3 |) q8 Y; ^

8 A* K9 k3 ^2 X13. STM32H7启动过程详解: }. k( }3 P  Z, R( f8 ^; n: j
1) 启动文件2 N% K3 n: P5 `+ p# z& ]$ q
启动文件主要完成如下工作,即程序执行过程:  P* P+ V4 n6 q, o: Y% d

$ j/ m' F. _' ]& N
  1. 设置堆栈指针SP = __initial_sp。
复制代码
  1. 设置PC指针 = Reset_Handler。
复制代码
  1. 设置中断向量表。
复制代码
  1. 配置系统时钟。
复制代码
  1. 配置外部SRAM/SDRAM用于程序变量等数据存储(这是可选的)。
复制代码
  1. 跳转到C库中的 __main ,最终会调用用户程序的main()函数。
复制代码

! E" F7 R$ M9 p/ RCortex-M内核处理器复位后,处于线程模式,指令权限是特权级别(最高级别),堆栈设置为使用主堆栈MSP。
' R! n8 g& V  F. H1 E% O) D; m' b& P9 }5 x) O- z
2) BOOT启动模式(H7只需要用boot0 ,我的毕业设计是接地)
+ r" f! v- b* G, G5 B# U% G8 U# i1 w4 @
关于DMA,TCM(ITCM和DTCM)和CacheDMA$ g3 R% W* |! v. ?/ o
DMA: 这是一种通过硬件实现的数据传输机制& \% J- Y; J. _: B; V
TCM: ITCM是cortex内核中指令传输总线,DTCM是cortex内核中数据传输总线, 是cpu内核同flash及sram之
% O# K% w# w% z* J间传输指令和数据的通道,  W& t% E- J  d
Cache:Cache是集成在CPU内部的极高速的缓存,CPU外设的暂时数据存储,(信差),CPU,访问外设前,先访问它,( R& A$ D+ c% U. s% z' ~: F9 P+ g
如果有数据,就直接拿其数据,没有的话再访问外设
0 \8 g' |9 ^! G; \' N6 O0 C8 [$ ?# P* E' l

% P' G5 m% m; d1 O! n+ x
收藏 评论0 发布时间:2021-12-22 14:45

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版