stm32H743编译器关于浮点类型强制转换传参的bug

这篇具有很好参考价值的文章主要介绍了stm32H743编译器关于浮点类型强制转换传参的bug。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

局部函数,正常传参

当测试函数作为局部函数和main函数写在同一个文件中时,参数可以正常传递。函数参数和形参都为3.14

float value = 0.0;
void float_test(float _v)
{
    value = _v;
}


int main(void)
{
    float_test(3.14f);
    while(1);
}

keil仿真截图,形参正常

stm32H743编译器关于浮点类型强制转换传参的bug,stm32,bug,嵌入式硬件

全局函数,异常传参

当测试函数放到另一个文件中,在main函数中进行调用时,会发生异常参数,函数形参转换出错

test.c

float value = 0.0;
void float_test(float _v)
{
    value = _v;
}

main.c

int main(void)
{
    float_test(3.14f);
    while(1);
}

keil仿真截图,形参出错,变为了一个极小值,可能是数据对齐有问题

stm32H743编译器关于浮点类型强制转换传参的bug,stm32,bug,嵌入式硬件

原因分析

可能是编译器在保存单精度浮点参数时还是按double类型,读取参数时确按float类型来进行读取,所以出现了错误

解决方案

浮点数传参不要使用float类型,采用默认的double类型进行传参,就可以正常传参了文章来源地址https://www.toymoban.com/news/detail-776455.html

到了这里,关于stm32H743编译器关于浮点类型强制转换传参的bug的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【BSP技能手册】-【MCU篇】-【stm32】-【开发环境】-【编译器】

    开发环境==为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,分为【编译器】【驱动程序】【下载程序】【调试程序】。stm32常用kei进行开发。 此文介绍kei【编译器】的安装。 (权限问题,注意辨认缩写) ①bai度云链接:https://pan.baidu.com/s/17YrqCeGSIG15WVwIzx4

    2024年02月07日
    浏览(31)
  • STM32 GCC编译器 .ld & .s文件详细解析

    1.定义程序入口地址 2.定义Flash、RAM中代码和数据的存放位置 /* Highest address of the user mode stack / / end of stack 堆栈末尾 = RAM起始地址 + RAM空间大小 / _estack = ORIGIN(RAM) + LENGTH(RAM); / end of “RAM” Ram type memory */ /* 程序所必须的堆、栈空间大小定义 / _Min_Heap_Size = 0x200 ; / required amount o

    2024年02月15日
    浏览(26)
  • 解决keil5.38编译stm32报四个错误问题,无需更换ARM5编译器

     以上为错误截图,一下为错误信息 Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported   uint32_t result=0;   ^ Start/core_cm3.c(442): note: attribute is here uint32_t __get_PSP(void) __attribute__( ( naked ) );                                           ^ Start/core_cm3.c(465): error: paramet

    2024年02月11日
    浏览(67)
  • proteus结合keil-arm编译器构建STM32单片机项目进行仿真

        proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。     下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。     新建工程指定路径,Schematic,PCB layout都选择默认,在最后创建项目工程向导的时

    2024年02月13日
    浏览(43)
  • 使用arm-none-eabi-gcc编译器搭建STM32的Vscode开发环境

    make:Windows中没有make,但是可以通过安装MinGW或者MinGW-w64,得到make。 gcc-arm-none-eabi:建议最新版,防止调试报错 OpenOCD vscode cubeMX Arm Assembly:汇编文件解析 C/C++:c语言插件 Cortex-Debug:调试插件 gcc-arm-none-eabibin OpenOCDbin 建议MinGW-make工具重命名为make.exe并添加到gcc-arm-none-eabi

    2024年02月06日
    浏览(38)
  • STM32 Keil5报错-*** Target ‘XXX‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which -安装编译器解决

    安装的keil 版本是V5.38, 显示缺少编译器 Compiler Version 5\\\' *** Target \\\'MUSICPLAYER\\\' uses ARM-Compiler \\\'Default Compiler Version 5\\\' which is not available. 下载编译器:  Arm Compiler 5.06 update 7 (build 960)  下载地址:https://developer.arm.com/downloads/view/ACOMP5 Legacy Arm Compiler 5, 4.1, and RVCT (ACOMP5) https://developer.ar

    2024年04月11日
    浏览(50)
  • 一个关于编译器优化选项问题的解决

    因为当前项目单片机容量不够使用,打算开启编译器优化,结果在使用KEIL编译器优化后,程序在发送Modbus数据时,程序直接跑飞了 最后发现是 局部变量指针 作为了DMA的内存地址参数,导致当DMA连续搬运数据时,实际那个局部变量已经被释放,导致DMA搬运数据的过程中出现错

    2024年04月09日
    浏览(39)
  • 关于 Qt在windows使用mingw32编译器时从Qt5.9切换至Qt5.12出现“C2001:常量中有换行符“不修改编码 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131901444 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)   研发项目先

    2024年02月15日
    浏览(42)
  • qt qtcreator qt+vs 编译器 关于QT、QT creator和编译器,新手入门必知的一些知识关于QT、QT creator和编译器,新手入门必知的一些知识_qt和qtcreator的区别_炫彩灵感的博客-CSDN博客

    对于一个新手而言,基本体会如下: Qt Creator Qt Creator优势 可以实现Ui和代码无缝切换。(VS不行) 对于汉字的支持更好 提示功能做的更好。 比如:#include等,敲出#inc即有提示。 qmake非常好用 项目管理更方便,可以添加pri之类的来管理子模块 Qt Creator劣势(IDE本身巨大劣势)

    2024年02月11日
    浏览(39)
  • 解决MATLAB2020B关于找不到vs2019C++编译器问题

    在配置 matlab 深度学习环境过程中,出现找不到 vs219C++编译器 问题,尝试了各种办法,还是失败,经过摸索和结合他人经验,最终成功,予以总结,供需要的朋友们参考 配置: matlab2020b、vs2019 ,其他版本方法类似 1.matlab中运行mex-setup  出现问题,叫我安装MinGW-w64,但由于后

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包