DSP2808的ADC模块上电时有如下一段带有延时函数的程序,改程序在RAM中能正常运行,但在flash中运行每次执行延时函数都会进入非法中断,
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // Power up bandgap/reference circuitry
DELAY_US(ADC_usDELAY); // Delay before powering up rest of ADC
AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // Power up rest of ADC
DELAY_US(ADC_usDELAY2);
延时函数代码如下,是不是.sect "ramfuncs"这句话出问题了,请问在flash下这句话应该怎么改呢?谢谢
.def _DSP28x_usDelay
.sect "ramfuncs"
.global __DSP28x_usDelay
_DSP28x_usDelay:
SUB ACC,#1
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR
囧:
应该改成.text
DSP2808的ADC模块上电时有如下一段带有延时函数的程序,改程序在RAM中能正常运行,但在flash中运行每次执行延时函数都会进入非法中断,
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // Power up bandgap/reference circuitry
DELAY_US(ADC_usDELAY); // Delay before powering up rest of ADC
AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // Power up rest of ADC
DELAY_US(ADC_usDELAY2);
延时函数代码如下,是不是.sect "ramfuncs"这句话出问题了,请问在flash下这句话应该怎么改呢?谢谢
.def _DSP28x_usDelay
.sect "ramfuncs"
.global __DSP28x_usDelay
_DSP28x_usDelay:
SUB ACC,#1
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR
mangui zhang:
在flash中跑 怎么发现进入了非法中断了?
挂上仿真器 还是在RAM中跑的吧
DSP2808的ADC模块上电时有如下一段带有延时函数的程序,改程序在RAM中能正常运行,但在flash中运行每次执行延时函数都会进入非法中断,
AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3; // Power up bandgap/reference circuitry
DELAY_US(ADC_usDELAY); // Delay before powering up rest of ADC
AdcRegs.ADCTRL3.bit.ADCPWDN = 1; // Power up rest of ADC
DELAY_US(ADC_usDELAY2);
延时函数代码如下,是不是.sect "ramfuncs"这句话出问题了,请问在flash下这句话应该怎么改呢?谢谢
.def _DSP28x_usDelay
.sect "ramfuncs"
.global __DSP28x_usDelay
_DSP28x_usDelay:
SUB ACC,#1
BF _DSP28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR
Young Hu:
回复 mangui zhang:
在main()里面加入memcopy()了么?