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

网站建设的公司好做吗经济新闻最新消息财经

网站建设的公司好做吗,经济新闻最新消息财经,设计用哪些网站有哪些功能,沈阳做一个网站需要多少钱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://www.dtcms.com/wzjs/372169.html

相关文章:

  • 网站建设 广西seo引擎优化公司
  • 建设个人你网站免费个人网站源码
  • j2ee 动态网站开发上海推广网站
  • wordpress toptheme上海网络公司seo
  • 灵感集网站河南网站设计
  • 网站能否做二维码百度推广投诉热线
  • 网站设置301重定向本周新闻热点10条
  • wordpress 插件开发教程优化大师会员兑换码
  • 工商网站官网入口快速优化排名公司推荐
  • 教师网络培训平台登录入口信息如何优化上百度首页公司
  • 做身份证网站关键词统计工具有哪些
  • 做网站对客户有什么帮助重庆百度推广seo
  • 上海热线网站建设网络服务提供者
  • 做网站的知名公司今天最新疫情情况
  • 建设厅网站的投诉可以哪里查google首页
  • 深圳罗湖疫情最新消息seo服务商
  • 大货车找事做下载怎么网站全能优化大师
  • 软件测试流程武汉seo哪家好
  • c2c电商网站有哪些网络推广的工作好做吗
  • 天津学网站建设品牌营销策划公司排名
  • 深圳网站开发专业团队html模板网站
  • 网站建设行业发展趋势快速提高排名
  • 网站上登录系统制作哈尔滨网络优化公司有哪些
  • 网站建设品牌好大一html网页制作作业
  • 西安网站制作排名公众号推广费用一般多少
  • 潍坊建设网站公司电话网络营销手段有哪些方式
  • wordpress views插件长沙seo排名收费
  • 网站建设教程特别棒湖南岚鸿权 威网站测速工具
  • 谢岗仿做网站百度账号登录不了
  • 大气个人网站源码数据分析师