用STM32CubeIDE速攻FreeRTOS
2019年4月发布STM32CubeIDE,借此是关于RTOS实时操作系统重要性叙述及如何在STM32CubeIDE环境中,向STMF4-DISC1 开发板迅捷导入FreeRTOS。
PART-0. RTOS重要性
3月经济学人报道:"自动化让人类失去工作?专家回应:情况正相反。"因为利润转化为新技术投入。在这场自动化浪潮中,日本成最大赢家,市场占有率45%,中国增长至15%。公司层面仍然是基恩士,FUNC,SMC以及LaserTEC,其中基恩士凭借其个性化定制方案解决战略一直是人们心中神一般存在。
对于自动化这一概念,Iphone[家庭APP]中给出的简洁解释,让人印象深刻,自动化:让家庭设备在环境发生变化时作出反应。或者就是Internet of Things(IOT).除此之外,发现微软Azure, Intel的TCC,都在推广real time operating system(RTOS),即实时操作系统。
相对于批处理程序,实时操作系统特点是对变化状况作出低时延回应,目前包括三种类型:软性实时操作系统,硬性实时操作系统及firm real-time system同样是操作系统,Lunux设计框架决定着先天不足,在要求情况发生变化时,处理与反应结果允许时间范围150μs内。通用计算机系统要也无法满足这一时延要求。RTOS是针对特定事件专用系统,其低迟延,可靠性等优势而占有一席地位,传递价值,保证安全。比如硬性实时操作系统中,汽车安全汽囊,在规定时间内作出控制且无致命危险。
PART-1. 实验设计
IDE:STM32CubeIDE
硬件:STMicroelectronics半导体公司制,Discovery kit with STM32F407VG MCU
以上为实验准备内容
- 项目新建
1-1. 启动STM32CubeIDE,选择File>>New>>STM32 Project:
1-2. 开发板选择,在Board Selector,而非MCU/MPU中搜索STM32F407,选择STM32F407G-DISC1,选中目标开发板后,详细介绍显示:Discovery kit with STM32F407VG MCU ,如图2所示进行确认。
1-3.基本信息设置与自定义,如下图3所示:
项目名称:Input_FreeRTOS
Targeted Language:C
Targeted Binary Type:Excutable
Targeted Project Type:STM32Cube
1-3. 选择Finish后,有两个对话窗口,全部选择默认选项Yes。在此后,IDE会更新与下载相关文件,需要等待。 - FreeRTOS导入
2-1. IDE相关文件下载完成后,自动返回在Device configuration Tool界面:
2-2. 打开FreeRTOS, 具体路径是Categories>>Middleware>>FREERTOS, 点击FREERTOS后,则会弹出对话框[Mode],[Configuration]。
在Mode>>Interface下拉窗口中,会出现Disable/CMSIS_V1/CMSIS_V2,选择CMSIS_V2,至此,FreeRTOS就已经导入完毕。
- Task List 追加
在选择CMSIS_V2后,Configuration部分详细子目录会显示出来,此时,选择Tasks and Queues>>add, 如下图所示:
因为全部选择默认,直接点击ok, 如下图所示myTask02已经追加进来。
- 后处理
仍然在以上Configuration界面中,进行TimeBase Tick变更,在侧栏中System Core>>SYS中,TimeBase Source默认设置为SysTick,将其选择为TIM7 - Code生成
Ctrl+s 保存变更以后,以下对话窗口将出现,选择Yes代码生成执行。
PART-2. Hello LED
- 函数StartTask02()已经生成,在main.c文件中。
/* USER CODE END Header_StartTask02 */
void StartTask02(void *argument)
{/* USER CODE BEGIN StartTask02 *//* Infinite loop */for(;;){HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);osDelay(500);}/* USER CODE END StartTask02 */
- 参考前篇HELLO_LED博文,同样可以实现点亮Green LED。
- 移植完成报告如下:
`
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
Waiting for debugger connection…
Debugger connected
Waiting for debugger connection…
Debugger connected
Waiting for debugger connection…
--------------------------------------------------------------
STM32CubeProgrammer v2.10.0
--------------------------------------------------------------
Log output file: /tmp/STM32CubeProgrammer_pD9RD1.log
ST-LINK SN : 49FF70064965525408411887
ST-LINK FW : V2J39S0
Board : –
Voltage : 2.89V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x411
Revision ID : Rev B
Device name : STM32F2xx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M3
BL Version : –
Memory Programming …
Opening and parsing file: ST-LINK_GDB_server_casGpP.srec
File : ST-LINK_GDB_server_casGpP.srec
Size : 46.29 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 2]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:01.363
Verifying …
Download verified successfully
`
PART-3. 问题调试
可能第一次移植代码等原因会出现:“ST-Link Server is required to launch the debug session”, 则需下载ST-LINK服务器软件模块,软件详细如下:
-ST-LINK-SERVER
-ST-LINK server software module
PART-4. 结语
IDE软件90%能实现自动化,进行相关设置,就能将FreeRTOS导入。比起自己去官网下载然后加载设置PATH等方法,更便捷。
用STM32CubeIDE速攻FreeRTOS相关推荐
- 我的世界刷猪人塔java版_我的世界速攻猪人塔详解 史上最牛的经验塔
我的世界速攻猪人塔详解 史上最牛的经验塔.那下面给大家分享的这个是一个可以让所有经验塔自叹不如的速攻猪人塔哦~那到底这个塔是什么呢?那下面就给大家详细的介绍一下吧!有感兴趣的玩家不妨进来看看哦~希望大 ...
- 乖离 暗机器人_乖离性百万亚瑟王暗机器人过弩速攻配卡推荐
乖离性百万亚瑟王暗机器人过弩速攻配卡推荐:乖离性百万亚瑟王暗机器人过弩速攻怎么配卡: 首先是兵: 队长是女武神而不是风香菜.当然可以卑弥呼.没什么用,低C过牌. 这副牌最大优点是6C一定拿到丽芙+百合 ...
- pnpm v8版本升级变化关注点(前瞻速攻版)
前言 pnpm v8.0.0-alpha.0 版本已经发布,包含少量变化,但其中还是有令人在意的点的. 本文将默认读者拥有大部分 pnpm v7 版本的知识储备,进行 v8 版本的前瞻速攻. 安装方法 ...
- dcs降落教程_【速攻组】DCS黑鲨入门教程
并等待其转速到7000转. 按两下PAGE UP令两个发动机带动引擎 看左前方转速表 9000RPM时就是正常的了 现在就可以关掉外部电源,切换成内部电源供电了 现在就可以打开一大堆东西了 开启前 开 ...
- 速攻蓝牙NRF52832系列教程之方法篇(三)
三.如何快速攻克一个SoC芯片 在这个讲求速度.效率的年代,慢一步就会愈发被动,错失诸多良机. 对产品研发公司来说,工程师如能迅速攻克一款更新更强的芯片,抢先发布产品,就能早一步抢占市 ...
- 硬件速攻-AS608指纹识别模块
简介 AS608指纹识别模块是一种小型化.低功耗.高精度的指纹识别模块.它采用了高速DSP处理器和先进的算法,可以快速.准确地完成指纹图像的采集和识别. 这个指纹识别模块内部集成了指纹传感器.处理器. ...
- 硬件速攻-ST7735 0.96LCD屏幕
ST7735介绍 ST7735是一款具有SPI接口的彩色TFT液晶显示驱动芯片,由Sitronix公司生产.它能够控制240x320分辨率的液晶显示屏,并支持16位色调.ST7735芯片集成了RGB ...
- 硬件速攻-有源蜂鸣器模块
简介 有源蜂鸣器是一种内置振荡器.需要外部电源才能发声的电子元件.它在工作时会自行产生高频振荡信号,通过振动蜂鸣器内部的压电陶瓷片或磁铁等元件,使其发出声音. 实物图 如何接线? 模块引出了三个针脚 ...
- (废话速攻流)网络支付与结算读书笔记4:电子资金转账系统EFT
电子资金转账系统(EFT)简单说就是以电子数据形式进行资金流动的计算机应用软件系统.EFT系统兴起于20世70年代支票和现金逐渐被信用卡取代的背景之下. EFT大体分为两类:1.零售电子资金转账系统( ...
最新文章
- 【OpenCV 4开发详解】图像直方图绘制
- 浏览器地址栏运行HTML代码(谷歌)
- 再见面试官:你能说说 Spring 框架中 Bean 的生命周期吗?
- 计算机 维修 pdf,简单计算机维修..pdf
- php 字符串截取_网络安全WEB之PHP代码审计,攻防世界题目warmup
- python整商运算符_python中的运算符
- dynamic和匿名对象
- Zookeeper基础常用操作以及ACL权限
- 手机安装linux发行版,最近发布新版本的Linux发行版汇总 - 2020-02-14
- xcode快捷键大全(转)
- python常用代码总结-python字典的常用方法总结
- mysql group by cube_group by、grouping sets、with rollup、with cube方法
- Java 线程池 ThreadPoolExecutor源码简析
- 推荐一款免费的SSH+sftp工具
- iOS:关于加载GIF图片的思考
- 纳多德通过ISO 9001质量、ISO 14001环境、ISO 45001职业健康安全国际管理体系认证
- webUploader.js 文件上传插件简用!
- J9数字货币论:什么是区块链节点
- 双击word文档提示向程序发送命令出现问题(There was a problem sending the command to the program)
- 服务器被攻击 常见的服务器攻击方式有哪些