From 79bb1a9932af7bfcdab67e2a1da9d9edcba87f71 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 22 Aug 2016 22:28:32 +0200 Subject: old wip --- .../src/system_config/default/configuration.xml | 140 ++++++++++++++------ firmware/src/system_config/default/default.mhc | 65 +++++++-- .../framework/system/clk/src/sys_clk_static.c | 7 +- firmware/src/system_config/default/system_config.h | 119 ++++++++++++++++- .../src/system_config/default/system_definitions.h | 17 +++ firmware/src/system_config/default/system_init.c | 147 ++++++++++++++++++++- .../src/system_config/default/system_interrupt.c | 17 +++ firmware/src/system_config/default/system_tasks.c | 12 ++ 8 files changed, 469 insertions(+), 55 deletions(-) (limited to 'firmware/src/system_config/default') diff --git a/firmware/src/system_config/default/configuration.xml b/firmware/src/system_config/default/configuration.xml index 4606dcc..7ba7ae5 100644 --- a/firmware/src/system_config/default/configuration.xml +++ b/firmware/src/system_config/default/configuration.xml @@ -1,5 +1,5 @@ - + @@ -7,103 +7,167 @@ - sys_devcon_cache_pic32mz.S + drv_tmr.h + Header Files/framework/driver/tmr + + + sys_devcon.c Source Files/framework/system/devcon/src - sys_module.h - Header Files/framework/system/common + sys_tmr.h + Header Files/framework/system/tmr - sys_devcon.c - Source Files/framework/system/devcon/src + usb_host.h + Header Files/framework/usb - sys_devcon_cache.h - Header Files/framework/system/devcon + sys_tmr.c + Source Files/framework/system/tmr/src - sys_common.h - Header Files/framework/system/common + drv_usbhs.c + Source Files/framework/driver/usb/usbhs/src/dynamic + + + usb_host_hub_interface.h + Header Files/framework/usb + + + usb_host_hid.c + Source Files/framework/usb/src/dynamic sys_ports.h Header Files/framework/system/ports - system.h - Header Files/framework/system + driver.h + Header Files/framework/driver + + + sys_common.h + Header Files/framework/system/common + + + usb_host.c + Source Files/framework/usb/src/dynamic + + + sys_int_pic32.c + Source Files/framework/system/int/src + + + drv_usbhs_host.c + Source Files/framework/driver/usb/usbhs/src/dynamic + + + sys_devcon_cache_pic32mz.S + Source Files/framework/system/devcon/src + + + drv_tmr.c + Source Files/framework/driver/tmr/src/dynamic sys_ports.c Source Files/framework/system/ports/src + + usb_host_hid.h + Header Files/framework/usb + + + sys_devcon_cache.h + Header Files/framework/system/devcon + sys_devcon.h Header Files/framework/system/devcon + + system.h + Header Files/framework/system + + + sys_module.h + Header Files/framework/system/common + sys_devcon_pic32mz.c Source Files/framework/system/devcon/src + + usb_host_hid_keyboard.c + Source Files/framework/usb/src/dynamic + + + sys_int.h + Header Files/framework/system/int + + + drv_usb.h + Header Files/framework/driver/usb + + + + - - - diff --git a/firmware/src/system_config/default/default.mhc b/firmware/src/system_config/default/default.mhc index 94fdc77..bb5dcaa 100644 --- a/firmware/src/system_config/default/default.mhc +++ b/firmware/src/system_config/default/default.mhc @@ -1,6 +1,6 @@ # -# Configuration generated by Microchip Harmony Configurator (MHC) v1.0.6.12 -# Project name: PIC32MZ_harmony_tryout +# Configuration generated by Microchip Harmony Configurator (MHC) v1.0.7.9 +# Project name: CText # Configuration: default # Device: PIC32MZ2048ECG064 # Harmony version: 1.06 @@ -147,7 +147,23 @@ CONFIG_USE_DRV_SST25VF064C=n # # from $HARMONY_VERSION_PATH/framework/driver/tmr/config/drv_tmr.hconfig # -CONFIG_USE_DRV_TMR=n +CONFIG_USE_DRV_TMR=y +CONFIG_DRV_TMR_DRIVER_MODE="DYNAMIC" +CONFIG_DRV_TMR_CLIENTS_NUMBER=1 +CONFIG_DRV_TMR_INTERRUPT_MODE=y +CONFIG_DRV_TMR_INSTANCES_NUMBER=1 +# +# from $HARMONY_VERSION_PATH/framework/driver/tmr/config/drv_tmr_idx.ftl +# +CONFIG_DRV_TMR_INST_0=y +CONFIG_DRV_TMR_PERIPHERAL_ID_IDX0="TMR_ID_1" +CONFIG_DRV_TMR_INTERRUPT_PRIORITY_IDX0="INT_PRIORITY_LEVEL1" +CONFIG_DRV_TMR_INTERRUPT_SUB_PRIORITY_IDX0="INT_SUBPRIORITY_LEVEL0" +CONFIG_DRV_TMR_CLOCK_SOURCE_IDX0="DRV_TMR_CLKSOURCE_INTERNAL" +CONFIG_DRV_TMR_PRESCALE_IDX0="TMR_PRESCALE_VALUE_256" +CONFIG_DRV_TMR_OPERATION_MODE_IDX0="DRV_TMR_OPERATION_MODE_16_BIT" +CONFIG_DRV_TMR_ASYNC_WRITE_ENABLE_IDX0=n +CONFIG_DRV_TMR_POWER_STATE_IDX0="SYS_MODULE_POWER_RUN_FULL" # # from $HARMONY_VERSION_PATH/framework/driver/touch/adc10bit/config/drv_adc10bit.hconfig # @@ -199,7 +215,8 @@ CONFIG_SYS_CLK_PBCLK2_ENABLE=y CONFIG_SYS_CLK_PBDIV2=2 CONFIG_SYS_CLK_PBCLK3_ENABLE=y CONFIG_SYS_CLK_PBDIV3=2 -CONFIG_SYS_CLK_PBCLK4_ENABLE=n +CONFIG_SYS_CLK_PBCLK4_ENABLE=y +CONFIG_SYS_CLK_PBDIV4=1 CONFIG_SYS_CLK_PBCLK6_ENABLE=y CONFIG_SYS_CLK_PBDIV6=1 CONFIG_SYS_CLK_PBCLK7_ENABLE=n @@ -213,6 +230,7 @@ CONFIG_SYS_CLK_FREQ="80000000" CONFIG_SYS_CLK_PBCLK0_FREQ="40000000" CONFIG_SYS_CLK_PBCLK2_FREQ="40000000" CONFIG_SYS_CLK_PBCLK3_FREQ="40000000" +CONFIG_SYS_CLK_PBCLK4_FREQ="80000000" CONFIG_SYS_CLK_PBCLK6_FREQ="80000000" # # from $HARMONY_VERSION_PATH/framework/system/command/config/sys_command.hconfig @@ -249,7 +267,7 @@ CONFIG_USE_SYS_FS=n # # from $HARMONY_VERSION_PATH/framework/system/int/config/sys_int.hconfig # -CONFIG_USE_SYS_INT=n +CONFIG_USE_SYS_INT=y CONFIG_USE_EXT_INT=n # # from $HARMONY_VERSION_PATH/framework/system/msg/config/sys_msg.hconfig @@ -265,8 +283,8 @@ CONFIG_USE_SYS_PORTS_CN_INTERRUPT=n # from $HARMONY_VERSION_PATH/framework/system/ports/config/sys_ports_idx.ftl # CONFIG_USE_PORT_B=y -CONFIG_SYS_PORT_B_ANSEL=0x0 -CONFIG_SYS_PORT_B_TRIS=0x0 +CONFIG_SYS_PORT_B_ANSEL=0x7020 +CONFIG_SYS_PORT_B_TRIS=0x7020 CONFIG_SYS_PORT_B_LAT=0x0 CONFIG_SYS_PORT_B_ODC=0x0 CONFIG_SYS_PORT_B_CNPU=0x0 @@ -327,7 +345,15 @@ CONFIG_USE_SYS_TOUCH=n # # from $HARMONY_VERSION_PATH/framework/system/tmr/config/sys_tmr.hconfig # -CONFIG_USE_SYS_TMR=n +CONFIG_USE_SYS_TMR=y +CONFIG_SYS_TMR_POWER_STATE="SYS_MODULE_POWER_RUN_FULL" +CONFIG_SYS_TMR_DRIVER_INDEX="DRV_TMR_INDEX_0" +CONFIG_SYS_TMR_MAX_CLIENT_OBJECTS=5 +CONFIG_SYS_TMR_FREQUENCY=1000 +CONFIG_SYS_TMR_FREQUENCY_TOLERANCE=10 +CONFIG_SYS_TMR_UNIT_RESOLUTION=10000 +CONFIG_SYS_TMR_CLIENT_TOLERANCE=10 +CONFIG_SYS_TMR_INTERRUPT_NOTIFICATION=n # # from $HARMONY_VERSION_PATH/framework/system/wdt/config/sys_wdt.hconfig # @@ -339,7 +365,26 @@ CONFIG_USE_TCPIP_STACK=n # # from $HARMONY_VERSION_PATH/framework/usb/config/usb.hconfig # -CONFIG_USE_USB_STACK=n +CONFIG_USE_USB_STACK=y +CONFIG_DRV_USB_INTERRUPT_MODE=y +CONFIG_DRV_USB_DEVICE_SUPPORT=n +CONFIG_DRV_USB_HOST_SUPPORT=y +CONFIG_DRV_USB_BETA_SW_HOST_SUPPORT=n +CONFIG_USB_HOST_SPEED_HS_IDX0="USB_SPEED_HIGH" +CONFIG_USB_HOST_DEVICE_NUMBER=1 +CONFIG_USB_HOST_TPL_ENTRY_NUMBER=1 +CONFIG_USB_HOST_MAX_INTERFACES=5 +CONFIG_USB_HOST_USE_HUB=n +CONFIG_USB_HOST_USE_CDC=n +CONFIG_USB_HOST_USE_HID=y +CONFIG_USB_HOST_USE_MOUSE=n +CONFIG_USB_HOST_USE_KEYBOARD=y +CONFIG_USB_HOST_HID_NUMBER_OF_INSTANCES=1 +CONFIG_USB_HOST_HID_INTERRUPT_IN_ENDPOINTS_NUMBER=1 +CONFIG_USB_HID_TOTAL_USAGE_DRIVER_INSTANCES=1 +CONFIG_USB_HID_GLOBAL_PUSH_POP_STACK_SIZE=1 +CONFIG_USB_HOST_USE_AUDIO=n +CONFIG_USB_HOST_USE_MSD=n # # from $HARMONY_VERSION_PATH/framework/sample/config/sample_module.hconfig # @@ -399,7 +444,7 @@ CONFIG_FPLLRNG="RANGE_5_10_MHZ" CONFIG_FPLLICLK="PLL_FRC" CONFIG_FPLLMULT="MUL_80" CONFIG_FPLLODIV="DIV_8" -CONFIG_UPLLFSEL="FREQ_12MHZ" +CONFIG_UPLLFSEL="FREQ_24MHZ" CONFIG_UPLLEN="OFF" CONFIG_FNOSC="SPLL" CONFIG_DMTINTV="WIN_127_128" diff --git a/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c b/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c index 06a146b..7f01b06 100644 --- a/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c +++ b/firmware/src/system_config/default/framework/system/clk/src/sys_clk_static.c @@ -104,9 +104,9 @@ void SYS_CLK_Initialize( const SYS_CLK_INIT const * clkInit ) /* Enable Peripheral Bus 4 */ PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 3, 2 ); PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 3 ); - /* Disable Peripheral Bus 5 */ - PLIB_OSC_PBOutputClockDisable (OSC_ID_0, 4 ); - + /* Enable Peripheral Bus 5 */ + PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 4, 1 ); + PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 4 ); /* Enable Peripheral Bus 7 */ PLIB_OSC_PBClockDivisorSet (OSC_ID_0, 6, 1 ); PLIB_OSC_PBOutputClockEnable (OSC_ID_0, 6 ); @@ -219,6 +219,7 @@ inline uint32_t SYS_CLK_PeripheralFrequencyGet ( CLK_BUSES_PERIPHERAL peripheral freq = SYS_CLK_BUS_PERIPHERAL_4; break; case CLK_BUS_PERIPHERAL_5: + freq = SYS_CLK_BUS_PERIPHERAL_5; break; case CLK_BUS_PERIPHERAL_7: freq = SYS_CLK_BUS_PERIPHERAL_7; diff --git a/firmware/src/system_config/default/system_config.h b/firmware/src/system_config/default/system_config.h index a8faed8..2f506cc 100644 --- a/firmware/src/system_config/default/system_config.h +++ b/firmware/src/system_config/default/system_config.h @@ -85,14 +85,18 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES #define SYS_CLK_BUS_PERIPHERAL_1 40000000ul #define SYS_CLK_BUS_PERIPHERAL_3 40000000ul #define SYS_CLK_BUS_PERIPHERAL_4 40000000ul +#define SYS_CLK_BUS_PERIPHERAL_5 80000000ul #define SYS_CLK_BUS_PERIPHERAL_7 80000000ul #define SYS_CLK_CONFIG_PRIMARY_XTAL 24000000ul #define SYS_CLK_CONFIG_SECONDARY_XTAL 32768ul +/*** Interrupt System Service Configuration ***/ +#define SYS_INT true + /*** Ports System Service Configuration ***/ -#define SYS_PORT_B_ANSEL 0x0 -#define SYS_PORT_B_TRIS 0x0 +#define SYS_PORT_B_ANSEL 0x7020 +#define SYS_PORT_B_TRIS 0x7020 #define SYS_PORT_B_LAT 0x0 #define SYS_PORT_B_ODC 0x0 #define SYS_PORT_B_CNPU 0x0 @@ -137,6 +141,15 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES #define SYS_PORT_G_CNPU 0x0 #define SYS_PORT_G_CNPD 0x0 #define SYS_PORT_G_CNEN 0x0 +/*** Timer System Service Configuration ***/ +#define SYS_TMR_POWER_STATE SYS_MODULE_POWER_RUN_FULL +#define SYS_TMR_DRIVER_INDEX DRV_TMR_INDEX_0 +#define SYS_TMR_MAX_CLIENT_OBJECTS 5 +#define SYS_TMR_FREQUENCY 1000 +#define SYS_TMR_FREQUENCY_TOLERANCE 10 +#define SYS_TMR_UNIT_RESOLUTION 10000 +#define SYS_TMR_CLIENT_TOLERANCE 10 +#define SYS_TMR_INTERRUPT_NOTIFICATION false // ***************************************************************************** @@ -145,13 +158,113 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES // ***************************************************************************** // ***************************************************************************** - +/*** Timer Driver Configuration ***/ +#define DRV_TMR_INSTANCES_NUMBER 1 +#define DRV_TMR_CLIENTS_NUMBER 1 +#define DRV_TMR_INTERRUPT_MODE true + +/*** Timer Driver 0 Configuration ***/ +#define DRV_TMR_PERIPHERAL_ID_IDX0 TMR_ID_1 +#define DRV_TMR_INTERRUPT_SOURCE_IDX0 INT_SOURCE_TIMER_1 +#define DRV_TMR_INTERRUPT_VECTOR_IDX0 INT_VECTOR_T1 +#define DRV_TMR_ISR_VECTOR_IDX0 _TIMER_1_VECTOR +#define DRV_TMR_INTERRUPT_PRIORITY_IDX0 INT_PRIORITY_LEVEL1 +#define DRV_TMR_INTERRUPT_SUB_PRIORITY_IDX0 INT_SUBPRIORITY_LEVEL0 +#define DRV_TMR_CLOCK_SOURCE_IDX0 DRV_TMR_CLKSOURCE_INTERNAL +#define DRV_TMR_PRESCALE_IDX0 TMR_PRESCALE_VALUE_256 +#define DRV_TMR_OPERATION_MODE_IDX0 DRV_TMR_OPERATION_MODE_16_BIT +#define DRV_TMR_ASYNC_WRITE_ENABLE_IDX0 false +#define DRV_TMR_POWER_STATE_IDX0 SYS_MODULE_POWER_RUN_FULL + + + // ***************************************************************************** // ***************************************************************************** // Section: Middleware & Other Library Configuration // ***************************************************************************** // ***************************************************************************** +/*** USB Driver Configuration ***/ + + +/* Disable Device Support */ +#define DRV_USBHS_DEVICE_SUPPORT false + +/* Enables Device Support */ +#define DRV_USBHS_HOST_SUPPORT true + +/* Maximum USB driver instances */ +#define DRV_USBHS_INSTANCES_NUMBER 1 + + +/* Interrupt mode enabled */ +#define DRV_USBHS_INTERRUPT_MODE true + + +/* Number of Endpoints used */ +#define DRV_USBHS_ENDPOINTS_NUMBER 1 + + + + + + + +#define DRV_USBHS_HOST_NAK_LIMIT 2000 +/* Provides Host pipes number */ +#define DRV_USBHS_HOST_PIPES_NUMBER 10 +#define DRV_USBHS_HOST_ATTACH_DEBOUNCE_DURATION 500 +#define DRV_USBHS_HOST_RESET_DURATION 100 +// ***************************************************************************** +// ***************************************************************************** +// Section: USB Device Layer Configuration +// ***************************************************************************** +// ***************************************************************************** +/* Provides Host pipes number */ +#define USB_HOST_PIPES_NUMBER 10 +/* NAK Limit for Control transfer data stage and Status Stage */ +#define DRV_USB_HOST_NAK_LIMIT 200 + +// ***************************************************************************** +// ***************************************************************************** +// Section: USB Host Layer Configuration +// ***************************************************************************** +// ************************************************************************** + +/* Total number of devices to be supported */ +#define USB_HOST_DEVICES_NUMBER 1 + +/* Target peripheral list entries */ +#define USB_HOST_TPL_ENTRIES 1 + +/* Maximum number of configurations supported per device */ +#define USB_HOST_DEVICE_INTERFACES_NUMBER 5 + +#define USB_HOST_CONTROLLERS_NUMBER 1 + +#define USB_HOST_TRANSFERS_NUMBER 10 + +/* Number of Host Layer Clients */ +#define USB_HOST_CLIENTS_NUMBER 1 + + +/* Number of HID Client driver instances in the application */ +#define USB_HOST_HID_INSTANCES_NUMBER 1 + +/* Maximum number of INTERRUPT IN endpoints supported per HID interface */ +#define USB_HOST_HID_INTERRUPT_IN_ENDPOINTS_NUMBER 1 + +/* Number of total usage driver instances registered with HID client driver */ +#define USB_HOST_HID_USAGE_DRIVER_SUPPORT_NUMBER 1 + +/* Maximum number PUSH items that can be saved in the Global item queue per field + * per HID interface */ +#define USB_HID_GLOBAL_PUSH_POP_STACK_SIZE 1 + + + + + diff --git a/firmware/src/system_config/default/system_definitions.h b/firmware/src/system_config/default/system_definitions.h index 5bc5468..5a20414 100644 --- a/firmware/src/system_config/default/system_definitions.h +++ b/firmware/src/system_config/default/system_definitions.h @@ -55,9 +55,18 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES #include "system/clk/sys_clk.h" #include "system/clk/sys_clk_static.h" #include "system/devcon/sys_devcon.h" +#include "system/int/sys_int.h" +#include "system/tmr/sys_tmr.h" +#include "driver/tmr/drv_tmr.h" #include "system/ports/sys_ports.h" +#include "driver/usb/usbhs/drv_usbhs.h" +#include "usb/usb_host.h" +#include "usb/usb_host_hub.h" +#include "usb/usb_host_hub_interface.h" +#include "usb/usb_host_hid.h" +#include "usb/usb_host_hid_keyboard.h" #include "app.h" @@ -93,6 +102,13 @@ extern "C" { typedef struct { SYS_MODULE_OBJ sysDevcon; + SYS_MODULE_OBJ sysTmr; + SYS_MODULE_OBJ drvTmr0; + SYS_MODULE_OBJ drvUSBObject; + + + SYS_MODULE_OBJ usbHostObject0; + } SYSTEM_OBJECTS; @@ -106,6 +122,7 @@ typedef struct extern SYSTEM_OBJECTS sysObj; + //DOM-IGNORE-BEGIN #ifdef __cplusplus } diff --git a/firmware/src/system_config/default/system_init.c b/firmware/src/system_config/default/system_init.c index 9c69c4e..7a25752 100644 --- a/firmware/src/system_config/default/system_init.c +++ b/firmware/src/system_config/default/system_init.c @@ -95,7 +95,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES #pragma config FPLLICLK = PLL_FRC #pragma config FPLLMULT = MUL_80 #pragma config FPLLODIV = DIV_8 -#pragma config UPLLFSEL = FREQ_12MHZ +#pragma config UPLLFSEL = FREQ_24MHZ #pragma config UPLLEN = OFF /*** DEVCFG3 ***/ @@ -121,6 +121,96 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES // ***************************************************************************** // ***************************************************************************** +// + +// + +// + + + +/**************************************************** + * Endpoint Table needed by the controller driver . + ****************************************************/ + + + +DRV_USBHS_INIT drvUSBHSInit = +{ + .moduleInit = {SYS_MODULE_POWER_RUN_FULL}, + .interruptSource = INT_SOURCE_USB_1, + .interruptSourceUSBDma = INT_SOURCE_USB_1_DMA, + .operationMode = DRV_USBHS_OPMODE_HOST, + .operationSpeed = USB_SPEED_HIGH, + .portIndication = NULL, + .portPowerEnable = BSP_USBVBUSPowerEnable, + .portOverCurrentDetect = BSP_USBVBUSSwitchOverCurrentDetect, + .rootHubAvailableCurrent = 500, + .stopInIdle = false, + .suspendInSleep = false, + .usbID = USBHS_ID_0 + +}; + + + +USB_HOST_HID_USAGE_DRIVER_INTERFACE usageDriverInterface = +{ + .initialize = NULL, + .deinitialize = NULL, + .usageDriverEventHandler = _USB_HOST_HID_KEYBOARD_EventHandler, + .usageDriverTask = _USB_HOST_HID_KEYBOARD_Task +}; + +USB_HOST_HID_USAGE_DRIVER_TABLE_ENTRY usageDriverTableEntry[1] = +{ + { + .usage = USB_HID_GENERIC_DESKTOP_KEYBOARD, + .initializeData = NULL, + .interface = &usageDriverInterface + } +}; + + +USB_HOST_HID_INIT hidInitData = +{ + .nUsageDriver = 1, + .usageDriverTable = usageDriverTableEntry +}; +const USB_HOST_TPL_ENTRY USBTPList[ 1 ] = +{ + + + + TPL_INTERFACE_CLASS_SUBCLASS_PROTOCOL(0x03, 0x01, 0x01, &hidInitData, USB_HOST_HID_INTERFACE) , + + + + +}; + + +const USB_HOST_HCD hcdTable = +{ + .drvIndex = DRV_USBHS_INDEX_0, + .hcdInterface = DRV_USBHS_HOST_INTERFACE +}; + +const USB_HOST_INIT usbHostInitData = +{ + .nTPLEntries = 1 , + .tplList = (USB_HOST_TPL_ENTRY *)USBTPList, + .hostControllerDrivers = (USB_HOST_HCD *)&hcdTable + +}; + + + + + + +// + // ***************************************************************************** @@ -129,6 +219,33 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES // ***************************************************************************** // ***************************************************************************** +// + +/*** TMR Driver Initialization Data ***/ + +const DRV_TMR_INIT drvTmr0InitData = +{ + .moduleInit.sys.powerState = DRV_TMR_POWER_STATE_IDX0, + .tmrId = DRV_TMR_PERIPHERAL_ID_IDX0, + .clockSource = DRV_TMR_CLOCK_SOURCE_IDX0, + .prescale = DRV_TMR_PRESCALE_IDX0, + .mode = DRV_TMR_OPERATION_MODE_IDX0, + .interruptSource = DRV_TMR_INTERRUPT_SOURCE_IDX0, + .asyncWriteEnable = false, +}; +// +// +/*** TMR Service Initialization Data ***/ +const SYS_TMR_INIT sysTmrInitData = +{ + .moduleInit = {SYS_MODULE_POWER_RUN_FULL}, + .drvIndex = DRV_TMR_INDEX_0, + .tmrFreq = 1000, +}; + +// +// +// // ***************************************************************************** // ***************************************************************************** @@ -195,10 +312,38 @@ void SYS_Initialize ( void* data ) /* Initialize Drivers */ + sysObj.drvTmr0 = DRV_TMR_Initialize(DRV_TMR_INDEX_0, (SYS_MODULE_INIT *)&drvTmr0InitData); + + SYS_INT_VectorPrioritySet(INT_VECTOR_T1, INT_PRIORITY_LEVEL1); + SYS_INT_VectorSubprioritySet(INT_VECTOR_T1, INT_SUBPRIORITY_LEVEL0); + + + /* Initialize System Services */ + SYS_INT_Initialize(); + + /*** TMR Service Initialization Code ***/ + sysObj.sysTmr = SYS_TMR_Initialize(SYS_TMR_INDEX_0, (const SYS_MODULE_INIT * const)&sysTmrInitData); /* Initialize Middleware */ + + sysObj.usbHostObject0 = USB_HOST_Initialize ((SYS_MODULE_INIT *)& usbHostInitData ); + sysObj.drvUSBObject = DRV_USBHS_Initialize (DRV_USBHS_INDEX_0, (SYS_MODULE_INIT *) &drvUSBHSInit); + + SYS_INT_VectorPrioritySet(INT_VECTOR_USB1, INT_PRIORITY_LEVEL4); + SYS_INT_VectorSubprioritySet(INT_VECTOR_USB1, INT_SUBPRIORITY_LEVEL0); + + /* Set the priority of the USB DMA Interrupt */ + SYS_INT_VectorPrioritySet(INT_VECTOR_USB1_DMA, INT_PRIORITY_LEVEL4); + /* Set Sub-priority of the USB DMA Interrupt */ + SYS_INT_VectorSubprioritySet(INT_VECTOR_USB1_DMA, INT_SUBPRIORITY_LEVEL0); + + + + /* Enable Global Interrupts */ + SYS_INT_Enable(); + /* Initialize the Application */ APP_Initialize(); } diff --git a/firmware/src/system_config/default/system_interrupt.c b/firmware/src/system_config/default/system_interrupt.c index a676c11..0d0c030 100644 --- a/firmware/src/system_config/default/system_interrupt.c +++ b/firmware/src/system_config/default/system_interrupt.c @@ -70,6 +70,23 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES // Section: System Interrupt Vector Functions // ***************************************************************************** // ***************************************************************************** +void __ISR(_TIMER_1_VECTOR, ipl1AUTO) _IntHandlerDrvTmrInstance0(void) +{ + + DRV_TMR_Tasks_ISR(sysObj.drvTmr0); + +} + void __ISR( _USB_VECTOR , IPL4AUTO)_IntHandler_USB_stub ( void ) +{ + DRV_USBHS_Tasks_ISR(sysObj.drvUSBObject); +} +void __ISR ( _USB_DMA_VECTOR, IPL4AUTO) _IntHandlerUSBInstance0_USBDMA ( void ) +{ + DRV_USBHS_Tasks_ISR_USBDMA(sysObj.drvUSBObject); + +} + + /******************************************************************************* End of File diff --git a/firmware/src/system_config/default/system_tasks.c b/firmware/src/system_config/default/system_tasks.c index 14c834d..1ae8a24 100644 --- a/firmware/src/system_config/default/system_tasks.c +++ b/firmware/src/system_config/default/system_tasks.c @@ -74,11 +74,23 @@ void SYS_Tasks ( void ) { /* Maintain system services */ SYS_DEVCON_Tasks(sysObj.sysDevcon); + SYS_TMR_Tasks(sysObj.sysTmr); /* Maintain Device Drivers */ + DRV_TMR_Tasks(sysObj.drvTmr0); /* Maintain Middleware & Other Libraries */ + + /* USBHS Driver Task Routine */ + DRV_USBHS_Tasks(sysObj.drvUSBObject); + + + /* USB Host layer task routine.*/ + USB_HOST_Tasks(sysObj.usbHostObject0); + + + /* Maintain the application's state machine. */ APP_Tasks(); -- cgit v1.2.3