导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[KeilC51求助]<请教logu>为什么会这样?[newleaner]

 *第10556篇: [KeilC51求助]<请教logu>为什么会这样?

  
楼 主:newleaner 2003年4月17日21:14
 [KeilC51求助]<请教logu>为什么会这样?
单片板子上挂了51和一块存储器。
     我写了一个小程序在上面运行,开始时在keil中选择用small模式来编译程序,在板子上可以正常运行(我在keil的项目生成时没有选择加入startup.a51文件)。
     后来改用large模式来编译,出现了一个问题:有一个函数在startup.a51文件和我的主程序中都调用了,keil的提示出现一个警告:multicall to segment。看来keil自己把startup文件加入了项目(我猜想是不是要初始化外部存储器的缘故)。于是修改startup文件里定义的堆栈起始地址和长度为我板子上的存储器情况。另外把被重复调用的函数定义为reentrant类型,编译通过了,但是运行程序时跑飞了,不理解。
      后来把反汇编文件拿出来看了一下,发现在进行reentrant型函数的模拟堆栈操作时,居然用到了mov dptr,#0ffff,后面一句看不懂,估计是把reentrant型函数的模拟堆栈搞到了#0ffff位置,但是我定义的存储器根本没有到那里啊,为什么用到了那里呢?

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

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


[上一篇主题]:[原创]自己做的125KHZ非接触式IC卡读卡头已经成功了,看看吧

[下一篇主题]:请问斑竹搜索功能为什么不好用,是我ie有问题,还是你们的问题,请帮我解决