源:http://blog.163.com/zhaojun_xf/blog/static/300505802011291384721/

使用Keil/MDK这么多年了,一直都没有使用它的代码优化功能。总是觉得在容量可以容纳的情况下没有必要。最近在做一个摄像头项目时,总是只能在TFT上显示大约2/3的图像。其余1/3没有显示。当按键时,整个TFT都能显示,那么按照分析,应该是因为代码是速度太慢造成的。但是分析了一下代码实在没有可以更改的地方了。那么是单片机运行速度问题吗?

本代码本来是用IAR编写的,而且在单片机上实现了,效果非常不错。所以完全能够排除上面的问题。那么只能说明是编译平台在生成代码的过程中,造成了速度问题。

既然如此,那就优化一下代码吧,通过更改MDK的优化选项,编译下载后,问题搞定。看了优化功能还是不错的。

为了保证你的代码在优化后能正确运行,一定要注意在不能被优化的变量前加上:volatile。

MDK的优化应用(转)的更多相关文章

  1. MDK的优化应用

    MDK的优化应用 http://blog.163.com/zhaojun_xf/blog/static/300505802011291384721/ 使用Keil/MDK这么多年了,一直都没有使用它的 ...

  2. MDK编译优化笔记

    在一次使用MDk的编译优化等级比较高的时候发现编译不优化时功能正常,开了优化等级02就出现异常,调试中看了很多博客总结一下. 一个变量,如果你的主程序要用到,同时中断还要用到,要加volatile修饰 ...

  3. MDK编译器内存分配

    转:https://blog.csdn.net/zuixin369/article/details/76195186?locationNum=7&fps=1 Keil MDK编译器完成编译链接 ...

  4. STM32内存知识

    在了解STM32内存之前需要了解 MCU 的型号和MDK 中的.map 文件,很多刚学习 stm32 时都不会过多的去了解 MCU 的选型,是在太枯燥了.这里在从新了解一下,久了就熟悉了. 一.STM ...

  5. keil mdk中如何确保某一段程序不被优化掉

    使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在ROM的0x00002000处定位了一个函数,假设为vo ...

  6. keil mdk中如何确保某一段程序不被优化掉(转)

    源:keil mdk中如何确保某一段程序不被优化掉 使用mdk编程,假如有一个有用的函数你定义了但是没有显式的调用,mdk在默认方式下,将会把这个函数从整个程序总删除掉,以节省ROM. 比如,你在RO ...

  7. MDK C++中对内联的极度优化

    先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable ...

  8. Keil MDK 无法设置断点【worldsing】

    要解决一个问题就怕不知道怎么搜索,或是别人没有遇到过: 同样碰到Keil MDK Debug调试无法设置断点问题,首先来问百度,GOOGLE,一下是我搜索到的结果:   1.keil 不能设置断点,每 ...

  9. MDK建立STM32F103*开发模板

    一.整体流程 1.获取ST库--STM32F10x_StdPeriph_Lib_V3.5.0 2.新建文件夹并加载文件 3.新建工程 4.给工程添加组 5.设置"Target Option& ...

随机推荐

  1. 转:java.io.IOException: Exceeeded maximum number of redirects: 5 解决版本

    Jmeter运行的时候出现的重定向超过n次的问题: When trying to test a Silverlight application, I get the below error. Has ...

  2. HDU 5754 Life Winner Bo

    四种棋子实质上都是一样的思路: 如果某位置的棋子,它下一步可以走到的位置中 能找到有后手胜的位置,那么该位置先手必胜. 如果某位置的棋子,它下一步可以走到的位置中 全是先手胜,那么该位置后手必胜. 其 ...

  3. 关于prototype属性的理解

    众所周知,prototype是一个属性对象,只要创建一个新函数,就会根据特定的规则为该函数创建一个prototype属性,这个属性指向函数的原型对象.在默认情况下,所有原型对象都会自动获得一个cons ...

  4. apt-get 依赖修复

    apt-get cleanapt-get update apt-get -f install dpkg --configure -a

  5. Linux入门(一)常见虚拟机及Linux系统安装、xshell连接虚拟机

    1环境 linux常用两种虚拟机 1.1  oracle VM VirtualBox 官方网站:https://www.virtualbox.org/ 1.2  vmware  下载链接:https: ...

  6. hdu_1392_Surround the Trees(凸包)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1392 题意:求凸包,不知道的百度 题解:模版题 #include<cstdio> #inc ...

  7. C# WebBrowser函数互相调用

    在使用C#开发winform程序过程中,我们经常会碰到嵌入了一个WebBrowser的浏览器控件.很多时候,我们需要在程序里控制网页的显示方式,或者调用网页当中的某个JS函数,反过来,也有可能网页也需 ...

  8. Hunters

    Hunters Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submi ...

  9. jQuery执行流程:

    实例1: 源码: <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ ...

  10. typeof判断类型(数组类型得用instanceof)

    var a= 1; console.log(typeof a); var b= '1'; console.log(typeof b); var c; console.log(typeof c); va ...