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

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

[复制链接]
STMCU小助手 发布时间:2021-12-22 14:45
1.前期准备4 ^5 E( K' y* f! v6 Y7 I" H
keil安装
  G& ^7 x! C( m7 gslink安装
6 `. c1 Q2 t! H, {3 j+ `9 LSTM32Cube安装
5 e6 p3 q/ q" M. J. Q
/ n. h/ T# S$ [2.开发配置6 L# F- @/ A6 |" B! }
按照 STM32H7开发指南-HAL库版本_V1.0 配置; z( P" B; y, _% D5 }

# R3 `, ~1 z$ d% O" t* b# B0 S3.整体把控. ]7 O! }4 X2 |2 j& p- I
1) AXI线:(AXI线在STM32H7中有着举足轻重的作用。高并发性全靠这个总线了) " {, j1 g: w: n  x- h  b2 Z: R
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
7 ^- G# ^9 F5 u4 S
" S8 e) J" y" ~" s5 @5 B2 ]3 b1 qAXI的特点编辑
9 ~$ x4 M* N# y+ w- \4 g# R6 }, u. y2 n
单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。
  f- p: h+ z$ Y8 R支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。" D8 o+ f4 y) w# G/ [9 z
独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。9 B. y0 B- _0 p
增强的灵活性。AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。
7 F0 q  R4 F$ {: q( \9 ^2 z9 i
" x+ @' s* [7 m7 F2)keil MDK需要使用 go to def (跑到定义)的话需作如下操作
  S% h  _4 z5 ]
, e  X+ p! a8 E) D  {* J% S
20200107134641172.png

/ Z# D9 B6 ?& z: m+ h; J, O1 u
4 t2 Q- ^4 `  Z7 g  {& M0 t2 k3 B+ f2 w/ H% S

, i! h) ]/ K" w$ y" o7 h8 Q3 U8 L

3 X+ L( q8 V+ U1 A5 U: K0 Z  r10.STM32H7的FLASH,RAM和栈使用情况
9 |) Y" B; [+ s7 A! P( AROM, FLASH和RAM的区别
1 d3 O6 |8 L/ f% c; l2 U/ _
ROM: 只读存储器-因而常用于存储各种固化程序和数据。
8 s+ J: i2 U" u$ c/ o$ mRAM: 随机存储器-所以主要用于存储短时间使用的程序.它主要用来存储程序中用到的变量。凡是整个程序
4 \0 |/ k! r9 p3 i  ~中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。% [6 f- `  V' e
flash: 闪存-因此适合用于做程序存储器。! G% Z. ?0 B$ Q5 |: a  i$ B

7 M; R% q, ~* |' f11.第11章看得云里雾里的,哈哈,先放一放
9 `  {0 }, j* k. c5 p12. STM32H7的HAL库框架设计学习: ?& ?4 t% [2 z+ _

- l% F5 P" l7 Y5 ^1)每一次开发新的芯片时都得先设置晶振4 ?/ E. ^7 a4 l
HAL库有一个专门的配置文件叫stm32h7xx_hal_conf.h***, 这个文件里面有一个很重要的参数,就是HSE_VALUE*,大家所设计板子使用的实际晶振大小一定要与这个数值一致。比如H750的外置晶振是25MHz,那么这里就务必配置宏定义为:5 J) w% Z! v# L5 o- r
#define HSE_VALUE ((uint32_t)25000000)
! P" H( s* k5 ]. E/ |$ }, k; Z( W8 m/ v& w  o1 c' J
2)MCU,CPU,MPU,DSP
% b. T6 t2 t0 @; r9 ?- a3 _
% i3 v) G- Q' X* q13. STM32H7启动过程详解
! k: Y1 T  C8 n. C7 \1) 启动文件
( x# N. R& x' q- v启动文件主要完成如下工作,即程序执行过程:  ?- V; x' {& @8 U+ ?
/ F7 R' n% {$ r- J4 `
  1. 设置堆栈指针SP = __initial_sp。
复制代码
  1. 设置PC指针 = Reset_Handler。
复制代码
  1. 设置中断向量表。
复制代码
  1. 配置系统时钟。
复制代码
  1. 配置外部SRAM/SDRAM用于程序变量等数据存储(这是可选的)。
复制代码
  1. 跳转到C库中的 __main ,最终会调用用户程序的main()函数。
复制代码
3 P; x/ V2 g9 e8 F$ i) K
Cortex-M内核处理器复位后,处于线程模式,指令权限是特权级别(最高级别),堆栈设置为使用主堆栈MSP。
0 ]) I8 [" I% L3 C- n) E3 G. [4 s2 K8 |/ Y3 X
2) BOOT启动模式(H7只需要用boot0 ,我的毕业设计是接地)* X. k) m3 l+ a4 s4 G: f

. q) ^  O& @4 T% C. S关于DMA,TCM(ITCM和DTCM)和CacheDMA
  X: Z" [3 \7 KDMA: 这是一种通过硬件实现的数据传输机制$ E0 O& `1 P+ b: d7 T* d
TCM: ITCM是cortex内核中指令传输总线,DTCM是cortex内核中数据传输总线, 是cpu内核同flash及sram之2 T( L! m/ B, x& O' `
间传输指令和数据的通道,3 q8 v% v" I3 V6 U
Cache:Cache是集成在CPU内部的极高速的缓存,CPU外设的暂时数据存储,(信差),CPU,访问外设前,先访问它,0 D) l" T2 g+ J9 u; Z9 f
如果有数据,就直接拿其数据,没有的话再访问外设! F& Q, |% t6 X: s+ W4 H1 o5 k

+ L% u) C$ S6 }9 T3 F
8 q, \+ z$ f! R
收藏 评论0 发布时间:2021-12-22 14:45

举报

0个回答

所属标签

相似分享

官网相关资源

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