Update to PSoC Creator 4.0 v4.7.1
authorMichael McMaster <michael@codesrc.com>
Sun, 30 Apr 2017 23:07:22 +0000 (09:07 +1000)
committerMichael McMaster <michael@codesrc.com>
Sun, 30 Apr 2017 23:07:22 +0000 (09:07 +1000)
257 files changed:
CHANGELOG
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Bootloadable_1.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Bootloadable_1.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CFG_EEPROM.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CFG_EEPROM.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3Iar.icf [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3RealView.scat [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3Start.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmGnu.s [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmIar.s [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmRv.s [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyDmac.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyDmac.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyFlash.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyFlash.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyLib.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CyLib.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CySpc.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/CySpc.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Debug_Timer.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_CLK.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_CTL_PHASE_PM.c [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Filtered.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Filtered.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Glitch_Ctl.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Glitch_Ctl.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Glitch_Ctl_PM.c [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_In_DBx_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_In_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Noise_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Bits_PM.c [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_Ctl_PM.c [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Parity_Error.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Parity_Error.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard_INT.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard_PM.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SDCard_PVT.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT1.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT1.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT1_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT2.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT2.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_DAT2_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Data_Clk.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_audio.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_audio.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_boot.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.inf [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cls.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cydmac.h [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_drv.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_episr.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_hid.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_hid.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_midi.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_midi.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_msc.c [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_msc.h [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pm.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_std.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_vnd.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cm3gcc.ld [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cmsis_armcc.h [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cmsis_gcc.h [new file with mode: 0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cm3.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cmFunc.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cmInstr.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyPm.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyPm.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.icf [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevice.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevice_trm.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicegnu.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicegnu_trm.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydeviceiar.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydeviceiar_trm.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicerv.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicerv_trm.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cypins.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cytypes.h [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/cyutils.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h
software/SCSI2SD/v3/SCSI2SD.cydsn/Generated_Source/PSoC5/timer_clock.c [changed mode: 0644->0755]
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cycdx
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cydwr
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyfit
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.cyprj
software/SCSI2SD/v3/SCSI2SD.cydsn/SCSI2SD.svd
software/SCSI2SD/v3/SCSI2SD.cydsn/TopDesign/TopDesign.cysch
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Bootloadable_1.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Bootloadable_1.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3Iar.icf [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3RealView.scat [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Cm3Start.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmGnu.s [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmIar.s [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyBootAsmRv.s [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyDmac.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyDmac.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyFlash.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyFlash.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyLib.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CyLib.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CySpc.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/CySpc.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Debug_Timer.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/Debug_Timer_PM.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/EXTLED.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/EXTLED.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/EXTLED_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/LED1_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_CLK.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_In_DBx_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_In_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Noise_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_DBx_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_Out_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_RX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SCSI_TX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CD_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_CS_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_Data_Clk.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MISO_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_MOSI_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_RX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_SCK_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/SD_TX_DMA_dma.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dm_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_Dp_aliases.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_audio.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_audio.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_boot.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cdc.inf [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cls.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_cydmac.h [new file with mode: 0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_descr.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_drv.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_episr.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_hid.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_hid.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_midi.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_midi.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_msc.c [new file with mode: 0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_msc.h [new file with mode: 0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pm.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_pvt.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_std.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/USBFS_vnd.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cm3gcc.ld [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cmsis_armcc.h [new file with mode: 0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cmsis_gcc.h [new file with mode: 0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cm3.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cm3_psoc5.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cmFunc.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/core_cmInstr.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyPm.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyPm.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cybootloader.icf [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevice.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevice_trm.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicegnu.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicegnu_trm.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydeviceiar.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydeviceiar_trm.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicerv.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cydevicerv_trm.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitter_cfg.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfittergnu.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitteriar.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyfitterrv.inc
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cymetadata.c
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cypins.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cytypes.h [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/cyutils.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/project.h
software/SCSI2SD/v4/SCSI2SD.cydsn/Generated_Source/PSoC5/timer_clock.c [changed mode: 0644->0755]
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cycdx
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cydwr
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyfit
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.cyprj
software/SCSI2SD/v4/SCSI2SD.cydsn/SCSI2SD.svd
software/SCSI2SD/v4/SCSI2SD.cydsn/TopDesign/TopDesign.cysch

index 0102860..eab1d80 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,8 @@
-20170429               4.7.1
+20170501               4.7.1
        - Fix scsi2sd-util size and sector-size inputs
        - Fix crash when configured scsi disk starting sector is less than
        SD card size
+       - Update to PSoC Creator 4.0
 
 20170312               4.7
        - Fix bug in SCSI Inquiry command for SCSI2 hosts
old mode 100644 (file)
new mode 100755 (executable)
index 6c7c3fd..28d74fe
@@ -1,13 +1,13 @@
-/*******************************************************************************\r
-* File Name: Bootloadable_1.c\r
-* Version 1.30\r
+/****************************************************************************//**\r
+* \file Bootloadable_1.c\r
+* \version 1.50\r
 *\r
-*  Description:\r
-*   Provides an API for the Bootloadable application. The API includes a\r
-*   single function for starting the bootloader.\r
+* \brief\r
+*   Provides an API for the Bootloadable application.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
 \r
 #include "Bootloadable_1.h"\r
 \r
+/**\r
+ \defgroup functions_group Functions\r
+ @{\r
+*/\r
+\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
+static cystatus Bootloadable_1_WriteFlashByte(const uint32 address, const uint8 inputValue) CYLARGE \\r
+                               ;\r
+#endif /*(CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)*/\r
 \r
 /*******************************************************************************\r
 * Function Name: Bootloadable_1_Load\r
-********************************************************************************\r
-* Summary:\r
-*  Begins the bootloading algorithm downloading a new ACD image from the host.\r
+****************************************************************************//**\r
 *\r
-* Parameters:\r
-*  None\r
+* \brief\r
+*  Schedules the Bootloader/Launcher to be launched and then performs\r
+*  a software reset to launch it\r
 *\r
-* Returns:\r
+* \return\r
 *  This method will never return. It will load a new application and reset\r
 *  the device.\r
 *\r
 void Bootloadable_1_Load(void) \r
 {\r
     /* Schedule Bootloader to start after reset */\r
-    Bootloadable_1_SET_RUN_TYPE(Bootloadable_1_START_BTLDR);\r
+    Bootloadable_1_SET_RUN_TYPE(Bootloadable_1_SCHEDULE_BTLDR);\r
 \r
     CySoftwareReset();\r
 }\r
 \r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
+/*******************************************************************************\r
+* Function Name: Bootloadable_1_GetActiveApplication\r
+****************************************************************************//**\r
+*\r
+* \brief\r
+*   Gets the application which will be loaded after a next reset event.\r
+*   NOTE Intended for the combination project type ONLY!\r
+*\r
+* \return \r
+*  A number of the current active application set in the metadata section.\r
+*  \n  0 - app#0 is set as active.\r
+*  \n  1 - app#1 is set as active.\r
+*\r
+* \note If neither of the applications is set active, then the API returns 0x02.\r
+*\r
+*******************************************************************************/\r
+uint8 Bootloadable_1_GetActiveApplication(void) CYSMALL \\r
+                          \r
+{   \r
+    uint8 result = Bootloadable_1_MD_BTLDB_ACTIVE_NONE;\r
+    \r
+    if (0u != Bootloadable_1_GET_CODE_DATA( \\r
+              Bootloadable_1_MD_BTLDB_ACTIVE_OFFSET(Bootloadable_1_MD_BTLDB_ACTIVE_0))) \r
+    {\r
+        result = Bootloadable_1_MD_BTLDB_ACTIVE_0;\r
+    }\r
+    else if (0u != Bootloadable_1_GET_CODE_DATA( \\r
+                   Bootloadable_1_MD_BTLDB_ACTIVE_OFFSET(Bootloadable_1_MD_BTLDB_ACTIVE_1)))\r
+    {\r
+        result = Bootloadable_1_MD_BTLDB_ACTIVE_1;    \r
+    }\r
+    else\r
+    {\r
+        /*Do nothing, result is none*/\r
+    }\r
+    \r
+    return (result);\r
+}\r
+\r
+/*******************************************************************************\r
+* Function Name: Bootloadable_1_SetActiveApplication\r
+****************************************************************************//**\r
+*\r
+* \brief \r
+*   Sets the application which will be loaded after a next reset event.          \r
+*   \r
+* \details\r
+* Theory: \r
+*   This API sets in the Flash (metadata section) the given active application \r
+*   number.\r
+*          \r
+*   NOTE The active application number is not set directly, but the boolean \r
+*   mark instead means that the application is active or not for the relative \r
+*   metadata. Both metadata sections are updated. For example, if the second \r
+*   application is to be set active, then in the metadata section for the first \r
+*   application there will be a "0" written, which means that it is not active, and \r
+*   for the second metadata section there will be a "1" written, which means that it is \r
+*   active. \r
+*\r
+*   NOTE Intended for the combination project type ONLY!\r
+*\r
+* \param appId  \r
+*   The active application number to be written to flash (metadata section) \r
+*   NOTE Possible values are:\r
+*   0 - for the first application\r
+*   1 - for the second application.\r
+*   Any other number is considered invalid. \r
+*\r
+* \return \r
+*   A status of writing to flash operation.\r
+*   \n CYRET_SUCCESS - Returned if appId was successfully changed. \r
+*   \n CYRET_BAD_PARAM - Returned if the parameter appID passed to the function has the \r
+*                       same value as the active application ID. \r
+*   \note - The other non-zero value is considered as a failure during writing to flash.  \r
+*\r
+*   \note - This API does not update Bootloader_activeApp variable.\r
+*\r
+*******************************************************************************/\r
+cystatus Bootloadable_1_SetActiveApplication(uint8 appId) CYSMALL \\r
+                \r
+{\r
+    cystatus result = CYRET_SUCCESS;\r
+\r
+    uint8 CYDATA idx;\r
+    \r
+    /* If invalid application number */\r
+    if (appId > Bootloadable_1_MD_BTLDB_ACTIVE_1)\r
+    {\r
+        result = CYRET_BAD_PARAM;\r
+    }\r
+    else\r
+    {\r
+        /* If appID has same value as active application ID */\r
+        if (1u == Bootloadable_1_GET_CODE_DATA(Bootloadable_1_MD_BTLDB_ACTIVE_OFFSET(appId)))\r
+        {\r
+            result = CYRET_BAD_PARAM;\r
+        }\r
+        else\r
+        {\r
+            /* Updating metadata section */\r
+            for(idx = 0u; idx < Bootloadable_1_MAX_NUM_OF_BTLDB; idx++)\r
+            {\r
+                result |= Bootloadable_1_WriteFlashByte((uint32) Bootloadable_1_MD_BTLDB_ACTIVE_OFFSET(idx), \\r
+                                                                                            (uint8)(idx == appId));\r
+            }\r
+        }\r
+    }\r
+    \r
+    return (result);\r
+}\r
+\r
+/*******************************************************************************\r
+* Function Name: Bootloadable_1_WriteFlashByte\r
+****************************************************************************//**\r
+*\r
+* \brief \r
+*   This API writes to flash the specified data.\r
+*\r
+* \param address \r
+*   The address in flash.\r
+*\r
+* \param inputValue \r
+*   One-byte data.\r
+*\r
+* \return \r
+*   A status of the writing to flash procedure.\r
+*\r
+*******************************************************************************/\r
+static cystatus Bootloadable_1_WriteFlashByte(const uint32 address, const uint8 inputValue) CYLARGE \\r
+                               \r
+{\r
+    cystatus result = CYRET_SUCCESS;\r
+    uint32 flsAddr = address - CYDEV_FLASH_BASE;\r
+    uint8  rowData[CYDEV_FLS_ROW_SIZE];\r
+\r
+    #if !(CY_PSOC4)\r
+        uint8 arrayId = ( uint8 )(flsAddr / CYDEV_FLS_SECTOR_SIZE);\r
+    #endif  /* !(CY_PSOC4) */\r
+\r
+    #if (CY_PSOC4)\r
+        uint16 rowNum = ( uint16 )(flsAddr / CYDEV_FLS_ROW_SIZE);\r
+    #else\r
+        uint16 rowNum = ( uint16 )((flsAddr % CYDEV_FLS_SECTOR_SIZE) / CYDEV_FLS_ROW_SIZE);\r
+    #endif  /* (CY_PSOC4) */\r
+\r
+    uint32 baseAddr = address - (address % CYDEV_FLS_ROW_SIZE);\r
+    uint16 idx;\r
+\r
+    for(idx = 0u; idx < CYDEV_FLS_ROW_SIZE; idx++)\r
+    {\r
+        rowData[idx] = (uint8)Bootloadable_1_GET_CODE_DATA(baseAddr + idx);\r
+    }\r
+\r
+    rowData[address % CYDEV_FLS_ROW_SIZE] = inputValue;\r
+\r
+    #if(CY_PSOC4)\r
+        result = CySysFlashWriteRow((uint32) rowNum, rowData);\r
+    #else\r
+        result = CyWriteRowData(arrayId, rowNum, rowData);\r
+    #endif  /* (CY_PSOC4) */\r
+\r
+    #if(CY_PSOC5)\r
+        /***************************************************************************\r
+        * When writing to flash, data in the instruction cache can become stale.\r
+        * Therefore, the cache data does not correlate to the data just written to\r
+        * flash. A call to CyFlushCache() is required to invalidate the data in the\r
+        * cache and force fresh information to be loaded from flash.\r
+        ***************************************************************************/\r
+        CyFlushCache();\r
+    #endif /* (CY_PSOC5) */\r
+    return (result);\r
+}\r
+#endif /*(CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)*/\r
+/** @} functions_group */\r
 \r
 /*******************************************************************************\r
 * The following code is OBSOLETE and must not be used.\r
@@ -75,14 +258,13 @@ void Bootloadable_1_SetFlashByte(uint32 address, uint8 runType)
 \r
     #if(CY_PSOC5)\r
         /***************************************************************************\r
-        * When writing Flash, data in the instruction cache can become stale.\r
+        * When writing to flash, data in the instruction cache can become obsolete.\r
         * Therefore, the cache data does not correlate to the data just written to\r
-        * Flash. A call to CyFlushCache() is required to invalidate the data in the\r
-        * cache and force fresh information to be loaded from Flash.\r
+        * flash. A call to CyFlushCache() is required to invalidate the data in the\r
+        * cache and force fresh information to be loaded from flash.\r
         ***************************************************************************/\r
         CyFlushCache();\r
     #endif /* (CY_PSOC5) */\r
 }\r
 \r
-\r
 /* [] END OF FILE */\r
old mode 100644 (file)
new mode 100755 (executable)
index 20358af..e06fe4b
@@ -1,13 +1,14 @@
-/*******************************************************************************\r
-* File Name: Bootloadable_1.h\r
-* Version 1.30\r
+/****************************************************************************//**\r
+* \file Bootloadable_1.c\r
+* \version 1.50\r
 *\r
-*  Description:\r
+* \brief\r
 *   Provides an API for the Bootloadable application. The API includes a\r
-*   single function for starting bootloader.\r
+*   single function for starting the Bootloader.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -24,7 +25,7 @@
 /* Check to see if required defines such as CY_PSOC5LP are available */\r
 /* They are defined starting with cy_boot v3.0 */\r
 #if !defined (CY_PSOC5LP)\r
-    #error Component Bootloadable_v1_30 requires cy_boot v3.0 or later\r
+    #error Component Bootloadable_v1_50 requires cy_boot v3.0 or later\r
 #endif /* !defined (CY_PSOC5LP) */\r
 \r
 \r
@@ -41,8 +42,8 @@
 \r
 \r
 /*******************************************************************************\r
-* This variable is used by Bootloader/Bootloadable components to schedule what\r
-* application will be started after software reset.\r
+* This variable is used by the Bootloader/Bootloadable components to schedule which\r
+* application will be started after software reset.\r
 *******************************************************************************/\r
 #if (CY_PSOC4)\r
     #if defined(__ARMCC_VERSION)\r
@@ -57,7 +58,7 @@
 \r
 \r
 /*******************************************************************************\r
-* Get the reason of the device reset\r
+* Gets the reason for a device reset\r
 *******************************************************************************/\r
 #if(CY_PSOC4)\r
     #define Bootloadable_1_RES_CAUSE_RESET_SOFT   (0x10u)\r
@@ -72,7 +73,7 @@
 \r
 \r
 /*******************************************************************************\r
-* Schedule Bootloader/Bootloadable to be run after software reset\r
+* Schedule the Bootloader/Bootloadable to be run after a software reset.\r
 *******************************************************************************/\r
 #if(CY_PSOC4)\r
     #define Bootloadable_1_SET_RUN_TYPE(x)        (cyBtldrRunType = (x))\r
@@ -89,10 +90,41 @@ extern void Bootloadable_1_Load(void) ;
 \r
 \r
 /*******************************************************************************\r
-* The following code is OBSOLETE and must not be used starting from version 1.10\r
+* The following code is OBSOLETE and must not be used starting from version 1.10.\r
 *******************************************************************************/\r
 #define CYBTDLR_SET_RUN_TYPE(x)     Bootloadable_1_SET_RUN_TYPE(x)\r
 \r
+/*******************************************************************************\r
+* Bootloadable's declarations for in-app bootloading.\r
+*******************************************************************************/\r
+#define Bootloadable_1_MD_BTLDB_ACTIVE_0          (0x00u)\r
+\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
+    #define Bootloadable_1_MAX_NUM_OF_BTLDB       (0x02u)\r
+    #define Bootloadable_1_MD_BTLDB_ACTIVE_1      (0x01u)\r
+    #define Bootloadable_1_MD_BTLDB_ACTIVE_NONE   (0x02u)\r
+    #define Bootloadable_1_MD_SIZEOF              (64u)\r
+    #define Bootloadable_1_MD_BASE_ADDR(appId)    (CYDEV_FLASH_BASE + (CYDEV_FLASH_SIZE - ((uint32)(appId) * CYDEV_FLS_ROW_SIZE) - \\r
+                                                                        Bootloadable_1_MD_SIZEOF))\r
+    #define Bootloadable_1_MD_BTLDB_ACTIVE_OFFSET(appId) (Bootloadable_1_MD_BASE_ADDR(appId) + 16u)\r
+    \r
+#else\r
+    #define Bootloadable_1_MAX_NUM_OF_BTLDB       (0x01u)\r
+#endif  /* (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)*/\r
+\r
+/* Mask used to indicate starting application */\r
+#define Bootloadable_1_SCHEDULE_BTLDB             (0x80u)\r
+#define Bootloadable_1_SCHEDULE_BTLDR             (0x40u)\r
+#define Bootloadable_1_SCHEDULE_MASK              (0xC0u)\r
+/*******************************************************************************\r
+* API prototypes\r
+*******************************************************************************/\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)                \r
+    uint8 Bootloadable_1_GetActiveApplication(void) CYSMALL \\r
+          ;\r
+    cystatus Bootloadable_1_SetActiveApplication(uint8 appId) CYSMALL \\r
+             ;\r
+#endif  /* (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)*/\r
 \r
 /*******************************************************************************\r
 * The following code is OBSOLETE and must not be used starting from version 1.20\r
@@ -107,7 +139,7 @@ extern void Bootloadable_1_Load(void) ;
     #define Bootloadable_1_APP_ADDRESS                    uint16\r
     #define Bootloadable_1_GET_CODE_WORD(idx)             (*((uint32 CYCODE *) (idx)))\r
 \r
-    /* Offset by 2 from 32 bit start because only need 16 bits */\r
+    /* Offset by 2 from 32 bit start because only 16 bits are needed */\r
     #define Bootloadable_1_META_APP_ADDR_OFFSET           (3u)\r
     #define Bootloadable_1_META_APP_BL_LAST_ROW_OFFSET    (7u)\r
     #define Bootloadable_1_META_APP_BYTE_LEN_OFFSET       (11u)\r
@@ -136,18 +168,17 @@ extern void Bootloadable_1_Load(void) ;
 #define Bootloadable_1_SetFlashRunType(runType)           \\r
                         Bootloadable_1_SetFlashByte(Bootloadable_1_MD_APP_RUN_ADDR(0), (runType))\r
 \r
-\r
 /*******************************************************************************\r
 * The following code is OBSOLETE and must not be used.\r
 *\r
-* If the obsoleted macro definitions intended for use in the application use the\r
+* If the obsoleted macro definitions are intended for the application, use the\r
 * following scheme, redefine your own versions of these definitions:\r
 *    #ifdef <OBSOLETED_DEFINE>\r
 *        #undef  <OBSOLETED_DEFINE>\r
 *        #define <OBSOLETED_DEFINE>      (<New Value>)\r
 *    #endif\r
 *\r
-* Note: Redefine obsoleted macro definitions with caution. They might still be\r
+* NOTE Redefine obsoleted macro definitions with caution. They might still be\r
 *       used in the application and their modification might lead to unexpected\r
 *       consequences.\r
 *******************************************************************************/\r
index 0668305..a65e927 100755 (executable)
@@ -1,12 +1,12 @@
 /*******************************************************************************\r
 * File Name: CFG_EEPROM.c\r
-* Version 2.10\r
+* Version 3.0\r
 *\r
-* Description:\r
-*  Provides the source code to the API for the EEPROM component.\r
+*  Description:\r
+*   Provides the source code to the API for the EEPROM component.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
+* Copyright 2008-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
 #include "CFG_EEPROM.h"\r
 \r
 \r
-#if (CY_PSOC3 || CY_PSOC5LP)\r
-\r
-    /*******************************************************************************\r
-    * Function Name: CFG_EEPROM_Enable\r
-    ********************************************************************************\r
-    *\r
-    * Summary:\r
-    *  Enable the EEPROM.\r
-    *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    *******************************************************************************/\r
-    void CFG_EEPROM_Enable(void) \r
-    {\r
-        CyEEPROM_Start();\r
-    }\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_Enable\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Enable the EEPROM block. Also reads the temperature and stores it for\r
+*  future writes.\r
+*\r
+* Parameters:\r
+*  None\r
+*\r
+* Return:\r
+*  None\r
+*\r
+*******************************************************************************/\r
+void CFG_EEPROM_Enable(void) \r
+{\r
+    /* Read temperature value */\r
+    (void)CySetTemp();\r
 \r
+    /* Start EEPROM block */\r
+    CyEEPROM_Start();\r
+}\r
 \r
-    /*******************************************************************************\r
-    * Function Name: CFG_EEPROM_Start\r
-    ********************************************************************************\r
-    *\r
-    * Summary:\r
-    *  Starts EEPROM.\r
-    *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    *******************************************************************************/\r
-    void CFG_EEPROM_Start(void) \r
-    {\r
-        /* Enable the EEPROM */\r
-        CFG_EEPROM_Enable();\r
-    }\r
 \r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_Start\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Starts EEPROM.\r
+*\r
+* Parameters:\r
+*  None\r
+*\r
+* Return:\r
+*  None\r
+*\r
+*******************************************************************************/\r
+void CFG_EEPROM_Start(void) \r
+{\r
+    CFG_EEPROM_Enable();\r
+}\r
 \r
-    /*******************************************************************************\r
-    * Function Name: CFG_EEPROM_Stop\r
-    ********************************************************************************\r
-    *\r
-    * Summary:\r
-    *  Stops and powers down EEPROM.\r
-    *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    *******************************************************************************/\r
-    void CFG_EEPROM_Stop (void) \r
-    {\r
-        /* Disable EEPROM */\r
-        CyEEPROM_Stop();\r
-    }\r
 \r
-#endif /* (CY_PSOC3 || CY_PSOC5LP) */\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_Stop\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Stops and powers down EEPROM.\r
+*\r
+* Parameters:\r
+*  None\r
+*\r
+* Return:\r
+*  None\r
+*\r
+*******************************************************************************/\r
+void CFG_EEPROM_Stop (void) \r
+{\r
+    /* Stop and power down EEPROM block */\r
+    CyEEPROM_Stop();\r
+}\r
 \r
 \r
 /*******************************************************************************\r
-* Function Name: CFG_EEPROM_EraseSector\r
+* Function Name: CFG_EEPROM_WriteByte\r
 ********************************************************************************\r
 *\r
 * Summary:\r
-*  Erases a sector of memory. This function blocks until the operation is\r
-*  complete.\r
+*  Writes a byte of data to the EEPROM. This function blocks until\r
+*  the function is complete. For a reliable write procedure to occur you should\r
+*  call CFG_EEPROM_UpdateTemperature() function if the temperature of the\r
+*  silicon has been changed for more than 10C since the component was started.\r
 *\r
 * Parameters:\r
-*  sectorNumber:  Sector number to erase.\r
+*  dataByte:  The byte of data to write to the EEPROM\r
+*  address:   The address of data to be written. The maximum address is dependent\r
+*             on the EEPROM size.\r
 *\r
 * Return:\r
 *  CYRET_SUCCESS, if the operation was successful.\r
-*  CYRET_BAD_PARAM, if the parameter sectorNumber out of range.\r
-*  CYRET_LOCKED, if the spc is being used.\r
+*  CYRET_BAD_PARAM, if the parameter sectorNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
 *  CYRET_UNKNOWN, if there was an SPC error.\r
 *\r
 *******************************************************************************/\r
-cystatus CFG_EEPROM_EraseSector(uint8 sectorNumber\r
+cystatus CFG_EEPROM_WriteByte(uint8 dataByte, uint16 address\r
 {\r
     cystatus status;\r
-\r
-    /* Start the SPC */\r
+    uint16 rowNumber;\r
+    uint16 byteNumber;\r
+    \r
     CySpcStart();\r
 \r
-    if(sectorNumber < (uint8) CY_EEPROM_NUMBER_ARRAYS)\r
+    if (address < CY_EEPROM_SIZE)\r
     {\r
-        /* See if we can get the SPC. */\r
-        if(CySpcLock() == CYRET_SUCCESS)\r
+        rowNumber = address/(uint16)CY_EEPROM_SIZEOF_ROW;\r
+        byteNumber = address - (rowNumber * ((uint16)CY_EEPROM_SIZEOF_ROW));\r
+        if(CYRET_SUCCESS == CySpcLock())\r
         {\r
-            #if(CY_PSOC5A)\r
-\r
+            status = CySpcLoadMultiByte(CY_SPC_FIRST_EE_ARRAYID, byteNumber, &dataByte, \\r
+                                                                    CFG_EEPROM_SPC_BYTE_WRITE_SIZE);\r
+            if (CYRET_STARTED == status)\r
+            {\r
                 /* Plan for failure */\r
                 status = CYRET_UNKNOWN;\r
 \r
-                /* Command to load a row of data */\r
-                if(CySpcLoadRow(CY_SPC_FIRST_EE_ARRAYID, 0, CYDEV_EEPROM_ROW_SIZE) == CYRET_STARTED)\r
+                while(CY_SPC_BUSY)\r
                 {\r
-                    while(CY_SPC_BUSY)\r
-                    {\r
-                        /* Wait until SPC becomes idle */\r
-                    }\r
-\r
-                    /* SPC is idle now */\r
-                    if(CY_SPC_STATUS_SUCCESS == CY_SPC_READ_STATUS)\r
-                    {\r
-                        status = CYRET_SUCCESS;\r
-                    }\r
+                    /* Wait until SPC becomes idle */\r
                 }\r
 \r
-                /* Command to erase a sector */\r
-                if(status == CYRET_SUCCESS)\r
+                if(CY_SPC_STATUS_SUCCESS == CY_SPC_READ_STATUS)\r
                 {\r
-\r
-            #endif /* (CY_PSOC5A) */\r
-\r
-                    if(CySpcEraseSector(CY_SPC_FIRST_EE_ARRAYID, sectorNumber) == CYRET_STARTED)\r
+                    status = CYRET_SUCCESS;\r
+                }\r
+                /* Command to erase and program the row. */\r
+                if(CYRET_SUCCESS == status)\r
+                {\r
+                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0u],\r
+                    dieTemperature[1u]) == CYRET_STARTED)\r
                     {\r
                         /* Plan for failure */\r
                         status = CYRET_UNKNOWN;\r
@@ -157,19 +157,153 @@ cystatus CFG_EEPROM_EraseSector(uint8 sectorNumber)
                     {\r
                         status = CYRET_UNKNOWN;\r
                     }\r
-\r
-            #if(CY_PSOC5A)\r
-\r
                 }\r
                 else\r
                 {\r
                     status = CYRET_UNKNOWN;\r
                 }\r
+            }\r
+            else\r
+            {\r
+                if (CYRET_BAD_PARAM != status)\r
+                {\r
+                    status = CYRET_UNKNOWN;\r
+                }\r
+            }\r
+            CySpcUnlock();\r
+        }\r
+        else\r
+        {\r
+            status = CYRET_LOCKED;\r
+        }\r
+    }\r
+    else\r
+    {\r
+        status = CYRET_BAD_PARAM;\r
+    }\r
+\r
+\r
+    return (status);\r
+}\r
+\r
+\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_ReadByte\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Reads and returns a byte of data from the on-chip EEPROM memory. Although\r
+*  the data is present in the CPU memory space, this function provides an\r
+*  intuitive user interface, addressing the EEPROM memory as a separate block with\r
+*  the first EERPOM byte address equal to 0x0000.\r
+*\r
+* Parameters:\r
+*  address:   The address of data to be read. The maximum address is limited by the\r
+*             size of the EEPROM array on a specific device.\r
+*\r
+* Return:\r
+*  Data located at an address.\r
+*\r
+*******************************************************************************/\r
+uint8 CFG_EEPROM_ReadByte(uint16 address) \r
+{\r
+    uint8 retByte;\r
+    uint8 interruptState;\r
+\r
+    interruptState = CyEnterCriticalSection();\r
+\r
+    /* Request access to EEPROM for reading.\r
+    This is needed to reserve PHUB for read operation from EEPROM */\r
+    CyEEPROM_ReadReserve();\r
+    \r
+    retByte = *((reg8 *) (CYDEV_EE_BASE + address));\r
+\r
+    /* Release EEPROM array */\r
+    CyEEPROM_ReadRelease();\r
+    \r
+    CyExitCriticalSection(interruptState);\r
+\r
+    return (retByte);\r
+}\r
+\r
+\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_UpdateTemperature\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Updates and stores the temperature value. This function should be called\r
+*  before EEPROM writes if the temperature may have been changed by more than\r
+*  10 degrees Celsius.\r
+*\r
+* Parameters:\r
+*  None\r
+*\r
+* Return:\r
+*  Status of operation, 0 if operation complete, non-zero value if error\r
+*  was detected.\r
+*\r
+*******************************************************************************/\r
+uint8 CFG_EEPROM_UpdateTemperature(void) \r
+{\r
+    return ((uint8)CySetTemp());\r
+}\r
+\r
+\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_EraseSector\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Erase an EEPROM sector (64 rows). This function blocks until the erase\r
+*  operation is complete. Using this API helps to erase the EEPROM sector at\r
+*  a time. This is faster than using individual writes but affects a cycle\r
+*  recourse of the whole EEPROM row.\r
+*\r
+* Parameters:\r
+*  sectorNumber:  The sector number to erase.\r
+*\r
+* Return:\r
+*  CYRET_SUCCESS, if the operation was successful.\r
+*  CYRET_BAD_PARAM, if the parameter sectorNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
+*  CYRET_UNKNOWN, if there was an SPC error.\r
+*\r
+*******************************************************************************/\r
+cystatus CFG_EEPROM_EraseSector(uint8 sectorNumber) \r
+{\r
+    cystatus status;\r
+    \r
+    CySpcStart();\r
+\r
+    if(sectorNumber < (uint8) CFG_EEPROM_SECTORS_NUMBER)\r
+    {\r
+        /* See if we can get SPC. */\r
+        if(CySpcLock() == CYRET_SUCCESS)\r
+        {\r
+            if(CySpcEraseSector(CY_SPC_FIRST_EE_ARRAYID, sectorNumber) == CYRET_STARTED)\r
+            {\r
+                /* Plan for failure */\r
+                status = CYRET_UNKNOWN;\r
+\r
+                while(CY_SPC_BUSY)\r
+                {\r
+                    /* Wait until SPC becomes idle */\r
+                }\r
 \r
-            #endif /* (CY_PSOC5A) */\r
+                /* SPC is idle now */\r
+                if(CY_SPC_STATUS_SUCCESS == CY_SPC_READ_STATUS)\r
+                {\r
+                    status = CYRET_SUCCESS;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                status = CYRET_UNKNOWN;\r
+            }\r
 \r
-                /* Unlock the SPC so someone else can use it. */\r
-                CySpcUnlock();\r
+            /* Unlock SPC so that someone else can use it. */\r
+            CySpcUnlock();\r
         }\r
         else\r
         {\r
@@ -190,30 +324,33 @@ cystatus CFG_EEPROM_EraseSector(uint8 sectorNumber)
 ********************************************************************************\r
 *\r
 * Summary:\r
-*  Writes a row, CYDEV_EEPROM_ROW_SIZE of data to the EEPROM. This is\r
-*  a blocking call. It will not return until the function succeeds or fails.\r
+*  Writes a row (16 bytes) of data to the EEPROM. This function blocks until\r
+*  the write operation is complete. Compared to functions that write one byte,\r
+*  this function allows writing a whole row (16 bytes) at a time. For\r
+*  a reliable write procedure to occur you should call the\r
+*  CFG_EEPROM_UpdateTemperature() function if the temperature of the\r
+*  silicon has changed for more than 10C since component was started.\r
 *\r
 * Parameters:\r
-*  rowData:  Address of the data to write to the EEPROM.\r
-*  rowNumber:  EEPROM row number to program.\r
+*  rowData:    The address of the data to write to the EEPROM.\r
+*  rowNumber:  The row number to write.\r
 *\r
 * Return:\r
 *  CYRET_SUCCESS, if the operation was successful.\r
-*  CYRET_BAD_PARAM, if the parameter rowNumber out of range.\r
-*  CYRET_LOCKED, if the spc is being used.\r
+*  CYRET_BAD_PARAM, if the parameter rowNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
 *  CYRET_UNKNOWN, if there was an SPC error.\r
 *\r
 *******************************************************************************/\r
 cystatus CFG_EEPROM_Write(const uint8 * rowData, uint8 rowNumber) \r
 {\r
     cystatus status;\r
-\r
-    /* Start the SPC */\r
+    \r
     CySpcStart();\r
 \r
     if(rowNumber < (uint8) CY_EEPROM_NUMBER_ROWS)\r
     {\r
-        /* See if we can get the SPC. */\r
+        /* See if we can get SPC. */\r
         if(CySpcLock() == CYRET_SUCCESS)\r
         {\r
             /* Plan for failure */\r
@@ -236,8 +373,8 @@ cystatus CFG_EEPROM_Write(const uint8 * rowData, uint8 rowNumber)
                 /* Command to erase and program the row. */\r
                 if(status == CYRET_SUCCESS)\r
                 {\r
-                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0],\r
-                    dieTemperature[1]) == CYRET_STARTED)\r
+                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0u],\r
+                    dieTemperature[1u]) == CYRET_STARTED)\r
                     {\r
                         /* Plan for failure */\r
                         status = CYRET_UNKNOWN;\r
@@ -264,7 +401,7 @@ cystatus CFG_EEPROM_Write(const uint8 * rowData, uint8 rowNumber)
                 }\r
             }\r
 \r
-            /* Unlock the SPC so someone else can use it. */\r
+            /* Unlock SPC so that someone else can use it. */\r
             CySpcUnlock();\r
         }\r
         else\r
@@ -286,31 +423,44 @@ cystatus CFG_EEPROM_Write(const uint8 * rowData, uint8 rowNumber)
 ********************************************************************************\r
 *\r
 * Summary:\r
-*  Starts the SPC write function. This function does not block, it returns\r
-*  once the command has begun the SPC write function. This function must be used\r
-*  in combination with CFG_EEPROM_QueryWrite(). Once this function has\r
-*  been called the SPC will be locked until CFG_EEPROM_QueryWrite()\r
-*  returns CYRET_SUCCESS.\r
+*  Starts a write of a row (16 bytes) of data to the EEPROM.\r
+*  This function does not block. The function returns once the SPC has begun\r
+*  writing the data. This function must be used in combination with\r
+*  CFG_EEPROM_Query(). CFG_EEPROM_Query() must be called\r
+*  until it returns a status other than CYRET_STARTED. That indicates that the\r
+*  write has completed. Until CFG_EEPROM_Query() detects that\r
+*  the write is complete, the SPC is marked as locked to prevent another\r
+*  SPC operation from being performed. For a reliable write procedure to occur\r
+*  you should call CFG_EEPROM_UpdateTemperature() API if the temperature\r
+*  of the silicon has changed for more than 10C since component was started.\r
 *\r
 * Parameters:\r
-*  rowData:  Address of buffer containing a row of data to write to the EEPROM.\r
-*  rowNumber:  EEPROM row number to program.\r
+*  rowData:    The address of the data to write to the EEPROM.\r
+*  rowNumber:  The row number to write.\r
 *\r
 * Return:\r
-*  CYRET_STARTED, if the spc command to write was successfuly started.\r
-*  CYRET_BAD_PARAM, if the parameter rowNumber out of range.\r
-*  CYRET_LOCKED, if the spc is being used.\r
+*  CYRET_STARTED, if the SPC command to write was successfully started.\r
+*  CYRET_BAD_PARAM, if the parameter rowNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
 *  CYRET_UNKNOWN, if there was an SPC error.\r
 *\r
+* Side effects:\r
+*  After calling this API, the device should not be powered down, reset or switched\r
+*  to low power modes until EEPROM operation is complete. \r
+*  Ignoring this recommendation may lead to data corruption or silicon\r
+*  unexpected behavior.\r
+*\r
 *******************************************************************************/\r
 cystatus CFG_EEPROM_StartWrite(const uint8 * rowData, uint8 rowNumber) \\r
 \r
 {\r
     cystatus status;\r
+    \r
+    CySpcStart();\r
 \r
     if(rowNumber < (uint8) CY_EEPROM_NUMBER_ROWS)\r
     {\r
-        /* See if we can get the SPC. */\r
+        /* See if we can get SPC. */\r
         if(CySpcLock() == CYRET_SUCCESS)\r
         {\r
             /* Plan for failure */\r
@@ -333,8 +483,8 @@ cystatus CFG_EEPROM_StartWrite(const uint8 * rowData, uint8 rowNumber) \
                 /* Command to erase and program the row. */\r
                 if(status == CYRET_SUCCESS)\r
                 {\r
-                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0],\r
-                    dieTemperature[1]) == CYRET_STARTED)\r
+                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0u],\r
+                    dieTemperature[1u]) == CYRET_STARTED)\r
                     {\r
                         status = CYRET_STARTED;\r
                     }\r
@@ -364,25 +514,94 @@ cystatus CFG_EEPROM_StartWrite(const uint8 * rowData, uint8 rowNumber) \
 \r
 \r
 /*******************************************************************************\r
-* Function Name: CFG_EEPROM_QueryWrite\r
+* Function Name: CFG_EEPROM_StartErase\r
 ********************************************************************************\r
 *\r
 * Summary:\r
-*  Checks the state of write to EEPROM. This function must be called until\r
-*  the return value is not CYRET_STARTED.\r
+*  Starts the EEPROM sector erase. This function does not block.\r
+*  The function returns once the SPC has begun writing the data. This function\r
+*  must be used in combination with CFG_EEPROM_Query().\r
+*  CFG_EEPROM_Query() must be called until it returns a status\r
+*  other than CYRET_STARTED. That indicates the erase has been completed.\r
+*  Until CFG_EEPROM_Query() detects that the erase is\r
+*  complete, the SPC is marked as locked to prevent another SPC operation\r
+*  from being performed.\r
+*\r
+* Parameters:\r
+*  sectorNumber:  The sector number to erase.\r
+*\r
+* Return:\r
+*  CYRET_STARTED, if the SPC command to erase was successfully started.\r
+*  CYRET_BAD_PARAM, if the parameter sectorNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
+*  CYRET_UNKNOWN, if there was an SPC error.\r
+*\r
+* Side effects:\r
+*  After calling this API, the device should not be powered down, reset or switched\r
+*  to low power modes until EEPROM operation is complete.\r
+*  Ignoring this recommendation may lead to data corruption or silicon\r
+*  unexpected behavior.\r
+*\r
+*******************************************************************************/\r
+cystatus CFG_EEPROM_StartErase(uint8 sectorNumber) \r
+{\r
+    cystatus status;\r
+    \r
+    CySpcStart();\r
+\r
+    if(sectorNumber < (uint8) CY_EEPROM_NUMBER_ARRAYS)\r
+    {\r
+        /* See if we can get SPC. */\r
+        if(CySpcLock() == CYRET_SUCCESS)\r
+        {\r
+            /* Plan for failure */\r
+            status = CYRET_UNKNOWN;\r
+\r
+            /* Command to load a row of data */\r
+            if(CySpcEraseSector(CY_SPC_FIRST_EE_ARRAYID, sectorNumber) == CYRET_STARTED)\r
+            {\r
+                status = CYRET_SUCCESS;\r
+            }\r
+        }\r
+        else\r
+        {\r
+            status = CYRET_LOCKED;\r
+        }\r
+    }\r
+    else\r
+    {\r
+        status = CYRET_BAD_PARAM;\r
+    }\r
+\r
+    return(status);\r
+}\r
+\r
+\r
+/*******************************************************************************\r
+* Function Name: CFG_EEPROM_Query\r
+********************************************************************************\r
+*\r
+* Summary:\r
+*  Checks the status of an earlier call to CFG_EEPROM_StartWrite() or\r
+*  CFG_EEPROM_StartErase().\r
+*  This function must be called until it returns a value other than\r
+*  CYRET_STARTED. Once that occurs, the write or erase has been completed and\r
+*  the SPC is unlocked.\r
 *\r
 * Parameters:\r
 *  None\r
 *\r
 * Return:\r
-*  CYRET_STARTED, if the spc command is still processing.\r
-*  CYRET_SUCCESS, if the operation was successful.\r
+*  CYRET_STARTED, if the SPC command is still processing.\r
+*  CYRET_SUCCESS, if the operation was completed successfully.\r
 *  CYRET_UNKNOWN, if there was an SPC error.\r
 *\r
 *******************************************************************************/\r
-cystatus CFG_EEPROM_QueryWrite(void) \r
+cystatus CFG_EEPROM_Query(void) \r
 {\r
     cystatus status;\r
+    \r
+    CySpcStart();\r
 \r
     /* Check if SPC is idle */\r
     if(CY_SPC_IDLE)\r
@@ -397,7 +616,7 @@ cystatus CFG_EEPROM_QueryWrite(void)
             status = CYRET_UNKNOWN;\r
         }\r
 \r
-        /* Unlock the SPC so someone else can use it. */\r
+        /* Unlock SPC so that someone else can use it. */\r
         CySpcUnlock();\r
     }\r
     else\r
@@ -410,42 +629,42 @@ cystatus CFG_EEPROM_QueryWrite(void)
 \r
 \r
 /*******************************************************************************\r
-* Function Name: CFG_EEPROM_ByteWrite\r
+* Function Name: CFG_EEPROM_ByteWritePos\r
 ********************************************************************************\r
 *\r
 * Summary:\r
 *  Writes a byte of data to the EEPROM. This is a blocking call. It will not\r
-*  return until the function succeeds or fails.\r
+*  return until the write operation succeeds or fails.\r
 *\r
 * Parameters:\r
-*  dataByte:  Byte of data to write to the EEPROM.\r
-*  rowNumber:  EEPROM row number to program.\r
-*  byteNumber:  Byte number within the row to program.\r
+*  dataByte:   The byte of data to write to the EEPROM.\r
+*  rowNumber:  The EEPROM row number to program.\r
+*  byteNumber: The byte number within the row to program.\r
 *\r
 * Return:\r
 *  CYRET_SUCCESS, if the operation was successful.\r
-*  CYRET_BAD_PARAM, if the parameter rowNumber or byteNumber out of range.\r
-*  CYRET_LOCKED, if the spc is being used.\r
+*  CYRET_BAD_PARAM, if the parameter rowNumber or byteNumber is out of range.\r
+*  CYRET_LOCKED, if the SPC is being used.\r
 *  CYRET_UNKNOWN, if there was an SPC error.\r
 *\r
 *******************************************************************************/\r
-cystatus CFG_EEPROM_ByteWrite(uint8 dataByte, uint8 rowNumber, uint8 byteNumber) \\r
+cystatus CFG_EEPROM_ByteWritePos(uint8 dataByte, uint8 rowNumber, uint8 byteNumber) \\r
 \r
 {\r
     cystatus status;\r
 \r
-    /* Start the SPC */\r
+    /* Start SPC */\r
     CySpcStart();\r
 \r
     if((rowNumber < (uint8) CY_EEPROM_NUMBER_ROWS) && (byteNumber < (uint8) SIZEOF_EEPROM_ROW))\r
     {\r
-        /* See if we can get the SPC. */\r
+        /* See if we can get SPC. */\r
         if(CySpcLock() == CYRET_SUCCESS)\r
         {\r
             /* Plan for failure */\r
             status = CYRET_UNKNOWN;\r
 \r
-            /* Command to load byte of data */\r
+            /* Command to load byte of data */\r
             if(CySpcLoadMultiByte(CY_SPC_FIRST_EE_ARRAYID, (uint16)byteNumber, &dataByte,\\r
                                                                 CFG_EEPROM_SPC_BYTE_WRITE_SIZE) == CYRET_STARTED)\r
             {\r
@@ -463,8 +682,8 @@ cystatus CFG_EEPROM_ByteWrite(uint8 dataByte, uint8 rowNumber, uint8 byteNumber)
                 /* Command to erase and program the row. */\r
                 if(status == CYRET_SUCCESS)\r
                 {\r
-                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0],\r
-                    dieTemperature[1]) == CYRET_STARTED)\r
+                    if(CySpcWriteRow(CY_SPC_FIRST_EE_ARRAYID, (uint16)rowNumber, dieTemperature[0u],\r
+                    dieTemperature[1u]) == CYRET_STARTED)\r
                     {\r
                         /* Plan for failure */\r
                         status = CYRET_UNKNOWN;\r
@@ -491,7 +710,7 @@ cystatus CFG_EEPROM_ByteWrite(uint8 dataByte, uint8 rowNumber, uint8 byteNumber)
                 }\r
             }\r
 \r
-            /* Unlock the SPC so someone else can use it. */\r
+            /* Unlock SPC so that someone else can use it. */\r
             CySpcUnlock();\r
         }\r
         else\r
index e6a5f0f..ad62aa2 100755 (executable)
@@ -1,14 +1,14 @@
 /*******************************************************************************\r
 * File Name: CFG_EEPROM.h\r
-* Version 2.10\r
+* Version 3.0\r
 *\r
-* Description:\r
-*  Provides the function definitions for the EEPROM APIs.\r
+*  Description:\r
+*   Provides the function definitions for the EEPROM APIs.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2012, Cypress Semiconductor Corporation.  All rights reserved.\r
-* You may use this file only in accordance with the license, terms, conditions, \r
-* disclaimers, and limitations in the end user license agreement accompanying \r
+* Copyright 2008-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
+* You may use this file only in accordance with the license, terms, conditions,\r
+* disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
 *******************************************************************************/\r
 \r
@@ -19,7 +19,7 @@
 #include "CyFlash.h"\r
 \r
 #if !defined(CY_PSOC5LP)\r
-    #error Component EEPROM_v2_10 requires cy_boot v3.0 or later\r
+    #error Component EEPROM_v3_0 requires cy_boot v3.0 or later\r
 #endif /* (CY_PSOC5LP) */\r
 \r
 \r
 *        Function Prototypes\r
 ***************************************/\r
 \r
-#if (CY_PSOC3 || CY_PSOC5LP) \r
-    void CFG_EEPROM_Enable(void) ;\r
-    void CFG_EEPROM_Start(void); \r
-    void CFG_EEPROM_Stop(void) ;\r
-#endif /* (CY_PSOC3 || CY_PSOC5LP) */\r
-\r
+void CFG_EEPROM_Enable(void) ;\r
+void CFG_EEPROM_Start(void) ;\r
+void CFG_EEPROM_Stop (void) ;\r
+cystatus CFG_EEPROM_WriteByte(uint8 dataByte, uint16 address) \\r
+                                            ;\r
+uint8 CFG_EEPROM_ReadByte(uint16 address) ;\r
+uint8 CFG_EEPROM_UpdateTemperature(void) ;\r
 cystatus CFG_EEPROM_EraseSector(uint8 sectorNumber) ;\r
 cystatus CFG_EEPROM_Write(const uint8 * rowData, uint8 rowNumber) ;\r
 cystatus CFG_EEPROM_StartWrite(const uint8 * rowData, uint8 rowNumber) \\r
-            ;\r
-cystatus CFG_EEPROM_QueryWrite(void) ;\r
-cystatus CFG_EEPROM_ByteWrite(uint8 dataByte, uint8 rowNumber, uint8 byteNumber) \\r
-            ;\r
+                                                ;\r
+cystatus CFG_EEPROM_StartErase(uint8 sectorNumber) ;\r
+cystatus CFG_EEPROM_Query(void) ;\r
+cystatus CFG_EEPROM_ByteWritePos(uint8 dataByte, uint8 rowNumber, uint8 byteNumber) \\r
+                                                ;\r
 \r
 \r
 /****************************************\r
 *           API Constants\r
 ****************************************/\r
 \r
-#define CFG_EEPROM_EEPROM_SIZE                 CYDEV_EE_SIZE\r
+#define CFG_EEPROM_EEPROM_SIZE            CYDEV_EE_SIZE\r
 #define CFG_EEPROM_SPC_BYTE_WRITE_SIZE    (0x01u)\r
 \r
+#define CFG_EEPROM_SECTORS_NUMBER         (CYDEV_EE_SIZE / CYDEV_EEPROM_SECTOR_SIZE)\r
 \r
-/*******************************************************************************\r
-* Following code are OBSOLETE and must not be used starting from EEPROM 2.10\r
-*******************************************************************************/\r
-#define SPC_BYTE_WRITE_SIZE             (CFG_EEPROM_SPC_BYTE_WRITE_SIZE)\r
+#define CFG_EEPROM_AHB_REQ_SHIFT          (0x00u)\r
+#define CFG_EEPROM_AHB_REQ                ((uint8)(0x01u << CFG_EEPROM_AHB_REQ_SHIFT))\r
+#define CFG_EEPROM_AHB_ACK_SHIFT          (0x01u)\r
+#define CFG_EEPROM_AHB_ACK_MASK           ((uint8)(0x01u << CFG_EEPROM_AHB_ACK_SHIFT))\r
+\r
+\r
+/***************************************\r
+* Registers\r
+***************************************/\r
+#define CFG_EEPROM_SPC_EE_SCR_REG                 (*(reg8 *) CYREG_SPC_EE_SCR)\r
+#define CFG_EEPROM_SPC_EE_SCR_PTR                 ( (reg8 *) CYREG_SPC_EE_SCR)\r
+\r
+\r
+\r
+/***************************************\r
+* The following code is DEPRECATED and\r
+* should not be used in new projects.\r
+***************************************/\r
+#define CFG_EEPROM_ByteWrite                  CFG_EEPROM_ByteWritePos\r
+#define CFG_EEPROM_QueryWrite                 CFG_EEPROM_Query\r
 \r
 #endif /* CY_EEPROM_CFG_EEPROM_H */\r
 \r
old mode 100644 (file)
new mode 100755 (executable)
index 239de62..c83f309
@@ -20,6 +20,7 @@ define symbol CY_APPL_LOADER    = 0;
 define symbol CY_APPL_NUM       = 1;\r
 define symbol CY_APPL_MAX       = 1;\r
 define symbol CY_METADATA_SIZE  = 64;\r
+define symbol CY_CHECKSUM_EXCLUDE_SIZE = 0;\r
 define symbol CY_EE_IN_BTLDR    = 0x00;\r
 define symbol CY_EE_SIZE        = 2048;\r
 include "cybootloader.icf";\r
@@ -28,7 +29,7 @@ if (!CY_APPL_LOADABLE) {
 }\r
 \r
 define symbol CY_FLASH_SIZE     = 131072;\r
-define symbol CY_APPL_ORIGIN    = 0; \r
+define symbol CY_APPL_ORIGIN    = 0;\r
 define symbol CY_FLASH_ROW_SIZE = 256;\r
 define symbol CY_ECC_ROW_SIZE   = 32;\r
 \r
@@ -46,7 +47,7 @@ define block LOADER     { readonly section .cybootloader };
 }\r
 define block APPL       with fixed order {readonly section .romvectors, readonly};\r
 \r
-/* The address of Flash row next after Bootloader image */\r
+/* The address of the Flash row next after the Bootloader image */\r
 define symbol CY_BTLDR_END      = CYDEV_BTLDR_SIZE +\r
                                     ((CYDEV_BTLDR_SIZE % CY_FLASH_ROW_SIZE) ?\r
                                     (CY_FLASH_ROW_SIZE - (CYDEV_BTLDR_SIZE % CY_FLASH_ROW_SIZE)) : 0);\r
@@ -97,21 +98,57 @@ if (CY_APPL_LOADABLE)
 "readwrite"        : place in RAM_region          { readwrite };\r
 "HSTACK"           : place at end of RAM_region   { block HSTACK};\r
 \r
-keep {  section .cybootloader, \r
-        section .cyloadermeta, \r
+keep {  section .cybootloader,\r
+        section .cyloadermeta,\r
         section .cyloadablemeta,\r
-        section .cyconfigecc, \r
-        section .cycustnvl, \r
+        section .cyconfigecc,\r
+       section .cy_checksum_exclude,\r
+        section .cycustnvl,\r
         section .cywolatch,\r
-        section .cyeeprom, \r
+        section .cyeeprom,\r
         section .cyflashprotect,\r
         section .cymeta };\r
 \r
-".cyloadermeta"   : place at address mem : (CY_APPL_LOADER ? (CY_FLASH_SIZE - CY_METADATA_SIZE) : 0xF0000000) { readonly section .cyloadermeta };\r
+".cyloadermeta"   : place at address mem : ((CY_APPL_LOADER && !CY_APPL_LOADABLE) ? (CY_FLASH_SIZE - CY_METADATA_SIZE) : 0xF0000000) { readonly section .cyloadermeta };\r
 if (CY_APPL_LOADABLE)\r
 {\r
-".cyloadablemeta" : place at address mem : (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 1) - CY_METADATA_SIZE) { readonly section .cyloadablemeta };\r
+".cyloadablemeta"      : place at address mem : (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 1) - CY_METADATA_SIZE) { readonly section .cyloadablemeta };\r
 }\r
+\r
+\r
+/*******************************************************************************\r
+* Checksum Exclude Section. See cm0gcc.ld on placement details.\r
+*******************************************************************************/\r
+if (CY_APPL_LOADABLE)\r
+{\r
+    /* Align size to the flash row size */\r
+    define symbol CY_CHECKSUM_EXCLUDE_SIZE_ALIGNED = CY_CHECKSUM_EXCLUDE_SIZE + ((CY_CHECKSUM_EXCLUDE_SIZE % CY_FLASH_ROW_SIZE) ? (CY_FLASH_ROW_SIZE - (CY_CHECKSUM_EXCLUDE_SIZE % CY_FLASH_ROW_SIZE)) : 0);\r
+\r
+    if (CY_CHECKSUM_EXCLUDE_SIZE != 0)\r
+    {\r
+\r
+        /* General case */\r
+        if ((CY_APPL_NUM == 1) && (CY_APPL_MAX == 2))\r
+        {\r
+            define symbol CY_CHECKSUM_EXCLUDE_START =   CY_APPL2_START - CY_CHECKSUM_EXCLUDE_SIZE_ALIGNED;\r
+        }\r
+        else\r
+        {\r
+            define symbol CY_CHECKSUM_EXCLUDE_START =   (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * CY_APPL_MAX) - CY_CHECKSUM_EXCLUDE_SIZE_ALIGNED;\r
+        }\r
+\r
+    define symbol CY_CHECKSUM_EXCLUDE_START_ALIGNED   = CY_CHECKSUM_EXCLUDE_START + ((CY_CHECKSUM_EXCLUDE_START % CY_FLASH_ROW_SIZE) ? (CY_FLASH_ROW_SIZE - (CY_CHECKSUM_EXCLUDE_START % CY_FLASH_ROW_SIZE)) : 0);\r
+\r
+    ".cy_checksum_exclude" : place at address mem : (CY_CHECKSUM_EXCLUDE_START_ALIGNED) { readonly section .cy_checksum_exclude };\r
+\r
+    } /* (CY_CHECKSUM_EXCLUDE_SIZE_ALIGNED != 0) */\r
+}\r
+else\r
+{\r
+    ".cy_checksum_exclude" : place in ROM_region { readonly section .cy_checksum_exclude };\r
+}\r
+\r
+\r
 ".cyconfigecc"    : place at address mem : (0x80000000 + CY_ECC_OFFSET) { readonly section .cyconfigecc };\r
 ".cycustnvl"      : place at address mem : 0x90000000 { readonly section .cycustnvl };\r
 ".cywolatch"      : place at address mem : 0x90100000 { readonly section .cywolatch };\r
old mode 100644 (file)
new mode 100755 (executable)
index 0c25bb2..2f84d01
@@ -1,31 +1,24 @@
 #! armcc -E\r
-; The first line specifies a preprocessor command that the linker invokes \r
+; The first line specifies a preprocessor command that the linker invokes\r
 ; to pass a scatter file through a C preprocessor.\r
 \r
 ;********************************************************************************\r
-;* File Name: Cm3RealView.scat\r
-;* Version 4.20\r
+;* \file Cm3RealView.scat\r
+;* \version 5.50\r
 ;*\r
-;*  Description:\r
-;*  This Linker Descriptor file describes the memory layout of the PSoC5\r
-;*  device. The memory layout of the final binary and hex images as well as\r
-;*  the placement in PSoC5 memory is described.\r
-;*\r
-;*\r
-;*  Note:\r
+;* \brief\r
+;* This Linker Descriptor file describes the memory layout of the PSoC5\r
+;* device. The memory layout of the final binary and hex images as well as\r
+;* the placement in PSoC5 memory is described.\r
 ;*\r
 ;*  romvectors: Cypress default Interrupt service routine vector table.\r
-;*\r
 ;*      This is the ISR vector table at bootup. Used only for the reset vector.\r
 ;*\r
-;*\r
 ;*  ramvectors: Cypress ram interrupt service routine vector table.\r
-;*\r
 ;*      This is the ISR vector table used by the application.\r
 ;*\r
-;*\r
 ;********************************************************************************\r
-;* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+;* Copyright 2008-2016, Cypress Semiconductor Corporation.  All rights reserved.\r
 ;* You may use this file only in accordance with the license, terms, conditions,\r
 ;* disclaimers, and limitations in the end user license agreement accompanying\r
 ;* the software package with which this file was provided.\r
 #define CY_EE_SIZE          2048\r
 #define CY_METADATA_SIZE    64\r
 \r
+#define CY_CHECKSUM_EXCLUDE_SIZE        AlignExpr(0, CY_FLASH_ROW_SIZE)\r
+#define CY_APPL_NUM                     1\r
+#define CY_APPL_MAX                     1\r
+\r
 \r
 ; Define application base address\r
-#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
-    #define CY_APPL_NUM     1\r
-    #define CY_APPL_MAX     1\r
-    #define CY_EE_IN_BTLDR  0\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE || \\r
+     CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
+\r
+     #define CY_EE_IN_BTLDR  0\r
 \r
     #if CY_APPL_ORIGIN\r
         #define APPL1_START     CY_APPL_ORIGIN\r
@@ -68,7 +65,8 @@
 \r
 \r
 ; Place Bootloader at the beginning of Flash\r
-#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE || \\r
+     CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
 \r
     CYBOOTLOADER 0\r
     {\r
@@ -79,7 +77,7 @@
     }\r
 \r
     #if CY_APPL_ORIGIN\r
-        ScatterAssert(APPL_START > LoadLimit(CYBOOTLOADER))\r
+        ScatterAssert(APPL_START >= LoadLimit(CYBOOTLOADER))\r
     #endif\r
 \r
 #endif\r
@@ -122,26 +120,62 @@ APPLICATION APPL_START (CY_FLASH_SIZE - APPL_START)
 }\r
 \r
 \r
-#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_BOOTLOADER || CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_MULTIAPPBOOTLOADER)\r
+/*******************************************************************************\r
+* Bootloader Metadata Section. See cm0gcc.ld on placement details.\r
+*******************************************************************************/\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_BOOTLOADER || \\r
+     CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_MULTIAPPBOOTLOADER || \\r
+     CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LAUNCHER)\r
 \r
     CYLOADERMETA (CY_FLASH_SIZE - CY_METADATA_SIZE)\r
     {\r
         .cyloadermeta +0 { * (.cyloadermeta) }\r
     }\r
 \r
-#else\r
+#endif\r
+\r
+\r
+/*******************************************************************************\r
+* Bootloadable Metadata Section. See cm0gcc.ld on placement details.\r
+*******************************************************************************/\r
+#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE || \\r
+     CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
 \r
-    #if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
+    CYLOADABLEMETA (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 1) - CY_METADATA_SIZE)\r
+    {\r
+        .cyloadablemeta +0 { * (.cyloadablemeta) }\r
+    }\r
+\r
+#endif\r
+\r
+\r
+/*******************************************************************************\r
+* Checksum Exclude Section. See cm0gcc.ld on placement details.\r
+*******************************************************************************/\r
+#if ((CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE) || (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER))\r
 \r
-        CYLOADABLEMETA (CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 1) - CY_METADATA_SIZE)\r
+    #if (0 != 0)\r
+\r
+        #if ((CY_APPL_NUM == 1) && (CY_APPL_MAX == 2))\r
+            #define CY_CHECKSUM_APPL2_START             (APPL1_START + AlignExpr(((CY_FLASH_SIZE - APPL1_START - 2 * CY_FLASH_ROW_SIZE) / 2 ), CY_FLASH_ROW_SIZE))\r
+            #define CY_CHECKSUM_EXCLUDE_START           AlignExpr(CY_CHECKSUM_APPL2_START - CY_CHECKSUM_EXCLUDE_SIZE, CY_FLASH_ROW_SIZE)\r
+        #else\r
+            #define CY_CHECKSUM_EXCLUDE_START           AlignExpr((CY_FLASH_SIZE - CY_FLASH_ROW_SIZE * CY_APPL_MAX) - CY_CHECKSUM_EXCLUDE_SIZE, CY_FLASH_ROW_SIZE)\r
+        #endif\r
+\r
+        CY_CHECKSUM_EXCLUDE (CY_CHECKSUM_EXCLUDE_START)\r
         {\r
-            .cyloadablemeta +0 { * (.cyloadablemeta) }\r
+            .cy_checksum_exclude +0\r
+            {\r
+                * (.cy_checksum_exclude)\r
+            }\r
         }\r
-    \r
-    #endif\r
+\r
+    #endif /* (0 != 0) */\r
 \r
 #endif\r
 \r
+\r
 #if (CYDEV_ECC_ENABLE == 0)\r
 \r
     CYCONFIGECC (0x80000000 + ECC_OFFSET)\r
@@ -180,7 +214,11 @@ CYMETA 0x90500000
     .cymeta +0 { * (.cymeta) }\r
 }\r
 \r
-#if (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE)\r
+\r
+/*******************************************************************************\r
+* Bootloader Metadata Section. Must be part of the image, but beyond rom memory.\r
+*******************************************************************************/\r
+#if ((CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLE) || (CYDEV_PROJ_TYPE == CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER))\r
 \r
     CYLOADERMETA +0\r
     {\r
old mode 100644 (file)
new mode 100755 (executable)
index dd1cc0b..d91b39a
@@ -1,12 +1,13 @@
-/*******************************************************************************\r
-* File Name: Cm3Start.c\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file Cm3Start.c\r
+* \version 5.50\r
 *\r
-*  Description:\r
+*  \brief\r
 *  Startup code for the ARM CM3.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation. All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation. All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -20,6 +21,7 @@
 #include "CyDmac.h"\r
 #include "cyfitter.h"\r
 \r
+\r
 #define CY_NUM_INTERRUPTS           (32u)\r
 #define CY_NUM_VECTORS              (CYINT_IRQ_BASE + CY_NUM_INTERRUPTS)\r
 #define CY_NUM_ROM_VECTORS          (4u)\r
 #define CY_NVIC_APINT_VECTKEY       (0x05FA0000u)  /* This key is required in order to write the NVIC_APINT register */\r
 #define CY_NVIC_CFG_STACKALIGN      (0x00000200u)  /* This specifies that the exception stack must be 8 byte aligned */\r
 \r
-\r
-/* Extern functions */\r
-extern void CyBtldr_CheckLaunch(void);\r
-\r
-/* Function prototypes */\r
-void initialize_psoc(void);\r
-CY_ISR(IntDefaultHandler);\r
-void Reset(void);\r
-CY_ISR(IntDefaultHandler);\r
-\r
 #if defined(__ARMCC_VERSION)\r
     #define INITIAL_STACK_POINTER ((cyisraddress)(uint32)&Image$$ARM_LIB_STACK$$ZI$$Limit)\r
 #elif defined (__GNUC__)\r
@@ -58,6 +50,14 @@ CY_ISR(IntDefaultHandler);
     extern int  end;\r
 #endif  /* defined(__GNUC__) */\r
 \r
+/* Extern functions */\r
+extern void CyBtldr_CheckLaunch(void);\r
+\r
+/* Function prototypes */\r
+void initialize_psoc(void);\r
+CY_ISR(IntDefaultHandler);\r
+void Reset(void);\r
+\r
 /* Global variables */\r
 #if !defined (__ICCARM__)\r
     CY_NOINIT static uint32 cySysNoInitDataValid;\r
@@ -79,32 +79,48 @@ cyisraddress CyRamVectors[CY_NUM_VECTORS];
 \r
 /*******************************************************************************\r
 * Function Name: IntDefaultHandler\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function is called for all interrupts, other than a reset that gets\r
 *  called before the system is setup.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 * Theory:\r
 *  Any value other than zero is acceptable.\r
 *\r
 *******************************************************************************/\r
 CY_ISR(IntDefaultHandler)\r
 {\r
+    /***************************************************************************\r
+    * We must not get here. If we do, a serious problem occurs, so go into\r
+    * an infinite loop.\r
+    ***************************************************************************/\r
 \r
-    while(1)\r
-    {\r
-        /***********************************************************************\r
-        * We must not get here. If we do, a serious problem occurs, so go\r
-        * into an infinite loop.\r
-        ***********************************************************************/\r
-    }\r
+    #if defined(__GNUC__)\r
+        if (errno == ENOMEM)\r
+        {\r
+            #ifdef CY_BOOT_INT_DEFAULT_HANDLER_ENOMEM_EXCEPTION_CALLBACK\r
+                CyBoot_IntDefaultHandler_Enomem_Exception_Callback();\r
+            #endif /* CY_BOOT_INT_DEFAULT_HANDLER_ENOMEM_EXCEPTION_CALLBACK */\r
+            \r
+            while(1)\r
+            {\r
+                /* Out Of Heap Space\r
+                 * This can be increased in the System tab of the Design Wide Resources.\r
+                 */\r
+            }\r
+        }\r
+        else\r
+    #endif\r
+        {\r
+            #ifdef CY_BOOT_INT_DEFAULT_HANDLER_EXCEPTION_ENTRY_CALLBACK\r
+                CyBoot_IntDefaultHandler_Exception_EntryCallback();\r
+            #endif /* CY_BOOT_INT_DEFAULT_HANDLER_EXCEPTION_ENTRY_CALLBACK */\r
+\r
+            while(1)\r
+            {\r
+\r
+            }\r
+        }\r
 }\r
 \r
 \r
@@ -125,22 +141,15 @@ extern int __main(void);
 \r
 /*******************************************************************************\r
 * Function Name: Reset\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function handles the reset interrupt for the RVDS/MDK toolchains.\r
 *  This is the first bit of code that is executed at startup.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void Reset(void)\r
 {\r
-    #if(CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE)\r
+    #if(CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
 \r
         /* For PSoC 5LP, debugging is enabled by default */\r
         #if(CYDEV_DEBUGGING_ENABLE == 0)\r
@@ -152,11 +161,11 @@ void Reset(void)
         */\r
         *(reg32 *)(CYREG_PHUB_CFGMEM23_CFG1) = *(reg32 *)(CYREG_RESET_SR0);\r
 \r
-    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE) */\r
+    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER) */\r
 \r
-    #if(CYDEV_BOOTLOADER_ENABLE)\r
+    #if ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER))\r
         CyBtldr_CheckLaunch();\r
-    #endif /* (CYDEV_BOOTLOADER_ENABLE) */\r
+    #endif /* ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)) */\r
 \r
     __main();\r
 }\r
@@ -164,17 +173,10 @@ void Reset(void)
 \r
 /*******************************************************************************\r
 * Function Name: $Sub$$main\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function is called immediately before the users main\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void $Sub$$main(void)\r
 {\r
@@ -224,27 +226,19 @@ extern const char __cy_region_num __attribute__((weak));
 \r
 /*******************************************************************************\r
 * Function Name: _exit\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Exit a program without cleaning up files. If your system doesn't provide\r
 *  this, it is best to avoid linking with subroutines that require it (exit,\r
 *  system).\r
 *\r
-* Parameters:\r
-*  status: Status caused program exit.\r
-*\r
-* Return:\r
-*  None\r
+*  \param status: Status caused program exit.\r
 *\r
 *******************************************************************************/\r
 __attribute__((weak))\r
 void _exit(int status)\r
 {\r
-    /* Cause divide by 0 exception */\r
-    int x = status / (int) INT_MAX;\r
-    x = 4 / x;\r
-\r
+    CyHalt((uint8) status);\r
     while(1)\r
     {\r
 \r
@@ -254,22 +248,17 @@ void _exit(int status)
 \r
 /*******************************************************************************\r
 * Function Name: _sbrk\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Increase program data space. As malloc and related functions depend on this,\r
 *  it is useful to have a working implementation. The following suffices for a\r
 *  standalone system; it exploits the symbol end automatically defined by the\r
 *  GNU linker.\r
 *\r
-* Parameters:\r
-*  nbytes: The number of bytes requested (if the parameter value is positive)\r
+*  \param nbytes: The number of bytes requested (if the parameter value is positive)\r
 *  from the heap or returned back to the heap (if the parameter value is\r
 *  negative).\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 __attribute__((weak))\r
 void * _sbrk (int nbytes)\r
@@ -297,22 +286,15 @@ void * _sbrk (int nbytes)
 \r
 /*******************************************************************************\r
 * Function Name: Reset\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function handles the reset interrupt for the GCC toolchain. This is the\r
 *  first bit of code that is executed at startup.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void Reset(void)\r
 {\r
-    #if(CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE)\r
+    #if(CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
 \r
         /* For PSoC 5LP, debugging is enabled by default */\r
         #if(CYDEV_DEBUGGING_ENABLE == 0)\r
@@ -324,11 +306,11 @@ void Reset(void)
         */\r
         *(reg32 *)(CYREG_PHUB_CFGMEM23_CFG1) = *(reg32 *)(CYREG_RESET_SR0);\r
 \r
-    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE) */\r
+    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER) */\r
 \r
-    #if(CYDEV_BOOTLOADER_ENABLE)\r
+    #if ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER))\r
         CyBtldr_CheckLaunch();\r
-    #endif /* (CYDEV_BOOTLOADER_ENABLE) */\r
+    #endif /* ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)) */\r
 \r
     Start_c();\r
 }\r
@@ -336,19 +318,12 @@ void Reset(void)
 \r
 /*******************************************************************************\r
 * Function Name: Start_c\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function handles initializing the .data and .bss sections in\r
 *  preparation for running the standard C code.  Once initialization is complete\r
 *  it will call main(). This function will never return.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void Start_c(void)  __attribute__ ((noreturn));\r
 void Start_c(void)\r
@@ -395,17 +370,13 @@ void Start_c(void)
 \r
 /*******************************************************************************\r
 * Function Name: __low_level_init\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function performs early initializations for the IAR Embedded\r
 *  Workbench IDE. It is executed in the context of a reset interrupt handler\r
 *  before the data sections are initialized.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  The value that determines whether or not data sections should be initialized\r
 *  by the system startup code:\r
 *    0 - skip data sections initialization;\r
@@ -414,7 +385,7 @@ void Start_c(void)
 *******************************************************************************/\r
 int __low_level_init(void)\r
 {\r
-    #if(CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE)\r
+    #if (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)\r
 \r
         /* For PSoC 5LP, debugging is enabled by default */\r
         #if(CYDEV_DEBUGGING_ENABLE == 0)\r
@@ -426,11 +397,11 @@ int __low_level_init(void)
         */\r
         *(reg32 *)(CYREG_PHUB_CFGMEM23_CFG1) = *(reg32 *)(CYREG_RESET_SR0);\r
 \r
-    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE) */\r
+    #endif  /* (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLE && CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER) */\r
 \r
-    #if (CYDEV_BOOTLOADER_ENABLE)\r
+    #if ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER))\r
         CyBtldr_CheckLaunch();\r
-    #endif /* CYDEV_BOOTLOADER_ENABLE */\r
+    #endif /* ((CYDEV_BOOTLOADER_ENABLE) && (CYDEV_PROJ_TYPE != CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER)) */\r
 \r
     /* Initialize data sections */\r
     __iar_data_init3();\r
@@ -478,17 +449,10 @@ int __low_level_init(void)
 \r
 /*******************************************************************************\r
 * Function Name: initialize_psoc\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This function used to initialize the PSoC chip before calling main.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 #if (defined(__GNUC__) && !defined(__ARMCC_VERSION))\r
 __attribute__ ((constructor(101)))\r
old mode 100644 (file)
new mode 100755 (executable)
index e8c87a4..4f5f85c
@@ -1,12 +1,13 @@
-/*******************************************************************************\r
-* File Name: CyBootAsmGnu.s\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file CyBootAsmGnu.s\r
+* \version 5.50\r
 *\r
-*  Description:\r
+*  \brief\r
 *   Assembly routines for GNU as.\r
 *\r
 ********************************************************************************\r
-* Copyright 2010-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2010-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
 \r
 /*******************************************************************************\r
 * Function Name: CyDelayCycles\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Delays for the specified number of cycles.\r
 *\r
-* Parameters:\r
-*  uint32 cycles: number of cycles to delay.\r
-*\r
-* Return:\r
-*  None\r
+*  \param uint32 cycles: number of cycles to delay.\r
 *\r
 *******************************************************************************/\r
 /* void CyDelayCycles(uint32 cycles) */\r
@@ -107,9 +103,8 @@ cy_flash_cycles:
 \r
 /*******************************************************************************\r
 * Function Name: CyEnterCriticalSection\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  CyEnterCriticalSection disables interrupts and returns a value indicating\r
 *  whether interrupts were previously enabled (the actual value depends on\r
 *  whether the device is PSoC 3 or PSoC 5).\r
@@ -120,10 +115,7 @@ cy_flash_cycles:
 *  corrupting processor state, it must be the policy that all interrupt routines\r
 *  restore the interrupt enable bits as they were found on entry.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  uint8\r
 *   Returns 0 if interrupts were previously enabled or 1 if interrupts\r
 *   were previously disabled.\r
@@ -143,20 +135,15 @@ CyEnterCriticalSection:
 \r
 /*******************************************************************************\r
 * Function Name: CyExitCriticalSection\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  CyExitCriticalSection re-enables interrupts if they were enabled before\r
 *  CyEnterCriticalSection was called. The argument should be the value returned\r
 *  from CyEnterCriticalSection.\r
 *\r
-* Parameters:\r
-*  uint8 savedIntrStatus:\r
+*  \param uint8 savedIntrStatus:\r
 *   Saved interrupt status returned by the CyEnterCriticalSection function.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 /* void CyExitCriticalSection(uint8 savedIntrStatus) */\r
 .global CyExitCriticalSection\r
old mode 100644 (file)
new mode 100755 (executable)
index 330202c..3058655
@@ -1,12 +1,12 @@
 ;-------------------------------------------------------------------------------\r
 ; FILENAME: CyBootAsmIar.s\r
-; Version 4.20\r
+; Version 5.50\r
 ;\r
 ;  DESCRIPTION:\r
 ;    Assembly routines for IAR Embedded Workbench IDE.\r
 ;\r
 ;-------------------------------------------------------------------------------\r
-; Copyright 2013-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+; Copyright 2013-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 ; You may use this file only in accordance with the license, terms, conditions,\r
 ; disclaimers, and limitations in the end user license agreement accompanying\r
 ; the software package with which this file was provided.\r
old mode 100644 (file)
new mode 100755 (executable)
index 8b1cc20..e02cb0f
@@ -1,12 +1,12 @@
 ;-------------------------------------------------------------------------------\r
 ; FILENAME: CyBootAsmRv.s\r
-; Version 4.20\r
+; Version 5.50\r
 ;\r
 ;  DESCRIPTION:\r
 ;    Assembly routines for RealView.\r
 ;\r
 ;-------------------------------------------------------------------------------\r
-; Copyright 2010-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+; Copyright 2010-2015, Cypress Semiconductor Corporation.  All rights reserved.\r
 ; You may use this file only in accordance with the license, terms, conditions,\r
 ; disclaimers, and limitations in the end user license agreement accompanying\r
 ; the software package with which this file was provided.\r
old mode 100644 (file)
new mode 100755 (executable)
index 2a1ef96..9e66257
@@ -1,27 +1,26 @@
-/*******************************************************************************\r
-* File Name: CyDmac.c\r
-* Version 4.20\r
-*\r
-* Description:\r
-*  Provides an API for the DMAC component. The API includes functions for the\r
-*  DMA controller, DMA channels and Transfer Descriptors.\r
+/***************************************************************************//**\r
+* \file CyDmac.c\r
+* \version 5.50\r
 *\r
-*  This API is the library version not the auto generated code that gets\r
-*  generated when the user places a DMA component on the schematic.\r
+* \brief\r
+* Provides an API for the DMAC component. The API includes functions for the\r
+* DMA controller, DMA channels and Transfer Descriptors. This API is the library\r
+* version not the auto generated code that gets generated when the user places a\r
+* DMA component on the schematic.\r
 *\r
-*  The auto generated code would use the APi's in this module.\r
+* The auto generated code would use the APi's in this module.\r
 *\r
-* Note:\r
-*  This code is endian agnostic.\r
+* \note This code is endian agnostic.\r
 *\r
-*  The Transfer Descriptor memory can be used as regular memory if the TD's are\r
-*  not being used.\r
+* \note The Transfer Descriptor memory can be used as regular memory if the\r
+* TD's are not being used.\r
 *\r
-*  This code uses the first byte of each TD to manage the free list of TD's.\r
-*  The user can overwrite this once the TD is allocated.\r
+* \note This code uses the first byte of each TD to manage the free list of\r
+* TD's. The user can overwrite this once the TD is allocated.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -44,18 +43,11 @@ static uint32 CyDmaChannels = DMA_CHANNELS_USED__MASK0;              /* Bit map
 \r
 /*******************************************************************************\r
 * Function Name: CyDmacConfigure\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Creates a linked list of all the TDs to be allocated. This function is called\r
-*  by the startup code; you do not normally need to call it. You can call this\r
-*  function if all of the DMA channels are inactive.\r
+****************************************************************************//**\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
+* Creates a linked list of all the TDs to be allocated. This function is called\r
+* by the startup code; you do not normally need to call it. You can call this\r
+* function if all of the DMA channels are inactive.\r
 *\r
 *******************************************************************************/\r
 void CyDmacConfigure(void) \r
@@ -79,16 +71,11 @@ void CyDmacConfigure(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmacError\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Returns errors of the last failed DMA transaction.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  Errors of the last failed DMA transaction.\r
+* \return Errors of the last failed DMA transaction.\r
 *\r
 *  DMAC_PERIPH_ERR:\r
 *   Set to 1 when a peripheral responds to a bus transaction with an error\r
@@ -102,43 +89,38 @@ void CyDmacConfigure(void)
 *   are determined by the BUS_TIMEOUT field in the PHUBCFG register.\r
 *\r
 * Theory:\r
-*  Once an error occurs the error bits are sticky and are only cleared by \r
+*  Once an error occurs the error bits are sticky and are only cleared by\r
 *  writing 1 to the error register.\r
 *\r
 *******************************************************************************/\r
 uint8 CyDmacError(void) \r
 {\r
-    return((uint8)(((uint32) 0x0Fu) & *CY_DMA_ERR_PTR));\r
+    return((uint8)(((uint32) 0x0Eu) & *CY_DMA_ERR_PTR));\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyDmacClearError\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Clears the error bits in the error register of the DMAC.\r
 *\r
-* Parameters:\r
-* error:\r
+* \param error:\r
 *   Clears the error bits in the DMAC error register.\r
 *\r
-*  DMAC_PERIPH_ERR:\r
+*  \param DMAC_PERIPH_ERR:\r
 *   Set to 1 when a peripheral responds to a bus transaction with an error\r
 *   response.\r
 *\r
-*  DMAC_UNPOP_ACC:\r
+*  \param DMAC_UNPOP_ACC:\r
 *   Set to 1 when an access is attempted to an invalid address.\r
 *\r
-*  DMAC_BUS_TIMEOUT:\r
+*  \param DMAC_BUS_TIMEOUT:\r
 *   Set to 1 when a bus timeout occurs. Cleared by writing 1. Timeout values\r
 *   are determined by the BUS_TIMEOUT field in the PHUBCFG register.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 * Theory:\r
-*  Once an error occurs the error bits are sticky and are only cleared by \r
+*  Once an error occurs the error bits are sticky and are only cleared by\r
 *  writing 1 to the error register.\r
 *\r
 *******************************************************************************/\r
@@ -150,20 +132,15 @@ void CyDmacClearError(uint8 error)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmacErrorAddress\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  When DMAC_BUS_TIMEOUT, DMAC_UNPOP_ACC, and DMAC_PERIPH_ERR occur the\r
 *  address of the error is written to the error address register and can be read\r
 *  with this function.\r
 *\r
 *  If there are multiple errors, only the address of the first is saved.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  The address that caused the error.\r
+* \return The address that caused the error.\r
 *\r
 *******************************************************************************/\r
 uint32 CyDmacErrorAddress(void) \r
@@ -174,17 +151,12 @@ uint32 CyDmacErrorAddress(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChAlloc\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Allocates a channel from the DMAC to be used in all functions that require a\r
 *  channel handle.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  The allocated channel number. Zero is a valid channel number.\r
+* \return The allocated channel number. Zero is a valid channel number.\r
 *  DMA_INVALID_CHANNEL is returned if there are no channels available.\r
 *\r
 *******************************************************************************/\r
@@ -225,18 +197,15 @@ uint8 CyDmaChAlloc(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChFree\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Frees a channel allocated by DmaChAlloc().\r
+* Frees a channel allocated by \ref DmaChAlloc().\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   The handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+* \param chHandle The handle previously returned by \ref CyDmaChAlloc() or \ref\r
+* DMA_DmaInitalize().\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChFree(uint8 chHandle) \r
@@ -263,19 +232,16 @@ cystatus CyDmaChFree(uint8 chHandle)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChEnable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the DMA channel. A software or hardware request still must happen\r
 *  before the channel is executed.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+*  \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+*  DMA_DmaInitalize().\r
 *\r
-*  uint8 preserveTds:\r
-*   Preserves the original TD state when the TD has completed. This parameter\r
-*   applies to all TDs in the channel.\r
+*  \param preserveTds Preserves the original TD state when the TD has completed.\r
+*  This parameter applies to all TDs in the channel.\r
 *\r
 *   0 - When TD is completed, the DMAC leaves the TD configuration values in\r
 *   their current state, and does not restore them to their original state.\r
@@ -288,7 +254,7 @@ cystatus CyDmaChFree(uint8 chHandle)
 *  if you are using CH06 and preserveTds is set, you are not allowed to use TD\r
 *  slot 6. That is reclaimed by the DMA engine for its private use.\r
 *\r
-*  Note Do not chain back to a completed TD if the preserveTds for the channel\r
+*  \note Do not chain back to a completed TD if the preserveTds for the channel\r
 *  is set to 0. When a TD has completed preserveTds for the channel set to 0,\r
 *  the transfer count will be at 0. If a TD with a transfer count of 0 is\r
 *  started, the TD will transfer an indefinite amount of data.\r
@@ -296,9 +262,8 @@ cystatus CyDmaChFree(uint8 chHandle)
 *  Take extra precautions when using the hardware request (DRQ) option when the\r
 *  preserveTds is set to 0, as you might be requesting the wrong data.\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChEnable(uint8 chHandle, uint8 preserveTds) \r
@@ -332,23 +297,20 @@ cystatus CyDmaChEnable(uint8 chHandle, uint8 preserveTds)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChDisable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Disables the DMA channel. Once this function is called, CyDmaChStatus() may\r
-*  be called to determine when the channel is disabled and which TDs were being\r
-*  executed.\r
+* Disables the DMA channel. Once this function is called, CyDmaChStatus() may\r
+* be called to determine when the channel is disabled and which TDs were being\r
+* executed.\r
 *\r
-*  If it is currently executing it will allow the current burst to finish\r
-*  naturally.\r
+* If it is currently executing it will allow the current burst to finish\r
+* naturally.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+* \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+* DMA_DmaInitalize().\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChDisable(uint8 chHandle) \r
@@ -376,18 +338,14 @@ cystatus CyDmaChDisable(uint8 chHandle)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaClearPendingDrq\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Clears pending the DMA data request.\r
+* Clears pending the DMA data request.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   Handle to the dma channel.\r
+* \param chHandle Handle to the dma channel.\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaClearPendingDrq(uint8 chHandle) \r
@@ -407,23 +365,19 @@ cystatus CyDmaClearPendingDrq(uint8 chHandle)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChPriority\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the priority of a DMA channel. You can use this function when you want\r
 *  to change the priority at run time. If the priority remains the same for a\r
 *  DMA channel, then you can configure the priority in the .cydwr file.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+*  \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+*  DMA_DmaInitalize().\r
 *\r
-*  uint8 priority:\r
-*   Priority to set the channel to, 0 - 7.\r
+*  \param priority Priority to set the channel to, 0 - 7.\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+*  \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChPriority(uint8 chHandle, uint8 priority) \r
@@ -446,25 +400,20 @@ cystatus CyDmaChPriority(uint8 chHandle, uint8 priority)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChSetExtendedAddress\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the high 16 bits of the source and destination addresses for the DMA\r
 *  channel (valid for all TDs in the chain).\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+*  \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+*  DMA_DmaInitalize().\r
 *\r
-*  uint16 source:\r
-*   Upper 16 bit address of the DMA transfer source.\r
+*  \param source Upper 16 bit address of the DMA transfer source.\r
 *\r
-*  uint16 destination:\r
-*   Upper 16 bit address of the DMA transfer destination.\r
+*  \param destination Upper 16 bit address of the DMA transfer destination.\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChSetExtendedAddress(uint8 chHandle, uint16 source, uint16 destination) \\r
@@ -507,23 +456,19 @@ cystatus CyDmaChSetExtendedAddress(uint8 chHandle, uint16 source, uint16 destina
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChSetInitialTd\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Sets the initial TD to be executed for the channel when the CyDmaChEnable()\r
-*  function is called.\r
+* Sets the initial TD to be executed for the channel when the \ref CyDmaChEnable()\r
+* function is called.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitialize().\r
+* \param chHandle A handle previously returned by \ref CyDmaChAlloc() or\r
+* \ref DMA_DmaInitialize().\r
 *\r
-*  uint8 startTd:\r
-*   Set the TD index as the first TD associated with the channel. Zero is\r
-*   a valid TD index.\r
+* \param startTd Set the TD index as the first TD associated with the\r
+* channel. Zero is a valid TD index.\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChSetInitialTd(uint8 chHandle, uint8 startTd) \r
@@ -542,26 +487,22 @@ cystatus CyDmaChSetInitialTd(uint8 chHandle, uint8 startTd)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChSetRequest\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Allows the caller to terminate a chain of TDs, terminate one TD, or create a\r
 *  direct request to start the DMA channel.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
-*\r
-*  uint8 request:\r
-*   One of the following constants. Each of the constants is a three-bit value.\r
+*  \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+*  DMA_DmaInitalize().\r
 *\r
+*  \param request One of the following constants. Each of the constants is a\r
+*  three-bit value.\r
 *   CPU_REQ         - Create a direct request to start the DMA channel\r
 *   CPU_TERM_TD     - Terminate one TD\r
 *   CPU_TERM_CHAIN  - Terminate a chain of TDs\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChSetRequest(uint8 chHandle, uint8 request) \r
@@ -580,21 +521,18 @@ cystatus CyDmaChSetRequest(uint8 chHandle, uint8 request)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChGetRequest\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  This function allows the caller of CyDmaChSetRequest() to determine if the\r
-*  request was completed.\r
+* This function allows the caller of \ref CyDmaChSetRequest() to determine if the\r
+* request was completed.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+* \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+* DMA_DmaInitalize().\r
 *\r
-* Return:\r
-*  Returns a three-bit field, corresponding to the three bits of the request,\r
-*  which describes the state of the previously posted request. If the value is\r
-*  zero, the request was completed. CY_DMA_INVALID_CHANNEL if the handle is\r
-*  invalid.\r
+* \return Returns a three-bit field, corresponding to the three bits of the\r
+* request, which describes the state of the previously posted request. If the\r
+* value is zero, the request was completed. CY_DMA_INVALID_CHANNEL if the handle\r
+* is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChGetRequest(uint8 chHandle) \r
@@ -613,35 +551,30 @@ cystatus CyDmaChGetRequest(uint8 chHandle)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Determines the status of the DMA channel.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitalize().\r
+*  \param chHandle A handle previously returned by \ref CyDmaChAlloc() or \ref\r
+*  DMA_DmaInitalize().\r
 *\r
-*  uint8 * currentTd:\r
-*   The address to store the index of the current TD. Can be NULL if the value\r
-*   is not needed.\r
+*  \param currentTd The address to store the index of the current TD. Can be NULL\r
+*  if the value is not needed.\r
 *\r
-*  uint8 * state:\r
-*   The address to store the state of the channel. Can be NULL if the value is\r
-*   not needed.\r
+*  \param state The address to store the state of the channel. Can be NULL if the\r
+*  value is not needed.\r
 *\r
 *   STATUS_TD_ACTIVE\r
-*    0: Channel is not currently being serviced by DMAC\r
-*    1: Channel is currently being serviced by DMAC\r
+*    \param 0: Channel is not currently being serviced by DMAC\r
+*    \param 1: Channel is currently being serviced by DMAC\r
 *\r
 *   STATUS_CHAIN_ACTIVE\r
-*    0: TD chain is inactive; either no DMA requests have triggered a new chain\r
+*    \param 0: TD chain is inactive; either no DMA requests have triggered a new chain\r
 *       or the previous chain has completed.\r
-*    1: TD chain has been triggered by a DMA request\r
+*    \param 1: TD chain has been triggered by a DMA request\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return CYRET_SUCCESS if successful.\r
+* \return CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 * Theory:\r
 *   The caller can check on the activity of the Current TD and the Chain.\r
@@ -672,43 +605,41 @@ cystatus CyDmaChStatus(uint8 chHandle, uint8 * currentTd, uint8 * state)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChSetConfiguration\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 * Sets configuration information of the channel.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
+*  \param uint8 chHandle:\r
 *   A handle previously returned by CyDmaChAlloc() or DMA_DmaInitialize().\r
 *\r
-*  uint8 burstCount:\r
+*  \param uint8 burstCount:\r
 *   Specifies the size of bursts (1 to 127) the data transfer should be divided\r
 *   into. If this value is zero then the whole transfer is done in one burst.\r
 *\r
-*  uint8 requestPerBurst:\r
+*  \param uint8 requestPerBurst:\r
 *   The whole of the data can be split into multiple bursts, if this is\r
-*   required to complete the transaction:\r
-*    0: All subsequent bursts after the first burst will be automatically\r
+*   \param required to complete the transaction:\r
+*    \param 0: All subsequent bursts after the first burst will be automatically\r
 *       requested and carried out\r
-*    1: All subsequent bursts after the first burst must also be individually\r
+*    \param 1: All subsequent bursts after the first burst must also be individually\r
 *       requested.\r
 *\r
-*  uint8 tdDone0:\r
+*  \param uint8 tdDone0:\r
 *   Selects one of the TERMOUT0 interrupt lines to signal completion. The line\r
 *   connected to the nrq terminal will determine the TERMOUT0_SEL definition and\r
 *   should be used as supplied by cyfitter.h\r
 *\r
-*  uint8 tdDone1:\r
+*  \param uint8 tdDone1:\r
 *   Selects one of the TERMOUT1 interrupt lines to signal completion. The line\r
 *   connected to the nrq terminal will determine the TERMOUT1_SEL definition and\r
 *   should be used as supplied by cyfitter.h\r
 *\r
-*  uint8 tdStop:\r
+*  \param uint8 tdStop:\r
 *   Selects one of the TERMIN interrupt lines to signal to the DMAC that the TD\r
 *   should terminate. The signal connected to the trq terminal will determine\r
 *   which TERMIN (termination request) is used.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
@@ -734,15 +665,11 @@ cystatus CyDmaChSetConfiguration(uint8 chHandle, uint8 burstCount, uint8 request
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdAllocate\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Allocates a TD for use with an allocated DMA channel.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  Zero-based index of the TD to be used by the caller. Since there are 128 TDs\r
 *  minus the reserved TDs (0 to 23), the value returned would range from 24 to\r
 *  127 not 24 to 128. DMA_INVALID_TD is returned if there are no free TDs\r
@@ -778,18 +705,13 @@ uint8 CyDmaTdAllocate(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdFree\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Returns a TD to the free list.\r
 *\r
-* Parameters:\r
-*  uint8 tdHandle:\r
+*  \param uint8 tdHandle:\r
 *   The TD handle returned by the CyDmaTdAllocate().\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyDmaTdFree(uint8 tdHandle) \r
 {\r
@@ -815,15 +737,11 @@ void CyDmaTdFree(uint8 tdHandle)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdFreeCount\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Returns the number of free TDs available to be allocated.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  The number of free TDs.\r
 *\r
 *******************************************************************************/\r
@@ -835,28 +753,26 @@ uint8 CyDmaTdFreeCount(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdSetConfiguration\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Configures the TD.\r
 *\r
-* Parameters:\r
-*  uint8 tdHandle:\r
+*  \param uint8 tdHandle:\r
 *   A handle previously returned by CyDmaTdAlloc().\r
 *\r
-*  uint16 transferCount:\r
+*  \param uint16 transferCount:\r
 *   The size of the data transfer (in bytes) for this TD. A size of zero will\r
 *   cause the transfer to continue indefinitely. This parameter is limited to\r
 *   4095 bytes; the TD is not initialized at all when a higher value is passed.\r
 *\r
-*  uint8 nextTd:\r
+*  \param uint8 nextTd:\r
 *   Zero based index of the next Transfer Descriptor in the TD chain. Zero is a\r
 *   valid pointer to the next TD; DMA_END_CHAIN_TD is the end of the chain.\r
 *   DMA_DISABLE_TD indicates an end to the chain and the DMA is disabled. No\r
 *   further TDs are fetched. DMA_DISABLE_TD is only supported on PSoC3 and\r
 *   PSoC 5LP silicons.\r
 *\r
-*  uint8 configuration:\r
+*  \param uint8 configuration:\r
 *   Stores the Bit field of configuration bits.\r
 *\r
 *   CY_DMA_TD_SWAP_EN        - Perform endian swap\r
@@ -883,7 +799,7 @@ uint8 CyDmaTdFreeCount(void)
 *   CY_DMA_TD_INC_SRC_ADR    - Increment SRC_ADR according to the size of each\r
 *                              data transaction in the burst.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_BAD_PARAM if tdHandle or transferCount is invalid.\r
 *\r
@@ -914,34 +830,32 @@ cystatus CyDmaTdSetConfiguration(uint8 tdHandle, uint16 transferCount, uint8 nex
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdGetConfiguration\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Retrieves the configuration of the TD. If a NULL pointer is passed as a\r
 *  parameter, that parameter is skipped. You may request only the values you are\r
 *  interested in.\r
 *\r
-* Parameters:\r
-*  uint8 tdHandle:\r
+*  \param uint8 tdHandle:\r
 *   A handle previously returned by CyDmaTdAlloc().\r
 *\r
-*  uint16 * transferCount:\r
+*  \param uint16 * transferCount:\r
 *   The address to store the size of the data transfer (in bytes) for this TD.\r
 *   A size of zero could indicate that the TD has completed its transfer, or\r
 *   that the TD is doing an indefinite transfer.\r
 *\r
-*  uint8 * nextTd:\r
+*  \param uint8 * nextTd:\r
 *   The address to store the index of the next TD in the TD chain.\r
 *\r
-*  uint8 * configuration:\r
+*  \param uint8 * configuration:\r
 *   The address to store the Bit field of configuration bits.\r
 *   See CyDmaTdSetConfiguration() function description.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_BAD_PARAM if tdHandle is invalid.\r
 *\r
-* Side Effects:\r
+* \sideeffect\r
 *  If TD has a transfer count of N and is executed, the transfer count becomes\r
 *  0. If it is reexecuted, the Transfer count of zero will be interpreted as a\r
 *  request for indefinite transfer. Be careful when requesting TD with a\r
@@ -986,23 +900,21 @@ cystatus CyDmaTdGetConfiguration(uint8 tdHandle, uint16 * transferCount, uint8 *
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdSetAddress\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the lower 16 bits of the source and destination addresses for this TD\r
 *  only.\r
 *\r
-* Parameters:\r
-*  uint8 tdHandle:\r
+*  \param uint8 tdHandle:\r
 *   A handle previously returned by CyDmaTdAlloc().\r
 *\r
-*  uint16 source:\r
+*  \param uint16 source:\r
 *   The lower 16 address bits of the source of the data transfer.\r
 *\r
-*  uint16 destination:\r
+*  \param uint16 destination:\r
 *   The lower 16 address bits of the destination of the data transfer.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_BAD_PARAM if tdHandle is invalid.\r
 *\r
@@ -1031,26 +943,24 @@ cystatus CyDmaTdSetAddress(uint8 tdHandle, uint16 source, uint16 destination)
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaTdGetAddress\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Retrieves the lower 16 bits of the source and/or destination addresses for\r
 *  this TD only. If NULL is passed for a pointer parameter, that value is\r
 *  skipped. You may request only the values of interest.\r
 *\r
-* Parameters:\r
-*  uint8 tdHandle:\r
+*  \param uint8 tdHandle:\r
 *   A handle previously returned by CyDmaTdAlloc().\r
 *\r
-*  uint16 * source:\r
+*  \param uint16 * source:\r
 *   The address to store the lower 16 address bits of the source of the data\r
 *   transfer.\r
 *\r
-*  uint16 * destination:\r
+*  \param uint16 * destination:\r
 *   The address to store the lower 16 address bits of the destination of the\r
 *   data transfer.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_BAD_PARAM if tdHandle is invalid.\r
 *\r
@@ -1087,23 +997,21 @@ cystatus CyDmaTdGetAddress(uint8 tdHandle, uint16 * source, uint16 * destination
 \r
 /*******************************************************************************\r
 * Function Name: CyDmaChRoundRobin\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Either enables or disables the Round-Robin scheduling enforcement algorithm.\r
-*  Within a priority level a Round-Robin fairness algorithm is enforced.\r
+* Either enables or disables the Round-Robin scheduling enforcement algorithm.\r
+* Within a priority level a Round-Robin fairness algorithm is enforced.\r
 *\r
-* Parameters:\r
-*  uint8 chHandle:\r
-*   A handle previously returned by CyDmaChAlloc() or Dma_DmaInitialize().\r
+* \param uint8 chHandle:\r
+*  A handle previously returned by CyDmaChAlloc() or Dma_DmaInitialize().\r
 *\r
-*  uint8 enableRR:\r
-*   0: Disable Round-Robin fairness algorithm\r
-*   1: Enable Round-Robin fairness algorithm\r
+* \param uint8 enableRR:\r
+*  \param 0: Disable Round-Robin fairness algorithm\r
+*  \param 1: Enable Round-Robin fairness algorithm\r
 *\r
-* Return:\r
-*  CYRET_SUCCESS if successful.\r
-*  CYRET_BAD_PARAM if chHandle is invalid.\r
+* \return\r
+* CYRET_SUCCESS if successful.\r
+* CYRET_BAD_PARAM if chHandle is invalid.\r
 *\r
 *******************************************************************************/\r
 cystatus CyDmaChRoundRobin(uint8 chHandle, uint8 enableRR) \r
old mode 100644 (file)
new mode 100755 (executable)
index 8bbb4a7..bbfbf16
@@ -1,16 +1,15 @@
-/*******************************************************************************\r
-* File Name: CyDmac.h\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file CyDmac.h\r
+* \version 5.50\r
 *\r
-*  Description:\r
-*   Provides the function definitions for the DMA Controller.\r
+* \brief Provides the function definitions for the DMA Controller.\r
 *\r
-*  Note:\r
-*   Documentation of the API's in this file is located in the\r
-*   System Reference Guide provided with PSoC Creator.\r
+* \note Documentation of the API's in this file is located in the System\r
+* Reference Guide provided with PSoC Creator.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
old mode 100644 (file)
new mode 100755 (executable)
index 38ffe99..8969200
@@ -1,19 +1,17 @@
-/*******************************************************************************\r
-* File Name: CyFlash.c\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file CyFlash.c\r
+* \version 5.50\r
 *\r
-*  Description:\r
-*   Provides an API for the FLASH/EEPROM.\r
+* \brief Provides an API for the FLASH/EEPROM.\r
 *\r
-*  Note:\r
-*   This code is endian agnostic.\r
+* \note This code is endian agnostic.\r
 *\r
-*  Note:\r
-*   Documentation of the API's in this file is located in the\r
-*   System Reference Guide provided with PSoC Creator.\r
+* \note Documentation of the API's in this file is located in the System\r
+* Reference Guide provided with PSoC Creator.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation. All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation. All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -43,17 +41,10 @@ static cystatus CyFlashGetSpcAlgorithm(void);
 \r
 /*******************************************************************************\r
 * Function Name: CyFlash_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enable the Flash.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyFlash_Start(void) \r
 {\r
@@ -104,18 +95,11 @@ void CyFlash_Start(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyFlash_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disable the Flash.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  This setting is ignored as long as the CPU is currently running.  This will\r
 *  only take effect when the CPU is later disabled.\r
 *\r
@@ -135,17 +119,13 @@ void CyFlash_Stop(void)
 \r
 /*******************************************************************************\r
 * Function Name: CySetTempInt\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sends a command to the SPC to read the die temperature. Sets a global value\r
 *  used by the Write function. This function must be called once before\r
 *  executing a series of Flash writing functions.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  status:\r
 *   CYRET_SUCCESS - if successful\r
 *   CYRET_LOCKED  - if Flash writing already in use\r
@@ -197,15 +177,11 @@ static cystatus CySetTempInt(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyFlashGetSpcAlgorithm\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sends a command to the SPC to download code into RAM.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  status:\r
 *   CYRET_SUCCESS - if successful\r
 *   CYRET_LOCKED  - if Flash writing already in use\r
@@ -249,16 +225,12 @@ static cystatus CyFlashGetSpcAlgorithm(void)
 \r
 /*******************************************************************************\r
 * Function Name: CySetTemp\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  This is a wraparound for CySetTempInt(). It is used to return the second\r
 *  successful read of the temperature value.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  status:\r
 *   CYRET_SUCCESS if successful.\r
 *   CYRET_LOCKED  if Flash writing already in use\r
@@ -285,19 +257,17 @@ cystatus CySetTemp(void)
 \r
 /*******************************************************************************\r
 * Function Name: CySetFlashEEBuffer\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the user supplied temporary buffer to store SPC data while performing\r
-*  Flash and EEPROM commands. This buffer is only necessary when the Flash ECC is\r
-*  disabled.\r
+*  Flash and EEPROM commands. This buffer is only necessary when the Flash ECC\r
+*  is disabled.\r
 *\r
-* Parameters:\r
-*  buffer:\r
-*   The address of a block of memory to store temporary memory. The size of the block\r
-*   of memory is CYDEV_FLS_ROW_SIZE + CYDEV_ECC_ROW_SIZE.\r
+*  \param buffer:\r
+*   The address of a block of memory to store temporary memory. The size of the\r
+*   block of memory is CYDEV_FLS_ROW_SIZE + CYDEV_ECC_ROW_SIZE.\r
 *\r
-* Return:\r
+* \return\r
 *  status:\r
 *   CYRET_SUCCESS if successful.\r
 *   CYRET_BAD_PARAM if the buffer is NULL\r
@@ -340,22 +310,20 @@ cystatus CySetFlashEEBuffer(uint8 * buffer)
 \r
 /*******************************************************************************\r
 * Function Name: CyWriteRowData\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sends a command to the SPC to load and program a row of data in\r
 *  Flash or EEPROM.\r
 *\r
-* Parameters:\r
-*  arrayID:    ID of the array to write.\r
+*  \param arrayID:    ID of the array to write.\r
 *   The type of write, Flash or EEPROM, is determined from the array ID.\r
 *   The arrays in the part are sequential starting at the first ID for the\r
 *   specific memory type. The array ID for the Flash memory lasts from 0x00 to\r
 *   0x3F and for the EEPROM memory it lasts from 0x40 to 0x7F.\r
-*  rowAddress: rowAddress of flash row to program.\r
-*  rowData:    Array of bytes to write.\r
+*  \param rowAddress: rowAddress of flash row to program.\r
+*  \param rowData:    Array of bytes to write.\r
 *\r
-* Return:\r
+* \return\r
 *  status:\r
 *   CYRET_SUCCESS if successful.\r
 *   CYRET_LOCKED if the SPC is already in use.\r
@@ -384,21 +352,19 @@ cystatus CyWriteRowData(uint8 arrayId, uint16 rowAddress, const uint8 * rowData)
 \r
     /*******************************************************************************\r
     * Function Name: CyWriteRowConfig\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
-    *  Sends a command to the SPC to load and program a row of config data in the Flash.\r
-    *  This function is only valid for Flash array IDs (not for EEPROM).\r
+    *  Sends a command to the SPC to load and program a row of config data in the\r
+    *  Flash. This function is only valid for Flash array IDs (not for EEPROM).\r
     *\r
-    * Parameters:\r
-    *  arrayId:      ID of the array to write\r
+    *  \param arrayId:      ID of the array to write\r
     *   The arrays in the part are sequential starting at the first ID for the\r
     *   specific memory type. The array ID for the Flash memory lasts\r
     *   from 0x00 to 0x3F.\r
-    *  rowAddress:   The address of the sector to erase.\r
-    *  rowECC:       The array of bytes to write.\r
+    *  \param rowAddress:   The address of the sector to erase.\r
+    *  \param rowECC:       The array of bytes to write.\r
     *\r
-    * Return:\r
+    * \return\r
     *  status:\r
     *   CYRET_SUCCESS if successful.\r
     *   CYRET_LOCKED if the SPC is already in use.\r
@@ -422,18 +388,16 @@ cystatus CyWriteRowData(uint8 arrayId, uint16 rowAddress, const uint8 * rowData)
 \r
 /*******************************************************************************\r
 * Function Name: CyWriteRowFull\r
-********************************************************************************\r
-* Summary:\r
+****************************************************************************//**\r
 *  Sends a command to the SPC to load and program a row of data in the Flash.\r
 *  rowData array is expected to contain Flash and ECC data if needed.\r
 *\r
-* Parameters:\r
-*  arrayId:    FLASH or EEPROM array id.\r
-*  rowData:    Pointer to a row of data to write.\r
-*  rowNumber:  Zero based number of the row.\r
-*  rowSize:    Size of the row.\r
+*  \param arrayId:    FLASH or EEPROM array id.\r
+*  \param rowData:    Pointer to a row of data to write.\r
+*  \param rowNumber:  Zero based number of the row.\r
+*  \param rowSize:    Size of the row.\r
 *\r
-* Return:\r
+* \return\r
 *  CYRET_SUCCESS if successful.\r
 *  CYRET_LOCKED if the SPC is already in use.\r
 *  CYRET_CANCELED if command not accepted\r
@@ -552,21 +516,16 @@ cystatus CyWriteRowFull(uint8 arrayId, uint16 rowNumber, const uint8* rowData, u
 \r
 /*******************************************************************************\r
 * Function Name: CyFlash_SetWaitCycles\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash. This function must be called before increasing the CPU\r
-*  clock frequency. It can optionally be called after lowering the CPU clock\r
-*  frequency in order to improve the CPU performance.\r
+*  coming back from the Flash. This function must be called before increasing\r
+*  the CPU clock frequency. It can optionally be called after lowering the CPU\r
+*  clock frequency in order to improve the CPU performance.\r
 *\r
-* Parameters:\r
-*  uint8 freq:\r
+*  \param uint8 freq:\r
 *   Frequency of operation in Megahertz.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyFlash_SetWaitCycles(uint8 freq) \r
 {\r
@@ -621,17 +580,10 @@ void CyFlash_SetWaitCycles(uint8 freq)
 \r
 /*******************************************************************************\r
 * Function Name: CyEEPROM_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enable the EEPROM.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyEEPROM_Start(void) \r
 {\r
@@ -679,17 +631,10 @@ void CyEEPROM_Start(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyEEPROM_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disable the EEPROM.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyEEPROM_Stop (void) \r
 {\r
@@ -706,17 +651,10 @@ void CyEEPROM_Stop (void)
 \r
 /*******************************************************************************\r
 * Function Name: CyEEPROM_ReadReserve\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Request access to the EEPROM for reading and wait until access is available.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyEEPROM_ReadReserve(void) \r
 {\r
@@ -732,17 +670,10 @@ void CyEEPROM_ReadReserve(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyEEPROM_ReadRelease\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Release the read reservation of the EEPROM.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyEEPROM_ReadRelease(void) \r
 {\r
old mode 100644 (file)
new mode 100755 (executable)
index 119d7fc..6584a19
@@ -1,16 +1,15 @@
-/*******************************************************************************\r
-* File Name: CyFlash.h\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file CyFlash.h\r
+* \version 5.50\r
 *\r
-*  Description:\r
-*   Provides the function definitions for the FLASH/EEPROM.\r
+* \brief Provides the function definitions for the FLASH/EEPROM.\r
 *\r
-*  Note:\r
-*   Documentation of the API's in this file is located in the\r
-*   System Reference Guide provided with PSoC Creator.\r
+* \note Documentation of the API's in this file is located in the System\r
+* Reference Guide provided with PSoC Creator.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -48,7 +47,7 @@ extern uint8 dieTemperature[CY_FLASH_DIE_TEMP_DATA_SIZE];
 #endif  /* (CYDEV_ECC_ENABLE == 0) */\r
 #define CY_EEPROM_BASE              (CYDEV_EE_BASE)\r
 #define CY_EEPROM_SIZE              (CYDEV_EE_SIZE)\r
-#define CY_EEPROM_SIZEOF_ARRAY      (CYDEV_EEPROM_SECTOR_SIZE)\r
+#define CY_EEPROM_SIZEOF_ARRAY      (CYDEV_EE_SIZE)     /* EEPROM has one array */\r
 #define CY_EEPROM_SIZEOF_ROW        (CYDEV_EEPROM_ROW_SIZE)\r
 #define CY_EEPROM_NUMBER_ROWS       (CYDEV_EE_SIZE / CYDEV_EEPROM_ROW_SIZE)\r
 #define CY_EEPROM_NUMBER_ARRAYS     (CYDEV_EE_SIZE / CY_EEPROM_SIZEOF_ARRAY)\r
@@ -260,9 +259,9 @@ void CyEEPROM_ReadRelease(void) ;
 #define FLASH_NUMBER_ROWS           (CY_FLASH_NUMBER_ROWS)\r
 #define FLASH_NUMBER_SECTORS        (CY_FLASH_NUMBER_ARRAYS)\r
 #define EEPROM_SIZE                 (CY_EEPROM_SIZE)\r
-#define EEPROM_SIZEOF_SECTOR        (CY_EEPROM_SIZEOF_ARRAY)\r
+#define EEPROM_SIZEOF_SECTOR        (CYDEV_EEPROM_SECTOR_SIZE)\r
 #define EEPROM_NUMBER_ROWS          (CY_EEPROM_NUMBER_ROWS)\r
-#define EEPROM_NUMBER_SECTORS       (CY_EEPROM_NUMBER_ARRAYS)\r
+#define EEPROM_NUMBER_SECTORS       (CY_EEPROM_NUMBER_SECTORS)\r
 \r
 \r
 /*******************************************************************************\r
old mode 100644 (file)
new mode 100755 (executable)
index a36bee0..3841b2f
@@ -1,16 +1,15 @@
-/*******************************************************************************\r
-* File Name: CyLib.c\r
-* Version 4.20\r
+/***************************************************************************//**\r
+* \file CyLib.c\r
+* \version 5.50\r
 *\r
-*  Description:\r
-*   Provides a system API for the clocking, interrupts and watchdog timer.\r
+* \brief Provides a system API for the clocking, interrupts and watchdog timer.\r
 *\r
-*  Note:\r
-*   Documentation of the API's in this file is located in the\r
-*   System Reference Guide provided with PSoC Creator.\r
+* \note Documentation of the API's in this file is located in the System\r
+* Reference Guide provided with PSoC Creator.\r
 *\r
 ********************************************************************************\r
-* Copyright 2008-2014, Cypress Semiconductor Corporation.  All rights reserved.\r
+* \copyright\r
+* Copyright 2008-2016, Cypress Semiconductor Corporation.  All rights reserved.\r
 * You may use this file only in accordance with the license, terms, conditions,\r
 * disclaimers, and limitations in the end user license agreement accompanying\r
 * the software package with which this file was provided.\r
@@ -50,26 +49,29 @@ static void CyIMO_SetTrimValue(uint8 freq) ;
 static void CyBusClk_Internal_SetDivider(uint16 divider);\r
 \r
 #if(CY_PSOC5)\r
-       static cySysTickCallback CySysTickCallbacks[CY_SYS_SYST_NUM_OF_CALLBACKS];\r
+    static cySysTickCallback CySysTickCallbacks[CY_SYS_SYST_NUM_OF_CALLBACKS];\r
     static void CySysTickServiceCallbacks(void);\r
     uint32 CySysTickInitVar = 0u;\r
 #endif  /* (CY_PSOC5) */\r
 \r
 \r
+#if(CY_PSOC3)\r
+    CY_ISR_PROTO(IntDefaultHandler);\r
+#endif /* (CY_PSOC3) */\r
+\r
+\r
 /*******************************************************************************\r
 * Function Name: CyPLL_OUT_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *   Enables the PLL.  Optionally waits for it to become stable.\r
 *   Waits at least 250 us or until it is detected that the PLL is stable.\r
 *\r
-* Parameters:\r
-*   wait:\r
-*    0: Return immediately after configuration\r
-*    1: Wait for PLL lock or timeout.\r
+*   \param wait:\r
+*    \param 0: Return immediately after configuration\r
+*    \param 1: Wait for PLL lock or timeout.\r
 *\r
-* Return:\r
+* \return\r
 *   Status\r
 *    CYRET_SUCCESS - Completed successfully\r
 *    CYRET_TIMEOUT - Timeout occurred without detecting a stable clock.\r
@@ -77,7 +79,7 @@ static void CyBusClk_Internal_SetDivider(uint16 divider);
 *     may not occur.  However, after the timeout has expired the generated PLL\r
 *     clock can still be used.\r
 *\r
-* Side Effects:\r
+* \sideeffect\r
 *  If wait is enabled: This function uses the Fast Time Wheel to time the wait.\r
 *  Any other use of the Fast Time Wheel will be stopped during the period of\r
 *  this function and then restored. This function also uses the 100 KHz ILO.\r
@@ -144,17 +146,10 @@ cystatus CyPLL_OUT_Start(uint8 wait)
 \r
 /*******************************************************************************\r
 * Function Name: CyPLL_OUT_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the PLL.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyPLL_OUT_Stop(void) \r
 {\r
@@ -164,34 +159,29 @@ void CyPLL_OUT_Stop(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyPLL_OUT_SetPQ\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the P and Q dividers and the charge pump current.\r
 *  The Frequency Out will be P/Q * Frequency In.\r
 *  The PLL must be disabled before calling this function.\r
 *\r
-* Parameters:\r
-*  uint8 pDiv:\r
+*  \param uint8 pDiv:\r
 *   Valid range [8 - 255].\r
 *\r
-*  uint8 qDiv:\r
+*  \param uint8 qDiv:\r
 *   Valid range [1 - 16]. Input Frequency / Q must be in range of 1 to 3 MHz.\r
 \r
-*  uint8 current:\r
+*  \param uint8 current:\r
 *   Valid range [1 - 7]. Charge pump current in uA. Refer to the device TRM and\r
 *   datasheet for more information.\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution results in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *******************************************************************************/\r
 void CyPLL_OUT_SetPQ(uint8 pDiv, uint8 qDiv, uint8 current) \r
@@ -225,28 +215,23 @@ void CyPLL_OUT_SetPQ(uint8 pDiv, uint8 qDiv, uint8 current)
 \r
 /*******************************************************************************\r
 * Function Name: CyPLL_OUT_SetSource\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the input clock source to the PLL. The PLL must be disabled before\r
 *  calling this function.\r
 *\r
-* Parameters:\r
-*   source: One of the three available PLL clock sources\r
-*    CY_PLL_SOURCE_IMO  :   IMO\r
-*    CY_PLL_SOURCE_XTAL :   MHz Crystal\r
-*    CY_PLL_SOURCE_DSI  :   DSI\r
-*\r
-* Return:\r
-*  None\r
+*   \param source: One of the three available PLL clock sources\r
+*    \param CY_PLL_SOURCE_IMO  :   IMO\r
+*    \param CY_PLL_SOURCE_XTAL :   MHz Crystal\r
+*    \param CY_PLL_SOURCE_DSI  :   DSI\r
 *\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution results in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the3 Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the3 Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *******************************************************************************/\r
 void CyPLL_OUT_SetSource(uint8 source) \r
@@ -271,20 +256,15 @@ void CyPLL_OUT_SetSource(uint8 source)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the IMO. Optionally waits at least 6 us for it to settle.\r
 *\r
-* Parameters:\r
-*  uint8 wait:\r
-*   0: Return immediately after configuration\r
-*   1: Wait for at least 6 us for the IMO to settle.\r
-*\r
-* Return:\r
-*  None\r
+*  \param uint8 wait:\r
+*   \param 0: Return immediately after configuration\r
+*   \param 1: Wait for at least 6 us for the IMO to settle.\r
 *\r
-* Side Effects:\r
+* \sideeffect\r
 *  If wait is enabled: This function uses the Fast Time Wheel to time the wait.\r
 *  Any other use of the Fast Time Wheel will be stopped during the period of\r
 *  this function and then restored. This function also uses the 100 KHz ILO.\r
@@ -336,17 +316,10 @@ void CyIMO_Start(uint8 wait)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *   Disables the IMO.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyIMO_Stop(void) \r
 {\r
@@ -357,15 +330,11 @@ void CyIMO_Stop(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyUSB_PowerOnCheck\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Returns the USB power status value. A private function to cy_boot.\r
 *\r
-* Parameters:\r
-*   None\r
-*\r
-* Return:\r
+* \return\r
 *   uint8: one if the USB is enabled, 0 if not enabled.\r
 *\r
 *******************************************************************************/\r
@@ -373,7 +342,7 @@ static uint8 CyUSB_PowerOnCheck(void)
 {\r
     uint8 poweredOn = 0u;\r
 \r
-    /* Check whether device is in Active or AltActiv and if USB is powered on */\r
+    /* Check whether device is in Active or AltActive and if USB is powered on */\r
     if((((CY_PM_MODE_CSR_REG & CY_PM_MODE_CSR_MASK) == CY_PM_MODE_CSR_ACTIVE ) &&\r
        (0u != (CY_LIB_PM_ACT_CFG5_REG & CY_ACT_USB_ENABLED     )))  ||\r
        (((CY_PM_MODE_CSR_REG & CY_PM_MODE_CSR_MASK) == CY_PM_MODE_CSR_ALT_ACT) &&\r
@@ -388,17 +357,12 @@ static uint8 CyUSB_PowerOnCheck(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_SetTrimValue\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the IMO factory trim values.\r
 *\r
-* Parameters:\r
 *  uint8 freq - frequency for which trims must be set\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 static void CyIMO_SetTrimValue(uint8 freq) \r
 {\r
@@ -463,13 +427,11 @@ static void CyIMO_SetTrimValue(uint8 freq)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_SetFreq\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the frequency of the IMO. Changes may be made while the IMO is running.\r
 *\r
-* Parameters:\r
-*  freq: Frequency of IMO operation\r
+*  \param freq: Frequency of IMO operation\r
 *       CY_IMO_FREQ_3MHZ  to set  3   MHz\r
 *       CY_IMO_FREQ_6MHZ  to set  6   MHz\r
 *       CY_IMO_FREQ_12MHZ to set 12   MHz\r
@@ -479,16 +441,13 @@ static void CyIMO_SetTrimValue(uint8 freq)
 *       CY_IMO_FREQ_74MHZ to set 74.7 MHz (not applicable for PSoC 3)\r
 *       CY_IMO_FREQ_USB   to set 24   MHz (Trimmed for USB operation)\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution results in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *  When the USB setting is chosen, the USB clock locking circuit is enabled.\r
 *  Otherwise this circuit is disabled. The USB block must be powered before\r
@@ -625,29 +584,24 @@ void CyIMO_SetFreq(uint8 freq)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_SetSource\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the source of the clock output from the IMO block.\r
 *\r
 *  The output from the IMO is by default the IMO itself. Optionally the MHz\r
 *  Crystal or DSI input can be the source of the IMO output instead.\r
 *\r
-* Parameters:\r
-*   source: CY_IMO_SOURCE_DSI to set the DSI as source.\r
+*   \param source: CY_IMO_SOURCE_DSI to set the DSI as source.\r
 *           CY_IMO_SOURCE_XTAL to set the MHz as source.\r
 *           CY_IMO_SOURCE_IMO to set the IMO itself.\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution resulted in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *******************************************************************************/\r
 void CyIMO_SetSource(uint8 source) \r
@@ -678,18 +632,11 @@ void CyIMO_SetSource(uint8 source)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_EnableDoubler\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the IMO doubler.  The 2x frequency clock is used to convert a 24 MHz\r
 *  input to a 48 MHz output for use by the USB block.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyIMO_EnableDoubler(void) \r
 {\r
@@ -700,17 +647,10 @@ void CyIMO_EnableDoubler(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyIMO_DisableDoubler\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *   Disables the IMO doubler.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyIMO_DisableDoubler(void) \r
 {\r
@@ -720,31 +660,26 @@ void CyIMO_DisableDoubler(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyMasterClk_SetSource\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the source of the master clock.\r
 *\r
-* Parameters:\r
-*   source: One of the four available Master clock sources.\r
+*   \param source: One of the four available Master clock sources.\r
 *     CY_MASTER_SOURCE_IMO\r
 *     CY_MASTER_SOURCE_PLL\r
 *     CY_MASTER_SOURCE_XTAL\r
 *     CY_MASTER_SOURCE_DSI\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  The current source and the new source must both be running and stable before\r
 *  calling this function.\r
 *\r
 *  If this function execution resulted in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *******************************************************************************/\r
 void CyMasterClk_SetSource(uint8 source) \r
@@ -756,26 +691,21 @@ void CyMasterClk_SetSource(uint8 source)
 \r
 /*******************************************************************************\r
 * Function Name: CyMasterClk_SetDivider\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the divider value used to generate Master Clock.\r
 *\r
-* Parameters:\r
-*  uint8 divider:\r
+*  \param uint8 divider:\r
 *   The valid range is [0-255]. The clock will be divided by this value + 1.\r
 *   For example to divide this parameter by two should be set to 1.\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution resulted in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *  When changing the Master or Bus clock divider value from div-by-n to div-by-1\r
 *  the first clock cycle output after the div-by-1 can be up to 4 ns shorter\r
@@ -790,19 +720,14 @@ void CyMasterClk_SetDivider(uint8 divider)
 \r
 /*******************************************************************************\r
 * Function Name: CyBusClk_Internal_SetDivider\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  The function used by CyBusClk_SetDivider(). For internal use only.\r
 *\r
-* Parameters:\r
-*   divider: Valid range [0-65535].\r
+*   \param divider: Valid range [0-65535].\r
 *   The clock will be divided by this value + 1.\r
 *   For example, to divide this parameter by two should be set to 1.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 static void CyBusClk_Internal_SetDivider(uint16 divider)\r
 {\r
@@ -830,25 +755,20 @@ static void CyBusClk_Internal_SetDivider(uint16 divider)
 \r
 /*******************************************************************************\r
 * Function Name: CyBusClk_SetDivider\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the divider value used to generate the Bus Clock.\r
 *\r
-* Parameters:\r
-*  divider: Valid range [0-65535]. The clock will be divided by this value + 1.\r
+*  \param divider: Valid range [0-65535]. The clock will be divided by this value + 1.\r
 *  For example, to divide this parameter by two should be set to 1.\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  If this function execution resulted in the CPU clock frequency increasing,\r
 *  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-*  See CyFlash_SetWaitCycles() description for more information.\r
+*  coming back from the Flash must be adjusted by calling\r
+*  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+*  called if the CPU clock frequency is lowered in order to improve the CPU\r
+*  performance. See CyFlash_SetWaitCycles() description for more information.\r
 *\r
 *******************************************************************************/\r
 void CyBusClk_SetDivider(uint16 divider) \r
@@ -902,26 +822,21 @@ void CyBusClk_SetDivider(uint16 divider)
 \r
     /*******************************************************************************\r
     * Function Name: CyCpuClk_SetDivider\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Sets the divider value used to generate the CPU Clock. Only applicable for\r
     *  PSoC 3 parts.\r
     *\r
-    * Parameters:\r
-    *  divider: Valid range [0-15]. The clock will be divided by this value + 1.\r
+    *  \param divider: Valid range [0-15]. The clock will be divided by this value + 1.\r
     *  For example, to divide this parameter by two should be set to 1.\r
     *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  If this function execution resulted in the CPU clock frequency increasing,\r
-*  then the number of clock cycles the cache will wait before it samples data\r
-*  coming back from the Flash must be adjusted by calling CyFlash_SetWaitCycles()\r
-*  with an appropriate parameter. It can be optionally called if the CPU clock\r
-*  frequency is lowered in order to improve the CPU performance.\r
-    *  See CyFlash_SetWaitCycles() description for more information.\r
+    *  then the number of clock cycles the cache will wait before it samples data\r
+    *  coming back from the Flash must be adjusted by calling\r
+    *  CyFlash_SetWaitCycles() with an appropriate parameter. It can be optionally\r
+    *  called if the CPU clock frequency is lowered in order to improve the CPU\r
+    *  performance. See CyFlash_SetWaitCycles() description for more information.\r
     *\r
     *******************************************************************************/\r
     void CyCpuClk_SetDivider(uint8 divider) \r
@@ -935,21 +850,16 @@ void CyBusClk_SetDivider(uint16 divider)
 \r
 /*******************************************************************************\r
 * Function Name: CyUsbClk_SetSource\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the source of the USB clock.\r
 *\r
-* Parameters:\r
-*  source: One of the four available USB clock sources\r
+*  \param source: One of the four available USB clock sources\r
 *    CY_LIB_USB_CLK_IMO2X     - IMO 2x\r
 *    CY_LIB_USB_CLK_IMO       - IMO\r
 *    CY_LIB_USB_CLK_PLL       - PLL\r
 *    CY_LIB_USB_CLK_DSI       - DSI\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyUsbClk_SetSource(uint8 source) \r
 {\r
@@ -960,21 +870,14 @@ void CyUsbClk_SetSource(uint8 source)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Start1K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the ILO 1 KHz oscillator.\r
 *\r
 *  Note The ILO 1 KHz oscillator is always enabled by default, regardless of the\r
 *  selection in the Clock Editor. Therefore, this API is only needed if the\r
 *  oscillator was turned off manually.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_Start1K(void) \r
 {\r
@@ -985,22 +888,15 @@ void CyILO_Start1K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Stop1K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the ILO 1 KHz oscillator.\r
 *\r
-*  Note The ILO 1 KHz oscillator must be enabled if the Sleep or Hibernate low power\r
-*  mode APIs are expected to be used. For more information, refer to the Power\r
-*  Management section of this document.\r
-*\r
-* Parameters:\r
-*  None\r
+*  Note The ILO 1 KHz oscillator must be enabled if the Sleep or Hibernate low\r
+*  power mode APIs are expected to be used. For more information, refer to the\r
+*  Power Management section of this document.\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  PSoC5: Stopping the ILO 1 kHz could break the active WDT functionality.\r
 *\r
 *******************************************************************************/\r
@@ -1013,17 +909,10 @@ void CyILO_Stop1K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Start100K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the ILO 100 KHz oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_Start100K(void) \r
 {\r
@@ -1033,17 +922,10 @@ void CyILO_Start100K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Stop100K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the ILO 100 KHz oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_Stop100K(void) \r
 {\r
@@ -1053,20 +935,13 @@ void CyILO_Stop100K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Enable33K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the ILO 33 KHz divider.\r
 *\r
 *  Note that the 33 KHz clock is generated from the 100 KHz oscillator,\r
 *  so it must also be running in order to generate the 33 KHz output.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_Enable33K(void) \r
 {\r
@@ -1077,20 +952,13 @@ void CyILO_Enable33K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_Disable33K\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the ILO 33 KHz divider.\r
 *\r
 *  Note that the 33 KHz clock is generated from the 100 KHz oscillator, but this\r
 *  API does not disable the 100 KHz clock.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_Disable33K(void) \r
 {\r
@@ -1100,21 +968,16 @@ void CyILO_Disable33K(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_SetSource\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the source of the clock output from the ILO block.\r
 *\r
-* Parameters:\r
-*  source: One of the three available ILO output sources\r
+*  \param source: One of the three available ILO output sources\r
 *       Value        Define                Source\r
 *       0            CY_ILO_SOURCE_100K    ILO 100 KHz\r
 *       1            CY_ILO_SOURCE_33K     ILO 33 KHz\r
 *       2            CY_ILO_SOURCE_1K      ILO 1 KHz\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyILO_SetSource(uint8 source) \r
 {\r
@@ -1125,19 +988,16 @@ void CyILO_SetSource(uint8 source)
 \r
 /*******************************************************************************\r
 * Function Name: CyILO_SetPowerMode\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Sets the power mode used by the ILO during power down. Allows for lower power\r
-*  down power usage resulting in a slower startup time.\r
+* Sets the power mode used by the ILO during power down. Allows for lower power\r
+* down power usage resulting in a slower startup time.\r
 *\r
-* Parameters:\r
-*  uint8 mode\r
-*   CY_ILO_FAST_START - Faster start-up, internal bias left on when powered down\r
-*   CY_ILO_SLOW_START - Slower start-up, internal bias off when powered down\r
+* \param mode\r
+* CY_ILO_FAST_START - Faster start-up, internal bias left on when powered down\r
+* CY_ILO_SLOW_START - Slower start-up, internal bias off when powered down\r
 *\r
-* Return:\r
-*   Prevous power mode state.\r
+* \return Prevous power mode state.\r
 *\r
 *******************************************************************************/\r
 uint8 CyILO_SetPowerMode(uint8 mode) \r
@@ -1164,17 +1024,10 @@ uint8 CyILO_SetPowerMode(uint8 mode)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_32KHZ_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the 32 KHz Crystal Oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_32KHZ_Start(void) \r
 {\r
@@ -1208,17 +1061,10 @@ void CyXTAL_32KHZ_Start(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_32KHZ_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the 32KHz Crystal Oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_32KHZ_Stop(void) \r
 {\r
@@ -1236,15 +1082,11 @@ void CyXTAL_32KHZ_Stop(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_32KHZ_ReadStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Returns status of the 32 KHz oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  Value     Define                    Source\r
 *  20        CY_XTAL32K_ANA_STAT       Analog measurement\r
 *                                       1: Stable\r
@@ -1259,19 +1101,17 @@ uint8 CyXTAL_32KHZ_ReadStatus(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_32KHZ_SetPowerMode\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the power mode for the 32 KHz oscillator used during the sleep mode.\r
 *  Allows for lower power during sleep when there are fewer sources of noise.\r
 *  During the active mode the oscillator is always run in the high power mode.\r
 *\r
-* Parameters:\r
 *  uint8 mode\r
-*       0: High power mode\r
-*       1: Low power mode during sleep\r
+*       \param 0: High power mode\r
+*       \param 1: Low power mode during sleep\r
 *\r
-* Return:\r
+* \return\r
 *  Previous power mode.\r
 *\r
 *******************************************************************************/\r
@@ -1307,21 +1147,19 @@ uint8 CyXTAL_32KHZ_SetPowerMode(uint8 mode)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_Start\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the megahertz crystal.\r
 *\r
 *  PSoC 3:\r
 *  Waits until the XERR bit is low (no error) for a millisecond or until the\r
 *  number of milliseconds specified by the wait parameter has expired.\r
 *\r
-* Parameters:\r
-*   wait: Valid range [0-255].\r
+*   \param wait: Valid range [0-255].\r
 *   This is the timeout value in milliseconds.\r
 *   The appropriate value is crystal specific.\r
 *\r
-* Return:\r
+* \return\r
 *   CYRET_SUCCESS - Completed successfully\r
 *   CYRET_TIMEOUT - Timeout occurred without detecting a low value on XERR.\r
 *\r
@@ -1409,17 +1247,10 @@ cystatus CyXTAL_Start(uint8 wait)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_Stop\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the megahertz crystal oscillator.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_Stop(void) \r
 {\r
@@ -1430,18 +1261,11 @@ void CyXTAL_Stop(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_EnableErrStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the generation of the XERR status bit for the megahertz crystal.\r
 *  This function is not available for PSoC5.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_EnableErrStatus(void) \r
 {\r
@@ -1452,18 +1276,11 @@ void CyXTAL_EnableErrStatus(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_DisableErrStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the generation of the XERR status bit for the megahertz crystal.\r
 *  This function is not available for PSoC5.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_DisableErrStatus(void) \r
 {\r
@@ -1474,16 +1291,12 @@ void CyXTAL_DisableErrStatus(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_ReadStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Reads the XERR status bit for the megahertz crystal. This status bit is a\r
 *  sticky, clear on read. This function is not available for PSoC5.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *   Status\r
 *    0: No error\r
 *    1: Error\r
@@ -1501,20 +1314,13 @@ uint8 CyXTAL_ReadStatus(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_EnableFaultRecovery\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the fault recovery circuit which will switch to the IMO in the case\r
 *  of a fault in the megahertz crystal circuit. The crystal must be up and\r
 *  running with the XERR bit at 0, before calling this function to prevent\r
 *  an immediate fault switchover. This function is not available for PSoC5.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_EnableFaultRecovery(void) \r
 {\r
@@ -1524,19 +1330,12 @@ void CyXTAL_EnableFaultRecovery(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_DisableFaultRecovery\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the fault recovery circuit which will switch to the IMO in the case\r
 *  of a fault in the megahertz crystal circuit. This function is not available\r
 *  for PSoC5.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_DisableFaultRecovery(void) \r
 {\r
@@ -1546,22 +1345,17 @@ void CyXTAL_DisableFaultRecovery(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_SetStartup\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Sets the startup settings for the crystal. The logic model outputs a frequency\r
-*  (setting + 4) MHz when enabled.\r
+*  Sets the startup settings for the crystal. The logic model outputs a\r
+*  frequency (setting + 4) MHz when enabled.\r
 *\r
 *  This is artificial as the actual frequency is determined by an attached\r
 *  external crystal.\r
 *\r
-* Parameters:\r
-*  setting: Valid range [0-31].\r
-*   The value is dependent on the frequency and quality of the crystal being used.\r
-*   Refer to the device TRM and datasheet for more information.\r
-*\r
-* Return:\r
-*  None\r
+*  \param setting: Valid range [0-31].\r
+*   The value is dependent on the frequency and quality of the crystal being\r
+*   used. Refer to the device TRM and datasheet for more information.\r
 *\r
 *******************************************************************************/\r
 void CyXTAL_SetStartup(uint8 setting) \r
@@ -1574,19 +1368,14 @@ void CyXTAL_SetStartup(uint8 setting)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_SetFbVoltage\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the feedback reference voltage to use for the crystal circuit.\r
 *  This function is only available for PSoC3 and PSoC 5LP.\r
 *\r
-* Parameters:\r
-*  setting: Valid range [0-15].\r
+*  \param setting: Valid range [0-15].\r
 *  Refer to the device TRM and datasheet for more information.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_SetFbVoltage(uint8 setting) \r
 {\r
@@ -1597,19 +1386,14 @@ void CyXTAL_SetFbVoltage(uint8 setting)
 \r
 /*******************************************************************************\r
 * Function Name: CyXTAL_SetWdVoltage\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the reference voltage used by the watchdog to detect a failure in the\r
 *  crystal circuit. This function is only available for PSoC3 and PSoC 5LP.\r
 *\r
-* Parameters:\r
-*  setting: Valid range [0-7].\r
+*  \param setting: Valid range [0-7].\r
 *  Refer to the device TRM and datasheet for more information.\r
 *\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyXTAL_SetWdVoltage(uint8 setting) \r
 {\r
@@ -1620,16 +1404,11 @@ void CyXTAL_SetWdVoltage(uint8 setting)
 \r
 /*******************************************************************************\r
 * Function Name: CyHalt\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Halts the CPU.\r
 *\r
-* Parameters:\r
-*  uint8 reason: Value to be used during debugging.\r
-*\r
-* Return:\r
-*  None\r
+*  \param uint8 reason: Value to be used during debugging.\r
 *\r
 *******************************************************************************/\r
 void CyHalt(uint8 reason) CYREENTRANT\r
@@ -1651,17 +1430,10 @@ void CyHalt(uint8 reason) CYREENTRANT
 \r
 /*******************************************************************************\r
 * Function Name: CySoftwareReset\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Forces a device software reset.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CySoftwareReset(void) \r
 {\r
@@ -1671,9 +1443,8 @@ void CySoftwareReset(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDelay\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Blocks for milliseconds.\r
 *\r
 *  Note:\r
@@ -1682,11 +1453,7 @@ void CySoftwareReset(void)
 *  For example, with instruction cache disabled CyDelay(100) would result in\r
 *  about 200 ms delay instead of 100 ms.\r
 *\r
-* Parameters:\r
-*  milliseconds: number of milliseconds to delay.\r
-*\r
-* Return:\r
-*   None\r
+*  \param milliseconds: number of milliseconds to delay.\r
 *\r
 *******************************************************************************/\r
 void CyDelay(uint32 milliseconds) CYREENTRANT\r
@@ -1711,9 +1478,8 @@ void CyDelay(uint32 milliseconds) CYREENTRANT
 \r
     /*******************************************************************************\r
     * Function Name: CyDelayUs\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Blocks for microseconds.\r
     *\r
     *  Note:\r
@@ -1722,13 +1488,9 @@ void CyDelay(uint32 milliseconds) CYREENTRANT
     *   larger. Ex: With instruction cache disabled CyDelayUs(100) would result\r
     *   in about 200us delay instead of 100us.\r
     *\r
-    * Parameters:\r
-    *  uint16 microseconds: number of microseconds to delay.\r
-    *\r
-    * Return:\r
-    *  None\r
+    *  \param uint16 microseconds: number of microseconds to delay.\r
     *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  CyDelayUS has been implemented with the instruction cache assumed enabled.\r
     *  When the instruction cache is disabled on PSoC 5, CyDelayUs will be two times\r
     *  larger. For example, with the instruction cache disabled CyDelayUs(100) would\r
@@ -1748,16 +1510,11 @@ void CyDelay(uint32 milliseconds) CYREENTRANT
 \r
 /*******************************************************************************\r
 * Function Name: CyDelayFreq\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Sets the clock frequency for CyDelay.\r
 *\r
-* Parameters:\r
-*  freq: The frequency of the bus clock in Hertz.\r
-*\r
-* Return:\r
-*  None\r
+*  \param freq: The frequency of the bus clock in Hertz.\r
 *\r
 *******************************************************************************/\r
 void CyDelayFreq(uint32 freq) CYREENTRANT\r
@@ -1779,14 +1536,13 @@ void CyDelayFreq(uint32 freq) CYREENTRANT
 \r
 /*******************************************************************************\r
 * Function Name: CyWdtStart\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables the watchdog timer.\r
 *\r
 *  The timer is configured for the specified count interval, the central\r
-*  timewheel is cleared, the setting for the low power mode is configured and the\r
-*  watchdog timer is enabled.\r
+*  timewheel is cleared, the setting for the low power mode is configured and\r
+*  the watchdog timer is enabled.\r
 *\r
 *  Once enabled the watchdog cannot be disabled. The watchdog counts each time\r
 *  the Central Time Wheel (CTW) reaches the period specified. The watchdog must\r
@@ -1799,15 +1555,14 @@ void CyDelayFreq(uint32 freq) CYREENTRANT
 *  set to be greater than the sleep wakeup period, then feed the dog on each\r
 *  wakeup from Sleep.\r
 *\r
-* Parameters:\r
-*  ticks: One of the four available timer periods. Once WDT enabled, the\r
+*  \param ticks: One of the four available timer periods. Once WDT enabled, the\r
    interval cannot be changed.\r
 *         CYWDT_2_TICKS     -     4 - 6     ms\r
 *         CYWDT_16_TICKS    -    32 - 48    ms\r
 *         CYWDT_128_TICKS   -   256 - 384   ms\r
 *         CYWDT_1024_TICKS  - 2.048 - 3.072 s\r
 *\r
-*  lpMode: Low power mode configuration. This parameter is ignored for PSoC 5.\r
+*  \param lpMode: Low power mode configuration. This parameter is ignored for PSoC 5.\r
 *          The WDT always acts as if CYWDT_LPMODE_NOCHANGE is passed.\r
 *\r
 *          CYWDT_LPMODE_NOCHANGE - No Change\r
@@ -1815,10 +1570,7 @@ void CyDelayFreq(uint32 freq) CYREENTRANT
 *                                 mode\r
 *          CYWDT_LPMODE_DISABLED - Disable WDT during low power mode\r
 *\r
-* Return:\r
-*  None\r
-*\r
-* Side Effects:\r
+* \sideeffect\r
 *  PSoC5: The ILO 1 KHz must be enabled for proper WDT operation. Stopping the\r
 *  ILO 1 kHz could break the active WDT functionality.\r
 *\r
@@ -1843,17 +1595,10 @@ void CyWdtStart(uint8 ticks, uint8 lpMode)
 \r
 /*******************************************************************************\r
 * Function Name: CyWdtClear\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Clears (feeds) the watchdog timer.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
-*\r
 *******************************************************************************/\r
 void CyWdtClear(void) \r
 {\r
@@ -1864,28 +1609,53 @@ void CyWdtClear(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyVdLvDigitEnable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Enables the digital low voltage monitors to generate interrupt on Vddd\r
-*   archives specified threshold and optionally resets the device.\r
+*  Sets the voltage trip level, enables the output of the digital low-voltage\r
+*  monitor, and optionally configures voltage monitor to reset device upon the\r
+*  low-voltage event instead of generating an interrupt.\r
 *\r
-* Parameters:\r
-*  reset: The option to reset the device at a specified Vddd threshold:\r
-*           0 - Device is not reset.\r
-*           1 - Device is reset.\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The Interrupt component API should be used to register the\r
+*  interrupt service routine and to enable/disable associated interrupt.\r
 *\r
-*  threshold: Sets the trip level for the voltage monitor.\r
-*  Values from 1.70 V to 5.45 V are accepted with an interval  of approximately\r
-*  250 mV.\r
+*  \param reset: Enables device reset on digital low-voltage event:\r
+*   Zero - Interrupt on digital low-voltage event\r
+*   Non-zero - Reset on digital low-voltage event\r
 *\r
-* Return:\r
-*  None\r
+*  \param threshold: Sets the trip point of the digital low-voltage monitoring circuit\r
+*   in steps of approximately 250 mV in range from 1.70 V (0x00) to 5.45 V\r
+*   (0x0F). For example, the trip point is set to 1.80 V when the threshold\r
+*   parameter value is 0x04. Refer to the device TRM for the exact trip voltage\r
+*   values.\r
+*\r
+* Side Effects and Restrictions:\r
+*  The voltage resets are momentary. When a voltage reset (analog/digital\r
+*  low-voltage and analog high-voltage) occurs, the RESET_CR1 and RESET_CR3\r
+*  registers are restored to their default values. This means that the voltage\r
+*  monitor circuit is no longer enabled and the device exits reset. If the\r
+*  supply is below the trip level and firmware enables the voltage reset\r
+*  functionality, the device will reset again. This will continue as long as the\r
+*  supply is below the trip level or as long as the user enables the reset\r
+*  functionality of the voltage monitor functionality.\r
+*\r
+*  When any voltage reset occurs, the RESET_SR0 and RESET_SR2 status registers\r
+*  are cleared. This means that analog low-voltage, digital low-voltage and\r
+*  analog high-voltage status bits are not persistent across any voltage reset.\r
 *\r
 *******************************************************************************/\r
 void CyVdLvDigitEnable(uint8 reset, uint8 threshold) \r
 {\r
-    *CY_INT_CLEAR_PTR = 0x01u;\r
+    uint32 intRegTmp;\r
+    uint8 interruptState;\r
+\r
+    interruptState = CyEnterCriticalSection();\r
+\r
+    /* Store interrupt enable state */\r
+    intRegTmp = CY_INT_ENABLE_REG & CY_VD_INT_MASK;\r
+\r
+    /* Disable VD interrupt (write 1) to protect against glitches */\r
+    CY_INT_CLEAR_REG = CY_VD_INT_MASK;\r
 \r
     CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESD_EN));\r
 \r
@@ -1893,10 +1663,10 @@ void CyVdLvDigitEnable(uint8 reset, uint8 threshold)
                             (CY_VD_LVI_TRIP_REG & ((uint8)(~CY_VD_LVI_TRIP_LVID_MASK)));\r
     CY_VD_LVI_HVI_CONTROL_REG |= CY_VD_LVID_EN;\r
 \r
-    /* Timeout to eliminate glitches on LVI/HVI when enabling */\r
+    /* Timeout to eliminate glitches on LVI/HVI when enabling (ID # 127412) */\r
     CyDelayUs(1u);\r
 \r
-    (void)CY_VD_PERSISTENT_STATUS_REG;\r
+    (void) CyVdStickyStatus(CY_VD_LVID);\r
 \r
     if(0u != reset)\r
     {\r
@@ -1907,45 +1677,75 @@ void CyVdLvDigitEnable(uint8 reset, uint8 threshold)
         CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESD_EN));\r
     }\r
 \r
-    *CY_INT_CLR_PEND_PTR = 0x01u;\r
-    *CY_INT_ENABLE_PTR   = 0x01u;\r
+    /* Clear pending interrupt */\r
+    CY_INT_CLR_PEND_REG = CY_VD_INT_MASK;\r
+\r
+    /* Restore interrupt enable state */\r
+    CY_INT_ENABLE_REG = intRegTmp;\r
+\r
+    CyExitCriticalSection(interruptState);\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyVdLvAnalogEnable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Enables the analog low voltage monitors to generate interrupt on Vdda\r
-*   archives specified threshold and optionally resets the device.\r
+*  Sets the voltage trip level, enables the output of the analog low-voltage\r
+*  monitor, and optionally configures voltage monitor to reset device upon the\r
+*  low-voltage event instead of generating an interrupt.\r
 *\r
-* Parameters:\r
-*  reset: The option to reset the device at a specified Vdda threshold:\r
-*           0 - Device is not reset.\r
-*           1 - Device is reset.\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The Interrupt component API should be used to register the\r
+*  interrupt service routine and to enable/disable associated interrupt.\r
 *\r
-*  threshold: Sets the trip level for the voltage monitor.\r
-*  Values from 1.70 V to 5.45 V are accepted with the approximately 250 mV\r
-*  interval.\r
+*  \param reset: Enables device reset on analog low-voltage event:\r
+*  Zero - Interrupt on analog low-voltage event\r
+*  Non-zero - Reset on analog low-voltage event\r
 *\r
-* Return:\r
-*  None\r
+*  \param threshold: Sets the trip point of the analog low-voltage monitoring circuit\r
+*  in steps of approximately 250 mV in range from 1.70 V (0x00) to 5.45 V\r
+*  (0x0F). For example, the trip point is set to 1.80 V when value of the\r
+*  threshold parameter is 0x04. Please refer to the device TRM for the exact\r
+*  trip voltage values.\r
+*\r
+* Side Effects and Restrictions:\r
+*  The voltage resets are momentary. When a voltage reset (analog/digital\r
+*  low-voltage and analog high-voltage) occurs, the RESET_CR1 and RESET_CR3\r
+*  registers are restored to their default values. This means that the voltage\r
+*  monitor circuit is no longer enabled and the device exits reset. If the\r
+*  supply is below the trip level and firmware enables the voltage reset\r
+*  functionality, the device will reset again. This will continue as long as\r
+*  the supply is below the trip level or as long as the user enables the reset\r
+*  functionality of the voltage monitor functionality.\r
+*\r
+*  When any voltage reset occurs, the RESET_SR0 and RESET_SR2 status registers\r
+*  are cleared. This means that analog low-voltage, digital low-voltage and\r
+*  analog high-voltage status bits are not persistent across any voltage reset.\r
 *\r
 *******************************************************************************/\r
 void CyVdLvAnalogEnable(uint8 reset, uint8 threshold) \r
 {\r
-    *CY_INT_CLEAR_PTR = 0x01u;\r
+    uint32 intRegTmp;\r
+    uint8 interruptState;\r
+\r
+    interruptState = CyEnterCriticalSection();\r
+\r
+    /* Store interrupt enable state */\r
+    intRegTmp = CY_INT_ENABLE_REG & CY_VD_INT_MASK;\r
+\r
+    /* Disable VD interrupt (write 1) to protect against glitches */\r
+    CY_INT_CLEAR_REG = CY_VD_INT_MASK;\r
 \r
     CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESA_EN));\r
 \r
     CY_VD_LVI_TRIP_REG = ((uint8)(threshold << 4u)) | (CY_VD_LVI_TRIP_REG & 0x0Fu);\r
     CY_VD_LVI_HVI_CONTROL_REG |= CY_VD_LVIA_EN;\r
 \r
-    /* Timeout to eliminate glitches on LVI/HVI when enabling */\r
+    /* Timeout to eliminate glitches on LVI/HVI when enabling (ID # 127412) */\r
     CyDelayUs(1u);\r
 \r
-    (void)CY_VD_PERSISTENT_STATUS_REG;\r
+    (void) CyVdStickyStatus(CY_VD_LVIA);\r
 \r
     if(0u != reset)\r
     {\r
@@ -1956,33 +1756,35 @@ void CyVdLvAnalogEnable(uint8 reset, uint8 threshold)
         CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESA_EN));\r
     }\r
 \r
-    *CY_INT_CLR_PEND_PTR = 0x01u;\r
-    *CY_INT_ENABLE_PTR   = 0x01u;\r
+    /* Clear pending interrupt */\r
+    CY_INT_CLR_PEND_REG = CY_VD_INT_MASK;\r
+\r
+    /* Restore interrupt enable state */\r
+    CY_INT_ENABLE_REG = intRegTmp;\r
+\r
+    CyExitCriticalSection(interruptState);\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyVdLvDigitDisable\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Disables the digital low voltage monitor (interrupt and device reset are\r
-*  disabled).\r
+****************************************************************************//**\r
 *\r
-* Parameters:\r
-*  None\r
+*  Disables the digital low-voltage monitor, turns off device reset upon the\r
+*  digital low-voltage event, and clears the associated persistent status bit.\r
 *\r
-* Return:\r
-*  None\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The pending interrupt status is not cleared. The Interrupt\r
+*  component API should be used to manipulate with the associated interrupts.\r
 *\r
 *******************************************************************************/\r
 void CyVdLvDigitDisable(void) \r
 {\r
     CY_VD_LVI_HVI_CONTROL_REG &= ((uint8)(~CY_VD_LVID_EN));\r
-\r
     CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESD_EN));\r
+    (void) CyVdStickyStatus(CY_VD_LVID);\r
 \r
-    while(0u != (CY_VD_PERSISTENT_STATUS_REG & 0x07u))\r
+    while(0u != (CyVdStickyStatus(CY_VD_LVID) & CY_VD_LVID))\r
     {\r
 \r
     }\r
@@ -1991,26 +1793,21 @@ void CyVdLvDigitDisable(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyVdLvAnalogDisable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Disables the analog low voltage monitor (interrupt and device reset are\r
-*  disabled).\r
+*  Disables the analog low-voltage monitor, turns off device reset upon the\r
+*  analog low-voltage event, and clears the associated persistent status bit.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The pending interrupt status is not cleared. The Interrupt\r
+*  component API should be used to manipulate with the associated interrupts.\r
 *\r
 *******************************************************************************/\r
 void CyVdLvAnalogDisable(void) \r
 {\r
     CY_VD_LVI_HVI_CONTROL_REG &= ((uint8)(~CY_VD_LVIA_EN));\r
-\r
     CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESA_EN));\r
-\r
-    while(0u != (CY_VD_PERSISTENT_STATUS_REG & 0x07u))\r
+    while(0u != (CyVdStickyStatus(CY_VD_LVIA) & CY_VD_LVIA))\r
     {\r
 \r
     }\r
@@ -2019,105 +1816,134 @@ void CyVdLvAnalogDisable(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyVdHvAnalogEnable\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Enables the analog high voltage monitors to generate interrupt on\r
-*  Vdda archives 5.75 V threshold and optionally resets device.\r
+*  Enables the output of the analog high-voltage monitor and sets 5.75 V\r
+*  threshold detection for Vdda.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
-*  None\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The Interrupt component API should be used to register the\r
+*  interrupt service routine and to enable/disable associated interrupt.\r
 *\r
 *******************************************************************************/\r
 void CyVdHvAnalogEnable(void) \r
 {\r
-    *CY_INT_CLEAR_PTR = 0x01u;\r
+    uint32 intRegTmp;\r
+    uint8 interruptState;\r
+\r
+    interruptState = CyEnterCriticalSection();\r
+\r
+    /* Store interrupt enable state */\r
+    intRegTmp = CY_INT_ENABLE_REG & CY_VD_INT_MASK;\r
+\r
+    /* Disable VD interrupt (write 1) to protect against glitches */\r
+    CY_INT_CLEAR_REG = CY_VD_INT_MASK;\r
 \r
     CY_VD_PRES_CONTROL_REG &= ((uint8)(~CY_VD_PRESA_EN));\r
 \r
     CY_VD_LVI_HVI_CONTROL_REG |= CY_VD_HVIA_EN;\r
 \r
-    /* Timeout to eliminate glitches on the LVI/HVI when enabling */\r
+    /* Timeout to eliminate glitches on the LVI/HVI when enabling (ID # 127412)  */\r
     CyDelayUs(1u);\r
 \r
-    (void) CY_VD_PERSISTENT_STATUS_REG;\r
+    (void) CyVdStickyStatus(CY_VD_HVIA);\r
+\r
+    /* Clear pending interrupt */\r
+    CY_INT_CLR_PEND_REG = CY_VD_INT_MASK;\r
+\r
+    /* Restore interrupt enable state */\r
+    CY_INT_ENABLE_REG = intRegTmp;\r
 \r
-    *CY_INT_CLR_PEND_PTR = 0x01u;\r
-    *CY_INT_ENABLE_PTR   = 0x01u;\r
+    CyExitCriticalSection(interruptState);\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyVdHvAnalogDisable\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Disables the analog low voltage monitor\r
-*  (interrupt and device reset are disabled).\r
+****************************************************************************//**\r
 *\r
-* Parameters:\r
-*  None\r
+*  Disables the analog high-voltage monitor and clears the associated persistent\r
+*  status bit.\r
 *\r
-* Return:\r
-*  None\r
+*  Note The associated interrupt enable/disable state is not changed by the\r
+*  function. The pending interrupt status is not cleared. The Interrupt\r
+*  component API should be used to manipulate with the associated interrupts.\r
 *\r
 *******************************************************************************/\r
 void CyVdHvAnalogDisable(void) \r
 {\r
     CY_VD_LVI_HVI_CONTROL_REG &= ((uint8)(~CY_VD_HVIA_EN));\r
+    while(0u != (CyVdStickyStatus(CY_VD_HVIA) & CY_VD_HVIA))\r
+    {\r
+\r
+    }\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyVdStickyStatus\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
-*  Manages the Reset and Voltage Detection Status Register 0.\r
-*  This register has the interrupt status for the HVIA, LVID and LVIA.\r
-*  This hardware register clears on read.\r
+*  Reads and clears the voltage detection status bits in the RESET_SR0 register.\r
+*  The bits are set to 1 by the voltage monitor circuit when the supply is\r
+*  outside the detector trip point. They stay set to 1 until they are read or\r
+*  a POR / LVI / PRES reset occurs. This function uses a shadow register, so\r
+*  only the bits passed in the parameter will be cleared in the shadow register.\r
 *\r
-* Parameters:\r
-*  mask: Bits in the shadow register to clear.\r
+*  \param mask: Bits in the RESET_SR0 shadow register to clear and return.\r
 *   Define                  Definition\r
 *   CY_VD_LVID            Persistent status of digital LVI.\r
 *   CY_VD_LVIA            Persistent status of analog LVI.\r
 *   CY_VD_HVIA            Persistent status of analog HVI.\r
 *\r
-* Return:\r
-*  Status.  Same enumerated bit values as used for the mask parameter.\r
+* \return\r
+*  Status. Same enumerated bit values as used for the mask parameter. A zero is\r
+*  returned for bits not used in the mask parameter.\r
+*\r
+* Side Effects and Restrictions:\r
+*  When an LVI reset occurs, the RESET_SR0 status registers are cleared. This\r
+*  means that the voltage detection status bits are not persistent across an LVI\r
+*  reset and cannot be used to determine a reset source.\r
 *\r
 *******************************************************************************/\r
 uint8 CyVdStickyStatus(uint8 mask) \r
 {\r
-    uint8 status;\r
+    static uint8 interruptStatus;\r
+    uint8 interruptState;\r
+    uint8 tmpStatus;\r
+\r
+    interruptState = CyEnterCriticalSection();\r
 \r
-    status = CY_VD_PERSISTENT_STATUS_REG;\r
-    CY_VD_PERSISTENT_STATUS_REG &= ((uint8)(~mask));\r
+    interruptStatus |= CY_VD_PERSISTENT_STATUS_REG;\r
+    tmpStatus = interruptStatus & (uint8)(CY_VD_LVID | CY_VD_LVIA | CY_VD_HVIA);\r
+    interruptStatus &= ((uint8)(~mask));\r
 \r
-    return(status);\r
+    CyExitCriticalSection(interruptState);\r
+\r
+    return(tmpStatus);\r
 }\r
 \r
 \r
 /*******************************************************************************\r
 * Function Name: CyVdRealTimeStatus\r
-********************************************************************************\r
-*\r
-* Summary:\r
-*  Returns the real time voltage detection status.\r
+****************************************************************************//**\r
 *\r
-* Parameters:\r
-*  None\r
+*  Reads the real-time voltage detection status bits in the RESET_SR2 register.\r
+*  The bits are set to 1 by the voltage monitor circuit when the supply is\r
+*  outside the detector’s trip point, and set to 0 when the supply is inside the\r
+*  trip point.\r
 *\r
-* Return:\r
-*  Status:\r
+* \return\r
+*  Status of the LVID, LVIA, and HVIA bits in the RESET_SR2 register.\r
 *   Define                  Definition\r
-*   CY_VD_LVID            Persistent status of digital LVI.\r
-*   CY_VD_LVIA            Persistent status of analog LVI.\r
-*   CY_VD_HVIA            Persistent status of analog HVI.\r
+*   CY_VD_LVID            Real-time status of digital LVI.\r
+*   CY_VD_LVIA            Real-time status of analog LVI.\r
+*   CY_VD_HVIA            Real-time status of analog HVI.\r
+*\r
+* Side Effects and Restrictions:\r
+*  When an LVI reset occurs, the RESET_SR2 status registers are cleared. This\r
+*  means that the voltage detection status bits are not persistent across an LVI\r
+*  reset and cannot be used to determine a reset source.\r
 *\r
 *******************************************************************************/\r
 uint8 CyVdRealTimeStatus(void) \r
@@ -2126,7 +1952,7 @@ uint8 CyVdRealTimeStatus(void)
     uint8 vdFlagsState;\r
 \r
     interruptState = CyEnterCriticalSection();\r
-    vdFlagsState = CY_VD_RT_STATUS_REG;\r
+    vdFlagsState = CY_VD_RT_STATUS_REG & (CY_VD_LVID | CY_VD_LVIA | CY_VD_HVIA);\r
     CyExitCriticalSection(interruptState);\r
 \r
     return(vdFlagsState);\r
@@ -2135,15 +1961,11 @@ uint8 CyVdRealTimeStatus(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyDisableInts\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Disables the interrupt enable for each interrupt.\r
 *\r
-* Parameters:\r
-*  None\r
-*\r
-* Return:\r
+* \return\r
 *  32 bit mask of previously enabled interrupts.\r
 *\r
 *******************************************************************************/\r
@@ -2187,16 +2009,11 @@ uint32 CyDisableInts(void)
 \r
 /*******************************************************************************\r
 * Function Name: CyEnableInts\r
-********************************************************************************\r
+****************************************************************************//**\r
 *\r
-* Summary:\r
 *  Enables interrupts to a given state.\r
 *\r
-* Parameters:\r
-*  uint32 mask: 32 bit mask of interrupts to enable.\r
-*\r
-* Return:\r
-*  None\r
+*  \param uint32 mask: 32 bit mask of interrupts to enable.\r
 *\r
 *******************************************************************************/\r
 void CyEnableInts(uint32 mask) \r
@@ -2228,15 +2045,16 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyFlushCache\r
-    ********************************************************************************\r
-    * Summary:\r
-    *  Flushes the PSoC 5/5LP cache by invalidating all entries.\r
-    *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
+    ****************************************************************************//**\r
+    *  Call this API after a flash row erase/write operation to invalidate or flush\r
+    *  any of that particular flash region content already present in the cache.\r
+    *  After a cache flush operation, any access to that flash region after the\r
+    *  erase/write operation would reload the cache with the modified data from the\r
+    *  flash region. If the flash region update involves multiple flash row write\r
+    *  operations, then the flushing of the cache can be done once at the end of\r
+    *  the operation as long as the flash data would not be accessed in the middle\r
+    *  of the multiple row update process. Else, flush the cache after every flash\r
+    *  row write.\r
     *\r
     *******************************************************************************/\r
     void CyFlushCache(void)\r
@@ -2280,14 +2098,12 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntSetSysVector\r
-    ********************************************************************************\r
-    * Summary:\r
+    ****************************************************************************//**\r
     *  Sets the interrupt vector of the specified system interrupt number. System\r
     *  interrupts are present only for the ARM platform. These interrupts are for\r
     *  SysTick, PendSV and others.\r
     *\r
-    * Parameters:\r
-    *  number: System interrupt number:\r
+    *  \param number: System interrupt number:\r
     *    CY_INT_NMI_IRQN                - Non Maskable Interrupt\r
     *    CY_INT_HARD_FAULT_IRQN         - Hard Fault Interrupt\r
     *    CY_INT_MEM_MANAGE_IRQN         - Memory Management Interrupt\r
@@ -2298,9 +2114,9 @@ void CyEnableInts(uint32 mask)
     *    CY_INT_PEND_SV_IRQN            - Pend SV Interrupt\r
     *    CY_INT_SYSTICK_IRQN            - System Tick Interrupt\r
     *\r
-    *  address: Pointer to an interrupt service routine.\r
+    *  \param address: Pointer to an interrupt service routine.\r
     *\r
-    * Return:\r
+    * \return\r
     *   The old ISR vector at this location.\r
     *\r
     *******************************************************************************/\r
@@ -2323,15 +2139,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetSysVector\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Gets the interrupt vector of the specified system interrupt number. System\r
     *  interrupts are present only for the ARM platform. These interrupts are for\r
     *  SysTick, PendSV and others.\r
     *\r
-    * Parameters:\r
-    *  number: System interrupt number:\r
+    *  \param number: System interrupt number:\r
     *    CY_INT_NMI_IRQN                - Non Maskable Interrupt\r
     *    CY_INT_HARD_FAULT_IRQN         - Hard Fault Interrupt\r
     *    CY_INT_MEMORY_MANAGEMENT_IRQN  - Memory Management Interrupt\r
@@ -2342,7 +2156,7 @@ void CyEnableInts(uint32 mask)
     *    CY_INT_PEND_SV_IRQN            - Pend SV Interrupt\r
     *    CY_INT_SYSTICK_IRQN            - System Tick Interrupt\r
     *\r
-    * Return:\r
+    * \return\r
     *   Address of the ISR in the interrupt vector table.\r
     *\r
     *******************************************************************************/\r
@@ -2357,16 +2171,14 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntSetVector\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Sets the interrupt vector of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *  number: Valid range [0-31].  Interrupt number\r
-    *  address: Pointer to an interrupt service routine\r
+    *  \param number: Valid range [0-31].  Interrupt number\r
+    *  \param address: Pointer to an interrupt service routine\r
     *\r
-    * Return:\r
+    * \return\r
     *   Previous interrupt vector value.\r
     *\r
     *******************************************************************************/\r
@@ -2389,15 +2201,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetVector\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Gets the interrupt vector of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *  number: Valid range [0-31].  Interrupt number\r
+    *  \param number: Valid range [0-31].  Interrupt number\r
     *\r
-    * Return:\r
+    * \return\r
     *  The address of the ISR in the interrupt vector table.\r
     *\r
     *******************************************************************************/\r
@@ -2412,17 +2222,12 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntSetPriority\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Sets the Priority of the Interrupt.\r
     *\r
-    * Parameters:\r
-    *  priority: Priority of the interrupt. 0 - 7, 0 being the highest.\r
-    *  number: The number of the interrupt, 0 - 31.\r
-    *\r
-    * Return:\r
-    *  None\r
+    *  \param priority: Priority of the interrupt. 0 - 7, 0 being the highest.\r
+    *  \param number: The number of the interrupt, 0 - 31.\r
     *\r
     *******************************************************************************/\r
     void CyIntSetPriority(uint8 number, uint8 priority)\r
@@ -2435,15 +2240,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetPriority\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Gets the Priority of the Interrupt.\r
     *\r
-    * Parameters:\r
-    *  number: The number of the interrupt, 0 - 31.\r
+    *  \param number: The number of the interrupt, 0 - 31.\r
     *\r
-    * Return:\r
+    * \return\r
     *  Priority of the interrupt. 0 - 7, 0 being the highest.\r
     *\r
     *******************************************************************************/\r
@@ -2461,15 +2264,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetState\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *   Gets the enable state of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *   number: Valid range [0-31].  Interrupt number.\r
+    *   \param number: Valid range [0-31].  Interrupt number.\r
     *\r
-    * Return:\r
+    * \return\r
     *   Enable status: 1 if enabled, 0 if disabled\r
     *\r
     *******************************************************************************/\r
@@ -2489,19 +2290,62 @@ void CyEnableInts(uint32 mask)
 \r
 #else   /* PSoC3 */\r
 \r
+    /*******************************************************************************\r
+    * Function Name: IntDefaultHandler\r
+    ****************************************************************************//**\r
+    *\r
+    *  This function is called for all interrupts, other than a reset that gets\r
+    *  called before the system is setup.\r
+    *\r
+    * Theory:\r
+    *  Any value other than zero is acceptable.\r
+    *\r
+    *******************************************************************************/\r
+    CY_ISR(IntDefaultHandler)\r
+    {\r
+        #ifdef CY_BOOT_INT_DEFAULT_HANDLER_EXCEPTION_ENTRY_CALLBACK\r
+            CyBoot_IntDefaultHandler_Exception_EntryCallback();\r
+        #endif /* CY_BOOT_INT_DEFAULT_HANDLER_EXCEPTION_ENTRY_CALLBACK */\r
+\r
+        while(1)\r
+        {\r
+            /***********************************************************************\r
+            * We must not get here. If we do, a serious problem occurs, so go\r
+            * into an infinite loop.\r
+            ***********************************************************************/\r
+        }\r
+    }\r
+\r
+\r
+    /*******************************************************************************\r
+    * Function Name: IntDefaultHandler\r
+    ****************************************************************************//**\r
+    *\r
+    *  This function is called during startup to initialize interrupt address vector\r
+    *  registers with the address of the IntDefaultHandler().\r
+    *\r
+    *******************************************************************************/\r
+    void CyIntInitVectors(void) \r
+    {\r
+        uint8 i;\r
+\r
+        for (i = 0; i <= CY_INT_NUMBER_MAX; i++)\r
+        {\r
+            CY_SET_REG16(&CY_INT_VECT_TABLE[i], (uint16) &IntDefaultHandler);\r
+        }\r
+    }\r
+\r
 \r
     /*******************************************************************************\r
     * Function Name: CyIntSetVector\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Sets the interrupt vector of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *  number:  Valid range [0-31].  Interrupt number\r
-    *  address: Pointer to an interrupt service routine\r
+    *  \param number:  Valid range [0-31].  Interrupt number\r
+    *  \param address: Pointer to an interrupt service routine\r
     *\r
-    * Return:\r
+    * \return\r
     *  Previous interrupt vector value.\r
     *\r
     *******************************************************************************/\r
@@ -2524,15 +2368,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetVector\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Gets the interrupt vector of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *  number: Valid range [0-31].  Interrupt number\r
+    *  \param number: Valid range [0-31].  Interrupt number\r
     *\r
-    * Return:\r
+    * \return\r
     *  Address of the ISR in the interrupt vector table.\r
     *\r
     *******************************************************************************/\r
@@ -2547,17 +2389,12 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntSetPriority\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Sets the Priority of the Interrupt.\r
     *\r
-    * Parameters:\r
-    *  priority: Priority of the interrupt. 0 - 7, 0 being the highest.\r
-    *  number:   The number of the interrupt, 0 - 31.\r
-    *\r
-    * Return:\r
-    *  None\r
+    *  \param priority: Priority of the interrupt. 0 - 7, 0 being the highest.\r
+    *  \param number:   The number of the interrupt, 0 - 31.\r
     *\r
     *******************************************************************************/\r
     void CyIntSetPriority(uint8 number, uint8 priority) \r
@@ -2573,15 +2410,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetPriority\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Gets the Priority of the Interrupt.\r
     *\r
-    * Parameters:\r
-    *  number: The number of the interrupt, 0 - 31.\r
+    *  \param number: The number of the interrupt, 0 - 31.\r
     *\r
-    * Return:\r
+    * \return\r
     *  Priority of the interrupt. 0 - 7, 0 being the highest.\r
     *\r
     *******************************************************************************/\r
@@ -2599,15 +2434,13 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CyIntGetState\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *   Gets the enable state of the specified interrupt number.\r
     *\r
-    * Parameters:\r
-    *   number: Valid range [0-31].  Interrupt number.\r
+    *   \param number: Valid range [0-31].  Interrupt number.\r
     *\r
-    * Return:\r
+    * \return\r
     *   Enable status: 1 if enabled, 0 if disabled\r
     *\r
     *******************************************************************************/\r
@@ -2624,7 +2457,6 @@ void CyEnableInts(uint32 mask)
         return ((0u != (*stateReg & ((uint8)(1u << (0x07u & number))))) ? ((uint8)(1u)) : ((uint8)(0u)));\r
     }\r
 \r
-\r
 #endif  /* (CY_PSOC5) */\r
 \r
 \r
@@ -2632,9 +2464,8 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySetScPumps\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  If 1 is passed as a parameter:\r
     *   - if any of the SC blocks are used - enable pumps for the SC blocks and\r
     *     start boost clock.\r
@@ -2644,20 +2475,17 @@ void CyEnableInts(uint32 mask)
     *  If non-1 value is passed as a parameter:\r
     *   - If all SC blocks are not used - disable pumps for the SC blocks and\r
     *     stop the boost clock.\r
-    *   - For each enabled SC block clear the boost clock index and disable the  boost\r
-    *     clock.\r
+    *   - For each enabled SC block clear the boost clock index and disable the\r
+    *     boost clock.\r
     *\r
     *  The global variable CyScPumpEnabled is updated to be equal to passed the\r
     *  parameter.\r
     *\r
-    * Parameters:\r
-    *   uint8 enable: Enable/disable SC pumps and the boost clock for the enabled SC block.\r
+    *   \param uint8 enable: Enable/disable SC pumps and the boost clock for the enabled\r
+    *                 \param SC block:\r
     *                 1 - Enable\r
     *                 0 - Disable\r
     *\r
-    * Return:\r
-    *   None\r
-    *\r
     *******************************************************************************/\r
     void CySetScPumps(uint8 enable) \r
     {\r
@@ -2718,20 +2546,13 @@ void CyEnableInts(uint32 mask)
 #if(CY_PSOC5)\r
     /*******************************************************************************\r
     * Function Name: CySysTickStart\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Configures the SysTick timer to generate interrupt every 1 ms by call to the\r
     *  CySysTickInit() function and starts it by calling CySysTickEnable() function.\r
     *  Refer to the corresponding function description for the details.\r
 \r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  Clears SysTick count flag if it was set\r
     *\r
     *******************************************************************************/\r
@@ -2749,21 +2570,14 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySysTickInit\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Initializes the callback addresses with pointers to NULL, associates the\r
     *  SysTick system vector with the function that is responsible for calling\r
     *  registered callback functions, configures SysTick timer to generate interrupt\r
     * every 1 ms.\r
     *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  Clears SysTick count flag if it was set.\r
     *\r
     *  The 1 ms interrupt interval is configured based on the frequency determined\r
@@ -2780,7 +2594,7 @@ void CyEnableInts(uint32 mask)
             CySysTickCallbacks[i] = (void *) 0;\r
         }\r
 \r
-       (void) CyIntSetSysVector(CY_INT_SYSTICK_IRQN, &CySysTickServiceCallbacks);\r
+        (void) CyIntSetSysVector(CY_INT_SYSTICK_IRQN, &CySysTickServiceCallbacks);\r
         CySysTickSetClockSource(CY_SYS_SYST_CSR_CLK_SRC_SYSCLK);\r
         CySysTickSetReload(cydelay_freq_hz/1000u);\r
         CySysTickClear();\r
@@ -2790,18 +2604,11 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySysTickEnable\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Enables the SysTick timer and its interrupt.\r
     *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  Clears SysTick count flag if it was set\r
     *\r
     *******************************************************************************/\r
@@ -2814,18 +2621,11 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySysTickStop\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Stops the system timer (SysTick).\r
     *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  Clears SysTick count flag if it was set\r
     *\r
     *******************************************************************************/\r
@@ -2837,18 +2637,11 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySysTickEnableInterrupt\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r
     *\r
-    * Summary:\r
     *  Enables the SysTick interrupt.\r
     *\r
-    * Parameters:\r
-    *  None\r
-    *\r
-    * Return:\r
-    *  None\r
-    *\r
-    * Side Effects:\r
+    * \sideeffect\r
     *  Clears SysTick count flag if it was set\r
     *\r
     *******************************************************************************/\r
@@ -2860,18 +2653,11 @@ void CyEnableInts(uint32 mask)
 \r
     /*******************************************************************************\r
     * Function Name: CySysTickDisableInterrupt\r
-    ********************************************************************************\r
+    ****************************************************************************//**\r