/* ********************************************************************************************************* * SYS_Initialize * * Description : This routine initializes the board, services, drivers, application and other modules as * configured at build time. * Caller : called from main ********************************************************************************************************* */ void SYS_Initialize ( void * data ) { portBASE_TYPE errStatus; /* Initialize the BSP */ BSP_Initialize( ); /* Initialize the USB device layer */ deviceLayerObject = USB_DEVICE_Initialize (USB_DEVICE_INDEX_0 , ( SYS_MODULE_INIT* ) & usbDevInitData); /*initialize gfx stack and drivers*/ GFX_Initialize(); GFX_DRV_lcc_Initialize(0); GFX_DRV_lcc_Open(0); /*initialize application specific items*/ ApplicationInitialize(); /*create system task(s)*/ errStatus = xTaskCreate((pdTASK_CODE) SystemUSBDeviceTask, (const signed char*)"Sys USB Device Task", SYSTEM_USBDEVICETASK_STKSIZE, NULL, SYSTEM_USBDEVICETASK_PRIO, NULL); xTaskCreate((pdTASK_CODE) SystemDisplayDriverTask, (const signed char*)"Display Driver Task", SYSTEMDISPLAYDRIVERTASK_STKSIZE, NULL, SYSTEMDISPLAYDRIVERTASK_PRIO, NULL); }
void SYS_Initialize ( void* data ) { /* Initializethe interrupt system */ SYS_INT_Initialize(); /* Initialize the global interrupts */ SYS_INT_Enable(); SYS_MSG_MESSAGING_OBJECT oSysMsg; SYS_MSG_INIT sSysMsgInit; uint16_t nQSizes[] = SYS_MSG_BUFFER_SIZES; sSysMsgInit.nMaxMsgsDelivered = SYS_MSG_MAX_MSGS_DELIVERED; sSysMsgInit.nMessagePriorities = SYS_MSG_MAX_PRIORITY+1; sSysMsgInit.nQSizes = nQSizes; hSysMsg = SYS_MSG_Initialize(iSysMsg,(SYS_OBJ_HANDLE)&sSysMsgInit); oSysMsg = *(SYS_MSG_MESSAGING_OBJECT *)hSysMsg; hMsgType = SYS_MSG_TypeCreate(iSysMsg, TYPE_TOUCHSCREEN , 0); hMailbox = SYS_MSB_MailboxOpen( iSysMsg, (SYS_MSG_RECEIVE_CALLBACK)&TouchMessageCallback ); SYS_MSG_MailboxMsgAdd(hMailbox,hMsgType); ///////////////////////////////////////////////////////////////////////////// // DRIVER SPECIFIC INITIALIZATION DATA ///////////////////////////////////////////////////////////////////////////// // initialize the timer that manages the tick counter TickInit(); ///////////////////////////////////////////////////////////////////////////// // DRIVER SPECIFIC INITIALIZATION DATA ///////////////////////////////////////////////////////////////////////////// GFX_DRV_lcc_Initialize(0); //Initialize the Graphics Driver while (handle != 0) { handle = GFX_DRV_lcc_Open(0); } GFX_Initialize(); // initialize the components for Resistive Touch Screen TouchInit((void *)0, (void *)0, (void *)0, NULL); ImageDecoderInit(); JPEGInit(); // Initialize JPEG /* Initialize the Application */ APP_Initialize ( ); }
void SYS_Initialize ( void* data ) { uint8_t handle=0xff; //Handle to the driver // populate the PMP init configuration structure init.polarity.addressLatchPolarity = PMP_POLARITY_ACTIVE_HIGH; init.polarity.rwStrobePolarity = PMP_POLARITY_ACTIVE_LOW; init.polarity.writeEnableStrobePolarity = PMP_POLARITY_ACTIVE_LOW; init.polarity.chipselect1Polarity = PMP_POLARITY_ACTIVE_HIGH; init.polarity.chipselect2Polarity = PMP_POLARITY_ACTIVE_LOW; init.ports.readWriteStrobe = PORT_ENABLE; init.ports.writeEnableStrobe = PORT_ENABLE; init.moduleInit.value = SYS_MODULE_POWER_RUN_FULL; init.pmpID = PMP_ID_0; init.stopInIdle = false; init.muxMode = PMP_MUX_NONE; object = DRV_PMP_Initialize (DRV_PMP_INDEX_0, (SYS_MODULE_INIT *)&init); /* Initialize the Application */ APP_Initialize(); /* Initializethe interrupt system */ SYS_INT_Initialize(); SYS_INT_VectorPrioritySet(INT_VECTOR_T4, INT_PRIORITY_LEVEL2); /* set priority for PMP interrupt source */ SYS_INT_VectorPrioritySet(INT_VECTOR_PMP, INT_PRIORITY_LEVEL6); /* Initialize the global interrupts */ SYS_INT_Enable(); GFX_DRV_lcc_Initialize(0); //Initialize the Graphics Driver while( handle != 0) { handle = GFX_DRV_lcc_Open(0); } GFX_Initialize(); /* Turn on the backlight */ DisplayBacklightOn(); /* Initialize the BSP */ // BSP_Initialize( ); }
void SYS_Initialize ( void* data ) { xTaskCreate((pdTASK_CODE) DisplayDriverTask, (const signed char*)"Display Driver Task", DISPLAYDRIVER_TASK_STK_SIZE, NULL, DISPLAYDRIVER_TASK_PRIO, &DisplayDriverTask_Handle); /* Initialize the Application */ APP_Initialize(); GFX_Initialize(); GFX_DRV_lcc_Initialize(0); GFX_DRV_lcc_Open(0); }
// ***************************************************************************** // void SYSTEM_InitializeBoard(void) // ***************************************************************************** void SYSTEM_InitializeBoard(void) { // SPI initialization for Serial RAM const DRV_SPI_INIT_DATA SRAM_SPI_Init_Data = { 2, 3, 7, 1, SPI_BUS_MODE_1, 0}; // SPI initialization for EPD const DRV_SPI_INIT_DATA EPD_SPI_Init_Data = { 1, 3, 7, 1, SPI_BUS_MODE_1, 0}; // --------------------------------------------------------- // Make sure the display DO NOT flicker at start up // --------------------------------------------------------- DisplayBacklightConfig(); DisplayPowerConfig(); DisplayBacklightOff(); // --------------------------------------------------------- // ADC Explorer 16 Development Board Errata (work around 2) // RB15 should be output // --------------------------------------------------------- LATBbits.LATB15 = 0; TRISBbits.TRISB15 = 0; // --------------------------------------------------------- // EPD PicTail Plus Daughter Board 23K256 // SPI-RAM Device Chip Select pin // --------------------------------------------------------- MCHP_23K256_CS_TRIS = 0; MCHP_23K256_CS_LAT = 1; // --------------------------------------------------------- // EPD PicTail Plus Daughter // Board EPD Controller Device Chip Select pin // --------------------------------------------------------- DRV_EPD_SPI_CS_TRIS = 0; DRV_EPD_SPI_CS_LAT = 1; // --------------------------------------------------------- // SPI Port pins // --------------------------------------------------------- // spi-clock pin TRISFbits.TRISF6 = 0; // spi-output pin TRISFbits.TRISF8 = 0; // spi-intput pin TRISFbits.TRISF7 = 1; // initialize SPI driver DRV_RAM_23K256_Initialize((DRV_SPI_INIT_DATA*)&SRAM_SPI_Init_Data); // initialize EPD driver DRV_EPD_SPI_Initialize((DRV_SPI_INIT_DATA*)&EPD_SPI_Init_Data); // Initialize the e-paper (EPD) EPD_display_init(); // --------------------------------------------------------- // Initialize the Display Driver // --------------------------------------------------------- DRV_GFX_Initialize(); GFX_Initialize(); // Initialize the reference timer. SYSTEM_TickInit(); }