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

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

[复制链接]
STMCU小助手 发布时间:2021-12-22 14:45
1.前期准备
: D; N$ l: C/ d- R. okeil安装
: c9 E& l# O4 h6 N" tslink安装
" H8 @' f* \$ }: P% XSTM32Cube安装
$ h( _$ L, m, d! C5 X
" `: M. G4 D- g2.开发配置
8 S& ~6 g! v% @& Q" `2 U& m按照 STM32H7开发指南-HAL库版本_V1.0 配置
; E$ C3 Y; |' O) q
# |$ N4 r/ C4 C. ~$ |+ k% D3.整体把控
  U' K. l) l7 o* i0 S% I1) AXI线:(AXI线在STM32H7中有着举足轻重的作用。高并发性全靠这个总线了) 0 @" y0 w" m5 i. U
AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。AXI 是AMBA 中一个新的高性能协议。AXI 技术丰富了现有的AMBA 标准内容,满足超高性能和复杂的片上系统(SoC)设计的需求。
/ X, ]  e5 o1 B; t
# \  R: _0 J' l: I: NAXI的特点编辑5 z( k: c0 U* T2 H* l2 I' ?

, U. \3 o1 c: \' J, k单向通道体系结构。信息流只以单方向传输,简化时钟域间的桥接,减少门数量。当信号经过复杂的片上系统时,减少延时。
5 E* x. S! {7 ^7 ~- R2 e5 x2 K; K支持多项数据交换。通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。3 K5 J6 g/ m5 Y6 W) U' F8 ]
独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。' ?! O. u9 L% z4 z6 J" f$ o
增强的灵活性。AXI技术拥有对称的主从接口,无论在点对点或在多层系统中,都能十分方便地使用AXI技术。
4 X- J& g/ Q* x1 q5 v8 H# v2 I9 @" \) z, |- f
2)keil MDK需要使用 go to def (跑到定义)的话需作如下操作
8 c) H' f9 x4 Q* I
: e& Q% ?/ X! i5 g8 V3 P1 m- o5 {8 n
20200107134641172.png
1 _3 a# H. ]0 w1 [: Q" V

1 o! ^  F/ i! `5 |1 i% A& ^7 [$ K  Q
8 z1 r0 Q% h3 n  {

* g! h; c$ B) q) `! r( j( @3 S0 @% w" ?* ^
10.STM32H7的FLASH,RAM和栈使用情况
; W! f1 {% r  E; kROM, FLASH和RAM的区别

( O" \" K; `. s3 ^5 ?+ m4 ^1 l- L2 |ROM: 只读存储器-因而常用于存储各种固化程序和数据。
6 w) r  B+ r2 H$ _+ xRAM: 随机存储器-所以主要用于存储短时间使用的程序.它主要用来存储程序中用到的变量。凡是整个程序
. \$ q+ ?  b+ ~% \( O% M7 R) _! t' \中,所用到的需要被改写的量(包括全局变量、局部变量、堆栈段等),都存储在RAM中。: C% {5 E  v( I  q, Y9 R3 A
flash: 闪存-因此适合用于做程序存储器。! n$ w& h% Y) m) C7 \# t

8 r: s2 m6 m! r+ b/ a  I11.第11章看得云里雾里的,哈哈,先放一放
" i7 R1 f, W7 D. Q$ |12. STM32H7的HAL库框架设计学习
; {! f8 D/ P/ E- R. @" A+ I7 h: T/ M% P8 R' c
1)每一次开发新的芯片时都得先设置晶振
3 P/ C" d2 {& W5 wHAL库有一个专门的配置文件叫stm32h7xx_hal_conf.h***, 这个文件里面有一个很重要的参数,就是HSE_VALUE*,大家所设计板子使用的实际晶振大小一定要与这个数值一致。比如H750的外置晶振是25MHz,那么这里就务必配置宏定义为:4 S5 j7 p+ T, B% p* \
#define HSE_VALUE ((uint32_t)25000000)
% n9 ?. |" I  `4 n& m7 R* d2 o! H; f
2)MCU,CPU,MPU,DSP( D+ ~# V; [* ], N" j+ f5 i

2 a4 l1 Q5 F6 P6 h  @13. STM32H7启动过程详解
! K1 c" Y* a* n  {. L) p7 M& z3 j1) 启动文件
2 P5 F/ z1 Q. b/ x5 V% [* n2 b启动文件主要完成如下工作,即程序执行过程:
9 c4 ]; b6 P# D+ h! x  ~, P/ b4 C5 d
  1. 设置堆栈指针SP = __initial_sp。
复制代码
  1. 设置PC指针 = Reset_Handler。
复制代码
  1. 设置中断向量表。
复制代码
  1. 配置系统时钟。
复制代码
  1. 配置外部SRAM/SDRAM用于程序变量等数据存储(这是可选的)。
复制代码
  1. 跳转到C库中的 __main ,最终会调用用户程序的main()函数。
复制代码
  J4 r1 {8 L1 \% m: X4 X, t0 V5 |2 ~
Cortex-M内核处理器复位后,处于线程模式,指令权限是特权级别(最高级别),堆栈设置为使用主堆栈MSP。3 M2 g5 H$ V/ t
: U2 o. C& }' n- e
2) BOOT启动模式(H7只需要用boot0 ,我的毕业设计是接地)
' H4 S* @0 d- t; l
- P! g# n" G* D% w关于DMA,TCM(ITCM和DTCM)和CacheDMA
1 Y5 V5 w$ Q( tDMA: 这是一种通过硬件实现的数据传输机制
4 p  l) w5 P& f) @  ?TCM: ITCM是cortex内核中指令传输总线,DTCM是cortex内核中数据传输总线, 是cpu内核同flash及sram之
, X% ~# j2 r8 O" t1 Y+ p间传输指令和数据的通道,
" [: S2 O6 r; M8 d1 W9 |: bCache:Cache是集成在CPU内部的极高速的缓存,CPU外设的暂时数据存储,(信差),CPU,访问外设前,先访问它,
$ F5 T- w9 ], K: P. {如果有数据,就直接拿其数据,没有的话再访问外设
6 J+ L0 U6 Q5 J' }$ d$ ^- j- F% f( X- @* C

; E* b; K2 ^) m6 m
收藏 评论0 发布时间:2021-12-22 14:45

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版