zoukankan      html  css  js  c++  java
  • [异常]关于IDE的优化等级

    本周进行STM32 DSP库的实验,主要测时fft相关函数是否能正常使用。在测试过程中发现一个异常现象

    MCU:STM32F407(正点原子:探索者开发板); 异常模块:TIM8、DMA2Stream0,ADC1;

    现象:TIM8定时时间改变;

    使用TIM8计满溢出事件来触发ADC,在ADC转换完毕后使用DMA搬运,采样频率为12800,即定时器定时时间。

    由于STM32F4主频配置为168MHz,TIM2等通用定时器时钟来源PCLK1为总线时钟为42MHz,所以TIM2时钟频率为84MHz 84M/12800 = 6562.5非整数,所以选用TIM8,其时钟为168MHz可以配成整数(168M/12800=13125),预分频系数75、自动重载值175,在单独测试TIM8时无异常,频率为设计频率12800Hz;加上ADC也无异常,但是加上DMA后就出现问题,TIM参数为改变情况下频率变为设计频率的1/4即3200Hz,最后定位到使能DMA无异常,但打开DMA中断后就会出现降频,该情况下读取各总线值(SYSCLK、HCLK、HCLK1、HCLK2)均无异常,但是就是降频了。

    分析配置参数均未改变,无意间更改优化等级从(-o0)改为(-o2),其余代码均为改变,TIM定时频率恢复正常。

    由于不太了解编译过程,所以暂时无法分析不同优化等级下,在二进制代码处到底有何不同,先存个档。

  • 相关阅读:
    MyBatis(六)、事务控制
    MyBatis(五)、CRUD操作与重要参数及标签
    Java学习笔记-2020学习目录
    Java学习笔记(十四) 字符串
    Java学习笔记(十三) 面向对象基础
    Java学习笔记(十二) 基础知识练习
    Java学习笔记(十一) Debug
    Java学习笔记(十) 方法
    Java学习笔记(九) 数组
    Java学习笔记(八) IDEA
  • 原文地址:https://www.cnblogs.com/Biiigwang/p/11923942.html
Copyright © 2011-2022 走看看