当前位置:网站首页>1309_STM32F103上增加GPIO的翻转并用FreeRTOS调度测试
1309_STM32F103上增加GPIO的翻转并用FreeRTOS调度测试
2022-07-23 20:26:00 【grey_csdn】
全部学习汇总: GitHub - GreyZhang/g_stm32f103: some hack for stm32f103
今天的这个测试属于嵌入式的hello world实现,这个在FreeRTOS的一些社区中也这么称呼,可以看得出来这个用法的通用性。之前,我已经尝试了 类似的测试了,但是那时候的测试并不是基于FreeRTOS。因此,这一次还是要做一个新的尝试。
从另一个方面讲,之前我尝试学习S32K144的开发板的时候,很多代码都丢失了。我看很多人看了我的学习笔记之后有疑惑但是找不到当时的代码了,而我的板子卖掉之后也不再关注这样的信息,这样就导致了一些信息难以找回。趁着这一次机会,我会把我调试用的代码传一份到我的GitHub上面。
我的代码驱动基本上是使用CubeIDE来生成的,但是由于中间我需要改一些代码,而CubeIDE在代码生成的时候可能会导致我的一些代码格式的变化或者内容的修改。因此,CubeIDE我只是拿来做代码生成,我的编译直接用了gcc的命令行环境来做编译。我的机器上安装了相对来说比较新的gcc for arm的编译器,通过简单的功能测试发现编译的结果与CubeIDE中所带的gcc的版本没有太大的差异。这样正好也把我的工具链与其他的一些芯片实现了一个统一。

既然增加了OS,而我一直在关注堆栈的使用。趁着这个测试,一起也看一下相应的信息。上面的结果是我在OS的task中还没有增加GPIO的测试代码的情况。

接下来,我增加了一个测试的函数。

相应的函数由OS的task来管理,每次执行之后延时1000ms,这样其实是会看到一个大概2S周期的闪烁效果。

从编译的运行效果看,其实这样的功能增加并没有给OS的堆栈带来什么负担。而且,从板子的运行效果看,现在的LED闪烁已经奏效了。值得一说的是,我上面的资源使用其实是建立在开了编译器后话的前提之下的,在此之前,存储的使用还不是这么乐观。目前,每一个任务的堆栈分配单位是160,但是实际使用的量并不多。

为了对比,看一下没有开启优化的时候的效果。从这个效果看,其实开启编译器的优化对于存储的占用优化还是很有帮助的。
边栏推荐
- KubeVela离线安装
- 2022.7.11mySQL作业
- Cesium 键盘鼠标控制相机漫游(源码+原理讲解)
- 分布式事务方案:最大努力通知方案
- 链表——203. 移除链表元素
- Educational Codeforces Round 132 A-D题解
- OpenIM重大升级-群聊读扩散模型发布 群管理功能升级
- Preprocessing tropomi (sentinel 5p) data with envi
- Today's sleep quality record 81 points
- Is the link of Huatai Securities' low commission account opening safe? How to handle low commission
猜你喜欢

MySQL(3)

Day 12: continued day 11 (BGP related knowledge)

【Scratch画图100例】图46-scratch绘制花朵 少儿编程 scratch编程画图案例教程 考级比赛画图集训案例

Himawari-8 data introduction and download method

MySQL's past and present life, Hello, MySQL

【C语言】通讯录(静态版本)

TROPOMI(哨兵5P)数据介绍及下载方法

不用MQTT C库就能实现MQTT连接、订阅和发布

【Jailhouse 文章】A Novel Software Architecture for Mixed Criticality Systems(2020)

Today's sleep quality record 81 points
随机推荐
When using polymorphism, two ideas to judge whether it can be transformed downward
Cesium 事件详解(鼠标事件、相机事件、键盘事件、场景触发事件)
Applet avatar group style
[kernel] platform bus model for driving development and learning
vim 常用快捷键
Jetson nano烧录踩坑记(一定可以解决你的问题)
Use tinkerpop framework to add, delete, modify and check GDB
OpenLayers实例-Advanced View Positioning-高级视图定位
实现生成订单30分钟未支付,则自动取消
MySQL's past and present life, Hello, MySQL
If the order is not paid within 30 minutes, it will be automatically cancelled
微服务架构 VS 单体服务架构【华为云服务在微服务模式里可以做什么】
The best time to plant trees is now
05_ue4进阶_材质UV缩放
美团大脑百亿级知识图谱的构建及应用进展
数组——704. 二分查找
ssm+mysql实现零食商城系统(电商购物)
KubeVela离线安装
EXCEL的密码相关
微软网站上关于在Edge浏览器中打开或关闭smartScreen的说明有误