登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请教DX们:ICC AVR的RAM绝对地址方法 !!!

作者:jimho 栏目:单片机
请教DX们:ICC AVR的RAM绝对地址方法 !!!
我用的ATMEGA162,程序中需要对RAM进行绝对地址定义。
如在51中的 xdata AA _at_ 0x1000;在ICCAVR中如何实现?

2楼: >>参与讨论
zsmbj
在《AVR单片机C语言开发与入门指导》一书里有
#define AA (*(volatile unsigned CHAR *)0x1000)

然后就可以方便的使用了,如:
AA = 0x80;

3楼: >>参与讨论
dingyu79
还有一种
#pragma abs_address:0x1000
unsigned CHAR AA
#pragma end_abs_assress

4楼: >>参与讨论
jimho
不能定义到RAM区?
用上面的方法好象都不行:
*.c
#pragma abs_address:0x0110
unsigned CHAR  AA[0x100];
unsigned CHAR trbox[10];
#pragma end_abs_address

*.mp
Area                         Addr   Size   Decimal Bytes (Attributes)
-------------------    ----   ----   ------- ----- ------------
                      bss   0100   0014 =     20. bytes (rel,con,ram)

       Addr  GLOBAL Symbol
      -----  --------------------------------
       0100  __bss_start
       0100  _RESH
       0101  _STATUS
       0102  _rebox
       010C  _nw
       010E  _i
       010F  _j
       0110  _P
       0111  _pos
       0112  ___FreeList
       0114  __bss_end

Area                     Addr   Size   Decimal Bytes (Attributes)
--------------   ----   ----   ------- ----- ------------
                MEMORY   0000   411A =  16666. bytes (abs,ovr,rom)

       Addr  GLOBAL Symbol
      -----  --------------------------------
       0110  _AA
       4110  _trbox


RAM区的地址0x110依然存在?
为什么?

5楼: >>参与讨论
jimho
内部RAM就不能访问绝对地址吗??
 
6楼: >>参与讨论
dingyu79
看《AVR单片机C语言开发与入门指导》
里面写的很详细

7楼: >>参与讨论
yingzeziga
注意
访问外部ram时候要打开mcucr中的sre位。你还是要注意的!

参与讨论
昵称:
讨论内容:
 
 
相关帖子
M8的内部RC振荡器,哪种速度受温度影响大?
WinAVR中关于变量与SRAM
请教版主关于AT90S4434的复位
mega16中断向量重定位的问题.
请问哪有介绍AT29S8252资料的?这个网站没有啊
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号