void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
Seven Han:
您好,请问该语句在flash中具体出现了啥问题呢?
void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
旭日:
回复 Seven Han:
运行到延迟函数,就会出现错误。
void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
旭日:
回复 Seven Han:
No source available for "0x3ff599" 这种错误
3ff594: 0642 MOVL ACC, *-SP[2]3ff595: FE84 SUBB SP, #43ff596: 0006 LRETR 3ff597: 767FF895 LCR 0x3ff8953ff599: 7625 ESTOP0 3ff59a: 6FFF SB -1, UNC3ff59b: FE02 ADDB SP, #23ff59c: 9641 MOV *-SP[1], AL
void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
Seven Han:
回复 旭日:
报哪种错?
void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
旭日:
回复 Seven Han:
No source available for "0x3ff599" 这种错误
3ff594: 0642 MOVL ACC, *-SP[2]3ff595: FE84 SUBB SP, #43ff596: 0006 LRETR 3ff597: 767FF895 LCR 0x3ff8953ff599: 7625 ESTOP0 3ff59a: 6FFF SB -1, UNC3ff59b: FE02 ADDB SP, #23ff59c: 9641 MOV *-SP[1], AL
void XtalOscSel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF = 0; // Turn on XTALOSC
DELAY_US(1000L); // 1mS delay to ensure crystal
// oscillator is up and running.
// Adjust as needed. SysCtrlRegs.CLKCTL.bit.XCLKINOFF = 1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.OSCCLKSRC2SEL = 0; // Switch to external clock
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL = 1; // Switch from INTOSC1 to INTOSC2/ext clk
SysCtrlRegs.CLKCTL.bit.WDCLKSRCSEL = 0; // Clock Watchdog off of INTOSC1
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF = 1; // Turn off INTOSC2
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF = 0; // Leave INTOSC1 on
EDIS;
}
上边是28035的使用外部晶振程序,在ram中程序没有问题但是在flash中 DELAY_US(1000L); // 1mS delay to ensure crystal 这条语句出现了问题,请问什么原因?
Seven Han:
回复 旭日:
这个和使用外部晶振关系不大,0x3ff599是boot rom的地址,调试时出现No source available for "0x3ff599"不会有影响