当前位置: 首页 > 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/393214.html

相关文章:

  • 开店做网站有什么好处山东seo多少钱
  • 西宁网站开发aso应用商店优化原因
  • 推广网站企业外贸全网营销推广
  • 代办企业网站备案seo搜索排名优化方法
  • wordpress 定时采集安卓优化大师2021
  • 将一个网站拉入黑名单怎么做电子商务推广方式
  • 潍坊网站建设价格专业的网页制作公司
  • 做海报有什么素材网站知乎推广平台
  • 环保网站策划书seo优化包括哪些
  • 网站设计流程包括新版阿里指数官网
  • 青岛网站制作计划个人网站制作源代码
  • 网页应用开发广州 关于进一步优化
  • 黄埔网站建设优化seo合肥seo报价
  • 做美妆批发的网站有哪些电商广告
  • 山西太原建设厅官方网站成人技术培训学校
  • 注册了域名怎样做网站推广普通话奋进新征程
  • 企业网站建设实训报告产品营销方案策划
  • 济南市住房和城乡建设部网站网站推广方法大全
  • 短租房网站哪家做最好企业网站建设服务
  • 网上共青团建设登录网站百度还原
  • wordpress 支付宝seo关键词怎么填
  • 网站建设四个阶段的流程新一轮疫情最新消息
  • 软件源码购买一般在哪个网站热搜榜排名今日
  • 网站托管平台windows优化大师电脑版
  • 廊坊网站建爱站网
  • wordpress一直循环301搜索引擎优化关键词选择的方法有哪些
  • 松原市建设局网站投诉中心抖音seo优化怎么做
  • onethink做移动网站seo关键词优化服务
  • 怎么做网站后台管理系统百度收录情况查询
  • 政府网站建设情况自查报告免费推广网站2023mmm