//--------------------------------------------------------------------------- short LCDSetLineSource( short Region, short LineCount, pixel *pSource, short LineStep) { long PixelStart; if (Region >= 1) return (-1); if ((pSource < (pixel *)__sectop("BLCD_Frames_2")) || (pSource > (pixel *)__secend("BLCD_Frames_2"))) return (-1); if ((&pSource[(long)LineCount * (long)LineStep] < (pixel *)__sectop( "BLCD_Frames_2")) || (&pSource[(long)LineCount * (long)LineStep] > (pixel *)__secend("BLCD_Frames_2"))) if (LineCount > V_LINES_PER_FRAME) return (-1); PixelStart = 0; #if LCD_FLIP_Y DD_RegionLines[Region].LineNext = LineStep; DD_RegionLines[Region].pLine = pSource + PixelStart; DD_RegionLines[Region].Height = LineCount; #else DD_RegionLines[Region].LineNext = -LineStep; DD_RegionLines[Region].pLine = pSource + PixelStart + ((LineCount-1) * LineStep); DD_RegionLines[Region].Height = LineCount; #endif return (0); }
void PowerON_Reset_PC(void) { #ifdef __RXV2 set_extb(__sectop("EXCEPTVECT")); #endif set_intb(__sectop("C$VECT")); #ifdef __ROZ /* Initialize FPSW */ #define _ROUND 0x00000001 /* Let FPSW RMbits=01 (round to zero) */ #else #define _ROUND 0x00000000 /* Let FPSW RMbits=00 (round to nearest) */ #endif #ifdef __DOFF #define _DENOM 0x00000100 /* Let FPSW DNbit=1 (denormal as zero) */ #else #define _DENOM 0x00000000 /* Let FPSW DNbit=0 (denormal as is) */ #endif set_fpsw(FPSW_init | _ROUND | _DENOM); _INITSCT(); /* Initialize Sections */ HardwareSetup(); /* Use Hardware Setup */ nop(); set_psw(PSW_init); /* Set Ubit & Ibit for PSW */ main(); brk(); }
/****************************************************************************** * Outline : PowerON_Reset_PC * Description : This program is the MCU's entry point from a power-on reset. * The function configures the MCU stack, then calls the * HardwareSetup function and main function sequentially. * Argument : none * Return value : none ******************************************************************************/ void PowerON_Reset_PC(void) { /* Initialise the MCU processor word */ #if __RENESAS_VERSION__ >= 0x01010000 set_intb((void *)__sectop("C$VECT")); #else set_intb((unsigned long)__sectop("C$VECT")); #endif set_fpsw(FPSW_init); /* Initialise the MCU stack area */ _INITSCT(); /* Configure the MCU and YRDK hardware */ HardwareSetup(); /* Change the MCU's usermode from supervisor to user */ nop(); set_psw(PSW_init); Change_PSW_PM_to_UserMode(); /* Call the main program function */ main(); /* Invoke a break interrupt */ brk(); }
void PowerON_Reset_PC(void) { char *p; set_vbr(&INT_Vectors[-4]); // VBRの設定 set_fpscr(FPSCR_Init); // _INITSCT(); // Rセクションの初期化(D→R)とBセクションのクリア (RAM上ロードのため未使用) for (p = (char*)__sectop("B"); p < (char*)__secend("B"); p++) *p = 0; // Bセクションのクリア // _CALL_INIT(); // Remove the comment when you use global class object // _INIT_IOLIB(); // Enable I/O in the application(both SIM I/O and hardware I/O) // errno=0; // Remove the comment when you use errno // srand((_UINT)1); // Remove the comment when you use rand() // _s1ptr=NULL; // Remove the comment when you use strtok() // HardwareSetup(); // Use Hardware Setup set_cr(SR_Init); main(); // _CLOSEALL(); // Close I/O in the application(both SIM I/O andhardware I/O) // _CALL_END(); // Remove the comment when you use global class object sleep(); }
void PowerON_Reset_PC(void) { set_intb((void*)__sectop("C$VECT")); // set_fpsw(FPSW_init); _INITSCT(); // _INIT_IOLIB(); // Remove the comment when you use SIM I/O // errno=0; // Remove the comment when you use errno // srand((_UINT)1); // Remove the comment when you use rand() // _s1ptr=NULL; // Remove the comment when you use strtok() // HardwareSetup(); // Use Hardware Setup nop(); // _CALL_INIT(); // Remove the comment when you use global class object set_psw(PSW_init); // Set Ubit & Ibit for PSW // Change_PSW_PM_to_UserMode(); // DO NOT CHANGE TO USER MODE IF USING FREERTOS! ( void ) Change_PSW_PM_to_UserMode; // Just to avoid compiler warnings. main(); // _CLOSEALL(); // Use SIM I/O // _CALL_END(); // Remove the comment when you use global class object brk(); }
void PowerON_Reset_PC(void) { #ifdef __RXV2 set_extb(__sectop("EXCEPTVECT")); #endif set_intb(__sectop("C$VECT")); #ifdef __FPU #ifdef __ROZ // Initialize FPSW #define _ROUND 0x00000001 // Let FPSW RMbits=01 (round to zero) #else #define _ROUND 0x00000000 // Let FPSW RMbits=00 (round to nearest) #endif #ifdef __DOFF #define _DENOM 0x00000100 // Let FPSW DNbit=1 (denormal as zero) #else #define _DENOM 0x00000000 // Let FPSW DNbit=0 (denormal as is) #endif set_fpsw(FPSW_init | _ROUND | _DENOM); #endif _INITSCT(); // _INIT_IOLIB(); // Use SIM I/O // errno=0; // Remove the comment when you use errno // srand((_UINT)1); // Remove the comment when you use rand() // _s1ptr=NULL; // Remove the comment when you use strtok() // HardwareSetup(); // Use Hardware Setup nop(); // _CALL_INIT(); // Remove the comment when you use global class object set_psw(PSW_init); // Set Ubit & Ibit for PSW // chg_pmusr(); // Remove the comment when you need to change PSW PMbit (SuperVisor->User) main(); // _CLOSEALL(); // Use SIM I/O // _CALL_END(); // Remove the comment when you use global class object brk(); }
void ProgCopy(void) { unsigned int *src; unsigned int *dst; int len; src = (unsigned int *)__sectop("P"); dst = (unsigned int *)__sectop("X"); len = __secsize("P"); if(dst != src) { while(len > 0) { *dst++ = *src++; len -= 4; } } }
void PowerON_Reset(void) { set_intb(__sectop("C$VECT")); _INITSCT(); /* Initialize Sections */ HardwareSetup(); /* Use Hardware Setup */ nop(); set_psw(PSW_init); /* Set Ubit & Ibit for PSW */ main(); brk(); }
void PowerON_Reset_PC(void) { /* Initialise the MCU processor word */ set_intb((unsigned long)__sectop("C$VECT")); set_fpsw(FPSW_init); /* Initialise the MCU stack area */ _INITSCT(); /* Configure the MCU and YRDK hardware */ //HardwareSetup(); /* Change the MCU's usermode from supervisor to user */ nop(); set_psw(PSW_init); //Change_PSW_PM_to_UserMode(); /* Call the main program function */ __enable_interrupt(); main(); /* Invoke a break interrupt */ brk(); }
* Copyright (C) 2009 Renesas Electronics Corporation. * and Renesas Solutions Corporation. All rights reserved. * ************************************************************************/ #include "typedefine.h" #pragma unpack #pragma section C C$DSEC extern const struct { _UBYTE *rom_s; /* Start address of the initialized data section in ROM */ _UBYTE *rom_e; /* End address of the initialized data section in ROM */ _UBYTE *ram_s; /* Start address of the initialized data section in RAM */ } _DTBL[] = { { __sectop("D"), __secend("D"), __sectop("R") }, { __sectop("D_2"), __secend("D_2"), __sectop("R_2") }, { __sectop("D_1"), __secend("D_1"), __sectop("R_1") } }; #pragma section C C$BSEC extern const struct { _UBYTE *b_s; /* Start address of non-initialized data section */ _UBYTE *b_e; /* End address of non-initialized data section */ } _BTBL[] = { { __sectop("B"), __secend("B") }, { __sectop("B_2"), __secend("B_2") }, { __sectop("B_1"), __secend("B_1") } }; #pragma section
/* Defines type structures used in this file */ #include "typedefine.h" /* Preprocessor directive */ #pragma unpack /* Section start */ #pragma section C C$DSEC /* MCU ROM and RAM structure definition */ extern const struct { _UBYTE *rom_s; /* Start address of the initialized data section in ROM */ _UBYTE *rom_e; /* End address of the initialized data section in ROM */ _UBYTE *ram_s; /* Start address of the initialized data section in RAM */ } _DTBL[] = { { __sectop("D"), __secend("D"), __sectop("R") }, { __sectop("D_2"), __secend("D_2"), __sectop("R_2") }, { __sectop("D_1"), __secend("D_1"), __sectop("R_1") } }; /* Section start */ #pragma section C C$BSEC /* MCU ROM and RAM structure definition */ extern const struct { _UBYTE *b_s; /* Start address of non-initialized data section */ _UBYTE *b_e; /* End address of non-initialized data section */ } _BTBL[] = { { __sectop("B"), __secend("B") }, { __sectop("B_2"), __secend("B_2") }, { __sectop("B_1"), __secend("B_1") }
/*********************************************************************************************************************** * Function name: PowerON_Reset_PC * Description : This function is the MCU's entry point from a power-on reset. * The following steps are taken in the startup code: * 1. The User Stack Pointer (USP) and Interrupt Stack Pointer (ISP) are both set immediately after entry * to this function. The USP and ISP stack sizes are set in the file bsp_config.h. * Default sizes are USP=4K and ISP=1K. * 2. The interrupt vector base register is set to point to the beginning of the relocatable interrupt * vector table. * 3. The MCU is setup for floating point operations by setting the initial value of the Floating Point * Status Word (FPSW). * 4. The MCU operating frequency is set by configuring the Clock Generation Circuit (CGC) in * operating_frequency_set. * 5. Calls are made to functions to setup the C runtime environment which involves initializing all * initialed data, zeroing all uninitialized variables, and configuring STDIO if used * (calls to _INITSCT and _INIT_IOLIB). * 6. Board-specific hardware setup, including configuring I/O pins on the MCU, in hardware_setup. * 7. Global interrupts are enabled by setting the I bit in the Program Status Word (PSW), and the stack * is switched from the ISP to the USP. The initial Interrupt Priority Level is set to zero, enabling * any interrupts with a priority greater than zero to be serviced. * 8. The processor is optionally switched to user mode. To run in user mode, set the macro * BSP_CFG_RUN_IN_USER_MODE above to a 1. * 9. The bus error interrupt is enabled to catch any accesses to invalid or reserved areas of memory. * * Once this initialization is complete, the user's main() function is called. It should not return. * Arguments : none * Return value : none ***********************************************************************************************************************/ void PowerON_Reset_PC(void) { /* Stack pointers are setup prior to calling this function - see comments above */ /* Initialize the Interrupt Table Register */ set_intb((void *)__sectop("C$VECT")); /* Initialize the Exception Table Register */ set_extb((void *)__sectop("EXCEPTVECT")); /* Initialize FPSW for floating-point operations */ #ifdef __ROZ #define FPU_ROUND 0x00000001 /* Let FPSW RMbits=01 (round to zero) */ #else #define FPU_ROUND 0x00000000 /* Let FPSW RMbits=00 (round to nearest) */ #endif #ifdef __DOFF #define FPU_DENOM 0x00000100 /* Let FPSW DNbit=1 (denormal as zero) */ #else #define FPU_DENOM 0x00000000 /* Let FPSW DNbit=0 (denormal as is) */ #endif set_fpsw(FPSW_init | FPU_ROUND | FPU_DENOM); /* Switch to high-speed operation */ operating_frequency_set(); /* If the warm start Pre C runtime callback is enabled, then call it. */ #if BSP_CFG_USER_WARM_START_CALLBACK_PRE_INITC_ENABLED == 1 BSP_CFG_USER_WARM_START_PRE_C_FUNCTION(); #endif /* Initialize C runtime environment */ _INITSCT(); /* If the warm start Post C runtime callback is enabled, then call it. */ #if BSP_CFG_USER_WARM_START_CALLBACK_POST_INITC_ENABLED == 1 BSP_CFG_USER_WARM_START_POST_C_FUNCTION(); #endif #if BSP_CFG_IO_LIB_ENABLE == 1 /* Comment this out if not using I/O lib */ _INIT_IOLIB(); #endif /* Initialize MCU interrupt callbacks. */ bsp_interrupt_open(); /* Initialize register protection functionality. */ bsp_register_protect_open(); /* Configure the MCU and board hardware */ hardware_setup(); /* Change the MCU's user mode from supervisor to user */ nop(); set_psw(PSW_init); #if BSP_CFG_RUN_IN_USER_MODE==1 chg_pmusr() ; #endif /* Enable the bus error interrupt to catch accesses to illegal/reserved areas of memory */ R_BSP_InterruptControl(BSP_INT_SRC_BUS_ERROR, BSP_INT_CMD_INTERRUPT_ENABLE, FIT_NO_PTR); /* Call the main program function (should not return) */ main(); #if BSP_CFG_IO_LIB_ENABLE == 1 /* Comment this out if not using I/O lib - cleans up open files */ _CLOSEALL(); #endif /* BCH - 01/16/2013 */ /* Infinite loop is intended here. */ while(1) /* PRQA S 2740 */ { /* Infinite loop. Put a breakpoint here if you want to catch an exit of main(). */ } }
//#pragma section P UserAppStartSect // Output PowerON_Reset to PResetPRG section void UserAppStart(void) #endif { /* Stack pointers are setup prior to calling this function - see comments above */ /* Initialise the MCU processor word */ #if __RENESAS_VERSION__ >= 0x01010000 set_intb((void *)__sectop("C$VECT")); #else set_intb((unsigned long)__sectop("C$VECT")); #endif #if (BSP_CFG_USE_CGC_MODULE == 0) /* Switch to high-speed operation */ operating_frequency_set(); #else cgc_clock_config(); #endif /* If the warm start Pre C runtime callback is enabled, then call it. */ #if BSP_CFG_USER_WARM_START_CALLBACK_PRE_INITC_ENABLED == 1 BSP_CFG_USER_WARM_START_PRE_C_FUNCTION(); #endif /* Initialize C runtime environment */ _INITSCT(); /* If the warm start Post C runtime callback is enabled, then call it. */ #if BSP_CFG_USER_WARM_START_CALLBACK_POST_INITC_ENABLED == 1 BSP_CFG_USER_WARM_START_POST_C_FUNCTION(); #endif #if BSP_CFG_IO_LIB_ENABLE == 1 /* Comment this out if not using I/O lib */ _INIT_IOLIB(); #endif /* Initialize MCU interrupt callbacks. */ bsp_interrupt_open(); /* Initialize register protection functionality. */ bsp_register_protect_open(); /* Configure the MCU and board hardware */ hardware_setup(); /* Change the MCU's user mode from supervisor to user */ nop(); set_psw(PSW_init); #if BSP_CFG_RUN_IN_USER_MODE==1 /* Use chg_pmusr() intrinsic if possible. */ #if __RENESAS_VERSION__ >= 0x01010000 chg_pmusr() ; #else Change_PSW_PM_to_UserMode(); #endif #endif /* Enable the bus error interrupt to catch accesses to illegal/reserved areas of memory */ R_BSP_InterruptControl(BSP_INT_SRC_BUS_ERROR, BSP_INT_CMD_INTERRUPT_ENABLE, FIT_NO_PTR); /* Call the main program function (should not return) */ main(); #if BSP_CFG_IO_LIB_ENABLE == 1 /* Comment this out if not using I/O lib - cleans up open files */ _CLOSEALL(); #endif /* BCH - 01/16/2013 */ /* Infinite loop is intended here. */ while(1) /* PRQA S 2740 */ { /* Infinite loop. Put a breakpoint here if you want to catch an exit of main(). */ } }
/* DESCRIPTION :Setting of B,R Section */ /* CPU TYPE :H8/3694F */ /* */ /* This file is generated by Renesas Project Generator (Ver.4.13). */ /* */ /***********************************************************************/ #include <h8sdk/stddef.h> #pragma section $DSEC static const struct { _UBYTE *rom_s; /* Start address of the initialized data section in ROM */ _UBYTE *rom_e; /* End address of the initialized data section in ROM */ _UBYTE *ram_s; /* Start address of the initialized data section in RAM */ }DTBL[]= { {__sectop("D"), __secend("D"), __sectop("R")}, // {__sectop("$ABS8D"), __secend("$ABS8D"), __sectop("$ABS8R")}, // {__sectop("$ABS16D") , __secend("$ABS16D") , __sectop("$ABS16R") } }; #pragma section $BSEC static const struct { _UBYTE *b_s; /* Start address of non-initialized data section */ _UBYTE *b_e; /* End address of non-initialized data section */ }BTBL[]= { {__sectop("B"), __secend("B")}, // {__sectop("$ABS8B"), __secend("$ABS8B")}, // {__sectop("$ABS16B"), __secend("$ABS16B")} };