再问所长:MCU通用处理程序的几个问题!

[复制链接]
 楼主| guorock 发表于 2007-3-2 17:04 | 显示全部楼层 |阅读模式
1、“51系列内部的堆栈是向FF生长的,内部RAM内存分配是从FF向00开始的。”
我是这样理解的:51的堆栈范围只能为30H~7FH,00H~2FH为通用寄存器,80H~FFH为特殊功能寄存器,我们不能使用这两部分空间。剩下的30H~7FH可以用作堆栈或是用户数据存储。比如我们指定栈顶为30H,即MOV SP,#30H ,则堆栈从30H开始向上生长,而用户数据变量是从7FH开始向下分配,这样就要保证堆栈和用户数据不能冲突。

2、“该内存管理,只分配内存不释放内存,相当于在模块初始化时才确定的全局变量。”
这里全局变量的内存分配可以说是由我们来分配的。我想问的是:如果在.C文件开头定义全局变量,对它的内存分配应该是由编译器完成的。对这两种全局变量的内存分配,在地址上会不会有冲突呢?呵呵。

3、“int操作(对两个char操作)中被中断时可能发生操作熟被改变的情况”
以前编程序时,并没有这方面的考虑。这种考虑是只限于51呢,还是别的处理器也有这方面的考虑,那是不是所有的int操作都应进行关闭中断的保护措施。谢谢!

4、您给的文档中少给了Msg_PopMsg()函数,它应该是这样的:
//-------------------
//弹出消息字
//-------------------
unsigned char Msg_PopMsg()
{
    return sInMsg.aReadMsgBuffer[0];
}
对吧?
5、“后面几个阶段的培训内容:
图形设计软件的理论
嵌入系统图形窗口
设计辅助工具的重要性
大程序结构的软件设计模型

什么时候推出?期待ING。

多谢!
 楼主| guorock 发表于 2007-3-5 08:25 | 显示全部楼层

顶。

IC1008 发表于 2007-3-5 09:09 | 显示全部楼层

问题三,只限于8位机吧,我想

INT 是16位的
同理 LONG类型也会出现类似问题
 楼主| guorock 发表于 2007-3-6 14:32 | 显示全部楼层

我顶。

 楼主| guorock 发表于 2007-3-8 08:18 | 显示全部楼层
电子之子 发表于 2008-6-27 00:28 | 显示全部楼层

关注

chinaboy20 发表于 2010-10-26 11:29 | 显示全部楼层
所长 你跑到哪去了!
好久没见你的大作了!
问题5 是不是夭折了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

141

主题

169

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

141

主题

169

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部