关于CM4内核的单片机使用sprintf格式化浮点数导致程序跑飞的问题

问题现象

基于freeRTOS和Contex-M4内核的单片机,在使用sprintf格式化浮点数时,由于打开了看门狗复位,导致程序频繁重启,不开看门狗复位,程序就会卡死。而同样的程序在切换到Contex-M3内核的单片机时,就能正常运行。

解决过程:

1.首先怀疑是硬件FPU配置的问题,MDK默认打开了FPU,然而CM4的FPU打开后,是不能直接用sprintf处理浮点数的,据说是开辟的堆栈空间没有8字节对齐。而我这个为了兼容CM3的单片机代码,不可能都去把堆栈空间8字节对齐。

2.把FPU使能关闭后,编译,FreeROTS报了个“This port can only be used when the project options are configured to enable hardware floating point support”,原因是选择了ARM_CM4_MPU/port.c文件。

3.把ARM_CM4_MPU/port.c移除,导入ARM_CM3/port.c到工程,重新编译,程序运行正常。

举一反三:

由于我的程序不需要大量高精度的浮点数运算,我在使用CM4的单片机时,不需要打开FPU。如果确实需要FPU,可以采用浮点数转整数和小数显示的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解析 unstructured pdfminer_utils.py rect_to_bbox 坐标转换函数

解析 unstructured pdfminer_utils.py rect_to_bbox 坐标转换函数 1. 函数定义2. 函数说明3. 函数实现举例说明总结 今天,我们来学习一个有趣的Python函数。这个函数可以帮助我们转换PDF文档中的坐标。虽然听起来很复杂,但是我们可以通过一个简单的例子来理解它。 1. 函数定义…

[Spring] SpringBoot基本配置与快速上手

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

Python中的魔术方法(如__init__、__str__等)的概念以及它们的作用。

Python中的魔术方法(也称为特殊方法或双下划线方法)是Python内置的一些具有特殊意义的方法。这些方法在Python的类定义中用于实现特定的功能,如对象初始化、属性访问、字符串表示、算术运算等。下面列举并解释几个常见的魔术方法:…

企业如何做好数据防泄密丨十个措施杜绝泄密事件

在当今数字化时代,信息泄露对企业构成了前所未有的威胁。企业的创新成果、专利技术和商业机密是其竞争力的核心。防止泄密可以确保这些关键资产不被非法复制或盗用。 客户数据是企业的宝贵资源。保护客户隐私不被泄露,不仅是法律要求,更是赢…

兼容问题---ios底部的安全距离css设置

在H5上适配安全区域&#xff1a;采用viewportenvconstant方案。 具体操作如下&#xff1a; 1. 需要将viewport设置为cover&#xff0c;env和constant才能生效。设置代码如下&#xff1a; <meta name"viewport" content"widthdevice-width,initial-scale1.…

两位软件工程师创业,开发出一款软件质量保证自主AI代理,融资总额超3000万美元

编译整理&#xff5c;TesterHome社区 来源&#xff5c;TechCrunch 随着生成式人工智能&#xff08;generative AI&#xff09;的出现&#xff0c;人工智能应用正在改变和重塑各行各业&#xff0c;并改变人们的工作方式。软件开发也不例外。 总部位于旧金山和东京的初创公司Aut…

前端导出pdf

async generatePDF() {const element this.$refs.contentToPrint; // 你想要转换成PDF的DOM元素// 使用html2canvas将DOM元素转换成canvasconst canvas await html2canvas(element);const imgData canvas.toDataURL(image/png);// 创建PDF并添加图片const pdf new jsPDF({o…

自动化立体仓库设计步骤:7步

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载 这份文件是关于自动化立体仓库设计步骤的详细指南&#xff0c;其核心内容包括以下几个阶…

怎么区分服务器的硬盘是ssd还是hdd?

区分服务器的硬盘是SSD还是HDD可以通过多种方法进行&#xff0c;包括操作系统内置工具、命令行工具以及第三方软件。以下是几种常见的方法&#xff1a; 操作系统内置工具 Windows 1.任务管理器 打开任务管理器(Ctrl Shift Esc)。 点击“性能”选项卡。 选择“磁盘”项。通常会…

孟德尔随机化与痛风4

写在前面 今天阅读的文献是多种暴露与某结局的孟德尔随机化&#xff0c;算是以量取胜了。 The effect of metabolism-related lifestyle and clinical risk factors on digestive system cancers in East Asian populations: a two-sample Mendelian randomization analysis …

淘宝商品评论电商API接口:帮你轻松挑选优质商品

随着互联网的快速发展&#xff0c;电子商务应运而生&#xff0c;并在短时间内取得了巨大的成功。其中&#xff0c;淘宝作为我国最大的在线购物平台之一&#xff0c;每天都有数以亿计的商品交易发生。然而&#xff0c;面对海量的商品信息&#xff0c;如何挑选出优质商品成为了一…

800 元打造家庭版 SOC 安全运营中心

今天,我们开始一系列新的文章,将从独特而全面的角度探索网络安全世界,结合安全双方:红队和蓝队。 这种方法通常称为“紫队”,集成了进攻和防御技术,以提供对威胁和安全解决方案的全面了解。 在本系列的第一篇文章中,我们将指导您完成以 100 欧元约800元左右的预算创建…

HTML最快速最简单

1、HTML 文档由 HTML 元素定义 2、HTML 元素语法 HTML 元素以开始标签起始&#xff0c;HTML 元素以结束标签终止空元素在开始标签中进行关闭&#xff08;以开始标签的结束而结束&#xff09;元素的内容是开始标签与结束标签之间的内容 3、空元素 空元素&#xff08;Void Ele…

音视频封装demo:将h264数据和aac数据封装(mux)成TS文件(纯手工,不依赖第三方开源库)

1、README a. demo使用 $ make clean && make DEBUG1 $ $ ./ts_mux_h264_aac Usage:./ts_mux_h264_aac avfile/test1_856x480_24fps.h264 24 avfile/test1_44100_stereo.aac out1.ts./ts_mux_h264_aac avfile/test2_720x480_30fps.h264 60 avfile/test2_48000_stereo…

无人机在交通管理方面的应用与潜力

随着智能化和数字化技术的发展&#xff0c;无人机已经成为智慧交通管理体系中的重要一环。无人机能够搭载各种专业设备&#xff0c;如超清摄像头、红外热成像摄像头、目标跟踪器等&#xff0c;从而完成多任务的数据采集和快速机动的任务执行。这些数据通过无线传输实时回传&…

LVS+Nginx高可用集群--基础篇(二)

1.虚拟主机-使用nginx为静态资源提供服务 静态资源服务器&#xff1a;主要包括两类资源&#xff0c;网页&#xff1b;图片&#xff0c;音频等&#xff1b; 也可以通过别名设置静态资源路径。 配置代码&#xff1a; server {listen 88;server_name localhost;locatio…

前端八股文 vue2和vue3的区别

主要有 4点的区别 框架区别 数据响应式的不同 生命周期函数的不同 api风格的不同 1.框架的区别 Vue 3 更倾向于使用 Vite 作为构建工具&#xff0c;基于 ES Modules 标准&#xff0c;提供更快的编译速度和简化开发过程。相比之下&#xff0c;Vue 2 通常使用 webpac…

Kudu分区策略

Kudu表的分区策略主要有三种&#xff1a;范围分区&#xff08;Partition By Range&#xff09;、哈希分区&#xff08;Partition By Hash&#xff09;和高级分区&#xff08;Partition By Hash And Range&#xff09;。这些策略都要求分区字段必须包含在主键中。 范围分区&…

关于使用Easyswoole 自定义MYSQL 连接池,一段时间后,操作接口,报数据库连接错误,然后在请求接口,就正常了

关于使用Easyswoole 自定义MYSQL 连接池,一段时间后,操作接口,报数据库连接错误,然后在请求接口,就正常了 首先我们来看看对应的easyswoole 数据库注册 Config/Mysq.php $mysql[mysql] []; $mysql[mysql][default] [name > default,host > 127.0.0.1,port > 330…

数据安全治理:从库级权限申请到表级权限申请

背景 随着数据安全意识的提高&#xff0c;企业越来越重视数据治理和权限管理。传统数仓大多对库级别进行读写授权&#xff0c;仅对人工标记的敏感库进行表级别授权&#xff0c;但由于敏感等级是由人为标记&#xff0c;错误率较高&#xff0c;故期望将权限申请流程细化到表级申…