keil中关于使用_at_绝对地址定位问题

发布者:Qianfeng最新更新时间:2015-11-13 来源: eefocus关键字:keil  绝对地址  定位问题 手机看文章 扫描二维码
随时随地手机看文章
在网上看到有人提到在keil中使用_at_进行绝对地址定位问题,我简单介绍一下它的用法。 
使用_at_关键字对存储器进行绝对地址定位程序如下

#i nclude

char xdata LED_Data[50] _at_ 0x8000;

main()

{

   LED_Data[0] = 0x23;

}

在keil中运行以上程序可以在存储器窗口中输入 x:0x8000 可以看到0x8000地址中的值为0x23.

值得指出的几点是

1.在给变量LED_Data[50]定位绝对地址空间时,不能对其赋初值。

2.char xdata LED_Data[50] _at_ 0x8000;这条语句不能主函数中。有些网友提到在按着keil说明中用_at_进行绝对地址定位时,编译会出现错误274,就是将这条语句放在主函数 中的原因。

3.keil中地址是自动分配的,所以除非特殊情况否则不提倡使用绝对地址定位。初学者因帖别注意。不要把c当作汇编使用。
关键字:keil  绝对地址  定位问题 引用地址:keil中关于使用_at_绝对地址定位问题

上一篇:单片机中十进制数在寄存器里的表示方式
下一篇:神经网络用于智能车控制的一点心得

推荐阅读最新更新时间:2024-03-16 14:39

在实际项目开发中keil的调试方法
一.在keilc的调试状态下,如何观察各个片内外设的运行状态?如何修改它们的设置?​ 在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。 在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,为了随时观察它们的变化,可以启用view菜单下的Periodic Windows Update命令,让keilc自动周期刷新各个调试窗口。​ 二.在keilc的调试状态下,如何观察和修改变量?​ 在调试状态下,点击view菜单下的watch&call stack windows命令或对应的按钮,就会显示或隐藏起变量窗口。变量窗口包含有4个标签,即4个显示区
[单片机]
如何使用Keil UVision IDE进行8051编程
步骤1:下载Keil UVision IDE Keil为8051体系结构(C51)提供了代码受限(2K字节)评估版),足以满足学习目的。 评估版的主要限制如下。 8051编译器,汇编器,链接器和调试器的目标代码限制为2 KB 生成超过2 KB的目标代码的程序将无法编译 》 调试器支持2 KB或更小的程序 不提供对多个DPTR寄存器的硬件支持 Keil uVision IDE(评估版)可以是通过该链接下载。 单击上面的链接,您将重定向到Keil网站下载部分。 请单击 C51 图标下载8051。开发工具(上图)。 并下载Windows可执行文件。 更多信息,请点击此处。 步骤2:使用Keil Uvision创建8051/8052项
[单片机]
如何使用<font color='red'>Keil</font> UVision IDE进行8051编程
如何使用Keil5开发MSP430及Tiva系列开发板
如何使用keil5开发msp430,Tiva系列 Launchpad系列是Ti德州仪器推出的一系列低成本开发评估套件,即使放到现在,这系列的MCU仍旧不失为一款优异的微控制器芯片。Ti Launchpad平台的另一个系列板卡——Tiva C系列的TM4C123G Launchpad评估套件EK-TM4C123GXL,基于高性能的ARM Cortex-M4处理器。 由于TI官方提供的CCS用起来很麻烦,安装也很麻烦。故我们想办法在MDK平台上开发对吧。同样大家也可以用IAR for msp430 首先需要安装MDK5即Keil5.未安装的同学请转此 https://baijiahao.baidu.com/s?id=1596425
[单片机]
如何使用<font color='red'>Keil</font>5开发MSP430及Tiva系列开发板
单片机keil-c51语言乘除法和取膜超范围问题
注意:计算式,能不写成一大行的就分开写,只要保证了精度就可以了!!写一大行有时候反而影响精度! 例如:unsigned long int X; double AD; AD=AD/50.0; X=AD*5000.0000/1023.00; 最好先局部计算一下,X=AD*100/1023.00; 1。浮点类型的不能做 模 运算。 例如:float a=1234.56; a=a%10; 这是错误的。只有整形才能做 模 int a=12345; a=a%10; 2.如果你想做普通的四则运算。那肯定是浮点数的运算。整形的除法叫取模,不是我们平时的除法,它是舍去了余数,即小数部分。例如:int a=1; a=a/10;
[单片机]
KeilC51数据类型转换
1、/*06-03-31在KEIL中调试发现*/ 例1: ...... unsigned long int b; unsigned int x; x=968; b=100*x; b=96800-65536; 例2: ...... unsigned long int b,x; x=968; b=100*x; b=96800; 例3: ...... unsigned long int b; unsigned int x; x=968; b=(unsigned long int)(x)*100; b=96800; 结论:在使用KEIL C51中进行复杂数学运算时,特别是在运算表达式左右两边
[单片机]
Keil Monitor-51仿真板的制作与使用
MCS -51单片机在我国应用最为广泛、经久不衰。以往单片机应用程序主要用汇编语言编写。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用程序不但周期长,而且调试和排错也比较困难。为了提高编制单片机应用程序的效率,改善程序的可读性可移植性,采用高级语言无疑是一种最好的选择。C语言是一种通用的计算机程序设计语言,既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也较强,许多以往只能采用汇编语言来解决的问题现在都可以改用C语言解决。德国Keil Software公司多年来致力于单片机C语言编译器的研究。该公司开发的Keil C51是一种专为8051单片机设计的高效率C语言编译器,符合ANSI标准
[单片机]
Keil C51高级编程
l 绝对地址访问 l C与汇编的接口 l C51软件包中的通用文件 l 段名转换与程序优化 第一节 绝对地址访问 C51提供了三种访问绝对地址的方法: 绝对宏: 在程序中,用“#include absacc.h ”即可使用其中定义的宏来访问绝对地址,包括: CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 具体使用可看一看absacc.h便知 例如: rval=CBYTE ;指向程序存贮器的0002h地址 rval=XWORD ;指向外RAM的0004h地址 2. _at_关键字 直接在数据定义后加上_at_ const即可
[单片机]
EFT/ESD问题的测量和定位
大部分电子产品需要通过电快速瞬变脉冲群(EFT)(根据IEC61000-4-4)和静电放电(ESD)(根据IEC61000-4-2)等项目的标准测试。EFT和ESD是两种典型的突发干扰,EFT信号单脉冲的峰值电压可高达4kV,上升沿5ns。接触放电测试时的ESD信号的峰值电压可高达8kV,上升时间小于1ns。这两种突发干扰,都具有突发、高压、宽频等特征。 在进行标准的EFT/ESD测试时,把干扰脉冲从设备外部耦合到内部,同时监视设备的工作状态。如果设备没有通过这些标准的测试,测试本身几乎不能提供任何如何解决问题的信息。 要想定位被测物(EUT)对突发干扰敏感的原因和位置,必须进行信号测量。但是如果采用示波器进行测量的话,EUT
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved