Line 19... |
Line 19... |
/* You should have received a copy of the GNU Lesser General Public License */
|
/* You should have received a copy of the GNU Lesser General Public License */
|
/* along with this source; if not, write to the Free Software Foundation, */
|
/* along with this source; if not, write to the Free Software Foundation, */
|
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
|
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
|
/* */
|
/* */
|
/*===========================================================================*/
|
/*===========================================================================*/
|
/* CPU OPERATING MODES */
|
/* CPU OPERATING MODES (FPGA VERSION) */
|
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
/* Test the CPU Operating modes: */
|
/* Test the CPU Operating modes: */
|
/* - CPUOFF (<=> R2[4]): turn off CPU. */
|
/* - CPUOFF (<=> R2[4]): turn off CPU. */
|
/* - OSCOFF (<=> R2[5]): turn off LFXT_CLK. */
|
/* - OSCOFF (<=> R2[5]): turn off LFXT_CLK. */
|
/* - SCG1 (<=> R2[7]): turn off SMCLK. */
|
/* - SCG1 (<=> R2[7]): turn off SMCLK. */
|
/* */
|
/* */
|
/* Author(s): */
|
/* Author(s): */
|
/* - Olivier Girard, olgirard@gmail.com */
|
/* - Olivier Girard, olgirard@gmail.com */
|
/* */
|
/* */
|
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
/* $Rev: 141 $ */
|
/* $Rev: 202 $ */
|
/* $LastChangedBy: olivier.girard $ */
|
/* $LastChangedBy: olivier.girard $ */
|
/* $LastChangedDate: 2012-05-05 23:22:06 +0200 (Sat, 05 May 2012) $ */
|
/* $LastChangedDate: 2015-07-01 23:13:32 +0200 (Wed, 01 Jul 2015) $ */
|
/*===========================================================================*/
|
/*===========================================================================*/
|
|
|
.include "pmem_defs.asm"
|
.include "pmem_defs.asm"
|
|
|
.global main
|
.global main
|
Line 96... |
Line 96... |
mov #0x0008, r2 ; # OSCOFF=0 (LFXT1 on)
|
mov #0x0008, r2 ; # OSCOFF=0 (LFXT1 on)
|
mov #0x2001, r15
|
mov #0x2001, r15
|
mov #0x0050, r14
|
mov #0x0050, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
mov.b #0x00, &BCSCTL2 ; # Div /1 --> select DCOCLK
|
mov.b #0x00, &BCSCTL2 ; # Div /1 --> SMCLK select DCOCLK
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
mov #0x2002, r15
|
mov #0x2002, r15
|
mov #0x0050, r14
|
mov #0x0050, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
Line 110... |
Line 110... |
|
|
mov #0x2004, r15 ; # OSCOFF=1 (LFXT1 off) return from IRQ
|
mov #0x2004, r15 ; # OSCOFF=1 (LFXT1 off) return from IRQ
|
mov #0x0050, r14
|
mov #0x0050, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
mov.b #0x08, &BCSCTL2 ; # Div /1 --> select LFXT1CLK
|
mov.b #0x08, &BCSCTL2 ; # Div /1 --> SMCLK select LFXT1CLK
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
mov #0x2005, r15
|
mov #0x2005, r15
|
mov #0x0050, r14
|
mov #0x0050, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
mov.b #0x00, &BCSCTL2 ; # Div /1 --> select DCOCLK
|
mov.b #0x00, &BCSCTL2 ; # Div /1 --> SMCLK select DCOCLK
|
mov #0x0008, r2 ; # OSCOFF=0 (LFXT1 on)
|
mov #0x0008, r2 ; # OSCOFF=0 (LFXT1 on)
|
mov #0x2006, r15
|
mov #0x2006, r15
|
mov #0x0050, r14
|
mov #0x0050, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
Line 150... |
Line 150... |
mov #0x3003, r15
|
mov #0x3003, r15
|
mov #0x0008, r2 ; # CPUOFF=0 (CPU on)
|
mov #0x0008, r2 ; # CPUOFF=0 (CPU on)
|
mov #0x0020, r14
|
mov #0x0020, r14
|
call #WAIT_FUNC
|
call #WAIT_FUNC
|
|
|
|
mov #0x4000, r15
|
|
|
|
|
|
/* -------------- DMA_SCG1 --------------------------------------------- */
|
|
|
|
mov.b #0x06, &BCSCTL2 ; # Div /8
|
|
|
|
mov.b #0x00, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=0
|
|
mov #0x0088, r2 ; # SCG1=1 (SMCLK off)
|
|
mov #0x4001, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x02, &BCSCTL1 ; # DMA_OSCOFF=1 / DMA_SCG1=0
|
|
mov #0x0088, r2 ; # SCG1=1 (SMCLK off)
|
|
mov #0x4002, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x08, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=1
|
|
mov #0x0088, r2 ; # SCG1=1 (SMCLK off)
|
|
mov #0x4003, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x0A, &BCSCTL1 ; # DMA_OSCOFF=1 / DMA_SCG1=1
|
|
mov #0x0088, r2 ; # SCG1=1 (SMCLK off)
|
|
mov #0x4004, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x00, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=0
|
|
mov #0x0088, r2 ; # SCG1=1 (SMCLK off)
|
|
mov #0x4005, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov #0x0008, r2 ; # SCG1=0 (SMCLK on)
|
|
mov #0x4006, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov #0x5000, r15
|
|
|
|
/* -------------- DMA_OSCOFF --------------------------------------------------- */
|
|
|
|
mov.b #0x06, &BCSCTL2 ; # Div /8
|
|
|
|
mov.b #0x00, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=0
|
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
|
mov #0x5001, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x02, &BCSCTL1 ; # DMA_OSCOFF=1 / DMA_SCG1=0
|
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
|
mov #0x5002, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x08, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=1
|
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
|
mov #0x5003, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x0A, &BCSCTL1 ; # DMA_OSCOFF=1 / DMA_SCG1=1
|
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
|
mov #0x5004, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov.b #0x00, &BCSCTL1 ; # DMA_OSCOFF=0 / DMA_SCG1=0
|
|
mov #0x0028, r2 ; # OSCOFF=1 (LFXT1 off)
|
|
mov #0x5005, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov #0x0008, r2 ; # OSCOFF=1 (LFXT1 on)
|
|
mov #0x5006, r15
|
|
mov #0x0020, r14
|
|
call #WAIT_FUNC
|
|
|
|
mov #0x6000, r15
|
|
|
|
|
|
|
/* ---------------------- END OF TEST --------------- */
|
/* ---------------------- END OF TEST --------------- */
|
end_of_test:
|
end_of_test:
|
nop
|
nop
|