diff options
| -rw-r--r-- | demos/bsp/lpc43xx/startup_iar/startup_LPC43xx.s | 298 | ||||
| -rw-r--r-- | demos/host/host_os_none/.project | 11 | ||||
| -rw-r--r-- | demos/host/host_os_none/host_os_none.ewd | 1304 | ||||
| -rw-r--r-- | demos/host/host_os_none/host_os_none.ewp | 1058 | ||||
| -rw-r--r-- | demos/host/host_os_none/host_os_none.eww | 10 | ||||
| -rw-r--r-- | demos/host/host_os_none/host_os_none.uvopt | 32 | ||||
| -rw-r--r-- | demos/host/src/cdc_serial_app.c | 6 | ||||
| -rw-r--r-- | demos/host/src/keyboard_app.c | 4 | ||||
| -rw-r--r-- | demos/host/src/mouse_app.c | 4 | ||||
| -rw-r--r-- | demos/host/src/tusb_config.h | 2 | ||||
| -rw-r--r-- | tinyusb/class/cdc_host.c | 2 | ||||
| -rw-r--r-- | tinyusb/class/cdc_host.h | 12 | ||||
| -rw-r--r-- | tinyusb/class/cdc_rndis_host.c | 11 | ||||
| -rw-r--r-- | tinyusb/class/hid_host.c | 2 | ||||
| -rw-r--r-- | tinyusb/class/hid_host.h | 14 | ||||
| -rw-r--r-- | tinyusb/common/assertion.h | 4 | ||||
| -rw-r--r-- | tinyusb/common/compiler/compiler_iar.h | 114 | ||||
| -rw-r--r-- | tinyusb/host/ehci/ehci.c | 20 | ||||
| -rw-r--r-- | tinyusb/host/usbh.c | 2 | ||||
| -rw-r--r-- | tinyusb/host/usbh.h | 6 |
20 files changed, 2859 insertions, 57 deletions
diff --git a/demos/bsp/lpc43xx/startup_iar/startup_LPC43xx.s b/demos/bsp/lpc43xx/startup_iar/startup_LPC43xx.s new file mode 100644 index 000000000..916fd6d1f --- /dev/null +++ b/demos/bsp/lpc43xx/startup_iar/startup_LPC43xx.s @@ -0,0 +1,298 @@ +/************************************************** + * + * Part one of the system initialization code, contains low-level + * initialization, plain thumb variant. + * + * Copyright 2011 IAR Systems. All rights reserved. + * + * $Revision: 50291 $ + * + **************************************************/ + +; +; The modules in this file are included in the libraries, and may be replaced +; by any user-defined modules that define the PUBLIC symbol _program_start or +; a user defined start symbol. +; To override the cstartup defined in the library, simply add your modified +; version to the workbench project. +; +; The vector table is normally located at address 0. +; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. +; The name "__vector_table" has special meaning for C-SPY: +; it is where the SP start value is found, and the NVIC vector +; table register (VTOR) is initialized to this address if != 0. +; +; Cortex-M version +; + + + MODULE ?cstartup + + ;; Forward declaration of sections. + SECTION CSTACK:DATA:NOROOT(3) + + SECTION .intvec:CODE:NOROOT(2) + + EXTERN __iar_program_start + PUBLIC __vector_table + PUBLIC __vector_table_0x1c + PUBLIC __Vectors + PUBLIC __Vectors_End + PUBLIC __Vectors_Size + + DATA + +__vector_table + DCD sfe(CSTACK) + DCD Reset_Handler + DCD NMI_Handler + DCD HardFault_Handler + DCD MemManage_Handler + DCD BusFault_Handler + DCD UsageFault_Handler +__vector_table_0x1c + DCD 0 + DCD 0 + DCD 0 + DCD 0 + DCD SVC_Handler + DCD DebugMon_Handler + DCD 0 + DCD PendSV_Handler + DCD SysTick_Handler + + ; External Interrupts + DCD DAC_IRQHandler ; 16 D/A Converter + DCD M0CORE_IRQHandler ; 17 CortexM0 + DCD DMA_IRQHandler ; 18 General Purpose DMA + DCD 0 ; 19 Reserved + DCD 0 ; 20 Reserved + DCD ETH_IRQHandler ; 21 Ethernet + DCD SDIO_IRQHandler ; 22 SD/MMC + DCD LCD_IRQHandler ; 23 LCD + DCD USB0_IRQHandler ; 24 USB0 + DCD USB1_IRQHandler ; 25 USB1 + DCD SCT_IRQHandler ; 26 State Configurable Timer + DCD RITIMER_IRQHandler ; 27 Repetitive Interrupt Timer + DCD TIMER0_IRQHandler ; 28 Timer0 + DCD TIMER1_IRQHandler ; 29 Timer1 + DCD TIMER2_IRQHandler ; 30 Timer2 + DCD TIMER3_IRQHandler ; 31 Timer3 + DCD MCPWM_IRQHandler ; 32 Motor Control PWM + DCD ADC0_IRQHandler ; 33 A/D Converter 0 + DCD I2C0_IRQHandler ; 34 I2C0 + DCD I2C1_IRQHandler ; 35 I2C1 + DCD SPI_IRQHandler ; 36 Reserved + DCD ADC1_IRQHandler ; 37 A/D Converter 1 + DCD SSP0_IRQHandler ; 38 SSP0 + DCD SSP1_IRQHandler ; 39 SSP1 + DCD USART0_IRQHandler ; 40 UART0 + DCD UART1_IRQHandler ; 41 UART1 + DCD UART2_IRQHandler ; 42 UART2 + DCD UART3_IRQHandler ; 43 UART3 + DCD I2S0_IRQHandler ; 44 I2S0 + DCD I2S1_IRQHandler ; 45 I2S1 + DCD SPIFI_IRQHandler ; 46 SPIFI + DCD SGPIO_IRQHandler ; 47 SGPIO + DCD GPIO0_IRQHandler ; 48 GPIO0 + DCD GPIO1_IRQHandler ; 49 GPIO1 + DCD GPIO2_IRQHandler ; 50 GPIO2 + DCD GPIO3_IRQHandler ; 51 GPIO3 + DCD GPIO4_IRQHandler ; 52 GPIO4 + DCD GPIO5_IRQHandler ; 53 GPIO5 + DCD GPIO6_IRQHandler ; 54 GPIO6 + DCD GPIO7_IRQHandler ; 55 GPIO7 + DCD GINT0_IRQHandler ; 56 GINT0 + DCD GINT1_IRQHandler ; 57 GINT1 + DCD EVENTROUTER_IRQHandler ; 58 Event Router + DCD C_CAN1_IRQHandler ; 59 CCAN1 + DCD 0 + DCD 0 + DCD ATIMER_IRQHandler ; 62 Alarm Timer + DCD RTC_IRQHandler ; 63 RTC + DCD 0 + DCD WWDT_IRQHandler ; 65 WWDT + DCD 0 + DCD C_CAN0_IRQHandler ; 67 CCAN0 + DCD QEI_IRQHandler ; 68 QEI +__Vectors_End + +__Vectors EQU __vector_table +__Vectors_Size EQU __Vectors_End - __Vectors + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Default interrupt handlers. +;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + THUMB + + PUBWEAK Reset_Handler + SECTION .text:CODE:REORDER(2) +Reset_Handler + LDR R0, =__iar_program_start + BX R0 + + PUBWEAK NMI_Handler + PUBWEAK HardFault_Handler + PUBWEAK MemManage_Handler + PUBWEAK BusFault_Handler + PUBWEAK UsageFault_Handler + PUBWEAK SVC_Handler + PUBWEAK DebugMon_Handler + PUBWEAK PendSV_Handler + PUBWEAK SysTick_Handler + PUBWEAK DAC_IRQHandler + PUBWEAK M0CORE_IRQHandler + PUBWEAK DMA_IRQHandler + PUBWEAK ETH_IRQHandler + PUBWEAK SDIO_IRQHandler + PUBWEAK LCD_IRQHandler + PUBWEAK USB0_IRQHandler + PUBWEAK USB1_IRQHandler + PUBWEAK SCT_IRQHandler + PUBWEAK RITIMER_IRQHandler + PUBWEAK TIMER0_IRQHandler + PUBWEAK TIMER1_IRQHandler + PUBWEAK TIMER2_IRQHandler + PUBWEAK TIMER3_IRQHandler + PUBWEAK MCPWM_IRQHandler + PUBWEAK ADC0_IRQHandler + PUBWEAK I2C0_IRQHandler + PUBWEAK I2C1_IRQHandler + PUBWEAK SPI_IRQHandler + PUBWEAK ADC1_IRQHandler + PUBWEAK SSP0_IRQHandler + PUBWEAK SSP1_IRQHandler + PUBWEAK USART0_IRQHandler + PUBWEAK UART1_IRQHandler + PUBWEAK UART2_IRQHandler + PUBWEAK UART3_IRQHandler + PUBWEAK I2S0_IRQHandler + PUBWEAK I2S1_IRQHandler + PUBWEAK SPIFI_IRQHandler + PUBWEAK SGPIO_IRQHandler + PUBWEAK GPIO0_IRQHandler + PUBWEAK GPIO1_IRQHandler + PUBWEAK GPIO2_IRQHandler + PUBWEAK GPIO3_IRQHandler + PUBWEAK GPIO4_IRQHandler + PUBWEAK GPIO5_IRQHandler + PUBWEAK GPIO6_IRQHandler + PUBWEAK GPIO7_IRQHandler + PUBWEAK GINT0_IRQHandler + PUBWEAK GINT1_IRQHandler + PUBWEAK EVENTROUTER_IRQHandler + PUBWEAK C_CAN1_IRQHandler + PUBWEAK ATIMER_IRQHandler + PUBWEAK RTC_IRQHandler + PUBWEAK WWDT_IRQHandler + PUBWEAK C_CAN0_IRQHandler + PUBWEAK QEI_IRQHandler + SECTION .text:CODE:REORDER(1) +NMI_Handler + B NMI_Handler +SVC_Handler + B SVC_Handler +DebugMon_Handler + B DebugMon_Handler +PendSV_Handler + B PendSV_Handler +SysTick_Handler + B SysTick_Handler +HardFault_Handler + B HardFault_Handler +MemManage_Handler + B MemManage_Handler +BusFault_Handler + B BusFault_Handler +UsageFault_Handler +DAC_IRQHandler +M0CORE_IRQHandler +DMA_IRQHandler +ETH_IRQHandler +SDIO_IRQHandler +LCD_IRQHandler +USB0_IRQHandler +USB1_IRQHandler +SCT_IRQHandler +RITIMER_IRQHandler +TIMER0_IRQHandler +TIMER1_IRQHandler +TIMER2_IRQHandler +TIMER3_IRQHandler +MCPWM_IRQHandler +ADC0_IRQHandler +I2C0_IRQHandler +I2C1_IRQHandler +SPI_IRQHandler +ADC1_IRQHandler +SSP0_IRQHandler +SSP1_IRQHandler +USART0_IRQHandler +UART1_IRQHandler +UART2_IRQHandler +UART3_IRQHandler +I2S0_IRQHandler +I2S1_IRQHandler +SPIFI_IRQHandler +SGPIO_IRQHandler +GPIO0_IRQHandler +GPIO1_IRQHandler +GPIO2_IRQHandler +GPIO3_IRQHandler +GPIO4_IRQHandler +GPIO5_IRQHandler +GPIO6_IRQHandler +GPIO7_IRQHandler +GINT0_IRQHandler +GINT1_IRQHandler +EVENTROUTER_IRQHandler +C_CAN1_IRQHandler +ATIMER_IRQHandler +RTC_IRQHandler +WWDT_IRQHandler +C_CAN0_IRQHandler +QEI_IRQHandler +Default_IRQHandler + B Default_IRQHandler + + + THUMB + + PUBLIC getPC + SECTION .text:CODE:REORDER(2) +getPC + MOV R0,LR + BX LR + + +/* CRP Section - not needed for flashless devices */ + +;;; SECTION .crp:CODE:ROOT(2) +;;; DATA +/* Code Read Protection +NO_ISP 0x4E697370 - Prevents sampling of pin PIO0_1 for entering ISP mode +CRP1 0x12345678 - Write to RAM command cannot access RAM below 0x10000300. + - Copy RAM to flash command can not write to Sector 0. + - Erase command can erase Sector 0 only when all sectors + are selected for erase. + - Compare command is disabled. + - Read Memory command is disabled. +CRP2 0x87654321 - Read Memory is disabled. + - Write to RAM is disabled. + - "Go" command is disabled. + - Copy RAM to flash is disabled. + - Compare is disabled. +CRP3 0x43218765 - Access to chip via the SWD pins is disabled. ISP entry + by pulling PIO0_1 LOW is disabled if a valid user code is + present in flash sector 0. +Caution: If CRP3 is selected, no future factory testing can be +performed on the device. +*/ +;;; DCD 0xFFFFFFFF +;;; + + END +
\ No newline at end of file diff --git a/demos/host/host_os_none/.project b/demos/host/host_os_none/.project index df8437c32..d69907840 100644 --- a/demos/host/host_os_none/.project +++ b/demos/host/host_os_none/.project @@ -103,7 +103,16 @@ </linkedResources> <filteredResources> <filter> - <id>1379174455764</id> + <id>1379572492985</id> + <name></name> + <type>26</type> + <matcher> + <id>org.eclipse.ui.ide.multiFilter</id> + <arguments>1.0-name-matches-false-false-startup_iar</arguments> + </matcher> + </filter> + <filter> + <id>1379572492997</id> <name></name> <type>26</type> <matcher> diff --git a/demos/host/host_os_none/host_os_none.ewd b/demos/host/host_os_none/host_os_none.ewd new file mode 100644 index 000000000..233debece --- /dev/null +++ b/demos/host/host_os_none/host_os_none.ewd @@ -0,0 +1,1304 @@ +<?xml version="1.0" encoding="iso-8859-1"?> + +<project> + <fileVersion>2</fileVersion> + <configuration> + <name>Board EA4357</name> + <toolchain> + <name>ARM</name> + </toolchain> + <debug>1</debug> + <settings> + <name>C-SPY</name> + <archiveVersion>2</archiveVersion> + <data> + <version>25</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CInput</name> + <state>1</state> + </option> + <option> + <name>CEndian</name> + <state>1</state> + </option> + <option> + <name>CProcessor</name> + <state>1</state> + </option> + <option> + <name>OCVariant</name> + <state>0</state> + </option> + <option> + <name>MacOverride</name> + <state>0</state> + </option> + <option> + <name>MacFile</name> + <state></state> + </option> + <option> + <name>MemOverride</name> + <state>0</state> + </option> + <option> + <name>MemFile</name> + <state>$TOOLKIT_DIR$\CONFIG\debugger\NXP\LPC4357_M4.ddf</state> + </option> + <option> + <name>RunToEnable</name> + <state>1</state> + </option> + <option> + <name>RunToName</name> + <state>main</state> + </option> + <option> + <name>CExtraOptionsCheck</name> + <state>0</state> + </option> + <option> + <name>CExtraOptions</name> + <state></state> + </option> + <option> + <name>CFpuProcessor</name> + <state>1</state> + </option> + <option> + <name>OCDDFArgumentProducer</name> + <state></state> + </option> + <option> + <name>OCDownloadSuppressDownload</name> + <state>0</state> + </option> + <option> + <name>OCDownloadVerifyAll</name> + <state>0</state> + </option> + <option> + <name>OCProductVersion</name> + <state>6.50.5.4846</state> + </option> + <option> + <name>OCDynDriverList</name> + <state>JLINK_ID</state> + </option> + <option> + <name>OCLastSavedByProductVersion</name> + <state>6.50.5.4846</state> + </option> + <option> + <name>OCDownloadAttachToProgram</name> + <state>0</state> + </option> + <option> + <name>UseFlashLoader</name> + <state>0</state> + </option> + <option> + <name>CLowLevel</name> + <state>1</state> + </option> + <option> + <name>OCBE8Slave</name> + <state>1</state> + </option> + <option> + <name>MacFile2</name> + <state></state> + </option> + <option> + <name>CDevice</name> + <state>1</state> + </option> + <option> + <name>FlashLoadersV3</name> + <state>$TOOLKIT_DIR$\config\flashloader\NXP\FlashNXPLPC18xx_1024K.board</state> + </option> + <option> + <name>OCImagesSuppressCheck1</name> + <state>0</state> + </option> + <option> + <name>OCImagesPath1</name> + <state></state> + </option> + <option> + <name>OCImagesSuppressCheck2</name> + <state>0</state> + </option> + <option> + <name>OCImagesPath2</name> + <state></state> + </option> + <option> + <name>OCImagesSuppressCheck3</name> + <state>0</state> + </option> + <option> + <name>OCImagesPath3</name> + <state></state> + </option> + <option> + <name>OverrideDefFlashBoard</name> + <state>0</state> + </option> + <option> + <name>OCImagesOffset1</name> + <state></state> + </option> + <option> + <name>OCImagesOffset2</name> + <state></state> + </option> + <option> + <name>OCImagesOffset3</name> + <state></state> + </option> + <option> + <name>OCImagesUse1</name> + <state>0</state> + </option> + <option> + <name>OCImagesUse2</name> + <state>0</state> + </option> + <option> + <name>OCImagesUse3</name> + <state>0</state> + </option> + <option> + <name>OCDeviceConfigMacroFile</name> + <state>1</state> + </option> + <option> + <name>OCDebuggerExtraOption</name> + <state>1</state> + </option> + <option> + <name>OCAllMTBOptions</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>ARMSIM_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>1</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCSimDriverInfo</name> + <state>1</state> + </option> + <option> + <name>OCSimEnablePSP</name> + <state>0</state> + </option> + <option> + <name>OCSimPspOverrideConfig</name> + <state>0</state> + </option> + <option> + <name>OCSimPspConfigFile</name> + <state></state> + </option> + </data> + </settings> + <settings> + <name>ANGEL_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>0</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CCAngelHeartbeat</name> + <state>1</state> + </option> + <option> + <name>CAngelCommunication</name> + <state>1</state> + </option> + <option> + <name>CAngelCommBaud</name> + <version>0</version> + <state>3</state> + </option> + <option> + <name>CAngelCommPort</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>ANGELTCPIP</name> + <state>aaa.bbb.ccc.ddd</state> + </option> + <option> + <name>DoAngelLogfile</name> + <state>0</state> + </option> + <option> + <name>AngelLogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>CMSISDAP_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>0</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>CMSISDAPAttachSlave</name> + <state>1</state> + </option> + <option> + <name>OCIarProbeScriptFile</name> + <state>1</state> + </option> + <option> + <name>CMSISDAPResetList</name> + <version>1</version> + <state>10</state> + </option> + <option> + <name>CMSISDAPHWResetDuration</name> + <state>300</state> + </option> + <option> + <name>CMSISDAPHWResetDelay</name> + <state>200</state> + </option> + <option> + <name>CMSISDAPDoLogfile</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPLogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CMSISDAPInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPInterfaceCmdLine</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPMultiTargetEnable</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPMultiTarget</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPJtagSpeedList</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CMSISDAPBreakpointRadio</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPRestoreBreakpointsCheck</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPUpdateBreakpointsEdit</name> + <state>_call_main</state> + </option> + <option> + <name>RDICatchReset</name> + <state>0</state> + </option> + <option> + <name>RDICatchUndef</name> + <state>0</state> + </option> + <option> + <name>RDICatchSWI</name> + <state>0</state> + </option> + <option> + <name>RDICatchData</name> + <state>0</state> + </option> + <option> + <name>RDICatchPrefetch</name> + <state>0</state> + </option> + <option> + <name>RDICatchIRQ</name> + <state>0</state> + </option> + <option> + <name>RDICatchFIQ</name> + <state>0</state> + </option> + <option> + <name>CatchCORERESET</name> + <state>0</state> + </option> + <option> + <name>CatchMMERR</name> + <state>0</state> + </option> + <option> + <name>CatchNOCPERR</name> + <state>0</state> + </option> + <option> + <name>CatchCHKERR</name> + <state>0</state> + </option> + <option> + <name>CatchSTATERR</name> + <state>0</state> + </option> + <option> + <name>CatchBUSERR</name> + <state>0</state> + </option> + <option> + <name>CatchINTERR</name> + <state>0</state> + </option> + <option> + <name>CatchHARDERR</name> + <state>0</state> + </option> + <option> + <name>CatchDummy</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPMultiCPUEnable</name> + <state>0</state> + </option> + <option> + <name>CMSISDAPMultiCPUNumber</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>GDBSERVER_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>0</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>TCPIP</name> + <state>aaa.bbb.ccc.ddd</state> + </option> + <option> + <name>DoLogfile</name> + <state>0</state> + </option> + <option> + <name>LogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CCJTagBreakpointRadio</name> + <state>0</state> + </option> + <option> + <name>CCJTagDoUpdateBreakpoints</name> + <state>0</state> + </option> + <option> + <name>CCJTagUpdateBreakpoints</name> + <state>_call_main</state> + </option> + </data> + </settings> + <settings> + <name>IARROM_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>1</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CRomLogFileCheck</name> + <state>0</state> + </option> + <option> + <name>CRomLogFileEditB</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CRomCommPort</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CRomCommBaud</name> + <version>0</version> + <state>7</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>IJET_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>2</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>IjetAttachSlave</name> + <state>1</state> + </option> + <option> + <name>OCIarProbeScriptFile</name> + <state>1</state> + </option> + <option> + <name>IjetResetList</name> + <version>1</version> + <state>10</state> + </option> + <option> + <name>IjetHWResetDuration</name> + <state>300</state> + </option> + <option> + <name>IjetHWResetDelay</name> + <state>200</state> + </option> + <option> + <name>IjetPowerFromProbe</name> + <state>1</state> + </option> + <option> + <name>IjetPowerRadio</name> + <state>0</state> + </option> + <option> + <name>IjetDoLogfile</name> + <state>0</state> + </option> + <option> + <name>IjetLogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>IjetInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>IjetInterfaceCmdLine</name> + <state>0</state> + </option> + <option> + <name>IjetMultiTargetEnable</name> + <state>0</state> + </option> + <option> + <name>IjetMultiTarget</name> + <state>0</state> + </option> + <option> + <name>IjetScanChainNonARMDevices</name> + <state>0</state> + </option> + <option> + <name>IjetIRLength</name> + <state>0</state> + </option> + <option> + <name>IjetJtagSpeedList</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>IjetProtocolRadio</name> + <state>0</state> + </option> + <option> + <name>IjetSwoPin</name> + <state>0</state> + </option> + <option> + <name>IjetCpuClockEdit</name> + <state>72.0</state> + </option> + <option> + <name>IjetSwoPrescalerList</name> + <version>1</version> + <state>0</state> + </option> + <option> + <name>IjetBreakpointRadio</name> + <state>0</state> + </option> + <option> + <name>IjetRestoreBreakpointsCheck</name> + <state>0</state> + </option> + <option> + <name>IjetUpdateBreakpointsEdit</name> + <state>_call_main</state> + </option> + <option> + <name>RDICatchReset</name> + <state>0</state> + </option> + <option> + <name>RDICatchUndef</name> + <state>0</state> + </option> + <option> + <name>RDICatchSWI</name> + <state>0</state> + </option> + <option> + <name>RDICatchData</name> + <state>0</state> + </option> + <option> + <name>RDICatchPrefetch</name> + <state>0</state> + </option> + <option> + <name>RDICatchIRQ</name> + <state>0</state> + </option> + <option> + <name>RDICatchFIQ</name> + <state>0</state> + </option> + <option> + <name>CatchCORERESET</name> + <state>0</state> + </option> + <option> + <name>CatchMMERR</name> + <state>0</state> + </option> + <option> + <name>CatchNOCPERR</name> + <state>0</state> + </option> + <option> + <name>CatchCHKERR</name> + <state>0</state> + </option> + <option> + <name>CatchSTATERR</name> + <state>0</state> + </option> + <option> + <name>CatchBUSERR</name> + <state>0</state> + </option> + <option> + <name>CatchINTERR</name> + <state>0</state> + </option> + <option> + <name>CatchHARDERR</name> + <state>0</state> + </option> + <option> + <name>CatchDummy</name> + <state>0</state> + </option> + <option> + <name>OCProbeCfgOverride</name> + <state>0</state> + </option> + <option> + <name>OCProbeConfig</name> + <state></state> + </option> + <option> + <name>IjetProbeConfigRadio</name> + <state>0</state> + </option> + <option> + <name>IjetMultiCPUEnable</name> + <state>0</state> + </option> + <option> + <name>IjetMultiCPUNumber</name> + <state>0</state> + </option> + <option> + <name>IjetSelectedCPUBehaviour</name> + <state>0</state> + </option> + <option> + <name>ICpuName</name> + <state></state> + </option> + </data> + </settings> + <settings> + <name>JLINK_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>15</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>JLinkSpeed</name> + <state>32</state> + </option> + <option> + <name>CCJLinkDoLogfile</name> + <state>0</state> + </option> + <option> + <name>CCJLinkLogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CCJLinkHWResetDelay</name> + <state>0</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>JLinkInitialSpeed</name> + <state>5000</state> + </option> + <option> + <name>CCDoJlinkMultiTarget</name> + <state>0</state> + </option> + <option> + <name>CCScanChainNonARMDevices</name> + <state>0</state> + </option> + <option> + <name>CCJLinkMultiTarget</name> + <state>0</state> + </option> + <option> + <name>CCJLinkIRLength</name> + <state>0</state> + </option> + <option> + <name>CCJLinkCommRadio</name> + <state>0</state> + </option> + <option> + <name>CCJLinkTCPIP</name> + <state>aaa.bbb.ccc.ddd</state> + </option> + <option> + <name>CCJLinkSpeedRadioV2</name> + <state>0</state> + </option> + <option> + <name>CCUSBDevice</name> + <version>1</version> + <state>1</state> + </option> + <option> + <name>CCRDICatchReset</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchUndef</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchSWI</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchData</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchPrefetch</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchIRQ</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchFIQ</name> + <state>0</state> + </option> + <option> + <name>CCJLinkBreakpointRadio</name> + <state>0</state> + </option> + <option> + <name>CCJLinkDoUpdateBreakpoints</name> + <state>0</state> + </option> + <option> + <name>CCJLinkUpdateBreakpoints</name> + <state>_call_main</state> + </option> + <option> + <name>CCJLinkInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>OCJLinkAttachSlave</name> + <state>1</state> + </option> + <option> + <name>CCJLinkResetList</name> + <version>6</version> + <state>7</state> + </option> + <option> + <name>CCJLinkInterfaceCmdLine</name> + <state>0</state> + </option> + <option> + <name>CCCatchCORERESET</name> + <state>0</state> + </option> + <option> + <name>CCCatchMMERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchNOCPERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchCHRERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchSTATERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchBUSERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchINTERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchHARDERR</name> + <state>0</state> + </option> + <option> + <name>CCCatchDummy</name> + <state>0</state> + </option> + <option> + <name>OCJLinkScriptFile</name> + <state>1</state> + </option> + <option> + <name>CCJLinkUsbSerialNo</name> + <state></state> + </option> + <option> + <name>CCTcpIpAlt</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CCJLinkTcpIpSerialNo</name> + <state></state> + </option> + <option> + <name>CCCpuClockEdit</name> + <state>72.0</state> + </option> + <option> + <name>CCSwoClockAuto</name> + <state>0</state> + </option> + <option> + <name>CCSwoClockEdit</name> + <state>2000</state> + </option> + <option> + <name>OCJLinkTraceSource</name> + <state>0</state> + </option> + <option> + <name>OCJLinkTraceSourceDummy</name> + <state>0</state> + </option> + <option> + <name>OCJLinkDeviceName</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>LMIFTDI_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>2</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>LmiftdiSpeed</name> + <state>500</state> + </option> + <option> + <name>CCLmiftdiDoLogfile</name> + <state>0</state> + </option> + <option> + <name>CCLmiftdiLogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CCLmiFtdiInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>CCLmiFtdiInterfaceCmdLine</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>MACRAIGOR_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>3</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>jtag</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>EmuSpeed</name> + <state>1</state> + </option> + <option> + <name>TCPIP</name> + <state>aaa.bbb.ccc.ddd</state> + </option> + <option> + <name>DoLogfile</name> + <state>0</state> + </option> + <option> + <name>LogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>DoEmuMultiTarget</name> + <state>0</state> + </option> + <option> + <name>EmuMultiTarget</name> + <state>0@ARM7TDMI</state> + </option> + <option> + <name>EmuHWReset</name> + <state>0</state> + </option> + <option> + <name>CEmuCommBaud</name> + <version>0</version> + <state>4</state> + </option> + <option> + <name>CEmuCommPort</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>jtago</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>UnusedAddr</name> + <state>0x00800000</state> + </option> + <option> + <name>CCMacraigorHWResetDelay</name> + <state></state> + </option> + <option> + <name>CCJTagBreakpointRadio</name> + <state>0</state> + </option> + <option> + <name>CCJTagDoUpdateBreakpoints</name> + <state>0</state> + </option> + <option> + <name>CCJTagUpdateBreakpoints</name> + <state>_call_main</state> + </option> + <option> + <name>CCMacraigorInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>CCMacraigorInterfaceCmdLine</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>PEMICRO_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>1</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>OCPEMicroAttachSlave</name> + <state>1</state> + </option> + <option> + <name>CCPEMicroInterfaceList</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CCPEMicroResetDelay</name> + <state></state> + </option> + <option> + <name>CCPEMicroJtagSpeed</name> + <state>#UNINITIALIZED#</state> + </option> + <option> + <name>CCJPEMicroShowSettings</name> + <state>0</state> + </option> + <option> + <name>DoLogfile</name> + <state>0</state> + </option> + <option> + <name>LogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CCPEMicroUSBDevice</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CCPEMicroSerialPort</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CCJPEMicroTCPIPAutoScanNetwork</name> + <state>1</state> + </option> + <option> + <name>CCPEMicroTCPIP</name> + <state>10.0.0.1</state> + </option> + <option> + <name>CCPEMicroCommCmdLineProducer</name> + <state>0</state> + </option> + <option> + <name>CCSTLinkInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>CCSTLinkInterfaceCmdLine</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>RDI_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>2</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CRDIDriverDll</name> + <state>###Uninitialized###</state> + </option> + <option> + <name>CRDILogFileCheck</name> + <state>0</state> + </option> + <option> + <name>CRDILogFileEdit</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>CCRDIHWReset</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchReset</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchUndef</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchSWI</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchData</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchPrefetch</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchIRQ</name> + <state>0</state> + </option> + <option> + <name>CCRDICatchFIQ</name> + <state>0</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>STLINK_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>2</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>CCSTLinkInterfaceRadio</name> + <state>0</state> + </option> + <option> + <name>CCSTLinkInterfaceCmdLine</name> + <state>0</state> + </option> + <option> + <name>CCSTLinkResetList</name> + <version>1</version> + <state>0</state> + </option> + <option> + <name>CCCpuClockEdit</name> + <state>72.0</state> + </option> + <option> + <name>CCSwoClockAuto</name> + <state>0</state> + </option> + <option> + <name>CCSwoClockEdit</name> + <state>2000</state> + </option> + </data> + </settings> + <settings> + <name>THIRDPARTY_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>0</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CThirdPartyDriverDll</name> + <state>###Uninitialized###</state> + </option> + <option> + <name>CThirdPartyLogFileCheck</name> + <state>0</state> + </option> + <option> + <name>CThirdPartyLogFileEditB</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + </data> + </settings> + <settings> + <name>XDS100_ID</name> + <archiveVersion>2</archiveVersion> + <data> + <version>2</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OCDriverInfo</name> + <state>1</state> + </option> + <option> + <name>OCXDS100AttachSlave</name> + <state>1</state> + </option> + <option> + <name>TIPackageOverride</name> + <state>0</state> + </option> + <option> + <name>TIPackage</name> + <state></state> + </option> + <option> + <name>CCXds100InterfaceList</name> + <version>1</version> + <state>0</state> + </option> + <option> + <name>BoardFile</name> + <state></state> + </option> + <option> + <name>DoLogfile</name> + <state>0</state> + </option> + <option> + <name>LogFile</name> + <state>$PROJ_DIR$\cspycomm.log</state> + </option> + </data> + </settings> + <debuggerPlugins> + <plugin> + <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file> + <loadFlag>1</loadFlag> + </plugin> + <plugin> + <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + <plugin> + <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file> + <loadFlag>1</loadFlag> + </plugin> + <plugin> + <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file> + <loadFlag>0</loadFlag> + </plugin> + </debuggerPlugins> + </configuration> +</project> + + diff --git a/demos/host/host_os_none/host_os_none.ewp b/demos/host/host_os_none/host_os_none.ewp new file mode 100644 index 000000000..8176206fd --- /dev/null +++ b/demos/host/host_os_none/host_os_none.ewp @@ -0,0 +1,1058 @@ +<?xml version="1.0" encoding="iso-8859-1"?> + +<project> + <fileVersion>2</fileVersion> + <configuration> + <name>Board EA4357</name> + <toolchain> + <name>ARM</name> + </toolchain> + <debug>1</debug> + <settings> + <name>General</name> + <archiveVersion>3</archiveVersion> + <data> + <version>21</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>ExePath</name> + <state>Board EA4357\Exe</state> + </option> + <option> + <name>ObjPath</name> + <state>Board EA4357\Obj</state> + </option> + <option> + <name>ListPath</name> + <state>Board EA4357\List</state> + </option> + <option> + <name>Variant</name> + <version>20</version> + <state>39</state> + </option> + <option> + <name>GEndianMode</name> + <state>0</state> + </option> + <option> + <name>Input variant</name> + <version>3</version> + <state>0</state> + </option> + <option> + <name>Input description</name> + <state>Automatic choice of formatter.</state> + </option> + <option> + <name>Output variant</name> + <version>2</version> + <state>0</state> + </option> + <option> + <name>Output description</name> + <state>Automatic choice of formatter.</state> + </option> + <option> + <name>GOutputBinary</name> + <state>0</state> + </option> + <option> + <name>FPU</name> + <version>2</version> + <state>5</state> + </option> + <option> + <name>OGCoreOrChip</name> + <state>1</state> + </option> + <option> + <name>GRuntimeLibSelect</name> + <version>0</version> + <state>1</state> + </option> + <option> + <name>GRuntimeLibSelectSlave</name> + <version>0</version> + <state>1</state> + </option> + <option> + <name>RTDescription</name> + <state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state> + </option> + <option> + <name>OGProductVersion</name> + <state>6.50.5.4846</state> + </option> + <option> + <name>OGLastSavedByProductVersion</name> + <state>6.50.5.4846</state> + </option> + <option> + <name>GeneralEnableMisra</name> + <state>0</state> + </option> + <option> + <name>GeneralMisraVerbose</name> + <state>0</state> + </option> + <option> + <name>OGChipSelectEditMenu</name> + <state>LPC4357_M4 NXP LPC4357_M4</state> + </option> + <option> + <name>GenLowLevelInterface</name> + <state>1</state> + </option> + <option> + <name>GEndianModeBE</name> + <state>1</state> + </option> + <option> + <name>OGBufferedTerminalOutput</name> + <state>0</state> + </option> + <option> + <name>GenStdoutInterface</name> + <state>1</state> + </option> + <option> + <name>GeneralMisraRules98</name> + <version>0</version> + <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state> + </option> + <option> + <name>GeneralMisraVer</name> + <state>0</state> + </option> + <option> + <name>GeneralMisraRules04</name> + <version>0</version> + <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state> + </option> + <option> + <name>RTConfigPath2</name> + <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state> + </option> + <option> + <name>GFPUCoreSlave</name> + <version>20</version> + <state>39</state> + </option> + <option> + <name>GBECoreSlave</name> + <version>20</version> + <state>39</state> + </option> + <option> + <name>OGUseCmsis</name> + <state>1</state> + </option> + <option> + <name>OGUseCmsisDspLib</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>ICCARM</name> + <archiveVersion>2</archiveVersion> + <data> + <version>28</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>CCDefines</name> + <state>CORE_M4</state> + <state>MCU=MCU_LPC43XX</state> + <state>BOARD=BOARD_EA4357</state> + <state>TUSB_CFG_OS=TUSB_OS_NONE</state> + </option> + <option> + <name>CCPreprocFile</name> + <state>0</state> + </option> + <option> + <name>CCPreprocComments</name> + <state>0</state> + </option> + <option> + <name>CCPreprocLine</name> + <state>0</state> + </option> + <option> + <name>CCListCFile</name> + <state>0</state> + </option> + <option> + <name>CCListCMnemonics</name> + <state>0</state> + </option> + <option> + <name>CCListCMessages</name> + <state>0</state> + </option> + <option> + <name>CCListAssFile</name> + <state>0</state> + </option> + <option> + <name>CCListAssSource</name> + <state>0</state> + </option> + <option> + <name>CCEnableRemarks</name> + <state>0</state> + </option> + <option> + <name>CCDiagSuppress</name> + <state></state> + </option> + <option> + <name>CCDiagRemark</name> + <state></state> + </option> + <option> + <name>CCDiagWarning</name> + <state></state> + </option> + <option> + <name>CCDiagError</name> + <state></state> + </option> + <option> + <name>CCObjPrefix</name> + <state>1</state> + </option> + <option> + <name>CCAllowList</name> + <version>1</version> + <state>0000000</state> + </option> + <option> + <name>CCDebugInfo</name> + <state>1</state> + </option> + <option> + <name>IEndianMode</name> + <state>1</state> + </option> + <option> + <name>IProcessor</name> + <state>1</state> + </option> + <option> + <name>IExtraOptionsCheck</name> + <state>0</state> + </option> + <option> + <name>IExtraOptions</name> + <state></state> + </option> + <option> + <name>CCLangConformance</name> + <state>0</state> + </option> + <option> + <name>CCSignedPlainChar</name> + <state>1</state> + </option> + <option> + <name>CCRequirePrototypes</name> + <state>0</state> + </option> + <option> + <name>CCMultibyteSupport</name> + <state>0</state> + </option> + <option> + <name>CCDiagWarnAreErr</name> + <state>0</state> + </option> + <option> + <name>CCCompilerRuntimeInfo</name> + <state>0</state> + </option> + <option> + <name>IFpuProcessor</name> + <state>1</state> + </option> + <option> + <name>OutputFile</name> + <state>$FILE_BNAME$.o</state> + </option> + <option> + <name>CCLibConfigHeader</name> + <state>1</state> + </option> + <option> + <name>PreInclude</name> + <state></state> + </option> + <option> + <name>CompilerMisraOverride</name> + <state>0</state> + </option> + <option> + <name>CCIncludePath2</name> + <state>$PROJ_DIR$\..\src</state> + <state>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\inc</state> + <state>$PROJ_DIR$\..\..\bsp</state> + <state>$PROJ_DIR$\..\..\..\tinyusb</state> + </option> + <option> + <name>CCStdIncCheck</name> + <state>0</state> + </option> + <option> + <name>CCCodeSection</name> + <state>.text</state> + </option> + <option> + <name>IInterwork2</name> + <state>0</state> + </option> + <option> + <name>IProcessorMode2</name> + <state>1</state> + </option> + <option> + <name>CCOptLevel</name> + <state>0</state> + </option> + <option> + <name>CCOptStrategy</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CCOptLevelSlave</name> + <state>0</state> + </option> + <option> + <name>CompilerMisraRules98</name> + <version>0</version> + <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state> + </option> + <option> + <name>CompilerMisraRules04</name> + <version>0</version> + <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state> + </option> + <option> + <name>CCPosIndRopi</name> + <state>0</state> + </option> + <option> + <name>CCPosIndRwpi</name> + <state>0</state> + </option> + <option> + <name>CCPosIndNoDynInit</name> + <state>0</state> + </option> + <option> + <name>IccLang</name> + <state>0</state> + </option> + <option> + <name>IccCDialect</name> + <state>1</state> + </option> + <option> + <name>IccAllowVLA</name> + <state>0</state> + </option> + <option> + <name>IccCppDialect</name> + <state>1</state> + </option> + <option> + <name>IccExceptions</name> + <state>1</state> + </option> + <option> + <name>IccRTTI</name> + <state>1</state> + </option> + <option> + <name>IccStaticDestr</name> + <state>1</state> + </option> + <option> + <name>IccCppInlineSemantics</name> + <state>0</state> + </option> + <option> + <name>IccCmsis</name> + <state>1</state> + </option> + <option> + <name>IccFloatSemantics</name> + <state>0</state> + </option> + <option> + <name>CCOptimizationNoSizeConstraints</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>AARM</name> + <archiveVersion>2</archiveVersion> + <data> + <version>8</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>AObjPrefix</name> + <state>1</state> + </option> + <option> + <name>AEndian</name> + <state>1</state> + </option> + <option> + <name>ACaseSensitivity</name> + <state>1</state> + </option> + <option> + <name>MacroChars</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>AWarnEnable</name> + <state>0</state> + </option> + <option> + <name>AWarnWhat</name> + <state>0</state> + </option> + <option> + <name>AWarnOne</name> + <state></state> + </option> + <option> + <name>AWarnRange1</name> + <state></state> + </option> + <option> + <name>AWarnRange2</name> + <state></state> + </option> + <option> + <name>ADebug</name> + <state>1</state> + </option> + <option> + <name>AltRegisterNames</name> + <state>0</state> + </option> + <option> + <name>ADefines</name> + <state></state> + </option> + <option> + <name>AList</name> + <state>0</state> + </option> + <option> + <name>AListHeader</name> + <state>1</state> + </option> + <option> + <name>AListing</name> + <state>1</state> + </option> + <option> + <name>Includes</name> + <state>0</state> + </option> + <option> + <name>MacDefs</name> + <state>0</state> + </option> + <option> + <name>MacExps</name> + <state>1</state> + </option> + <option> + <name>MacExec</name> + <state>0</state> + </option> + <option> + <name>OnlyAssed</name> + <state>0</state> + </option> + <option> + <name>MultiLine</name> + <state>0</state> + </option> + <option> + <name>PageLengthCheck</name> + <state>0</state> + </option> + <option> + <name>PageLength</name> + <state>80</state> + </option> + <option> + <name>TabSpacing</name> + <state>8</state> + </option> + <option> + <name>AXRef</name> + <state>0</state> + </option> + <option> + <name>AXRefDefines</name> + <state>0</state> + </option> + <option> + <name>AXRefInternal</name> + <state>0</state> + </option> + <option> + <name>AXRefDual</name> + <state>0</state> + </option> + <option> + <name>AProcessor</name> + <state>1</state> + </option> + <option> + <name>AFpuProcessor</name> + <state>1</state> + </option> + <option> + <name>AOutputFile</name> + <state>$FILE_BNAME$.o</state> + </option> + <option> + <name>AMultibyteSupport</name> + <state>0</state> + </option> + <option> + <name>ALimitErrorsCheck</name> + <state>0</state> + </option> + <option> + <name>ALimitErrorsEdit</name> + <state>100</state> + </option> + <option> + <name>AIgnoreStdInclude</name> + <state>0</state> + </option> + <option> + <name>AUserIncludes</name> + <state></state> + </option> + <option> + <name>AExtraOptionsCheckV2</name> + <state>0</state> + </option> + <option> + <name>AExtraOptionsV2</name> + <state></state> + </option> + </data> + </settings> + <settings> + <name>OBJCOPY</name> + <archiveVersion>0</archiveVersion> + <data> + <version>1</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>OOCOutputFormat</name> + <version>2</version> + <state>0</state> + </option> + <option> + <name>OCOutputOverride</name> + <state>0</state> + </option> + <option> + <name>OOCOutputFile</name> + <state>host_os_none.srec</state> + </option> + <option> + <name>OOCCommandLineProducer</name> + <state>1</state> + </option> + <option> + <name>OOCObjCopyEnable</name> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>CUSTOM</name> + <archiveVersion>3</archiveVersion> + <data> + <extensions></extensions> + <cmdline></cmdline> + </data> + </settings> + <settings> + <name>BICOMP</name> + <archiveVersion>0</archiveVersion> + <data/> + </settings> + <settings> + <name>BUILDACTION</name> + <archiveVersion>1</archiveVersion> + <data> + <prebuild></prebuild> + <postbuild></postbuild> + </data> + </settings> + <settings> + <name>ILINK</name> + <archiveVersion>0</archiveVersion> + <data> + <version>15</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>IlinkLibIOConfig</name> + <state>1</state> + </option> + <option> + <name>XLinkMisraHandler</name> + <state>0</state> + </option> + <option> + <name>IlinkInputFileSlave</name> + <state>0</state> + </option> + <option> + <name>IlinkOutputFile</name> + <state>host_os_none.out</state> + </option> + <option> + <name>IlinkDebugInfoEnable</name> + <state>1</state> + </option> + <option> + <name>IlinkKeepSymbols</name> + <state></state> + </option> + <option> + <name>IlinkRawBinaryFile</name> + <state></state> + </option> + <option> + <name>IlinkRawBinarySymbol</name> + <state></state> + </option> + <option> + <name>IlinkRawBinarySegment</name> + <state></state> + </option> + <option> + <name>IlinkRawBinaryAlign</name> + <state></state> + </option> + <option> + <name>IlinkDefines</name> + <state></state> + </option> + <option> + <name>IlinkConfigDefines</name> + <state></state> + </option> + <option> + <name>IlinkMapFile</name> + <state>1</state> + </option> + <option> + <name>IlinkLogFile</name> + <state>0</state> + </option> + <option> + <name>IlinkLogInitialization</name> + <state>0</state> + </option> + <option> + <name>IlinkLogModule</name> + <state>0</state> + </option> + <option> + <name>IlinkLogSection</name> + <state>0</state> + </option> + <option> + <name>IlinkLogVeneer</name> + <state>0</state> + </option> + <option> + <name>IlinkIcfOverride</name> + <state>0</state> + </option> + <option> + <name>IlinkIcfFile</name> + <state>$TOOLKIT_DIR$\config\linker\NXP\LPC4357_M4.icf</state> + </option> + <option> + <name>IlinkIcfFileSlave</name> + <state></state> + </option> + <option> + <name>IlinkEnableRemarks</name> + <state>0</state> + </option> + <option> + <name>IlinkSuppressDiags</name> + <state></state> + </option> + <option> + <name>IlinkTreatAsRem</name> + <state></state> + </option> + <option> + <name>IlinkTreatAsWarn</name> + <state></state> + </option> + <option> + <name>IlinkTreatAsErr</name> + <state></state> + </option> + <option> + <name>IlinkWarningsAreErrors</name> + <state>0</state> + </option> + <option> + <name>IlinkUseExtraOptions</name> + <state>0</state> + </option> + <option> + <name>IlinkExtraOptions</name> + <state></state> + </option> + <option> + <name>IlinkLowLevelInterfaceSlave</name> + <state>1</state> + </option> + <option> + <name>IlinkAutoLibEnable</name> + <state>1</state> + </option> + <option> + <name>IlinkAdditionalLibs</name> + <state></state> + </option> + <option> + <name>IlinkOverrideProgramEntryLabel</name> + <state>0</state> + </option> + <option> + <name>IlinkProgramEntryLabelSelect</name> + <state>0</state> + </option> + <option> + <name>IlinkProgramEntryLabel</name> + <state>__iar_program_start</state> + </option> + <option> + <name>DoFill</name> + <state>0</state> + </option> + <option> + <name>FillerByte</name> + <state>0xFF</state> + </option> + <option> + <name>FillerStart</name> + <state>0x0</state> + </option> + <option> + <name>FillerEnd</name> + <state>0x0</state> + </option> + <option> + <name>CrcSize</name> + <version>0</version> + <state>1</state> + </option> + <option> + <name>CrcAlign</name> + <state>1</state> + </option> + <option> + <name>CrcPoly</name> + <state>0x11021</state> + </option> + <option> + <name>CrcCompl</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CrcBitOrder</name> + <version>0</version> + <state>0</state> + </option> + <option> + <name>CrcInitialValue</name> + <state>0x0</state> + </option> + <option> + <name>DoCrc</name> + <state>0</state> + </option> + <option> + <name>IlinkBE8Slave</name> + <state>1</state> + </option> + <option> + <name>IlinkBufferedTerminalOutput</name> + <state>1</state> + </option> + <option> + <name>IlinkStdoutInterfaceSlave</name> + <state>1</state> + </option> + <option> + <name>CrcFullSize</name> + <state>0</state> + </option> + <option> + <name>IlinkIElfToolPostProcess</name> + <state>0</state> + </option> + <option> + <name>IlinkLogAutoLibSelect</name> + <state>0</state> + </option> + <option> + <name>IlinkLogRedirSymbols</name> + <state>0</state> + </option> + <option> + <name>IlinkLogUnusedFragments</name> + <state>0</state> + </option> + <option> + <name>IlinkCrcReverseByteOrder</name> + <state>0</state> + </option> + <option> + <name>IlinkCrcUseAsInput</name> + <state>1</state> + </option> + <option> + <name>IlinkOptInline</name> + <state>0</state> + </option> + <option> + <name>IlinkOptExceptionsAllow</name> + <state>1</state> + </option> + <option> + <name>IlinkOptExceptionsForce</name> + <state>0</state> + </option> + <option> + <name>IlinkCmsis</name> + <state>1</state> + </option> + <option> + <name>IlinkOptMergeDuplSections</name> + <state>0</state> + </option> + <option> + <name>IlinkOptUseVfe</name> + <state>1</state> + </option> + <option> + <name>IlinkOptForceVfe</name> + <state>0</state> + </option> + <option> + <name>IlinkStackAnalysisEnable</name> + <state>0</state> + </option> + <option> + <name>IlinkStackControlFile</name> + <state></state> + </option> + <option> + <name>IlinkStackCallGraphFile</name> + <state></state> + </option> + <option> + <name>CrcAlgorithm</name> + <version>0</version> + <state>1</state> + </option> + <option> + <name>CrcUnitSize</name> + <version>0</version> + <state>0</state> + </option> + </data> + </settings> + <settings> + <name>IARCHIVE</name> + <archiveVersion>0</archiveVersion> + <data> + <version>0</version> + <wantNonLocal>1</wantNonLocal> + <debug>1</debug> + <option> + <name>IarchiveInputs</name> + <state></state> + </option> + <option> + <name>IarchiveOverride</name> + <state>0</state> + </option> + <option> + <name>IarchiveOutput</name> + <state>###Unitialized###</state> + </option> + </data> + </settings> + <settings> + <name>BILINK</name> + <archiveVersion>0</archiveVersion> + <data/> + </settings> + </configuration> + <group> + <name>app</name> + <file> + <name>$PROJ_DIR$\..\src\cdc_serial_app.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\src\keyboard_app.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\src\main.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\src\mouse_app.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\src\rndis_app.c</name> + </file> + </group> + <group> + <name>bsp</name> + <group> + <name>boards</name> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\board.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\embedded_artists\board_ea4357.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\microbuilder\board_lpc4357usb.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\ngx\board_ngx4330.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\embedded_artists\oem_base_board\pca9532.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\boards\printf_retarget.c</name> + </file> + </group> + <group> + <name>lpc43xx</name> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_cgu.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_gpio.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_i2c.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_scu.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\lpc43xx_uart.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\startup_iar\startup_LPC43xx.s</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\bsp\lpc43xx\CMSIS_LPC43xx_DriverLib\src\system_LPC43xx.c</name> + </file> + </group> + </group> + <group> + <name>tinyusb</name> + <group> + <name>class</name> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\class\cdc_host.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\class\cdc_rndis_host.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\class\hid_host.c</name> + </file> + </group> + <group> + <name>common</name> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\common\errors.c</name> + </file> + </group> + <group> + <name>hal</name> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\hal\hal_lpc11uxx.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\hal\hal_lpc13uxx.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\hal\hal_lpc175x_6x.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\hal\hal_lpc43xx.c</name> + </file> + </group> + <group> + <name>host</name> + <group> + <name>ehci</name> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\host\ehci\ehci.c</name> + </file> + </group> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\host\hcd.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\host\hub.c</name> + </file> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\host\usbh.c</name> + </file> + </group> + <group> + <name>osal</name> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\osal\osal_none.c</name> + </file> + </group> + <file> + <name>$PROJ_DIR$\..\..\..\tinyusb\tusb.c</name> + </file> + </group> +</project> + + diff --git a/demos/host/host_os_none/host_os_none.eww b/demos/host/host_os_none/host_os_none.eww new file mode 100644 index 000000000..c9165d7c6 --- /dev/null +++ b/demos/host/host_os_none/host_os_none.eww @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="iso-8859-1"?> + +<workspace> + <project> + <path>$WS_DIR$\host_os_none.ewp</path> + </project> + <batchBuild/> +</workspace> + + diff --git a/demos/host/host_os_none/host_os_none.uvopt b/demos/host/host_os_none/host_os_none.uvopt index 13f68cbc4..702c4551d 100644 --- a/demos/host/host_os_none/host_os_none.uvopt +++ b/demos/host/host_os_none/host_os_none.uvopt @@ -389,7 +389,7 @@ <Focus>0</Focus> <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>118</TopLine> + <TopLine>149</TopLine> <CurrentLine>158</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\src\main.c</PathWithFileName> @@ -405,8 +405,8 @@ <Focus>0</Focus> <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>84</TopLine> - <CurrentLine>124</CurrentLine> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\src\cdc_serial_app.c</PathWithFileName> <FilenameWithoutPath>cdc_serial_app.c</FilenameWithoutPath> @@ -493,7 +493,7 @@ <Focus>0</Focus> <ColumnNumber>2</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>128</TopLine> + <TopLine>137</TopLine> <CurrentLine>146</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\bsp\boards\embedded_artists\board_ea4357.c</PathWithFileName> @@ -509,7 +509,7 @@ <Focus>0</Focus> <ColumnNumber>1</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>97</TopLine> + <TopLine>99</TopLine> <CurrentLine>106</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\bsp\boards\printf_retarget.c</PathWithFileName> @@ -709,8 +709,8 @@ <Focus>0</Focus> <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>170</TopLine> - <CurrentLine>210</CurrentLine> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\..\tinyusb\host\usbh.c</PathWithFileName> <FilenameWithoutPath>usbh.c</FilenameWithoutPath> @@ -725,8 +725,8 @@ <Focus>0</Focus> <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>262</TopLine> - <CurrentLine>254</CurrentLine> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\..\tinyusb\host\ehci\ehci.c</PathWithFileName> <FilenameWithoutPath>ehci.c</FilenameWithoutPath> @@ -773,7 +773,7 @@ <Focus>0</Focus> <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>29</TopLine> + <TopLine>60</TopLine> <CurrentLine>69</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\..\tinyusb\hal\hal_lpc43xx.c</PathWithFileName> @@ -835,10 +835,10 @@ <FileType>1</FileType> <tvExp>0</tvExp> <Focus>0</Focus> - <ColumnNumber>0</ColumnNumber> + <ColumnNumber>15</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>102</TopLine> - <CurrentLine>142</CurrentLine> + <TopLine>1</TopLine> + <CurrentLine>24</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\..\tinyusb\class\cdc_host.c</PathWithFileName> <FilenameWithoutPath>cdc_host.c</FilenameWithoutPath> @@ -851,10 +851,10 @@ <FileType>1</FileType> <tvExp>0</tvExp> <Focus>0</Focus> - <ColumnNumber>24</ColumnNumber> + <ColumnNumber>0</ColumnNumber> <tvExpOptDlg>0</tvExpOptDlg> - <TopLine>135</TopLine> - <CurrentLine>152</CurrentLine> + <TopLine>1</TopLine> + <CurrentLine>1</CurrentLine> <bDave2>0</bDave2> <PathWithFileName>..\..\..\tinyusb\class\cdc_rndis_host.c</PathWithFileName> <FilenameWithoutPath>cdc_rndis_host.c</FilenameWithoutPath> diff --git a/demos/host/src/cdc_serial_app.c b/demos/host/src/cdc_serial_app.c index 197d60a84..e44cfd924 100644 --- a/demos/host/src/cdc_serial_app.c +++ b/demos/host/src/cdc_serial_app.c @@ -93,7 +93,7 @@ void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_ case TUSB_EVENT_XFER_STALLED: default : - ASSERT(false, (void) 0); // error + ASSERT(false, VOID_RETURN); // error break; } }else if (pipe_id == CDC_PIPE_DATA_OUT) @@ -113,9 +113,9 @@ void cdc_serial_app_init(void) memclr_(buffer_in, sizeof(buffer_in)); queue_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_def) ); - ASSERT_PTR( queue_hdl, (void) 0 ); + ASSERT_PTR( queue_hdl, VOID_RETURN); - ASSERT( TUSB_ERROR_NONE == osal_task_create(OSAL_TASK_REF(cdc_serial_app_task)), (void) 0 ); + ASSERT( TUSB_ERROR_NONE == osal_task_create(OSAL_TASK_REF(cdc_serial_app_task)), VOID_RETURN); } //------------- main task -------------// diff --git a/demos/host/src/keyboard_app.c b/demos/host/src/keyboard_app.c index 27d5c0cfe..404a27c41 100644 --- a/demos/host/src/keyboard_app.c +++ b/demos/host/src/keyboard_app.c @@ -108,10 +108,10 @@ void keyboard_app_init(void) memclr_(&usb_keyboard_report, sizeof(tusb_keyboard_report_t)); queue_kbd_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_kbd_def) ); - ASSERT_PTR( queue_kbd_hdl, (void) 0 ); + ASSERT_PTR( queue_kbd_hdl, VOID_RETURN ); ASSERT( TUSB_ERROR_NONE == osal_task_create( OSAL_TASK_REF(keyboard_app_task) ) , - (void) 0 ); + VOID_RETURN); } //------------- main task -------------// diff --git a/demos/host/src/mouse_app.c b/demos/host/src/mouse_app.c index 666aa02f5..3469fc4ab 100644 --- a/demos/host/src/mouse_app.c +++ b/demos/host/src/mouse_app.c @@ -110,10 +110,10 @@ void mouse_app_init(void) memclr_(&usb_mouse_report, sizeof(tusb_mouse_report_t)); queue_mouse_hdl = osal_queue_create( OSAL_QUEUE_REF(queue_mouse_def) ); - ASSERT_PTR( queue_mouse_hdl, (void) 0 ); + ASSERT_PTR( queue_mouse_hdl, VOID_RETURN); ASSERT( TUSB_ERROR_NONE == osal_task_create( OSAL_TASK_REF(mouse_app_task) ), - (void) 0 ); + VOID_RETURN ); } //------------- main task -------------// diff --git a/demos/host/src/tusb_config.h b/demos/host/src/tusb_config.h index 8596660de..b44c2ee73 100644 --- a/demos/host/src/tusb_config.h +++ b/demos/host/src/tusb_config.h @@ -113,6 +113,8 @@ #define TUSB_CFG_ATTR_USBRAM __attribute__ ((section(TUSB_RAM_SECTION))) #elif defined __CC_ARM // Compiled with Keil armcc #define TUSB_CFG_ATTR_USBRAM +#elif __ICCARM__ // compiled with IAR + #define TUSB_CFG_ATTR_USBRAM #else #error compiler not specified #endif diff --git a/tinyusb/class/cdc_host.c b/tinyusb/class/cdc_host.c index c15140ea8..8f4bc7e21 100644 --- a/tinyusb/class/cdc_host.c +++ b/tinyusb/class/cdc_host.c @@ -289,7 +289,7 @@ void cdch_close(uint8_t dev_addr) ASSERT(err1 == TUSB_ERROR_NONE && err2 == TUSB_ERROR_NONE && - err3 == TUSB_ERROR_NONE, (void) 0 ); + err3 == TUSB_ERROR_NONE, VOID_RETURN ); } diff --git a/tinyusb/class/cdc_host.h b/tinyusb/class/cdc_host.h index 159d27856..393eec228 100644 --- a/tinyusb/class/cdc_host.h +++ b/tinyusb/class/cdc_host.h @@ -70,9 +70,9 @@ tusb_error_t tusbh_cdc_send(uint8_t dev_addr, void const * p_data, uint32_t leng tusb_error_t tusbh_cdc_receive(uint8_t dev_addr, void * p_buffer, uint32_t length, bool is_notify); //------------- CDC Application Callback -------------// -void tusbh_cdc_mounted_cb(uint8_t dev_addr) ATTR_WEAK; -void tusbh_cdc_unmounted_isr(uint8_t dev_addr) ATTR_WEAK; -void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes) ATTR_WEAK; +ATTR_WEAK void tusbh_cdc_mounted_cb(uint8_t dev_addr); +ATTR_WEAK void tusbh_cdc_unmounted_isr(uint8_t dev_addr); +ATTR_WEAK void tusbh_cdc_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes); #if TUSB_CFG_HOST_CDC_RNDIS @@ -83,9 +83,9 @@ bool tusbh_cdc_rndis_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RES tusb_error_t tusbh_cdc_rndis_get_mac_addr(uint8_t dev_addr, uint8_t mac_address[6]); //------------- RNDIS Application Callback (overshadow CDC callbacks) -------------// -void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr) ATTR_WEAK; -void tusbh_cdc_rndis_unmounted_isr(uint8_t dev_addr) ATTR_WEAK; -void tusbh_cdc_rndis_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes) ATTR_WEAK; +ATTR_WEAK void tusbh_cdc_rndis_mounted_cb(uint8_t dev_addr); +ATTR_WEAK void tusbh_cdc_rndis_unmounted_isr(uint8_t dev_addr); +ATTR_WEAK void tusbh_cdc_rndis_xfer_isr(uint8_t dev_addr, tusb_event_t event, cdc_pipeid_t pipe_id, uint32_t xferred_bytes); diff --git a/tinyusb/class/cdc_rndis_host.c b/tinyusb/class/cdc_rndis_host.c index 98c0f3ed6..51d6c3723 100644 --- a/tinyusb/class/cdc_rndis_host.c +++ b/tinyusb/class/cdc_rndis_host.c @@ -55,7 +55,7 @@ #define RNDIS_MSG_PAYLOAD_MAX (1024*4) static uint8_t msg_notification[TUSB_CFG_HOST_DEVICE_MAX][8] TUSB_CFG_ATTR_USBRAM; -static uint8_t msg_payload[RNDIS_MSG_PAYLOAD_MAX] TUSB_CFG_ATTR_USBRAM ATTR_ALIGNED(4); +ATTR_ALIGNED(4) static uint8_t msg_payload[RNDIS_MSG_PAYLOAD_MAX] TUSB_CFG_ATTR_USBRAM; STATIC_ rndish_data_t rndish_data[TUSB_CFG_HOST_DEVICE_MAX]; @@ -154,7 +154,6 @@ static rndis_msg_query_t const msg_query_permanent_addr = .oid = OID_802_3_PERMANENT_ADDRESS, .buffer_length = 6, .buffer_offset = 20, - .oid_buffer = {0, 0, 0, 0, 0, 0} }; static rndis_msg_set_t const msg_set_packet_filter = @@ -165,7 +164,6 @@ static rndis_msg_set_t const msg_set_packet_filter = .oid = OID_GEN_CURRENT_PACKET_FILTER, .buffer_length = 4, .buffer_offset = 20, - .oid_buffer = { (uint8_t) (NDIS_PACKET_TYPE_DIRECTED | NDIS_PACKET_TYPE_MULTICAST | NDIS_PACKET_TYPE_BROADCAST), 0, 0, 0} }; tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc) @@ -191,7 +189,8 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc) rndish_data[dev_addr-1].max_xfer_size = p_init_cmpt->max_xfer_size; //------------- Message Query 802.3 Permanent Address -------------// - memcpy(msg_payload, &msg_query_permanent_addr, sizeof(rndis_msg_query_t) + 6); // 6 bytes for MAC address + memcpy(msg_payload, &msg_query_permanent_addr, sizeof(rndis_msg_query_t)); + memclr_(msg_payload + sizeof(rndis_msg_query_t), 6); // 6 bytes for MAC address OSAL_SUBTASK_INVOKED_AND_WAIT( send_message_get_response_subtask( dev_addr, p_cdc, @@ -206,7 +205,9 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc) memcpy(rndish_data[dev_addr-1].mac_address, msg_payload + 8 + p_query_cmpt->buffer_offset, 6); //------------- Set OID_GEN_CURRENT_PACKET_FILTER to (DIRECTED | MULTICAST | BROADCAST) -------------// - memcpy(msg_payload, &msg_set_packet_filter, sizeof(rndis_msg_set_t) + 4); // 4 bytes for filter flags + memcpy(msg_payload, &msg_set_packet_filter, sizeof(rndis_msg_set_t)); + memclr_(msg_payload + sizeof(rndis_msg_set_t), 4); // 4 bytes for filter flags + ((rndis_msg_set_t*) msg_payload)->oid_buffer[0] = (NDIS_PACKET_TYPE_DIRECTED | NDIS_PACKET_TYPE_MULTICAST | NDIS_PACKET_TYPE_BROADCAST); OSAL_SUBTASK_INVOKED_AND_WAIT( send_message_get_response_subtask( dev_addr, p_cdc, diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c index 06b144e3f..ddcbb57fa 100644 --- a/tinyusb/class/hid_host.c +++ b/tinyusb/class/hid_host.c @@ -87,7 +87,7 @@ static inline void hidh_interface_close(uint8_t dev_addr, hidh_interface_info_t if ( pipehandle_is_valid(pipe_hdl) ) { memclr_(p_hid, sizeof(hidh_interface_info_t)); - ASSERT_INT( TUSB_ERROR_NONE, hcd_pipe_close(pipe_hdl), (void) 0 ); + ASSERT_INT( TUSB_ERROR_NONE, hcd_pipe_close(pipe_hdl), VOID_RETURN ); } } diff --git a/tinyusb/class/hid_host.h b/tinyusb/class/hid_host.h index c8ace4eca..179e6fa25 100644 --- a/tinyusb/class/hid_host.h +++ b/tinyusb/class/hid_host.h @@ -63,9 +63,9 @@ bool tusbh_hid_keyboard_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WAR tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, void * report) /*ATTR_WARN_UNUSED_RESULT*/; tusb_interface_status_t tusbh_hid_keyboard_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT; //------------- Application Callback -------------// -void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event) ATTR_WEAK; -void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr) ATTR_WEAK; -void tusbh_hid_keyboard_unmounted_isr(uint8_t dev_addr) ATTR_WEAK; +ATTR_WEAK void tusbh_hid_keyboard_isr(uint8_t dev_addr, tusb_event_t event); +ATTR_WEAK void tusbh_hid_keyboard_mounted_cb(uint8_t dev_addr); +ATTR_WEAK void tusbh_hid_keyboard_unmounted_isr(uint8_t dev_addr); //--------------------------------------------------------------------+ // MOUSE Application API @@ -74,9 +74,9 @@ bool tusbh_hid_mouse_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_U tusb_error_t tusbh_hid_mouse_get_report(uint8_t dev_addr, void* report) /*ATTR_WARN_UNUSED_RESULT*/; tusb_interface_status_t tusbh_hid_mouse_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT; //------------- Application Callback -------------// -void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event) ATTR_WEAK; -void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr) ATTR_WEAK; -void tusbh_hid_mouse_unmounted_isr(uint8_t dev_addr) ATTR_WEAK; +ATTR_WEAK void tusbh_hid_mouse_isr(uint8_t dev_addr, tusb_event_t event); +ATTR_WEAK void tusbh_hid_mouse_mounted_cb(uint8_t dev_addr); +ATTR_WEAK void tusbh_hid_mouse_unmounted_isr(uint8_t dev_addr); //--------------------------------------------------------------------+ // GENERIC Application API @@ -87,7 +87,7 @@ tusb_error_t tusbh_hid_generic_set_report(uint8_t dev_addr, void* report, bool tusb_interface_status_t tusbh_hid_generic_get_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT; tusb_interface_status_t tusbh_hid_generic_set_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT; //------------- Application Callback -------------// -void tusbh_hid_generic_isr(uint8_t dev_addr, tusb_event_t event) ATTR_WEAK; +ATTR_WEAK void tusbh_hid_generic_isr(uint8_t dev_addr, tusb_event_t event); //--------------------------------------------------------------------+ // USBH-CLASS DRIVER API diff --git a/tinyusb/common/assertion.h b/tinyusb/common/assertion.h index 5e5a84054..7d8b3fcba 100644 --- a/tinyusb/common/assertion.h +++ b/tinyusb/common/assertion.h @@ -60,6 +60,8 @@ extern "C" #include "tusb_option.h" #include "hal/hal.h" // TODO find a way to break hal dependency +#define VOID_RETURN + //--------------------------------------------------------------------+ // Compile-time Assert //--------------------------------------------------------------------+ @@ -95,7 +97,7 @@ extern "C" #ifndef _TEST_ASSERT_ #define ASSERT_ERROR_HANDLER(x, para) \ - return (x) + return x #else #define ASSERT_ERROR_HANDLER(x, para) Throw(x) #endif diff --git a/tinyusb/common/compiler/compiler_iar.h b/tinyusb/common/compiler/compiler_iar.h index aa25d43a6..80373c1c1 100644 --- a/tinyusb/common/compiler/compiler_iar.h +++ b/tinyusb/common/compiler/compiler_iar.h @@ -52,11 +52,123 @@ extern "C" { #endif -#define ALIGN_OF(x) __ALIGNOF__(x) +#define ALIGN_OF(x) __ALIGNOF__(x) +#define ATTR_PACKED_STRUCT(x) __packed x #define ATTR_PREPACKED __packed #define ATTR_PACKED +#define ATTR_ALIGNED(Bytes) ATTR_ALIGNED_##Bytes +#define ATTR_ALIGNED_4096 _Pragma("data_alignment=4096") +#define ATTR_ALIGNED_2048 _Pragma("data_alignment=2048") +#define ATTR_ALIGNED_256 _Pragma("data_alignment=256") +#define ATTR_ALIGNED_128 _Pragma("data_alignment=128") +#define ATTR_ALIGNED_64 _Pragma("data_alignment=64") +#define ATTR_ALIGNED_48 _Pragma("data_alignment=48") +#define ATTR_ALIGNED_32 _Pragma("data_alignment=32") +#define ATTR_ALIGNED_4 _Pragma("data_alignment=4") + + + +#ifndef ATTR_ALWAYS_INLINE +/// Generally, functions are not inlined unless optimization is specified. For functions declared inline, this attribute inlines the function even if no optimization level is specified +#define ATTR_ALWAYS_INLINE error +#endif + +#define ATTR_PURE // TODO IAR pure function attribute +#define ATTR_CONST // TODO IAR const function attribute +#define ATTR_WEAK __weak + +#define ATTR_WARN_UNUSED_RESULT +#define ATTR_USED +#define ATTR_UNUSED + +#if 0 + + /** Indicates to the compiler that the function can not ever return, so that any stack restoring or + * return code may be omitted by the compiler in the resulting binary. + */ + #define ATTR_NO_RETURN + + /** Indicates that the specified parameters of the function are pointers which should never be \c NULL. + * When applied as a 1-based comma separated list the compiler will emit a warning if the specified + * parameters are known at compiler time to be \c NULL at the point of calling the function. + */ + #define ATTR_NON_NULL_PTR_ARG(...) + + /** Removes any preamble or postamble from the function. When used, the function will not have any + * register or stack saving code. This should be used with caution, and when used the programmer + * is responsible for maintaining stack and register integrity. + */ + #define ATTR_NAKED __attribute__ ((naked)) + + /** Prevents the compiler from considering a specified function for in-lining. When applied, the given + * function will not be in-lined under any circumstances. + */ + #define ATTR_NO_INLINE __attribute__ ((noinline)) + + /** Forces the compiler to inline the specified function. When applied, the given function will be + * in-lined under all circumstances. + */ + #define PRAGMA_ALWAYS_INLINE _Pragma("inline=forced") + #define ATTR_ALWAYS_INLINE + + /** Indicates that the specified function is pure, in that it has no side-effects other than global + * or parameter variable access. + */ + #define ATTR_PURE __attribute__ ((pure)) + + /** Indicates that the specified function is constant, in that it has no side effects other than + * parameter access. + */ + #define ATTR_CONST + + /** Marks a given function as deprecated, which produces a warning if the function is called. */ + #define ATTR_DEPRECATED// __attribute__ ((deprecated)) + + /** Marks a function as a weak reference, which can be overridden by other functions with an + * identical name (in which case the weak reference is discarded at link time). + */ + #define _PPTOSTR_(x) #x + #define PRAGMA_WEAK(name, vector) _Pragma(_PPTOSTR_(weak name=vector)) + #define ATTR_WEAK + + /** Marks a function as an alias for another function. + * + * \param[in] Func Name of the function which the given function name should alias. + */ + #define ATTR_ALIAS(Func) + + /** Forces the compiler to not automatically zero the given global variable on startup, so that the + * current RAM contents is retained. Under most conditions this value will be random due to the + * behaviour of volatile memory once power is removed, but may be used in some specific circumstances, + * like the passing of values back after a system watchdog reset. + */ + #define ATTR_NO_INIT __attribute__ ((section (".noinit"))) + /** Indicates the minimum alignment in bytes for a variable or struct element. + * + * \param[in] Bytes Minimum number of bytes the item should be aligned to. + */ + #define PRAGMA_ALIGN_4096 _Pragma("data_alignment=4096") + #define PRAGMA_ALIGN_2048 _Pragma("data_alignment=2048") + #define PRAGMA_ALIGN_256 _Pragma("data_alignment=256") + #define PRAGMA_ALIGN_128 _Pragma("data_alignment=128") + #define PRAGMA_ALIGN_64 _Pragma("data_alignment=64") + #define PRAGMA_ALIGN_48 _Pragma("data_alignment=48") + #define PRAGMA_ALIGN_32 _Pragma("data_alignment=32") + #define PRAGMA_ALIGN_4 _Pragma("data_alignment=4") + #define ATTR_ALIGNED(Bytes) + + //#define ATTR_DEPRECATED __attribute__ ((deprecated)) + + #define ATTR_ERROR(Message)// __attribute__ (( error(Message) )) + + #define ATTR_WARNING(Message) // __attribute__ (( warning(Message) )) + + #define ATTR_IAR_PACKED __packed + #define ATTR_PACKED +#endif + #ifdef __cplusplus } #endif diff --git a/tinyusb/host/ehci/ehci.c b/tinyusb/host/ehci/ehci.c index addf33adf..4bc69a51b 100644 --- a/tinyusb/host/ehci/ehci.c +++ b/tinyusb/host/ehci/ehci.c @@ -62,13 +62,19 @@ STATIC_ ehci_data_t ehci_data TUSB_CFG_ATTR_USBRAM; #if EHCI_PERIODIC_LIST #if (TUSB_CFG_CONTROLLER0_MODE & TUSB_MODE_HOST) - STATIC_ ehci_link_t period_frame_list0[EHCI_FRAMELIST_SIZE] ATTR_ALIGNED(4096) TUSB_CFG_ATTR_USBRAM; - STATIC_ASSERT( ALIGN_OF(period_frame_list0) == 4096, "Period Framelist must be 4k alginment"); // validation + ATTR_ALIGNED(4096) STATIC_ ehci_link_t period_frame_list0[EHCI_FRAMELIST_SIZE] TUSB_CFG_ATTR_USBRAM; + + #ifndef __ICCARM__ // IAR cannot able to determine the alignment with dataalignment pragma + STATIC_ASSERT( ALIGN_OF(period_frame_list0) == 4096, "Period Framelist must be 4k alginment"); // validation + #endif #endif #if (TUSB_CFG_CONTROLLER1_MODE & TUSB_MODE_HOST) STATIC_ ehci_link_t period_frame_list1[EHCI_FRAMELIST_SIZE] ATTR_ALIGNED(4096) TUSB_CFG_ATTR_USBRAM; - STATIC_ASSERT( ALIGN_OF(period_frame_list1) == 4096, "Period Framelist must be 4k alginment"); // validation + + #ifndef __ICCARM__ // IAR cannot able to determine the alignment with dataalignment pragma + STATIC_ASSERT( ALIGN_OF(period_frame_list1) == 4096, "Period Framelist must be 4k alginment"); // validation + #endif #endif #endif @@ -587,7 +593,7 @@ static void period_list_xfer_complete_isr(uint8_t hostid, uint8_t interval_ms) case EHCI_QUEUE_ELEMENT_SITD: case EHCI_QUEUE_ELEMENT_FSTN: default: - ASSERT (false, (void) 0); // TODO support hs/fs ISO + ASSERT (false, VOID_RETURN); // TODO support hs/fs ISO break; } @@ -667,7 +673,7 @@ static void xfer_error_isr(uint8_t hostid) case EHCI_QUEUE_ELEMENT_SITD: case EHCI_QUEUE_ELEMENT_FSTN: default: - ASSERT (false, (void) 0); // TODO support hs/fs ISO + ASSERT (false, VOID_RETURN); // TODO support hs/fs ISO break; } @@ -905,7 +911,7 @@ static void qhd_init(ehci_qhd_t *p_qhd, uint8_t dev_addr, uint16_t max_packet_si { if (TUSB_SPEED_HIGH == p_qhd->endpoint_speed) { - ASSERT_INT_WITHIN(1, 16, interval, (void) 0); + ASSERT_INT_WITHIN(1, 16, interval, VOID_RETURN); if ( interval < 4) // sub milisecond interval { p_qhd->interval_ms = 0; @@ -918,7 +924,7 @@ static void qhd_init(ehci_qhd_t *p_qhd, uint8_t dev_addr, uint16_t max_packet_si } }else { - ASSERT( 0 != interval, (void) 0); + ASSERT( 0 != interval, VOID_RETURN); // Full/Low: 4.12.2.1 (EHCI) case 1 schedule start split at 1 us & complete split at 2,3,4 uframes p_qhd->interrupt_smask = 0x01; p_qhd->non_hs_interrupt_cmask = BIN8(11100); diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c index 99072bc7f..ce0c047d9 100644 --- a/tinyusb/host/usbh.c +++ b/tinyusb/host/usbh.c @@ -261,7 +261,7 @@ void usbh_xfer_isr(pipe_handle_t pipe_hdl, uint8_t class_code, tusb_event_t even usbh_class_drivers[class_index].isr(pipe_hdl, event, xferred_bytes); }else { - ASSERT(false, (void) 0); // something wrong, no one claims the isr's source + ASSERT(false, VOID_RETURN); // something wrong, no one claims the isr's source } } diff --git a/tinyusb/host/usbh.h b/tinyusb/host/usbh.h index e3300ff4c..aff39f33b 100644 --- a/tinyusb/host/usbh.h +++ b/tinyusb/host/usbh.h @@ -98,9 +98,9 @@ uint32_t tusbh_device_get_mounted_class_flag(uint8_t dev_addr); //--------------------------------------------------------------------+ // APPLICATION CALLBACK //--------------------------------------------------------------------+ -uint8_t tusbh_device_attached_cb (tusb_descriptor_device_t const *p_desc_device) ATTR_WEAK ATTR_WARN_UNUSED_RESULT; -void tusbh_device_mount_succeed_cb (uint8_t dev_addr) ATTR_WEAK; -void tusbh_device_mount_failed_cb(tusb_error_t error, tusb_descriptor_device_t const *p_desc_device) ATTR_WEAK; // TODO refractor remove desc_device +ATTR_WEAK uint8_t tusbh_device_attached_cb (tusb_descriptor_device_t const *p_desc_device) ATTR_WARN_UNUSED_RESULT; +ATTR_WEAK void tusbh_device_mount_succeed_cb (uint8_t dev_addr); +ATTR_WEAK void tusbh_device_mount_failed_cb(tusb_error_t error, tusb_descriptor_device_t const *p_desc_device); // TODO refractor remove desc_device //--------------------------------------------------------------------+ // CLASS-USBH & INTERNAL API |
