如何访问程序空间的数据表啊 高手指点下
我将CONST 定义程序空间内 然后
const unsigned int bbb={1,2,3,4,5};
main(void)
{
unsigned int i;
i=bbb[0];
}
变量 i 不能得到正确的值, 但如果CONST 定义在RAM区就可以,将请高手指点下解决的办法。我需要将数据表放在程序区
用汇编语言写一个函数,用来读取程序空间中的数据表,这种方法可以接受吗?
我是用汇编单独写一个文件,包含数据表和查表的函数,然后由C程序来调用。完全用C写比较理想,但是没找到在C中读取程序空间中数据表的方法。
C语言调用汇编的子程序,汇编语言应该怎么写,我写的汇编语言代码为什么不能正常退出?多谢!
代码如下:
.global _datasample,_ReadSample
.ref _datasample
.text
_ReadSample:
POPD *+
SAR AR0,*+
SAR AR6,*+
SAR AR7,*+
SAR AR1,*
LAR AR0,#03h
LAR AR0,*0+
begin:
LDP #100H ;数据页8000H-837FH
MAR *,AR1 ;
LAR AR0,#8H
。。。。。。
EXIT:
MAR *,AR1 ;设置ARP=SP;
SBRK #4H
LAR AR7,*-
LAR AR6,*-
LAR AR0,*- ;弹出FP
PSHD *
RET
这段代码_ReadSample 我替你测试了一下,能正常返回,没发现什么问题呀!
2812是否会有同样的问题,因为 程序越来越大,打算换2812
2812 我没有用过,回答不了你的问题,抱歉!
是不是有了这个库就可以在程序存储空间中读取数据了?
非常感谢 呵呵 解决长久以来的大问题了
pfunc.lib 中的 6 个函数,源代码读了一下,受益匪浅。可惜spra380.pdf 下载后却是一片空白,什么也看不见。是否我的 Acrobat Reader 版本不对?(是7.0)?难道非4.0 版不可,而不能向下兼容吗?
我最近也遇到了烧写之后函数参数不能正确传递的问题.
我的项目是在液晶显示器上显示字符串,为此定义了以下函数
LcdPrintStr(int x,int y,char *cStr)
{
char *pStr=cStr;
while(pStr)
{
....
pStr++;
}
}
char a[]=\"OK\";
main()
{
char b[]=\"Hello world\";
char *c=\"test\";
LcdPrintStr(0,0,a); //这句可以
LcdPrintStr(0,1,b); //这句可以
LcdPrintStr(0,2,c); //这句不行
LcdPrintStr(0,3,\"Hello\"); //这句不行
}
不行的两行,在函数体内通过参数cStr得到的字符串是一堆乱码,请问是不是被定义到程序空间去了?这个问题我怎么解决?
此问题已经困扰了我一个多月了,一直没有解决,论坛上的贴子也没有人能够给出有效的方法.烦请您帮助分析一下,不胜感激!