2407数据段存储空间分配问题求教!
时间:10-02
整理:3721RD
点击:
各位走过路过的大虾们大家好!
小弟在网上下载了个电机控制的汇编程序,经过改动后可以带动电机旋转,但是此时并没有在cmd文件中对.BSS段和.DATA段分配地址,其地址是不是默认分配的?
但是当我在cmd文件中对该两段以及中断保护堆栈定义段分配地址后,程序无法正常运行,电机无法旋转,请问什么原因?此时编译是可以通过的.而且程序中相应的数据加载页也是正确的!
请大家帮帮忙,不胜感激!
小弟在网上下载了个电机控制的汇编程序,经过改动后可以带动电机旋转,但是此时并没有在cmd文件中对.BSS段和.DATA段分配地址,其地址是不是默认分配的?
但是当我在cmd文件中对该两段以及中断保护堆栈定义段分配地址后,程序无法正常运行,电机无法旋转,请问什么原因?此时编译是可以通过的.而且程序中相应的数据加载页也是正确的!
请大家帮帮忙,不胜感激!
如果不修改可以正常运行的话就没必要去改了,除非你要在存储器中固定某个地址来存放大量数据时才需要进行设置。
你可以参考下其他人的cmd文件是如何设置的。
关键是因控制需要我还要在数据段加一些数据,但是加上这些数据后看门狗就老是复位,怀疑为自动分配的空间不够导致程序混乱所致,所以就想对程序重新分配存储空间,才出现了上述问题.
有这种可能的,如果你把DATA数据段定义到0x8000之后,就有可能发生这样的情况,另外,在定义BSS,头文件里面是不是有变量的定义呀。以EQU格式写的。
在程序中的BSS段有用set伪指令为变量赋常值,而在头文件中并没有用EQU指令.DATA数据段定义在0x800到0xffff之间.