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

沈阳做网站的地方百度搜索排名机制

沈阳做网站的地方,百度搜索排名机制,网站被k的表现,绍兴手机网站建设1.工程创建与源码概述 1.1 工程创建 使用STM32CubeMX,可以手工添加任务、队列、信号量、互斥锁、定时器等等。但是本课程不想严重依赖STM32CubeMX,所以不会使用STM32CubeMX来添加这些对象,而是手写代码来使用这些对象。 使用STM32CubeMX时&…

1.工程创建与源码概述

1.1 工程创建

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用STM32CubeMX,可以手工添加任务、队列、信号量、互斥锁、定时器等等。但是本课程不想严重依赖STM32CubeMX,所以不会使用STM32CubeMX来添加这些对象,而是手写代码来使用这些对象。

使用STM32CubeMX时,有一个默认任务,此任务无法删除,只能修改其名称和函数类型,如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里工程创建设计rtos后的特别之处就这些,其他部分与正常的裸机工程一样。

STM32CubeMX只是帮我们初始化了所配置的硬件模块,你要实现什么功能,需要自己添加代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下面分析几个问题:

1.在嵌入式开中经常遇到的CMSIS是什么?

2.在STM32CubeMX里面配置工程,经常说的中间件是啥?

上面其实是分立的问题,那么我们这参考佬的讲解:

Keil MDK5软件包的组成、Cortex微控制器软件接口标准CMSIS,重点介绍CMSIS-CORE的组成和使用_mdk软件中器件支持包的组成以及子文件夹的作用-CSDN博客


嵌入式系统的应用开发需要基于目标机-宿主机的交叉编译系统,在集成开发环境的支持下进行,应用程序通常采用高级编程语言C/C++进行编写。使用MDK开发工具进行STM32微控制器的应用开发需要安装软件包,软件包包括:

设备驱动程序库STM32F1XXX_DFP.XXX.pack(对于Keil MDK5而言是根据开发设备的不同选择性安装,MDK4之前的版本都是默认全部安装)Cortex微控制器软件接口标准CMSIS库(默认安装)中间件Middleware(默认安装)以及代码模板、示例等,如下图所示。


CMSIS(Cortex Microcontroller Software Interface Standard)是ARM公司为其Cortex-M系列微控制器定义的一套软件接口标准,旨在简化微控制器的软件开发,使得开发者可以更容易地开发跨不同Cortex-M处理器系列和供应商的嵌入式应用程序。

CMSIS pack主要由以下几部分组成:

  • CMSIS-CORE提供了Cortex-M处理器的核心功能接口,**包括NVIC、SysTick、处理器的寄存器访问、中断向量和中断函数名称。**从软件开发角度看,CMSIS-CORE进行了一系列标准化工作:标准化处理器外设定义、标准化处理器特性的访问函数、标准化系统异常处理程序的函数名等。用户的应用程序既可以通过CMSIS层提供的函数(包括设备厂商提供的外设驱动程序)访问微控制器硬件,也可以利用CMSIS的标准化定义直接对外设编程,控制底层的设备。如果移植了实时操作系统,用户应用程序也可以调用操作系统函数。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • CMSIS-DSP是一个为Cortex-M处理器优化的数字信号处理库,提供了丰富的DSP函数,如FFT、滤波器、矩阵运算等。

  • CMSIS-RTOS为实时操作系统提供了一个标准的API接口,使得开发者可以轻松地在不同的RTOS之间切换。

对于STM32 MCU,我们只需要关心 CMSIS-RTOS,因为在STM32 代码中只有 FreeRTOS提供了cmsis 接口,驱动层还是要使用 HAL库。CMSIS是ARM为Cortex-M系列MCU提供的标准API,而各个使用该内核的芯片厂商(比如NXP、ST、intel),通常会在这些接口的基础上进一步开发适用于自家芯片的开发库,比如ST的HAL、LL、SPL库。


在STM32CubeMX中,“Middleware and Software Packs”(中间件和软件包)部分用于配置和管理与STM32微控制器相关的软件组件。这些组件可以包括文件系统、操作系统、通信协议等,你可以选择需要的组件,并进行相应的配置,如设置文件系统参数、配置任务优先级等。这些配置会生成相应的代码,集成到你的项目中,从而简化开发过程。

常见的中间件和软件包包括:

  1. FATFS:这是一个通用的文件系统模块,支持FAT文件系统,允许在嵌入式系统中读写文件。
  2. FreeRTOS:这是一个实时操作系统内核,适用于需要多任务处理的嵌入式系统。它提供了任务管理、同步机制、内存管理等功能。
  3. USB_DEVICE:这是一个USB设备栈,用于实现STM32微控制器作为USB设备的功能,支持USB通信和设备模式。

中间件的作用:

  • 抽象硬件细节:中间件提供了一层抽象,使得开发者可以不必深入了解硬件的具体实现细节,从而简化开发过程。
  • 提高代码复用性:通过使用中间件,开发者可以重用已有的代码库,减少重复开发的工作量。
  • 增强功能:中间件通常提供了一些高级功能,如网络通信、文件系统支持等,这些功能对于嵌入式系统来说可能难以自行实现。
  • 简化开发:中间件简化了复杂功能的实现,使得开发者可以更专注于应用逻辑的开发。

1.2 源码概述

移植时涉及的文件

移植FreeRTOS时涉及的文件放在 FreeRTOS/Source/portable/[compiler]/[architecture] 目录下,比如:RVDS/ARM_CM3,这表示cortexM3架构在RVDS或Keil工具上的移植文件。 里面有2个文件:

  • port.c
  • portmacro.h

核心文件

FreeRTOS的最核心文件只有2个:

  • FreeRTOS/Source/tasks.c

  • FreeRTOS/Source/list.c

    其他文件的作用也一起列表如下:

头文件

内存管理

文件在Middlewares\Third_Party\FreeRTOS\Source\portable\MemMang下,它也是放在“portable”目录下,表示你可以提供自己的函数。源码中默认提供了5个文件,对应内存管理的5种方法。

入口函数

在Core\Src\main.c的main函数里,初始化了FreeRTOS环境、创建了任务,然后启动调度器。源码如下:

/* Init scheduler */osKernelInitialize();  /* 初始化FreeRTOS运行环境 */MX_FREERTOS_Init();    /* 创建任务 *//* Start scheduler */osKernelStart();       /* 启动调度器 */
  1. osKernelInitialize():这个函数初始化FreeRTOS的内核环境。它设置了一些基本的内核参数,如时间片、任务优先级等,为后续的任务创建和调度做准备。
  2. MX_FREERTOS_Init():这个函数通常是由STM32CubeMX工具自动生成的,用于创建和管理FreeRTOS任务。它可能会初始化任务堆栈、设置任务优先级、创建任务等。
  3. osKernelStart():这个函数启动FreeRTOS的调度器,开始任务调度。一旦调用这个函数,FreeRTOS将接管CPU的控制权,开始按照任务优先级和调度策略执行任务。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

其实就是各种初始化,然后启动调度器,进入第一个任务。我们之前设计的RVOS,上电后首先运行的是Bootloader。Bootloader负责初始化硬件环境,包括设置时钟、配置内存等,确保系统环境适合RTOS的运行。一旦系统环境准备就绪,Bootloader将控制权转移给 main 函数。

参考:

https://rtos.100ask.net/zh/FreeRTOS/DShanMCU-F103/chapter6.html

Keil MDK5软件包的组成、Cortex微控制器软件接口标准CMSIS,重点介绍CMSIS-CORE的组成和使用_mdk软件中器件支持包的组成以及子文件夹的作用-CSDN博客

[STM32 固件库与 CMSIS 标准如何理解? - 一郎哥哥 - 博客园]

http://www.dtcms.com/wzjs/156774.html

相关文章:

  • 中企动力做网站贵吗网站制作教程视频
  • 昆明做网站竞价网站推广的方式有哪些?
  • 网站后台程序和数据库开发搜索优化是什么意思
  • 网站设计与建设论文开题报告广州seo招聘信息
  • 河北邢台穷吗seo国外推广软件
  • 蚌埠市建设银行官方网站泉州seo代理商
  • 专业网站的建设设行吗营销活动方案模板
  • 建设厅网站举报静态网页制作
  • 关于做网站的英语对话任务放单平台
  • bootstrap网站登录页面创意设计
  • 青岛企业网站建设优化海外推广解决方案
  • 网页游戏交易网站全球疫情最新数据消息
  • 公司的英文网站东莞做网站公司
  • 网站备案资料蜂蜜网络营销推广方案
  • wordpress 页面和菜单徐州seo推广优化
  • ajax数据库网页网站设计广州网络科技有限公司
  • 湖北宜昌网seowhy培训
  • 茌平微网站建设百度知道官网手机版
  • 二级建造师注册查询官网入口搜索引擎优化包括哪些方面
  • 杭州模板网站建设百度的排名规则详解
  • 合肥营销网站建设价格苏州网站建设
  • 甘肃张掖网站建设外贸推广有哪些好的方式
  • 注册进出口贸易公司条件站长seo软件
  • 唐尧文化 网站建设工作总结超级外链工具源码
  • 织梦个人博客网站源码南京网络优化培训
  • 怎么做黑客把网站余额更改口碑营销的经典案例
  • wordpress整站cdn广州网站优化方式
  • 深圳网站定制 开发2023疫情第三波爆发时间
  • 跑步机 东莞网站建设外贸网站建站
  • 学校网站建设需求资源网站优化排名软件