微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > LDP #

LDP #

时间:10-02 整理:3721RD 点击:


请问高手:
LDP #6
SPLK #80h,RAMYU
是直接寻址,它的偏移量在哪?

ldp #6 是你的页地址
而ramyu的地址是你在本页中的偏移量
明白了?

请问以下描述对吗?
由.bss或.usect定义的变量
.bss K_,1 ;
.bss PITC,1 ;
.bss F2M,1 ;

ST0_SAVE .usect \".context\",1 ;
ST1_SAVE .usect \".context\",1 ;

是存储在数据存储器中,对吧?

那么要对上述变量赋值(直接寻址),首先要找到,存储它们的数据页,在如下赋值:
LDP #6
SPLK #0,K_ ;
SPLK #42166,PITC ;
SPLK #37749,F2M ;
那么,怎么才能找到正确的数据页?
如果像下边编写.CMD文件,是不是说.bss定义的第一个变量K_位于BLK_B1的首地址,即300h?
找到300h对应的数据页便可?
MEMORY
{
PAGE 0: /* PROGRAM MEMORY */
VECS: origin=0h, length=0040h /* PROGRAM */

PROG: origin=0044h, length=7FFFh /* 32K On-chip flash memory */

PAGE 1: /* DATA MEMORY */

BLK_B2: origin=60h, length=20h /* Block B2 */
BLK_B0: origin=200h, length=100h /* Block B0, On-chip DARAM if CNF=0 */
BLK_B1: origin=300h , length=100h /* Block B1 */
SARAM_D: origin=0800H , length=0800H /* 2K SARAM in data space */
PERIPH: origin=7000h , length=1000h /* Peripheral register space */
EX2_DM: origin=8000h , length=8000h /* External data RAM */

}
SECTIONS
{
.vectors: {} > VECS PAGE 0 /* INTERRUPT VECTOR TABLE */
.pvecs: {} > PROG PAGE 0
.text: {} > PROG PAGE 0 /* CODE */

.data: {} > PROG PAGE 0 /* INITIALIZATION DATA TABLES */

.bss: {} > BLK_B1 PAGE 1
.context: {} > BLK_B2 PAGE 1
}

你所说的意思是变量在.bss中第几个定义的,那么偏移量就是几,因为.bss中的变量是连续的,是吗?

是的,是在300,最好用ldp #k_>>7

为什么要ldp #k_>>7 ?

谁知道为什么,不这样会怎样?

ldp #k_>>7是把k_的页地址取出来

恍然大明白,谢谢阿

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top