keil 局部变量不能查看值,显示为not in scope

2023-05-16

关于编译器的优化,参考网上的8051系列的说明如下:

0级优化:
1、 常数折叠:只要有可能,编译器就执行将表达式化为常数数字的计算,其中包括运行地址的计算。
2、 简单访问优化:对8051系统的内部数据和位地址进行访问优化。
3、 跳转优化:编译器总是将跳转延至最终目标上,因此跳转到跳转之间的命令被删除。
1级优化:
1、 死码消除:无用的代码段被消除。
2、 跳转否决:根据一个测试回溯,条件跳转被仔细检查,以决定是否能够简化或删除。
2级优化:
1、 数据覆盖:适于静态覆盖的数据和位段被鉴别并标记出来。连接定位器BL51通过对全局数据流的分析,选择可静态覆盖的段。
3级优化:
1、“窥孔”优化:将冗余的MOV命令去掉,包括不必要的从存储器装入对象及装入常数的操作。另外如果能节省存储空间或者程序执行时间,复杂操作将由简单操作所代替。
4级优化:
1、 寄存器变量:使自动变量和函数参数尽可能位于工作寄存器中,只要有可能,将不为这些变量保留数据存储器空间。
2、扩展访问优化:来自IDATA、XDATA、PDATA和CODE区域的变量直接包含在操作之中,因此大多数时候没有必要将其装入中间寄存器。
3、局部公共子式消除:如果表达式中有一个重复执行的计算,第一次计算的结果被保存,只要有可能,将被用作后续的计算,因此可从代码中消除繁杂的计算。
4、 CASE/SWITCH语句优化:将CASE/SWITCH语句作为跳转表或跳转串优化。
5级优化:
1、 全局公共子式消除:只要有可能,函数内部相同的子表达式只计算一次。中间结果存入一个寄存器以代替新的计算。
2、 简单循环优化:以常量占据一段内存的循环再运行时被优化。
6级优化:
1、 回路循环:如果程序代码能更快更有效地执行,程序回路将进行循环。
7级优化:
1、 扩展入口优化:在适合时对寄存器变量使用DPTR数据指针,指针和数组访问被优化以减小程序代码和提高执行速度。
8级优化:
1、 公共尾部合并:对同一个函数有多处调用时,一些设置代码可被重复使用,从而减小程序代码长度。
9级优化:
1、 公共子程序块:检测重复使用的指令序列,并将它们转换为子程序。C51甚至会重新安排代码以获得更多的重复使用指令序列。
当然,优化级别并非越高越好,应该根据具体要求适当选择。


设置方法:

魔术棒--> C/C++/ Code Opitization/ 0-3 level / choose 0 level。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keil 局部变量不能查看值,显示为not in scope 的相关文章

  • 排序和复杂度

    常见的排序方式 1 冒泡排序 xff1a 时间复杂度 xff1a 最好情况是 O n xff0c 最坏情况是 O n2 空间复杂度 xff1a 开辟一个空间交换顺序O 1 2 快速排序 xff1a 时间复杂的 xff1a 最好情况是 O n
  • 文件IO过程

    基本概念 xff1a 文件描述符 xff1a xff08 文件描述符有时称为文件句柄 xff09 进程级 xff09 文件描述符是一个简单的整数 xff0c 用以标明每一个 被 进程所打开的文件和socket 通常0 1 2被标准输入 标准
  • private与构造函数

    通常我们都将构造函数的声明置于public区段 xff0c 假如我们将其放入private区段中会发生什么样的后果 xff1f 没错 xff0c 我也知道这将会使构造函数成为私有的 xff0c 这意味着什么 xff1f 我们知道 xff0c
  • 使用VS Code连接远程服务器

    目录 一 VS Code的安装与下载 二 安装插件 三 添加服务器连接配置 四 连接服务器 一 VS Code的安装与下载 关于VS Code的安装与下载及VS Code的使用方式详见如下链接 VSCode安装教程并配置C C 43 43
  • C语言 转换10进制为16进制

    实际上就是除16取余然后将其本身除以16 xff0c 得到的这一个数将它转换为具体的16进制数字的过程 xff0c 当然最后还要注意前面的字符位置的添加 span class token comment 进制之间互相转换 xff1a 将十进
  • TCP协议是如何保证传输可靠性的

    TCP确保传输可靠性的方式 校验和序列号 确认应答超时重传连接管理流量控制 xff08 滑动窗口控制 xff09 拥塞控制 校验和 xff1a TCP校验和是一个端到端的校验和 xff0c 由发送端计算 xff0c 然后由接收端验证 其目的
  • TCP的三次握手与四次挥手详解

    文章目录 TCP 协议简述TCP包首部TCP 三次握手建立连接TCP 四次挥手关闭连接常见面试题 xff1a TCP 协议简述 TCP 提供面向有连接的通信传输 xff0c 面向有连接是指在传送数据之前必须先建立连接 xff0c 数据传送完
  • IP数据报格式及分片与重组

    IP数据报 在 TCP IP 协议中 xff0c 使用 IP 协议传输数据的包被称为 IP 数据报 xff08 也叫数据包或数据报文 xff09 xff0c 每个数据包都包含 IP 协议规定的内容 IP协议提供不可靠无连接的数据报传输服务
  • mysql锁机制

    MySQL的锁机制 文章目录 MySQL的锁机制1 行锁2 表锁3 页锁4 乐观锁和悲观锁4 1悲观锁4 2乐观锁5 1InnoDB锁的特性 首先对mysql锁进行划分 xff1a 按照锁的粒度划分 xff1a 行锁 表锁 页锁按照锁的使用
  • uboot开发流程

    uboot其实就是一段比较复杂的单片机代码用来作为引导程序 xff0c 它的主要任务是初始化硬件设备 xff0c 将系统的软硬件环境带到一个合适的状态 xff0c 再将内核从一种存储介质读入到内存中 xff0c 然后跳到内核的入口点去运行
  • java的几种IO

    Java IO方式大体上可以分为三类 xff0c 基于不同的io模型可以简单分为同步阻塞的BIO 同步非阻塞的NIO和异步非阻塞的AIO IO又主要可以分为文件IO和网络IO 针对Java的网络IO模型 xff0c 可以看网络IO模型 xf
  • 哈希冲突和一致性哈希

    文章目录 哈希冲突处理哈希冲突1 开放地址法2 再散列法3 链地址法4 建立一个公共溢出区 一致性哈希普通 hash算法普通 hash 算法的缺陷 一致性哈希算法一致性 hash 算法的优点hash 环的倾斜与虚拟节点 哈希冲突 哈希函数又
  • Redis IO多路复用理解

    IO多路复用在Redis中的应用 Redis 服务器是一个事件驱动程序 xff0c 服务器处理的事件分为时间事件和文件事件两类 文件事件 xff1a Redis主进程中 xff0c 主要处理客户端的连接请求与相应 时间事件 xff1a fo
  • 分布式理论CAP,BASE

    什么是CAP理论 xff1f CAP理论指的是一个分布式系统最多只能同时满足一致性 xff08 Consistency xff09 可用性 xff08 Availability xff09 和分区容错性 xff08 Partition to
  • javaEE接收request参数以及输出结果到html页面

    1 引入需要的类 这里需要注意 xff0c servlet类不是jre自带的 xff0c 需要自己添加 添加相关类主要有以下两种方式 xff1a 下载servlet api jar xff08 tomcat自带 xff09 然后添加到cla
  • 西门子博途数据块(DB块)快速导入导出

    有些人可能会想用查表法计算CRC校验码 查表法效率和速度都很高 但是空间换时间 让你用几秒钟时间 把一张完整的表存入博途里 就算了你单身20年的手速估计也完成不了 想要几秒钟完成也不是不可以 就是导入别人的源文件 拿来主义当然块 继续上图
  • opencv4.0学习笔记

    目录 课程来源 xff1a 哔哩哔哩大学 第一节课 显示第一张图片 环境配置了一个早上 xff0c 到10 48分配置完毕 xff0c 有点难受 还好最后显示出第一张图片 include span class token operator
  • 程序人生

    http zhan renren com itonline from 61 template amp checked 61 true
  • 传感器的使用(一)-火焰传感器

    火焰传感器的介绍 1 工作电压 xff1a DC 3 3V 5V 2 灵敏度可调 xff08 可调电位器 xff09 3 工作温度 xff1a xff0d 10 xff0b 50 4 设有固定螺铨孔 xff0c 方便安装 5 探测角度 60
  • 传感器的使用(二)-温湿度传感器DHT11(HAL库实现)

    温湿度传感器的介绍 DHT11技术性能特征 工作电压范围 xff1a 3 3V 5 5V 工作电流 xff1a 平均0 5mA 输出 xff1a 单总线数字信号 测量范围 xff1a 湿度20 90 xff05 RH xff0c 温度0 5

随机推荐

  • Makefile详解及使用

    内容来自大丙老师的blog Makefile简介 linux环境下 xff0c 当用户编译文件过多的时候 xff0c 使用makefile可以帮助模块化编译文件 xff0c makefile是一个脚本文件 xff0c 根据规则 xff0c
  • QT绘制实时动态曲线——qcustomplot使用(二)

    在QT绘制实时动态曲线 qcustomplot使用 xff08 一 xff09 中 xff0c 介绍使用官方的demo实现动态实时曲线 官方代码移植 针对动态显示数据项目要求 xff0c 移植官方代码demo 开启绘图的函数 span cl
  • QT的多种功能使用记录

    设置控件的边角为圆角 xff1a border top left radius 设置左上角圆角 border top right radius 设置右上角圆角 border bottom left radius 设置左下角圆角 border
  • MYSQL之视图的使用

    视图的使用 使用视图的好处 1 简化select的字段 xff0c 方便管理 2 可以针对不同用户 xff0c 对视图进行不同的查看 也就是说可以做权限管理 3 视图的语法 CREATE VIEW MYTEST AS select 列车号
  • 模糊PID之matlab模糊控制器配置

    前言 使用模糊PID时 xff0c 需要对工具库进行配置 xff0c 模糊PID是由2个输入个3个输出组成 xff0c 输出是E和Ec xff0c 输出是Kp Ki和Kd 打开matlab后 xff0c 需要配置 MATLAB模糊配置 1
  • java url后面带sessionid_url中jsessionid的理解

    1 这是一个保险措施 因为Session默认是需要Cookie支持的 但有些客户浏览器是关闭Cookie的 这个时候就需要在URL中指定服务器上的session标识 也就是5F4771183629C9834F8382E23BE13C4C 用
  • stm32简介+gpio的C语言封装

  • 一些post请求和get请求的调用例子

    目录 post请求 1 http请求 无请求参数 请求包格式为application json 请求包包含若干字段 get请求 1 http请求 响应类型application zip 请求结果为下载一个zip的压缩文件 解压下载的压缩包
  • 80个Python经典资料(教程+源码+工具)汇总——下载目录

    大家好 xff0c 51CTO下载中心根据资料的热度和好评度收集了80个Python资料 xff0c 分享给Python开发的同学 内容包括1个Python专题 66个学习资料 7套Python源码和6个相关软件 附件较多 xff0c 无法
  • Jetson Xavier NX使用yolov5+deepsort实现CSI摄像头的目标跟踪

    文章目录 安装过程运行效果用python代码来打开CSI摄像头实现CSI摄像头目标跟踪报错 AttributeError 39 NoneType 39 object has no attribute 39 shape 39 运行效果 参考文
  • 机械周期、时钟周期、脉冲、晶振频率之间的关系

    机械周期 时钟周期 脉冲 晶振频率之间的关系 晶振频率与脉冲的关系时钟周期与脉冲的关系机械周期与时钟周期的关系 整理下学到的机械周期 时钟周期 脉冲 晶振频率之间的关系 晶振频率与脉冲的关系
  • 51单片机的串行接口介绍

    51单片机的串行接口介绍 串行口结构设置工作方式 xff08 串行口控制寄存器SCON xff09 设置波特率 51单片机内部集成1 2个可编程通用异步串行通信接口 xff08 即UART xff09 xff0c 采用全双工制式 该通信接口
  • IIC通信总线寻址

    IIC的使用 IIC总线简介IIC通信时序IIC总线寻址 IIC总线简介 1 IIC总线是一种由PHILIPS公司开发的两线式串行总线 2 IIC在硬件上是时钟总线SCL和数据总线SDA两条线构成 3 器件连接到总线都是SCL连到一起 xf
  • 通过PCF8591读取电压值(AD转换)

    通过PCF8591读取电压值 xff08 AD转换 xff09 A D的主要指标常用A D器件 PCF8591PCF8591的控制字节 A D的主要指标 1 ADC的位数 xff1a n位ADC代表 xff0c 2的n次方个刻度 2 基准源
  • STM32的光敏传感器

    STM32的光敏传感器 简介硬件连接计算公式程序 简介 1 照射光敏二极管的光强不同 xff0c 通过光敏二极管的电流大小就不同 xff0c 所以可以通过检测电流大小 xff0c 达到检测光强的目的 利用这个电流变化 xff0c 我们串接一
  • MPU6050寄存器介绍

    MPU6050寄存器介绍 MPU6050寄存器介绍电源管理寄存器1 xff08 0X6B xff09 陀螺仪配置寄存器 xff08 0X1B xff09 加速度传感器配置寄存器 xff08 0X1C xff09 FIFO使能寄存器 xff0
  • (10)查看RGB摄像头和深度摄像头

    查看RGB摄像头和深度摄像头 RGB摄像头深度摄像头 1 小车开机 xff0c 连接wifi xff0c 远程登录 登录密码 xff1a dongguan ssh wheeltec 64 192 168 0 100 2 挂载 挂载密码 xf
  • (11)色块跟踪

    色块跟踪 一 查看色块追踪的文件位置 xff1a 在ros simple follower文件下的simple followe的Launch文件 二 可调整识别色块的阈值 xff0c 追踪过程中最大速度 xff0c 中距值 xff0c PI
  • (6)ROS与STM32之间的联系

    ROS与STM32之间的联系 简介两者之间的关系两者之间的通信ROS如何在代码层面去接收stm32发送过来的数据1 整体框架2 机器人底盘类3 构造函数4 主函数5 循环功能函数6 析构函数 简介 1 如何实现ROS与stm32之间的通信
  • keil 局部变量不能查看值,显示为not in scope

    关于编译器的优化 xff0c 参考网上的8051系列的说明如下 xff1a xfeff xfeff 0级优化 xff1a 1 常数折叠 xff1a 只要有可能 xff0c 编译器就执行将表达式化为常数数字的计算 xff0c 其中包括运行地址