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

* 10656: C51编程:这是C51的一个BUG吗?

   e_gay 
e_gay发表的帖子 

 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.


发表时间:2002年9月4日23:43:00

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:硬件:做元件库每回做原理图或者pcb,不论是protel或者pads。都需要做封装,其实就是芯片在原
[下一篇帖子]:闲聊:我从未用过仿真器,请各位推荐性价比高支持C和ASM仿菲利普P89C51RD2的。谢谢了:)。