导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:这是C51的一个BUG吗?[e_gay]

 *第4830篇: C51编程:这是C51的一个BUG吗?

  
楼 主:e_gay 2002年9月4日23:43
 C51编程:这是C51的一个BUG吗?
这是全局变量定义,定义了一个256字节的数组.
char pdata flash_buf[256];
根据定义,我修改了startup.asm中相关部分如下.
PPAGEENABLE    EQU    1    ; set to 1 if pdata object are used.
PPAGE        EQU    0    ; define PPAGE number.
PDATASTART    EQU    0000H    ; the absolute start-address of PDATA memory
PDATALEN    EQU    256    ; the length of PDATA memory in bytes.

根据以上定义,xdata 的x:0000h~x:00ffh应该属于全局变量区,但我的程序运行就是不正常,
观察汇编代码,发现局部变量是从x:0000h开始定义的,对于不能通过寄存器传递的参数,参数
传递栈也从x:0000h开始,不知道是我的设置不正确还是keilC51的BUG,我想一个这么成熟的
产品不应该有这么大的漏洞吧,希望各位高手指点一二.
我的编译环境是 keilc7.0.


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:硬件:做元件库

[下一篇主题]:闲聊:我从未用过仿真器,请各位推荐性价比高支持C和ASM仿菲利普P89C51RD2的。谢谢了:)。