X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=pyfrprog.git;a=blobdiff_plain;f=pkernel%2Fstart91460.asm;h=c8c03bc69b3469fdbc9b9734c13e0bd16695a1e4;hp=1b901ce40bbfee245057d737ffb4f162480bf039;hb=HEAD;hpb=491429d86d787731dc08cc88ad99343036e4b5d0 diff --git a/pkernel/start91460.asm b/pkernel/start91460.asm index 1b901ce..c8c03bc 100644 --- a/pkernel/start91460.asm +++ b/pkernel/start91460.asm @@ -26,7 +26,7 @@ #set others 7 ; MB91460 series ; ; -#set DEVICE MB91465K ; <<< select device +#set DEVICE MB91465X ; <<< select device ;========================================================================================= ; 4.3 Stack Type and Stack Size ;========================================================================================= @@ -57,15 +57,6 @@ ; Check the stack information files (*.stk) in the LIB\911 directory. ; ;========================================================================================= -; 4.4 Copy code from Flash to I-RAM -;========================================================================================= -; -#set I_RAM ON ; <<< select if code in section IRAM -; should be copied -; If this option is activated code located in the section IRAM is copied during startup -; from ROM to the instruction-RAM. The code is linked for the instruction-RAM. -; -;========================================================================================= ; 4.7 Clock Configuration ;========================================================================================= ;========================================================================================= @@ -188,11 +179,10 @@ ;========================================================================================= .export __start .import _main - .import _RAM_INIT - .import _ROM_INIT ;========================================================================================= ; 6.1 Define Stack Size ;========================================================================================= + .section DATA, data, align=4 .SECTION SSTACK, STACK, ALIGN=4 #if STACK_RESERVE == ON .EXPORT __systemstack, __systemstack_top @@ -201,25 +191,10 @@ __systemstack_top: #endif - .SECTION USTACK, STACK, ALIGN=4 -#if STACK_RESERVE == ON - .EXPORT __userstack, __userstack_top - __userstack: - .RES.B STACK_USR_SIZE - __userstack_top: - -#endif ;========================================================================================= ; 6.2 Define Sections ;========================================================================================= - .section DATA, data, align=4 - .section INIT, data, align=4 - .section IRAM, code, align=4 - -#if I_RAM - .import _RAM_IRAM - .import _ROM_IRAM -#endif + .section CODE, code, align=4 ;----------------------------------------------------------------------------------------- ; MACRO Clear RC Watchdog @@ -228,9 +203,7 @@ LDI #0x4C7,R7 ; clear RC watchdog BANDL #0x7,@R7 #endm - .section CODE, code, align=4 .section CODE_START, code, align=4 -#pragma section CODE=IRAM,attr=CODE ;========================================================================================= ; 7. S T A R T @@ -244,25 +217,13 @@ startnop: ClearRCwatchdog ; clear harware watchdog ;========================================================================================= -; 7.1 Initialise Stack Pointer and Table Base Register +; 7.1 Initialise Stack Pointer ;========================================================================================= #if STACKUSE == SYSSTACK - ORCCR #0x20 - LDI #__userstack_top, SP ; initialize SP ANDCCR #0xDF LDI #__systemstack_top, SP ; initialize SP #endif -#if STACKUSE == USRSTACK - ANDCCR #0xDF - LDI #__systemstack_top, SP ; initialize SP - ORCCR #0x20 - LDI #__userstack_top, SP ; initialize SP -#endif - -smd_tbr: - MOV R0, TBR - #if (CLOCKSOURCE != NOCLOCK) ;========================================================================================= ; 7.2 Check for CSV reset and set CSV @@ -583,89 +544,7 @@ gearUpLoop: #endif noClockStartup: ClearRCwatchdog - -;========================================================================================= -; 7.8 Copy code from Flash to I-RAM -;========================================================================================= -#if I_RAM == ON - LDI #_RAM_IRAM, R0 - LDI #_ROM_IRAM, R1 - LDI #sizeof(IRAM), R13 - CMP #0, R13 - BEQ copy_iram_end -copy_iram1: - ADD #-1, R13 - LDUB @(R13, R1), R12 - BNE:D copy_iram1 - STB R12, @(R13, R0) -copy_iram_end: - ClearRCwatchdog -#endif - -;========================================================================================= -; Standard C startup -;========================================================================================= -;========================================================================================= -; 7.10 Clear data -;========================================================================================= -; clear DATA section -; According to ANSI, the DATA section must be cleared during start-up - LDI:8 #0, R0 - LDI #sizeof DATA &~0x3, R1 - LDI #DATA, R13 - CMP #0, R1 - BEQ data_clr1 -data_clr0: - ADD2 #-4, R1 - BNE:D data_clr0 - ST R0, @(R13, R1) -data_clr1: - LDI:8 #sizeof DATA & 0x3, R1 - LDI #DATA + (sizeof DATA & ~0x3), R13 - - CMP #0, R1 - BEQ data_clr_end -data_clr2: - ADD2 #-1, R1 - BNE:D data_clr2 - STB R0, @(R13, R1) -data_clr_end: - ClearRCwatchdog -;========================================================================================= -; 7.11 Copy Init section from ROM to RAM -;========================================================================================= -; copy rom -; All initialised data's (e.g. int i=1) must be stored in ROM/FLASH area. -; (start value) -; The Application must copy the Section (Init) into the RAM area. - LDI #_RAM_INIT, R0 - LDI #_ROM_INIT, R1 - LDI #sizeof(INIT), R2 - CMP #0, R2 - BEQ:D copy_rom_end - LDI #3, R12 - AND R2, R12 - BEQ:D copy_rom2 - MOV R2, R13 - MOV R2, R3 - SUB R12, R3 -copy_rom1: - ADD #-1, R13 - LDUB @(R13, R1), R12 - CMP R3, R13 - BHI:D copy_rom1 - STB R12, @(R13, R0) - CMP #0, R3 - BEQ:D copy_rom_end -copy_rom2: - ADD #-4, R13 - LD @(R13, R1), R12 - BGT:D copy_rom2 - ST R12, @(R13, R0) -copy_rom_end: - ClearRCwatchdog - start_main: ;========================================================================================= ; 7.14 call main routine