当前位置: 首页 > wzjs >正文

网站与网页设计河南23个岗位无人报考

网站与网页设计,河南23个岗位无人报考,企业网app下载,wordpress 底部友情链接STM32Cube 生态系统是一套完整的 STM32 微控制器和微处理器软件解决方案。主要分为两类软件: 开发环境:全套 PC 软件工具,满足整个项目开发周期的所有需求。库函数:各种运行在 STM32 微控制器和微处理器上嵌入式软件模块。 开发环…

STM32Cube 生态系统是一套完整的 STM32 微控制器和微处理器软件解决方案。主要分为两类软件:

  1. 开发环境:全套 PC 软件工具,满足整个项目开发周期的所有需求。
  2. 库函数:各种运行在 STM32 微控制器和微处理器上嵌入式软件模块。

在这里插入图片描述

开发环境

  1. STM32CubeMX:使用图形用户界面可为生成初始化 C 代码
  2. STM32CubeIDE:一个集成开发环境。包含代码编辑、编译、下载、调试。
  3. STM32CubeProgrammer:二进制烧录工具。
  4. STM32CubeMonitor:监控工具,可帮助开发人员实时微调应用程序的行为和性能。

stm32g0xx_hal_foo

库函数

  1. STM32Cube packages:针对不同的系列,提供的驱动程序、中间件、应用例程;
  2. STM32Cube expansion packages:应用层库;

Drivers/CMSIS

CMSIS:Common Microcontroller Software Interface Standard,通用微处理器软件接口标准;由 ARM 公司定义的接口规范。

在这里插入图片描述

从应用层代码分析,忽略调试功能,CMSIS 包含如下几个模块:

  1. CMSIS-CORE:Cortex 核心内部寄存器定义与接口函数。
  2. CMSIS-RTOS:实时操作系统。
  3. CMSIS-DSP:数字信号处理优化函数库。
  4. CMSIS-NN:神经网络优化函数库。
  5. CMSIS-Driver:Cortex 外围设备寄存器定义与接口函数,提供统一接口给中间件。但 ST 并没有选择实现 CMSIS-Driver 接口规范,而是实现了自定义 Peripheral HAL 接口规范。

参考资料:

  1. 【主页】CMSIS
  2. 【文档】CMSIS
  3. 【源码】CMSIS_6

CMSIS-CORE

CMSIS-CORE 又由两部分组成:

  1. CMSIS-Core Standard Files:由 ARM 提供的 Cortex 核心接口函数
  2. CMSIS-Core Device Files:由 MCU 设备供应商提供,包含外围设备的接口函数
CMSIS-Core Standard Files

下图是 CMSIS-Core Standard Files 的头文件包含图:

CMSIS-Core Standard Files
cmsis_armcc.h
core_cm0plus.h
cmsis_compiler.h

首先分析 core_cm0plus.h,它由以下 5 部分组成:

  1. Core:核心状态和控制寄存器结构定义;这些寄存器没有映射到内存空间,所以无法通过普通的 C 语言访问。
  2. NVIC:Nested Vectored Interrupt Controller,嵌套向量中断控制器;定义寄存器地址、寄存器结构、操作函数;
  3. SCB:System Control Block,系统控制块;产生 Cortex 内部中断;定义寄存器地址、寄存器结构、操作函数;
  4. SysTick:System Tick Timer,系统滴答定时器;定义寄存器地址、寄存器结构、操作函数;
  5. MPU:Memory Protection Unit,内存保护单元;定义寄存器地址、寄存器结构、操作函数;

中间的 cmsis_compiler.h 只是一个简单的路由,用于确定实际的编译器后端。

最后 cmsis_armcc.h 用于访问核心状态和控制寄存器;如前面所说,这些寄存器没有映射到内存空间,无法通过普通的 C 语言访问,而是通过汇编将寄存器与内存进行交互。

总的来说,core_cm0plus.h 对外提供了操作 Cortex-M 内部设备和内部寄存器的功能。

  • 【文档】CMSIS-Core Standard Files
CMSIS-Core Device Files

下图是 CMSIS-Core Device Files 的头文件包含图:

User File
CMSIS-Core Standard Files
CMSIS-Core Device Files
main.c
core_cm0plus.h
system_stm32g0xx.h
stm32g030xx.h
stm32g0xx.h
system_stm32g0xx.c
startup_stm32g030xx.s

startup_stm32g030xx.s 是程序运行的起点,使用汇编语言编写;它的主要功能为:

  1. 定义中断向量表。
  2. 定义弱中断服务函数为死循环,使中断触发时,能正确跳转。
  3. 调用 SystemInit() 函数。
  4. 将数据段的内容从 Flash 复制到 SRAM。
  5. 调用 __libc_init_array() 函数,初始化全局变量和静态对象。
  6. 调用 main() 函数。

由于启动文件使用汇编语言编写,不同的编译器汇编语法不同,所以 STM32Cube MCU Package 提供了三种启动程序模板,分别对应的编译器与 IDE:

编译器IDE
ARMRealView Microcontroller Development Kit(MDK-ARM)
GCCSTM32CubeIDE
IARIAR(EWARM)

system_stm32g0xx.c 提供 SystemInit(),正常来说该函数应初始化系统时钟、外部存储等配置、自定义中断向量表地址等系统初始化配置;但对于最小系统来说,它可以为空。

stm32g0xx.h 是简单的设备路由。stm32g030xx.h 定义外围设备寄存器地址、寄存器结构,并包含 core_cm0plus.h 内部设备和寄存器定义,所以该文件是用户直接进行寄存器操作的基础,也是 LL 和 HAL 库的基础。

  • 【文档】CMSIS-Core Device Files
  • 【源码】cmsis-device-g0

Drivers/STM32G0xx_HAL_Driver

内含设备的 HAL 和 LL 驱动,主要用于操作外围设备,并进一步封装了 Cortex 内部设备操作函数。前者 HAL 接口规范确保在 STM32 产品组合中实现最大程度的可移植性;后者 LL 接口确保高性能,用于替代早期的 SPL 标准外设库。以下是英文缩写全称:

  • HAL:Hardware Abstraction Layer,硬件抽象层;
  • LL:Low-Layer,底层;
  • SPL:Standard Peripheral Libraries,标准外设库;因不利于 STM32 产品间移植,已被更高抽象层 HAL 替代;或者被性能更优的 LL 替代。

其实 CMSIS-Driver 定义了外设接口规范,这样中间件可以很轻松的对接这些外设。但 ST 并没有遵循该接口规范,而是自定义了 HAL 接口规范;初步怀疑是 CMSIS-Driver 规范限制了 ST 外设特有的功能,所以 ST 自己构建 HAL 接口,使其外设能发挥最佳状态。

HAL 与 LL 的调用图如下:

CMSIS-Core Device Files
STM32 LL Driver
STM32 HAL Driver
stm32g0xx.h
stm32g0xx_ll_foo.h
ll_main.h
stm32g0xx_ll_foo.c
stm32g0xx_hal.h
hal_main.h
stm32g0xx_hal_def.h
stm32g0xx_hal_foo.h
stm32g0xx_hal_conf.h*
stm32g0xx_hal_foo.c
  1. stm32g0xx_hal_def.h:统一 HAL 库内部所需的所有底层头文件。
  2. stm32g0xx_hal_conf.h:定义需要使用哪些外设,缩小编译大小;该文件需要用户定义。
  3. stm32g0xx_hal_foo.h:某一外设对外提供的操作函数。
  4. stm32g0xx_hal.h:定义 HAL 外部接口,包括所有 HAL 函数声明。
  • 【源码】stm32g0xx-hal-driver

Drivers/BSP

板级支持包。

Middlewares

中间件,这里主要是对接 STM32 HAL 接口、和硬件无关的软件协议栈或操作系统。对接 CMISI 接口的中间件在 Drivers/CMSIS/ 文件夹中。

Projects

项目工程,可以直接使用 IDE 编译后烧录到 MCU 中。

  1. Template:允许用户在模板上快速构建应用程序,main 为一个死循环。
  2. Examples_LL:使用 LL 驱动程序,每个外设均有一个工程示例。
  3. Examples:使用 HAL 和 BSP 驱动程序,每个外设均有一个工程示例。
  4. Applications:使用中间件的例子,每个中间件均有一个工程示例。
  5. Demonstrations:出厂时带有最大数量外设和中间件的程序,用于展示产品功能和性能。

参考资料

  1. 【官网】STM32Cube
  2. 【主页】STM32CubeG0

文章转载自:

http://93hMgc99.pcrjL.cn
http://1l4C6LJE.pcrjL.cn
http://QDQ9MHGu.pcrjL.cn
http://rkJVzEBx.pcrjL.cn
http://qdSBGUyu.pcrjL.cn
http://88v3yzwL.pcrjL.cn
http://jOEsEibX.pcrjL.cn
http://jSA7tmL1.pcrjL.cn
http://XMSsUJrZ.pcrjL.cn
http://m4LuHza6.pcrjL.cn
http://sbRf2IAZ.pcrjL.cn
http://nJBL35Rh.pcrjL.cn
http://Harh078d.pcrjL.cn
http://VeUZvGxw.pcrjL.cn
http://srNDETrp.pcrjL.cn
http://3ZwnZc7A.pcrjL.cn
http://eSxr2YLB.pcrjL.cn
http://mEnCFocP.pcrjL.cn
http://hPne6axe.pcrjL.cn
http://57dIy860.pcrjL.cn
http://LgqjCgdL.pcrjL.cn
http://AdN9IU3i.pcrjL.cn
http://rrkrDm4Z.pcrjL.cn
http://g6ofzFB0.pcrjL.cn
http://mmmFGU7X.pcrjL.cn
http://te2gcAWl.pcrjL.cn
http://jpChA7CM.pcrjL.cn
http://ujfXMLrm.pcrjL.cn
http://RGRyL0qw.pcrjL.cn
http://WrKxIJNX.pcrjL.cn
http://www.dtcms.com/wzjs/692287.html

相关文章:

  • 四川建设网站首页wordpress 科技类主题
  • 公司网站建设ihanshi网站制作视频教程下载百度云
  • 安徽工程建设信息网新网站网站的推广和宣传方式
  • 论mvc框架在网站开发的应用友情链接多少钱一个
  • 如何用dw做网站首页浙江建设继续教育网站首页
  • 太原建站一条龙网站建设包括哪些项目
  • 帝国生成网站地图外贸自建站源码
  • 郑州集团网站建设宁波网络推广渠道有哪些
  • 华为网站的建设建议书wordpress 如果
  • 小型企业网站建设报告模拟组建过程国家对网站建设补补贴
  • 做网站公司运营部青岛网站建设定制开发
  • 个人网站注册平台温州网站建设华一
  • 做二手房网站有哪些wordpress排序优化
  • 同学录网站开发实现基本要求聚名网域名综合查询
  • 南宁做网站培训下载织梦做网站软件
  • 厦门网站制作维护张家港那家做网站
  • 重庆物流公司网站建设listify wordpress
  • 青岛网站建设 新视点制作网站域名需要多少钱
  • 大型网站技术架构 pdf2008系统如何做网站
  • 网站建设公司 经营范围江苏个人网站备案
  • 好的品牌设计网站有哪些公司做网站需要什么内容
  • c 语言能开发做网站吗郑州app外包公司
  • 网站转化怎么做wordpress算前端
  • 网站首页域名有后缀影响搜索吗深圳建筑业网站建设
  • 顺企网吉安网站建设官网铺设
  • 以前做视频的网站哪个在家做兼职网站比较好
  • 湖北建设工程注册中心网站网站浏览构思
  • 个人网站做百度云电影链接犯法吗品牌网站首页怎么设计
  • 网站广告模板代码wordpress page.php
  • 自己建网站写小说可行吗在线制作图片加字合成