From 4ec847ce58ca3af5f881ed4309ad9eb59f23f156 Mon Sep 17 00:00:00 2001 From: sedov Date: Fri, 9 Aug 2024 15:08:23 +0300 Subject: [PATCH] =?UTF-8?q?dev(UML-2538):=20=D0=9F=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=20=D0=B4=D0=BB=D1=8F=20=D1=82=D0=B5=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BB=D0=B5=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- RemoteSystemsTempFiles/.project | 12 + i2c_ex1_master/.ccsproject | 18 + i2c_ex1_master/.cproject | 209 + .../.launches/i2c_ex1_master.launch | 19 + i2c_ex1_master/.project | 37 + .../org.eclipse.cdt.codan.core.prefs | 3 + .../org.eclipse.cdt.debug.core.prefs | 2 + .../org.eclipse.core.resources.prefs | 6 + i2c_ex1_master/2838x_FLASH_lnk_cpu1.cmd | 137 + i2c_ex1_master/2838x_RAM_lnk_cpu1.cmd | 111 + i2c_ex1_master/CPU1_RAM/ccsObjs.opt | 17 + .../CPU1_RAM/f2838x_codestartbranch.obj | Bin 0 -> 3724 bytes i2c_ex1_master/CPU1_RAM/f2838x_cputimers.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_cputimers.obj | Bin 0 -> 10504 bytes i2c_ex1_master/CPU1_RAM/f2838x_defaultisr.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_defaultisr.obj | Bin 0 -> 289200 bytes i2c_ex1_master/CPU1_RAM/f2838x_dma.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_dma.obj | Bin 0 -> 99944 bytes i2c_ex1_master/CPU1_RAM/f2838x_epwm.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_epwm.obj | Bin 0 -> 101144 bytes .../CPU1_RAM/f2838x_globalvariabledefs.d | 180 + .../CPU1_RAM/f2838x_globalvariabledefs.obj | Bin 0 -> 786000 bytes i2c_ex1_master/CPU1_RAM/f2838x_gpio.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_gpio.obj | Bin 0 -> 144728 bytes i2c_ex1_master/CPU1_RAM/f2838x_piectrl.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_piectrl.obj | Bin 0 -> 21732 bytes i2c_ex1_master/CPU1_RAM/f2838x_pievect.d | 231 + i2c_ex1_master/CPU1_RAM/f2838x_pievect.obj | Bin 0 -> 42552 bytes i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.d | 240 + i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.obj | Bin 0 -> 144464 bytes i2c_ex1_master/CPU1_RAM/f2838x_usdelay.obj | Bin 0 -> 2480 bytes i2c_ex1_master/CPU1_RAM/fonts.d | 24 + i2c_ex1_master/CPU1_RAM/fonts.obj | Bin 0 -> 9888 bytes i2c_ex1_master/CPU1_RAM/i2c_ex1_master.d | 249 + i2c_ex1_master/CPU1_RAM/i2c_ex1_master.map | 1326 + i2c_ex1_master/CPU1_RAM/i2c_ex1_master.obj | Bin 0 -> 9716 bytes i2c_ex1_master/CPU1_RAM/i2c_ex1_master.out | Bin 0 -> 720060 bytes .../CPU1_RAM/i2c_ex1_master_linkInfo.xml | 22201 ++++++++++++++++ i2c_ex1_master/CPU1_RAM/i2c_oled.d | 249 + i2c_ex1_master/CPU1_RAM/i2c_oled.obj | Bin 0 -> 63280 bytes i2c_ex1_master/CPU1_RAM/makefile | 168 + i2c_ex1_master/CPU1_RAM/objects.mk | 8 + i2c_ex1_master/CPU1_RAM/sources.mk | 115 + i2c_ex1_master/CPU1_RAM/subdir_rules.mk | 22 + i2c_ex1_master/CPU1_RAM/subdir_vars.mk | 116 + i2c_ex1_master/f2838x_codestartbranch.asm | 112 + i2c_ex1_master/f2838x_cputimers.c | 181 + i2c_ex1_master/f2838x_defaultisr.c | 4635 ++++ i2c_ex1_master/f2838x_dma.c | 1100 + i2c_ex1_master/f2838x_epwm.c | 642 + i2c_ex1_master/f2838x_globalvariabledefs.c | 1561 ++ i2c_ex1_master/f2838x_gpio.c | 472 + .../f2838x_headers_nonBIOS_cpu1.cmd | 388 + i2c_ex1_master/f2838x_piectrl.c | 121 + i2c_ex1_master/f2838x_pievect.c | 309 + i2c_ex1_master/f2838x_sysctrl.c | 1463 + i2c_ex1_master/f2838x_usdelay.asm | 108 + i2c_ex1_master/fonts.c | 345 + i2c_ex1_master/fonts.h | 132 + i2c_ex1_master/i2c_ex1_master.c | 185 + i2c_ex1_master/i2c_oled.c | 669 + i2c_ex1_master/i2c_oled.h | 53 + .../targetConfigs/TMS320F28388D.ccxml | 55 + 63 files changed, 39617 insertions(+) create mode 100644 RemoteSystemsTempFiles/.project create mode 100644 i2c_ex1_master/.ccsproject create mode 100644 i2c_ex1_master/.cproject create mode 100644 i2c_ex1_master/.launches/i2c_ex1_master.launch create mode 100644 i2c_ex1_master/.project create mode 100644 i2c_ex1_master/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 i2c_ex1_master/.settings/org.eclipse.cdt.debug.core.prefs create mode 100644 i2c_ex1_master/.settings/org.eclipse.core.resources.prefs create mode 100644 i2c_ex1_master/2838x_FLASH_lnk_cpu1.cmd create mode 100644 i2c_ex1_master/2838x_RAM_lnk_cpu1.cmd create mode 100644 i2c_ex1_master/CPU1_RAM/ccsObjs.opt create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_codestartbranch.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_cputimers.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_cputimers.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_defaultisr.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_defaultisr.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_dma.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_dma.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_epwm.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_epwm.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_gpio.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_gpio.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_piectrl.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_piectrl.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_pievect.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_pievect.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.d create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.obj create mode 100644 i2c_ex1_master/CPU1_RAM/f2838x_usdelay.obj create mode 100644 i2c_ex1_master/CPU1_RAM/fonts.d create mode 100644 i2c_ex1_master/CPU1_RAM/fonts.obj create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_ex1_master.d create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_ex1_master.map create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_ex1_master.obj create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_ex1_master.out create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_ex1_master_linkInfo.xml create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_oled.d create mode 100644 i2c_ex1_master/CPU1_RAM/i2c_oled.obj create mode 100644 i2c_ex1_master/CPU1_RAM/makefile create mode 100644 i2c_ex1_master/CPU1_RAM/objects.mk create mode 100644 i2c_ex1_master/CPU1_RAM/sources.mk create mode 100644 i2c_ex1_master/CPU1_RAM/subdir_rules.mk create mode 100644 i2c_ex1_master/CPU1_RAM/subdir_vars.mk create mode 100644 i2c_ex1_master/f2838x_codestartbranch.asm create mode 100644 i2c_ex1_master/f2838x_cputimers.c create mode 100644 i2c_ex1_master/f2838x_defaultisr.c create mode 100644 i2c_ex1_master/f2838x_dma.c create mode 100644 i2c_ex1_master/f2838x_epwm.c create mode 100644 i2c_ex1_master/f2838x_globalvariabledefs.c create mode 100644 i2c_ex1_master/f2838x_gpio.c create mode 100644 i2c_ex1_master/f2838x_headers_nonBIOS_cpu1.cmd create mode 100644 i2c_ex1_master/f2838x_piectrl.c create mode 100644 i2c_ex1_master/f2838x_pievect.c create mode 100644 i2c_ex1_master/f2838x_sysctrl.c create mode 100644 i2c_ex1_master/f2838x_usdelay.asm create mode 100644 i2c_ex1_master/fonts.c create mode 100644 i2c_ex1_master/fonts.h create mode 100644 i2c_ex1_master/i2c_ex1_master.c create mode 100644 i2c_ex1_master/i2c_oled.c create mode 100644 i2c_ex1_master/i2c_oled.h create mode 100644 i2c_ex1_master/targetConfigs/TMS320F28388D.ccxml diff --git a/RemoteSystemsTempFiles/.project b/RemoteSystemsTempFiles/.project new file mode 100644 index 0000000..5447a64 --- /dev/null +++ b/RemoteSystemsTempFiles/.project @@ -0,0 +1,12 @@ + + + RemoteSystemsTempFiles + + + + + + + org.eclipse.rse.ui.remoteSystemsTempNature + + diff --git a/i2c_ex1_master/.ccsproject b/i2c_ex1_master/.ccsproject new file mode 100644 index 0000000..b8778e7 --- /dev/null +++ b/i2c_ex1_master/.ccsproject @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/i2c_ex1_master/.cproject b/i2c_ex1_master/.cproject new file mode 100644 index 0000000..c9fb160 --- /dev/null +++ b/i2c_ex1_master/.cproject @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/i2c_ex1_master/.launches/i2c_ex1_master.launch b/i2c_ex1_master/.launches/i2c_ex1_master.launch new file mode 100644 index 0000000..6205ce1 --- /dev/null +++ b/i2c_ex1_master/.launches/i2c_ex1_master.launch @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/i2c_ex1_master/.project b/i2c_ex1_master/.project new file mode 100644 index 0000000..f55009c --- /dev/null +++ b/i2c_ex1_master/.project @@ -0,0 +1,37 @@ + + + i2c_ex1_master + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.ti.ccstudio.core.ccsNature + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + C2000WARE_COMMON_INCLUDE + $%7BCOM_TI_C2000WARE_SOFTWARE_PACKAGE_INSTALL_DIR%7D/device_support/f2838x/common/include + + + C2000WARE_HEADERS_INCLUDE + $%7BCOM_TI_C2000WARE_SOFTWARE_PACKAGE_INSTALL_DIR%7D/device_support/f2838x/headers/include + + + diff --git a/i2c_ex1_master/.settings/org.eclipse.cdt.codan.core.prefs b/i2c_ex1_master/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 0000000..f653028 --- /dev/null +++ b/i2c_ex1_master/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +inEditor=false +onBuild=false diff --git a/i2c_ex1_master/.settings/org.eclipse.cdt.debug.core.prefs b/i2c_ex1_master/.settings/org.eclipse.cdt.debug.core.prefs new file mode 100644 index 0000000..2adc7b1 --- /dev/null +++ b/i2c_ex1_master/.settings/org.eclipse.cdt.debug.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker diff --git a/i2c_ex1_master/.settings/org.eclipse.core.resources.prefs b/i2c_ex1_master/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..56aa170 --- /dev/null +++ b/i2c_ex1_master/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//CPU1_RAM/makefile=UTF-8 +encoding//CPU1_RAM/objects.mk=UTF-8 +encoding//CPU1_RAM/sources.mk=UTF-8 +encoding//CPU1_RAM/subdir_rules.mk=UTF-8 +encoding//CPU1_RAM/subdir_vars.mk=UTF-8 diff --git a/i2c_ex1_master/2838x_FLASH_lnk_cpu1.cmd b/i2c_ex1_master/2838x_FLASH_lnk_cpu1.cmd new file mode 100644 index 0000000..43f0b33 --- /dev/null +++ b/i2c_ex1_master/2838x_FLASH_lnk_cpu1.cmd @@ -0,0 +1,137 @@ + +MEMORY +{ + /* BEGIN is used for the "boot to Flash" bootloader mode */ + BEGIN : origin = 0x080000, length = 0x000002 + BOOT_RSVD : origin = 0x000002, length = 0x0001AF /* Part of M0, BOOT rom will use this for stack */ + RAMM0 : origin = 0x0001B1, length = 0x00024F + RAMM1 : origin = 0x000400, length = 0x0003F8 /* on-chip RAM block M1 */ +// RAMM1_RSVD : origin = 0x0007F8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ + RAMD0 : origin = 0x00C000, length = 0x000800 + RAMD1 : origin = 0x00C800, length = 0x000800 + RAMLS0 : origin = 0x008000, length = 0x000800 + RAMLS1 : origin = 0x008800, length = 0x000800 + RAMLS2 : origin = 0x009000, length = 0x000800 + RAMLS3 : origin = 0x009800, length = 0x000800 + RAMLS4 : origin = 0x00A000, length = 0x000800 + RAMLS5 : origin = 0x00A800, length = 0x000800 + RAMLS6 : origin = 0x00B000, length = 0x000800 + RAMLS7 : origin = 0x00B800, length = 0x000800 + RAMGS0 : origin = 0x00D000, length = 0x001000 + RAMGS1 : origin = 0x00E000, length = 0x001000 + RAMGS2 : origin = 0x00F000, length = 0x001000 + RAMGS3 : origin = 0x010000, length = 0x001000 + RAMGS4 : origin = 0x011000, length = 0x001000 + RAMGS5 : origin = 0x012000, length = 0x001000 + RAMGS6 : origin = 0x013000, length = 0x001000 + RAMGS7 : origin = 0x014000, length = 0x001000 + RAMGS8 : origin = 0x015000, length = 0x001000 + RAMGS9 : origin = 0x016000, length = 0x001000 + RAMGS10 : origin = 0x017000, length = 0x001000 + RAMGS11 : origin = 0x018000, length = 0x001000 + RAMGS12 : origin = 0x019000, length = 0x001000 + RAMGS13 : origin = 0x01A000, length = 0x001000 + RAMGS14 : origin = 0x01B000, length = 0x001000 + RAMGS15 : origin = 0x01C000, length = 0x000FF8 +// RAMGS15_RSVD : origin = 0x01CFF8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ + + /* Flash sectors */ + FLASH0 : origin = 0x080002, length = 0x001FFE /* on-chip Flash */ + FLASH1 : origin = 0x082000, length = 0x002000 /* on-chip Flash */ + FLASH2 : origin = 0x084000, length = 0x002000 /* on-chip Flash */ + FLASH3 : origin = 0x086000, length = 0x002000 /* on-chip Flash */ + FLASH4 : origin = 0x088000, length = 0x008000 /* on-chip Flash */ + FLASH5 : origin = 0x090000, length = 0x008000 /* on-chip Flash */ + FLASH6 : origin = 0x098000, length = 0x008000 /* on-chip Flash */ + FLASH7 : origin = 0x0A0000, length = 0x008000 /* on-chip Flash */ + FLASH8 : origin = 0x0A8000, length = 0x008000 /* on-chip Flash */ + FLASH9 : origin = 0x0B0000, length = 0x008000 /* on-chip Flash */ + FLASH10 : origin = 0x0B8000, length = 0x002000 /* on-chip Flash */ + FLASH11 : origin = 0x0BA000, length = 0x002000 /* on-chip Flash */ + FLASH12 : origin = 0x0BC000, length = 0x002000 /* on-chip Flash */ + FLASH13 : origin = 0x0BE000, length = 0x001FF0 /* on-chip Flash */ +// FLASH13_RSVD : origin = 0x0BFFF0, length = 0x000010 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ + + CPU1TOCPU2RAM : origin = 0x03A000, length = 0x000800 + CPU2TOCPU1RAM : origin = 0x03B000, length = 0x000800 + CPUTOCMRAM : origin = 0x039000, length = 0x000800 + CMTOCPURAM : origin = 0x038000, length = 0x000800 + + CANA_MSG_RAM : origin = 0x049000, length = 0x000800 + CANB_MSG_RAM : origin = 0x04B000, length = 0x000800 + + RESET : origin = 0x3FFFC0, length = 0x000002 +} + +SECTIONS +{ + codestart : > BEGIN, ALIGN(8) + .text : >> FLASH1 | FLASH2 | FLASH3 | FLASH4, ALIGN(8) + .cinit : > FLASH4, ALIGN(8) + .switch : > FLASH1, ALIGN(8) + .reset : > RESET, TYPE = DSECT /* not used, */ + .stack : > RAMM1 + +#if defined(__TI_EABI__) + .init_array : > FLASH1, ALIGN(8) + .bss : > RAMLS5 + .bss:output : > RAMLS3 + .bss:cio : > RAMLS5 + .data : > RAMLS5 + .sysmem : > RAMLS5 + /* Initalized sections go in Flash */ + .const : > FLASH5, ALIGN(8) +#else + .pinit : > FLASH1, ALIGN(8) + .ebss : > RAMLS5 + .esysmem : > RAMLS5 + .cio : > RAMLS5 + /* Initalized sections go in Flash */ + .econst : >> FLASH4 | FLASH5, ALIGN(8) +#endif + + ramgs0 : > RAMGS0, type=NOINIT + ramgs1 : > RAMGS1, type=NOINIT + + MSGRAM_CPU1_TO_CPU2 : > CPU1TOCPU2RAM, type=NOINIT + MSGRAM_CPU2_TO_CPU1 : > CPU2TOCPU1RAM, type=NOINIT + MSGRAM_CPU_TO_CM : > CPUTOCMRAM, type=NOINIT + MSGRAM_CM_TO_CPU : > CMTOCPURAM, type=NOINIT + + /* The following section definition are for SDFM examples */ + Filter_RegsFile : > RAMGS0 + Filter1_RegsFile : > RAMGS1, fill=0x1111 + Filter2_RegsFile : > RAMGS2, fill=0x2222 + Filter3_RegsFile : > RAMGS3, fill=0x3333 + Filter4_RegsFile : > RAMGS4, fill=0x4444 + Difference_RegsFile : >RAMGS5, fill=0x3333 + + #if defined(__TI_EABI__) + .TI.ramfunc : {} LOAD = FLASH3, + RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3, + LOAD_START(RamfuncsLoadStart), + LOAD_SIZE(RamfuncsLoadSize), + LOAD_END(RamfuncsLoadEnd), + RUN_START(RamfuncsRunStart), + RUN_SIZE(RamfuncsRunSize), + RUN_END(RamfuncsRunEnd), + ALIGN(8) + #else + .TI.ramfunc : {} LOAD = FLASH3, + RUN = RAMLS0 | RAMLS1 | RAMLS2 |RAMLS3, + LOAD_START(_RamfuncsLoadStart), + LOAD_SIZE(_RamfuncsLoadSize), + LOAD_END(_RamfuncsLoadEnd), + RUN_START(_RamfuncsRunStart), + RUN_SIZE(_RamfuncsRunSize), + RUN_END(_RamfuncsRunEnd), + ALIGN(8) + #endif + +} + +/* +//=========================================================================== +// End of file. +//=========================================================================== +*/ diff --git a/i2c_ex1_master/2838x_RAM_lnk_cpu1.cmd b/i2c_ex1_master/2838x_RAM_lnk_cpu1.cmd new file mode 100644 index 0000000..3182312 --- /dev/null +++ b/i2c_ex1_master/2838x_RAM_lnk_cpu1.cmd @@ -0,0 +1,111 @@ +MEMORY +{ + /* BEGIN is used for the "boot to SARAM" bootloader mode */ + BEGIN : origin = 0x000000, length = 0x000002 + BOOT_RSVD : origin = 0x000002, length = 0x0001AF /* Part of M0, BOOT rom will use this for stack */ + RAMM0 : origin = 0x0001B1, length = 0x00024F + RAMM1 : origin = 0x000400, length = 0x0003F8 /* on-chip RAM block M1 */ +// RAMM1_RSVD : origin = 0x0007F8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ + RAMD0 : origin = 0x00C000, length = 0x000800 + RAMD1 : origin = 0x00C800, length = 0x000800 + RAMLS0 : origin = 0x008000, length = 0x000800 + RAMLS1 : origin = 0x008800, length = 0x000800 + RAMLS2 : origin = 0x009000, length = 0x000800 + RAMLS3 : origin = 0x009800, length = 0x000800 + RAMLS4 : origin = 0x00A000, length = 0x000800 + RAMLS5 : origin = 0x00A800, length = 0x000800 + RAMLS6 : origin = 0x00B000, length = 0x000800 + RAMLS7 : origin = 0x00B800, length = 0x000800 + RAMGS0 : origin = 0x00D000, length = 0x001000 + RAMGS1 : origin = 0x00E000, length = 0x001000 + RAMGS2 : origin = 0x00F000, length = 0x001000 + RAMGS3 : origin = 0x010000, length = 0x001000 + RAMGS4 : origin = 0x011000, length = 0x001000 + RAMGS5 : origin = 0x012000, length = 0x001000 + RAMGS6 : origin = 0x013000, length = 0x001000 + RAMGS7 : origin = 0x014000, length = 0x001000 + RAMGS8 : origin = 0x015000, length = 0x001000 + RAMGS9 : origin = 0x016000, length = 0x001000 + RAMGS10 : origin = 0x017000, length = 0x001000 + RAMGS11 : origin = 0x018000, length = 0x001000 + RAMGS12 : origin = 0x019000, length = 0x001000 + RAMGS13 : origin = 0x01A000, length = 0x001000 + RAMGS14 : origin = 0x01B000, length = 0x001000 + RAMGS15 : origin = 0x01C000, length = 0x000FF8 +// RAMGS15_RSVD : origin = 0x01CFF8, length = 0x000008 /* Reserve and do not use for code as per the errata advisory "Memory: Prefetching Beyond Valid Memory" */ + + /* Flash sectors */ + FLASH0 : origin = 0x080000, length = 0x002000 /* on-chip Flash */ + FLASH1 : origin = 0x082000, length = 0x002000 /* on-chip Flash */ + FLASH2 : origin = 0x084000, length = 0x002000 /* on-chip Flash */ + FLASH3 : origin = 0x086000, length = 0x002000 /* on-chip Flash */ + FLASH4 : origin = 0x088000, length = 0x008000 /* on-chip Flash */ + FLASH5 : origin = 0x090000, length = 0x008000 /* on-chip Flash */ + FLASH6 : origin = 0x098000, length = 0x008000 /* on-chip Flash */ + FLASH7 : origin = 0x0A0000, length = 0x008000 /* on-chip Flash */ + FLASH8 : origin = 0x0A8000, length = 0x008000 /* on-chip Flash */ + FLASH9 : origin = 0x0B0000, length = 0x008000 /* on-chip Flash */ + FLASH10 : origin = 0x0B8000, length = 0x002000 /* on-chip Flash */ + FLASH11 : origin = 0x0BA000, length = 0x002000 /* on-chip Flash */ + FLASH12 : origin = 0x0BC000, length = 0x002000 /* on-chip Flash */ + FLASH13 : origin = 0x0BE000, length = 0x002000 /* on-chip Flash */ + CPU1TOCPU2RAM : origin = 0x03A000, length = 0x000800 + CPU2TOCPU1RAM : origin = 0x03B000, length = 0x000800 + + CPUTOCMRAM : origin = 0x039000, length = 0x000800 + CMTOCPURAM : origin = 0x038000, length = 0x000800 + + CANA_MSG_RAM : origin = 0x049000, length = 0x000800 + CANB_MSG_RAM : origin = 0x04B000, length = 0x000800 + RESET : origin = 0x3FFFC0, length = 0x000002 +} + + +SECTIONS +{ + codestart : > BEGIN + .text : >> RAMD0 | RAMD1 | RAMLS0 | RAMLS1 | RAMLS2 | RAMLS3 + .cinit : > RAMM0 + .switch : > RAMM0 + .reset : > RESET, TYPE = DSECT /* not used, */ + + .stack : > RAMM1 +#if defined(__TI_EABI__) + .bss : > RAMLS5 + .bss:output : > RAMLS3 + .init_array : > RAMM0 + .const : > RAMLS5 | RAMLS6 + .data : > RAMLS5 + .sysmem : > RAMLS4 +#else + .pinit : > RAMM0 + .ebss : >> RAMLS5 | RAMLS6 + .econst : > RAMLS5 + .esysmem : > RAMLS5 +#endif + + ramgs0 : > RAMGS0, type=NOINIT + ramgs1 : > RAMGS1, type=NOINIT + + MSGRAM_CPU1_TO_CPU2 > CPU1TOCPU2RAM, type=NOINIT + MSGRAM_CPU2_TO_CPU1 > CPU2TOCPU1RAM, type=NOINIT + MSGRAM_CPU_TO_CM > CPUTOCMRAM, type=NOINIT + MSGRAM_CM_TO_CPU > CMTOCPURAM, type=NOINIT + + /* The following section definition are for SDFM examples */ + Filter_RegsFile : > RAMGS0 + Filter1_RegsFile : > RAMGS1, fill=0x1111 + Filter2_RegsFile : > RAMGS2, fill=0x2222 + Filter3_RegsFile : > RAMGS3, fill=0x3333 + Filter4_RegsFile : > RAMGS4, fill=0x4444 + Difference_RegsFile : >RAMGS5, fill=0x3333 + + .TI.ramfunc : {} > RAMM0 + +} + +/* +//=========================================================================== +// End of file. +//=========================================================================== +*/ diff --git a/i2c_ex1_master/CPU1_RAM/ccsObjs.opt b/i2c_ex1_master/CPU1_RAM/ccsObjs.opt new file mode 100644 index 0000000..47d6856 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/ccsObjs.opt @@ -0,0 +1,17 @@ +"./f2838x_codestartbranch.obj" +"./f2838x_cputimers.obj" +"./f2838x_defaultisr.obj" +"./f2838x_dma.obj" +"./f2838x_epwm.obj" +"./f2838x_globalvariabledefs.obj" +"./f2838x_gpio.obj" +"./f2838x_piectrl.obj" +"./f2838x_pievect.obj" +"./f2838x_sysctrl.obj" +"./f2838x_usdelay.obj" +"./fonts.obj" +"./i2c_ex1_master.obj" +"./i2c_oled.obj" +"../2838x_RAM_lnk_cpu1.cmd" +"../f2838x_headers_nonBIOS_cpu1.cmd" +-llibc.a diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_codestartbranch.obj b/i2c_ex1_master/CPU1_RAM/f2838x_codestartbranch.obj new file mode 100644 index 0000000000000000000000000000000000000000..4c5531e9bc5171850d435350206e28f96bf5c874 GIT binary patch literal 3724 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 o&g=CXJBq1?{CK@TBNHqxvh>C(p6BQ8=!HOMw zSM1n(Z`iS8uh@9bocUyD&e`nd`+I)#$Mbw=^HM%}-?^VNGiUDHvOAkSBd;(&E-ud0 z{luAbjYGyfvnQT6rJH2Z-sb+M_ciUd@W=h;(}zsT7p8GepH5?XEj06DWw9K@+Cl7I zi1i1tJ~1{f#Ky+h{2(?*ip>dQbHdo1Fg7QQ%?bZ^%?X!%`mp(Ff9Hkq3+wCQd(i6y ziTs*D;^&7hzxU?eFMVmfbdX>bS+6X_FPt}XsxiIjS5#{|Zu`4$ot3#LnTkTy;wI0V zH`~O;oBmG4dl$TO-rW@wZD)c);!*VkolhXkz+0$CAFJ`P3;hAL=R{ zR>fqlo!H2vIkoq6d}vp{+(AucZ4n=~Chn}?baqb3)8Ah|U)rY4o;QiEPog>8*}>{L zk1q^tSd$@ZPMx=4^6V;;nCNa;N1pfTt|xcz{XC=HF1OJUd8c0T3A;U zAz5enH(8^L3RJSrsVj<*tPB0ydleKG=8ecMR0-ScE{>42?Ub|u{=6M4%EIRrH#mh6 z5_Y%06Q*Ys4_FC{I;nWd-w8`oH|6tI!tBBbE$nT7CoEkhY`2v#yD&n+zVdg%GE~C8 zvl3<(Mo8E`O4vaEcKU-=!v3=oW*0_CShG0Fm`@jzR&s`@jJ1w)N+YDKo6l30sZy5A zDYHu>q^!TsQQ|+Who%_%CagUar8_d=XZ9$w<8ljz?Hhy!PFd9M|1%$_jBdeP-O9eQZcLO$ zXk~v{Df8)smfxV%6WaZ8uHpzuYa35V^XaSDW3xx)sWm{S_)uYlg!Q%(mf_D=fbvSl z76mHHC#a+ih!-0oB<^URCoVNSak-qh(1r+!8{_lDrG+Q%I8Iz>LxjZ5@p*Bv zeV(|?@Wj2ui3@FrkhqVn#QF4nDSNsm9}E4Qvt}>5BBbmOpQlVOBl&-Ib~6w<0$ia%JhRA<2YqepX4~n z=PA=qa?InD*`*Oi%rkwSGW{gSN={kSCpk9zIc34@68*yWwuHP;X@pjGtIt!W=Vf*#|yPnVy$@$|;LFFZa71gD`9E=d_t(Kq#(PpbewuX=%Yk;d4!(qC%>nyT&L}KJ8dYB zkhY{ozHV(f;jOJ@BWi7-@(5`=*zaizYi&L4v_)@igRQg;@n_#w6wE0rsi$`v)<|xN z(Bg_>sS9g!rFE%`-s-0MJ$0ep%=t53GwsxcwnS)kr^Zqj*6Nnkr7n7_+hC>6r}Mbn zqU_4xNc~>a#f{wM5n9|0zE7K8l-`20MO~LZ>ie|mrRkGMTh!I*+rCemUZCzq+M=#e zzxRFG^m|jkAZ=0KoodwB??Zxqf2vtydq{}-4pnz6Z9aWfw;(l`tzHf}q;aS)!Wf!n zCCsPGEY3}SL4L8yTBe<~(3S|PJI3E_Ek|Xo*vgt+7$ISk{N2`aDnl*GSzJxCvliMC zA$5za)cJIUP!=o*hQIc9T4Q&4gtVRK_q2trNH^MPi@qMc*57H%4R38XS!oNEM`&#i z`8{o6t?h9;ZP8oX8~#pPJ+Je=Yo#qz9-*~;>-V&UwYDGav_)@i@lAX^l7?Qzb*3Oq znow&Cl}Bi8UHzW6u-0~vown$$EyYTkPe1z^%pRSs|4>Xu6Q?vnOB>)#oYG?@qnNDU15v)K~uQ(Q@kP z(Y~{?=4^=2qwV*1Tf=kT&Jrpy$;w*P9<5W7e^&xla&(W@jZ+r2M;qYtl<6KVl~WeA zN6WQR=F`7S8Z4wg<*nzn1xc>r2))^Heova7pq*$ZEoy&O?f0bV4(${>X;FK$)qYQ! z?$XxVNsHR2UE%kn=?93ev6B|{`JsFLo;3aV&`vvPQJ)@q$?r+iA8>!&PFmDYxPR{V zr0G9B^o^agsDFFtA1i4-eP6)(5(hna#x-?HBh1p;H}!YQ^w8ObQx49?) zr!4BYneF406_pg1m8(~{^P4)Q5pK+JR?2+(IV~EX)3owNZqGa>U{bs7Arxj zxqZo5&}}8X;wEn)y3r`i+8)&8(C~eE{ZgpQlW}P0*iH z7WG|%qkNt+{W?dGQx^3-f(k2TK7Gu}`pSl^@b6if&`fNI(4)<^66e!}6@Sl4N_gf@ z=FHJIjpM8IBBXA)-&0r5cMYzxQy1D2A$42)p1RPN3ObL&TyCc>v?W67ZufiYLSHNB zr0yO&b)hX0QumDCQy2PTK__)D+Nld|iIBRF{GPhdR|`6++heCLv?W67e)oIoLSHWE zr0#D!b)hX0QrEJ%f0tYKdP-HC?7{p(91c;bIsl55hfkGeV;Zx zfPR9sMIAwZ@q60BzJ=sZJ8dYB(At`{@cB&|_VKgUE%+vl{sFW@{GGPa@V@OZD{Z0j z2(2yC_i598+mT3H)V{6Q?`aF`+sf^qPDivthD*``H!;P{31PT zJFA6L8lhj?=<}56c6JG;ENUye$;UUR^;lME*wf*+wQ!e5XlajIY4hv*@^}zX-=I%( z;;csmqrNctu9Z5UJ`2J3I)8g4mN-3s+f|pisPnhCVu{o9xA*H37j^#jos~GB&foa`11#a4 zF7D@+?(zsdTw*J~r%iWoODE?-v_)-gr}#Z>`MR|&wbO?32(4|s@6)DR+l5G5)Yf*5 z-_tfix3(MYw4ppgYuoAjwCUFN7}6HCwY~25w1s`e`8#&nP#&SRedGJI>DKlG(iXL~ z#kHozl~4bGO0Y0TKQG?6b*L~xJL}@_gz0C+53~{%^-1wT{!Wr!lM3}*nEE{ zO#hMCQC7mD{)yP*t%UjXb+sbvTjDD9U(cG{+Fc%@C#&^++Vr$`G16w2M@ZXRD{Ve~ zNXu?jc|rZBJkLks>b68k-BniVvf_+Mv|a)>iE$C?@mBh$8T}t096GV0rmDJTVolZ5 zc?&1zR@Ka^oi~5t*m>2nCI(YeQc}iFs;;Wcs7y(*|C>0qYT?W&Rh2ah=Fgv3T|04F zYGzvIqKPw8r&Lxg3RKRSR8w13Juz5P5vVN9E;8i>$>l|5X{jk3D|tj(a&SU_E~s3^#iSy}a60H2_h5G@VwW!PX{ytBcesUqeDU15p zLeS?a)6Xo7&5{1nLpuYj*;p4itaK5@;n*j~Aw`>lThWY_w||>jNo)di3b*PGHnQ zq)#k?Rtwbcoep#-FzR328Xilal|cPoYMwiRQQuP?8%v;-K>gn8M0WzCzQ;P(N}x~Q zGNeC5P%^ku55P5T-Q^Kxe`otVZ9~G+wuaMIR~{j4TdlPD^sO6OaRf{C`-NAwbrnZQ z+MPabYr(?oKzP>fYwIqLkhbTnwE1;~TbNy0JSMNSo-hA<*~*>V7$Je5SP4AZr!Nsu zjw(jy)|L)gcSbi<2G1QkXKonSC&^gCNEdL@fz1IY-5B3Hfl$0@c-aJiI)G1 z9+WtOZoRyslJfDP>{(~mCazgKr!+#^T2k5)T2O7{*SX#3VtT(ntl_n5=Pr+syiQh| zJCIVBXgbipadB~Ge@jc~dRRY}#Kj#$|0bG&{Ck|~CM!gUOqGpk6wm+0C8V}&)ad&@ zjpO4e+9)dfzl-*S@ig2U-iG_!+i<^o8}6JqPjk1~+i*8{8}0#b!#(e9xZU1{`_9{N z|9Knkym(LB-4))3yWQJxk9!;Lb#KG%@iyFVR=8h1>)h8RcpC0%Z^J#{ZMavx4fmC| z;r4qQZd0PCSN3La!|n1m-22{!``O!Ys~dTGDX#D~+`Zn0d&%2ypL-kbA8*55*x1u6 zd!x7E9`iQbJKl!-!P{^vn|OLDws{-wE^osS6d3t59^ETYW-iCYA z+i-im4Y$0hr%if0j!rO5FdK+$IOHZ%tP2Prk z+}m*PdK>OXZ^NC_%F|16nYZEY_BPxL-iG_k+i-t*8}5SEo?hAOy$$z>x8dIMHr#jK zhFj6b(@Sxwx8d&aHr%t`hWpstaDR9kZhc!%uk1D6hTG|FxYxZ6_l>vV&TQxDrP%Ck zxLdsq_msEcKJYf&uil1R+uqYFdzH80?)Ns_E8d3t(%W$Vc^mGc4xV1w9o~j}!rO4~ zc^mF0Z^NzX=;@`n+}m*XcpL6TZ^P~JHr(IdhTG7|(<^&}x8WZ3Hr(6ZhWp;zaA$Y+ z^ipi~Hr$=whI`K2aG!V^?oV&So!7YG)SG^7QmAB#cdmC<3H&3tZ&EAIFrA8}0{h!>v5X(@U|< z+i-Vz8}4~;!+q*)xP9J+JO5x$uk3Z+hI`oCaBq4WZm+lDmM439DYkeU?sjj(J>zY- zkGu`{ySL%aJ;c*1yWQJx4|*H!HE+Xx?QOVahkAM`F7`IuE#8KE(%W#my$$z^x8c_G z@bt=F>20|CybbrVx8c6J*#`?ope;DfzWBp;QKa9Qp9D7|o_P#^x{gl}IO|kdmV(Ws~ zx*)bLh^-4^>w?(2Ahs@utqWr7g4ntswl0XR3u5bn*t#ILE{LrQV(Ws~x*)bLh^-4^ z>w?(2Ahs@utqWr7g4ntswl0XR3;w^lE{Kcr`AX~alXXAV7g}4NAI#y;SLRrsugq_M zdUpFWa=iPzW?Wm7kkqDg`{vz}dL^wL-kf$B*EY^7Y8%%s&Q%;gkSbbbS&D^M(Z;N?H2wduNi_ODZNrU1%|B+1(o4kB^grqmV`++| z$;g2t)+Az0BGx2mdKnvEW8*8YIAT3wtVfLXh_N0q`s)(0ULw{@#CnNXFA?h{>Rzdh z^@y<^G1eo-dc;_d80!)LkKU(?4IHt7BQ|iv29DUk5gRyS14robnArPtu{UL+J{lF9 zH^t^nv3XN$-V~cR#pX@1c~flOG%PkD_}?=jh>L6QdJ4Y&E1R(D%sA6FZuRi4|HCKZ z>knh%deRg3&6^)Z&*aAsqhF0l$c}5%xmPO+Ysw3f%Ztj=Qd5GdDJdz*Bhr$CgM$6~ zB?sqCt(smnH@PI3yf8I&;NXEN0}IQ`sCfS3>Y3AL)F$_y(kD5Pl{I)kYDyq8xx8x8 zq?+V{xiz)b3+7bKt+jriGOv36yy{7{Ra1@iX}Wl8cl51LbwAdptLlDY+hh5OwGZoV zh}|D`eL}2%sLOrkSf~!=b$)aekUp~ zD9S4hR2Gz#a*PNSQbQFE3PlJYLT+|>c46^|P>pV(8vRhCw7j@1wE2M0=04b*S5y&Y z>*%6_(AMys7ZeuejmRzx)o>Cp0MRST+~-&ScIWi!-=5Y${PYI4XVkNOpzHVs*R#Fu z0$ImDq=D_34Q$T}ZFjD3-R0x_q%>5az7`@P)R)4#Q^?K@W;+3#6uY+PG_XAwZTq-_ z(d7+oZ{YZH9e;R=_#SamE^oYvu*BOPqFB&-v5#sOL}Hqn_NeDi+oPWUv3b$YkG4lW zKick`U-)eoEOd1n^=@{e*Sooa;7;zGfhP_3bXiG3c4g_f&@COIMtK7@avF@0Q|XG4 z9O_$!;5dqcIb|i{NFvs0IF2})2yw*mgr9Y8QFdi;q|>S+)o`v%q#Dk}iBu!n^|6n` zY2A@xIPE*Ug%qR)vqKj+JRQ6_zaYOjRHxn$Iibz)-CQzk0XlG~jo2E8(NLHJho- z8&e*-tl_(`syGe2{_Rflu7A7Jxa&QHoQ4k}r-4JrY2XlYoI?no69o%tO6R0GLIvjt zB2;h=Awq=)kHNXcBSdiS@CX&0AuK|LXk)lF_jFDo{8C!mopY#vyK@TR+lxwy%gRGd z%~?Fvt*!Elf}yS9{Y!pHMP+e*Ve!}o>QppPhr7Cw1tUg=;?#5JjxVdsD=iJx2tOK{ z@06E~A02e=zVHsysuKzko{nHaiOXL9cBfU=zujq+^>24BXZW3GP3f}Sv)X#jlBxt! z{s(o$k|07Hu_lO6M=S~=)Df$K2zA7=AVM9nE(lMbou0ZGefaHUZKvEcP{Fx?5h6HO zFhT|A5=N-t+>#M0IQL|P3Qo5Yek5s?lJK zhK{3jT-3p)EH|GPz;#zWyxCaWqaB0QDU`ap!Fn1ex)x_I;rA{dMXu|`u838fV~JSB zX<-qoIBhKa+R^f%p-G)pBl@JSq@bZmomImXqy9rpZ8#@XrJ z+S-qJ9WT7!FDc5YD2uit3>Hzqi)N233Q*iE{sL`CeC~7t5ZVJB{tXC8VS2`zIe~lro8sV*+@*XU8?v?Nm*3!>i zqn@KJ%&sgRlUFKM6+J^&`RKZ!s zL(G1`hnmLJK%DE-!?YCK({vEr%XAZbm^oDN;l_I7)QQ*IqzLX~tk;H}?S0Krg8P{~ z!Tn94-~pyg@IW&`@E|iuaEh5BIAG=pPBjY!rNZQKEmu2e583o@KNSD!AF}{1rImx2+lSi3C=NJ2o9R>1m~Jx1?QQ+ z1?L;;LR{B#glQ^xq-i6#z;qUTj5$c~DAP-Dq3JKU$fOA#ZH5XiHrawp%t*n5ZDdt7NQ_UNKtITe})65>h)6HJNGt94oXPSQmpJWmf-0f$U zX(4#F=^%KH=`MJ#=_z=g=`VP`Nf&&wIYMx?$rW5<3I*4ia={DCM8ONqRKcg1*@73D zTEUCWQo&2i3c;tEb%K|gje<`zTLqtPwhKPP>=3-n+$H!-vs3U{W|!dQ<^{nk%o~Ew zHoFC{GT+?0fdec+zd8WVM^G&+o z3(OIMH<(<(7n(xB8%??3i_Ap9o6Ja`U1>bIt5PXNp6?~^D6nvK{7ksywDEJ;T zRq(xLw&43rt>F93Qo#?H6@ni$>jdvK8wEdPwhDgOY#029*&+B*bC=-9%ud0Nn_YsR zFfRz+W!@0{q}eU_DYHlL(`K*WXUwmHpEdsoe$FH|c3=PJO$)&Y^bE@DbX0_lXbE)8_<|e_-%!7iPo96|$Fz*X) zX}%TQ%KR<3wQ1g@?riB#Y{a)Q-2}Ha{RFo&M+k0jiUfBsCkXCn<_hj)P8ZzStQXwH zTqd}yxkc~+=3&9z%*%qin-2vaXnqoWkV&LJB~tg35Pz`gEI8Tp6?}*}Qt+XsL~su? zMQ~5EP;f7^Qt)ABli_4BL(OY~hnYQs zk1)RrKGGz)9+^&vKgt{+_-Hdw@NknOINOX7oMTQB95hP>=bH6`^UM{3^UWQCN0?oL zN1C?;7nsilA7l0j9%YiOZ>_~oLVTg=F1W}H6g=ASx7>#67n@SCy~Iove5_e0xYVo? zTxPZiE;l;_SD2lG$Cwuck2Sjmk28A(k2m`TPcW@p)Sa!>o{uvJ3!Z2O2|nKB2tL7- z3a&Jh1)pfD1y3@|1y42`1y3>82%c*05nN@S7Cgm*APEnd_1Fg!q%p z0fJ|lzJh0)p@Qd_k%H%%iGt^u`GV)06@pJTn*>*z8wJ;x`vupUX9X`X?+RXMz7~9n z*(Z3BX~BQt$-c%3@rzBe;3Xzq@Tq2`;H74w;M2@}!Ka%Qg3mCU1urw#3qI4_FZe9; zoZ#i=eZectUcqOZe+92Jt*n<<@skjLjyYKHDiaXA+5`o!F%^Q>n(2bqnZ<(7HERX0 zH`@fCXKodIzIjCO1?FYJ8_XwyFEqai-e{8A)SaDme_mv|3EpG|3clE63*KzX1YcsR z1aC2?2)@*;7QEGL6}-*dD)=(=S&IY2Ma-epj0V1#dTl1Ycva z1z&5*1Yc*W1Yd7X5qyJLE%-)rsoObDH4$%(;T^H`@e1U~U%tpm|jAPV@gr%|U`6GZ}&(H-&zgPT&;vW_N zr1)pWzbO7y@o$QMSNwZmzh6;+BeADQ>N}jpDY7+bM3ZxP#)3iaROpthkHfu8I#(+)Z(J#Rn=r zNb$jnlNBGL_)x_?6!%ozOYvcf4_Dk{K@yUv-71t=PRlGp)LdB;jUZi-j;w6et zRlHR3X^Kx*e1_s>iqBMhmg41#S13MP@k+(#C|;#_wc<63*D7A8_*}*76`!a0e8m?i z-k|tG#Tyl0qij|zFqMhitki>m*Tq>-=p|m#rG+`U-1KqA5^?k z@k5FqR{V(KM-@M&_;JNgDBh*`NySeoep>M}il0^doZ{ydzo7U<#V;v-S@A21Use2? z;@1_wq4-V3Zz+CT@jHs&Rs5df_Z9C}{DI;R6@R4oW5u5+{#5a2iuWk~T=5r*zf}B{ z;;$8dqxf6Jdli4D_bXRn}6z3}*p?IX?0>#HD9;LWYagpNDii;JOC_Ywksp2xl<%%m5k5N2U@i@if6;Dun zoZ^X!k5_zx;!4FQDxRcxvf?RUdF#kVWIL-C!8 z?^1lX;(HX|tN1>}_bYxt@q>zYDt<`u!-^kK{HWr`6hE%`3B|huAihoi3tK#1j z|E~BC#eXW^r}!_$e=Gh+@xO}yQ@mfXNs#lQIK}ab6BH*ZZlt)e;wFld6gO4eOmTC? zEflv@+)8n4#cdR~RoqT-d&M0TcU0U-ac9L{6n9m8fZ}e7yDL6W@j;3YR-CN(5XFZo z?xDD+;$DgmQ+&AM-irGu?yI<;;{J*UC?2SIkm3}@0mZ3`(-fyG&QLs9@eswCinA0C zRXj}b5sHsYSSr>xML35t(XJW=uSice5nsrW?2lN3)@JVo(T z#Z`)@DW0x)hT@ruPf|Qf@odF&6wg&WPw{-kCo8U2T%)*F@dCvQ6`!Jbk>bUQmnc3} z@lwU7DL!5C8H$%FK2z~oikB;1q4;dYD;1xkc$MPSiq|M!t9YH_a}}>we4gU-6g;%5~3UGX1^|5UtB@n4GnR{W3Re-;0yc)wzk zDAxyZisKb0C{9$|NO5DuO%x|7ZmPJM;^vB5Bwj4mJFV3AmWfx1?X4BJQQTH>JH_o4 zcTn6>aVN!{6?akGRq+9eyD9Fj_&~)6DLzb&cixrnBK2~w5;xfhMiYpY4Q9M@hIK|@? zPf&cE;)#lnSA2rvO2sECo}_rP;wg%!Dy~vIP4RTaGZfEMe3If>if1dHqj;|3d5Y&N zK3Q?K;u^)ZiWewesQ47cixe+byhQP-ikB)rP4Vf9&rrNf@tKOxQoLO83dLtDUa9yT z#j6yrR=h^>TE*)WpR0Ji;`0=rulNGR8x&utc%$Nr6mL>|vEt2&FHyWj@uiBlD&D5} zGR2oGzC!Vpimy_9wc_oHuTgxh;_DP&ulNSVH!8kK@eai|E51eXt%`3`e7oX16yK@% zF2#2%zDM!Bitkf=zv2fJKd5-8;)fJJtoRYdk1Bpl@#Bi0P`pd=lZu~G{Iud{6hEu@ zImOQ_enIhzieFOvvf@`1zpD5(#jh)VL-Cu6-%|Xx;&&9ktN1;|?3UGX1^|5UtB@n4GnR{W3Re-;0yc)w!PNVcCi#qo+06elWfq`0x-CW@03H&xtB zadX8j6t`5|N^xt&Z4|dv+)ie7NG?iu)+;tGJ)y{)z`E9;kSb;uOUJ#i@$Z6sIfBP&`=i5XG5_ zvlI_iJWTNsijP!$l;Wcm4_BP6I7e|%ajxP##rcXyC?2V}K=Cn(M=35;T%>rk;$p=m zijP%Xs<=#Xx#9}NV-$~7JWla=#S;`Cr+A{`;}xHvxKiOiW7b-qQ@gl{G6)#bIs^X=JPg8ul z;xiO4Q+%f4vlK5^yh8EWidQN=NAW7fs}-+NyjJl##pfzsulPL0=PSNI@dm{gD&DC0 zBE_2&U#xhu;!6~7QGBW5t%|oPzD)7uimy<7rQ)j;U#)n%;%gLNtN1#_*DJn3@r{ih z!}`YhvzhJUUoy{wtv?IfE`GduM{tVyRPZh4TfqmI-vmEx;yT)YPtJ~asA(m*qv;~J zvpH07C(~c>Q|3s)@n)pp*``$R3Uj>Rsb+@YW~N$jkvU!PXtPFez-$!U#B3G(g1JTT zt>#|AJI!N)PcttIo?zY;yu^Gd_&)QK;1kT>g7Zxi>kFCa$IkbYriRItboik_B%w0|cLBh6qkK*@CB;Lcu4S zae^;2(*(b4ss$fymI)qi)(akHwg^7LTq`)u+$MO7*(vx^^Nird<}JZ}%*TR9n!SQI zntg(wFwMHS^Ld%+EO@TzCAg&-Bsjxl37&3p1y`F=!9&b(f)|+?f|Jbx!K=)ff)6(9 z1+Ot%1ot)D1>a%r5PZCOL@@n*W5NB+>w+7b_XW2%UkJX){37^qli1ar&y}XN;1;H< z;K8Pc;0w$E!N-~`!KEfoaIra7aEUoyaHg3i_+c|&@Bp(!@I^ket8T}%tXtxYGvlguH4 z?=&fb+nS+*vrJI%KvN|65Hmq=p_w6gp{W*pxj92{(5w~wsM#ubhPh5~D|5Tx$!4eE z8uO&!Hs)o)cbg9cXPa*Y=a_whhnjfny97h|J<_xiOn-l0@F3Gu@EImm@KQ5ea4&O= z;8RSw;9PT};0|V%;780-!RMHB1kW@V2ySXF6+FdUE4aYiD!9VjFL`Tm>z<+n?ZuFHNym7Z$=2d(Ub{3%p5QH z9y3kw#imB^gJzlFJhM*l9J5jIz2-{6XPF&>6U}{syPC%Z-)3GC{G$0taGCj5aJl(I z@F-)fFUkz%bBt*wc(dswc$`TV{H*CG_-2zX_!2W*@abl>;B(Cc!RMK2f=@NIg0D2o z1Sgqwg0D841z%&f3%<_WCin)kQ}9jZ8Nr8}*96Zu9}Avmz8Boh>=S&ZNwmJJG?d@w zrj_8^4SgLT{gfA2{|=-76JCM73VjXwI`j?bo6xtQZ$saKz6*U1`aX0w^aJRJ(2t-W zLqCCj3jGYa2l_em3+R{7ub^K;zkz-W-3$E=`aSdq=#S8!pg%)@f&L2p4f;Fu59puJ zebB$4e?$L){tNvNN?+{B`KK$w8V9BCL}E^WCPEuQ=?g%4dlP69v?;V1v^lf|l)fmG zeXXFap>3dTq4brsT(3QpzEG68BeWB=Gqek|EA#*;eeo#!x2`OpiX z8=x0LH$pFhZh~G6-3+}1x&?YEbSrdQoUy(dEund$>0#-dctc&WvA#f(%Uhy+ZoE0% z+D_wAKWID+S{65k(yi(ETERCDJ{rf^N6J1@_K^x-Yxw5FN8=v*NE596kT!wRt?%rw z4SXlVN8=>>NR3sWG!aT&jN@wyAAJEWpC65@>?5_l<2iwp_e)A$mE&s%Uk!XT4zrJx zeWdIo6~6ZH)xt;PHv34qJ}I9csW`t5@GXFk#(DOU##!e@+6YQrrgNMf;adnF%?sE^ z%05!|kqTcY_)dY3<`L{8WgjW~NQJL6e2d_tc?bJQ*+?5Ti#L3G6@SO@D&4buS%05!|k&5=&4ZfxD(Y%R$r0gSQ zAF1$lhwn7_Xr9GBQudLuk5u>$gzt3tK8BB!?;}#ak4Qy(IS9Tp;QItVQudLuk5u>$ zhL65*nXd!Q`}jCX*+gihro9hd^E3QA1V7t*+(jT zhr+iUKAMNJkCc6+>?0Mv9`LPzkLIoHBV`{c`$&baCwyna_a%I!>?36#sqpoJZzX&* zFXsJ`vX7K~q{4R?eDp=vha0-TX&%i!QoatPd>u%|bvPWpRq)Zgn|-9*50Y{}NGk55 z-teu4?_2mtxjt!9932NKO{tvws1JN=;G=ncKkIl&*+L|S^abO59cW#`K2r9PvX4~w z2Eun9d_TcQ%05!|kqX}+_|Auq);+vGQudLuk5u?l;JW}mS|_oOl-n68w=+`F&I0gl zfbUoMNZCiqK2qUJh3`W6euIyceWdIo6}~k1Hp2Hie5C9nWgn^VrNc*G?9SJL)_Ht> zr0gSQAF1$Vz_$s$Kj9-~A1V7tg>Nu?7sIy?K2r9PvX4~whQPNOzQ5ojWgjW~NQEyG zzDwZy8$MF@k+P3e__E;J0^dLIk+P4JeWb!S6uwL0`xib^_K~uWRQQI$w-vts;3H)p zDf>u;?+Ey|!M7hiQudLuk5u@Mgzqx=s1xJsPRc$~_K^zTQSe<3A5~@_Df{Rj_K^zT z(ePaXA9c3uBV`{c`$&avIDA*aN0T}Bk+P4JeWb#d4c}Gp(M`@iQudLuk5u?_;JX?= zs>D94vei$Ml7&_D^FjEw!$*S%`>esls!z&3QsK*m?;7}MlFB}7vTFHA*+(jTdGK8e zA9Y^rvpO-$N6J1@;me2bI{2ExM@lI)38dDpEu|&DGaikA?|S%}!AHtIQudJw-$?jw zfUh}xr0gSQAF1#az;`2jE#M<%A1V7th3^>nZi25Re58E6N$J!~0x7*@;hf(n_;$e8 z3O-Wyk+P3e_zK~>8NSx=k+P4JeWb!y1m7+2wSkY6eWdIo6~58%-3nh@_((Y~q?{L0 zk(XllZiBBKe5C9nWgn^VmB4p9eC^>QWgjW~NQLiM`0jwO1AL_HBV`|{@Rh=MCwv{@ zBV`{c`$&ba48FVI>jWPu`$*YGDtzVe-3?!7_(=IaBIWytG~jM874Y2yUl;gD`TCLa z^&=J6Zw!3*!q*i(Qr;ga?~hdMZ!CQG!FK?Bq`W^;-XE#h-#Ga0hp!uaq?{L0&I{=f z_xX*7?*aI_!$-fdZxVcu!`Bl&QudLuk5u?3!}kPyz2GBdA1V7t zg>MRcyWl$vK2r9PvX4~wro#6me22qFnrNLLsWqfon&m#fD)^p)uQz<8ygyRjAF0^i zH29u|uMd2r>?36#sqjsQ?-}^|!bi$JQudJw-wgPkg|8ocqo*6!m*7i*kCc6+>?0Mvx$wOVA9a#^zmu|$lzpVaHxIs7;7f&%lzpV^BNe{+ z@VyEjojmW4lzpV^BNe`r;d>3fbofZwN6J1@;j4!4b@*r_?~jyyr0gT5|D5?t4Sa9F zHyA!r_K~uWRQPJ)dlNqDe0YDPeBDX;x|7l=I{RAy-&^oy!bi$JQudJw-$MA_hL0LO z?~jyyr0gRVzEj|P2fm^3k+P4JeWb#-2)=jW8wMXKEs0D5X@b>0NvWwi=eHQX_uxAM zK2qKfX;aHbN><0W1its-I}$!p_K~uWRQOJXZ#R5L!AHtIQudJw-%|KKfbVGdNcp@- zn^?z5N|(?%&eP!g5WeB?k@EgXd4Hs0f2YIu5q#P3ks511q};EO(k?0MvGvWIbzFhc7*+)`tizGC=Dv-M=E?5!1ptJ?6%^-$xh1_bYs3;3G}2@=w|X zD*C~V@cjngSolcUN6J3ZA@2QM1mExQjf0PreWdIo6~0aI{Q=*2_(<7D%05!zyBNMd z;hO*-Df>v-M=E@q;oAq_aqy9{kCc6+!gmRLf5A5qK2r9PvX4~ww!rr{e8F|-VkCc6+!gmdPjp3UCA1V7t*+(jT*TUBXzM1fmvX7K~q{4R{d`a+~1Rp8qg*3@J zPg0SW>)~q(-z@k@*+vhL4ner0gRVz8m3d4&NO3NZCiqK2qVk3BDHa z&4rJY^FqpbAr*Pq0bfh_=D|nGK2r9P3g6A}wSsRxe5C9nWgn^V-2z{0_)dn8lzpV^ zBNe_|;cEk5HGHJ(BV`|{@ZAPqTli|=BV`{c`$&cFcKF)CR|_90`$*YGDtvdq*B-tF z@R72QlzpVacPD%u;9CeEDf>v-M=E@G!PgPKQ{W?IA1V7thq(KtyW#5u-y--(*+?36#sqozo z-vRI~g^!edr0gRVz6apz2H$D$k+P4JeWb$oAbj27I~_h!&I>8$g;eBaCwvFOcLsc< z>?36#sqj4n-$C##gO9Wk9clt;Q|K_#&~s}K!*?)zXTnF?*s4$340@#7_XvE+@SO!8 zX}ndRl>MX`Zr`Ku9RlBS_(=IUN%=TQ#c@6c-=XlWfRB`~11VnzQgIy~hpz{GXTwLz z^+~z^B+YUk=M(Vtgl{E$q;b~ykv4*+xqZ9f>jmFA@R72QlzpVa_auCW!M6%NQudLu zk5u@cg70wnR>Mci=SP}k9Ve+czo+5r4c{90NO^yxygyR0zh~g<1K(QsNZCiqK2qU( z7QVjlt%Hx0eWdIo6~5=->j&St@R9O)k+!hTk2KqT9iE4;KYZ)qBV`{c`$&cF1^5QQ zcOHDC>?36#sqnoB-$3}zhmVwfr0gRVzL($|1m6Ylk+P4JeWb$oGJGlUZGexIeWdIo z6~0&C3&3|Fe5C9nWgn^Vy$W9{d>i2-WgjW~NQLh;_|o9J2tLvT>$;IPfr|d@b@o8cqn{gLwiNQb!F*<0`pf$tLd zNI5U0oEK7&m$%`|gl`Lcq)n}SkhX*d-TQk7zAX4Ig^!f?N6Pyn75jS^zM=4Kg^!f) zJ5t^+sdat{q@urn5B_2BZ-bwd^Fzw{Ar<-AooKqyaFcLEg6VGQ`-x_NrBr@2%7Z8$ zgYp?DpN;aBDBq0otth__<LjpF^%BSgI4R@QmZev>Vw5V^Ka6<)@;YhFq>smxk-_K>2Mbe*)!iqWoQy|Az7=@#LfZHn)`a+rv`YZwAV< zP(A_Wvr#@D<@6{f*QZCcIL;Q7)1w1iPH!o4IlcA9@%vlneI)%&083vnhWRM)tKg%- zuYreyUk7J{-vH-;-vkH2Z-H~cZ-eu|?|}2c?}A5w-vf^XzYi_|?*<sp>M#WqTrsrju%fR#;EOR-So^NHY0Mm1;%wxdx zJSy{8Fg<6=JP!OVcszJ7cmkN7_vHG=f$2F;=80f>K9l))Fgj1}^TE`qF`o>k$rN)nm^w}7 z8ZZqi%(YRf*bm<9*tQ^C}^F)szT2A>9Q z13n$x7JLS{9e5eIJ@`y;2k=?oj^O3sPT&>b&fv4bUBD~BUBTyo4*;(McLT2mcL%Ql z9|&FxJ_x)Hd@%T2Fm?KzpY`BFz~_Mv1)mS@0lolCg9ZCHfO~;21Rn<82tFKq5x6&a z6SxofVsKyZW^h07CE)(xE#Lv*OTh!dTfu|C+rTN{%fJEf<=|BC72q`RmEd&nRbZMt zaXzjF4+d`s(5BKSG*@!;pdCxBl7SAt&zp9p>lJPG_Vcry4E@D%W?;Hlu(z*XSa z!PCHRfTx4s1kV7!1*XX*=jUzkN#J+Dv%v3yXM^7Z&jG&=o(tX$o(KK_JRkfa_+;=$ z;A-&4;2Q8J;9Bsf;055%zze~9z^8ye2QLDD0bUIL61)Wb6__U7oS(13OTpiOPXm7o zrq|K9{$4Om)|tNpF9UxMJ`?-{_$=^`;N{?-z$?H%gU<&40$vIJ6?_i(H}ER(@8H$o zKfr6ie}dP7_kq`e{{o*2{u{g={15m%@W0^m!T*6T0PhEH0GmX6y>KBo4!jW@555ST z0Nw;n1YZnp1l|m8488>11iS^D1ilp96ucGO47`oj@z%QL@;K85>l@}Pz_h+$z7kC9 z8|JIPw7y}!8cgdO=Ivlw-!NYTru7Z;wP0G`Fkc6z^$qj&U|QcW-vFld4fBm)THi3= z1g7;3^A0erZ`iA*QFs*Nxp90hRhWTkQ zt#6p00n_@1`B^ZnZhk0Ne`v zA-Fa8BXAq=$KbZ$Pr&WKpMu+iKLd9F?*VrNe-7>h{sPuRy5cqrW!Qdaj$>1Nshk$6S;6~uV;Ktw~V0uxH$Dd4a5;zOo6g(8%3_J`>F9x#z2yhGVk>Hl#qrk1eM}u2~ zhlAUIv%zh_IpB8SAhY2X_LG0CxtD1a|=!fV+Z^0UrP!1?~ne1a}7) zfe!?a1|I}21|JMA0Vjix1s?(~1s@771JjGJod0rgPjCge7kCW#Fz{IL;ox!L-r(`z zKHv%9zTo4){lF8!{lUkB2Y^oi4+K|&2Z2unr+_Dc1K`QvRPYpV8h9!=9b5&b7pFNt z)4+ql)4@Z)Gr*bPnP7TRoBbz&hk|E;hk<8C>3HVI#vEZ}7rQqe@GVls;IrwaF1$ZTR4EP-ISnw+FIPhxlc<>r9y}7~dVJ-ML z@H+5B@VVgQ!Rx^%fX@S0g3kw^2)+P33A_P38GIpl3V0)UD)=IB6?hYP8u()Hbns^I z4Dco3ncywplfajPXMwkZ=}jNb&o=Po&?}%@I_UM#8=yBrZ-VZC z-VD73dMorc=2cQo^cS0Y6J`8;X`Y7}<=;P2Qpu3&<~^)5-(jVB4lB)XSZQ9vO7j_3n#Zux{Dqa~Evz(OVWoKrE6q<> zXhp^K8gO%nTtTf+XrFjM`%`aGKUcpN9309g%u+sd2mF5ksG+$t)c>*iV z4_Iklz)JH0R+V()hzl;|@Kh5ccy5m00D?{#X5&Q!@tVrezID%^HxOmXSRmJvSqD zKu&Ic-hlk{to)2%W*{vyC2*SQ8SGgY;D1y3-!%R=o&U|?e+TowL-^lJ{x^&N4W!s& zy92g8VEY4hfPft#V223UF#>jwfE^{(j*^OFu%o2fQBv(Fsdki9J4&h@CDo3SYDY=4 zqomnU(r_wvlr%d^njIz0j*@0aNwcG**-_H%DCu^TbUR8qGGa$bx1*%nQPS-w>2{QK zJ4%KfCBu%AVMocZqh#1oGVCZBc9aY|N`@UJ!;Ui8jxyMeGT4qX*p4#TjxyMeGT4qX z*p4#TjxyMeGQ^HD#Evq=jxxlKGQ^HD#Evq=jxxlKGQ^HD#Ez0_N6ECKWZF?O?I@Xc zluSEHrX3~Ij*@9d$+V+n*-^6WC|P!tEIUe;9VN?-l4VE9vZG|#QL^kPffPGTAjOUo zNU;M2QtU{96gyNP#f}w7v4aIt>}Y`$J6s?I@j}fQ@#-3KT}!TO%5`nIt})lO=DOyL z_8dTi4xmK`QgM7}(*ZQ<09thb%{qW~9YDhlpk)Wpv;%0{0W|JF8qOEZJAn2bKm!k; zh0|?r-==8e0W|UeT6qA?Jb-o{NJswA(gSGf0kri18hZe(J%HvOKzk3M!3WUd18DLA zwD|xUeE_XKfMy>+yAPn@2hj2ZX!-%P{Qw$&0IffO<{v=&58ws};0_4j76{-T2;e3N z;4TQ@HVEK82;fEt;7$nORtVr;2;gQ2;BE-ub_n2p2;hbY;Eo93mI&aU2;im&;I0VZ zwg}+92;jyD;LZr()(GI<2;k-j;O+?E_6XqqNX7k;iu)rK_eU!3k5t?rsdRq~tgTv9 zYyUg6yr3wrG*DSkR_ZQDbrs}hmuD9ik8qWgmKT?~Ft4b>MWc%fTvSk4m^UK3&{a}V zCiiEtdv_M6sru=PGZYV2JVbG(;w;616kXuX2p_Tg5VLcG+3pI&If{dB9#=5BT(gRo z>)y`S#C=F(vq$B*jxeueY*C=He1a-U4KGRyFG>$D$_OtS99}deyeKog$bBBxak|gb zV)v!B*nMd&c3)bH-Ivy4_ocPieQEQ8*(GBC#A5%%V*kWq|HNYd#A5%%V*khH$^8+F z{SmwO7c3ObgwS1^P*rvxTUkj#c4g@}*CpqYa#fNORwt)Y)F}$)l$EGRC=0KrqH#SH zFSjVWGC0zmb-ToUW_F4DDKvt0>b%rD3WwP%#+18G+bVKj z0E^w}x7eM0;+*ghqIFtTREQjRh+rWdv^Z?5z@!(i=vX^vT|4I@{59QDygU}&Mzz;tI8@=88^j|1tUhf>XnTztIR7c zb(K*6R9-fIbkKb@tuj}YU_pu4Y_Z5Hu}CVh`*f`?F{_?lIi;SmdWMidJ!43qo6XpW<8FPU?WjY>b2E#Sn*O&|3%_zUDpnROT$?OvM zez-*3Xm*LJQyLbBO2X>sIHlvn%~h70PXoGh1{S+xSdFAqG}F4Kq+NkrF`47Qxnh2W zB6kK+)5>_YAojIp+odh zRuy-1v)FxIiF3n4xan*M3#8vFxm#a9!F2&Vz zb}6o+Q|!K)bQ{wQ(|r(D$q-RO=M^k&ina$Q$8uc)Mayo*N{)0MBQF|}&)g6Wkr=T4hv2HL;Ro;kOw?)PccljekA(&Wk2 zRSWAj)h?c2RZ|BwwbgaMPO6?Xce=A>{({MKDMpQPj)E?_GqJJqVy8cJLs*T%zO3#v zTAh7p)UiU?Rp>W#9rPQzW7n0nFN$k1?92;X0}jtN?4xj&t?v0G|BepOIw-qk)Gdj_ zuLqrreK%X@VmAZcU1)fwN9stfQ>E58TTK*SXv0KnENeK9L9KtZa49<#S&E4z-x^E4+ zqLOPV_o~gkUb9kYH#sT|tu*-ey4FMKpqUXC`Brl5b8)YV_}bJBuCBATPYGvg=PF-J zWUa=F)P$C-eBSmk)t#$7tWX=pT}B5Hnp@hJ5Qj%&T4+9HZ3xX6d4tPt=T#0!)&&i9 z|IYl^ieuj!b+0e+>oE4A;LOoloxas+N;Dg_TBzl5uCTqC6T@41!G=XO|BmF-@6JWB zen&Z_!rmnvGsYk5O4`RnWmr_vZy4aLbF+7Er^t5OS+Re&PSei1Gu5}s>{&9OvV9qF z%4qt|DLY{>3AXNN`-m(zVmqrdHS$|^?0wP6A$@d8PSnt>p4K=ym7%q?b+mRRv@`oO z?dECk-qj*eU>${hO|9M9je*-8c1QPE=&ITEmt}@HrN5J)3*yluVgrj ze`lFbXAe%N2>`t!CVPl6#tI#QNB{bTQL9S-!aeS-!Y%%-!X5s zc2{@unERnI+6lLAhR_Xc=gL0Iy0x@*KZGjq!P|%Her4H8n7tFbf!Y}jo2k&9>0Dgb zODWtqtsCA-s2!cIeP{_|B^PbbnN3li(a*b=}%!g!W&1!PC*UqJV=CPOk z-LE|GZE2^A-wqkd1$L%f1$L9P3#b{RX@wY#D#T)S>U6~RcBhGl>Wh`C>tfm!LNhKK z`3l#~2%Mr&GjxhVp0zcbDFYK-|jga zwmUqB?Hki!dl+-r9v#4;A=qKD|4_&8Y!~~d?PCALV*kWq|Dm}e;)Ui=4%@e%&D77h z(?jS!Izm<1eQeZ;=@*%;5)5f}eD{FoDiL+$B-O4Zr>d^9P!B80L_GI6Z`X1UlI{}s z$=P+>=VzC=vu~HU^B)>4?XYq%3zfxQ_8)3>Q0}H>u{-@1yOU4s%)ISHT16^^Xr9(~ zcL<)n$<|GMq&ouFa32L1gvD?-0j}Y00bJm|1-Zc82RQRB`#dam@55sEE}Z4PUB7Os z0urkwr_336?J{nPp`qC>i@oem)9HG~5%=Khnyc7J;{tax;sSRw;sSRw;sW<2<^uOM z<^p#!qWM*5nTm_bCGP!j9noLgC8|znE*^>#d)c2CIk*X8FZ-8{i@oe0d)eQ4oyI+U zSuYy>|LJ9a@f!aBi}wKj2QT|qR+bl3PF^r`_SDKrwYAkVCoibA-W;e|Jg0WjWHYe5 z!1{Iayx9XM&7L`lHdI&57VkqiY#*P)IC!T3Z&o-3p|>KOqR`tByyvPZwKM0<9XM_F zr0Lc%)mHN{)y%+eVULzaEU=z8xBj=DOSgW~Z3+Eb_ndkYD$(^iglgH_EbOA{jU=wG zULRF&VuX6bRK58T>K&u%t%y)>oT|4uLcM9K-i`?M7O8rVMyR(+)q5jCJ?nVfd8R-0 zP;dUOSM}&m8q{0wK2@&`1+VXVJfrIMj8N|#RWCC_J?psL=TR7;-k+-8i4p20QMo%_ zZG?JVRlQXa>h)Fi=p%vk=4F_wM<30rx85jKk3J$-Z@uGGJ^H9xz4d0Pdi0U8dh4C4 z>d{BH>aDj{)uWG4)m!gURgXT(RByc(($C+e+>P>(*cChA=gp&osNOw_w8LOuFOm#FtlgnIN5D^YKEgnIOmCsFUm z2=(ZrNupk2LjC!xQT4h+sJC3z>mQ-sg{t202=%U3^~xjEyHnMh5ux4_s@~EF^8uvvQgmqif1;4W&pZU$R_h--Z`tSvgxsNlCJZsdIJDhoRQKQb> zqHv$`%p*t|b>>!m`?%*V?mdSyw*+srJag-|eahQmapo3g`?!?FH8a1*{@47##^ZK& zxEzZc;BW&iZluHcE$&>0n`m*DI9!p%nMd;NQ{M#^XCCFXkBeBGc?8ftZoS2sM~Cd= zsw~bt8et!|-QvtG&i8Rii~HK)_FCL7hs!cM`i<@XH8cMo`%8C=>*#Pki|gxfqbzQ? z!xdWG*$y|y;-)!V*y83n+$xK^+2JZIZiT~bwz!8JE@5%cI^0f+d)?t&=0L5n<@<@l zwY9jN4(GMFhW>{AWthb^H+iGWx46y@H`U_$I$X%&PIR~>7I&t@m0Mgxzr=bxZE;sP zT-@SraJWw_ZmGl7S=?HOJHXv|KX}IBJQlab;d)uz2M(8Kao;-JIE(w!;er--uxSTe z9@ki0JBKT^xE>C-*5ZaZT+HG|JKR=_o9uA47B}1Bez&+q4(D##ct0p}xDFP#&f#(` zuF~N~Slkwe3s_u@!_Bm~?;Nhg;{I~DWfs@Uv@7n*N@X@9IomBr;a+;)rW?{GEpD5`t+KeU9j?OS8rDNx9-A$$nORQg5*F9V;dWYFuEV*SH@Dlg+&G8Jv$%^KZk)x194=^aiyiJ7 zi(BDvr4|=;xV09y!Qo;Sx5eSMT3o~WkIT2#;=Xsd-!1NMhjX`RydShN{RrcBu(<9H zmuqo8hZ|vWBONYaaT6SFrp3*0xDt!I%Hft-++v4|THI=fd*0$6b+~Gad%@v$Sln9< zm$JAW4%fV8=Pz&qWj!!$QP z+x71=Dxs`~x6bmOZs&6K72uw>T>lL+HXZSZTW8PuDO4DXs-WJ+VZ&AtGQJ@HTUk(T7C!g(%j(Qnw!x_ zbF2Gmt~yt9`}fz{#oY8v>i5$Jy8eAO^Z&7a+;^}!^S9YrAULUEsy?)L0JzaAbo}szB zMrkfST625GXs%Db<|dz|xn*ND_uARoxRDyCxt;}@n=oE;w**}OKI8fS7_VMFS97~2 zXfD@G$Q&$;8y8Pc#7s;nyR_fG|lzBSaTNzHMe@Y z*00{4p|xMrnOb>6FV)JMdzn^`^_Oezt0K*{pQX98W@|1yM{_UE)m(kC=6Z*;ajo!5 z%`Lr3b6c*~+^%c1{fPe8Y2{6uuenHx=H9$s%kO|2wekip(A(D* zS#!e{Ywn6$G`DVv=03hvb6K}*?vzrkokMqM?vXn+_t{d-wYp0?e~?$Eji*;H*IZ>p zbHA+6#v$)Yt-L9#wC%^T)mr<#wnlTi@6lZEdo@>hpEho+xL<3R?Q1pHa-HT*e^7G^ zqnfLFNOOB0*4&`=T02jFR9ny2Jf^w#9@m`v3C$hNlrMU;6*4!u0XzOL04VpVW zrn&2%)m&_&=6-%ob4R|Qxk;Nex9ml&|GieFx!o^mar?cZtsgTtYvaoUuWIhIEt+c= z*IfSVT74J2p}9?OYVMD%n(OtpR*z}#Xl_ll=012=b6M|c^%%KbbJxAExo2uLxAOzd zb^B0r6F$=19Up5h{)y)P`BZa*KG)o(wVGS|g|?sb{+F6NXouzof33OTH(EXJ`Brl^ zNo`zf^}Wk=d=tmXEA!ELU2V({+IH~9om$*YKWgpr^H19P>#fta3+Mf!x!Zo#+)KY{ z`R)E)E3bFG<_iDR+|ra;mcsJgzDsk5?a^GpUd=84OLK|8HFvnVO0Lv*LKDrc+^>mr zo^{*)nrnJs6X`nk2?uHA%{^GFN2U3K_Q^s&*ws`kZ)me7(zr3NdE@mM-QwT*4C#^Q zu|u18wI7u^tZBM@aA3XARo(H+@di#u0z zn?={=2rce~qI*Jgt`1to(1+aS7w%#EXzarYe2trgvG zqC2UFmfszss})_}Bel5KiS8}YbvR0kdx_{aims_wiyIK#gQBY!-6=h_{FaICE7A2g zHy%^gkLyKOExOLfXmKwS-3y{?-b;&np6DJH-7eAj&E$J!c`O&*H=;YXj}~`<=-v}u z*S=cZD@0c%x|X?G-19~EsOa{J?u>p~es_!RJJI>fmmHM-w@7p~qU$k0i#tbjuZXVo zKrQZM(N&1)TnPD;M3*qB~)zmfx+S`$Tld9H+&-N_4M_&NEDld$H&$MR%aND5>;=aiY6lbiayj z_z7BmrK0;>bbU_L;$ADdt)e?3Pm4Q4bkB;;JzR@BUUch3_lM|4oTTNqRCHg8uAjM> zr>q|(qI*YloknPJFBRSMqHA`F7I%W^9ui$jbR$pI@+%YF*P|qi|%FPM#1&^^jqh3 z`xc|MxRZ=)Y+k{+j`;^A#`)91%+CY<``+o|qRSeil@}0Qx#*Ij%RN)eFC@Au(Yf=r zxcQ=sh^|(2-m|p)ibNL^oolQX*DtzK(IrHebGDXWP;?cdONlOToR(i$bk(BsoTJ4p z6kSwwb)xeXX!(_hE-t#P@mkz~=*mTx6kTpW%P%ClD$%*m)#B!hE+V>G(Rn9m`4x#S zCOX%7T3o;AN=26tUCu-;zo6(UM3)j>-Xtx*u;{8q=Q&@CTPV7y=;}o0yFkmYM09b{ zWff|11EMPzT~c(plePRpqN@^}`$8>lzUU&Ns}-Ghik4rI=whOCP1WN1MOP}igy?dn zY54_3S0TET=<+Vo@(YWuT6CU^wYY_%i;AvJbiSaLUy11AqRX1D#SMtATy#m%<<8LZ z3yH2ubnZ*ExcQ=sh^|(2-kDl{MWTy|&UL94*DtzK(IrHebD5T3P;?cdONlP;axK5G z=&D8MDbnH=iY_X;I??&A(DEx0U0ifov$VJY(UprXDZ1R*T7DtXRf*0$M~j;;x`^m% zMdzKXUP#L?EV^pZd9Kvr7K$z^x;oMM zuF~==5nWt#SyyXu1EMPzT~c(p*J$~LL{}v`_qAHwe9=WjS1UU2by|K!qKk>nHD8PC z7hS375~9l~(eew5u0nJv(dAvQ z%0-tHUG73HzmVvvMCZOqi<>XHi0EpK%NMTi=PqhIzl$961wzKPf%4LCo$eOnj!XX$ zemdP2(KQKcBhTf*tW3K2bME8T}j=WvVZ?foC ziS7f@wJz228!fu9=w1=s-=Z6GhgOd{qI+C)-;1utomzf{qFX7t8qu{{s^vFIbc;my zvgrO2oo|^|kJ+MoOmyFguKQhDeiw-DZqdCjx~wuSzcWO4ljvR&-CofRUar++mgpW8 zT~c)2B3gdui*AMJwu`Ri3N63WMYm9NRifJ?xqYmi=(?`d@|z^Oi0IxE zU5iy(ey53Uf#_Zo-EPqxyIQM9k?0-~-8Z7^vPR2qqUe^3Zky;1y+_N>FS;8=w@Gxn zL^rTptHh%P0%0rzY5xJ+~piEfAJ zI(b-5;XM zU9Z*S649*_-4~+k@TivGc+uS{y0=8})Z z(DEw~-5sLaD!PN8(DFM;bk~Y5Cc585*XK#C9@9m)R&<|>uKiP5e&>j;RCI5O?x3f& z{DzC}8qsYK-LInS{ft(Rpy=)w-DjdZyi&_=oak;h?licrpMLASzMl}wYqOz=t3$dF z_&LWh|DdmN=FznO^P2B)Wya{rD0 z6J3GmibYo@x=PX2h^}6A*_*}o6J3GmibYo@x=PX2h^}6A*{_Q2C%OXB6^pJ+bd{p3 z5na9LvbTusC%OXB6^pJ+bd{p35na9LvR@P1Pjm&MD;8au=qg25Bf5IgWyi(#6J3Gm zibYo@x=PX2h^}6A*{_T3C%OXB6^pJ+bd{p35na9LvfmKfPjm&MD;8au=qg25Bf5Ig zWxpx5pXdriS1h_R(N&7BMs)R}%ib!spXdriS1h_R(N&7BMs)R}%YI92KhYJ4u2^(s zqN@~Ljp*t{m;JWbexfT7U9srOL{}-g8qw8@F8dv^{X|zFx?<6liLO#~HKMB*U3RtD zexfT7U9srOL{}-g8qw8@F8f`v{VeV_$9#bT;~INjg44|tUBtMqjm$rAmbcNk&Vu{U zxK4umQ*?)I)AAc^T#gWTyy)hMZn@|-i0%W?{VBS3?`iEaSajo!Q~F;>bSp%+QOxfn z(d`yp`|Vo$4Hex4(OqSn(#|W5Q`XCk#&r|ck55JCdS5HAo9Ipz-E`3{5#8gW+h&|H zzWge>)-_sr{Y5ucbhAWvr|6y(-8RwvD!SGmi0vo3v7(zLx;sVpr0BMZ?pM*ZPH5vs zKhfoj?sC!HW}LELQX#r+qWfKR*&jA>br;6dp`trqbT^1@opDP0#YOkM=$e0|#qA@y ze9_G^PT3CLVVttuo)OF2E|!-vPFWu9Ki1qZ(VZ{464Bi!y3L~dMs)5^wDI06I=|?G zq6-_R>|Z@1miMOUeh^)=PqqB|7^m##j1k>sqPxvFWqMBD=r)M1Ms$A|r}V#eNzDy0PT9|yWLyu||Gu2p)ow6O z+3w#j#(m8=WqEvKoHA}S{Z89{^c3A`qML4^j=e~GU958C>6s_25oDeKYAVtJ1kr!3!X#(9N)uv;vz%T8^58*W@< z)s~+^2S^axci9ng1eu%TySfN^MQMSxIA#{i1UMc zkhpwsQQ`vN9wM#~+{45L!97A;5xDilg}^;ZTnV_xhzo;zoVZeO6~slrJwaSKxF?B= zf_sX%3UE&o7X$YUaaG_diHn2VKwLGr7;y=3&k|P)ZX|Qs7=7&UImC z9NI*j8{CV;Wr3?A&I9fx;&Q;fOq>_oE5zl3+f1Af+^fXpf!jiyAKYui<%5e87XbG< zafRUCAT9{*P2!5cZ6z)Q&P?U~&#STRTM0NbW!37!;LOxat1AU(rXX5f1e}>_XLaS^ z%#<>#i-I##r>w35oS8~wbun;e%8b=jfiqJ>tS%1DOo6bvYH;RKztttcnM>bRR}0Qu z;gvFmOM6zA0%tB^S)FT2X8bdkYOKx;&Rn{%x-4+!6us4Xz@tyoH+$)b-CcoDLJe2fitJ5tS%3nITd4desJcLgVp7OGl$?-7XW7tHLb1?oH_Ke zx*#}nC}MR*;LIU`)rG+QNL&fHpNI>C`aCO8*!2Lp8Ik;bmi-P-&xC(H;6Bh&b z2XR&4>WPbk`;)k8a4F&v;C2yL3vM@YNpO3Js{^-}xD>d*h;vQNjDLR<=LYu=aarKf z2hfde_dVd6{P#e+F_!~wKjOUL_9reE+yTV-z#T|j9=L;u^MgB>xO{MK;sW5B5?2WB z5aNR1nh{q7t~qfbaEB6C0y9bCN2uD4RICV+7cH7cNlS1 z;IfH}gKI}zH8>A(32=uKR|~E^aY=AT5LXAT192&E9f@;I%Zz`Wh;xJMOk5VY9O69S zx)7HGt}Ag~aNUT@1=pQ8AGjXG<$*hrI6t_fh|34(B`yH2Cvk<~jwUV$?ik{V!1W?7 z1g=ad3l)s|M#I zE&*-`akb!v5|;#b9C3Bvh7p$ncRX>fi!$Ti3BkI zE*IPg;(XvvAubQxsl@rgjU+A~oS(P=xYLL$1a~@dL2zdfR|IYpaUpP{i7Np&hPW`e zGl?q&mrq;-+*!nxgBwd+6x`XwRe&2uTnyYf#8rVSATADWJaN_F0>mZ2ol9ITxCz81 z!JS839k_|arNB)h&UJBS{5zjGH@FLk%K}$OoCln_RAW7llmpJ3(zH4+ICJQ4b-Cco zF0$46z?n^n)#ZURO>T95aOSPm<%0_n7XUY%xI%CgDm z)G=QmY@ElmTEl#ScmHj^|I8n7x^m-u|8?7lOMrWixGb{}(&cR@&JXT=;!42P5EldY z0daNU62y5;CrQ`iL*fd-eMDRY+{eUKgZqRyx9Obe{5~Zv58P+Og}{AITm`sV;*#LL zATGzOJn4FTNn8NjSHzWq+d*6$+}Fgp%u1Wi?;GNL;JziU2wal5D7f#4s|EKxaUL_M zr0ekmarxkO5*G&dBXL#Wej+Xf?q}k1&7haAM;&oNaK8{&4(?at65xI#F6;74e!mmv z2loeYCE)6bi-G%-xH@nt;=Dzfdh8;u5ZrF!BH;EAR}F42aqcTJ`Ta#)9=N}W3xWHG zxC(GCxUS*ct|q}XAueZDrXKqd7XY_Eai!o6ATAE>K;m4pGx;4voDbZ=#1(;a6Bh;7 zl(<@OhY;tPlc`5D;_|^YCoT-`P~xh;U@S`(K5*M_*P z;!J*RiSvUyjJOhT*~G=bwIi+$oQF8?yi7d~C$11&d*UMCjv%fYTnFOZp-g@qiOU1m ziMSBB&cs!K%ONfat_yKFS7z$bmAC-7Zp4*>>rPx8To2-0S7q`$k~kl@qlha4=Or!* zt|xJ|;EpEFb9JU3#}Jnft`~7(aJ`AE0@sJQ6u7>`r&4s{`jF&U;;^9z%#L1UHnp2)N^js|GiWIQRTae#aA+ z2kr#oLf}p$t^!;haY=B)iOVU;)Z--L0^m+2t`yt|;^N>=A}32riRIg2v&xRAI2xGBVyf}2WQ9NaYGT;WW97ZK+JcQJ8A z;DW?O!A&Qw7TgTtJU3_RaS3tx;ARpR26riORp2foE(Pv#;&K;f>QO{o5Zo2Sm4ll_ zTmsx|;<9eZTxA;h2X9tE&}dq;;O-2L!A58 zOn%oAmj~`T;zHo&6ITJQgt#QQ>xs*`EmMyhhzo$bk+@QD3y6z@TS%Pi_Dp^^5$6N9 zh`1tfVdA3TZYHi4++yN9rI~u%LR>z$CB%in-AY^)xZ8+JfxDf!+&eP$C?zfk?hfM0 z!QDw*0^CyKvhK{}w~RPHxVwle0ar#`4BT?!>cB;a^DfQQV+C=A;O-_a0&XR7)!z6F=2Wk>ycjrhD%I-Z z;LIsat4n}0rwpww3C^67v$_;Gb85`$+{-ilz?^!rIuAH=3drib;LIr&tMh>~r#h_8 z56+xQu(|*^bEs~0L2%}f+3G^z%ps}Og~6FaL#vB`GlyPQ7X@byfvheD&KzP`T^yX* zg}1r{II}BlbxCk$SJmoL;LI+g)wv^?{%3Z{tj+_@>>62}7o6GkusR<&vuU?FKRC0A zwYmT}vk9}hAULxrvAPgAGo)Kx7~EaNMZlS%!CGDvoLPic7XxSBT3sC63gQyr?j|k? zZY6OkaI1)Oo21g)!PUfhz^x(93+^7`eBjE7^MkvWxB$5Ohzo+dpSTdXwZw(NJwRLp z+&bc-;2tC{1};im9Na_1CBQvQToT+P#HGNkC(dm;d%FKUN}LDWW5jvEJx-htTm^A{ za8D2y0QV$uL2yqI7XtS*aba-J5ElVgNn8}%2I6AiV#LM4Jxg2y+(zP(;GQEc1@3v` z+-49>_rDj2^MKn#oEO}S#QDHg5$6Z@5^(`=FB2C8_X=?#aGQw>gL{>@2)Hf8MZvvB zTnt>CxH!1iiA#WcgSaHPH;GGu+e)0WK4$`-QjwxL=72g8PlQ z5V+ro3xoTExCpp<;-cXGBrXOnMO+-*F5(j4b`zHbw}-eCxV^-=%|U9q|NTXr2i)Jp zdBOcdoDW>X4SXA3jh(mkgKI)u0Nj4W1;Oo4TnO9&#D&2fNL&QmLBvJD9ZXydoSV2f zxTeGxHiOv zz_leV4DK-EBH*%#i-K!MTnwCtxH!1OiA#WMPh1k*5yYjybs)}dPO7E*Uq|9R;5rfK z1=pE4AGjRi{NTC}7Xa6lxFEQ0#D&0hCoT-G2XPT_M-mqWcNB3ka9-l#;Cd350CzNT zNpQyymjc&|IJY@jo9=(TiSvN#L!1{}U*de=a*6YU>qlGwTz}$%;06#E0ymJjFt}rh zi+~$MTol}3;$q-@#Kpl4Aua)KC~-+}#}StTH;g#9xd@Q%f5(Gs+0yZR18^-5$n38< zofljdaXxUZi1UMMO*>r9*%Tn=$Qa9xP=gX>CM09-fXg5bIn7XsIVxG=aQ ziHm?cinu5^FL5z&J&B8hJDRuzxMPS*g6lgFBtL1h_MZOM)9kTngN1;@oDEMY{iuA|-JBv6!xUs|q zz@1H85ZpN8Lg3CJE)1@KxCprM#6`gch>L+cm$*2%3B)D9okv^}+(hD1;3g60Hj{VK z{qKC@Jm4-M&I_)PI3Kvl#QDKpNL&Ei6yk#5rVup~ zi-Vg%TmsxB#3jMaBrXN+QsUfZQdqkGT}GS-+~vf1!4(nb19t^+esHsh3xJzVToBwG z;zHo&5*G$nOk4!qJmR9@Ld3{qHv7Jm798&I_)TI3Kt>i1UNHlehr5rNjlnEh8=j?k?iO z;L3=LfLl&n6kLS37`PS0#lhW8Tmsxm;*#K25tjnDnmD(a9G&ieYl!oJyN5V0xN_or z;O-^P5AHtV0^sf^E(mTdaUpOI5Ellwj<^W82Z@V^uwz&%A=5Zu$mg}^;STo_y>aS?DE zh>L=Y5f=mZEOBvg8;MJRdycpyxaWyWfqQ{CxA`(hy8mq=&I9g6;=JIhi1UGai8w#F zmx&92dxf|lxXr|cz`aUb7~B@(BH&&lE($JATnyan#KpnAL0kgdo5Ur-Z6z)R?k(cn z=1W59{`WR<9&qmv=LJ_yoDbZ)#QDK(BQ5~$J>r7kwi6cu_dao9a5cn5zxUY!I1-FAZAGoiH%LDffaei>$5|ZVz#F;Pw)i0{0hjF7u_@^!WETac*$`5SIncWyaoyS3~*E@!12e z32`~#_9M;o zmjHJ-akb#u6PE;c1aWoXIuMrv*O54vxmiGZ{Od%V8(e4NvcTmK=Kylj!5u|hJ~%IN0dPHuD+G5maY1m$5LX1Q7jYqQy@@LU*N3<; zxW2@dg3Bc?02}g7X>$fxC(FsiHm_dmbfZ#gNTcR8%$g^I3IBda6^cz1viwq zB)H>eKiF28oprpsY6NqzzJCV37aCyXezzruZ2i!@-dBL4bTrRi~#QDIT zLR=oWQ;G9~8%bO~I6rX#aHkPh2<~*^g5b^|t_a*H;zHm?6ITLm3~^y_XA)NmE}ysv zxU+~W2RD|uD7dqUs{l8SxEQ!|h^qouKwKQ$c;c$T1&B+4JD0dxa1)42f;*46I&c$- zOM#n2oXgzYDLww3Pn;Xv1;k~6D;4UQ23vLQ=x!|S}=L0v5xIAzd5$6YY zF>(3eg2V;DO((7p+zjG^;4UGq2;5BKLf|eXt_0j=#D&3KPFyLtBH|+8t{|=)+$`dv z;ARt70d5X)F>rHGAJ6;@sfo6PE?9gg6hl>xs(&cLQ-=a5oZ{3vK~%K5z?(%L8{4aei=%h|32TCN2Q( zX5tFLEha7q?iS*Tz%3yz1nySiO2FMlTo~N##Fc_8B`yN)4&ute-AP;&+*0Byz%3&# z2JSB6s=$>I7YDbTxN2|_;u7Fi5LXNCZsL;QRuWeSZWVDUaI1-PnVWH@$GCCF*`U|wU*O7 literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_dma.d b/i2c_ex1_master/CPU1_RAM/f2838x_dma.d new file mode 100644 index 0000000..80ae68b --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_dma.d @@ -0,0 +1,231 @@ +# FIXED + +f2838x_dma.obj: ../f2838x_dma.c +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_dma.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +f2838x_dma.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h + +../f2838x_dma.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_dma.obj b/i2c_ex1_master/CPU1_RAM/f2838x_dma.obj new file mode 100644 index 0000000000000000000000000000000000000000..c1f29f94b18fe38d382ef177e3361b48cb1d0a33 GIT binary patch literal 99944 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 literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.d b/i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.d new file mode 100644 index 0000000..9cac4c9 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.d @@ -0,0 +1,180 @@ +# FIXED + +f2838x_globalvariabledefs.obj: ../f2838x_globalvariabledefs.c +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_globalvariabledefs.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_globalvariabledefs.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h + +../f2838x_globalvariabledefs.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.obj b/i2c_ex1_master/CPU1_RAM/f2838x_globalvariabledefs.obj new file mode 100644 index 0000000000000000000000000000000000000000..f29df597266e2b688e86bbe0d4ee997dc8694251 GIT binary patch literal 786000 zcmaG}2bdH^x9#cfnVs1kcF8#`83Y?P!D50Z;m@vU1w{d_DvI z$7eigsDBy8wbU3vB^&YV|28o$+P~Nwm~I+|_zj@_+a6uNYlY+Ao=Fx&Mou9oY{z`cz9aU(qjfht{hJ`N^NO?bI2CZrr|nnA zC$+ihyAiRB$|xu)%uMT&mYFGj8Fb7!_G51!?X`dSamS^*7AiX0G3R>d_KFQV<~*Iv z%uUmO9P60#bvh#_EkVC`S;u_F%j>@{@0bg`ymt4Bj`^&jM~@lTKY<%u*)bQ|^^4a1 zv3+^@k<232DgCB39di-=RU-dYZO44hj_Qz88}dK3i0tRL@~i|sdy5?7W@8~!oJ zWhm-7<`Vm^)jd{S`fFZ2j>||iaLlE4`Mlym9sWoz%W(`uBgcH+e)Qt-%g24azKr5= z&}?bqn9EeJIH^10CdXW^u^u-!cgz*Y8b&jgYmkS1R@ZxE-G*9C8H9OQ1G2MfJcEr* z>_2(=TSZGRUfGvY$Z@5M7qpF$=Tf$%yQj9R-#f#$e`3Iaq3~xitLT z)u-MjZO0B}7qG#Skzc~iuJ0RL1!COf(EPnMZ2(nh#)rQH@TM^}#CL0V5+qVH|7$wTu-1px7>b>XMlqc3! zVtK)RO~NV`3P?ArXC68^Mcgt)OCkSWUUke8N|o1dBGy0RlOuHP*`yF8nK zNe1&{*uE1$;+t|Owlr_@RB{Y4LGw)__$C*8lLzg9Z}Pznqw|LCOvF#}y^Atgg$9zR_HzXKBTAo4FQ#=+RL5j!d6Teq^{Mn1Sq{~n|M3-gp zScJvnxrpMiI0`H$?znkJ$Aj^K(_fIb!5x{pJD&HtV;T0=*tUAjWqO_JnIqIgRgkrca0fK!>2 z5;yU4B1;kcCP{|P(e?^uH%XQ^5f!vUB*ktb%4kPQiJP!@Ayz{a!EeF}EJyD|)G&G& z7|y(I*KU3A(;1~CoE7e37pQQ`8k>u1m4|J)YE{e5Hz6+!gXe-wmVZv|s+O>D=8^BCPwT54D;ol$b1=!w~EM@VU$w&a<3w^d>O7#Z@!F(q#$2LQcC5^C`D-bGFqYD zd>Io-LB5Qol**U;6rttIIE8xiWqc$B`7(i0DqkilLd%!?5j6~+4l<&@G#x$S)cH~W zl89F5%`R~BMMhMn%w$ZN2eCOfW#a9JOvnyWUq-E{)NaIYJw78h(CUkxFNKl$QiS)3 z$d_VDseCC>gqAN|6za{Fu8|bvOE*fXeCe(TEnj*l)SE9oBPqz2UX)V#a+e~se7Rep z-h3&Iq#$2S(ic%uU#7j%XTX@EqGw4swfe%tDU)RYCd)u<3+l@t6Y|0^ zK2r6iX-T~k-%NgPA89@I5Z0HX;bQc7h@ zf+DnRNko*qJl$QVLf8F!yAC1ogqJ7wa3SI;(?FHfya$PB|+XJGNl>UsEV zrJrX0N}7+`$Sz>Ti&ZW*p{GB-3=6n$g8S%lFXW1Z6Wv4^?tzoshn5i@IN1aBFgSa{064;piy^5gAsV76hrsC?09(GT68 z-tfZ5r1d!NEc6AAoKotD-f#!%h&~=zI-;)!mX7F$u;z&V02)SD)z#gW5&U$-rNgAF z75PJq>Z1b`$Xa>AARkMFs%Ch4t~5wf?^7qh_^PeEgl5l@5JBqKgQQ8I01 znxDQkXc@s;$BdXr9dSS0fjZ&=4=f!q$pcGAOh#C9#Df5mj94-B{NN{#&&j8bP#M9y zD!niTyf777f{d631{+2tB`KltwZ0#F^4R^P>A0${q_|Hv33+OIU>=`PN#L`HVs>CY z+(ga}h}V&45aicpxi2CM2$+$dSL{w0Jc~H@LZUlYun+mrH=G5=O`wpRSYE<4&;)+|pW*g8eSsf@28=|Ab)g z)v-iFOpd*$V@ZaXSl_2($wq+x_I({oF>H=~pku8JlVkgJthGCR_#t5AaiZoub-!6U zVDJuNT}3$;%fbZKN#}hG&N~RLxz4L=9|Aua##hWY@?EI;?oaFVo7it1X+G{8yFhoI zsuf4Mqf%YxeFC@OSR2=Q$8;>ArR%*<37Fuz?>GSyUH_dRAe&p@&iagi$*u=a5-`Pe z;pYGn7yh!eU|I5=sh-aiUKir9KLsv44XuF-&w#fKW0G>=&?no^{XF%~pNR`&A97uo z-@ZMY3(3XgTW5<@4?Qz)6lp$om^7~_GmC#&M*F6keizAT-@z!u zXMU&Qjo`~e8HP?r)G+u5Bbko7-uUtOv?EvNkegK~_1sJvGXss8iLJTD)Uh8kq2GqF zNVWgu!FxZcxB0cdNc*u%-1hnF6RU6Svpb+U>rKClxYD=*@8d7-nqQQWpIgAbkO_g@ zsHlwe42FuSx|bEot7L+h8n!nfY8X5XrSWIFeb?=9Oaq!o75YSU4(cSD{~EUEnqSx6 zVuGdQBhtN%8~wT9Qr}wCeEAWHo6pjPeI`Kj_lRs|h!J34OYL{?J`hU&)$v_Ki8XQQ zv(2JyJ!xgpt&#VV*6c%T-pBU9nh#9qxMAF@{PkSD#rNEQe%Eno%}C`h_93GrN9Lv( zv`<)kKE(z3hhA1$EEwVz|Fi*Lf9;cq6O(cm?S7~HjMLl54Rw>`4Y^5Xl>MazpTIv+)l|xMZOcAcBVaql3q#_ElI=eZ*-o%A}K1YtYA?@_*d+XZc#*j{W-M~62 z-Ea!sa5};bXH2k|)Yp0~ZvXf4*+#9%9klwI=&7$~X?;D1{f?-w-zZ9}uiq+EtFPZ7 zO3WWpd0Ep}PF|}*I;WWros$Xw1DgLMwg(mIClf3s_4UNdSEGKOUc7|d0Y1{R5tZnv zuh(dO{S)s4qnFp$zYrzX^y@IB-J;)zJwxuLTSM#XKWNRr*dAE(p9vi&^>z5p$7eiz zbhf7$srs7esjpv0)Yr3EM`?XMhd43mt}>Sfjry?v;{Rz9t*_rV7zMi+B_oTia z=zFquOwO2{lG6^PU`Eat}V)Losiv)+(4_Z@`EB49n+%q)xt1%>Z`2?T3`K0kihkP|6Jms zZTJ68I-=(yt*=20Tqq)N(H2-m>TC3{4<6Y0<3Z0?I8|STsakz4BTa?+8jBtG)Ymvg z(E3_d5fSyZ9CE}Bzf7EaAvJ!$o&T>JRDG?8Zm1ODhRPOLOzP`58CAcy6xZ$?xr0_; zlRWjcnnj*pt7E?->T3-}Y4x?HLbdu@3sGYJA9v5YnBQh-PtrLp3!rl{;p5T#y4W66 zq>3yZ&P;qz-tybp|CUSAUsCDuH-e{HXhA7#!U z_tLGQ^)(r-Nx}BOnpPHcoYdD#kGwT}+jk_Ot*<{LPE7J$ z*%`PybHg!mL)|1=Uw=iDE=A<$Zx-~P)K~wbYZA)M`{pdUgH~UYXnk#Hd7fVzVaFjt zyuLO@l+@R>vX$SAUelljxtUg9<;`Te-GtUO!{(sAHn*VTq`v<2TlyneIqSQS8))@a zuBE{G+Qw5~Z^0XR>g%nFp!M}OBuL=CUVU}tIBQH9t&xrRwE(8crtn(ygKObtqah4BG>1?zN!fq`uC3Wo5#5FQ0Eq z?x5AzWKVs)5>a2T;;m?X{R44g(yF1UKb&g%#v9~@x=FOY{)Hy}9g&~cE$BU|uT}qC z@$mVYxf{qGwECJ%>uWD>eZ31i4iVz@^=?E-eXYCX*poX;_tYmh)9S0dnM}7nXiZ;i z4(e+^3p!5f>-fYUtKLzmsgK-1tFLky8P?a4p87fpZ{(@3qZL8x>lh?R;66IM@jzf) zvje0fdf;e%9fzilj|kiZ3#=mb_2abYf!P0y#jcM) zz@<7UiYEbEb1jLENRUqkHU9o^ZkN{Ga;TT&7ZEUpdy36scJje2W)Aku^;B&;*9T59 zj1QEjik@C*fA&$!4AOk;0rXS?an(WMszcag-BpJbs=4Y2cF5zZqj-6Qt3FW_b=5H> z$QKD`o3VV|XN4DtE$~HxxyrRg`sxJw>ND(`>#I8UNgud{_-a=43snmrZ*Y*bulp)N zPpdD9uTEi?bzhxUsOGCP*ddRvzQW5ReD$@WsISf~eD z7Jc;{b`5;>y${?%eD(J9`NQA*e%Y&}ece}yy03mDzWNEfto!PMLN#Cgj2-g$>KD8` z!dDj+MSb-v62wz2wWJ zece|{y05MgU;T+))_wJtLN#CgjUDp%>N;K?;j4cXMSb-z62w>5#JBsD+1NFf*rNMN z*dl%9!^&=YX07YkmI-blzOvpMlU(bS?3+mYy04OTUjZ$%n5Kme2CU2{9 zf7mk@uAZ&*x;_X!H5hvao*Lo15l`KV9o9WHT%nq$ zMqqzDo*IdlM|f(KqNt}vBSAbh``XweEkAl{F$ubsQ+idu4?Q&wdj_5w?*pe0PhGrl zVrk=xFD8=awVWbF{eI%92e8AsrzR;>^VDSQkH=FF;^h&ZdPq^!Qx79SJay=DgAdDZ z5C20<(LANs^l9j+>DV*y)FVD{3h~sjpQlETE|Xb-G_QGzl=PXzQ;%VXbx%F6P|Z_M zV1GQGnuV7~chJrf8nhEBYMt)LiTtcxs*xoI*S`sY353 ze|coWyQF!|Q>}FITR=SZEOuD;)Ix=7o?3+c@p$Svygb5FixovZwFC*`sV^%%Jvje( z=`do7<|$!{tmwC%`^LXD?M7*3N%NYgTI-%#MLe|{JFI(ZjY2g~ zy@>tscxo+P9^t8%6h%F?4hiC^5BF@YQ@+urUx+E1r-UieQybA!FJsTZQ=5F?6ymAO zEoE*x)pE}y(!A!WRNYgr5>LH`9o9XyMWLFfwqk!gp4x_&M|f(xqNt}{M}m0juPy)F znUop#Kj#&MDbiCr(NnvyXW*$fec%-0scsoH*O!(Z?D+_+w6Bfsske!z_F#u~Praj1 z%~S7Ue>|SriODnKPwhj3cxroeqepJuKkR?jDPfBA)PD5ThuAal)Bztj#V{tb z1^#lb>XRvNe-oWDn=V9&dzf9omi4m7HMUDgEr>qrE{GO;o6o^SmAfEXY$N+d#}eJG zLEq|FlDjYHI~_}QmqmWBV=3;U$n!eZ%H1;XgO0U!cMSZfW2uJNvHX*cwQ;v9U(hkO z=2&b~{+WOY?k?qD2$<-e@NkiUNru>L@GAk6+4f^LHFt@CDek7^-vA`r*N1;~&$3@O zG`mg)bwz&0h86%GUv@Ie6&g8MhLuLbwIj>+Kuqhm6-|LT|w?tg&!SxU*^veTqsJ0b&RbbSPr;WY^;<7*L6 z2G}MbMA%PJ8R7s%WsIXJDuW!PsEl%mqB6|Uh>~&KYTe#8Ek1ene~#n!JQgy}WpEtF zVq-9l<9rZR!}!9&as0-Wi(8)Se}6p^>e$ol0ymBFOZetpG#5CB-)YTK^C#MN)hjwDm8cT1kqpg|_}9 zRBK7`g9|L9jNZdkN%7MQEFYoTNQ&12%Oq4nOUd!$3oMIr;16CJESqxR5Ppt<<)<8Y zgdb#J1t4#ca*a%a)ON^Ebl63 zS?~lKCM@qPXXVEPs|;azcR9;KD1IADSl(gIvM35Rj<7tCoMnL&Y+1tcSaO!dQn2L+ z%frc87EZyIC#;Alr&&Y=U4ha(sGMd&6?8>PgS%K<1zm~K;4chx%5?W_&(wTsLJQA=v3~3V@9=gX1+1E7;8?L*W#BWB zTSDqvwaY-YFpSwsExJ5h5hJ0i|SAA)wTZssxmpQH_97GpZ9%YDNtLO3kQAK+ud@6qTA$o1#)P>QGc_ zMm$BOX4Ivq)QozF63s}e_fm(WQwJ<05z*c!L`0-!G(^p4gpGk_H1EAze|6d=F=40pU0cZPxRm^YFW8Mt!qQ$&90cFf@CZLSDLqHkx76gZehZ@H(|V6XrLR{rH;*Af zflupfbg`I=pvbV_j$yw8+jGNS*KX^B2ph&!1H<0s+M;fMxV5C9FdJWw z*a!CQ{27p8`GwiV-HjN2aM$Y~!hyoVf_%2OFsslAaAF4%{N09aV&Y$~-vE$o^~_uJ z;lgQG_nakm!d6fBj=UGr%s1i5cQ-WVKKaJmZ-F_6aXg4N_PkW}ubU61=aJT9PqGV` zjl9t!V^YwbVTIT~*=^YQoQ^%yf)m)HTvVLD$%w}+IDU*1aKIuzoYQpd$1OPAkdw?8 z;-FNszUA0YSg@I2Q7m@+hqhzSvf#`E$+F0D%J0}uTCnF^QSyfY$DVD$)_BSCO{;mL zvr&%ylm&a270dR_@|J^+{j>#JY&nZ==4{BZ=U5OG_^rDmmebLWJ=cOgri2!Ej&baH z7VMvtZS!|W{?o8y&$r+`2RQb)%egX+{fq_A#**V@jdQV%y}*JRs5qYfoQ`wsXDt{m zlIH6LI9JxO7h14*L2~@d1Lw*+_96>DQ%H`_wR5hbV?SrX#JuGA>@w#nJN9A=rlKXs z=TkXX)v=dYF!?GuK7+`)>W;nCg6T%d@i{Zj)pYFVEtp`F9G@lPTy4i*X2Fz_59LJQ5vyodw5yiC>89Omgh?-e2%_G_0{?$KGJU!9C&^NgPgb?2X=E@J-b2 zk6JnQ%NCptC4M9ZSZl}LM1GVncfIl!Qyu#i3%0HDUdyvMIoHOqH(PL+Cg=F-C5GSP z*sof!QinU1}~ zf(>@?YfiJR7mRN2*l$>{@l4WkqZOw+I`&QrHf8~h9nW^`T^4Mk0akVVPRD-Jf_+dL zEj!-Hv3Gkr4rlDKTjx0TTNdnGfnTeR=Q;M<7VPMdwA{hKJ6_<}do0-T05o>Ivtz$w z!TNMyRmTe*`&|n*7-+QYc#&i8^>!T2?PIqtcI@{oSP~AuRvqu+*!wJ4DlKWbG?;h1 zn`6Ik!BS$NvE$tx`vVIWegdmH-ovr?Td;Chqh-f?I`)U&j>B1i?AE;;`+x;&E#cRy z<99puM;5F>6sg~eceuA>e{5OPy4A>7pP9;k#RhCf_Y8KJDI-TX_Ca#T?7SS-Vy=*q zk&b-`S0=i@6r?B~qaFM3jYv@^#ya+q8Gm(7* zPB@D_6!~w!316{CqQDKf);#L$fhg(*Tq@_-<52JhTpP}@hoR67IQFK%NcJcceIrtM zhCK+y+=vveVNXKg8`|!9jY#1f_AC^8BT{&WJqg7Tk{4b#TD-sPVW_MPThird zl3Ox4&7OzK*|4Kh(sD-;r`aP>c^ftaNm?$5=QMjNs$j!{ouF3m)4)`A+8o7YwY-696}Y-{I70& z>D2Ze_5MiExD3wS;`m?d@znm4YfiSGsBxK`yUp=$se9~Qe^&ixJ|$tParyG2YgXJe zf`$dW?}lXyD+r&Y^(JmR``NHz?g*Ul`5BNV zj*$v{hBI6oOc&=!1x_l^Ef@Td$-w7`l8>zqAHMQma8=4Ga%1z zN)1aa5hr5>UeK{jaWGb3mBOUyY`;rDEs7zgFM932kmtY>4QHG%{!BxG=;Ps`yRW1#gny-;hf|1_h1K|^S{y%n5%kUP$(^*r?8AP zY59B|la@cDVd*8}M6kdD9m^C4f(0U$Qt{)l0t@j$7Iv+iB#v}u(a=_)sNX}R$x_EY7?ZViLncuU8mhu&70 zmK%EzCAsm{KQH|I)3U>jsO4e}0=JxXPny0LO;^iUAUF2;z)F%Eqi@^wa$<`nXGq&B zH>67Xf`N@%ZoG{B^kZ&pQW)mOD>^1E->hMf8?Wk^%#Da8Q6e|C;FTmdZr}Fd&b?P> zenzZNx#4Q2FDkGd9rQXj1i7)p2fi@a_fsr}f8MiY^OVP1(dBh)vU%lV)Rgi)M-9 z?B}b&icxbu#4!5v17Hb90K=%!!mKsyF|E+uA@=S9LX*w>Rk13v%r5Qzur5S~;S!OV5QXozIwJScX zqSVQ}#c4v1qaK7r4HTAk%+JX*LhQK0sE0JPsJJjcJHE6d7{+oKvq}2bNv4 zK3y}k(vud*P3u;g)vdU+Yg%@(*u@@|4nC0wJo9brQ5gV=*SbXh3@rwICc)Y23W;YC zJej{mi0j)EJcVnKz&jAU6+d%Z;2ja~TF{cOgB55tqP)zvHss=`s5=SHrdj3noe16r zt5Xi(2A`t z`^OVYx@F{a%FJeeNmD8wTP1lRkXF*IASZ{x;*?tJXXvpEPLNGmS!%g(Zbn+3+ls;e z#+jwo40A`Zw{9jK7OoizLFEb{=8e|^%oS`Qomefp1wFw)W;4UZ zQqir5yN>{3k?1x8CW>|7)^-9WiG|>nT3o_^p3I+>!xkK`SEqwg9*^Ddy0n1VG1AGM#KWN3%RN(mhPsZoz-}l~oI5|F=_(1co@PYL2 zLCD8LUjH5jR~p7%=3@C&*gort{$~RxA0}ASNr2C}7rE)E9VniY zT~Jh-#~#5;3JUTIi?cG_#8jt?Yl(TBxK$>mI$fM!$p$E!Q?l@RSNMnpK;|Gm@{%X^ z2gBn(Onm#k2E-2c=~mY`fKY4C<&ELADEs9SAc{)3Htr0KZjZVIw9 zVO!>wbZc3hpOC_i)&^e%lLH(TQ!l|3w3%V zG50Y0;4M1l9%dg@e+-k|x3$RN;B9c7&9GFEwczbKERKxl`53%IhuPOSscONt1Q!R# zi|gAFT$~**@HB#pX)S)3_$7UUk6TZYAfZ)peo}&-1vxwm z5?Z-wkPA)_U~BQR6U-xEs+fHY<`b}uc!3QT=wM zdoJ*v1ZN8!CEg2g!{}pRP3u{B{*h*_mJg=+(4SqvYMRUk6)Tw#rH~N4X+ks(_JPCcNg>qwS9m5TJ|NEP5%VnCH>;%fTP-` zKYnd1E=wX=)Lf~>iPo?$BdE6g2_hA?WCY*G8wi5cKiSj=gkXbCZo~-gr$hqm!3e4e zEZ$UNB5c11syQq{u<|bNp=PlJkqnzIf@&g55GkmLOWQc|X@B zhiP|H;l(0&gc5Doz;b_aln`tv%2$h^n&{&9NMd7A{^A(^f(*uOLxYvx-BXEv(5^rS zqZ}u4B;sLBLGNKr4T2|qFz$#%4=>&R!oT|$c%G`2L?^JWMo4sjO`-=tArZCNEzJXU zOiJ`19g`A0SjVJ95799x(f8<>l<1*4CM9|pU{s>-)nO&k!*y7b=n({05_S3VAiwrXuoTN*%nvCSvN{LqUksOo~t)?S6C?#6WMKTa1dI~s% z-zZT^G|oZ_P)hVPa;22$=>U2pTFpN4W|c%gO0HKDJ%iv%qGu9ZN%Ug`R}%fWj%yPA z1i_U=&jOrOh4!&ez4zhPZ_m+uP*s7(N+!fpkPuJPglHU`1FQJ15=x?f zp@fp?i{+kj?qOT)C2IGufF{wG5%g{p!G>O*6i5!Xl!FR8q;W=}w0b3;oqTl6zfNJPPQC3=C5Nr`?|$D~9r)G;a1i*!s% z^m95UC0hM?L)I55(YQ{CN;Iw!;;@qF=b=>&YZ9%N2yt9VG%gVm*DHx$LE2Fgjh_s} z^-7{&AlEC2UIjRj=;!lK|NUXiz6VKwG>Ikwl6mkVROGd^A~y=Y1o0*kJ#O&PKi{2t z#|z{h+FLZgN2Ek=5D}Me(Ho)j0+bT{G6AJTZz7a>Oo+E2A>O75(KxsVVoxM`Y|noVZf-tz6uF5e(flSJiMCBm zqWvcHU6bel0i{H1=RtC>h#B#qb{r%Fr9_9w&!t316HrRDIs=m5T}re%|B-`IqRWt< zONovpAV_o^MWsZSrKptXauk&kU7n&+qAO5TzC~9=)FaXAOh`c}iB`u#3PMSA721@N zXzgT3<`GSzwR0gkp(I+J3(4=Hy+zj`_efL{U6T?@qH9q?Npx*WD2c8^2_@0-lu!~~ zml8^%>k&eeXttGAp2orr)ZU`ipN1!cF}BC(ujh8!e1wb>O`^4NB1d9lI2JS5BtoK_ znlSE&L>qf63?7-JPdFwe8b6(IOiDCID~ZPCRJ=RdL^pn2Arf7_eCn@j_H+u60BI6U0wnX`1XSeDXhm)mJPGk85wYP)c+%0i{Hz5Ku~VD*}Q(Va~gcZRW2eTH20)VT$}{j;Bb+KO9^pCOakV2qIH%e)TDx9BTS zNJMRR-=eSTn3U*0bWBS0H64=@{ilveiT+E+q(uL%V^X5814bqKA01W_{jUyd68#_G zVst2pW*cg?M=bW;2|hmhD4|5!q=Zswb@-jQhkBE?@fU{C&%kek4=y>d?)i@f#ge*Q zVIaG}{WeIVB$FWur&NNT!z3F8Lq3SRVeC-J@MhWnZkjUsmmkP&Vt0{bh?MHEnBoMj zE`t_`>MX@NmZDOv<0vZSx-3CKugg(X3U+ylO2w`~Q7PFK5#>(TG`kWdlxSC`gi`G) zlu)u=l@dy~t5HG;cXdK&%B>E&;@#EWuGN88hQZ&SZT27g-!s0rw)2DSrBu5s3}TeZ z5fwa{By})J;yp>yI9S&Q`9S1*_2gTJu4t9~Y&>fjHGH&yJAe`3|I@I)aXaQo$ROE2V@tA)wUorUaBCeiH$uifgCPu^UMlZ;n^;1Xr)xHxpb5 zxkGSG$y-oDNqI|3C@D{%gp%?^N+>B$qJ)z2WF&}`A0OJfd13RVb4kQBDJKz=iP0LX zbgHLHHww1#K@JcpH@?q}YPDn4pX4^0l=IstHGpr|w-G779WBtM{0@prDQ`_CY=nDSz*1rzXvQ8$e5xCguD- z9x0!sOZjB1e43O$NI)s&4-rsG`NIU1Qa*)%Qp%?iP)hkU0!k^LPCzN;j}TBw`J)5` zDW5@6DdjUMDy94}ib^SeoT5_7pP;Ce@>z&_r2I)rC@G&!2_@xEQ9?=i(}d8Zd=4d) zl+UGvlJa?!P*Ogh5=zRSp@fq11(Z-yuKon17}`q87t&uSDPKehCFRc%LX+~vlu%Nx z{zN2^^4za?{I{U*U9XX1s!6#vPUK)*hEl#fLdsW|Fz$$y=WiMLX2mXJJ%1fSNqH+a z7$c;-SeNn=tR|Y2cOjsZ@~#AwQr?Y#Qp&p%P)d0Z0!k_GNkA#(y%3~Qeiy-&l;2Ho zP0C9tp`^SwC6tu+p@fq1zLZc>-j5PW%KIZhq`XDwo`R-L5dAwI|fBIVoC_go!&|Ae@PwI++8YuFIu2W`EZI#DIY;mDdi&x z3Q|6bqEgC7Q&dX%7>Y_MAB(6*%I~9ulJaqsP*Ogg5=zP^P(n%hL`o7Als`ZT zCFPTlAW}Z(K%0L@|Fxb@c56~jgC~>ZA(ZlmBcyza5AuOXxzQx%3I$^%BSm6 z{s>kRP0Al7pp^0%1e8)flYmmnA0wcY^2Z4%rThs3N-3X(AeHhb39h7kHo-M1e~J=H z%Acl$lJYr}P*OgZ5=zSFQ9?=id?bjJR~=Pd5TIYUq(?W<;w{QQoe$sQp#6S zR7&{^6qQoG3Q>=gucm~O@->uDQvM<(l$5Wfgp%@?D50c$9U(L+Urz}opQ zD+ff7o}ez%`vmdO=2gr3*4`2d;>e~ z#|&70afmEGULhD|!RKQ6hX~nz!f-H%sMRT}JM2LZh7cxyK<1V+k8fC;KDZjWyZZ-Z z#Ku!`cWE5^6H|SL4KsXYf@SdJY4_-;+QC>0>@bXS>g&PiuU4P^xXh)Er1{v2`1OGO z(Xs5jE@<9m)6WpOm*olug@Xz1UY4r_lvU;r0?I0LjexSs{7FDrW&R?dtTKNSP*$1i z3Um($;0Lb+|3Os#kw>}jKlm>ahH)1QsQivv`C`onlcpV+NSsokH@m=%xO9s2x(~f> zdb}PVv@CG2VNAF12Dg>|8h_;VB7@u@b_Tm3y+Z~&J2N9cH#fT&ydJWBeixVLc7*&W zPm;(eE@XcJg`eFK3fzcu;}DASa_lVl!s61j%*;ZucsUe|xFCxiy}-|%3xyQrx|Sb2 z7mB8+C`sW^j6&UxcVK63vCi|q@)im!(mk4i|ADuVwrGH(?17b|+M)rDrij1y7}6FE zaFm^N!>`pA4RExz!T*q3s2sgps=;=nhC|w-0k?x)GfUYfd$Bh-q^%u5GB-OLD~ZsCx&nm{nguw6K$Ehliho|l`=PHKf+!y&b*!0ks0Y#R>M^7OD3>>Cc%R*c&w zJHDF*TK<`~P#r~!&Y)_9;ynz?MyRf0uu0xcxs5nfPw}EncG|nUT{u*qGE7qCM&eKd zWXM4Oa&6N3l78R)OU9uX=Ra%tazStdz=}2(%*?C0lbe&KJ zfHn(iW_FRm+Tc6aLwLM}IP!!&riWcT3w}V(3?4saS(USI^`)<^;>=*ZztSHa<*Lt6 zHeK~uCv+#+Z5UgXGbX+B{EC6I|9pcw<8|T;d5o$V4CMyWg|>-f{Q}X<6m_nJh`TtL zBBai>D9$P>F73!pE@$3nSL4|hc2P!QNqVV!xTf?9o^c_(!h9&bg2!ACuOy|eJTqeI z--V>(9u=SI6V;)Nx7?6AEe92u#=7)BS>smU#FOW&|GZ6xVbMfR{F z^Oki=Cc&*>?rqfEnxWglGQ+5=9ynH=uk`$#73Vf1Eyp!r7vNxLe+URoej~sNiZ~r8 zgj3n@SoM|jx6ugj=X4we+(~j2Y=sbP^Nxb;;BCXGuSUUw?V}SP3ja5V zv>w+;9|d@fJ(HsY`Y^zaK;9tWRv=F)!o5KMs}$j;pc@YZ+#7U*VSxLCB8LHP5z>c& z+8;!Rfwn(LJ7#u=+5Vlab-FAeZla}#yGaHCb_Rt!JA>jwC&AzB1zx=fUFh}dO?wZO ztw>sr>yIx&`nz@LOZKM~cy7a6klGXE;@V4)+8LxM`3|J^2f38@6-aFrl03cveT^f@ zO=OO>fh6E^IesIH(0Oh+6?iLcDeD%StLIRX; zKDbXvfbzu$Hwj5!vT=*=J-AUwaroMUn}uxGBKA9W>M6eU{0s(*fvsM8ej&K_&U29x z>XqkLN~kxUOO#MAJik#wz3=>vgxhD&>&|7QML5;l4(?|V#;{fG@^4aya8rYH0)5xP z?G5hF)T<8eac~Lsrh^+DRD1f14(@qyf2ZDaaN~m@wAUQm{XpvI6CEGDma#f(CK+Vf z5Z0!ULjTDbq>$lx#i`AnZD6z-Mjcg0yQEHg{_UpQ=rKHT{BZ-lu0PO?6WN&HKGKbc z5C|~QeVm(sAQiHSi2n~EyB{yOp^!a*bfl0?(mDDlF&QaYF8QOxg8+&M;6ak1hX5x5 zX!yd0nzjAi=*jh309ayj7s(nr6@+Y>SIDM=uSo#jckVt|X43~D5?&er{aIpw9)N++ zUp)YW5TpSZjQIZuz!1FPh5@(->Bs;K)j1k~VMu8KxEDZA0EPoj0&v?i{nso=z3nt{ z5eY z*c-Fygd88tg=nPs`*OAuYT<(^0ZD2P5$xvyC)5(lCtSfFBN!KSLJ5i!%ERGkCzR;J zzxnERM?N($Hr5FxsUNwl{>K4B$zC?2q_EJP*JVF1?}Sp+1^k}Ekcv*Im9K1v(ft$3 zUN|Vb$r3|65AeTh9BS=5(6wv0#^P`8Q7nHVU`^I`LTVwp#P9LHtL3Me|gL7 zRi3f+oX{o@I?(jhhs=xKy(h0To`rMUt_M2oU)XoR*fU-qK%HFhcLTNsDKT)jgO{x=0_rW{7 zVr6e`aY7kBc&wHzmtfx0+ni9Q5A<4c?j$5vU0Np1Ne6_v{a8eB*tH|xOYTzaz=wWZD27SEMpfA{A7<`kPG;VHul`ES+eC#}F zJ?&$2QJ=`fU~<9fPNCgv z=8#*ta|GJ0xUT!6qK8X6qDO#JXN7%^$fn^<%mRK%52cI!xS18qpt&7ywPVM%0cT2>msT zjmn5ACo-nhXuaw>F(URAc0op3UTIos8tS5zAMMX5D4D>Z46$O>Du{-A$j_&IW0KWb zp_#d93F2~ghIH5}RD@gN*i2p6Dne9z)WBIEs~8Cq(!-;scCPVo;Z@S%3cd6WyU%G> z*J$~yY;}u<%yhrD*0j1ugW-n$SJrB6sZ{gxwby2l#^d;3S>xVFFP8J3b}(jCAic1_ zs2=de#EkC0=i~kTKJ0!pP;_TkqpHcEF$l3gXWk*fsAw~AECCaZaux&cL(om;vOWfm zLy+Ah%V^GjJ^uOY=i{ClGo!YA5Qz^nZ~}maQNlVY2iV757QAq-?&N2P6&1T_R&Wp5 zQ85p=$r6s41ns!VQX^(Ec!DHL&ic_i@4FKF327LUC0$RJUfyK63&W`=%iRj4$x^Ba zEm?Xa>PeP9NRVWiT4ma`olUD#Phhf$4$EZekI6D1B3TATgW-m8UcFeowR&Qg9KwWSp^S_yqZ)^9MW}edn6XAxj@^b>b|(9C9UQtHp|tdTqcVr? zK&T)$(_nw3I3}hoLT+Hn@$1?lSk$$U&D%044WaD3?BdMy4n_+Or$ed*va=ElheH_% zWisey4rOXkqS2f~SsIjNG~-Zvgm_nyj3#_Ubs%7}(U@P^k$@>iBMxR0u$2+dNAsNk zk|FiVPba1o-O;-~$$T7AJl1kZ<-(B4gLYs@5Emu1laHkp}WR1LCD4n*Iwk0wUBCk0!o%#>O@f<@Tz;tBaf-Rv($tdL_O`AZPXD(Ew2jGO*l6xg-T=;7`F=!#%^{=k9m z0O*ETK~|wV0J!D`dMJa?(rL zGjb`;_b|U7=ASNFmh#tY{&XyA)Dbj8ptSr0=qic({7W;+-C66gm8548apyggrXPSx^AWTM zasL>sG>pfU>36i>^4j!Y+dWQh5c{MwJ-dBETA}<)sLbk{eg5oBqkb)xyN(aq_h$|n z&A!7jtcAk5jqT4qk29>L!g9w9>e6SJ5zpZSgvqkN4R3t?RnFnN9wWUG%K~{IWN)OU z$#UIFI3@)flgk2QTKT{(!zfi{_0Rv_c;#}xhEb&X*uJu?vgR{#<)6G}#`4o&iaM0$ zmE^kWQN{;hlaFHMx$wm*ls$^|={I)BxB+Y>B4gqdlYZZriLSboRbXaXG5h<&uDq8+ z3;Y63b0xmKf{VKqb}lM*Wxj%fGlq@M9zM2Ucz;*zD{9P$;bTXS80JcTC55Mr?rYq{ z`&U_ExqZeAHJWm;iUKpU3ymfmtEw=b#4KOAm{voSL@;IZ(68^_JIf$0)+5MWEF)MG zBUlR?g9z64L9h(t8J3N*5=;sG_hrwAdlZr8V;8auWP-R}(3`oM<%RZ~^woZ6wLHyEDS1L_HV28u#_Ye|nORRe%!3QcHA98eWWs zmtbqI;dNrV_`pVDcw(n>gGX$CzYA&KW4Icq-KF8luHijA7N)p{_w>N6T*G@|pIpOR zyN2I|Ffn{y-ivp9a`mMw(lL+W?q4D1!i=Vx z)76;G)!!M~FvD{)jGFwB`xa%MTYRhW$D~^onl&O_KGiF%ctYVQ_OS0h*(o710*g6Vkq?}93M>&rtO7^V6e@>qc@C#5m=($#)(25VG8CLQU_8ra zw~k~gSdK~ln3{!7B_Z0j?W~=#@paGpoR*uyg)%ogVu-S_H3-q2K8S{4%rbCLcKbWE z=gpTB>4%`$r`QE@Q05lNrQ~c()@5atRU089_3#d|qzW0Suh3ksEkZ{cXdo9Cp&|_t zBsFMu?36chhiq+5Qbw;qyg$<1CTMO`Yz%79O+K)UNan{IPiMrv_wk#gc}+4Cb;*2G zN#+c^fs)Lb3PZ_!OkuiYK8`Rkw$Z`--&eFbO+V9U#){rZW1mE0XJcbv>{C9li%90F zA3}$BPP>>%ja8DFs7vMmk7N#{S(;!7$sD9mk7N#3jFQYD3e+X@9<+c+=1>L8p)B5v zhbh=2nfGdpE}6p>j*>Y-VM;PbDi9@el)^O09E~W6puO>yvS-qJRUj_bBdAH{eHg)U z*ce1`ybpp!l;e{|^VfWPeF#-#O*s;YWUir-`J(20O)}SdU@4g|VV{U(u0xoVrD5aZ z^DA#Es6p*kWy$TBOx=xW_{-QDl%-8Ru#p(vdGqc~o%e4WOWOAst|aqSDw(f&ER>SD z#RE&p+=_i7lDQ3GVtASPuhmL<@y`J1m?oLraFom)X!sl08W_IQ2R0JPEa(?r)}`#u zM@jpdWF`{HoU2LZJY}9Hne!EjlKG6nbje(xU`;Zg)lihog$h)Xxk!PUWIm@*T{0Id zSeMKt3f3iase(1hd>)-jLX_8f&VN~1C%z>v)I+38<_ZkaN^A{6^nwqfK_qkAucsbp z{nHo6Nc);(ChC%Tzb2Uv;2m_yoTN}CnUggTCG$Z9NexQ(t!tOm+wp7@zS{r^7yXe# zaSEC{6&r&ZG|dN=5y{+qXkE*^WBuc(x#}%5Ntev8lw^L5H&Bv!R$(Za=M<((<~Ilv zW5<~1m$o@^zCY=WR&Ygcq_N+lvFEWdF!l!@*hT8j#v>gE%>3-W1*Cbc?j(_dYnX1y zknboy6W=n$tBZU`F+H#>xR$Bj!g+a??=#$lgG!7Yn0G5pCX zJ1S;0`<;Gs@EDE-w*neo5nBVpE16&;DY#|MPfKi67(b61uHI3SNWs0J72Ka`QA#kx zJIXH##e#cLVS2&+Rl!=py`-U7aDP*vD!9KZP%F5X6{;89D+<;N?o|cr1@{jHYX$cj z4kHqx%CQGx^A8<8NL;9gNH4g5-^@mkY3_UXK8j|zFW&D{G&9Y8 z_5Q#Er?ams?0)+d?51Qn{@wXQg|c3hjO_2eV;@j3znIll{*L_-hJeKLYUlK~N7miF zfjC@`CwI6kt%oq4hp{n;=Mf)-&M@vX@D=;e^EdxcZOtejX+CZOyFk2Rv#%2{GySlb znP$_pWqEI>fSPbLfuUk*YbvOQTty)!^ritwKH*hspWNlgzTICSH^xtRtWhxPQJ8q1 z0qwXG&oyFZLg$HCoL@e=#Xt3?>?94x;Y?lu`_#}4jk?S}1@l?X!U2O4jM_YASCnDE zBpNk2a}^mk(aQ2q{(lfqPPt!$o|1JVbGjaDb9Vg75b2m$HzHi^c1%X{Z!r2gH02sy zJLVs-&oG{2QIgY_ZDZ&6zoS}dI%zw0DZ7BTo!ccXM>E>sRftcSE317fC6SV5n~Kux zwkRqMw=wNV4hQeP_Qcdi-_jQ*%wgF(cs#%y4q{`F!yzBoNg_U}?DVz`{(7JtF&-nH z$DWEb=?2f^-ZcE;}aemVXl@ z9P=wQ1rfgl_8G=(7El@S&$qvtbXVf*yGh$|bJztu;_Mr$S{$<^K)yFDMFYC#7iNm@ z5S4h%d>(OWE&qtRjDXVG<tGVgDJ%hBzvSy9 z6`l1umgFkV2E@2a;Wn=9Y(x(5QnABQtoe8uN$JUGcGpb=l%9MA96%QQ9lQ2pM$GG* zX+nzye|krtK)wdv+yafc-i(jg3XU_3<9^JXFAsN3{q~*D2NG|FPqGU{>wNKVe_t@B zsu|+{W|QD-@o!8u6V_ZraWt!lFR-+onCd2cJ9lxmLV`0vC#Hr8%NPX1R%>x0?8MYG zVMUZ6SgGekStq8J38EkfzGad#6`h#c=I`BG4Y;u5mJ?z*Y66F=Ix%(39_FW?=I)$v zK>UEG7-woaG4Up3qxgYXzZ>tw)HP$fr+mNQvz)KQ4N9~-LdL}qt{3waTnNCc7 zGwJG6FYUdOvO)X^zS{Cd(PsSuC#Hc3pOFbKm%bJ|F%3=l+Da~vt6#f0F^x?446jz( z_Htqxn_IuX>!B}ixqE^59a{y&eQ4Exn8l+BzCs9&f5j_hYl*G;(;3;+{A}mRt)boR zswV&9uo@{8#LJ ztr&+knJqMqlkC8#m=-1|qG(c(Zj-Mtwk2({HUHJC3{Rj@JvQ3yC(O6*#JL4XzfasLesBkiB?`bzgH4;zcXbD9aZ~%p;(Dk(v)ONS;nWK;oHsXe>UR z2xH~b$+MuR3!x!+I#~oBBafef6?2zQtokTD)EFN>-O7wF9A5_9Nf!0^c?xYnMm~O? zMn*nH@E49V1eA{vUqMgF<0ps!HMu9mS4ajtM4SVozk#OU@$*}-&oKCo2bnuN$DSG0 zW7ns28)NJg-gXvKbX?MA2F>bzKVV`Tqgli6S*Xt7uvrsPv6wg!Hbt1VkRXeRCpBEr z>6zzJl8ANgVq)k452zVs#{1>UbF;4Bv+~@m=Lbs+W0ErO^XcErzBuZHXU6d%Fb|fi zG3#1N>)7J}Kk~s$z~0Jf9bsG|q8{UtkRYL}@cyHN{0STTQR77DxN+?M(zaG;TWgPP zHOy2$m|+;a>oRm-w$Axx!-OyXC2hy@MX(}FxEhTa7blHtpOeFiU!^<{HRQkswKadO~*j*3JI?j#yH`O>)-~ z>7}bS4B$U(I)H1K*KBZzVGLAWa*pJj>Hpjv&y%)ehk%!0UW?`U-^@#VVK>t;Ha!DOd+VpM{zMU;SRYf27VA$bDr0>dQBSN-AVIuTe@@LZE#iB(xv`hD z0slG1`iqEIe`$k5h?lN^RjJou->$8sZS;~p-p_cw^cD8j02a-ml9S!F?izdQ#}WC!ido7#(DJ84-sDa(FTVY#yu?IW!c}}>R7_~zZ34F zUb>fEz|+6DBikVBKBcfR;pcTxg6^mYV5ReniYO$=6h^~;pT6?Ll^ULS^TTMcVW@%8 zI4)v5;=;7NqV`#ZrD7W* z`*FaD#zPr`$l|S|oM=3hLEIWIfx8Et=tL9jj zmlkzQ%VdX)G3S+aqNjs6h|ck2IyJt$6a5I`)1i&DjNpBt5|VbQ77iTqAYcYqE+7ZbC{he&yIezDqvj_C@W(et%#__uVv>Y2br@N zQHc`C{Bl85MuPnH^m0=_I{o#k!+S~hD)hTS_gv+-szIHzs(b2OeXE8I))E)|_^-LJ zM$>YM33`MJ{4x|B#o7t}+7xS-{f=6@vi zc8W>&Zr}nqAkk`wE@%|tg2pyjYZ#lD7iAWFTBiB>)r)H`C-;bbm0duyKtC?Z`pfcD z);)B_`Wp{g_VDicGuCy*yL!lur3qXAAS(2NC6ar3ob@jfYMWG2jz~??IPmO z3D8byhwoTE^o;58Oe4#(!3l;@i@8O5X4%r)t+M&WO{iz$8Ov_tDo4j)IOGfEc45aK zvS}qJtd8uB5}=q%X1F@E*TuzjvFU`>dA%;q4o>H)5mqPmx;UG6<#G{LXZE@{n>;n^ z`<<{lwb#Yj3@BHKusXNb#o08bSwG4NtCM@(nIsMeop5<|WQ99t#VcjFg0IatcXfZO zeqtSQv9PI}6Rzk>kN@(_g8l1njba}SnFrE46tbyatdBLEusX0eil4D6UPk$?YC7S{ zzMY-A55BMY1K+V*Z|rVGn<8aUzFzRCTY^z3)>%`4Jvrbq=q9#dnWpPPn1Enh!aVNzI*bBVSa9 zoGRz)n$_9WMa9A?juUR|J2K>fa?=tA%wn+HbW11P#P{vVOWQ^rPbd)`5m}e$gq!MZ z6p9-rJK>w?#Ud43IpJpHVv$6tPPjR}Smfs|PWWbWvGCGuPS~Lrv&nUSZb!I(1zJydDbC1A=Z7u8Bek_A z96~;D*G#i_vH|r*03oAPa5uL_!`zLAuyX9-aK&Ppt^DYj9f?Bj+MSh)P3=q*B4u` zw;o??RfOh?Z4{Nh*p8^j7q25he36se{{I;J4)7?8=l}O^$>qr1dq+YM>5w3Z`by|n zkW>;#BMD8=P^4Eu5KxLBU8RE*0TmPkL{JnIl&TZ`C<2P*KfCYl>^tuz z-{0To!RN`$-tNq2c6Rrj-JP9!``nvrh`b65A+N;ZJ;Y*L1Qy#%E42w0zK)F-dM_?o zNa|KtG<0II!;QsGl-7mCF3oUYv71sQ7JHED!eTEn2o}pH))96_oJi=)UO zSd4#YP}S~@hxZ}!DlCM&5{u6fi!UOuI9^(*O|Yo3*KGD*_aBSz7mb}*oN!}t5~X!v z@wH|+usB7j5{uJFbzyM^83c=r*tG4huKg~)SS*CR5{vH;i?b0}d|z6rO|Y1;vFSVg z%N=}{)UEnO6DJlwxv@Bh(z>uXuNe+3ex_83#V<&8VQ~Q&1dEo9TD)-Nu8)@zc~!p< z@=7c&Ar_Y-u((oMsZFrRTJh|EkJek|C3Pz-nmVz#>c-*^l-7mCHO+8fah*~n7B`UU z!s1V45G;Po?7pMLHwOk0c@-8yUWvuuh{Znx-1EHn1+j6-HSPD9wqfne7de!RkOiz9Dxr zc<`R-6?{}7?BB{C@D%P$Ke{1)0DwRmEarG{0}At?8eiP-Ed}wd?|5}Xv&F}uVCw}u z)9i-oH4o-^e?zky!G3~Wx#JNI&2G$Jb`X_2-r&$|coa>t9S?D6c2mf1ZvWcx8i!^# zgBXU*cD=>{`x)|^zXq-~NzBvV_I2a#+fH96#wsgfo@gxD72@S7N0TMs`qW-tRb{n3 z%IajBIau@QtP}UwI!J1_Z+}1@k>qyiMR_VAme+3vSyW!TtSk}IFirgCR=Zjd)iFaz zWqIuiGE_vv3~M^~73c)E+GZJKkQ4T|*Ux^j_TI&=-L4`-^idSdR@^MBUjH%6xnBRN zZkA_CN5fbRKbJmms@k;Z;q}(jz1Z+tS-+j0F0DPBLr|VzcJ@Jt3ohsL%x)&;+7rY? z!^er3XipH~n}8D^Rts{K0}fomEK)?8s?WrPaU`wAu&im@@0gHl5+m7ZHNZ$tStTAl z?0t9Bd_=9X?S1!nv!~MAFcS5E@OrZ|e|#{b;4jiZsF6J&$Of{L3Ly+$$m6;IgUq99 zz6rwv&)QcXJ}`lwXruEMc4eEJsJH^A%`R>O#T9tHt-1D~YH+~bK`L{$2brm(gj<#SwkoW|z21CR7mz*F_E_^hWEe&t-GjqTS;NXl46D0T{@N z1x;G#edVU+2QD|g!`$Ifwtx{^xAo}P?_PQFTk~O znn#GTyW*oP&hCmYvbefyfvUkU_~kq4TG6+jEL-Y{Rvsd3xo*V?D-mh0`fCT;UlYuZ zN^=6ot2J(U?zN*6caau~g9D%SF_WBd=+}FAUzXmRqLguZZz>WUoiR-jU2vo;I)P(c z!LWrpYgDJRZEN4M!WLIT_0~NA;?n`_Z~LC>(SwgN-_V*W3H){grOcC$hT6GFw*JH||ql+)u%X zH(MyZ4P%OKU{&E8kF@;0-tVM=&~zxk-IAZ7D@yB_l980tDourE&Eu>zXNn2SW0_wv zBei^L*eZf^U_oIcCJjr zK1x74?DK?{d}Y0p_e}e=$*)v$emqJ@p4_Sk-n=Wq9R_m(<4^wClkr5HMWgs5X?!Mr z8cAZsiAN61Nys4mw8q52e^*-nT3^z9S>?8n+fOzx?J^bT+-a^kx28FrDP0WXS=c|7 zwy)P^N9TvejHS1ZLbITNQ$aPgJj>*|f}emgpF^R^gkx_Pm@^}|52oekiWi8?SrI%r zRq=JJIa_nn3$p7M6~F|~>2ut4@d9Yjoa>@zwJYRCfW=?XoTqs}Zd9KG#@Bs8bH3)- za|?fN&s?CXVp7v{7UwRE;0m3hIPdugp45py!e=hhT+k_z>%^boGZ(w*iQ*wXbBT*C zb@K4vEY&=&Q=-sGOvx`GM}E=BrMtOIGlW_=)557BG1D%OD4?t**efE~+F+um)xnXeE!Oe9jnR|&m=dWz3n zP3Z7|wk*Gf&>L}ciFRKj^v3G>J##IgLzrEbUq|Ro)dOSZdZd#@_Oi|+yM(9S_7in^ zwa8X3FCG33boh-fhp%pKV#>EkF4?#548?_M`8jZrEHg(h zU4}bnrx9uz5kxsx>o+U-lqHug`ppW*T#XM_xMn9j5@8tKVT6?`MZBNwDZ8%mgPa6N`i8X+o5+OhTdq zmdT3ff@O-L6IeFYKKlHOw*M_50+$2}E@P%ESnyPV{S{Kzd`2N)7_VvYtDWpuFJ{@% zbka(AJrv;6g9JZ6iFB1dPE7hL;hkNjA0bLiFq61*A%kyRxG=$IE+EyAmNq^ru42bw zm0Vqg_oYZ_Wj`6B0C|-5liKD`r8@!SliojNPn>&V@c#{n?j$pvfZ#h2PC#ZC2gn>G zIy%W*MRWl&Ptge=Z+2@_c5cOAXAo)26$c3R5P2xxG@o|^vPkJpvdU+_I&k41Be&4N zvB)Z~Fo&VLC_N|9@f~#7m!4B!95*xZk*-ouM4cTl@qI3$&H8sAXz5R>xUFPubW_s2 zpDXiz;nwE35}atW<(@qizNowLZqh_C+UOPE3D89d9yCuX8wlHIZN64?5Jo2$tHdTB!_V$rVm4cKydG&FtUiW$1356%!=sl; zh0c%E8$MW@@B^}@euk+)D}#?Ok$$F`kJE^?SEcRlv0Ud+<-ZBDuq%RI9&piq!)I-Skx;nLa(wOrGjC65BNxXl^s9&&Xbj|jG%h`Bmso`m0A1( zo(NuPYc*g|gp-*A0X}%4J7_k<6;nhBST*w!jY=*7VJTjsF|L!CyA@daMcYffCRmO7 zOtYWIHJc)XoN4-^RqXPAp6z-s(NmsjO6J*roqEb{at|)u?nRO8!0>J6eM})o;C$y) z{l$-6?UqcM2^9;c?j#RH!U-?IaVT1%G7)gXs+N~XD!D`x8_r~uJpxX6=S{+yg4MX- zOhpEPGk)8K!4oTDZYUI%Bx#^0sXmm zd+`PIcV9g$KvHM0a+Nkt$ZGis>5X>k4BZ>$*l`zjcFWb-tC@E*)vpaBOK&GkW?B6& z?mPA%sXmk|w-Yk5;Pp_kv%k@Xea`VqzT}%nPb-Dj%t|_L3ErjZw zujvwUwJrC;)*^!}czP9_Dk#I=pv&H}>Z_FEDXsQ8PM{l5X?uvOZNA}A1~QCc1`bjG zR&4n0=3#BOP^*oA0(^+#tz_mDz-C~6T2iXs74-PcL43HfX|~}8W3N+V7Hs&MLy$^V z!4qp&fh8@vN=jz+3sJfa)?^V+NBhR-VhH)*hJ z?-Cl6ij6_V#$v6uVs*@MOzB`4BlPUDt@q`OxWo#LNjsrYa(2ng$>U!|nOP8OL4Vug zjY@}@i+JS8-0D@MAt%B+uwKyVT|#VN@B@S9dxQvQ_BnAIA;QDCoVcA38ylrK@qI#U zVt6_6144wsixc5$Jr2;Fa#HlPwv#gST(*lc^aQq>GW4tkH}sut=&5QiW$5|oL(0&T z(npk`XCk=huiD6iWE47dxSulg%=0m2=o#k#W$2j((gir%&@;?I%Fr{*A+wKZM)?Rj#7gpUyQ zrJ`e^UwWhXbO|d(@r@$(M7~0sIC#P#g64_hc=qet=E>rC!YzX4*TwOKX9Uet#qor5 z1kKaM@q~W_%`?UEgo^}CNIW6?l`;-r^?r*~v5JS&BKAcO^E+e^t1Z22^oXb_E2flW zH3y)w8~%XZ@W+U5_>)%|$S?+ItGyTccifzmcb_1Qga%8iWu-VjywtMhXK$2~A#5iO zko~X@10mW-*)$6Fd z?TfX|8(w8VV%2ROtNzf+=-7(1Qmj?=ckayytAdAc$p1!7+*WODFI@jAu>g$0yoP^E zEYQ@p>VK%1%c=&BK5nb(3Bglh89g_6ODvQA;|S|_eS*|BOEYCal8z!LdvpJ`YwCVRTCvknz`T@|3(Hk;`%(GndT$i}+nz99 z*EW#rb3S2gK&op@dIK3`KYe?jlNV?H{82q30`8}45#)gMCU)Jo(86}tt!ZxdDt!!N zzk%!7znWCqHhK5#{iKD^Cs2S-zM=({Qv{~O<n+;ZV^EI!+#V|%{u>QQT{m&tNuhb#+hxqXe8>|%h=m#8g z?7;vjNH!!U*+;M&s|gD7%9uTo${+6v1MRAA)$&7t1X zcE^UpF2lTdzl)a_JN6(AoEGATTfCO}m{*ckr2@R9gYCCeO7 z&7`+%V6ThUTg5V;@~TZMQLio{>ZoR!6TE64NH;7t%XkGfEOVl_cJ6P7a=V_`?Bt7I z*Rsr~y**F&|LvcT9=U?mJ9a>X5DAt!$*ZSM45% zQev&*$hA<N}s!O0{w!02tv<8;>jJN!rxJ_kSo?7KDA?{)} zvdm|_|1~`N*T{R;eC948E?PFR%;&r@jmO2T-_~J-y9CU;-uPygIn(>NHR6`48y~If zE+Ott-eZ}wyxZ^Ux8i)cQvZq)Bs9b;xz93ZdsR3|6tVqX9I#P`dwIbYmO00(PPjT- z1N`9)c{|b!<>2t!T<;wzQ@mfkHRn?CjmO0Pc*Qhdh&6rv3i!Ue8PPNSW-h&^% zeW6+G;fckU6PTx4<^u2PhmSN$Y*9U-_;LdI49i^Ty)m(6^+!G&dA9g+0{_;Q`Mh_& zmwnwSYsibmmlIaVvdl%^@jngiQEli*$b$(3rtB{o7h#JW%UtaB<(%mK=AzF}i*lm( z!n4|G1$Ho+qnu}%OT4$g+i2drCbL_MQU!UL_8CP1aYiOD)z&hXdV3wHXiVR}|4VYf zF#6M*hicw(aT+~fs3wGpd`2)%>GO9t|9WcqxxIT_DQ&)y=kKy|F)JH``5z+l%0@=>g3RM)5S0MQBVcvM3 zse1{6Y46)`9!wY?Fcnr8Jm?pEAp|^_E_P7$=q?>E1Cz#1rndI%x}7_DLO7T@b}_YI zCCcQ%Je`u1l_ngLR|E6MZdSG3{cqp#%{M=i`C|`@FL>?xJ1gRbh+jH`Cj5sm`tM~b z_91>K+^nW$e(1IFd=-z)VfAg85tqwG7qqxJ6HOvjv7%-G_6jm37B9=|AeW-tjJbZ)Xjs`6#S?5jdU2s z4;8}`b;1DtX)!#35e(gjBY6<91Px%&K2i)%42dvYA1#I_+JkZWSR@a+6t5J<=FgZq zx<|%?vJG#4KWkRMARP~s+uP%TBRu`v!Mc;jc0LtNR*qp6o)#+}dY0yUeU|12wX`Q^ zX?|2xvb0yL3et}KATD42@|Bg{j$8zvS4TB|Rsll$;8-p57bP+Yv;Y2iY*GFlIp2`_ z-FoP+_h0oXnoCMv*D0FIicYR#sr3(O$IhUw^}w&z-<1|usTMWNKa{|RvC6=8{HFe0 z-r5phNY77&S3?1@j+g6C4B#(y9`t%a$?H7mwTuv3By`KlrXGA zq63EYis*vjbwwvIs3rdYgaIQ{8x;(j+%UYUG$t@SUuoBtVNZBoAho+;(0%%CCk*c> zd7Ut9Aw&toRwO!Lcvlf!FubSe1P1jjLjg#*Pl4l=H zkY6}FTdAq<8p|TO0oW?#CG>S;M+0ydlJoRk0y<3*EszKWphVET4G&Q;mkbT? zY*d{R$|S;F0(DEJt}Y`!lGPPg@tF+X1ARm6g52&Zr!Kpya?nFWxq7a0>e{O+CvTsd zceu*Qb{nX2>LkjYu5#-3kSeFnquk{xr>^6ua_UryFVt3(4V0X;~dpff7T?F;Bzg3$nfN_O^Ce20!Wd=VQl5Xc2bV?6rO#C7x~!EEYL z0}BkVdS`D&?3;~x?P*k(G!mL3clIK_@b#|jZckJe3>a{SRGcyrqs<;vMDpz8L8ce_ z=3Y0?J{T0>Ja{xhMa#ubuRhdg_#y9t`4Q#kr)8xj706G&C|+QnE|5VF1wwtcf9@wm z@YoyY3-|n3^SKQ9NgW{OX*=ct%}OeO6B#_FEH)E_SAL?ojw$pYQe9gnhmb+e0;xa} zu>+n3D#i}dk^X}{PSwn9d{2MO`0m%d*?B9SIPrTK1?pVq8mOnydl9VY(v z+&qWLYinMyCclmHBTZgM7bwZ(bxDy(li#lSZj;y3tYS=lhvqs=ekW30Ccg_A#N=xK zjM$-MFK?_&ULQ@K7-8}TUS(Zk^4cfcZ#=mBu}sob$tG`tCU0Df$(x`$kzU@^&2yN% zndTL1^5&EuY4Uq?fs#yqFDVjf^7}O3ZSwmys~D5F&|HVfA3&cetNTkVgHQ#OWJk2V`mA1na4`5jmrcj4WC@3mSK_r#mtjV~VO~JP8 zplE`b>QR~#I95K;^!n+FbNZ7;LdC$LzgAm0;K)GH0U`-UrjsV&Xsu}qjy5Qw3yv%- zOW;r^YKWwGirxVSe$VA19C_H5f}^cRX-?pHxc>t?P7h6X9cL&84*exp=zyagimu^k z@1#jMI%t}Lqa%vwf}<0bC2*+YL;oin_^s0g;dlt!QgA%%QJNDtdVTv++_U||j5JbQ z@6ca4-5hXqN6|GLJ)ATN$0M4i;OL1Wy5Q)AWeFVWtQ3*7xZZ)^0eumUe%O|RqrXRK zPT+Vs;b!QQerqO^Mv8+&e*p|~z%dv_*KiDR(j**@YMO#$D2nKUV;GhtaHxY}MAG8m zz%}v+gyV5+OTjVHqckUQ^xiw|>8M^=El4B9!J${jPdMOs5=GZ=jB(N=9Ah<2!7&a+ zbipwm%Mv)$DL5i&ad6=JaU#O;G`6MSnB-BK6FB03N`K+Th}ut)Mv8+&uNA$f1# zYNV0k;Lxk8`3^W1py(Qog-)7;<9SU}a4bR*U2rVMvIGuwzL7{;92~grcmd&9hHWW0 zmV1=uhVh1h>yG^R_bYT7zHdKiB=jZ};Oh=@>IxSgS^T9NzN;!W0kZLMQxsesO}6(M zb2Jh1s2VZ+=4h^_$u$|jYmkRjrdq=@=53Kj?p3H$UqoiSSD|XLk8a8(NFg3JZ-FcxWKhRx2rjosb)6lo>2R3hU(y=a32cMp2OMl^>(T$1UH>q>c|UTkml z(NwW{YcPIXrLU%Pc;F%!-|6UwRI)p*&PWpBaCbUFIF17BP7lO&=^(7uMxm}b*sBya zjNkP^%7M*)d1+LW7Brns=$br8*)cgOpD%j(`AL5)E1lG?V?k!C`f#VOeqnB6%}!EIl-H@5h^eI4cV^a8=~D{1w=;+|xHd4tzM)QHE3$WBG4kIklJk z5_Mxmd0D8TtD>OgugK!!nq7WnXB(fR45=t&`EO-!elUBGcm1$kvQQ&eMP)31B{p{H zf!CIO(mUiRLn?~1{FT|1lQ-Vm_fC4io z;gd6>8n@dtS{7>Js;Hvnug2~!-7oL7^y+x`9Jcke83 z$r8MS=n}Ooe>|JAEzm4$qq$U;;Fi}V5-fiL3q3gW+c|AE9+4%uNp*?aEPrk0&xk9% z>e`)WWC?C7U81h#zl~L`pPKNNzw#@x1P54`sAu`>u=FPRn1H zJv^*VnUCY=HkTzhY`TPH`EO^ZS2SOLarK+m#c5D+jIzGvugA)?8v00LnG1*H58(qN zGpD_M0Mma5t8l5x*oG62j1oVBsmL3DkLACUJ@asUe7jz^RFgjvSAKxk!t&q6?m07k z-Rk5%x02(P_gpTwdjEv3^>2sa4mXf0tHD6*D;f9cTlsIK?XB14YOm>JI0`=?ZsoTD zALk9?ml}J(2h#_~yCrDUu^{-v?PTatb;XmqIQ1LgtbNvvWS=5XMN z$DcSO2N_wp1$ilX;uHzXRn$@)3zM=^#9PPwoC3qF*`?A7GoTendu~@I&y6t5pj|2@ zTe9R)5k~W9!v$DV1QnPgk9H^MTX4#W|9{Asas#aV@yBbxAK2Z>b%DQlwW|Nvb2(Ef zw3#b~c6HWK^+UsWlvfM?;Qy7LUXuFrcgs%KfIqPE@MG{7R9=vlt=2V+r;5%NX(E_T z6fKu3a8it6qUchNi*O7xMH@yTZw~&!|4W_P{p#=|wOiMKKd{kq9pEq7s8r@2c}kGo zOOMA@V)rSz4dWcI5&psdzZiB`*%}>k{WahZtT+4%{Kf0FeF_!o?8_}kvFW^1g}k7I zPUmlH#?O5*oz5Rl%foLPVF?w9CuO%`Z$#6^Fl=PVmor3Y4+E3RC=x6qArX zgI9_9{RI&^0Do?)8+J9`cq6sYW8D>s;k7Yr^2xp#jzUe ztsvvQ9dT@0uKX{JSM57T>JFC@=U^m`7)xROxa&tksZ(pFB*9E244Wk~iZD#D=>t}> zVu^>yFvq4$$jS4Hut5p{2_erb!UiKTTQrc#{ZEVzoI3=$97_Ng*4XS(MHDAFHNZm^ zodEn*1>^g%Y{)40g8|~xc z8_Z=~yC7EtAL^ATK?e-7CzTfToGKfm=tR5o{VS}$GdZ-2NIxxJQi(a9aZhHa<;zEjH4l zhCw~$m$KL>{gfZCNKTvZ6Tihqdz6px`fQ$<^jK#)kF&r}_h*8dB<2+|-e6Xd|2KUmX-HS`xxlve*ROl4G`npH#EhM9=Bp_Y6GT zs78#ePPSCTVo!U<1|R>p!H(exTnKMc^lH8#S`nbNZo3*SrlsYhtmP zp0inHrl!m*dpsJaZQwMs*ep-cm=oi@`~!5_-IN=GcpLF{oU?UJM=r$Cgu+ zuc+JSTc7zfhxlFS2={!sO27%K4;*C9=3t6Pl|?*(^~Goi@N7dFLHHDA{WJsg(!UZb zyZ&ybI7!F`XtJEhVatOJM5>6yz^Ar+Tz3#M$fb6L3em{E)UGs=)6kgA@)c(S* z!iISiG9=7%|KjWQhW-4?52W(YBLc3xBn6ePq8H%EOUlUS!UlbgGYXunH1Ii(D71q* zq)qDjtkC_;w)8$ckl=G4NT}$m?p1;k=^w1O^5k86&u$VFiw0?HA+x!7dN}6ph3|UJ zNX?cEvFv?aGwkj!J_t4-)in~ofedo@=vrQJk+9VE~#Dj67m%9UNu9Atf#l6^x`g}8IQA2%T|+`1<~`$vOw9=kHQf6nn%h8R_ZYH&BNXYxV z7u=9sM2TIH{Hhrgl1rN5faEe#U65Qs27%=G(4-wtjm-BDp*1AVM|!U!B!5IeaxGeE zParv+*>jX9?)tx^b`1%6ruR=bB!8jAE=X=_28HBr&2T{S4^mx_{EG|%$<8(3{_)}7 zy zhX3ZF6+WNYftAYs(2basT(JOxz)I-PoJ;3pqkgTl)X#|-@cmyXUaSMwUls0sap}$~ zi{}cKj2C#V(9QoYM&I7N)d%^Co{}ZL!8H`~viR5WPe zH_^Obs(rUgR;a9}X{|@*RFCiXA`P`<_PFiiam%*RP>XU2JJd4Az%~4Zt0&Ih?OQm3 z4j=QOKuR`GnB#cex^xgym-AG2{LluA397DSQ@OqPC2uf=G4d0AwbT zNx08@mj&C_Gw^ytvn>pQ}-SqQYaYtX>D!&6ErU+8?rxkNX;)O6loz@ zZOxLB$wv}WQXJlxYsYc94| z!@Zoe#QNe6f4DaxCWs z160XUoY;gr7~eh(<3^95H|0W-s|CX zeEl(udp)AONUI>q4|CSv0212E`X3|oM(PfHcsQX$R$o~jpD7geH&HJ>hVi9BL5Fv0 zWO;n7P|%xk%!NGqy+SU3a}K+p<9mg?d_zbsCF!^&B6OyQ@LKN-d*a8nsky>imL@a@@88gW5OP&Y-!{MS(~5|ANlrJ&-t)ZmK9Wkt5`OP4K1I=vV-q*D_y$N z+G!6&=Otyq91IV$iIioqX_OQExo4}Z|NYmamtJYXZc%RVx^XD`%Qwzmg_g9?kZ72v zgk$mWt-$hviyvw-^S$%OSCAQeUzzD$KH0bL9y)_7Q0y6eqDJexh4IW)Jc2U188VR(q7gQsjgWm2^r)_rBa26VIQe<>o3FYEET&(nyYKnX6Zqt zmtlOVl^t9ZUpMObx<#aw&`Dca{$O6a0!YG8SOhC^RJL0%suj@eWlMLI9<~#3b`}el z9!{2XS{DZ#9&vK@azGpx>Zy5hUgvwwy^!icus1RYf>no2sIq*QS&HbU5OnD#ovR-r z*gpcn0YL>8L2&Dw)iwTlqRy?Pm0}P~&%!shSb-D4LXupx>{^%P@x2yrFtXm^TZvk?yVWsi!>2_gl~k|p$xSX7HZ@Zag2i8cKIo3 zV(bg)BWZ%gPkr)%FNCMkeBuK)LmZ)j?W7PMOtTqqx<>H$ZcM0|THE==ZdC>x=I0w? zq2@@p9hq;4h3-M3_=uH4@h!2?y_Cg;;yYrY`!rpAb*ocLq5CNVgv#PPzE>G)fjl8p z76`>x-Ju7N&fABeK$=*1hw#)W*~V0nAOfw#Ff+Vl8BgMC17nh#g;J`o?W4I6-?P9a>!^W=RH1rq1y zLb!?-<@vrM$4M9o7xKP>4vHZRg)4bqa#m7K8`*p*-Uu${Z5BYwKYc>DmY3V5{QPJL z7xKRJ{Is-!-1I`RKN-S>JUM2i0%8Of`{0Rj)uGwwKtA)lWbjg#I?>%{S z-c#p>{!Z!+_cCmUvBP}mGa0tebSe-h$U^$et)7!Yc-)q#pdy5%8B{?wBUQ*&D&S#S zr9!Tf)-c`!3FUCvf1+pFqA_2!Aa#e|mn!fDB`WZ6?PW|;xcmj=*u74~ zCqfsIDh2}n{TK}WibNX)zDXXsM2Ilgz+)Am%Zg|i?X~zSN=3vk$B*ucv4D#&fl*0d zLswNrHZWB}e<%zL<7-{>gRfqhn%As!fYcm5BWs561g-+Xow~~Y$-kXKI;4=11!s~o zc;HsxqT>n~e5)Pk(9ik$FQlUj_WTeHuVsaFcp(ex5u=xmF=Xj__;Kx!jx_Lk;3Euf z?u0PXKsuF*Art+uQ%U_KcKuYR!T^KnR09-DhOtXyH>l~}M+XnjPa$=O_iF60Pvy&r z1mb%FJ3N1F(}mtPc!kPr5^6t(s2vjRp&zOd<9>Tex2qA@bwG}dG|UIVP)9{1Bee>^ z6D@G0<^d`RPiF;B7gdi9Pvy`<3JJq_L66is_T)_)*<|VWq~h=jF;c@5YLN3?oJ;cf zV_Nz0+u8TnVlq_Sz6^LWQ(zLK#}GaW+95>VpJH$v@xggP_&iC^hw~4d(FSX=8N6?D zpNq*thV6*_U`k9jA=()*V{l;crRBrX{(O=9GA0*`$`-R)2~))6A;a#H+zK&xGG7?8 zk%)-J;F)}1VSZ9hL3$d5HVZ^tEJk;WS$BQ%r^GeUqwQi;JNtQS^1Kqc%R)(a}2 z$OaV=XKJ{7(XfpJv7g0cyp-;Vl0-6kc>a`QlWav|`nSiE3pL)T>i8Azwt0k^+ zq6~c|DOd$jhCcPp8eUR{KJ}#OQFcIcBj0e3QQbhv|bvT#Rt z=(CgZC*ox9x7*z=WAdQxq<*)P!N6sYvfyOv98R`gnOgKXG0cWvchaPjZE(`0lfB`j zNhjOrq)8{+?S!tK?0rJlPWAzzYbV>`q&u8!C!uR6+ePTw$#xUEcCtN$uAOWz zp=&4mkkGZ0eMIQm$@UStcC!71uAS^-C*9#>2MAp|*(ZuloNT!Nr88}NX4NN7;C3?Z z1k%YqRZe!;?PN!kKM^PUXI-0{&#Z3o1*zZdWR5Uj_%nx-eXc}yIN29Ynsl<`PMUPG zFP${$WM4UH(#cLZY0}9~I%(3$zIM{2lbv$Xq?4U?(v*{(Aw=n9-w>j7vTq4dI@x!G zD4pyqAxbCvUJ+eR_5-17C;O4mwUhls=-SE7Iq423J5T7^$$lnu?PR|Yx^^=BB;@ip z&`yRQg@Ue~48IEnT{{_m8Vb60GW10!#H0fm1oHXfV)15TwWHX#J>15A1Y0}A_b<(7hJ?Eq;C!0x#(#d8K zqI9y^geaYC4k1b>n@fn&$>u2{??jH7Y(AlDCtE=1+Q}9Yx^}YXopgtjEh2R7WQz%1 zJJ}LK*G{&S(6y7jKC>}5jNPPS6fiIe^C z_9tC`PdrKEnr>5wL=U%{#^Ygl2^QAXFo%ZS@Tpja&{9Ku3mul~v4iuArwS9;LBdevX;z4`=wuBu8# z+T!-TN1Y)ZIaG(AtFl|pYuCW;s`%w|0a8cd(W;9c<$s(g0}PHN=RlNGh9j*x5apcV z$Yl;hIcZ!Wb;?=8k-QvA%4tLAF6XVwc|+$d=R`Si{6XrJGsiVTR8z-wN|kfR4N8@h z$DfocXOF)qRZbr_DOJuNe8V6#As4^UbBUiet|yby zl%Z#n7{YK&CjrXP^GOgHu+3@UfPZA@BX16z-?EVSiJiF2?I-f%D6Fn-hRe9FZYG3d zy~^(l!{Lmdv-9i6b~SI3Mk1Zj8HRYo>u|=ND7(WMdl8~^Mn@7az+O6|BZn6dr87EG zcmYv5qt4*P8?iRdK%|lq#L^QA(B0IFwSQ zGY+Fv>5PvdmG?Y{GY+Q=?TjNRLp$T+l%bt*Bw;w5aTH}}XB!FrR$BD8J*#ZXPnOXEXwY1#^(r8I^#@2l+HMd z5T!HDCPe9sa|ls7<6J_N&Nz<{r8CYaMCptR2vN<93n^93jL%c5bjC%LDxGmLrAlX9 zLaEXjmm<~Wj4x1zcE)9tp`CF#WoTzyK^P8ae33G=GrmL_+8JM_4DF07DMLHsD$3B# z_zGocXMB}1v@@=z4DF0-C__8rYlPu&#SZ>5PtK`g~xwL-dXu`aqP@9!>5NH)D4j8x5T!Gw5TbO(R6>-_m_~@w8Pf?-Ib$nImCl$!snQuUDOEaSYf6>Q z=*W@Jp_0y+g=JmNs59aVhIYmr`U~xhIsv};g?2`r{+=@&&Zslr3x;+^NAi3A3+;?L z`MvmscE&;?l_RLwjxw|}wx`WQj8TD(R#2Mde zdS@`L^OtuKKZ%?f9g&YBbjGd`&e+YX{0@$r>fpy)XIT65`rBf3~#yKG3I+_qgB+J^C z5_oxY^t3I7eQESWb$B~^5*LGCg^7Q!nO@uar#JD0V0kFO&0WM#wd7?$A`uY?gae0u zmKrDxDR+{9#&3tD1r}d={O=#PpE(c>)MP;wdDGGZ?SFe>;kLKW4&;m!$$Dg%ej;@KrQ3-Y361ym*qo5iy%a2Di6%MPfF3^t2r8{jNRi9}Q#^@?&U3H0SUnC7jdRVjTk~*4|O{*Quse1V^En zWwB0yyKjaJ? zT>{^%+3?bbUo1E$I10%^i#-&`&G^)ODtGG*!BIfAx7fph)BPWey7qHyk>E6!Qg^gi zQJ`$}F9X)!GBqqXiS;GxL5p<_toxx$_xY0teQUE63SBJLEwH9%?w^zW83CK6V0hSK z-2=bh@rcEG z2JSt!;C$=yKPK2L1w}85^$LW3sPXEAcWyl_tOsiwZ+st%_166(t!-MKl6#27`UEaq z>GFJ+tNu>WoTJ1ZYO%h7y@SoVY~ysl;3%mdvsk~tgxceKciHv9714;eH$K8*{R7E0 zzCN>H|Jr+_(^8UTBP@PAIQ)RXu7nA-F5dCVGQqN2Veu1yH85bkJL1h-u0wWY{wuo~ z7XLJ`1_ky!dG-FHN7mmXST;B;eloBI2TmN@+daB^wf2H#gTvyd0&7Sh>-3u~D!z5- zZo#s_Ve#z}qlipOMC*CybM3}j`ePrZHa%{82(@OcY3qXNq(3?`FjY|Jr&s<9hA@`nbTQ-QDk4 zxZwLp!VQ}3Bm8?Jz5;Tr3 zz~M(Hw5>co|C(Saxpx6;YGA@G6K}kCd!_kyb#Paa#qR;ev_QYm9j%Y|e6>7ehDGWbucAH$9L#{FR@6+PP+*%~KT~1>TIn6MY(dR%hX$_I8Dk1(d~q28?F{XKwqm z9;BM88r`lSSyeZlLHfwRf@)uc7H{kSlKm4HwZXf9@mwHS;k`}2u3GC4H7%Ba9@_g@G|!cj5Gc%%sAO@<(p~ zZ%!bbIBRi>Zcl$6&3XBXw+VQ20}u3E(x%z(kH5fq$@sgsfHyA?HS1=qCuz%R!NcFZ z4ZQh*=X2}j?8qMWjV%a_HY|P%Fct)Gc?uP#;E&z~-on7jC5!Sud2W5Q{UhPd+ko*r z`B5tV=zZWV3he#tspX5=?5p;VgxBr>#$xiLH2l#n;4KLp7&LNO!sj*aM8E zL?>U@Rj)YK1@g7%ZVazA`lUHk~X69I@% zfU$!7C+%WZ<2QQynV%I17?NMO7thDWbD6lec;q1;?rR$c0Tn={_xGG$7_rKq#Y|46~7W@Uxi5V`Sv!7DAMfn~H=eBR4wHDF3;P+~_Q$oG2qVmC4U#A;wLI{L;XZ~aHw4))l-f*OAz>FNwYj)I!Y)!OI3B-2 z!hUs;6U7}8cF9FJV4 z^bVP=`441}i&u9}sB`Ow_kO#87_KZI#g*aY2z?_;jnIEa(Gj{b`zuP>-!QhrPvvdC zCYw^mJ>rX_$yh@>unYCn_3Mo?;sxL?8^r&Rg)!bnZE zZxBIe39?a0bzQO_jSP~T>HO5Uw;sCvgBdkIzco+ zuyH;Ggke+M(r+fa$kK79xX99Trn<<|b*8z<(s!n7vP7RJ5}$!o7y8d2gP=d?ogTfbKhyI% z0mz9yKDRIv(VrE8{%oHD+A#J5)Ut2>SN-zk!DW{ulFCD$KmohoC*t#uY@Sc8fgqPS zn~%aW2(_DNa4$n>?P=@@X>Ae z(w9+IPLzFgB_YZlx{45G|9piIW$%2I5M|$7O^C8*t|3I(FJIF{N55Q)R9C-ThYW)D zr9HR3^ZdUpiwGc2wABNYYy+bGMg-a$eF|8^xT4X{h}m9qeB}#ANadlc8f|=dlD*}N zg3mJknP&sO8O4=!Ic~nK>9*D)$;&&GDmq_~ZK2eL_H4S9QXAQ`>ARHL*q%+_qtqt$ zY`Tq7n;Jk4vh7G^pb7u1;+hB-c;C&^{`7&Hr9Engnm~KS56{hZaBqInp)5wb>zGlnmzBJ?c{wSB`-E;y61@sc<8n zXFWWERN+N1X32%eQDhLE-%eUJxc~WD<4V-InVMTaN1eZj(D}Gesb?7Fv=Pri;E;dm4nuQlqyFp1N9PR<*?j#=#N~>ntFevvmQeETn zDP)iymGW)BeLordTwBy#oC3(z+Bc}(w=V6fuh~i z)lg8NNnEOHnq#V}L8)@8s!6GGs;Wh)a;l1_R5?{8P^z4&YE!D5s%}H7z#E2iIlR?D z2Elvp!D&yYF7h=Ym^kpp6v0tM_*NH3r62W;{Xn-(alph|2Wpj3%X zOG=g4Bx$Mxn`ER)Y}5iLg)$oQ$cI=Xq*6vBKD`P?8Zro)m%F_>xKD?rb&19fG;!^a zfoNt%pxN4|fHRC)8qG=fHP7GFxbGNJcZe@8Y&7xNZFXZ3L*8CqiKlYcj6_R#lLF zh!r7KKn7hz4n|#(K_D~QvxoYeC_G#eWVqDofsj2C0a;IQm|&#vpySsr+*vJ+)`)ewvXb^r(He33BoAtsEWOn(L9P8gTs} zn}^qO1XWIa^EEXuGp#-3vJvN?#FyFv2ai9PmtUU;3W98*o1SR*ndjYf`N-%ZH@%_# z#kSZ@Z^S=jf^3PV+kG#ZQb()K$p4c&FmoPayPxX9R*$CrbCQX zJk#y!Vw4cJIzkS56rci zEoEt{GEp-)1)+W_dCjP)ZuVFk5KbIdbr97`Sx%>7CBWnOjFYl+2`t=h3Jx`R{&{qlQ7#!n}NI1V? zwj)R1~sZ7|F8!sk04 zB=v{iu=Om=%uW+2I0_8Ezs$fG_}lPUWd`|E22c3p`q8ESy!=#t+{tT|8T{3_3I%(s z{hs76v>)UwWtADS@1dH%<$9M5aK83Y=24}mzc5eU9WFEUmC~aY#GL7Kp3}sU)@ZBD zFyGG1p`Rwi!6@q3@=j=7_~CPTj2mA~`$&;(bhWc;|&Z7Ffr4ha;7m z+B*UnhOt(QdiSQ7FRFGKu!4&EddZ?XZs&Q&Mu}f;y#5`m$(yWe5Flaczh6PEvbE-pQ`LBg;D_N&#UQy>)Zp%|~kwdtllU+FZYq zo0CnA!lp*MnyTl0B1&}+cry?jLi)snO%(@xcF!f(RzL^f!V0DcrgQs{?NUEG#P}(5 zHNk^#uuqv9nfTFf$${fU;;ijqrrg;+gu=;i()I|8FL>?xJ1gRbL_6ntV8&SNC|lp+ z!ja#%mfmTf8R5TyH;9k1grTt;p1!q}C)ysLMNalw7W<5K+8&;nTJYf<$$&|bpF?J! zGp~1b=xFD{GLj*ry3Jx=u%qK=_8PITT7qPV1E_G4^*GCzGb#J0{OL_4L!51dldNB| zPD#JU9De@h_d+I79?r3T#qfBLEt7bz22Qe`V8d3=|LAy3%t~1iob&O6-kLuR zP*sWFw6NHBtb9@MxpO14LZT{h4zs1j&PG%vR8O|p_w2&*hXdWZFCVL_61t~a><8BE zu8nOH!%rSi9HD%=#eQV*;h4KF4Ss5XXhc*6r+$BOH^R>&iBrGlShf4l?bx~P_*PjJ zyk`L%IQ4s;{dY@pqhFd2nW{L#>Tv4!XSQSRxaU5|U(!x-g!XXi_ZPNwYhlk`wIB40 z=7qd)#qz?UfN3? z5DCt#USfZqUfehO{rMN8^-4x)GSXs~*@{LFo_iYJhjK85GNUbag*AWmSF2Lie}6_7 zX6HBHi%t7wsV6P=8yj?K+s1|Ct34jg&oRln7-KE=JDWcK*EZWcJLd}qKfyH~{PZg8 zHhRj9g#F{56*7zCU=x7;hxRM}+0`Mb4NMO_wLbqLETq{r*5k;@Cl)T69~8&CbOF&M zi-*NCyUrH=_|D}T2fwRFrmmJd4lnU1Pxz2dU23$kr>=uKigxkm8BKrtqDMX%@j{1r z6fHlcs8v>OG6YN^SuN({jNJeaLg%L>!YcrocFO-)y&U5lxGTdse9ns1i!sh=Xmj}I zMXX+maZV$f!#^-$^;(Q`8rvNHSsDvxW7T2@I8AI0PtqB?nQ)rg9G-|d7EaANe$&k6 z@DGjHcL*o32=dVKPmNeOP3!nY15W3sEn>G4dP7d<`DSC`jIE=5BTk1kY%umcLT}9J z{J=%5W637806PEDh}DZWu6I*jo_}b>>NOjuH{*2vsS*1D)^8YHVTO|P%6{LM>uzrP zjc!7e?ZKxomqGd5<%y2nrPgz?yRk-l-5MXe$D{g(VGP!7On#&0otqz=_FWAi>2>Q+ z*+$!TNm-fcnXssnDO_U@h%Qrv3?mQ)3VediskJLa8DbA2)iC&}J*igG$%p$?DN3fN zI?8s7Xi_S57?nDL_1Q|*j6Ld6@*4(Rmr*U8Ti^flTkpK@ry4-gO3mOc6v6`=S!qdH zp^>l@Z=WWf!2q&Yxy6pchN5!eQ#w5>w}bsF+Z9G@wq6g#K7my7eBV#Y9^TM>f39n@ z_aP#S)O0LrIu7fyHLV&u-lLQP^J$-d=@D<)RV|uapqdWlKF>AHQBRV2{IOXoiU2R$ z1!J?Zg(w)W@(W=to10f8lDG(`&e41u9{V+D-dl4u3zF9s<>nM+^Ssa^b`YDVnH(EC zauC~AQ+YcgY!I8TiTQ=O1^n3&;mrk_?hq}dU3NQ2e4N=n&Gzj=U5Yo<(Dv+hn#yGZ z2NRCnUXuY67&-Ea;A@$)g@1R@Y+e@x03eBbY)7P$U7~q^?LW1(+|qjpO6)@(Wje!nQrq+F(DHd-*PhpnR2~{9?Fn+XgZEl;b5hYCXM#UMvs@$o z8~~3H#m>UkkjE2iXV|@Ww&vQsm%pPPJ4aIibgWMd)^j6yc70;No~OCC#r?cKM?4BF zj`fLQ*%6OYJi9(II6I(j9*@+`%7 z&#d0HY-QS=1b_Qk3L9mGzcleOG_ejx*(R~5EpR+O1)l!^hH_s|@>0eifA1j*zS{)@Z&A3N0W;#nf0 zeF|SoC;{k=0QAAiYyhgo_Vp-T4P$@?Afw92zV+T8_ARMC%vUJ(11tOqP_b}VD1^T8 z0Rb+}7Qg|3G{XlPg}zl?TV~UT$sic|P7w`*Pq%XQp`HjO?Un0VOnbIYp&w)dzR-`V zK07ITeCQ`7yJ0vYNTmj@s{3Hg4h=~IVG%*%kF&@(O;MX;Qsf|iH{>(bgs%Xeb?uM| z>sVM`g>-`1!VJ(m!|-ydPBCkDWWK}<=^V2FoLIf{{vE1-Gq4D_Mq?~JT^?9-m} zN$sIcP(WU7wlRQ9~S$HE)UD&rg4Ra|dqS7ufHN^=6o$M1cyzTd(r9Z1~@4t{MA z;i%z;qb5r0f}@sZP&gnprgIvH*fEDA0jVxHY9oWdp>CEFkrf<5WC=%IgyZ%IIO_S8 z=7#Yu7+;RClcznk=JBh2*O9uz+o1rz#;(6e;#%-mo8Sp1J~#7)Yup1$HR(A#@DSG$ ziTw2?{6dLKLb^Tt@rXlQG7|X;kXP)7aWzgqr@+g?CODjZi^Jy>AegJAzdNzsu!Czy zQDc_tpryBcCa#tAnYawqr0p}6;xZKgq?3ex`K8jCLFMVjiRvW$DlK-ByWE|`LL0g| z$=#YkJ4t=baQI9jQeB;-0WwG@QCS9vAyp?4BFj$F7&}Rmh)&YfuQVqM%-sz;{{3jx zTSk+*!#uVDeS*K~o`mD*bly#XVw8e&YayMFS!%}TO-#s4UQ<$UzLPe@Yf9LLZOqV2 zH2`8BX4{xmLbH{iMEWoHtb3x_kV7p<%}(iY%@!I@q<>0v7B!u5=_e>6kzT!JPug%w zj}P`tQqoUW6)EYbC_xQlg@F!w&%oJPbBAQSN@@UTi#0^BcZKzVEfj9_>ZPGe{KtLL-NaW3$jxXLj<-zdDLNjek#?F6b4U}@{k3Ra z;~A}9peL%7>FhRS$9q|s4wFSI)2&j166q73nzi-Nu|BS`Rk{tYS$Dj7M0!m6?UWuf zeiP}B-J3jYLpNnzB|jYSjq9$6ME!jZBleXCKO_GgrKkmy- zhv~Smh*NF(N2)fY{QP~xxKV@%p#)AGt%$^thaR~2Q2&bUb4cULkwxQDt1(Kev8o}CWtAxilg_Q6GN=_nt)mM@Sjr;VSI;3KU@aV>I?WOSWbQny3aUGPLPT@N$ zA`$-H&&IvIAuZ=;(uPBL<;HR9!MC_Bsvaf$LrPBaChg>}$|O9u=SY}T96oLcH?a4* zqy2FcVr-{?UGBJvs%!g!CO6@L{IptZaWaRK??QU5xJe3kNr%leZ#=W&CM%UV-5wl( zQOb&&qI{k+>^unG_$VuGs+vYPUG!-v@3Z2jsa{F;+s59V=D9Fs#FuoxO=)ZIw@m;o zrCS}{*EeQQ{aTYL43jtv$)F>~?|kq1_{vof#qyO0;Ca)*+cA z1Tiha;sIpedcsPVEFWjRjw~BG^*bKw_ib=7)h~IV->09n0-*~!B;|>xaDDn!tJJjA zWLrM|&F#}qTfr-Z=_#FH>qvx6efYkWVHAMDWsfl4yS+-2N-GW$%*wTg0ybvS6mKh2 zyrX2bO>wJli$dKnX6kA`Y&!AD1%Ds7Myd_X5!Hfv8Mv9{yP@`Y_?+qc)1&H_Cq?}b z2lo9%sSU+;itnbTrY4I@4PXR)eDo@G3cpt@d8+{_ZQW<6Xkrwt{}@u+?|O zR%a1sr>(xHRB5XpG&MC@RBGGmN2C*5`QtuXwKwN2x@xgMlS+rn5+Fmitw1ug)vq3~6%cG&IUZb);~TftWo(q#YJb9~|9LITA=7ImNSbd2OouLJMh)aR#0?$eK{vTi09UoQE zweRlT+}(tb5VB;GYzQTE@Jd2QT6zKr2}$TBbWo5EqV%FPK@dfXAWBg{1Vof3y(>kk ziU=Zz1rZQL6!1IK@43nQ{lPEndFIZ{dFD)?IkQ}cJ>r7+{5-m%Km448E>qk6;WCzYzR|Mi2bdV3hCzb6( z)`+f`a!n%(EW8z6TX+1qsmlip#0B070`OwtCB9MT4ke6DG9p&u(Z7ELN2f>jrJEkfQaa>E4y=M{3=sYPy*d=F@7rsV)yclo5euv zx~K7bF%Y}+Y1}FXVi!M+KZ=3a?N8%&F%Y}GZrmvbVs1%{yTw4&F%Y+-fMOtSM@BIawwF%Y+-z+xb7M?u9v!j4K5hjBX!E)L^% zR8nCUI|@-!$soL*OSb%t(Bd#|N2L^Iv7<04MRt_%mVR>4rH`JVau#+Z%bDAe*CpDc zGBP${M-eVzGN=d2-`jAlKkG;Yil6sDWb`hZqAf*xAn?3rX;tGbZ8+_LKEtr;fxt1J z^*hpS@g8U!Myx#$cNz`@s^`pF%WM#$`=FimZL&35N|mu76XZv1E%<*a8+IBEk~u|Fy3-hR+y#b zsG_7QHr{enEe_)?M>U06T8`>cidv3GSvziJ1Rbo0%9*zus+_qU)sij8Q!+Nua+oe* zGRTfr?3y&GIwj-DwF<95`fIE>p-Q-xXVsF{)$v7_e2Vcd>dD9mC< ziBgK}$hCM^#>DTw{tA_|up?Q{+>TPD9i__HgdL^1gvn^y9!(CmhlcI{>F|NTODO)3 z{SW}0yC>#a`=E<@07z2lR;}@!Z14ieA`DyCB7N^A1#qt5D6sLpl0qEhJwe)0Uq)hR zvFT9<;|dbfxanx`2PsDkU|*L}F@j=@pLD^6rjet< zd^R%w?dr$+WxkP!2nwCU2!ex1FsHw`Y)VqA_A;R|~2J$|&;v5u$tVy)K$ z!ndT5Y=M;`;TB2}Gl=q~K)7hxqn|@x8$K--P3A}CkL`G6m-jc69dBox9ipwv9sV|3 zX9^BqDxzZROtIn1gjPt^3Y#l$`Z;i1FBCUcm0wB*RcCNj<28Q(*JS^}2@L?jGDDQtB3T|`DH}&@a%DXC~2`umNEbkLV^wzvj5<-;sGFcCP ze)!^}K$HaAI-vAO-lvMZzbxVrd4EM@6Wz+|pImRRr_attDB{rPBq{l+sVR#4M3#Rl zWI7~?WUM+Q3n6M1p0DOQyl&{Z)hH=%7h6)i4AO)i=^`$sN4f9}k!7UE5NCAxnXmQt zqsVP~sB&nl^x$RDP9$U1qrDI!J(kp|_hHVy^*)r8O%GWforE5pMO;FUE+Wh5NL%UC zu_J#P^GO*LIX%(_O=r5gECdz4t^uOd)`_fXt0(I*+;}C@NYaqimr^*+pPmIr6>|zS zFF_heBqgVHD*1r6d<~_Tbr!VcYb5fH)&bM@KD+kh&Pq6|Y+F}kl^13cK|)gz5hEcc zyqVBf)24wT@Fsp%$+}gKe|-KYOu|eE02*75-~tPU2I#AmbAU?SW!{NOS}c+EkTRxE zsSptMM8X7(D%nfq4b40*Eqr-maNpgXQC7Tc<{`4ewd^aj>?dMkT9ys(FBHuiTsZdF^T+-6)4uRPSm?J{Qwf`#9y5HU zXaNbPGEMeUgU#?&LPyJ&^x|YGGkmpZa|p(dh{IQ2GyHvFp!_R(4>QsX|3LJ1GA)Y4 znBi-LN$@Xd8s*LKwW5!qaypKpP$e^bo#^=$L}ROFhJPr=KWO9jPUOjrd)wT-k2h`w z%WUJ;;@r>m<(mT%?p2FJ^i$`4DamQp5$`cQfUlaAK+ zipf13av0G#u7KROuop^J?CG{AxcwJjq^6{&!g*f0)=zFZ8YdOTnhJ;GF<#BI2Y!fzC(>Ro;FT^SZtg5d1Xag)e(hUWmCn+{Sr1ioPHt z63ZT6>w;ZPo1!d!(%(DI{aJna2^4k6E7aoi;i6hjb~fB2gZT5cSdVv%9+(Dv5$6%! zvHHayF6@2ylCKZFcuQ@>X?n-0JMj6b$?!sXVgZFbrgyx)U`XY+-{`Wklv_ab5_6F0 zouKQbtDk=D<9EtRh~8ojHoX(|=}GTIhE}T0-lL#jgqYq*>Jl|Le~`(PGQE@ar5DF< zU%39SSKJ(--;_4JQ}jnyI@Eh|_i#Od&_ukZcd9=6sq8Q7cV5$rDnrE)ruSu)2;>+# z7?KXDr;(=j6}`oGE%t9Y`)_-aWx(hxiM&tcou>DDquu2lK?{H95Uiq+uVPH^bbZ*c zKN_zsXkP|Zlu=V2fAeu%f$c`IC>&N%syk(q8`|QRo!|X-a04o}&{_~6B^gSsQ+#1g zL9SNbtUmzSKM@4bxjsIQsS!!6{i#koEs}5K52B^fs^sX_=J` zSN9T=U^5=HHB4_qTYz-99g;50p;2+5Fo?#*fx;x7DGsDJ`@t}p*udQU_9^1z30Ox{ z8w@vg1qv3@%!alsNK7XYWYBgF45j)13P802lWAcKker>E43jM09(xmuhw0Z~IZ4IC zloha^_O_^*?H$C4n(qQ*&QIT8}~G`=V#tZ70~NZ8Uu z1VPmjB?*Q!sThnFBbd?TVlbK$u%Ic$U^FXWJX0}7RfeYKWygg5WiQ9|pAt>=%1cZl z?PolN!DwD_l>gKG=Z}wf&9%Y_6b7T2=Gc1o$G9Iatq!%qbtnu*Gu<)7`{>BjZqo(} z7+OshcX`u0!*TvjO6^Oz*3XkY;`AOi7w{!WM$1P|fttb_}1pWX0{PC7!c{kQuCDdgnMA zjxM9=zgJ>U@z4^eWqMz8NEar=&Y&8LqBBkJTtqVm>6f)l@4Vu`1Y&#%ruX&YKw5fr zP49dJS}T5i)B8qoAWgHO>3y>}kfzz#^e!k4q-i!Wy>Cen)%h-0FMj>wwYg_;oflP` z)%osf6wq;@WA>OpeKl6VFp~^t* zZz+SY5f-cPtwc%kxKWkQlAo}IDM*uqQAKufAWaO$6|IW{Ma9ptfwoR0*9PNGq>VsP zkyM`i#xJp*J6*&@BA91IvR!rYLz->ua;Na%L);91F1vW@D=c5D~ zL-V`Gd2Q_4%cY+k)r9J0Z+`bWA8y&2Fk#iWudT3be)ly^|#OZplptKsBouF5J5 zkjQjwiJXqTE#qR-v9iWeUFeLKkaK>~CtW&v;zblYTmDW>YHL~db9jOl@g+(J+_(sm z7d?!$yi|4;HfV{MXQIjE{p`jsJeXZL8YRJ2f@Bg*fuLn<`J`l!ykf&wf`XQdjKWHw zYO|^bb=_BESO}h{hIAxtR%*NCH1Kp}^`4sL3Lu` zkk7m6T@^;ss7v^#&Oo~G2d;~`?-XXYMSnr4bX&V zA4X}dQeH-tBG`ZcV7Y~0x@-w#xx=F;xC1TL41KL$$1Sp_I#Z{q*L5pzfZ)g{GljnY z?lJXx?n#%H&EGI&YgczJ1*oG;a1mJF?R=p@aAKodY2f0l9e9NRPQXQA1NY7FFG{p; zx_3E^pY~)Srryv!uS;g@oquNJxZ$nI=)<>b#(Xn5NDf`7LrZutgleoh+r^GwZ$SuA^b zxT*W*+TT7H^>o`rx4$>=zQ7Z z!!6t=-fy_|*F`tKl^A4&y*`}i?)7JF&KlN{qjAbLLtFQdWq&xeRyEh&iV=RX_0})qv&_ zJmBb=MKvJq3-!3S0c`26bmer~>RmNYs~9OK;Coqb<-Qja_HOHY``@QAQr(t=Jgb-( zX>#CBSm5&-Z@#_hbc9TEIiHp5s3H>&-DuDmMR% zCP(GuDd*gx$q|2sdK`Joxs7|2@AP)>*^cneGq)k)(vZFAoabJ1bW8We-C9J^7%9o% zu2|16CPqrhMgR-k5B&4@j_mc}Ao>ww|6>5!x*zR}xz?gprRmgRC+Suoo%4XSbBnj| zI6`yqH6ZQX;@uREP(%F|kPdF~t_Dkne)1gv9aZL7t47P?dq6t5#nTWxGHRt)0O{-& z4_Xt6Ko|bc=`DSah@u;4*;Tt4MT|gu4Lsc8e#=M0At| zIQp;maf|o01Vm~03!uJk@lX;=iAMJ~0R4)jL}`GlGJ1cvcxZ@yL(_pmg{N&2D=NKzqMVkSo@1SL|xDk&h0=l zi{WYDA@1gJleD`Xx~!xxtP5xfKttX8Qg4;0n%AlxeJ))$t)U0reY2qM|Er&LB;G{o*R+U!&0IniOi+*b5!i+^HUO)+itbqU) z{m4k3oq+}w4Of5#;*S7XPOw`*b|6-_oM9)!KTsNOis|b3y3GxSI=qhV>Q0@zs$1VW z$MHcP>I==1BF!l;?UIs>5E~nDdZ)*=w!}@#b;~K93vw! z53WiQce-Rg6ZD#>e@1RzW=>vaK}QCXQ{X|;p9P=95dwndi7(KZp9P2iemtm6&JdIZ zcIF3a8OZ`s&*2VwLrmACPXRVv^9L;uYCvsQtA1CiJe=Z=7&j6{9Ac7HzwAWttC?5` zHJG}*g9P%mXpf%g3M9^f3KH|l@j95gv6X#OPjXf1S?~6du&-va=8lY9p|MML$>Eu; zNJs$in4RJhh3Li+L;pl}kn~hn*yJz2|6%2+1GWIrOOefVJ4?@mnR3(WqNg3fgCp(Qms~3fgax(O!L`qf*cT zi;#BP%RzY1BBcHD9uOW9LR1oUdtG=x<(sThxSJA$vy$itRg|~buQ!}{_VFRxfxl3C z;4CkXcTWyanPx^-`>Z6|QkPKmHWTQ=giX@^?`MnA&F!?P?eu$QT8WXLQle-;@s%NBPQ zmMp)wzR$;>4QrvH$VHY}*WqxN5zZ{i*qm8JmU%|x4rO`Cu1{-ssj(h=HDD}vu&|tG zVL4xr0W!gIfsi4VhgJG+Tz}WGm}0U_BIhi(7c5J^3xeg2B6ldu-G=$A)*SZI4iu}% zvSK;I!g8j_9>_$NTM8MiKJB-4IUhF^K!%yS*ORDYow)u17IR7%x0@>&Nd>m1`KrD=Lw8-N>1q` zgLg_E@Yd*5g=C2=o?cFO%EGcn7Ee9?I@`*GNEZ)7JQ7(uA#|z8QfSV|>W@=8(Qv8E z0nC@7oU&M5BuW?|vPC0j$Kqn8S){RclCULKnoA0ImN1DG2ADin>2w1fe(qQ&_N(XP zQ@+B*O3!(#0wDJ2bUO=q;X1pEWhhp-vCbZ%95wBbCL5~nI+f|}A2DD#iaYcu1V|Z8 zPU2)1h%uKl2~Mt3fhgBxp@jt4@~Km{I067d$&F`cs{IRizmY7VI@2V;2WQ~l#F;LH zlzS*nHcWM92st_vIF{P$gc(BOieBd39hCT197&dO31?2%R*>lOF9BW zHuc5Rokt$X*t{F*#17PtmI`pbW(dA!+HGo|1r^cOydk7$Z{X_af)gv>oi+#M*jrdM$DEP31S1QvrBrk-63Qb>IdPy} zpAAjM4M*{FOQCeo%Y4w?_BQBGpo5%Bb@mat7s5M^ByoaA;tMc-wLI zmtt-yux8+VRtRmD@|=((OWAp3a`=O$!6Q)qxuwtyb6%boybQv;L^}ry3N&pa(8?|4 z?`hHV8;9J+ZG6aP2#^X_$%qG8(YEOEfn-Z>G<7OVxX}{=MOJN|GwUb-CPvH+E#XJ6 zs{qafaj#lWN^MI9^(BBteETX*uK0V+)wX>kGOm_+W^Cw<0{NwJy>X!6gWpKgp9vJY zBSMzCJb#Uk^R+`nOF|N?gfz1g(p=`(Mo0?bi029($ z0Tx1Xq|`=8t^^Pv2gcrOTG)GiW0Yq}2+cDmBwrFzP=t`SfkJmgNau~yzxlXiK_wKq zB&4pDkPdc2I?DXo2o;e}iB_TbE z5YjVH=#B`veJQio57WkMDxQ#fRzmvN3F#~IYa^te0x%){6<{IcSt+#<@|*+^Az9yV zZWj5;34F>y5<>IL33*-;GN=e4g9C-`h>$@`;>uQhrXy~kq=nSC5;DwA$Z(lo8zCbU zfC(9?01F|bq|`>p3lczt9AD#qCiv6gJy0P^LTH{jAumZn#uOoBY@pB`5pwjqixoe; zo?8}0E(vL1C1iq~kcl$CHbN#T024A<0Tx20NU4pGsS-eh)cK=Sx4)hrUmxXJ5<>IL z37IAdnO=mD8G%A~O?yd`-L7}f;Cc?{umlu&=r{;KT5RGqB(t?VFXi+^d}NSgQsgzL z2<3v0D+f2gBc$s+JeY`(zW2}ttd?gQ7u>yneKbm)UckbsGyNhy;bV%3Eus%)qt6Nv zp9(!RZIn`O+aIqFh<&%?UKD-Eix7ZBPj;}_m;%mWgt-IgjustHl$M)a+{v5+95d?S zN=k;T>;Q~c3Q?Jf4K|drEHj!i(aGV~eQq%_h?G%@kwKJOXrO6tsa2cU$s@P?+px!N z6nW@k2td>#QF$}SY&}ByKvWuT55eG+nn7yg#*Fis%IEcpqa`-ah(B~_U9(gb|W)TU?uF*u95r?ld z`E<)$2}z%;we4s#;)r;s5W-rj0*NWsj5sQ67p)~fYWBy`>nV>0;C7(JOdt0Svf!4c9ixAL!uYe^D@q3hGpomLFe~jS$nVh=oEC)&xXFED~gD+GrJRnQ6`b zc>0Tr!6@3$F%WCC~Z1b z;%W0{t+8m<FT2;NUur!K0G@RNa={9Ar(wFC-oG*yzC-O;q3*I!S^&(5Z@+=C;`xUuZL_g>K zih4-`3`F)T>Lm$~7N)jQU5k24f+Mnb86?vrt#JY~*TG0whxIN)gb-Pg7$P7}xD`=O z*k~+bxUeF*GA*oVq@Wdb;C0V0@_q2yQQI~p>%d_wBB>s&I&kGw-_n7H{IbI{Ic&&&=ta3g?3^n0GmkNhzK$JC&mb^qS)h*FUd3 z{5~TTX+s|##@evv)p@=O{bYXrBBv~bp%XFUCg<9$WpJ6&LCA9_r8pu^X^`&)NUET}HgIvfo$-9e79 ztLIO=-Spc}C0duG!KS-}Bdlkwpy8R*G8C~PraM^qlwi3eOSR6pQl`74V`|CRvEz?t z-&BW?OPlTxhgd{)7vvNqW)-r}68YMuJ5)Mvz&MORNyO2nyOat+Oq{Oc#+dFfloPny z4G)85x26lJv8KDU<6y%12_v>_eBdUN$GpV$B)0OVJKS-o^@e+&XkGSGAUnSm0Voy%DdE=C=W^V$OX{Tc#n$u*1W1MDi}>2sU7ij0S2#C%)EE}M zT)RmDc$ep61@MN0oF&*SrMThHKal`xI6l1IrRSTk4Eh0OnvDZwrdivle|sZavr|o$tZy`ttg?H=9C9#OLMVe_|q*BW0$u`5c@0gIz{N{-1K z+bH=$0hp366=0#{xRlx`IUxZ=$=&qQrW_;wwqX=^~Vz@d)h^C65-B z_v~9TZ4-)JQG$+GoVQbQLFU*-$=3?NlzgKA3nkx5sg07058&_RpGc1oVe9NQ@QPXU+`O&$~w<8jjCIHc4@iBkfIl921=-=F+h z)G3r{MTzyKMSwh5VAu{8l-1pVLVI-5V(;jCFD_{xgHIu|lNO{uv-ZJ_?TkF56vwZ} zH&Fm)q^SZdM$$}5ZHzRR0NS;`zozw5tA7d^g&FCh@qq)$Gw*Mbq>UuoY$Qfc@d(`! zAveY)PFXm5*BunOBm{Lg>2^XgWPWWXlBobpNJ|A+2x%pyHbSx_fC%|^UCqLOE;Yax zW!NzWC`4;-lOqYqEkZ~ekI)?va=e#gYn#MD_#~_(1a&qAc0$_9{MraRA5%PNTr^4Gj{q`{wxg-R2 zH9hQv^pyFv5zj1SdE*LmlLBg%MtPQmSbLghB_YohA!L9@ z=#B{Ke&MfXo4VA-yJV6O)X@yG6Eaxl*G9+?1zFe$YWGF$?PkV<G3w}m2qCX~ zgzkutG36SxFF$nOcoexLq@lIjebY|J0-0YMA#W)F6S7bN7D5(Dsg01u5+1bOD>J1v%C6aSI=mr#08zWUpDp%Y8FDW zSX9(!y2U$N3Ula7UqH1uXXEsdSA~>oHr;Z6$56i65P8Wf{Zm?%a(#meTw0T50oKSD z4jhaEn*)a!qpeHuq-i}Bc@37;JYTQ#@M&A0%NC-|8(FbwWk&aHOc{w1ZCSW1|)CyhH&2^*=ck0Z9~~&L>|+Kr#iW=gC(j zpcBGH8sxIFF->92C|%4;jxk*U=~>{4GAltuNWYsQVKk#`f9J{5t>ZE>kj`>O$#iB7 zm+`86$9c9~l;(Sx#vF$rPtz6!OGdjkulC|QEzVa(u?N2m0SKdPlR$$y*TEH7K%Q@e zZ33gCYk}+AcgknQm3C8E0$HL4c_-JAEh9es>%xS)YE9m08p_Y1TT}&l{GEKIn?@Ix zsF^f2x~%Rp4dv(%#N;>|gbpx`Zmxj&YX)vVIV)L4MlFiKhG`VKgaxv!(bagjX>@mW z+FrTQ;{COjyP>?O9%Oga=;3-}@Un(AYJ^qca;i(9Y4mipEj_P6x0Mf%sO^Fv)97XK zmcr;DC$Wv*F7bT5o4!_0V<~AGeO$9fZx7tL<=2mCEHpPErqNf$lGui4rj%*)bFCWJ ze8%01zwUJ>wkhDRXMkQ|rqSQ^&!=0imUvV$okm2@g_kysXH`VGP(cr~QK%bUhv*YCG~zF{_w$aZJs<+i6q zS-~`hxDL%+pHgu~`Il%c;Ae~MXc$A)CRj!uc;-sYB|sI^80H$*?`nho`Hsa94T+x8 zS=BU#yPhtwFR4@Zw_|BU;77|DSIsm=xGMU~>^b|s=Vy{ESL-R$80oq+{)^iSg8E%` z!|_@2B!)B2G>uWND&Dm(EKeBEc7nh)n=|fd(|AF}!fGdx*ENmNuJQ%enCz-uYHxOva#c#R z@YHfMOk;{1e2@gh2brcZ)iv?d{r@~G>#bxTPz!Bo8ZRr==p*(Sc_gd3rtyl)Q~L0# zgRMWg0#$~*ZV%!%rZLSW-mC|4T51XlpJy7=UGJRjJoDNQRbONP37>BoGhE+3p7^-U zlZV||y42PSOk<{UE(E;*yPVP8G-kPa%)I)fZouFY&^|!tz@qPI8m}tFC_tj`Wg4@U zn6~A#2J|+KIZ7?km5|WSnZ|3bYK9rItFyL@v?jDr2AalP*IS3{jvGg<1O_;e*1PQsaf#o5rJMXjfFT3;vCW$H`+87xk{xE>m6U} z<_UK}CwfdpkDCbHz+%_E;BBw&pS90mNr0{CagzX8q9Q8j1TR&PlP%O&sqwaJQ-!QQ zwzPMB!af0W)8nAKHkMjHp*5R2Fg2FB{#)gl7cl>56r>Gung;aN#yhUf)en_<5PPdG z17P4o;)4F#SnfLB`FQBG@Jh`D1SO=$L3eGu>vH8dzFIf@*A^^&uwLr$)Ob%d3I(0m z^%y;FHhi(dm7D2Ga^D}r`v>YHX$}A@tzXcaGkV;7kgsyxd1v~ck2{53AgL#@OEr2N zcq}zmyH5SPEp^b)6TbqKlV8BUdJ~}cU5|FZx2DX*(REnHsMjTMWNLhXh#^;T^tiV` zzQ(oY`E7rkSv2A;mJHnn*5kmvsj=1-czOAWdV|)sVaaf45kTu)*MI2N(Dlab@hlnY z3K3kN8XsDdq0NIHw*=(tUDxW~9KY$~;MME{>e3M0p&B14qe!La(;;8rx766+N;zRx zX}DxmDfR(%h`9=YjVguIg4}$f2e>jdHo4;8E&sShxA#lZ@O8jW^|EsGWp%(x^|&kNKRjV-RZC!RX%{q^60ECp&p>j3!F`T^JZ zLy&*w`sWjUW~rp=mDmT=NY?|f)%pQ!=QAxn0%V)(dXv5-4lQ`M0{ev8)dm2zTR(yK z#n~s|Jk{9Y8a=Pn+Ic5aCb3VbVQm6nr}Y!)rHR)OUL(M_s`0riDr@x%@pTKYv+t;- zYzAOgG2anxJ^^gEYeI#fuX}Zve1?5Q%Y6#~dtB@0E-Cxbhcm~zrO$No(H_9|x`cyu z_7N@ny#VY}Z3t95p11t~?02oLJO13%It(ZlBpY zC8s^Xz5wi4F&O{!OMt&nFlmA7QbRosz?W7PAg3h0lOR8C`+yqiDF9AbKS&hsnUl{> z1A5ZcVQAkkqk_k70PPaR>%{~;1L!GN!dv>uMVCH$LKwDwdlt~IT;fS>f?B^l2k2>+ zcqo|`LS0%Bz$veB#wFeLl93Euvw-x#v#W8|B~}F3H?%H*XIJB#(k?^wBYNCpz|Jd- z3^QpDqsKh~tXj*t8!}LJ%@O0hmwjF905>!g(IE9u4CJ6@q*rg=p?BrPC8Mv&5GWGEj4Y#f zyq#9R`K>#rXpjcBNIYg_gudj9FV?r;+We>tfg%YqBYk@HOMS-Q`S(%)4bspSNw66i zsW+&%XZ)lqXFri4P$VH{WR(7QpPK*1HQxOx4bsRKNhvcjS`WUz;>PJ`t_+hQP$Z?z zNWY#kE_d>=&u@H3gT&Xi#o{$1WAv8aWNo|En zO{5tat9N|v(*{``AN-|)plG7a$Z~q(wGsnnuV_(>0)a5TaB7(~PXH z-)Qx)=BaY~>(OdXM}D=<$QrsD`9Up#2{?JT5k`d#&B&U1{eM#3@)u0zLa^;en;}4In^f%SCdlrCpoHAYx2;GAD*&%Zms9{9c5AS#7OaOzscl6%R03#G z_2!)}3%lI&bVPY(i>e~ed_}snJSq@wJ1P*Pdjo~;Xo>#j!Mr;yN{woRB4+`U$`>J|LZHwc z5i-8-VQ0sZtrJn?k`S~rUdc{KWtm?aAypKB38|_83nA5{)J8~k2_QlySDx6f%f8+C zc!MOwx-(u&67p0LLd-y+yQclA&IgCrfA82Q8$zdJLjEG>gTX>rPub8D73>IXlbe%I zhdgFfNx87-CQ>p8B{ke>MulJ`JFx=+TxOKz2rZ2WF1G_-0nv;mUW>lo(*D3k$VK>BK>mf#jPg5X#&5Vgp=*sah>3V6fCM7Vs2E4a zs6V57j-B4r-G)wg$iiGyS;wIcZ@ss6Z|`)7o;hNOHlt!4wa>M0;UD~@D}-f^82n~b zIY-6H&37D4*>##^kuRmjm{H{&T{0{7+21>HD8#`jC~HPlu&4^oN-1NpW>iJ17(#RA z%b8KI^vfU1g?Qitj+8f}Dk+3j0#K=f8CBV#PwC)KUYF94yrDw$tZhbBaa4YLQ{T~3 zvlp{m=H(>OM}GlLFr%tEs+CMU++^Y88SXa188ca(i>l_he?MZtl$XAJmVQP(UXvK> zn^DyroyR{v>*k|-UevMFDx4ko$1_(CzJ+7j#uTj2-3b$#QwvD#yF~ z2b?)k=l35emY14F0H+zYS{WyeizGoHml^gxhMkt3^`0h-U8~=rNnXaFIxs7up z5@orWp>k8=XxE>|ob0m!=jK&wZfG_PPuMw@jpVkl&`e6p3_EWr3&&7>DZSW-F>`+J?TS-e;_WQsx|#61E!<= z8*0D7j#le(p3ELPWT+Yf>SkC;+h=N|2}*}J#&o-RVbkKU+w>clPm=APuu$7Kq&_f* z2+ZJ1IaW+PGu2no_ZI!EF8R!DhK1QaYn`20$Xi;d2BjTq`u7{u-FN34{fI6ZLlp?O zeU#I_H7gUaey_vdQCph49%kOVEta zwd61}EXtM)l7a8r7`0&Bw2}^ba(%(!6Gb}|JKMyCGy;K__n_}9blkZ5?oILD9 zKW-j`wu}aHEP*#x-cj8@-G8-zFrp!}KcyirCl3rx?Dj{0Zope!IeFmagRFX!P5)@= z<)3f0gETmLx9CcdtL6$-e?Iu#24$m9h|HqHBi%|qe&>zcU+@`pc6fv^4#OQ7AIWl9 z!*pN@$cy||1=fjV(Lj7d+{cwxUAz^G6`+TQEUEB9_(-TAow+d;%0+J!xkW1cG=If~ zJ7=DKh$2TSz+g_Qu-U4@CnC326}AW=QsMK%M;)_PpZOi7;#tM(9FQGR3Pl`BueCyMp<9vl0#tZxz*H_hE47d$$}n0- zd{0ECjka(f)Pj@C;{msp?S5Grfh3Qd~k&=Wg@J8W6C2}K{e8Uk=_U{)oI@{WxM zGUFnRo$s#D$;tykDGz^2R2i)Ao)Frc7u^?f_M{rck4Z-&cp^K!9qdQ{MsfQC*S>jqIS1qZ&5zbl5AS`^?^fw3juEWQWswM9_K^)9Uvf6AWtFe~Q*; zuTA^W`;=Y}MI1`b1QI>jfI~97-bhQ#%qpx6#8QL$NaU5t<3UbMN%k4i(3tBupL7B$ zntE{K;*%agT|D*-5<4a1W03%Z;(>HXfI^!kBr0_VIb29F*`o-nEy?7TPQ|Zg$KAeg zM-+bZ*)2>#ET+KP&>WXE!0T0cjEWN?JCX{DQ94daOk_2Sg5)fu@00|2wIh^#C4`a^ zkrLJKG=_l|kr;)~NLZxDa6!*miIXJ3z&SnVgdBNi_~lByeP!<4>5k~3e(x<7Lg?WZ z__eUWZ?FYc^nELsMvX?vp^ff0DAfrMeq^J;Es)18x^&+*9Cxg5yD(%;8?3B5t#?7x z*&!hgl=skK5P;;pAOogh897-g(!g)9#z4qfU-+}2#nu=8BIKwi=rw4+)@jSR$|y;8 zdK4weHM%L-`WkX2mAFh4kSto)~on z=wBh&;2!Y`;mzU1tSoSnlbe%QAc7M2fc}*-D7QcG+31%e8W+zFUlei$)4J=Iey?aL z)Pb&%$=?@|p$E>BQr6rW`TYi5r@cK%!55*4m4tsSFA4uTToRT29}3bn?IOg$XHIjx zzegHTS|?P{A>Yd+xCb3I{cw8x6&&2V2=yXJTMoZkl;i^txUd=QR|}E>nK?iO^~S?j z8_2n6zgm~1pCxD>@>yj$JPBwIPXVSD(sS|fn1jEHMCgbH2xKqo_^V0)4d`F{B79ks zr;m?C>V=b;BV*929%rzI7})r0+6Fe2{k0r|FHJkB%z4;@YIS-(JJq&2bwrvoPX!Xl z*CIUrIgY?0sl!ms|C&Q&*Uj+k%>3j+NgP?kaGL(PjyHWToZe}MH07akGdkixF4I5H z(X@5vjum(1{>1}PCn6{+!}P!Ih?rXaO0SzExA0J~V4R$RBlDR4`HqBRy%+CYy0#_{ zmJU+{v6vZT`rnW|S@F!ATv(OmPLqO7|C>caL3I@YLQMaH;sc;~N}2w*?7^~9$>J|D zEy7S~)4$M>nb`NHFZ!FtJU^626~t@$7dfssK72psV5tpg*`cT2tZwkp!{hO?gD76M z?C`WI_o_WN4@hX{X@smRG(na->rUsC4he_S}FPwjP}S! zp9vvt((1_?xmCzDtvA#+-rhX7@W17aYMm)SlzIEf3R#3QUMqKqc1`;4W^=9@{?A1z zXj*MmG;wEdr(Ry2Jqe`~O1uoSs+CUm%B>|J%VrNKpJPSX3pM_|LLc6x5Km}+IcT!#T95mZMO3(~~%fYiK8zMX;lecBB4s|^1KP++59YNWUkL1FTt!yl7 zL!>R_W%JrMWk=q1--t(?dFd(|?QV*4#tTQR6#0+iPN$~-geV6MZpX-kR=2t43BURH z2udh4R2B|QdtnwY7K@nm_50f-x=Cz?>GCuVWmtxo) zE~L+%kwGu5Un3+Y`fM_+A~5ZuMoJhKPT2+%9A~3AxxwQfC2>CVg#!qFd5eY;4}(+Q zO^p_T(ctvdzh7R^N^Y>NJQPC7Fk_W`aK6R!U4Gm1T^0S~1htw*JmT_#oftm0PJ^ro zLoweGm~XNyEGt1SC!DSolUb6#jmSAg;@L_#nHc!&Od0PZVazz-l<>Y1x7fLKt862@zX*)%eACPd>F-_+#mn?; z5=I*sYUhLxZs!98-vcq<75&c(Y7yVvqgKw2zBsP!|I2rth3^)eZ;&y*6Ggtcl@ov( zd6EPO-$YFLPL^WHH^C_1DH5~tO<>A*s)P~W1gCtbN!-GBx)9p<&Jc3M_dBQ7OzZgi zgC2+vJKvC?;9EQ|>9;*ES<#;@sMWN}s$FTnqtW=zcN$ek@rPE!?Fwlu`J-?CiJWh8 z9+0k(O)$#$REb&nCNSmuWeFp`2~PQbMdFNavcBe@ zCWW?%$aDeN3Sx$kqk_2k<)D^j7EJ#T5oIq3$cZS3SB2rvwj2H&!MUa_*JJ}9)#_re zwE4gOi{cL@ORu~GftLl^wQid&3j&^lARB}23bQj?=RiLQe&7A|MAjvi*b*>uFVkON zV%!+XWUPS@+Bj$^>~1^fSAdl zQV4%mT8f<|UKoAlq`04)ezDd5>i+%?K|OkV_THevtJj8y+IBt8*iy32isl)dQ4ppk zL$xIhtunY+V23cU${RFw>;RR)&7C95`?MZvk)51^?X|`ofIT>Q%+;3kv_kSyt)}Tg8CYl_LsM02E zYD*MbKO-{@CSq*qhc?+0WsyRFcpQMv*C(j}sj2XsI~)Ye z?3Bs|2$L0-o03_Wn%x$vb7l^6)Zm|DL1DoyF(oBW3n0zSR0VL7i4<-?7Q6N8SN;mn zLZw)aLNr(wDy=kdre{dAn`tw<%Kljn!K)ENTV1Uy z0Zp^4ScsKS%$i!Uu<65zYaoehXd|wgzmY?5L{_&Xan*PK{Bnz1&%TBd3UNs*MQgB< zw5Vm14ok$av)W&v_L~LV+WC@_PJF%pUNC;PJcbEiDcA6wR-9~m*e}+Tws%cB$ zJS4Z$9fhS@H&07xjM52NMh;BUX(Gg&uT}E+;XFJOWb&aSSwt`C5CcuV_)901WLCwN z&qEwyR%FG=ET05`rSnjSSQkJ6SOlD z3&~52>GwNCU&L|RCc!3NzU%}bV65qnaeVcacf*;sRqykFWbFhN59J;~dDCCkvFpr+ zSFgQ)rGX_3tRu=W6-|Gv%URWa4MhLN*_l40xFVMv?@F7L_)+@<Xk~K{{l+LveafZ0ZH&pBRQerXfRedZN>ThU8rGz zYgTgpO7eS4A><>n{vZhcLqXYf3tI!71fui7+Y%Z{zJMEd=>(%I5_crVJ4Z56xhsV> z;{OzYjre;)u4&!DsJPV$>qdNddqDtZb%+n%R6h`$|BX4X;(sXU)wD3xDYl#bcK@*Q z+ic5iUfC(KB}-PNBblDH&*4l9Z#0}&riX5fl=(as2CcgsG~BO6OLyRPC7bO@R?t*qkyhn9DL zSkr0kcPN>V@`!sFK=1}lvfs)Pz)D_Cq3GBoODbbs>&RA8_LUg@QPXaXQR}3Rj#qLN z&W0m&kdmvU%sxb%wApE+P+K|VNyIi-$(I0XdBn~(A}Cx94N2k_f_N2ZCrhHett6`X zJ2(XCnzj_mlh?HTZcoQ9tMr=z0QdL@{ZHz@&lE8F=jZ+wp5}H~kLB=aY#0ZdsKobx|BLs+SZ5tCMgjRusdk>^` zcz3(noYyIm*Qqi(#%p=wWnEARFJQy>oYy<|6I(V+Ua}P>5VF{sfFyM~H7mLvKvr>$ z88VRop(%5%HxmI=Pt8TXn56(_jMT5*t5S-5;0Z4!C~M3IUI9#INIqz*1_t$-RD799u5Xedd5g|T2$`))6lA34CBy1`Rx5dj$LY~KIRa8L+i|yiWLT_smYqOADuf4ABL~p*B5U|$ zH$%6q;lrF2B8Li3P6+Cj)q73|oSN3vl0EKv^zJfMbZqa(tWwjH-w3~enWD$`us*EQ z(R+zbNAGRxbSmn79D*Hmg?{*o6Kg8O{ew?ZhiukJr^6_Nvx=hE*Ovy72P?^=1j!od z?)7Csw*H5#LFn%&DU7sOaMF|O%N4+BAx;+Fl~Nlm?@0iyB)ZPbNgp1QhCPz92huEg z=A5hw;@1oG)j?u3%FL*o{(g{9U(?2b%DmNFJ-^2NOJ9AShG-8NPdS0^AXi>|F?!NE z1Q(?Of$|Jx%t@{D2YRq=oke-TpXe9 zfXga`7Xe8nR!Mm(^mLz54$C1^bnH|fiAl=zT%S<^%f;}gq7nZd4T>B-5aP zs>6d3K&&o-4SR-QfPO(oK0_sd>bGzPhcd_OH_IG1y%AFJkuoMxzenjpM@?Ix6d(Bd z#uw*wIiH2%4k65>k&Onl732#PtIEXud_l4g3LrtV$UTT)pSl>X6REo86D)&^>1+@z zn!y+9PB^*y-Ie2lzmn_0+TAoUEe${Sc z$36FNca*BPtw@!tlg5`reCeVCVnvWrtigmo?ER^tf8d;NlQwDO9Y^h zJYeT*WhAw31&(>y;Zk3g$fr2XMy~H=3!zP^)bSU7OpO{{Hul_RccSD|S)tZB5bP$;Eo z+mxoe=icjeckj6+DBh5rBwlbfgKnhw$~$1NnanCDw3%ce>Z>5@7sa4GBqtfj^xjud zK`C%xgv6GZl}u;(zBq;Pkp`*7>UM;vtn3)6PhF5ele1m(CocTy-T&}0BRV-#ndiJz zlXbPaZOmELSHmG#(6p}PdXzE-yztk(n3$gpx8^26IW?jiTQ9_k6hn^=<~J74v+86ptQUc=w*pl7~g`PH*U;K zntXM?hnYL{K~B^6R?V8H=6*LZ?`aQd{mHgZtm#`QT5AxBW|TnXP2VEX<^e<-5)fB3 zeTzlo;7Q9(Or{XxgTZL>^5rpi>K(0Rb4Pq}`yLR`d9t zfeldjDcrZ1z9x>%5tp)K*F@KJtI9{uDimfBKdO}Frm}pC1j@)v&mf^(rmvX_CGKC+ zp$L!1Fn!JcM+gy#$Mm&OK}e-$wTUDUWcm^v;?AU7RCoY_O<$5j+!Lk%uY!DoHN^BK zJH%y9ij(;Qd|1l#r8vYDehSEokpwPn`cfU@RwIQ;@xiTez`Uj}%^_}m3yh~1VfxY? z;$FNvjkHf0w8bYMMw-41r6C2gBp7Y_GA*DS$B_?XOkYcf7+Se$OGD}+fxzNhIYhl> z5ObwOEk4U3+IV*w?6az@fZ1nTQUgro1dPA61tTV-N&@OYjzhG9$Z(Iha-PY1`(i9M zTw$NgaKWjQFx-V-o+uZdc>VA4AX0`q8-AsMs}*_l)cd6~0DjULs`t24bo#uNBTc^d zgp!Jjf8LW)hFd=GDG8uS%Eccp?0xu>uMf%%oushbuvX7|#>tl%yl0(afWRjy-g8c& z61wbnpn1%QopmD~pqN9+Wk1$}$g$8MKIoz2g26&jBR9WoelF|yhDc#56_zCZn!4K3 zE+?yiwn=10=^G{kCsQHWLi7!nLh$=ZcIC-5(lJ6;l@Z2iLNePi}#I1 zLh$)SLXJbi`fNxzUI^)sumKrG(7DP4ByUK_r1FVK-U!-FCZ8naXb35qcvO&HI)tQM z0iDQ#kB6yZ2>G(G5H=5p_Pru(0S%Vl3Ce2!MMlO>6fYYrlkP~`M^7U+JD0r8K@Fsr z$fKA6fDYZc+Ix2h7Q&jrW{lNP)6Ly-SGf@S%=4S?;r)Ecg4G3Y9eN9ToAw7pjdK zcywa}6mjT#5C9DWq_#5*IFFPDyMGyEtDlzcOj){ggqxh0oI%eV(22n;3G%T&nI*j{ zgrbD`(0{g&qiMPrd7v!P`}#PGoPoKbr03z1uHbuJD2pBdzWeKce_wuX!~hgMeE>Ku zKQl3}gLSd_GrHJ3S}itjmCM04m#y0rfY+P1D}XaX)|+=oDeeOFof1HU-{yUmv}*Y0 z3rkU^+2B`Zn(?9UmaENsY^%*>^}RttdqhdVyZ2unJ~reAid|9y2lUkPg}&BK$vT;1 z8zmnq08_GF0TxO=l2RKb8zg`z35}n-xLJ>>=TN34B`njNl8+@Nn~PBLNs!PUQBtPH z#HzQ}XW~@?K}iy}lCSKPoR&GZQF2BBn3A&!uuyVNN^O*!mjI$&El9F$WP;xOyXpbnlIO;;5i9daI3dJrd!B%p>PRT);V;d!h6o4r?tN;roN2Jt7 z$x#U)N&@Eo8|Fyd`aR0Du#zNXC0|NPju)ZiM3B%PQ8Md9$okXQC%%kg7nCGpEBW3| z$z_>i8zom1fGPPw0TxQGN~w*KA0>b&S-E6U-j{RMyHTbEB|OvIN`8`*+$ciH&p|?a zM9JkDXMXGROx=elc0oxBrsOv}B{yY`ZIt}308Gg(1z0HgLrQIw+?D{MMA+$%7L>(>F zW5JK-ZO=u2qQNjEKQj$e5>SHd_*yz)ql6eY*eG!;08`>ofQ6DkDYa1&BmqRp-r9Zh ze$4y(*m5;IxV%vmpPXlD0X2b>6ntzc1pr!j%}296@V!z zqW}vf5mIWS#3unnNx|!-bno@EU=HN6Eocz2*3FCVD7*= zW`=X-l0}gZkVr61AN#sD+s zRk>K{c{zPmB* z)qCC_NEj##nXJc*dCj@B$LCLWPutEOr=;tafo9BHlq|e53+q4hK17fiGtb%Cz5P_o zfYGB#e8hpb$WRG0=5^<(IZw?yGU|)11SB8wWwBs0X1?>}wg02*%;RmU-amfsJ?_PI zTrSFVx0zHrxdWHX_nPN1^E`))naUI*guaFpm6?(ZDJn!#Br;_#%8-=EP-N)0_S(-{ z&wf7l{{Hy-zWTh++4r2a*JrKIUS~af-}>K*PGe>p=I-B9A2NG5es1K(Wo0|msZ;$O zm!-C<-MOi{qesIgHEOyqhz-Zji(EJ|rS(srmZ|N30ez|*;rRKHEmw`b*FN9H-Y)kV zs6Y%f!trm~bsl+SZxu05 zIQ}j10(GaOI-Pxg`O$Fv!pK)&*uLXRKDzhU3xwm}5nQcNs=dPWrQ^f#??ztyGCIfOJL8&&vB3FLV6fsv2gtI$O01{_P;-F)bsjy`bONv!|^N99j`?#K4yt<{7Uf+-D5Uv zqFb+2IDS=R-N8@CT z&F*`_TcEdE3|evNu`<@^6^UYu)?`@WhD+o~egTDDEg zhT}hod{E%`+v`63w2^+FeyU?aIDTzp&z;M&IHQIaa^Lr?x`l%NnV~{B{=>*#Gn1$8 ztWqS4euMWg(r3c)>%?DjEs?5rg}5K1dN_W4&%-qXl793Siw zi%ypL@2Yy7nAbCWRxB5hp%q`Nb$`~JTTgY9Ry2w@OmK>FHFq^XxQaDj#Nx+}Lh5|azFce%nU``pss78` zYKl*!w=dPEPecLhgG}biWNjvSWl}KsVJ7p%0)hPjJMavfFg&UCA8^-#90%14^kWv% zKSII#_Uf4-*P@%Zbe~=1Jy{_^FP6q}&6FP|>fcP_xM<1`lk_%N^0yXQVcGkrtQZ><>L&8x)HhW4^B1(5HScqj+BAN~e^34cqJ&$Inq$ zy+9wI?$t`WFXK8zyAP3|7U*nRS&P&JU4%$&&{c@k2;GEOPH)eQ;~!$&KU7|OFwXuE zqyJEf{!J~;{s^PR3i?;IIQt8XccR>_DslEMS+3^&s1|4MkmYJg`e(JczV`Fz6XovN zjC;;%WPbI-NL)W7isuTL=eCH3)Xx?0Hzb{<=gnENzf5{(sc_sNb3)YZTsT~mtGy=M zf~PLr6bH|7M7_W}xPDxXdESZ{-QwPjb}OsZt)2Ot@lAUf(V1IfzLxJ@bpDoRfaokP z%K*{2T%G}bz!?H-VCbndpi_u(t(Us~hVnRjJ!Q4*go_jlDeds|W;)u&9; z4H>*wpEXT4Wqp!&3Gx-A2$&#b2Q@c_P0rBAM=Uzqm> z{I|L>PeT%(&eJ21v8TO!5N9526SvEx18?AXEbc2aMg#)i^T4sM&C>7UYVR!}{z#6) za^Rq6FxheA8{Y^(WBnfU6?}-s4SPFNAEI&N+YH`CzfPs zvVgHP4I5WX-uPV(8>Qm@Fe5}DP>)mL@w<1kZMgSiTk$t?G_?7U^U)5F(u{u9I-jAe}5* zC*eO?wn##Ybh4U=W75fLDnvS2&8)~LtGQpJlhwkn(aCD**XU%mvYPK?J!?d9y=5NR zDB6;*x413oT(vdls+~EUx!!7TPK#OrbfzW>kx+IRC0tMU@BUj|xa$dzc}lGx?u^Q5h_%sLlN5 zUMtkG-Gv0c$x0yL-XDzG%RKQ?e52gY{r}&HTFyReEH29aIq%2vC*q@d%~z&8yz>_d?9oG)o#4FH;gFO)XbAe#UIfnSNi-!OWRZNw-gr@AavF?aWIwC{eNN>1~NS%-)> z)bz?&efR9Fnc7_46jT4Jj-xACeRu4vnOa*@^{=A3n$>s5&YG$2V=Ubb$bWwS@7L+!R1c?mBXRUd{*dZzE$q!iMzKykRNbF3dbCx=<1tUIK9+q* z$+~+)tLJttU#FpNb+1Q8k1^FU(PQm_ydGH~dR&A#cY(kt^-k*i??le4@^PgaW5uCk zU!p^|Y?x@eV|1Cws3tAywrp5aFNa1y6=`}*R2}uLl&sHUm}UB2s-s3fZB@}zzn%Hl z==s_2bP|7Dul~B<%l+f@#S+bi_~;~iB=3tAj82X;-ysk`R&YA>sbu27`q?HujDYkNU_E!!3BgI=Ti+OF`NJ&@@N{US`` z1Ok=$l6ctai-)HT-}{F+bZj;El348!cb^6BwOM2qXL`0M_XbJct$m#t*|;kxH9_|T z=QXJ&Y9~80rJAIz?97sCvi7nwTdL)>hn?4@T3&nC`JYr%w0E63QmvpZ>&%sEMO{ze z%#*76iPSABaOQ)YpqIg%H$YC*OJL3dkkw;Q+=ILcviiNsmEQunoL=^F7Fs#zwsJyw zw{yCeuFfJLDQ;71@-~nPZgXq$4v>m&lWX#>B#C9+X4hmf5cS*`B1?eiJB91_ECr&T z)kyDI1|-=%4f;LHfs}Jkg(fS2ly}dDCM$uYxFjb`l3lh*rMC1;+JDmnACRLPlVq)N{GQL5z3 zpQK98JS$al<~ga7Gk=yUIrA5(8fTsdnVfk6WOC+3kja^sKqhDY3NktKvX#-9zX4%q zUID_+{2d58^AAaU&b$hQo%tsacIGu8?9A&x*qMI;VQ1a|!p^)2gq?W{2s`sO5O(I@ zlK7nY4-j_d9ZN*n-Pf&hU8z)YRhlr5F1z#0L$j?c?|&t*d(X1aW+s)>T!- zk$VKrvbry-Ygw<_%HbHRK{@x(dPL(St3i3U#z_Otuo|See?S9HuVSQIUH;_cC$2X? zD%;bHboyIUlfG!1^d)H0cxOz6X}v(;4matDBipano!atcaq!rC+@usqRSX&LHE9KX zza(dZJ^6aDtLQc9%TiT?hkJWDXCla|54rLrE9;g>(6?gJO)(jWG7&Wr-#guVkGf(f zG6mkFMiC-YEfEcS=(i18 zje1M-{~{aq0XJ-t&3CiChE>T!ch=YKr}d^0HHN#5^*@j+cuhM8f^FLQK(rzB>39Q(Hiae&ED=q6B;nQ@$Euu97T@0Av`PA6LpAL}+q8?)HSOCG zrWHlg=G!{CPHL_D_r<|ueNCHen|86+w29iUA!mvGw7O{%wOd2ZQjoP*L(VdgwNpdR zaw~gHs|}$WV+9ax3Qbl@qJ~$~YgYl$*3j=+ZHZ{wCLO=o{a>vGN#fi4n>N`r?Hb#( zAEayAwGpNj1A(_xr=$^fRIUf(L+2OP5eLulwt9g(cKaU1>m)}vYgMD6y4otMZ&u;( zVms;Ti>TXGICi}~6Y1){YFWJT&aS!}q`DO$yY?<_`*omMr=gi|4L&G7ov!XQpN7m zDezU3Dh0mkQl-FGL#h<`Ql(0PFHNcx_-aa(0$(kun!r~ZWD0zBK&HS~7i0>2^+2Y; zS07|GRJ&Jb4Xo^q?R+WL5C{jpMnE|5H3q_guZbkSz}FNA2fk)NIPf(G!hx>^5Dt7T zfpFk!1%w0Nvp_iTwFbh0uMH3md~GH11-^Dbl#%IDti2^-mE?Z@=WpM;76JFq(F5|QOFc8Sk#{9A1!MN^w7RgnT9Pwn#dVD3e*nM2BSt40t zR!Fo+*I`SANUr34LtfT%@3P?Vjv-ehPx4+NS0qdFE+JPWNAmt4S0qF7&LCGLKk}X+ zS0p>~ZXj1QZd@ZieFB-0_Wgd%Rai1GXM-({X{%d3J}6{^m(+ydCC`i}L08ho&{^G-{=u zszf`No$BT?%l+BJsbLcf&4=zSWt~*1ChDgmJ84o?=gfU=O{pg9yNNorq*_kjOVp_? zRkhi{JwhF+s?6r9b*-vrmJ05zXLQJ_CxPmo1nNtme5h`NtKZT9hzig|_zwEs{H1=C zAkqllqi&Z%gzup5y+_?3g$Um}-y_PKM4H;8iDWqMcFWd3RDP$aIBzBydgqOLL<^e? zTc%5fts>0%4+OSzrfZ_T9r-%ZXm!;F~ym@n7Xl_tpG6gl=ec zv0!>fSNj<~QqFddZa~ye)^u{Z15pzIksd%Q*zVC2NJZN{dP$-N3)4M%15u*|{hdCR zi0)Ci$(93e4?7(t&Y-`0*vs91wtMtX*F6SAn4S;_Ji!xn)K6a>tev&zFmdo4Pk9ry zx-XF(F|PY3>c7mm=AWo<2$3f0n?j`Yd`pNlQQsCKP1Ju2ktXVYgh&(h9U;<0eOHJy zQU5DMGg04@Doxb)rAiYu{~oWqI!)C4L%ddLqUK-VwMr8;|Mc#S5j;~z*iPUPo~k2( z@LU}P!jp9-Nqn<)6cC=Sqk-^zof!yE*ja$^jGYw-PuVd*c+U3S0ap(LJZbxGfvXA6 z+S%b~JZ;BH;+wZ~0O5%{rzIjWPq>*fF1Y8#4ZKRejf|?ieK%Wjk^neij3k{dTk zmF)PjRLPH@NR*ekxV+tXYK{U&iob#J98fpcIJ0L z*qQr*urm)x;&bNrK-ifFEfJd}W?dUsrdLX=ymf-NNup^DZ6AtIN31oEf;9^|KSUT8 z1_DbtLbV^9@?+@Sv2wziIaYWPO2q0xG)e0GG+53Z`Ud{a5Ft{g9x6nN)Wd{GiTVX0 zQlK6#M9R}6gh+9Eq!IOn3a9B&Lgz3&TIjwk{h|aMrC*YOlk^w~I7p9`fOGUX36wu6 zCyh5iEHbue{pY|o#ky7yXUQxw>a#>WV4}IKnj|l)3ObX`nGOU#;L~3(YH;mfhx4$P zZ=F5;9H6Iqaj3k$L8ikS8THJc;&lMt%BWRJ&(qCU@{T~^nYT0Q$&RwK-Os3Bn@G`l zrZ_?(CFfaErQkf2KSLLgD$USbv9DiCGjzOsEzQtesjpv4Gjt*OTAHB?OOw*M&+5k5UHkVBL}Yg=!vtNxsS;s4C{~*fJ|Ea|F;jS- zIJ8-9ZrZA*HRc|gpLKHP$}>F@d;9UeHA9LwxO&_1_6dLX8<0!C+*Vi1NM_^R&+;8?zh5L^_i?S4 zJ`|ge%e*vT?{S5f25dbp?s9?8dA6=gH@k1O`Lg*`Vzqhk?PoR}n3qshn8U0#yXGL@ z{cdK%Kjds!z`1Jt6$mWjSoB4|vllxy>ngVn=UC~*qGn=KPj#}Lj>R?1r_^GCmx@w_ zXqK9VNU^x45Y0lf5Y0NX5X~~P5X~yH5p|1lEUqVXj>Ywb?u*3@B;Z)wPy&v{jU?b$ zY-^xAb8#%Tbxbn1XdpZ>zX*h9=9hr*)I0_V&&^|j@Z>xW2+z*rf$;P^K@#8m{4x+u#uF_O$@t)t zC)yXbD)G0kN?y5_O&mJ5y0@y_ zvPqpf4Qp9%ek8oP$$nP9H$RptdGiygk~cR?mAtt{s^ra2rAprXOseF~&!tM<+$vS_ z<~FGsZ*B*fy!i#la+h4TQbIvgb7|XneQR4T2=|qeYNi? zu3A<%Omt=66I`{N>}_G>r?=``@+FkB)nxqiR*$FJp0H!_Rv4 zj#kcAlRXCSQ5&u4J*9!9*lM!JfmCo$i~iJ408uw)CBjcV)}KHb*KA?r2Oo>Q5&2uU z??1mr|9rwgv^RnbMDBdrJlWML8#JNTD_eShZ(c~;-_dEkX1l|B~-kFBRC z&s16J`DDmjuT9hyvQC+hwWq##Px2O*o&q`9TV4u-tgbHHp87P%<-K~(vLL5;1)m8Z zSMVx66G2uNQ0}plq?}yVvuQHO37$>MflM|n4>H*_1>|JUrWHUg=h?I($m&L)?gxAZ zWOb$P%9X6FXVK&e)~1z#RJ1m&B1yTj)}~c~sKp5Ch}D23TANk}l4NaK14y#9X(|v^ zzCeE`4M=%w)0#k1tW9eHsbFnd8;H7uq`y-~lJaG(P3rQ_o3c)5amQ`r9OgHfoAYzcm4_*FN(Ua_)Fa?Z#q+FnK&}leWj*}mEs=Oqq?N7 zr~RnLqq?N77s$GnFy!2%0wD85}gND4KR?LZ4BMW4rGa2lqEE zufY!UnpO=Xx@r0O_PS}4bva?k8E(IXCsT3l2#{58a+`Lfl|8F-dF?15TwgmH2p8DC z2tIBAT{dyPUDdBX1TJ-`?M}c0qHTZQAkans!3aw4!L*OlKFZZBsh@ggCgr zX}J(|5;ZNA*iN>e)@wsGp1Y0pij>tDr)zAdfUGV_-B(YwvToXPTx0tx5OqyX%`^=N z*Vs-6qOGBO?F>sq(-u2cby$s(yGx62?{8XL2s+C)?d)_-`+Cr{qG;MJwW=n?PaB^{ z9NgcuTnIYXYua*DV>{1&THUnev}4unM?j_;+c!YgUJW@5tgM?>4Ya1l_Dvw#6uOz- z0>U-63xQ~B==UtLL^SQlLv^N)`ZW2t`1by$wS}PX+NNEcu4$J9O)HA$U6xF0y|z}# z3$KcU$1V+cVaQ(y8iDjKRy}n?Det-C0abUF+1$^_$zq>7;$5;8bh1X8ZyE^HhwJ+jvZUa z%Yy!b(9_;xXA)hoow2Jwx?d$x82k}r3WGm^OkwaW$P@<8flOiWXOJlj{sJX%uqR)d&799vOS#%J{WYNJOlSPMsOcosqGFfz(l#NAS0GTX0 z9AvWS2$0F5BS9vMjslr1IvQlM=!+neMPITqT67E$w&++%d=?!Cge^KA2wQXl5Vq*c zK-i)afv`m<0bz?y2ErD71qfSo3J|vFR7rdmeH92>bQ%!0=yV`#QGW28uxOFSOP?%Q zGH$S#>a0b%igcEpMQ6h-TEI~ckRvyWn!z@?ci$T|`=2c0&{Q*+Dho-I?FF0O+*8g* z9%E8nGguzvWUpp01!Q#&-F+MtKrZiX@2Ci}`i;na^)n!=b!Jzt1hUG0u3Xv5US}_B zYX++TQ5~1|n^y&*w)4E0H(kc87c@OVbdL>df4uavhE)0vO|4teF|Cu(Yuy3c@~J?xui*JAZntZqqUJljUA@qxGfO9i%B1?9T2^f zNt5S|!a=Oh2$?qM&SJKOHjC0+OE8ZxO34WU$0nONOcVUKAkzfD4`iC)zq2w<@cV)A1b;vh-vs|X5T4)< z0^te%5D=c=4+G%|{s<7B;Ew{~3H}ElJi#9W!V~;)AUwgJki<8^p9I1a{3#$j!Jh`g z6Z{!V!~{QQ&#aR5N+m89J~9)$uh{ggo#4-w1^TqS$n~o!|AogB5l>5guI$GI?|r$mG%0Ad^Sm1DQPfKFH+JH6W8mKajHV=vt7; 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 z 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 literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_gpio.d b/i2c_ex1_master/CPU1_RAM/f2838x_gpio.d new file mode 100644 index 0000000..2d44dc4 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_gpio.d @@ -0,0 +1,231 @@ +# FIXED + +f2838x_gpio.obj: ../f2838x_gpio.c +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_gpio.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +f2838x_gpio.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h + +../f2838x_gpio.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_gpio.obj b/i2c_ex1_master/CPU1_RAM/f2838x_gpio.obj new file mode 100644 index 0000000000000000000000000000000000000000..eb42aa64fd104bf96d2364ce0e6b7c85ab6416b0 GIT binary patch literal 144728 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 C@G+kN literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_piectrl.d b/i2c_ex1_master/CPU1_RAM/f2838x_piectrl.d new file mode 100644 index 0000000..c263ee2 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_piectrl.d @@ -0,0 +1,231 @@ +# FIXED + +f2838x_piectrl.obj: ../f2838x_piectrl.c +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_piectrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +f2838x_piectrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h + +../f2838x_piectrl.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_piectrl.obj b/i2c_ex1_master/CPU1_RAM/f2838x_piectrl.obj new file mode 100644 index 0000000000000000000000000000000000000000..d92c1e933d1777b32f85e396afaa4b91cd2cb136 GIT binary patch literal 21732 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 literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_pievect.d b/i2c_ex1_master/CPU1_RAM/f2838x_pievect.d new file mode 100644 index 0000000..75cd49b --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_pievect.d @@ -0,0 +1,231 @@ +# FIXED + +f2838x_pievect.obj: ../f2838x_pievect.c +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_pievect.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +f2838x_pievect.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h + +../f2838x_pievect.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_pievect.obj b/i2c_ex1_master/CPU1_RAM/f2838x_pievect.obj new file mode 100644 index 0000000000000000000000000000000000000000..1e9da97ebcb8e1183146bf547c8a24302096a8e2 GIT binary patch literal 42552 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 SgoqhV+@e)*tVF{4p!*-1#PQew literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.d b/i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.d new file mode 100644 index 0000000..a45952b --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.d @@ -0,0 +1,240 @@ +# FIXED + +f2838x_sysctrl.obj: ../f2838x_sysctrl.c +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +f2838x_sysctrl.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/math.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_defs.h +f2838x_sysctrl.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_limits.h + +../f2838x_sysctrl.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/math.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_defs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_limits.h: + diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.obj b/i2c_ex1_master/CPU1_RAM/f2838x_sysctrl.obj new file mode 100644 index 0000000000000000000000000000000000000000..c7fc4b8fb340ab62ecbab032bb7fae7b8118d049 GIT binary patch literal 144464 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 a;D(!T2*PLDPc5$Z3lZmA9$>~o?*9M-Pc0Gv literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/f2838x_usdelay.obj b/i2c_ex1_master/CPU1_RAM/f2838x_usdelay.obj new file mode 100644 index 0000000000000000000000000000000000000000..d7e98a1e1b545af811dc330c3ad3a65bb23658ec GIT binary patch literal 2480 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

-JfCfzQfx>~EzEcWQa9zwZIvWr_geBbHt+}7d0t7AMSR@gvVJh$DXG2K_K?e3^Y zAXBYc+eKxXF=+PizQ%*o;*ZpcaT25p$OPOISgW6_tR*?WXo1ejkTq%E3s{o}KQ_() z>i2&OE*y6e>#1d|asd$BR6Di6l$qz?XSnUKh4iui(HVU%dg6gBuOiel?XD`B?Q}-J z3)pg4p*9U4Ax|flY8RV0n&`WQXr>+gL)6M`VSriZd3eQom^K-?r?XHnHsNxYXTB+w z-YSi{Nw!2r6a8tXO+dx1Rp53}rPs*429Qct#O?azbc1R@uDdjTnO2aF1uK3G5{T~7 z@dJdJblgL)GpmrVaMZnyy3bJ`$7qLCNq1E`>V8MP%26NhsGq||lrrSHYXaM0s|VPf zwz|jBUhSyYIO?_RM>hFMj`oS{fUSKp`a=b?3ScWI4 z9XB(&sFvEXF1cKlY{w;??&_uXiLxD=3dJS$M}Ll?oE8D)#HaknGJink2a%WbAkt~y z)v@krndy@lelkZ6JS*|M#P>;jzr-Jr_)`*pRpP&scq{b>J&P%a{vOJqe}lxwB)(nZ zcT4>k zzr=qo@n1;%6^Xwm@ed?Uw`=Nm3gzf`8s+GBfy9?f{7Q*$kocIyw@dtPi9amyLlS>h z;%`a(9f^M;aUC&2{dy@!ztbs)J#7+?Nc?h%Un}v1#J5U(kHo((@y8|p8;L(7@pmNt ziNrsZ_+*Mf^xHr=?3qJ3?CFsBN{L@3@r@GSD)E~n{zHjBD)Gl9{+z_$miTdre=2b= z78v#GryTvxp?Ji8O+UNPdf@ACocOuBRL4T*I2O2SM>u_1x?yok%aYdixzWa!d67kp zZLRYbH%7vXqm9wd)~?phdF{8m9Ha@z$ufb`RG3g{IzrU5ku0Wj+0Z~HF-W!- z^W65rdRh9ih%AFs{L+WwnUeL6L3I`1bcRtG+X(+UMLas^RKoVg6OJ0rQ}ubcIy3p%>EQLEZnf_q&i1T>LsciQ4re^w6`aY*TY8qf5%88em7(s`cLcoM zWq5S%TgTCjI|lhmCATc3kz0A+1+Q6=EV+|+1iS`IyDB<)C(e>L9(#L6DY4{EeVf7C zWocK%>rt?d!-X?zP&Hcen;pC~ctK0MD&Fbf?K(@|0r2F1rBSMQ?$mb-yi05hQMn%( z*6xsM`U`mNs$$8XKv}I_g6B+O>|;29e$SvgB&7g8zr<%8Rb)CB-$`jdAdZr!`m^|0 zc{40L6)VJhA0I618fY*&S>Q~uAygG+{$HAjJBJptj;E8y%9K2(=fRq1;hb@UG z;>~yP-mvg6)g|6?2k!&$NS^dzs(GTillQTOM}DMKj`z8RhavGqyaf8ixJvWOZ~#n| j?bfUS9^#Y*B{&tlzgY<=gTiib@B-gp>=tUUB&z-s2p%-g literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.d b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.d new file mode 100644 index 0000000..fb528ea --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.d @@ -0,0 +1,249 @@ +# FIXED + +i2c_ex1_master.obj: ../i2c_ex1_master.c +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f28x_project.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_typedefs.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +i2c_ex1_master.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h +i2c_ex1_master.obj: ../i2c_oled.h +i2c_ex1_master.obj: ../fonts.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/string.h +i2c_ex1_master.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/xlocale/_string.h + +../i2c_ex1_master.c: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f28x_project.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_typedefs.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + +../i2c_oled.h: + +../fonts.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/string.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/xlocale/_string.h: + diff --git a/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.map b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.map new file mode 100644 index 0000000..7be7815 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.map @@ -0,0 +1,1326 @@ +****************************************************************************** + TMS320C2000 Linker PC v22.6.0 +****************************************************************************** +>> Linked Fri Aug 9 12:18:59 2024 + +OUTPUT FILE NAME: +ENTRY POINT SYMBOL: "code_start" address: 00000000 + + +MEMORY CONFIGURATION + + name origin length used unused attr fill +---------------------- -------- --------- -------- -------- ---- -------- +PAGE 0: + BEGIN 00000000 00000002 00000002 00000000 RWIX + BOOT_RSVD 00000002 000001af 00000000 000001af RWIX + RAMM0 000001b1 0000024f 00000028 00000227 RWIX + RAMM1 00000400 000003f8 00000100 000002f8 RWIX + RAMLS0 00008000 00000800 0000059c 00000264 RWIX + RAMLS1 00008800 00000800 00000000 00000800 RWIX + RAMLS2 00009000 00000800 00000000 00000800 RWIX + RAMLS3 00009800 00000800 00000000 00000800 RWIX + RAMLS4 0000a000 00000800 00000000 00000800 RWIX + RAMLS5 0000a800 00000800 0000042e 000003d2 RWIX + RAMLS6 0000b000 00000800 00000500 00000300 RWIX + RAMLS7 0000b800 00000800 00000000 00000800 RWIX + RAMD0 0000c000 00000800 00000800 00000000 RWIX + RAMD1 0000c800 00000800 00000800 00000000 RWIX + RAMGS0 0000d000 00001000 00000000 00001000 RWIX + RAMGS1 0000e000 00001000 00000000 00001000 RWIX + RAMGS2 0000f000 00001000 00000000 00001000 RWIX + RAMGS3 00010000 00001000 00000000 00001000 RWIX + RAMGS4 00011000 00001000 00000000 00001000 RWIX + RAMGS5 00012000 00001000 00000000 00001000 RWIX + RAMGS6 00013000 00001000 00000000 00001000 RWIX + RAMGS7 00014000 00001000 00000000 00001000 RWIX + RAMGS8 00015000 00001000 00000000 00001000 RWIX + RAMGS9 00016000 00001000 00000000 00001000 RWIX + RAMGS10 00017000 00001000 00000000 00001000 RWIX + RAMGS11 00018000 00001000 00000000 00001000 RWIX + RAMGS12 00019000 00001000 00000000 00001000 RWIX + RAMGS13 0001a000 00001000 00000000 00001000 RWIX + RAMGS14 0001b000 00001000 00000000 00001000 RWIX + RAMGS15 0001c000 00000ff8 00000000 00000ff8 RWIX + CMTOCPURAM 00038000 00000800 00000000 00000800 RWIX + CPUTOCMRAM 00039000 00000800 00000000 00000800 RWIX + CPU1TOCPU2RAM 0003a000 00000800 00000000 00000800 RWIX + CPU2TOCPU1RAM 0003b000 00000800 00000000 00000800 RWIX + CANA_MSG_RAM 00049000 00000800 00000000 00000800 RWIX + CANB_MSG_RAM 0004b000 00000800 00000000 00000800 RWIX + FLASH0 00080000 00002000 00000000 00002000 RWIX + FLASH1 00082000 00002000 00000000 00002000 RWIX + FLASH2 00084000 00002000 00000000 00002000 RWIX + FLASH3 00086000 00002000 00000000 00002000 RWIX + FLASH4 00088000 00008000 00000000 00008000 RWIX + FLASH5 00090000 00008000 00000000 00008000 RWIX + FLASH6 00098000 00008000 00000000 00008000 RWIX + FLASH7 000a0000 00008000 00000000 00008000 RWIX + FLASH8 000a8000 00008000 00000000 00008000 RWIX + FLASH9 000b0000 00008000 00000000 00008000 RWIX + FLASH10 000b8000 00002000 00000000 00002000 RWIX + FLASH11 000ba000 00002000 00000000 00002000 RWIX + FLASH12 000bc000 00002000 00000000 00002000 RWIX + FLASH13 000be000 00002000 00000000 00002000 RWIX + RESET 003fffc0 00000002 00000000 00000002 RWIX + +PAGE 1: + ADCARESULT 00000b00 00000018 00000000 00000018 RWIX + ADCBRESULT 00000b20 00000018 00000000 00000018 RWIX + ADCCRESULT 00000b40 00000018 00000000 00000018 RWIX + ADCDRESULT 00000b60 00000018 00000000 00000018 RWIX + CPUTIMER0 00000c00 00000008 00000000 00000008 RWIX + CPUTIMER1 00000c08 00000008 00000000 00000008 RWIX + CPUTIMER2 00000c10 00000008 00000000 00000008 RWIX + PIECTRL 00000ce0 0000001a 0000001a 00000000 RWIX + PIEVECTTABLE 00000d00 00000200 000001c0 00000040 RWIX + DMA 00001000 00000200 00000000 00000200 RWIX + CLA1 00001400 00000080 00000000 00000080 RWIX + CLB1LOGICCFG 00003000 00000052 00000000 00000052 RWIX + CLB1LOGICCTRL 00003100 00000040 00000000 00000040 RWIX + CLB1DATAEXCH 00003180 00000080 00000000 00000080 RWIX + CLB2LOGICCFG 00003200 00000052 00000000 00000052 RWIX + CLB2LOGICCTRL 00003300 00000040 00000000 00000040 RWIX + CLB2DATAEXCH 00003380 00000080 00000000 00000080 RWIX + CLB3LOGICCFG 00003400 00000052 00000000 00000052 RWIX + CLB3LOGICCTRL 00003500 00000040 00000000 00000040 RWIX + CLB3DATAEXCH 00003580 00000080 00000000 00000080 RWIX + CLB4LOGICCFG 00003600 00000052 00000000 00000052 RWIX + CLB4LOGICCTRL 00003700 00000040 00000000 00000040 RWIX + CLB4DATAEXCH 00003780 00000080 00000000 00000080 RWIX + CLB5LOGICCFG 00003800 00000052 00000000 00000052 RWIX + CLB5LOGICCTRL 00003900 00000040 00000000 00000040 RWIX + CLB5DATAEXCH 00003980 00000080 00000000 00000080 RWIX + CLB6LOGICCFG 00003a00 00000052 00000000 00000052 RWIX + CLB6LOGICCTRL 00003b00 00000040 00000000 00000040 RWIX + CLB6DATAEXCH 00003b80 00000080 00000000 00000080 RWIX + CLB7LOGICCFG 00003c00 00000052 00000000 00000052 RWIX + CLB7LOGICCTRL 00003d00 00000040 00000000 00000040 RWIX + CLB7DATAEXCH 00003d80 00000080 00000000 00000080 RWIX + CLB8LOGICCFG 00003e00 00000052 00000000 00000052 RWIX + CLB8LOGICCTRL 00003f00 00000040 00000000 00000040 RWIX + CLB8DATAEXCH 00003f80 00000080 00000000 00000080 RWIX + EPWM1 00004000 00000100 00000000 00000100 RWIX + EPWM2 00004100 00000100 00000000 00000100 RWIX + EPWM3 00004200 00000100 00000000 00000100 RWIX + EPWM4 00004300 00000100 00000000 00000100 RWIX + EPWM5 00004400 00000100 00000000 00000100 RWIX + EPWM6 00004500 00000100 00000000 00000100 RWIX + EPWM7 00004600 00000100 00000000 00000100 RWIX + EPWM8 00004700 00000100 00000000 00000100 RWIX + EPWM9 00004800 00000100 00000000 00000100 RWIX + EPWM10 00004900 00000100 00000000 00000100 RWIX + EPWM11 00004a00 00000100 00000000 00000100 RWIX + EPWM12 00004b00 00000100 00000000 00000100 RWIX + EPWM13 00004c00 00000100 00000000 00000100 RWIX + EPWM14 00004d00 00000100 00000000 00000100 RWIX + EPWM15 00004e00 00000100 00000000 00000100 RWIX + EPWM16 00004f00 00000100 00000000 00000100 RWIX + EQEP1 00005100 00000040 00000000 00000040 RWIX + EQEP2 00005140 00000040 00000000 00000040 RWIX + EQEP3 00005180 00000040 00000000 00000040 RWIX + ECAP1 00005200 00000020 00000000 00000020 RWIX + ECAP2 00005240 00000020 00000000 00000020 RWIX + ECAP3 00005280 00000020 00000000 00000020 RWIX + ECAP4 000052c0 00000020 00000000 00000020 RWIX + ECAP5 00005300 00000020 00000000 00000020 RWIX + ECAP6 00005340 00000020 00000000 00000020 RWIX + HRCAP6 00005360 00000020 00000000 00000020 RWIX + ECAP7 00005380 00000020 00000000 00000020 RWIX + HRCAP7 000053a0 00000020 00000000 00000020 RWIX + DACA 00005c00 00000008 00000000 00000008 RWIX + DACB 00005c10 00000008 00000000 00000008 RWIX + DACC 00005c20 00000008 00000000 00000008 RWIX + CMPSS1 00005c80 00000020 00000000 00000020 RWIX + CMPSS2 00005ca0 00000020 00000000 00000020 RWIX + CMPSS3 00005cc0 00000020 00000000 00000020 RWIX + CMPSS4 00005ce0 00000020 00000000 00000020 RWIX + CMPSS5 00005d00 00000020 00000000 00000020 RWIX + CMPSS6 00005d20 00000020 00000000 00000020 RWIX + CMPSS7 00005d40 00000020 00000000 00000020 RWIX + CMPSS8 00005d60 00000020 00000000 00000020 RWIX + SDFM1 00005e00 00000080 00000000 00000080 RWIX + SDFM2 00005e80 00000080 00000000 00000080 RWIX + MCBSPA 00006000 00000024 00000000 00000024 RWIX + MCBSPB 00006040 00000024 00000000 00000024 RWIX + SPIA 00006100 00000010 00000000 00000010 RWIX + SPIB 00006110 00000010 00000000 00000010 RWIX + SPIC 00006120 00000010 00000000 00000010 RWIX + SPID 00006130 00000010 00000000 00000010 RWIX + BGCRCCPU 00006340 00000040 00000000 00000040 RWIX + BGCRCCLA1 00006380 00000040 00000000 00000040 RWIX + PMBUSA 00006400 00000020 00000000 00000020 RWIX + FSITXA 00006600 00000050 00000000 00000050 RWIX + FSIRXA 00006680 00000050 00000000 00000050 RWIX + FSITXB 00006700 00000050 00000000 00000050 RWIX + FSIRXB 00006780 00000050 00000000 00000050 RWIX + FSIRXC 00006880 00000050 00000000 00000050 RWIX + FSIRXD 00006980 00000050 00000000 00000050 RWIX + FSIRXE 00006a80 00000050 00000000 00000050 RWIX + FSIRXF 00006b80 00000050 00000000 00000050 RWIX + FSIRXG 00006c80 00000050 00000000 00000050 RWIX + FSIRXH 00006d80 00000050 00000000 00000050 RWIX + WD 00007000 0000002c 0000002b 00000001 RWIX + NMIINTRUPT 00007060 00000010 00000000 00000010 RWIX + XINT 00007070 0000000c 00000000 0000000c RWIX + SCIA 00007200 00000010 00000000 00000010 RWIX + SCIB 00007210 00000010 00000000 00000010 RWIX + SCIC 00007220 00000010 00000000 00000010 RWIX + SCID 00007230 00000010 00000000 00000010 RWIX + I2CA 00007300 00000022 00000022 00000000 RWIX + I2CB 00007340 00000022 00000000 00000022 RWIX + ADCA 00007400 00000080 00000000 00000080 RWIX + ADCB 00007480 00000080 00000000 00000080 RWIX + ADCC 00007500 00000080 00000000 00000080 RWIX + ADCD 00007580 00000080 00000000 00000080 RWIX + INPUTXBAR 00007900 00000020 00000000 00000020 RWIX + XBAR 00007920 00000020 00000000 00000020 RWIX + SYNCSOC 00007940 00000006 00000000 00000006 RWIX + CLBINPUTXBAR 00007960 00000020 00000000 00000020 RWIX + DMACLASRCSEL 00007980 0000001a 00000000 0000001a RWIX + EPWMXBAR 00007a00 00000040 00000000 00000040 RWIX + CLBXBAR 00007a40 00000040 00000000 00000040 RWIX + OUTPUTXBAR 00007a80 00000040 00000000 00000040 RWIX + CLBOUTPUTXBAR 00007bc0 00000040 00000000 00000040 RWIX + GPIOCTRL 00007c00 00000200 00000180 00000080 RWIX + GPIODATA 00007f00 00000040 00000030 00000010 RWIX + GPIODATAREAD 00007f80 00000010 00000000 00000010 RWIX + EMIF1 00047000 00000070 00000000 00000070 RWIX + EMIF2 00047800 00000070 00000000 00000070 RWIX + CANA 00048000 00000200 00000000 00000200 RWIX + CANB 0004a000 00000200 00000000 00000200 RWIX + ESCSS 00057e00 00000024 00000000 00000024 RWIX + ESCSSCONFIG 00057f00 00000016 00000000 00000016 RWIX + MCANASS 0005c400 0000002c 00000000 0000002c RWIX + MCANA 0005c600 00000100 00000000 00000100 RWIX + MCANAERR 0005c800 00000210 00000000 00000210 RWIX + CPU1TOCPU2IPC 0005ce00 00000026 00000000 00000026 RWIX + CPU1TOCMIPC 0005ce40 00000026 00000000 00000026 RWIX + DEVCFG 0005d000 000001a0 000001a0 00000000 RWIX + CLKCFG 0005d200 00000100 0000003a 000000c6 RWIX + CPUSYS 0005d300 000000a0 0000009c 00000004 RWIX + SYSSTATUS 0005d400 00000100 00000000 00000100 RWIX + SYSPERIPHAC 0005d500 00000200 00000000 00000200 RWIX + ANALOGSUBSYS 0005d700 00000100 0000003e 000000c2 RWIX + CMCONF 0005dc00 00000400 00000000 00000400 RWIX + DCC0 0005e700 00000038 0000002c 0000000c RWIX + DCC1 0005e740 00000038 0000002c 0000000c RWIX + DCC2 0005e780 00000038 0000002c 0000000c RWIX + ERADGLOBAL 0005e800 00000014 00000000 00000014 RWIX + ERADHWBP1 0005e900 00000008 00000000 00000008 RWIX + ERADHWBP2 0005e908 00000008 00000000 00000008 RWIX + ERADHWBP3 0005e910 00000008 00000000 00000008 RWIX + ERADHWBP4 0005e918 00000008 00000000 00000008 RWIX + ERADHWBP5 0005e920 00000008 00000000 00000008 RWIX + ERADHWBP6 0005e928 00000008 00000000 00000008 RWIX + ERADHWBP7 0005e930 00000008 00000000 00000008 RWIX + ERADHWBP8 0005e938 00000008 00000000 00000008 RWIX + ERADCOUNTER1 0005e980 00000010 00000000 00000010 RWIX + ERADCOUNTER2 0005e990 00000010 00000000 00000010 RWIX + ERADCOUNTER3 0005e9a0 00000010 00000000 00000010 RWIX + ERADCOUNTER4 0005e9b0 00000010 00000000 00000010 RWIX + ERADCRCGLOBAL 0005ea00 00000010 00000000 00000010 RWIX + ERADCRC1 0005ea10 00000010 00000000 00000010 RWIX + ERADCRC2 0005ea20 00000010 00000000 00000010 RWIX + ERADCRC3 0005ea30 00000010 00000000 00000010 RWIX + ERADCRC4 0005ea40 00000010 00000000 00000010 RWIX + ERADCRC5 0005ea50 00000010 00000000 00000010 RWIX + ERADCRC6 0005ea60 00000010 00000000 00000010 RWIX + ERADCRC7 0005ea70 00000010 00000000 00000010 RWIX + ERADCRC8 0005ea80 00000010 00000000 00000010 RWIX + DCSMZ1 0005f000 0000003e 00000000 0000003e RWIX + DCSMZ2 0005f080 0000003e 00000000 0000003e RWIX + DCSMCOMMON 0005f0c0 00000020 00000000 00000020 RWIX + MEMCFG 0005f400 000000c0 00000000 000000c0 RWIX + EMIF1CONFIG 0005f4c0 00000020 00000000 00000020 RWIX + EMIF2CONFIG 0005f4e0 00000020 00000000 00000020 RWIX + ACCESSPROTECTION 0005f500 00000040 00000000 00000040 RWIX + MEMORYERROR 0005f540 00000040 00000000 00000040 RWIX + ROMWAITSTATE 0005f580 00000008 00000000 00000008 RWIX + ROMPREFETCH 0005f588 00000008 00000000 00000008 RWIX + TESTERROR 0005f590 00000010 00000000 00000010 RWIX + FLASH0CTRL 0005f800 00000182 00000000 00000182 RWIX + FLASH0ECC 0005fb00 00000028 00000000 00000028 RWIX + DCSMZ1OTP 00078000 00000020 00000000 00000020 RWIX + DCSMZ2OTP 00078200 00000020 00000000 00000020 RWIX + + +SECTION ALLOCATION MAP + + output attributes/ +section page origin length input sections +-------- ---- ---------- ---------- ---------------- +codestart +* 0 00000000 00000002 + 00000000 00000002 f2838x_codestartbranch.obj (codestart) + +.cinit 0 000001b8 00000024 + 000001b8 00000008 (.cinit..data.load) [load image, compression = lzss] + 000001c0 00000006 (__TI_handler_table) + 000001c6 00000004 (.cinit..bss.load) [load image, compression = zero_init] + 000001ca 00000004 (.cinit.PieVectTableFile.load) [load image, compression = zero_init] + 000001ce 00000002 --HOLE-- [fill = 0] + 000001d0 0000000c (__TI_cinit_table) + +.reset 0 003fffc0 00000000 DSECT + +.stack 0 00000400 00000100 UNINITIALIZED + 00000400 00000100 --HOLE-- + +.bss 0 0000a800 00000424 UNINITIALIZED + 0000a800 00000400 i2c_oled.obj (.bss:SSD1306_Buffer) + 0000ac00 00000010 i2c_oled.obj (.bss:I2C_RXdata) + 0000ac10 00000010 i2c_oled.obj (.bss:I2C_TXdata) + 0000ac20 00000004 i2c_oled.obj (.bss) + +.init_array +* 0 000001b1 00000000 UNINITIALIZED + +.data 0 0000ac24 0000000a UNINITIALIZED + 0000ac24 00000006 rts2800_fpu64_eabi.lib : exit.c.obj (.data) + 0000ac2a 00000002 : _lock.c.obj (.data:_lock) + 0000ac2c 00000002 : _lock.c.obj (.data:_unlock) + +.const 0 0000b000 00000500 + 0000b000 00000340 i2c_ex1_master.obj (.const:.string:$P$T0$1) + 0000b340 000001c0 f2838x_pievect.obj (.const) + +.TI.ramfunc +* 0 000001b1 00000004 + 000001b1 00000004 f2838x_usdelay.obj (.TI.ramfunc) + +PieVectTableFile +* 1 00000d00 000001c0 UNINITIALIZED + 00000d00 000001c0 f2838x_globalvariabledefs.obj (PieVectTableFile) + +EmuKeyVar +* 1 00000d00 00000000 UNINITIALIZED + +EmuBModeVar +* 1 00000d00 00000000 UNINITIALIZED + +EmuBootPinsVar +* 1 00000d00 00000000 UNINITIALIZED + +FlashCallbackVar +* 1 00000d00 00000000 UNINITIALIZED + +FlashScalingVar +* 1 00000d00 00000000 UNINITIALIZED + +AnalogSubsysRegsFile +* 1 0005d700 0000003e UNINITIALIZED + 0005d700 0000003e f2838x_globalvariabledefs.obj (AnalogSubsysRegsFile) + +ClkCfgRegsFile +* 1 0005d200 0000003a UNINITIALIZED + 0005d200 0000003a f2838x_globalvariabledefs.obj (ClkCfgRegsFile) + +CpuSysRegsFile +* 1 0005d300 0000009c UNINITIALIZED + 0005d300 0000009c f2838x_globalvariabledefs.obj (CpuSysRegsFile) + +Dcc0RegsFile +* 1 0005e700 0000002c UNINITIALIZED + 0005e700 0000002c f2838x_globalvariabledefs.obj (Dcc0RegsFile) + +Dcc1RegsFile +* 1 0005e740 0000002c UNINITIALIZED + 0005e740 0000002c f2838x_globalvariabledefs.obj (Dcc1RegsFile) + +Dcc2RegsFile +* 1 0005e780 0000002c UNINITIALIZED + 0005e780 0000002c f2838x_globalvariabledefs.obj (Dcc2RegsFile) + +DevCfgRegsFile +* 1 0005d000 000001a0 UNINITIALIZED + 0005d000 000001a0 f2838x_globalvariabledefs.obj (DevCfgRegsFile) + +GpioCtrlRegsFile +* 1 00007c00 00000180 UNINITIALIZED + 00007c00 00000180 f2838x_globalvariabledefs.obj (GpioCtrlRegsFile) + +GpioDataRegsFile +* 1 00007f00 00000030 UNINITIALIZED + 00007f00 00000030 f2838x_globalvariabledefs.obj (GpioDataRegsFile) + +I2caRegsFile +* 1 00007300 00000022 UNINITIALIZED + 00007300 00000022 f2838x_globalvariabledefs.obj (I2caRegsFile) + +PieCtrlRegsFile +* 1 00000ce0 0000001a UNINITIALIZED + 00000ce0 0000001a f2838x_globalvariabledefs.obj (PieCtrlRegsFile) + +WdRegsFile +* 1 00007000 0000002b UNINITIALIZED + 00007000 0000002b f2838x_globalvariabledefs.obj (WdRegsFile) + +.text.1 0 00008000 0000059c + 00008000 0000000a f2838x_defaultisr.obj (.text:ECAP6_2_ISR) + 0000800a 0000000a f2838x_defaultisr.obj (.text:ECAP6_ISR) + 00008014 0000000a f2838x_defaultisr.obj (.text:ECAP7_2_ISR) + 0000801e 0000000a f2838x_defaultisr.obj (.text:ECAP7_ISR) + 00008028 0000000a f2838x_defaultisr.obj (.text:ECATRST_ISR) + 00008032 0000000a f2838x_defaultisr.obj (.text:ECATSYNC0_ISR) + 0000803c 0000000a f2838x_defaultisr.obj (.text:ECATSYNC1_ISR) + 00008046 0000000a f2838x_defaultisr.obj (.text:ECAT_ISR) + 00008050 0000000a f2838x_defaultisr.obj (.text:EMU_ISR) + 0000805a 0000000a f2838x_defaultisr.obj (.text:EPWM10_ISR) + 00008064 0000000a f2838x_defaultisr.obj (.text:EPWM10_TZ_ISR) + 0000806e 0000000a f2838x_defaultisr.obj (.text:EPWM11_ISR) + 00008078 0000000a f2838x_defaultisr.obj (.text:EPWM11_TZ_ISR) + 00008082 0000000a f2838x_defaultisr.obj (.text:EPWM12_ISR) + 0000808c 0000000a f2838x_defaultisr.obj (.text:EPWM12_TZ_ISR) + 00008096 0000000a f2838x_defaultisr.obj (.text:EPWM13_ISR) + 000080a0 0000000a f2838x_defaultisr.obj (.text:EPWM13_TZ_ISR) + 000080aa 0000000a f2838x_defaultisr.obj (.text:EPWM14_ISR) + 000080b4 0000000a f2838x_defaultisr.obj (.text:EPWM14_TZ_ISR) + 000080be 0000000a f2838x_defaultisr.obj (.text:EPWM15_ISR) + 000080c8 0000000a f2838x_defaultisr.obj (.text:EPWM15_TZ_ISR) + 000080d2 0000000a f2838x_defaultisr.obj (.text:EPWM16_ISR) + 000080dc 0000000a f2838x_defaultisr.obj (.text:EPWM16_TZ_ISR) + 000080e6 0000000a f2838x_defaultisr.obj (.text:EPWM1_ISR) + 000080f0 0000000a f2838x_defaultisr.obj (.text:EPWM1_TZ_ISR) + 000080fa 0000000a f2838x_defaultisr.obj (.text:EPWM2_ISR) + 00008104 0000000a f2838x_defaultisr.obj (.text:EPWM2_TZ_ISR) + 0000810e 0000000a f2838x_defaultisr.obj (.text:EPWM3_ISR) + 00008118 0000000a f2838x_defaultisr.obj (.text:EPWM3_TZ_ISR) + 00008122 0000000a f2838x_defaultisr.obj (.text:EPWM4_ISR) + 0000812c 0000000a f2838x_defaultisr.obj (.text:EPWM4_TZ_ISR) + 00008136 0000000a f2838x_defaultisr.obj (.text:EPWM5_ISR) + 00008140 0000000a f2838x_defaultisr.obj (.text:EPWM5_TZ_ISR) + 0000814a 0000000a f2838x_defaultisr.obj (.text:EPWM6_ISR) + 00008154 0000000a f2838x_defaultisr.obj (.text:EPWM6_TZ_ISR) + 0000815e 0000000a f2838x_defaultisr.obj (.text:EPWM7_ISR) + 00008168 0000000a f2838x_defaultisr.obj (.text:EPWM7_TZ_ISR) + 00008172 0000000a f2838x_defaultisr.obj (.text:EPWM8_ISR) + 0000817c 0000000a f2838x_defaultisr.obj (.text:EPWM8_TZ_ISR) + 00008186 0000000a f2838x_defaultisr.obj (.text:EPWM9_ISR) + 00008190 0000000a f2838x_defaultisr.obj (.text:EPWM9_TZ_ISR) + 0000819a 0000000a f2838x_defaultisr.obj (.text:EQEP1_ISR) + 000081a4 0000000a f2838x_defaultisr.obj (.text:EQEP2_ISR) + 000081ae 0000000a f2838x_defaultisr.obj (.text:EQEP3_ISR) + 000081b8 0000000a f2838x_defaultisr.obj (.text:FMC_ISR) + 000081c2 0000000a f2838x_defaultisr.obj (.text:FPU_OFLOW_ISR) + 000081cc 0000000a f2838x_defaultisr.obj (.text:FPU_UFLOW_ISR) + 000081d6 0000000a f2838x_defaultisr.obj (.text:FSIRXA1_ISR) + 000081e0 0000000a f2838x_defaultisr.obj (.text:FSIRXA2_ISR) + 000081ea 0000000a f2838x_defaultisr.obj (.text:FSIRXB1_ISR) + 000081f4 0000000a f2838x_defaultisr.obj (.text:FSIRXB2_ISR) + 000081fe 0000000a f2838x_defaultisr.obj (.text:FSIRXC1_ISR) + 00008208 0000000a f2838x_defaultisr.obj (.text:FSIRXC2_ISR) + 00008212 0000000a f2838x_defaultisr.obj (.text:FSIRXD1_ISR) + 0000821c 0000000a f2838x_defaultisr.obj (.text:FSIRXD2_ISR) + 00008226 0000000a f2838x_defaultisr.obj (.text:FSIRXE1_ISR) + 00008230 0000000a f2838x_defaultisr.obj (.text:FSIRXE2_ISR) + 0000823a 0000000a f2838x_defaultisr.obj (.text:FSIRXF1_ISR) + 00008244 0000000a f2838x_defaultisr.obj (.text:FSIRXF2_ISR) + 0000824e 0000000a f2838x_defaultisr.obj (.text:FSIRXG1_ISR) + 00008258 0000000a f2838x_defaultisr.obj (.text:FSIRXG2_ISR) + 00008262 0000000a f2838x_defaultisr.obj (.text:FSIRXH1_ISR) + 0000826c 0000000a f2838x_defaultisr.obj (.text:FSIRXH2_ISR) + 00008276 0000000a f2838x_defaultisr.obj (.text:FSITXA1_ISR) + 00008280 0000000a f2838x_defaultisr.obj (.text:FSITXA2_ISR) + 0000828a 0000000a f2838x_defaultisr.obj (.text:FSITXB1_ISR) + 00008294 0000000a f2838x_defaultisr.obj (.text:FSITXB2_ISR) + 0000829e 0000000a f2838x_defaultisr.obj (.text:I2CA_FIFO_ISR) + 000082a8 0000000a f2838x_defaultisr.obj (.text:I2CA_HIGH_ISR) + 000082b2 0000000a f2838x_defaultisr.obj (.text:I2CA_ISR) + 000082bc 0000000a f2838x_defaultisr.obj (.text:I2CB_FIFO_ISR) + 000082c6 0000000a f2838x_defaultisr.obj (.text:I2CB_ISR) + 000082d0 0000000a f2838x_defaultisr.obj (.text:ILLEGAL_ISR) + 000082da 0000000a f2838x_defaultisr.obj (.text:MCANA_0_ISR) + 000082e4 0000000a f2838x_defaultisr.obj (.text:MCANA_1_ISR) + 000082ee 0000000a f2838x_defaultisr.obj (.text:MCANA_ECC_ISR) + 000082f8 0000000a f2838x_defaultisr.obj (.text:MCANA_WAKE_ISR) + 00008302 0000000a f2838x_defaultisr.obj (.text:MCBSPA_RX_ISR) + 0000830c 0000000a f2838x_defaultisr.obj (.text:MCBSPA_TX_ISR) + 00008316 0000000a f2838x_defaultisr.obj (.text:MCBSPB_RX_ISR) + 00008320 0000000a f2838x_defaultisr.obj (.text:MCBSPB_TX_ISR) + 0000832a 0000000a f2838x_defaultisr.obj (.text:MPOST_ISR) + 00008334 0000000a f2838x_defaultisr.obj (.text:NMI_ISR) + 0000833e 0000000a f2838x_defaultisr.obj (.text:NOTUSED_ISR) + 00008348 0000000a f2838x_defaultisr.obj (.text:PIE_RESERVED_ISR) + 00008352 0000000a f2838x_defaultisr.obj (.text:PMBUSA_ISR) + 0000835c 0000000a f2838x_defaultisr.obj (.text:RTOS_ISR) + 00008366 0000000a f2838x_defaultisr.obj (.text:SCIA_RX_ISR) + 00008370 0000000a f2838x_defaultisr.obj (.text:SCIA_TX_ISR) + 0000837a 0000000a f2838x_defaultisr.obj (.text:SCIB_RX_ISR) + 00008384 0000000a f2838x_defaultisr.obj (.text:SCIB_TX_ISR) + 0000838e 0000000a f2838x_defaultisr.obj (.text:SCIC_RX_ISR) + 00008398 0000000a f2838x_defaultisr.obj (.text:SCIC_TX_ISR) + 000083a2 0000000a f2838x_defaultisr.obj (.text:SCID_RX_ISR) + 000083ac 0000000a f2838x_defaultisr.obj (.text:SCID_TX_ISR) + 000083b6 0000000a f2838x_defaultisr.obj (.text:SDFM1DR1_ISR) + 000083c0 0000000a f2838x_defaultisr.obj (.text:SDFM1DR2_ISR) + 000083ca 0000000a f2838x_defaultisr.obj (.text:SDFM1DR3_ISR) + 000083d4 0000000a f2838x_defaultisr.obj (.text:SDFM1DR4_ISR) + 000083de 0000000a f2838x_defaultisr.obj (.text:SDFM1_ISR) + 000083e8 0000000a f2838x_defaultisr.obj (.text:SDFM2DR1_ISR) + 000083f2 0000000a f2838x_defaultisr.obj (.text:SDFM2DR2_ISR) + 000083fc 0000000a f2838x_defaultisr.obj (.text:SDFM2DR3_ISR) + 00008406 0000000a f2838x_defaultisr.obj (.text:SDFM2DR4_ISR) + 00008410 0000000a f2838x_defaultisr.obj (.text:SDFM2_ISR) + 0000841a 0000000a f2838x_defaultisr.obj (.text:SPIA_RX_ISR) + 00008424 0000000a f2838x_defaultisr.obj (.text:SPIA_TX_ISR) + 0000842e 0000000a f2838x_defaultisr.obj (.text:SPIB_RX_ISR) + 00008438 0000000a f2838x_defaultisr.obj (.text:SPIB_TX_ISR) + 00008442 0000000a f2838x_defaultisr.obj (.text:SPIC_RX_ISR) + 0000844c 0000000a f2838x_defaultisr.obj (.text:SPIC_TX_ISR) + 00008456 0000000a f2838x_defaultisr.obj (.text:SPID_RX_ISR) + 00008460 0000000a f2838x_defaultisr.obj (.text:SPID_TX_ISR) + 0000846a 0000000a i2c_oled.obj (.text:SSD1306_GotoXY) + 00008474 0000000a f2838x_defaultisr.obj (.text:SYS_ERR_ISR) + 0000847e 0000000a f2838x_sysctrl.obj (.text:SysIntOsc1Sel) + 00008488 0000000a f2838x_defaultisr.obj (.text:TIMER0_ISR) + 00008492 0000000a f2838x_defaultisr.obj (.text:TIMER1_ISR) + 0000849c 0000000a f2838x_defaultisr.obj (.text:TIMER2_ISR) + 000084a6 0000000a f2838x_defaultisr.obj (.text:USBA_ISR) + 000084b0 0000000a f2838x_defaultisr.obj (.text:USER10_ISR) + 000084ba 0000000a f2838x_defaultisr.obj (.text:USER11_ISR) + 000084c4 0000000a f2838x_defaultisr.obj (.text:USER12_ISR) + 000084ce 0000000a f2838x_defaultisr.obj (.text:USER1_ISR) + 000084d8 0000000a f2838x_defaultisr.obj (.text:USER2_ISR) + 000084e2 0000000a f2838x_defaultisr.obj (.text:USER3_ISR) + 000084ec 0000000a f2838x_defaultisr.obj (.text:USER4_ISR) + 000084f6 0000000a f2838x_defaultisr.obj (.text:USER5_ISR) + 00008500 0000000a f2838x_defaultisr.obj (.text:USER6_ISR) + 0000850a 0000000a f2838x_defaultisr.obj (.text:USER7_ISR) + 00008514 0000000a f2838x_defaultisr.obj (.text:USER8_ISR) + 0000851e 0000000a f2838x_defaultisr.obj (.text:USER9_ISR) + 00008528 0000000a f2838x_defaultisr.obj (.text:WAKE_ISR) + 00008532 0000000a f2838x_defaultisr.obj (.text:XINT1_ISR) + 0000853c 0000000a f2838x_defaultisr.obj (.text:XINT2_ISR) + 00008546 0000000a f2838x_defaultisr.obj (.text:XINT3_ISR) + 00008550 0000000a f2838x_defaultisr.obj (.text:XINT4_ISR) + 0000855a 0000000a f2838x_defaultisr.obj (.text:XINT5_ISR) + 00008564 00000009 rts2800_fpu64_eabi.lib : _lock.c.obj (.text) + 0000856d 00000008 f2838x_sysctrl.obj (.text:AuxIntOsc2Sel) + 00008575 00000008 f2838x_sysctrl.obj (.text:SysIntOsc2Sel) + 0000857d 00000008 rts2800_fpu64_eabi.lib : copy_decompress_none.c.obj (.text:decompress:none) + 00008585 00000008 f2838x_codestartbranch.obj (.text) + 0000858d 00000007 rts2800_fpu64_eabi.lib : memset.c.obj (.text) + 00008594 00000006 : copy_zero_init.c.obj (.text:decompress:ZI) + 0000859a 00000002 : pre_init.c.obj (.text) + +.text.2 0 0000c000 00000800 + 0000c000 0000014f i2c_oled.obj (.text:SSD1306_Init) + 0000c14f 000000ff f2838x_gpio.obj (.text:GPIO_SetupPinMux) + 0000c24e 000000ed f2838x_gpio.obj (.text:GPIO_SetupPinOptions) + 0000c33b 000000e6 f2838x_sysctrl.obj (.text:InitSysPll) + 0000c421 000000d8 rts2800_fpu64_eabi.lib : s_ceil.c.obj (.text) + 0000c4f9 000000b7 f2838x_sysctrl.obj (.text:VerifyXTAL) + 0000c5b0 000000b5 f2838x_sysctrl.obj (.text:IsPLLValid) + 0000c665 000000b2 f2838x_sysctrl.obj (.text:InitPeripheralClocks) + 0000c717 000000ac f2838x_sysctrl.obj (.text:InitAuxPll) + 0000c7c3 0000002e i2c_oled.obj (.text:I2CWrite) + 0000c7f1 0000000f i2c_oled.obj (.text:SSD1306_Fill) + +.text.3 0 0000c800 00000800 + 0000c800 00000095 f2838x_sysctrl.obj (.text:ComputeCntrSeedValue) + 0000c895 00000088 rts2800_fpu64_eabi.lib : fs_div28.asm.obj (.text) + 0000c91d 00000061 i2c_ex1_master.obj (.text:main) + 0000c97e 00000061 i2c_oled.obj (.text:ssd1306_DrawBitmap) + 0000c9df 0000005a i2c_oled.obj (.text:SSD1306_DrawPixel) + 0000ca39 00000052 f2838x_sysctrl.obj (.text:InitSysCtrl) + 0000ca8b 00000051 f2838x_gpio.obj (.text:InitGpio) + 0000cadc 00000044 i2c_oled.obj (.text:SSD1306_UpdateScreen) + 0000cb20 0000002e rts2800_fpu64_eabi.lib : copy_decompress_lzss.c.obj (.text:decompress:lzss) + 0000cb4e 0000002b : autoinit.c.obj (.text:__TI_auto_init_nobinit_nopinit) + 0000cb79 00000029 : exit.c.obj (.text) + 0000cba2 00000026 f2838x_pievect.obj (.text:InitPieVectTable) + 0000cbc8 00000026 i2c_oled.obj (.text:SSD1306_setPosition) + 0000cbee 00000024 i2c_oled.obj (.text:I2CMaster_Init) + 0000cc12 00000023 f2838x_sysctrl.obj (.text:SysXtalOscSel) + 0000cc35 0000001f f2838x_piectrl.obj (.text:InitPieCtrl) + 0000cc54 0000001d rts2800_fpu64_eabi.lib : memcpy.c.obj (.text) + 0000cc71 0000001b f2838x_sysctrl.obj (.text:PollX1Counter) + 0000cc8c 00000019 f2838x_gpio.obj (.text:GPIO_EnableUnbondedIOPullupsFor176Pin) + 0000cca5 00000019 rts2800_fpu64_eabi.lib : boot28.asm.obj (.text) + 0000ccbe 00000018 : ll_aox28.asm.obj (.text) + 0000ccd6 00000016 f2838x_sysctrl.obj (.text:SysXtalOscSESel) + 0000ccec 00000011 f2838x_sysctrl.obj (.text:AuxXtalOscSESel) + 0000ccfd 00000011 f2838x_sysctrl.obj (.text:AuxXtalOscSel) + 0000cd0e 0000000e f2838x_sysctrl.obj (.text:DisableDog) + 0000cd1c 0000000e f2838x_gpio.obj (.text:GPIO_EnableUnbondedIOPullups) + 0000cd2a 0000000d f2838x_defaultisr.obj (.text:EMPTY_ISR) + 0000cd37 0000000c rts2800_fpu64_eabi.lib : args_main.c.obj (.text) + 0000cd43 0000000a f2838x_defaultisr.obj (.text:ADCA1_ISR) + 0000cd4d 0000000a f2838x_defaultisr.obj (.text:ADCA2_ISR) + 0000cd57 0000000a f2838x_defaultisr.obj (.text:ADCA3_ISR) + 0000cd61 0000000a f2838x_defaultisr.obj (.text:ADCA4_ISR) + 0000cd6b 0000000a f2838x_defaultisr.obj (.text:ADCA_EVT_ISR) + 0000cd75 0000000a f2838x_defaultisr.obj (.text:ADCB1_ISR) + 0000cd7f 0000000a f2838x_defaultisr.obj (.text:ADCB2_ISR) + 0000cd89 0000000a f2838x_defaultisr.obj (.text:ADCB3_ISR) + 0000cd93 0000000a f2838x_defaultisr.obj (.text:ADCB4_ISR) + 0000cd9d 0000000a f2838x_defaultisr.obj (.text:ADCB_EVT_ISR) + 0000cda7 0000000a f2838x_defaultisr.obj (.text:ADCC1_ISR) + 0000cdb1 0000000a f2838x_defaultisr.obj (.text:ADCC2_ISR) + 0000cdbb 0000000a f2838x_defaultisr.obj (.text:ADCC3_ISR) + 0000cdc5 0000000a f2838x_defaultisr.obj (.text:ADCC4_ISR) + 0000cdcf 0000000a f2838x_defaultisr.obj (.text:ADCC_EVT_ISR) + 0000cdd9 0000000a f2838x_defaultisr.obj (.text:ADCD1_ISR) + 0000cde3 0000000a f2838x_defaultisr.obj (.text:ADCD2_ISR) + 0000cded 0000000a f2838x_defaultisr.obj (.text:ADCD3_ISR) + 0000cdf7 0000000a f2838x_defaultisr.obj (.text:ADCD4_ISR) + 0000ce01 0000000a f2838x_defaultisr.obj (.text:ADCD_EVT_ISR) + 0000ce0b 0000000a f2838x_sysctrl.obj (.text:AuxAuxClkSel) + 0000ce15 0000000a f2838x_defaultisr.obj (.text:CANA0_ISR) + 0000ce1f 0000000a f2838x_defaultisr.obj (.text:CANA1_ISR) + 0000ce29 0000000a f2838x_defaultisr.obj (.text:CANB0_ISR) + 0000ce33 0000000a f2838x_defaultisr.obj (.text:CANB1_ISR) + 0000ce3d 0000000a f2838x_defaultisr.obj (.text:CIPC0_ISR) + 0000ce47 0000000a f2838x_defaultisr.obj (.text:CIPC1_ISR) + 0000ce51 0000000a f2838x_defaultisr.obj (.text:CIPC2_ISR) + 0000ce5b 0000000a f2838x_defaultisr.obj (.text:CIPC3_ISR) + 0000ce65 0000000a f2838x_defaultisr.obj (.text:CLA1CRC_ISR) + 0000ce6f 0000000a f2838x_defaultisr.obj (.text:CLA1_1_ISR) + 0000ce79 0000000a f2838x_defaultisr.obj (.text:CLA1_2_ISR) + 0000ce83 0000000a f2838x_defaultisr.obj (.text:CLA1_3_ISR) + 0000ce8d 0000000a f2838x_defaultisr.obj (.text:CLA1_4_ISR) + 0000ce97 0000000a f2838x_defaultisr.obj (.text:CLA1_5_ISR) + 0000cea1 0000000a f2838x_defaultisr.obj (.text:CLA1_6_ISR) + 0000ceab 0000000a f2838x_defaultisr.obj (.text:CLA1_7_ISR) + 0000ceb5 0000000a f2838x_defaultisr.obj (.text:CLA1_8_ISR) + 0000cebf 0000000a f2838x_defaultisr.obj (.text:CLA_OVERFLOW_ISR) + 0000cec9 0000000a f2838x_defaultisr.obj (.text:CLA_UNDERFLOW_ISR) + 0000ced3 0000000a f2838x_defaultisr.obj (.text:CLB1_ISR) + 0000cedd 0000000a f2838x_defaultisr.obj (.text:CLB2_ISR) + 0000cee7 0000000a f2838x_defaultisr.obj (.text:CLB3_ISR) + 0000cef1 0000000a f2838x_defaultisr.obj (.text:CLB4_ISR) + 0000cefb 0000000a f2838x_defaultisr.obj (.text:CLB5_ISR) + 0000cf05 0000000a f2838x_defaultisr.obj (.text:CLB6_ISR) + 0000cf0f 0000000a f2838x_defaultisr.obj (.text:CLB7_ISR) + 0000cf19 0000000a f2838x_defaultisr.obj (.text:CLB8_ISR) + 0000cf23 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC0_ISR) + 0000cf2d 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC1_ISR) + 0000cf37 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC2_ISR) + 0000cf41 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC3_ISR) + 0000cf4b 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC4_ISR) + 0000cf55 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC5_ISR) + 0000cf5f 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC6_ISR) + 0000cf69 0000000a f2838x_defaultisr.obj (.text:CMTOCPUXIPC7_ISR) + 0000cf73 0000000a f2838x_defaultisr.obj (.text:CM_STATUS_ISR) + 0000cf7d 0000000a f2838x_defaultisr.obj (.text:CPUCRC_ISR) + 0000cf87 0000000a f2838x_defaultisr.obj (.text:DATALOG_ISR) + 0000cf91 0000000a f2838x_defaultisr.obj (.text:DMA_CH1_ISR) + 0000cf9b 0000000a f2838x_defaultisr.obj (.text:DMA_CH2_ISR) + 0000cfa5 0000000a f2838x_defaultisr.obj (.text:DMA_CH3_ISR) + 0000cfaf 0000000a f2838x_defaultisr.obj (.text:DMA_CH4_ISR) + 0000cfb9 0000000a f2838x_defaultisr.obj (.text:DMA_CH5_ISR) + 0000cfc3 0000000a f2838x_defaultisr.obj (.text:DMA_CH6_ISR) + 0000cfcd 0000000a f2838x_defaultisr.obj (.text:ECAP1_ISR) + 0000cfd7 0000000a f2838x_defaultisr.obj (.text:ECAP2_ISR) + 0000cfe1 0000000a f2838x_defaultisr.obj (.text:ECAP3_ISR) + 0000cfeb 0000000a f2838x_defaultisr.obj (.text:ECAP4_ISR) + 0000cff5 0000000a f2838x_defaultisr.obj (.text:ECAP5_ISR) + 0000cfff 00000001 rts2800_fpu64_eabi.lib : startup.c.obj (.text) + +MODULE SUMMARY + + Module code ro data rw data + ------ ---- ------- ------- + .\ + f2838x_defaultisr.obj 2063 0 0 + f2838x_globalvariabledefs.obj 0 0 1807 + i2c_oled.obj 735 0 1060 + f2838x_sysctrl.obj 1343 0 0 + i2c_ex1_master.obj 97 832 0 + f2838x_gpio.obj 612 0 0 + f2838x_pievect.obj 38 448 0 + f2838x_piectrl.obj 31 0 0 + f2838x_codestartbranch.obj 10 0 0 + f2838x_usdelay.obj 4 0 0 + +--+-------------------------------+------+---------+---------+ + Total: 4933 1280 2867 + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\rts2800_fpu64_eabi.lib + s_ceil.c.obj 216 0 0 + fs_div28.asm.obj 136 0 0 + exit.c.obj 41 0 6 + copy_decompress_lzss.c.obj 46 0 0 + autoinit.c.obj 43 0 0 + memcpy.c.obj 29 0 0 + boot28.asm.obj 25 0 0 + ll_aox28.asm.obj 24 0 0 + _lock.c.obj 9 0 4 + args_main.c.obj 12 0 0 + copy_decompress_none.c.obj 8 0 0 + memset.c.obj 7 0 0 + copy_zero_init.c.obj 6 0 0 + pre_init.c.obj 2 0 0 + startup.c.obj 1 0 0 + +--+-------------------------------+------+---------+---------+ + Total: 605 0 10 + + Stack: 0 0 256 + Linker Generated: 0 34 0 + +--+-------------------------------+------+---------+---------+ + Grand Total: 5538 1314 3133 + + +LINKER GENERATED COPY TABLES + +__TI_cinit_table @ 000001d0 records: 3, size/record: 4, table size: 12 + .data: load addr=000001b8, load size=00000008 bytes, run addr=0000ac24, run size=0000000a bytes, compression=lzss + .bss: load addr=000001c6, load size=00000004 bytes, run addr=0000a800, run size=00000424 bytes, compression=zero_init + PieVectTableFile: load addr=000001ca, load size=00000004 bytes, run addr=00000d00, run size=000001c0 bytes, compression=zero_init + + +LINKER GENERATED HANDLER TABLE + +__TI_handler_table @ 000001c0 records: 3, size/record: 2, table size: 6 + index: 0, handler: __TI_zero_init + index: 1, handler: __TI_decompress_lzss + index: 2, handler: __TI_decompress_none + + +GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE + +address data page name +-------- ---------------- ---- +00000400 10 (00000400) __stack + +00000ce0 33 (00000cc0) PieCtrlRegs + +00000d00 34 (00000d00) PieVectTable + +00007000 1c0 (00007000) WdRegs + +00007300 1cc (00007300) I2caRegs + +00007c00 1f0 (00007c00) GpioCtrlRegs + +00007f00 1fc (00007f00) GpioDataRegs + +0000ac00 2b0 (0000ac00) I2C_RXdata +0000ac10 2b0 (0000ac00) I2C_TXdata +0000ac24 2b0 (0000ac00) __TI_enable_exit_profile_output +0000ac26 2b0 (0000ac00) __TI_cleanup_ptr +0000ac28 2b0 (0000ac00) __TI_dtors_ptr +0000ac2a 2b0 (0000ac00) _lock +0000ac2c 2b0 (0000ac00) _unlock + +0000b340 2cd (0000b340) PieVectTableInit + +0005d000 1740 (0005d000) DevCfgRegs + +0005d200 1748 (0005d200) ClkCfgRegs + +0005d300 174c (0005d300) CpuSysRegs + +0005d700 175c (0005d700) AnalogSubsysRegs + +0005e700 179c (0005e700) Dcc0Regs + +0005e740 179d (0005e740) Dcc1Regs + +0005e780 179e (0005e780) Dcc2Regs + + +GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name + +page address name +---- ------- ---- +0 0000cd43 ADCA1_ISR +0 0000cd4d ADCA2_ISR +0 0000cd57 ADCA3_ISR +0 0000cd61 ADCA4_ISR +0 0000cd6b ADCA_EVT_ISR +0 0000cd75 ADCB1_ISR +0 0000cd7f ADCB2_ISR +0 0000cd89 ADCB3_ISR +0 0000cd93 ADCB4_ISR +0 0000cd9d ADCB_EVT_ISR +0 0000cda7 ADCC1_ISR +0 0000cdb1 ADCC2_ISR +0 0000cdbb ADCC3_ISR +0 0000cdc5 ADCC4_ISR +0 0000cdcf ADCC_EVT_ISR +0 0000cdd9 ADCD1_ISR +0 0000cde3 ADCD2_ISR +0 0000cded ADCD3_ISR +0 0000cdf7 ADCD4_ISR +0 0000ce01 ADCD_EVT_ISR +1 0005d700 AnalogSubsysRegs +0 0000ce0b AuxAuxClkSel +0 0000856d AuxIntOsc2Sel +0 0000ccec AuxXtalOscSESel +0 0000ccfd AuxXtalOscSel +0 0000cb79 C$$EXIT +0 0000ce15 CANA0_ISR +0 0000ce1f CANA1_ISR +0 0000ce29 CANB0_ISR +0 0000ce33 CANB1_ISR +0 0000ce3d CIPC0_ISR +0 0000ce47 CIPC1_ISR +0 0000ce51 CIPC2_ISR +0 0000ce5b CIPC3_ISR +0 0000ce65 CLA1CRC_ISR +0 0000ce6f CLA1_1_ISR +0 0000ce79 CLA1_2_ISR +0 0000ce83 CLA1_3_ISR +0 0000ce8d CLA1_4_ISR +0 0000ce97 CLA1_5_ISR +0 0000cea1 CLA1_6_ISR +0 0000ceab CLA1_7_ISR +0 0000ceb5 CLA1_8_ISR +0 0000cebf CLA_OVERFLOW_ISR +0 0000cec9 CLA_UNDERFLOW_ISR +0 0000ced3 CLB1_ISR +0 0000cedd CLB2_ISR +0 0000cee7 CLB3_ISR +0 0000cef1 CLB4_ISR +0 0000cefb CLB5_ISR +0 0000cf05 CLB6_ISR +0 0000cf0f CLB7_ISR +0 0000cf19 CLB8_ISR +0 0000cf23 CMTOCPUXIPC0_ISR +0 0000cf2d CMTOCPUXIPC1_ISR +0 0000cf37 CMTOCPUXIPC2_ISR +0 0000cf41 CMTOCPUXIPC3_ISR +0 0000cf4b CMTOCPUXIPC4_ISR +0 0000cf55 CMTOCPUXIPC5_ISR +0 0000cf5f CMTOCPUXIPC6_ISR +0 0000cf69 CMTOCPUXIPC7_ISR +0 0000cf73 CM_STATUS_ISR +0 0000cf7d CPUCRC_ISR +1 0005d200 ClkCfgRegs +0 0000c800 ComputeCntrSeedValue +1 0005d300 CpuSysRegs +0 0000cf87 DATALOG_ISR +0 0000cf91 DMA_CH1_ISR +0 0000cf9b DMA_CH2_ISR +0 0000cfa5 DMA_CH3_ISR +0 0000cfaf DMA_CH4_ISR +0 0000cfb9 DMA_CH5_ISR +0 0000cfc3 DMA_CH6_ISR +1 0005e700 Dcc0Regs +1 0005e740 Dcc1Regs +1 0005e780 Dcc2Regs +1 0005d000 DevCfgRegs +0 0000cd0e DisableDog +0 0000cfcd ECAP1_ISR +0 0000cfd7 ECAP2_ISR +0 0000cfe1 ECAP3_ISR +0 0000cfeb ECAP4_ISR +0 0000cff5 ECAP5_ISR +0 00008000 ECAP6_2_ISR +0 0000800a ECAP6_ISR +0 00008014 ECAP7_2_ISR +0 0000801e ECAP7_ISR +0 00008028 ECATRST_ISR +0 00008032 ECATSYNC0_ISR +0 0000803c ECATSYNC1_ISR +0 00008046 ECAT_ISR +0 0000cd2a EMPTY_ISR +0 00008050 EMU_ISR +0 0000805a EPWM10_ISR +0 00008064 EPWM10_TZ_ISR +0 0000806e EPWM11_ISR +0 00008078 EPWM11_TZ_ISR +0 00008082 EPWM12_ISR +0 0000808c EPWM12_TZ_ISR +0 00008096 EPWM13_ISR +0 000080a0 EPWM13_TZ_ISR +0 000080aa EPWM14_ISR +0 000080b4 EPWM14_TZ_ISR +0 000080be EPWM15_ISR +0 000080c8 EPWM15_TZ_ISR +0 000080d2 EPWM16_ISR +0 000080dc EPWM16_TZ_ISR +0 000080e6 EPWM1_ISR +0 000080f0 EPWM1_TZ_ISR +0 000080fa EPWM2_ISR +0 00008104 EPWM2_TZ_ISR +0 0000810e EPWM3_ISR +0 00008118 EPWM3_TZ_ISR +0 00008122 EPWM4_ISR +0 0000812c EPWM4_TZ_ISR +0 00008136 EPWM5_ISR +0 00008140 EPWM5_TZ_ISR +0 0000814a EPWM6_ISR +0 00008154 EPWM6_TZ_ISR +0 0000815e EPWM7_ISR +0 00008168 EPWM7_TZ_ISR +0 00008172 EPWM8_ISR +0 0000817c EPWM8_TZ_ISR +0 00008186 EPWM9_ISR +0 00008190 EPWM9_TZ_ISR +0 0000819a EQEP1_ISR +0 000081a4 EQEP2_ISR +0 000081ae EQEP3_ISR +0 000001b1 F28x_usDelay +0 000081b8 FMC_ISR +0 000081c2 FPU_OFLOW_ISR +0 000081cc FPU_UFLOW_ISR +0 000081d6 FSIRXA1_ISR +0 000081e0 FSIRXA2_ISR +0 000081ea FSIRXB1_ISR +0 000081f4 FSIRXB2_ISR +0 000081fe FSIRXC1_ISR +0 00008208 FSIRXC2_ISR +0 00008212 FSIRXD1_ISR +0 0000821c FSIRXD2_ISR +0 00008226 FSIRXE1_ISR +0 00008230 FSIRXE2_ISR +0 0000823a FSIRXF1_ISR +0 00008244 FSIRXF2_ISR +0 0000824e FSIRXG1_ISR +0 00008258 FSIRXG2_ISR +0 00008262 FSIRXH1_ISR +0 0000826c FSIRXH2_ISR +0 00008276 FSITXA1_ISR +0 00008280 FSITXA2_ISR +0 0000828a FSITXB1_ISR +0 00008294 FSITXB2_ISR +0 0000cd1c GPIO_EnableUnbondedIOPullups +0 0000cc8c GPIO_EnableUnbondedIOPullupsFor176Pin +0 0000c14f GPIO_SetupPinMux +0 0000c24e GPIO_SetupPinOptions +1 00007c00 GpioCtrlRegs +1 00007f00 GpioDataRegs +0 0000829e I2CA_FIFO_ISR +0 000082a8 I2CA_HIGH_ISR +0 000082b2 I2CA_ISR +0 000082bc I2CB_FIFO_ISR +0 000082c6 I2CB_ISR +0 0000cbee I2CMaster_Init +0 0000c7c3 I2CWrite +0 0000ac00 I2C_RXdata +0 0000ac10 I2C_TXdata +1 00007300 I2caRegs +0 000082d0 ILLEGAL_ISR +0 0000c717 InitAuxPll +0 0000ca8b InitGpio +0 0000c665 InitPeripheralClocks +0 0000cc35 InitPieCtrl +0 0000cba2 InitPieVectTable +0 0000ca39 InitSysCtrl +0 0000c33b InitSysPll +0 0000c5b0 IsPLLValid +0 000082da MCANA_0_ISR +0 000082e4 MCANA_1_ISR +0 000082ee MCANA_ECC_ISR +0 000082f8 MCANA_WAKE_ISR +0 00008302 MCBSPA_RX_ISR +0 0000830c MCBSPA_TX_ISR +0 00008316 MCBSPB_RX_ISR +0 00008320 MCBSPB_TX_ISR +0 0000832a MPOST_ISR +0 00008334 NMI_ISR +0 0000833e NOTUSED_ISR +0 00008348 PIE_RESERVED_ISR +0 00008352 PMBUSA_ISR +1 00000ce0 PieCtrlRegs +1 00000d00 PieVectTable +0 0000b340 PieVectTableInit +0 0000835c RTOS_ISR +0 00008366 SCIA_RX_ISR +0 00008370 SCIA_TX_ISR +0 0000837a SCIB_RX_ISR +0 00008384 SCIB_TX_ISR +0 0000838e SCIC_RX_ISR +0 00008398 SCIC_TX_ISR +0 000083a2 SCID_RX_ISR +0 000083ac SCID_TX_ISR +0 000083b6 SDFM1DR1_ISR +0 000083c0 SDFM1DR2_ISR +0 000083ca SDFM1DR3_ISR +0 000083d4 SDFM1DR4_ISR +0 000083de SDFM1_ISR +0 000083e8 SDFM2DR1_ISR +0 000083f2 SDFM2DR2_ISR +0 000083fc SDFM2DR3_ISR +0 00008406 SDFM2DR4_ISR +0 00008410 SDFM2_ISR +0 0000841a SPIA_RX_ISR +0 00008424 SPIA_TX_ISR +0 0000842e SPIB_RX_ISR +0 00008438 SPIB_TX_ISR +0 00008442 SPIC_RX_ISR +0 0000844c SPIC_TX_ISR +0 00008456 SPID_RX_ISR +0 00008460 SPID_TX_ISR +0 0000c9df SSD1306_DrawPixel +0 0000c7f1 SSD1306_Fill +0 0000846a SSD1306_GotoXY +0 0000c000 SSD1306_Init +0 0000cadc SSD1306_UpdateScreen +0 0000cbc8 SSD1306_setPosition +0 00008474 SYS_ERR_ISR +0 0000847e SysIntOsc1Sel +0 00008575 SysIntOsc2Sel +0 0000ccd6 SysXtalOscSESel +0 0000cc12 SysXtalOscSel +0 00008488 TIMER0_ISR +0 00008492 TIMER1_ISR +0 0000849c TIMER2_ISR +0 000084a6 USBA_ISR +0 000084b0 USER10_ISR +0 000084ba USER11_ISR +0 000084c4 USER12_ISR +0 000084ce USER1_ISR +0 000084d8 USER2_ISR +0 000084e2 USER3_ISR +0 000084ec USER4_ISR +0 000084f6 USER5_ISR +0 00008500 USER6_ISR +0 0000850a USER7_ISR +0 00008514 USER8_ISR +0 0000851e USER9_ISR +0 0000c4f9 VerifyXTAL +0 00008528 WAKE_ISR +1 00007000 WdRegs +0 00008532 XINT1_ISR +0 0000853c XINT2_ISR +0 00008546 XINT3_ISR +0 00008550 XINT4_ISR +0 0000855a XINT5_ISR +0 000001d0 __TI_CINIT_Base +0 000001dc __TI_CINIT_Limit +0 000001dc __TI_CINIT_Warm +0 000001c0 __TI_Handler_Table_Base +0 000001c6 __TI_Handler_Table_Limit +0 00000500 __TI_STACK_END +abs 00000100 __TI_STACK_SIZE +0 0000cb4e __TI_auto_init_nobinit_nopinit +0 0000ac26 __TI_cleanup_ptr +0 0000cb20 __TI_decompress_lzss +0 0000857d __TI_decompress_none +0 0000ac28 __TI_dtors_ptr +0 0000ac24 __TI_enable_exit_profile_output +abs ffffffff __TI_pprof_out_hndl +abs ffffffff __TI_prof_data_size +abs ffffffff __TI_prof_data_start +0 00008594 __TI_zero_init +0 0000ccbe __c28xabi_andll +0 0000c895 __c28xabi_divf +0 0000ccc6 __c28xabi_orll +0 0000ccce __c28xabi_xorll +n/a UNDEFED __c_args__ +0 00000400 __stack +0 0000cd37 _args_main +0 0000cca5 _c_int00 +0 0000ac2a _lock +0 0000856c _nop +0 00008568 _register_lock +0 00008564 _register_unlock +0 0000cfff _system_post_cinit +0 0000859a _system_pre_init +0 0000ac2c _unlock +0 0000cb79 abort +0 0000c421 ceil +0 0000c421 ceill +0 00000000 code_start +0 0000cb7b exit +0 0000c91d main +0 0000cc54 memcpy +0 0000858d memset +0 0000c97e ssd1306_DrawBitmap + + +GLOBAL SYMBOLS: SORTED BY Symbol Address + +page address name +---- ------- ---- +0 00000000 code_start +0 000001b1 F28x_usDelay +0 000001c0 __TI_Handler_Table_Base +0 000001c6 __TI_Handler_Table_Limit +0 000001d0 __TI_CINIT_Base +0 000001dc __TI_CINIT_Limit +0 000001dc __TI_CINIT_Warm +0 00000400 __stack +0 00000500 __TI_STACK_END +0 00008000 ECAP6_2_ISR +0 0000800a ECAP6_ISR +0 00008014 ECAP7_2_ISR +0 0000801e ECAP7_ISR +0 00008028 ECATRST_ISR +0 00008032 ECATSYNC0_ISR +0 0000803c ECATSYNC1_ISR +0 00008046 ECAT_ISR +0 00008050 EMU_ISR +0 0000805a EPWM10_ISR +0 00008064 EPWM10_TZ_ISR +0 0000806e EPWM11_ISR +0 00008078 EPWM11_TZ_ISR +0 00008082 EPWM12_ISR +0 0000808c EPWM12_TZ_ISR +0 00008096 EPWM13_ISR +0 000080a0 EPWM13_TZ_ISR +0 000080aa EPWM14_ISR +0 000080b4 EPWM14_TZ_ISR +0 000080be EPWM15_ISR +0 000080c8 EPWM15_TZ_ISR +0 000080d2 EPWM16_ISR +0 000080dc EPWM16_TZ_ISR +0 000080e6 EPWM1_ISR +0 000080f0 EPWM1_TZ_ISR +0 000080fa EPWM2_ISR +0 00008104 EPWM2_TZ_ISR +0 0000810e EPWM3_ISR +0 00008118 EPWM3_TZ_ISR +0 00008122 EPWM4_ISR +0 0000812c EPWM4_TZ_ISR +0 00008136 EPWM5_ISR +0 00008140 EPWM5_TZ_ISR +0 0000814a EPWM6_ISR +0 00008154 EPWM6_TZ_ISR +0 0000815e EPWM7_ISR +0 00008168 EPWM7_TZ_ISR +0 00008172 EPWM8_ISR +0 0000817c EPWM8_TZ_ISR +0 00008186 EPWM9_ISR +0 00008190 EPWM9_TZ_ISR +0 0000819a EQEP1_ISR +0 000081a4 EQEP2_ISR +0 000081ae EQEP3_ISR +0 000081b8 FMC_ISR +0 000081c2 FPU_OFLOW_ISR +0 000081cc FPU_UFLOW_ISR +0 000081d6 FSIRXA1_ISR +0 000081e0 FSIRXA2_ISR +0 000081ea FSIRXB1_ISR +0 000081f4 FSIRXB2_ISR +0 000081fe FSIRXC1_ISR +0 00008208 FSIRXC2_ISR +0 00008212 FSIRXD1_ISR +0 0000821c FSIRXD2_ISR +0 00008226 FSIRXE1_ISR +0 00008230 FSIRXE2_ISR +0 0000823a FSIRXF1_ISR +0 00008244 FSIRXF2_ISR +0 0000824e FSIRXG1_ISR +0 00008258 FSIRXG2_ISR +0 00008262 FSIRXH1_ISR +0 0000826c FSIRXH2_ISR +0 00008276 FSITXA1_ISR +0 00008280 FSITXA2_ISR +0 0000828a FSITXB1_ISR +0 00008294 FSITXB2_ISR +0 0000829e I2CA_FIFO_ISR +0 000082a8 I2CA_HIGH_ISR +0 000082b2 I2CA_ISR +0 000082bc I2CB_FIFO_ISR +0 000082c6 I2CB_ISR +0 000082d0 ILLEGAL_ISR +0 000082da MCANA_0_ISR +0 000082e4 MCANA_1_ISR +0 000082ee MCANA_ECC_ISR +0 000082f8 MCANA_WAKE_ISR +0 00008302 MCBSPA_RX_ISR +0 0000830c MCBSPA_TX_ISR +0 00008316 MCBSPB_RX_ISR +0 00008320 MCBSPB_TX_ISR +0 0000832a MPOST_ISR +0 00008334 NMI_ISR +0 0000833e NOTUSED_ISR +0 00008348 PIE_RESERVED_ISR +0 00008352 PMBUSA_ISR +0 0000835c RTOS_ISR +0 00008366 SCIA_RX_ISR +0 00008370 SCIA_TX_ISR +0 0000837a SCIB_RX_ISR +0 00008384 SCIB_TX_ISR +0 0000838e SCIC_RX_ISR +0 00008398 SCIC_TX_ISR +0 000083a2 SCID_RX_ISR +0 000083ac SCID_TX_ISR +0 000083b6 SDFM1DR1_ISR +0 000083c0 SDFM1DR2_ISR +0 000083ca SDFM1DR3_ISR +0 000083d4 SDFM1DR4_ISR +0 000083de SDFM1_ISR +0 000083e8 SDFM2DR1_ISR +0 000083f2 SDFM2DR2_ISR +0 000083fc SDFM2DR3_ISR +0 00008406 SDFM2DR4_ISR +0 00008410 SDFM2_ISR +0 0000841a SPIA_RX_ISR +0 00008424 SPIA_TX_ISR +0 0000842e SPIB_RX_ISR +0 00008438 SPIB_TX_ISR +0 00008442 SPIC_RX_ISR +0 0000844c SPIC_TX_ISR +0 00008456 SPID_RX_ISR +0 00008460 SPID_TX_ISR +0 0000846a SSD1306_GotoXY +0 00008474 SYS_ERR_ISR +0 0000847e SysIntOsc1Sel +0 00008488 TIMER0_ISR +0 00008492 TIMER1_ISR +0 0000849c TIMER2_ISR +0 000084a6 USBA_ISR +0 000084b0 USER10_ISR +0 000084ba USER11_ISR +0 000084c4 USER12_ISR +0 000084ce USER1_ISR +0 000084d8 USER2_ISR +0 000084e2 USER3_ISR +0 000084ec USER4_ISR +0 000084f6 USER5_ISR +0 00008500 USER6_ISR +0 0000850a USER7_ISR +0 00008514 USER8_ISR +0 0000851e USER9_ISR +0 00008528 WAKE_ISR +0 00008532 XINT1_ISR +0 0000853c XINT2_ISR +0 00008546 XINT3_ISR +0 00008550 XINT4_ISR +0 0000855a XINT5_ISR +0 00008564 _register_unlock +0 00008568 _register_lock +0 0000856c _nop +0 0000856d AuxIntOsc2Sel +0 00008575 SysIntOsc2Sel +0 0000857d __TI_decompress_none +0 0000858d memset +0 00008594 __TI_zero_init +0 0000859a _system_pre_init +0 0000ac00 I2C_RXdata +0 0000ac10 I2C_TXdata +0 0000ac24 __TI_enable_exit_profile_output +0 0000ac26 __TI_cleanup_ptr +0 0000ac28 __TI_dtors_ptr +0 0000ac2a _lock +0 0000ac2c _unlock +0 0000b340 PieVectTableInit +0 0000c000 SSD1306_Init +0 0000c14f GPIO_SetupPinMux +0 0000c24e GPIO_SetupPinOptions +0 0000c33b InitSysPll +0 0000c421 ceil +0 0000c421 ceill +0 0000c4f9 VerifyXTAL +0 0000c5b0 IsPLLValid +0 0000c665 InitPeripheralClocks +0 0000c717 InitAuxPll +0 0000c7c3 I2CWrite +0 0000c7f1 SSD1306_Fill +0 0000c800 ComputeCntrSeedValue +0 0000c895 __c28xabi_divf +0 0000c91d main +0 0000c97e ssd1306_DrawBitmap +0 0000c9df SSD1306_DrawPixel +0 0000ca39 InitSysCtrl +0 0000ca8b InitGpio +0 0000cadc SSD1306_UpdateScreen +0 0000cb20 __TI_decompress_lzss +0 0000cb4e __TI_auto_init_nobinit_nopinit +0 0000cb79 C$$EXIT +0 0000cb79 abort +0 0000cb7b exit +0 0000cba2 InitPieVectTable +0 0000cbc8 SSD1306_setPosition +0 0000cbee I2CMaster_Init +0 0000cc12 SysXtalOscSel +0 0000cc35 InitPieCtrl +0 0000cc54 memcpy +0 0000cc8c GPIO_EnableUnbondedIOPullupsFor176Pin +0 0000cca5 _c_int00 +0 0000ccbe __c28xabi_andll +0 0000ccc6 __c28xabi_orll +0 0000ccce __c28xabi_xorll +0 0000ccd6 SysXtalOscSESel +0 0000ccec AuxXtalOscSESel +0 0000ccfd AuxXtalOscSel +0 0000cd0e DisableDog +0 0000cd1c GPIO_EnableUnbondedIOPullups +0 0000cd2a EMPTY_ISR +0 0000cd37 _args_main +0 0000cd43 ADCA1_ISR +0 0000cd4d ADCA2_ISR +0 0000cd57 ADCA3_ISR +0 0000cd61 ADCA4_ISR +0 0000cd6b ADCA_EVT_ISR +0 0000cd75 ADCB1_ISR +0 0000cd7f ADCB2_ISR +0 0000cd89 ADCB3_ISR +0 0000cd93 ADCB4_ISR +0 0000cd9d ADCB_EVT_ISR +0 0000cda7 ADCC1_ISR +0 0000cdb1 ADCC2_ISR +0 0000cdbb ADCC3_ISR +0 0000cdc5 ADCC4_ISR +0 0000cdcf ADCC_EVT_ISR +0 0000cdd9 ADCD1_ISR +0 0000cde3 ADCD2_ISR +0 0000cded ADCD3_ISR +0 0000cdf7 ADCD4_ISR +0 0000ce01 ADCD_EVT_ISR +0 0000ce0b AuxAuxClkSel +0 0000ce15 CANA0_ISR +0 0000ce1f CANA1_ISR +0 0000ce29 CANB0_ISR +0 0000ce33 CANB1_ISR +0 0000ce3d CIPC0_ISR +0 0000ce47 CIPC1_ISR +0 0000ce51 CIPC2_ISR +0 0000ce5b CIPC3_ISR +0 0000ce65 CLA1CRC_ISR +0 0000ce6f CLA1_1_ISR +0 0000ce79 CLA1_2_ISR +0 0000ce83 CLA1_3_ISR +0 0000ce8d CLA1_4_ISR +0 0000ce97 CLA1_5_ISR +0 0000cea1 CLA1_6_ISR +0 0000ceab CLA1_7_ISR +0 0000ceb5 CLA1_8_ISR +0 0000cebf CLA_OVERFLOW_ISR +0 0000cec9 CLA_UNDERFLOW_ISR +0 0000ced3 CLB1_ISR +0 0000cedd CLB2_ISR +0 0000cee7 CLB3_ISR +0 0000cef1 CLB4_ISR +0 0000cefb CLB5_ISR +0 0000cf05 CLB6_ISR +0 0000cf0f CLB7_ISR +0 0000cf19 CLB8_ISR +0 0000cf23 CMTOCPUXIPC0_ISR +0 0000cf2d CMTOCPUXIPC1_ISR +0 0000cf37 CMTOCPUXIPC2_ISR +0 0000cf41 CMTOCPUXIPC3_ISR +0 0000cf4b CMTOCPUXIPC4_ISR +0 0000cf55 CMTOCPUXIPC5_ISR +0 0000cf5f CMTOCPUXIPC6_ISR +0 0000cf69 CMTOCPUXIPC7_ISR +0 0000cf73 CM_STATUS_ISR +0 0000cf7d CPUCRC_ISR +0 0000cf87 DATALOG_ISR +0 0000cf91 DMA_CH1_ISR +0 0000cf9b DMA_CH2_ISR +0 0000cfa5 DMA_CH3_ISR +0 0000cfaf DMA_CH4_ISR +0 0000cfb9 DMA_CH5_ISR +0 0000cfc3 DMA_CH6_ISR +0 0000cfcd ECAP1_ISR +0 0000cfd7 ECAP2_ISR +0 0000cfe1 ECAP3_ISR +0 0000cfeb ECAP4_ISR +0 0000cff5 ECAP5_ISR +0 0000cfff _system_post_cinit +1 00000ce0 PieCtrlRegs +1 00000d00 PieVectTable +1 00007000 WdRegs +1 00007300 I2caRegs +1 00007c00 GpioCtrlRegs +1 00007f00 GpioDataRegs +1 0005d000 DevCfgRegs +1 0005d200 ClkCfgRegs +1 0005d300 CpuSysRegs +1 0005d700 AnalogSubsysRegs +1 0005e700 Dcc0Regs +1 0005e740 Dcc1Regs +1 0005e780 Dcc2Regs +abs 00000100 __TI_STACK_SIZE +abs ffffffff __TI_pprof_out_hndl +abs ffffffff __TI_prof_data_size +abs ffffffff __TI_prof_data_start +n/a UNDEFED __c_args__ + +[296 symbols] diff --git a/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.obj b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.obj new file mode 100644 index 0000000000000000000000000000000000000000..6edf65a9674bb648f7095ae0f80ac6bd9035619e GIT binary patch literal 9716 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 literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.out b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master.out new file mode 100644 index 0000000000000000000000000000000000000000..2ed82a63d1ab8cccea07904fcf484cc837ba14f0 GIT binary patch literal 720060 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
0x0
+ + + + .\ + object + f2838x_codestartbranch.obj + f2838x_codestartbranch.obj + + + .\ + object + f2838x_cputimers.obj + f2838x_cputimers.obj + + + .\ + object + f2838x_defaultisr.obj + f2838x_defaultisr.obj + + + .\ + object + f2838x_dma.obj + f2838x_dma.obj + + + .\ + object + f2838x_epwm.obj + f2838x_epwm.obj + + + .\ + object + f2838x_globalvariabledefs.obj + f2838x_globalvariabledefs.obj + + + .\ + object + f2838x_gpio.obj + f2838x_gpio.obj + + + .\ + object + f2838x_piectrl.obj + f2838x_piectrl.obj + + + .\ + object + f2838x_pievect.obj + f2838x_pievect.obj + + + .\ + object + f2838x_sysctrl.obj + f2838x_sysctrl.obj + + + .\ + object + f2838x_usdelay.obj + f2838x_usdelay.obj + + + .\ + object + fonts.obj + fonts.obj + + + .\ + object + i2c_ex1_master.obj + i2c_ex1_master.obj + + + .\ + object + i2c_oled.obj + i2c_oled.obj + + + object + <internal> + <internal> + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + s_ceil.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + boot28.asm.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + fs_div28.asm.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + ll_aox28.asm.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + ll_cmp28.asm.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + pre_init.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + autoinit.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + copy_zero_init.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + copy_decompress_none.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + copy_decompress_lzss.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + exit.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + _lock.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + args_main.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + memset.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + strlen.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + cpy_tbl.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + memcpy.c.obj + + + C:\ti\ccs1240\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\lib\ + archive + rts2800_fpu64_eabi.lib + startup.c.obj + + + + + codestart + 0x0 + 0x0 + 0x2 + + + + .text:ECAP6_2_ISR + 0x8000 + 0x8000 + 0xa + + + + .text:ECAP6_ISR + 0x800a + 0x800a + 0xa + + + + .text:ECAP7_2_ISR + 0x8014 + 0x8014 + 0xa + + + + .text:ECAP7_ISR + 0x801e + 0x801e + 0xa + + + + .text:ECATRST_ISR + 0x8028 + 0x8028 + 0xa + + + + .text:ECATSYNC0_ISR + 0x8032 + 0x8032 + 0xa + + + + .text:ECATSYNC1_ISR + 0x803c + 0x803c + 0xa + + + + .text:ECAT_ISR + 0x8046 + 0x8046 + 0xa + + + + .text:EMU_ISR + 0x8050 + 0x8050 + 0xa + + + + .text:EPWM10_ISR + 0x805a + 0x805a + 0xa + + + + .text:EPWM10_TZ_ISR + 0x8064 + 0x8064 + 0xa + + + + .text:EPWM11_ISR + 0x806e + 0x806e + 0xa + + + + .text:EPWM11_TZ_ISR + 0x8078 + 0x8078 + 0xa + + + + .text:EPWM12_ISR + 0x8082 + 0x8082 + 0xa + + + + .text:EPWM12_TZ_ISR + 0x808c + 0x808c + 0xa + + + + .text:EPWM13_ISR + 0x8096 + 0x8096 + 0xa + + + + .text:EPWM13_TZ_ISR + 0x80a0 + 0x80a0 + 0xa + + + + .text:EPWM14_ISR + 0x80aa + 0x80aa + 0xa + + + + .text:EPWM14_TZ_ISR + 0x80b4 + 0x80b4 + 0xa + + + + .text:EPWM15_ISR + 0x80be + 0x80be + 0xa + + + + .text:EPWM15_TZ_ISR + 0x80c8 + 0x80c8 + 0xa + + + + .text:EPWM16_ISR + 0x80d2 + 0x80d2 + 0xa + + + + .text:EPWM16_TZ_ISR + 0x80dc + 0x80dc + 0xa + + + + .text:EPWM1_ISR + 0x80e6 + 0x80e6 + 0xa + + + + .text:EPWM1_TZ_ISR + 0x80f0 + 0x80f0 + 0xa + + + + .text:EPWM2_ISR + 0x80fa + 0x80fa + 0xa + + + + .text:EPWM2_TZ_ISR + 0x8104 + 0x8104 + 0xa + + + + .text:EPWM3_ISR + 0x810e + 0x810e + 0xa + + + + .text:EPWM3_TZ_ISR + 0x8118 + 0x8118 + 0xa + + + + .text:EPWM4_ISR + 0x8122 + 0x8122 + 0xa + + + + .text:EPWM4_TZ_ISR + 0x812c + 0x812c + 0xa + + + + .text:EPWM5_ISR + 0x8136 + 0x8136 + 0xa + + + + .text:EPWM5_TZ_ISR + 0x8140 + 0x8140 + 0xa + + + + .text:EPWM6_ISR + 0x814a + 0x814a + 0xa + + + + .text:EPWM6_TZ_ISR + 0x8154 + 0x8154 + 0xa + + + + .text:EPWM7_ISR + 0x815e + 0x815e + 0xa + + + + .text:EPWM7_TZ_ISR + 0x8168 + 0x8168 + 0xa + + + + .text:EPWM8_ISR + 0x8172 + 0x8172 + 0xa + + + + .text:EPWM8_TZ_ISR + 0x817c + 0x817c + 0xa + + + + .text:EPWM9_ISR + 0x8186 + 0x8186 + 0xa + + + + .text:EPWM9_TZ_ISR + 0x8190 + 0x8190 + 0xa + + + + .text:EQEP1_ISR + 0x819a + 0x819a + 0xa + + + + .text:EQEP2_ISR + 0x81a4 + 0x81a4 + 0xa + + + + .text:EQEP3_ISR + 0x81ae + 0x81ae + 0xa + + + + .text:FMC_ISR + 0x81b8 + 0x81b8 + 0xa + + + + .text:FPU_OFLOW_ISR + 0x81c2 + 0x81c2 + 0xa + + + + .text:FPU_UFLOW_ISR + 0x81cc + 0x81cc + 0xa + + + + .text:FSIRXA1_ISR + 0x81d6 + 0x81d6 + 0xa + + + + .text:FSIRXA2_ISR + 0x81e0 + 0x81e0 + 0xa + + + + .text:FSIRXB1_ISR + 0x81ea + 0x81ea + 0xa + + + + .text:FSIRXB2_ISR + 0x81f4 + 0x81f4 + 0xa + + + + .text:FSIRXC1_ISR + 0x81fe + 0x81fe + 0xa + + + + .text:FSIRXC2_ISR + 0x8208 + 0x8208 + 0xa + + + + .text:FSIRXD1_ISR + 0x8212 + 0x8212 + 0xa + + + + .text:FSIRXD2_ISR + 0x821c + 0x821c + 0xa + + + + .text:FSIRXE1_ISR + 0x8226 + 0x8226 + 0xa + + + + .text:FSIRXE2_ISR + 0x8230 + 0x8230 + 0xa + + + + .text:FSIRXF1_ISR + 0x823a + 0x823a + 0xa + + + + .text:FSIRXF2_ISR + 0x8244 + 0x8244 + 0xa + + + + .text:FSIRXG1_ISR + 0x824e + 0x824e + 0xa + + + + .text:FSIRXG2_ISR + 0x8258 + 0x8258 + 0xa + + + + .text:FSIRXH1_ISR + 0x8262 + 0x8262 + 0xa + + + + .text:FSIRXH2_ISR + 0x826c + 0x826c + 0xa + + + + .text:FSITXA1_ISR + 0x8276 + 0x8276 + 0xa + + + + .text:FSITXA2_ISR + 0x8280 + 0x8280 + 0xa + + + + .text:FSITXB1_ISR + 0x828a + 0x828a + 0xa + + + + .text:FSITXB2_ISR + 0x8294 + 0x8294 + 0xa + + + + .text:I2CA_FIFO_ISR + 0x829e + 0x829e + 0xa + + + + .text:I2CA_HIGH_ISR + 0x82a8 + 0x82a8 + 0xa + + + + .text:I2CA_ISR + 0x82b2 + 0x82b2 + 0xa + + + + .text:I2CB_FIFO_ISR + 0x82bc + 0x82bc + 0xa + + + + .text:I2CB_ISR + 0x82c6 + 0x82c6 + 0xa + + + + .text:ILLEGAL_ISR + 0x82d0 + 0x82d0 + 0xa + + + + .text:MCANA_0_ISR + 0x82da + 0x82da + 0xa + + + + .text:MCANA_1_ISR + 0x82e4 + 0x82e4 + 0xa + + + + .text:MCANA_ECC_ISR + 0x82ee + 0x82ee + 0xa + + + + .text:MCANA_WAKE_ISR + 0x82f8 + 0x82f8 + 0xa + + + + .text:MCBSPA_RX_ISR + 0x8302 + 0x8302 + 0xa + + + + .text:MCBSPA_TX_ISR + 0x830c + 0x830c + 0xa + + + + .text:MCBSPB_RX_ISR + 0x8316 + 0x8316 + 0xa + + + + .text:MCBSPB_TX_ISR + 0x8320 + 0x8320 + 0xa + + + + .text:MPOST_ISR + 0x832a + 0x832a + 0xa + + + + .text:NMI_ISR + 0x8334 + 0x8334 + 0xa + + + + .text:NOTUSED_ISR + 0x833e + 0x833e + 0xa + + + + .text:PIE_RESERVED_ISR + 0x8348 + 0x8348 + 0xa + + + + .text:PMBUSA_ISR + 0x8352 + 0x8352 + 0xa + + + + .text:RTOS_ISR + 0x835c + 0x835c + 0xa + + + + .text:SCIA_RX_ISR + 0x8366 + 0x8366 + 0xa + + + + .text:SCIA_TX_ISR + 0x8370 + 0x8370 + 0xa + + + + .text:SCIB_RX_ISR + 0x837a + 0x837a + 0xa + + + + .text:SCIB_TX_ISR + 0x8384 + 0x8384 + 0xa + + + + .text:SCIC_RX_ISR + 0x838e + 0x838e + 0xa + + + + .text:SCIC_TX_ISR + 0x8398 + 0x8398 + 0xa + + + + .text:SCID_RX_ISR + 0x83a2 + 0x83a2 + 0xa + + + + .text:SCID_TX_ISR + 0x83ac + 0x83ac + 0xa + + + + .text:SDFM1DR1_ISR + 0x83b6 + 0x83b6 + 0xa + + + + .text:SDFM1DR2_ISR + 0x83c0 + 0x83c0 + 0xa + + + + .text:SDFM1DR3_ISR + 0x83ca + 0x83ca + 0xa + + + + .text:SDFM1DR4_ISR + 0x83d4 + 0x83d4 + 0xa + + + + .text:SDFM1_ISR + 0x83de + 0x83de + 0xa + + + + .text:SDFM2DR1_ISR + 0x83e8 + 0x83e8 + 0xa + + + + .text:SDFM2DR2_ISR + 0x83f2 + 0x83f2 + 0xa + + + + .text:SDFM2DR3_ISR + 0x83fc + 0x83fc + 0xa + + + + .text:SDFM2DR4_ISR + 0x8406 + 0x8406 + 0xa + + + + .text:SDFM2_ISR + 0x8410 + 0x8410 + 0xa + + + + .text:SPIA_RX_ISR + 0x841a + 0x841a + 0xa + + + + .text:SPIA_TX_ISR + 0x8424 + 0x8424 + 0xa + + + + .text:SPIB_RX_ISR + 0x842e + 0x842e + 0xa + + + + .text:SPIB_TX_ISR + 0x8438 + 0x8438 + 0xa + + + + .text:SPIC_RX_ISR + 0x8442 + 0x8442 + 0xa + + + + .text:SPIC_TX_ISR + 0x844c + 0x844c + 0xa + + + + .text:SPID_RX_ISR + 0x8456 + 0x8456 + 0xa + + + + .text:SPID_TX_ISR + 0x8460 + 0x8460 + 0xa + + + + .text:SSD1306_GotoXY + 0x846a + 0x846a + 0xa + + + + .text:SYS_ERR_ISR + 0x8474 + 0x8474 + 0xa + + + + .text:SysIntOsc1Sel + 0x847e + 0x847e + 0xa + + + + .text:TIMER0_ISR + 0x8488 + 0x8488 + 0xa + + + + .text:TIMER1_ISR + 0x8492 + 0x8492 + 0xa + + + + .text:TIMER2_ISR + 0x849c + 0x849c + 0xa + + + + .text:USBA_ISR + 0x84a6 + 0x84a6 + 0xa + + + + .text:USER10_ISR + 0x84b0 + 0x84b0 + 0xa + + + + .text:USER11_ISR + 0x84ba + 0x84ba + 0xa + + + + .text:USER12_ISR + 0x84c4 + 0x84c4 + 0xa + + + + .text:USER1_ISR + 0x84ce + 0x84ce + 0xa + + + + .text:USER2_ISR + 0x84d8 + 0x84d8 + 0xa + + + + .text:USER3_ISR + 0x84e2 + 0x84e2 + 0xa + + + + .text:USER4_ISR + 0x84ec + 0x84ec + 0xa + + + + .text:USER5_ISR + 0x84f6 + 0x84f6 + 0xa + + + + .text:USER6_ISR + 0x8500 + 0x8500 + 0xa + + + + .text:USER7_ISR + 0x850a + 0x850a + 0xa + + + + .text:USER8_ISR + 0x8514 + 0x8514 + 0xa + + + + .text:USER9_ISR + 0x851e + 0x851e + 0xa + + + + .text:WAKE_ISR + 0x8528 + 0x8528 + 0xa + + + + .text:XINT1_ISR + 0x8532 + 0x8532 + 0xa + + + + .text:XINT2_ISR + 0x853c + 0x853c + 0xa + + + + .text:XINT3_ISR + 0x8546 + 0x8546 + 0xa + + + + .text:XINT4_ISR + 0x8550 + 0x8550 + 0xa + + + + .text:XINT5_ISR + 0x855a + 0x855a + 0xa + + + + .text + 0x8564 + 0x8564 + 0x9 + + + + .text:AuxIntOsc2Sel + 0x856d + 0x856d + 0x8 + + + + .text:SysIntOsc2Sel + 0x8575 + 0x8575 + 0x8 + + + + .text:decompress:none + 0x857d + 0x857d + 0x8 + + + + .text + 0x8585 + 0x8585 + 0x8 + + + + .text + 0x858d + 0x858d + 0x7 + + + + .text:decompress:ZI + 0x8594 + 0x8594 + 0x6 + + + + .text + 0x859a + 0x859a + 0x2 + + + + .text:SSD1306_Init + 0xc000 + 0xc000 + 0x14f + + + + .text:GPIO_SetupPinMux + 0xc14f + 0xc14f + 0xff + + + + .text:GPIO_SetupPinOptions + 0xc24e + 0xc24e + 0xed + + + + .text:InitSysPll + 0xc33b + 0xc33b + 0xe6 + + + + .text + 0xc421 + 0xc421 + 0xd8 + + + + .text:VerifyXTAL + 0xc4f9 + 0xc4f9 + 0xb7 + + + + .text:IsPLLValid + 0xc5b0 + 0xc5b0 + 0xb5 + + + + .text:InitPeripheralClocks + 0xc665 + 0xc665 + 0xb2 + + + + .text:InitAuxPll + 0xc717 + 0xc717 + 0xac + + + + .text:I2CWrite + 0xc7c3 + 0xc7c3 + 0x2e + + + + .text:SSD1306_Fill + 0xc7f1 + 0xc7f1 + 0xf + + + + .text:ComputeCntrSeedValue + 0xc800 + 0xc800 + 0x95 + + + + .text + 0xc895 + 0xc895 + 0x88 + + + + .text:main + 0xc91d + 0xc91d + 0x61 + + + + .text:ssd1306_DrawBitmap + 0xc97e + 0xc97e + 0x61 + + + + .text:SSD1306_DrawPixel + 0xc9df + 0xc9df + 0x5a + + + + .text:InitSysCtrl + 0xca39 + 0xca39 + 0x52 + + + + .text:InitGpio + 0xca8b + 0xca8b + 0x51 + + + + .text:SSD1306_UpdateScreen + 0xcadc + 0xcadc + 0x44 + + + + .text:decompress:lzss + 0xcb20 + 0xcb20 + 0x2e + + + + .text:__TI_auto_init_nobinit_nopinit + 0xcb4e + 0xcb4e + 0x2b + + + + .text + 0xcb79 + 0xcb79 + 0x29 + + + + .text:InitPieVectTable + 0xcba2 + 0xcba2 + 0x26 + + + + .text:SSD1306_setPosition + 0xcbc8 + 0xcbc8 + 0x26 + + + + .text:I2CMaster_Init + 0xcbee + 0xcbee + 0x24 + + + + .text:SysXtalOscSel + 0xcc12 + 0xcc12 + 0x23 + + + + .text:InitPieCtrl + 0xcc35 + 0xcc35 + 0x1f + + + + .text + 0xcc54 + 0xcc54 + 0x1d + + + + .text:PollX1Counter + 0xcc71 + 0xcc71 + 0x1b + + + + .text:GPIO_EnableUnbondedIOPullupsFor176Pin + 0xcc8c + 0xcc8c + 0x19 + + + + .text + 0xcca5 + 0xcca5 + 0x19 + + + + .text + 0xccbe + 0xccbe + 0x18 + + + + .text:SysXtalOscSESel + 0xccd6 + 0xccd6 + 0x16 + + + + .text:AuxXtalOscSESel + 0xccec + 0xccec + 0x11 + + + + .text:AuxXtalOscSel + 0xccfd + 0xccfd + 0x11 + + + + .text:DisableDog + 0xcd0e + 0xcd0e + 0xe + + + + .text:GPIO_EnableUnbondedIOPullups + 0xcd1c + 0xcd1c + 0xe + + + + .text:EMPTY_ISR + 0xcd2a + 0xcd2a + 0xd + + + + .text + 0xcd37 + 0xcd37 + 0xc + + + + .text:ADCA1_ISR + 0xcd43 + 0xcd43 + 0xa + + + + .text:ADCA2_ISR + 0xcd4d + 0xcd4d + 0xa + + + + .text:ADCA3_ISR + 0xcd57 + 0xcd57 + 0xa + + + + .text:ADCA4_ISR + 0xcd61 + 0xcd61 + 0xa + + + + .text:ADCA_EVT_ISR + 0xcd6b + 0xcd6b + 0xa + + + + .text:ADCB1_ISR + 0xcd75 + 0xcd75 + 0xa + + + + .text:ADCB2_ISR + 0xcd7f + 0xcd7f + 0xa + + + + .text:ADCB3_ISR + 0xcd89 + 0xcd89 + 0xa + + + + .text:ADCB4_ISR + 0xcd93 + 0xcd93 + 0xa + + + + .text:ADCB_EVT_ISR + 0xcd9d + 0xcd9d + 0xa + + + + .text:ADCC1_ISR + 0xcda7 + 0xcda7 + 0xa + + + + .text:ADCC2_ISR + 0xcdb1 + 0xcdb1 + 0xa + + + + .text:ADCC3_ISR + 0xcdbb + 0xcdbb + 0xa + + + + .text:ADCC4_ISR + 0xcdc5 + 0xcdc5 + 0xa + + + + .text:ADCC_EVT_ISR + 0xcdcf + 0xcdcf + 0xa + + + + .text:ADCD1_ISR + 0xcdd9 + 0xcdd9 + 0xa + + + + .text:ADCD2_ISR + 0xcde3 + 0xcde3 + 0xa + + + + .text:ADCD3_ISR + 0xcded + 0xcded + 0xa + + + + .text:ADCD4_ISR + 0xcdf7 + 0xcdf7 + 0xa + + + + .text:ADCD_EVT_ISR + 0xce01 + 0xce01 + 0xa + + + + .text:AuxAuxClkSel + 0xce0b + 0xce0b + 0xa + + + + .text:CANA0_ISR + 0xce15 + 0xce15 + 0xa + + + + .text:CANA1_ISR + 0xce1f + 0xce1f + 0xa + + + + .text:CANB0_ISR + 0xce29 + 0xce29 + 0xa + + + + .text:CANB1_ISR + 0xce33 + 0xce33 + 0xa + + + + .text:CIPC0_ISR + 0xce3d + 0xce3d + 0xa + + + + .text:CIPC1_ISR + 0xce47 + 0xce47 + 0xa + + + + .text:CIPC2_ISR + 0xce51 + 0xce51 + 0xa + + + + .text:CIPC3_ISR + 0xce5b + 0xce5b + 0xa + + + + .text:CLA1CRC_ISR + 0xce65 + 0xce65 + 0xa + + + + .text:CLA1_1_ISR + 0xce6f + 0xce6f + 0xa + + + + .text:CLA1_2_ISR + 0xce79 + 0xce79 + 0xa + + + + .text:CLA1_3_ISR + 0xce83 + 0xce83 + 0xa + + + + .text:CLA1_4_ISR + 0xce8d + 0xce8d + 0xa + + + + .text:CLA1_5_ISR + 0xce97 + 0xce97 + 0xa + + + + .text:CLA1_6_ISR + 0xcea1 + 0xcea1 + 0xa + + + + .text:CLA1_7_ISR + 0xceab + 0xceab + 0xa + + + + .text:CLA1_8_ISR + 0xceb5 + 0xceb5 + 0xa + + + + .text:CLA_OVERFLOW_ISR + 0xcebf + 0xcebf + 0xa + + + + .text:CLA_UNDERFLOW_ISR + 0xcec9 + 0xcec9 + 0xa + + + + .text:CLB1_ISR + 0xced3 + 0xced3 + 0xa + + + + .text:CLB2_ISR + 0xcedd + 0xcedd + 0xa + + + + .text:CLB3_ISR + 0xcee7 + 0xcee7 + 0xa + + + + .text:CLB4_ISR + 0xcef1 + 0xcef1 + 0xa + + + + .text:CLB5_ISR + 0xcefb + 0xcefb + 0xa + + + + .text:CLB6_ISR + 0xcf05 + 0xcf05 + 0xa + + + + .text:CLB7_ISR + 0xcf0f + 0xcf0f + 0xa + + + + .text:CLB8_ISR + 0xcf19 + 0xcf19 + 0xa + + + + .text:CMTOCPUXIPC0_ISR + 0xcf23 + 0xcf23 + 0xa + + + + .text:CMTOCPUXIPC1_ISR + 0xcf2d + 0xcf2d + 0xa + + + + .text:CMTOCPUXIPC2_ISR + 0xcf37 + 0xcf37 + 0xa + + + + .text:CMTOCPUXIPC3_ISR + 0xcf41 + 0xcf41 + 0xa + + + + .text:CMTOCPUXIPC4_ISR + 0xcf4b + 0xcf4b + 0xa + + + + .text:CMTOCPUXIPC5_ISR + 0xcf55 + 0xcf55 + 0xa + + + + .text:CMTOCPUXIPC6_ISR + 0xcf5f + 0xcf5f + 0xa + + + + .text:CMTOCPUXIPC7_ISR + 0xcf69 + 0xcf69 + 0xa + + + + .text:CM_STATUS_ISR + 0xcf73 + 0xcf73 + 0xa + + + + .text:CPUCRC_ISR + 0xcf7d + 0xcf7d + 0xa + + + + .text:DATALOG_ISR + 0xcf87 + 0xcf87 + 0xa + + + + .text:DMA_CH1_ISR + 0xcf91 + 0xcf91 + 0xa + + + + .text:DMA_CH2_ISR + 0xcf9b + 0xcf9b + 0xa + + + + .text:DMA_CH3_ISR + 0xcfa5 + 0xcfa5 + 0xa + + + + .text:DMA_CH4_ISR + 0xcfaf + 0xcfaf + 0xa + + + + .text:DMA_CH5_ISR + 0xcfb9 + 0xcfb9 + 0xa + + + + .text:DMA_CH6_ISR + 0xcfc3 + 0xcfc3 + 0xa + + + + .text:ECAP1_ISR + 0xcfcd + 0xcfcd + 0xa + + + + .text:ECAP2_ISR + 0xcfd7 + 0xcfd7 + 0xa + + + + .text:ECAP3_ISR + 0xcfe1 + 0xcfe1 + 0xa + + + + .text:ECAP4_ISR + 0xcfeb + 0xcfeb + 0xa + + + + .text:ECAP5_ISR + 0xcff5 + 0xcff5 + 0xa + + + + .text + 0xcfff + 0xcfff + 0x1 + + + + .cinit..data.load + 0x1b8 + 0x1b8 + 0x8 + + + __TI_handler_table + 0x1c0 + 0x1c0 + 0x6 + + + .cinit..bss.load + 0x1c6 + 0x1c6 + 0x4 + + + .cinit.PieVectTableFile.load + 0x1ca + 0x1ca + 0x4 + + + __TI_cinit_table + 0x1d0 + 0x1d0 + 0xc + + + .stack + true + 0x400 + 0x0 + + + + .stack + true + 0x400 + 0x0 + + + .bss + true + 0xac20 + 0x4 + + + + .bss:I2C_TXdata + true + 0xac10 + 0x10 + + + + .bss:I2C_RXdata + true + 0xac00 + 0x10 + + + + .bss:SSD1306_Buffer + true + 0xa800 + 0x400 + + + + .const:.string:$P$T0$1 + 0xb000 + 0xb000 + 0x340 + + + + .const + 0xb340 + 0xb340 + 0x1c0 + + + + .data + 0xac24 + 0xac24 + 0x6 + + + + .data:_lock + 0xac2a + 0xac2a + 0x2 + + + + .data:_unlock + 0xac2c + 0xac2c + 0x2 + + + + .TI.ramfunc + 0x1b1 + 0x1b1 + 0x4 + + + + PieVectTableFile + true + 0xd00 + 0x1c0 + + + + AnalogSubsysRegsFile + true + 0x5d700 + 0x3e + + + + ClkCfgRegsFile + true + 0x5d200 + 0x3a + + + + CpuSysRegsFile + true + 0x5d300 + 0x9c + + + + Dcc0RegsFile + true + 0x5e700 + 0x2c + + + + Dcc1RegsFile + true + 0x5e740 + 0x2c + + + + Dcc2RegsFile + true + 0x5e780 + 0x2c + + + + DevCfgRegsFile + true + 0x5d000 + 0x1a0 + + + + GpioCtrlRegsFile + true + 0x7c00 + 0x180 + + + + GpioDataRegsFile + true + 0x7f00 + 0x30 + + + + I2caRegsFile + true + 0x7300 + 0x22 + + + + PieCtrlRegsFile + true + 0xce0 + 0x1a + + + + WdRegsFile + true + 0x7000 + 0x2b + + + + .debug_info + 0x0 + 0x0 + 0x122 + + + + .debug_info + 0x122 + 0x122 + 0x123 + + + + .debug_info + 0x245 + 0x245 + 0x133 + + + + .debug_info + 0x378 + 0x378 + 0x133 + + + + .debug_info + 0x4ab + 0x4ab + 0x135 + + + + .debug_info + 0x5e0 + 0x5e0 + 0x12f + + + + .debug_info + 0x70f + 0x70f + 0x12d + + + + .debug_info + 0x83c + 0x83c + 0x12d + + + + .debug_info + 0x969 + 0x969 + 0x135 + + + + .debug_info + 0xa9e + 0xa9e + 0x131 + + + + .debug_info + 0xbcf + 0xbcf + 0x131 + + + + .debug_info + 0xd00 + 0xd00 + 0x131 + + + + .debug_info + 0xe31 + 0xe31 + 0x131 + + + + .debug_info + 0xf62 + 0xf62 + 0x131 + + + + .debug_info + 0x1093 + 0x1093 + 0x132 + + + + .debug_info + 0x11c5 + 0x11c5 + 0x133 + + + + .debug_info + 0x12f8 + 0x12f8 + 0x133 + + + + .debug_info + 0x142b + 0x142b + 0x133 + + + + .debug_info + 0x155e + 0x155e + 0x135 + + + + .debug_info + 0x1693 + 0x1693 + 0x135 + + + + .debug_info + 0x17c8 + 0x17c8 + 0x135 + + + + .debug_info + 0x18fd + 0x18fd + 0x133 + + + + .debug_info + 0x1a30 + 0x1a30 + 0x133 + + + + .debug_info + 0x1b63 + 0x1b63 + 0x133 + + + + .debug_info + 0x1c96 + 0x1c96 + 0x133 + + + + .debug_info + 0x1dc9 + 0x1dc9 + 0x133 + + + + .debug_info + 0x1efc + 0x1efc + 0x133 + + + + .debug_info + 0x202f + 0x202f + 0x135 + + + + .debug_info + 0x2164 + 0x2164 + 0x131 + + + + .debug_info + 0x2295 + 0x2295 + 0x139 + + + + .debug_info + 0x23ce + 0x23ce + 0x139 + + + + .debug_info + 0x2507 + 0x2507 + 0x139 + + + + .debug_info + 0x2640 + 0x2640 + 0x139 + + + + .debug_info + 0x2779 + 0x2779 + 0x139 + + + + .debug_info + 0x28b2 + 0x28b2 + 0x139 + + + + .debug_info + 0x29eb + 0x29eb + 0x139 + + + + .debug_info + 0x2b24 + 0x2b24 + 0x139 + + + + .debug_info + 0x2c5d + 0x2c5d + 0x133 + + + + .debug_info + 0x2d90 + 0x2d90 + 0x133 + + + + .debug_info + 0x2ec3 + 0x2ec3 + 0x133 + + + + .debug_info + 0x2ff6 + 0x2ff6 + 0x133 + + + + .debug_info + 0x3129 + 0x3129 + 0x133 + + + + .debug_info + 0x325c + 0x325c + 0x133 + + + + .debug_info + 0x338f + 0x338f + 0x133 + + + + .debug_info + 0x34c2 + 0x34c2 + 0x133 + + + + .debug_info + 0x35f5 + 0x35f5 + 0x133 + + + + .debug_info + 0x3728 + 0x3728 + 0x133 + + + + .debug_info + 0x385b + 0x385b + 0x133 + + + + .debug_info + 0x398e + 0x398e + 0x133 + + + + .debug_info + 0x3ac1 + 0x3ac1 + 0x133 + + + + .debug_info + 0x3bf4 + 0x3bf4 + 0x133 + + + + .debug_info + 0x3d27 + 0x3d27 + 0x133 + + + + .debug_info + 0x3e5a + 0x3e5a + 0x133 + + + + .debug_info + 0x3f8d + 0x3f8d + 0x133 + + + + .debug_info + 0x40c0 + 0x40c0 + 0x133 + + + + .debug_info + 0x41f3 + 0x41f3 + 0x131 + + + + .debug_info + 0x4324 + 0x4324 + 0x131 + + + + .debug_info + 0x4455 + 0x4455 + 0x131 + + + + .debug_info + 0x4586 + 0x4586 + 0x131 + + + + .debug_info + 0x46b7 + 0x46b7 + 0x137 + + + + .debug_info + 0x47ee + 0x47ee + 0x137 + + + + .debug_info + 0x4925 + 0x4925 + 0x137 + + + + .debug_info + 0x4a5c + 0x4a5c + 0x137 + + + + .debug_info + 0x4b93 + 0x4b93 + 0x13b + + + + .debug_info + 0x4cce + 0x4cce + 0x13b + + + + .debug_info + 0x4e09 + 0x4e09 + 0x13b + + + + .debug_info + 0x4f44 + 0x4f44 + 0x13b + + + + .debug_info + 0x507f + 0x507f + 0x137 + + + + .debug_info + 0x51b6 + 0x51b6 + 0x137 + + + + .debug_info + 0x52ed + 0x52ed + 0x137 + + + + .debug_info + 0x5424 + 0x5424 + 0x137 + + + + .debug_info + 0x555b + 0x555b + 0x137 + + + + .debug_info + 0x5692 + 0x5692 + 0x137 + + + + .debug_info + 0x57c9 + 0x57c9 + 0x131 + + + + .debug_info + 0x58fa + 0x58fa + 0x13b + + + + .debug_info + 0x5a35 + 0x5a35 + 0x131 + + + + .debug_info + 0x5b66 + 0x5b66 + 0x13b + + + + .debug_info + 0x5ca1 + 0x5ca1 + 0x137 + + + + .debug_info + 0x5dd8 + 0x5dd8 + 0x137 + + + + .debug_info + 0x5f0f + 0x5f0f + 0x137 + + + + .debug_info + 0x6046 + 0x6046 + 0x137 + + + + .debug_info + 0x617d + 0x617d + 0x137 + + + + .debug_info + 0x62b4 + 0x62b4 + 0x137 + + + + .debug_info + 0x63eb + 0x63eb + 0x137 + + + + .debug_info + 0x6522 + 0x6522 + 0x137 + + + + .debug_info + 0x6659 + 0x6659 + 0x133 + + + + .debug_info + 0x678c + 0x678c + 0x133 + + + + .debug_info + 0x68bf + 0x68bf + 0x133 + + + + .debug_info + 0x69f2 + 0x69f2 + 0x133 + + + + .debug_info + 0x6b25 + 0x6b25 + 0x139 + + + + .debug_info + 0x6c5e + 0x6c5e + 0x133 + + + + .debug_info + 0x6d91 + 0x6d91 + 0x133 + + + + .debug_info + 0x6ec4 + 0x6ec4 + 0x133 + + + + .debug_info + 0x6ff7 + 0x6ff7 + 0x139 + + + + .debug_info + 0x7130 + 0x7130 + 0x133 + + + + .debug_info + 0x7263 + 0x7263 + 0x133 + + + + .debug_info + 0x7396 + 0x7396 + 0x133 + + + + .debug_info + 0x74c9 + 0x74c9 + 0x135 + + + + .debug_info + 0x75fe + 0x75fe + 0x135 + + + + .debug_info + 0x7733 + 0x7733 + 0x135 + + + + .debug_info + 0x7868 + 0x7868 + 0x135 + + + + .debug_info + 0x799d + 0x799d + 0x135 + + + + .debug_info + 0x7ad2 + 0x7ad2 + 0x135 + + + + .debug_info + 0x7c07 + 0x7c07 + 0x135 + + + + .debug_info + 0x7d3c + 0x7d3c + 0x135 + + + + .debug_info + 0x7e71 + 0x7e71 + 0x133 + + + + .debug_info + 0x7fa4 + 0x7fa4 + 0x133 + + + + .debug_info + 0x80d7 + 0x80d7 + 0x133 + + + + .debug_info + 0x820a + 0x820a + 0x133 + + + + .debug_info + 0x833d + 0x833d + 0x12f + + + + .debug_info + 0x846c + 0x846c + 0x13b + + + + .debug_info + 0x85a7 + 0x85a7 + 0x13b + + + + .debug_info + 0x86e2 + 0x86e2 + 0x13b + + + + .debug_info + 0x881d + 0x881d + 0x137 + + + + .debug_info + 0x8954 + 0x8954 + 0x13b + + + + .debug_info + 0x8a8f + 0x8a8f + 0x131 + + + + .debug_info + 0x8bc0 + 0x8bc0 + 0x133 + + + + .debug_info + 0x8cf3 + 0x8cf3 + 0x133 + + + + .debug_info + 0x8e26 + 0x8e26 + 0x133 + + + + .debug_info + 0x8f59 + 0x8f59 + 0x133 + + + + .debug_info + 0x908c + 0x908c + 0x139 + + + + .debug_info + 0x91c5 + 0x91c5 + 0x13b + + + + .debug_info + 0x9300 + 0x9300 + 0x13b + + + + .debug_info + 0x943b + 0x943b + 0x13b + + + + .debug_info + 0x9576 + 0x9576 + 0x13b + + + + .debug_info + 0x96b1 + 0x96b1 + 0x13b + + + + .debug_info + 0x97ec + 0x97ec + 0x13b + + + + .debug_info + 0x9927 + 0x9927 + 0x13b + + + + .debug_info + 0x9a62 + 0x9a62 + 0x133 + + + + .debug_info + 0x9b95 + 0x9b95 + 0x135 + + + + .debug_info + 0x9cca + 0x9cca + 0x135 + + + + .debug_info + 0x9dff + 0x9dff + 0x135 + + + + .debug_info + 0x9f34 + 0x9f34 + 0x135 + + + + .debug_info + 0xa069 + 0xa069 + 0x135 + + + + .debug_info + 0xa19e + 0xa19e + 0x135 + + + + .debug_info + 0xa2d3 + 0xa2d3 + 0x135 + + + + .debug_info + 0xa408 + 0xa408 + 0x137 + + + + .debug_info + 0xa53f + 0xa53f + 0x137 + + + + .debug_info + 0xa676 + 0xa676 + 0x137 + + + + .debug_info + 0xa7ad + 0xa7ad + 0x137 + + + + .debug_info + 0xa8e4 + 0xa8e4 + 0x137 + + + + .debug_info + 0xaa1b + 0xaa1b + 0x137 + + + + .debug_info + 0xab52 + 0xab52 + 0x137 + + + + .debug_info + 0xac89 + 0xac89 + 0x137 + + + + .debug_info + 0xadc0 + 0xadc0 + 0x133 + + + + .debug_info + 0xaef3 + 0xaef3 + 0x133 + + + + .debug_info + 0xb026 + 0xb026 + 0x137 + + + + .debug_info + 0xb15d + 0xb15d + 0x13b + + + + .debug_info + 0xb298 + 0xb298 + 0x139 + + + + .debug_info + 0xb3d1 + 0xb3d1 + 0x139 + + + + .debug_info + 0xb50a + 0xb50a + 0x139 + + + + .debug_info + 0xb643 + 0xb643 + 0x139 + + + + .debug_info + 0xb77c + 0xb77c + 0x137 + + + + .debug_info + 0xb8b3 + 0xb8b3 + 0x137 + + + + .debug_info + 0xb9ea + 0xb9ea + 0x137 + + + + .debug_info + 0xbb21 + 0xbb21 + 0x137 + + + + .debug_info + 0xbc58 + 0xbc58 + 0x139 + + + + .debug_info + 0xbd91 + 0xbd91 + 0x139 + + + + .debug_info + 0xbeca + 0xbeca + 0x139 + + + + .debug_info + 0xc003 + 0xc003 + 0x139 + + + + .debug_info + 0xc13c + 0xc13c + 0x137 + + + + .debug_info + 0xc273 + 0xc273 + 0x137 + + + + .debug_info + 0xc3aa + 0xc3aa + 0x137 + + + + .debug_info + 0xc4e1 + 0xc4e1 + 0x137 + + + + .debug_info + 0xc618 + 0xc618 + 0x137 + + + + .debug_info + 0xc74f + 0xc74f + 0x137 + + + + .debug_info + 0xc886 + 0xc886 + 0x137 + + + + .debug_info + 0xc9bd + 0xc9bd + 0x137 + + + + .debug_info + 0xcaf4 + 0xcaf4 + 0x137 + + + + .debug_info + 0xcc2b + 0xcc2b + 0x137 + + + + .debug_info + 0xcd62 + 0xcd62 + 0x137 + + + + .debug_info + 0xce99 + 0xce99 + 0x137 + + + + .debug_info + 0xcfd0 + 0xcfd0 + 0x131 + + + + .debug_info + 0xd101 + 0xd101 + 0x131 + + + + .debug_info + 0xd232 + 0xd232 + 0x131 + + + + .debug_info + 0xd363 + 0xd363 + 0x131 + + + + .debug_info + 0xd494 + 0xd494 + 0x137 + + + + .debug_info + 0xd5cb + 0xd5cb + 0x137 + + + + .debug_info + 0xd702 + 0xd702 + 0x13b + + + + .debug_info + 0xd83d + 0xd83d + 0x13d + + + + .debug_info + 0xd97a + 0xd97a + 0x135 + + + + .debug_info + 0xdaaf + 0xdaaf + 0x13b + + + + .debug_info + 0xdbea + 0xdbea + 0x131 + + + + .debug_info + 0xdd1b + 0xdd1b + 0x139 + + + + .debug_info + 0xde54 + 0xde54 + 0x133 + + + + .debug_info + 0xdf87 + 0xdf87 + 0x133 + + + + .debug_info + 0xe0ba + 0xe0ba + 0x133 + + + + .debug_info + 0xe1ed + 0xe1ed + 0x139 + + + + .debug_info + 0xe326 + 0xe326 + 0x133 + + + + .debug_info + 0xe459 + 0xe459 + 0x133 + + + + .debug_info + 0xe58c + 0xe58c + 0x133 + + + + .debug_info + 0xe6bf + 0xe6bf + 0x141 + + + + .debug_info + 0xe800 + 0xe800 + 0x141 + + + + .debug_info + 0xe941 + 0xe941 + 0x141 + + + + .debug_info + 0xea82 + 0xea82 + 0x141 + + + + .debug_info + 0xebc3 + 0xebc3 + 0x141 + + + + .debug_info + 0xed04 + 0xed04 + 0x141 + + + + .debug_info + 0xee45 + 0xee45 + 0x141 + + + + .debug_info + 0xef86 + 0xef86 + 0x141 + + + + .debug_info + 0xf0c7 + 0xf0c7 + 0x137 + + + + .debug_info + 0xf1fe + 0xf1fe + 0x137 + + + + .debug_info + 0xf335 + 0xf335 + 0x135 + + + + .debug_info + 0xf46a + 0xf46a + 0x137 + + + + .debug_info + 0xf5a1 + 0xf5a1 + 0x141 + + + + .debug_info + 0xf6e2 + 0xf6e2 + 0x143 + + + + .debug_info + 0xf825 + 0xf825 + 0x141 + + + + .debug_info + 0xf966 + 0xf966 + 0x13d + + + + .debug_info + 0xfaa3 + 0xfaa3 + 0x137 + + + + .debug_info + 0xfbda + 0xfbda + 0x121 + + + + .debug_info + 0xfcfb + 0xfcfb + 0x11b + + + + .debug_info + 0xfe16 + 0xfe16 + 0x117 + + + + .debug_info + 0xff2d + 0xff2d + 0x11b + + + + .debug_info + 0x10048 + 0x10048 + 0x11b + + + + .debug_info + 0x10163 + 0x10163 + 0x11b + + + + .debug_info + 0x1027e + 0x1027e + 0x123 + + + + .debug_info + 0x103a1 + 0x103a1 + 0x11f + + + + .debug_info + 0x104c0 + 0x104c0 + 0x12a + + + + .debug_info + 0x105ea + 0x105ea + 0x11f + + + + .debug_info + 0x10709 + 0x10709 + 0x123 + + + + .debug_info + 0x1082c + 0x1082c + 0x11f + + + + .debug_info + 0x1094b + 0x1094b + 0x123 + + + + .debug_info + 0x10a6e + 0x10a6e + 0x15c + + + + .debug_info + 0x10bca + 0x10bca + 0x238 + + + + .debug_info + 0x10e02 + 0x10e02 + 0x26e + + + + .debug_info + 0x11070 + 0x11070 + 0x169 + + + + .debug_info + 0x111d9 + 0x111d9 + 0x198 + + + + .debug_info + 0x11371 + 0x11371 + 0x139 + + + + .debug_info + 0x114aa + 0x114aa + 0x120 + + + + .debug_info + 0x115ca + 0x115ca + 0x177 + + + + .debug_info + 0x11741 + 0x11741 + 0x1bb + + + + .debug_info + 0x118fc + 0x118fc + 0x220 + + + + .debug_info + 0x11b1c + 0x11b1c + 0x14d + + + + .debug_info + 0x11c69 + 0x11c69 + 0x14a + + + + .debug_info + 0x11db3 + 0x11db3 + 0x2a5 + + + + .debug_info + 0x12058 + 0x12058 + 0x26e + + + + .debug_info + 0x122c6 + 0x122c6 + 0x13f + + + + .debug_info + 0x12405 + 0x12405 + 0x13f + + + + .debug_info + 0x12544 + 0x12544 + 0x167 + + + + .debug_info + 0x126ab + 0x126ab + 0x165 + + + + .debug_info + 0x12810 + 0x12810 + 0x156 + + + + .debug_info + 0x12966 + 0x12966 + 0x13f + + + + .debug_info + 0x12aa5 + 0x12aa5 + 0x152 + + + + .debug_info + 0x12bf7 + 0x12bf7 + 0x156 + + + + .debug_info + 0x12d4d + 0x12d4d + 0x13d + + + + .debug_info + 0x12e8a + 0x12e8a + 0x243 + + + + .debug_info + 0x130cd + 0x130cd + 0x25b + + + + .debug_info + 0x13328 + 0x13328 + 0x11d + + + + .debug_info + 0x13445 + 0x13445 + 0x10e + + + + .debug_info + 0x13553 + 0x13553 + 0x28b + + + + .debug_info + 0x137de + 0x137de + 0x108 + + + + .debug_info + 0x138e6 + 0x138e6 + 0x10e + + + + .debug_info + 0x139f4 + 0x139f4 + 0x10e + + + + .debug_info + 0x13b02 + 0x13b02 + 0x116 + + + + .debug_info + 0x13c18 + 0x13c18 + 0x2dd + + + + .debug_info + 0x13ef5 + 0x13ef5 + 0x19f + + + + .debug_info + 0x14094 + 0x14094 + 0x1bd + + + + .debug_info + 0x14251 + 0x14251 + 0x15e + + + + .debug_info + 0x143af + 0x143af + 0x1bd + + + + .debug_info + 0x1456c + 0x1456c + 0x22b + + + + .debug_info + 0x14797 + 0x14797 + 0x169 + + + + .debug_info + 0x14900 + 0x14900 + 0x1a3 + + + + .debug_info + 0x14aa3 + 0x14aa3 + 0x1c8 + + + + .debug_info + 0x14c6b + 0x14c6b + 0x1a5 + + + + .debug_info + 0x14e10 + 0x14e10 + 0x158 + + + + .debug_info + 0x14f68 + 0x14f68 + 0x127 + + + + .debug_info + 0x1508f + 0x1508f + 0x1a5 + + + + .debug_info + 0x15234 + 0x15234 + 0x14d + + + + .debug_info + 0x15381 + 0x15381 + 0x1bf + + + + .debug_info + 0x15540 + 0x15540 + 0x19f + + + + .debug_info + 0x156df + 0x156df + 0x1b7 + + + + .debug_info + 0x15896 + 0x15896 + 0x20c + + + + .debug_info + 0x15aa2 + 0x15aa2 + 0x19e + + + + .debug_info + 0x15c40 + 0x15c40 + 0x1a9 + + + + .debug_info + 0x15de9 + 0x15de9 + 0x107 + + + + .debug_info + 0x15ef0 + 0x15ef0 + 0x10b + + + + .debug_info + 0x15ffb + 0x15ffb + 0x203 + + + + .debug_info + 0x161fe + 0x161fe + 0x15d + + + + .debug_info + 0x1635b + 0x1635b + 0x208 + + + + .debug_info + 0x16563 + 0x16563 + 0x19b + + + + .debug_info + 0x166fe + 0x166fe + 0x147 + + + + .debug_info + 0x16845 + 0x16845 + 0xd2 + + + .debug_line + 0x0 + 0x0 + 0x4d + + + + .debug_line + 0x4d + 0x4d + 0x55 + + + + .debug_line + 0xa2 + 0xa2 + 0x4e + + + + .debug_line + 0xf0 + 0xf0 + 0x4f + + + + .debug_line + 0x13f + 0x13f + 0x4f + + + + .debug_line + 0x18e + 0x18e + 0x4f + + + + .debug_line + 0x1dd + 0x1dd + 0x4f + + + + .debug_line + 0x22c + 0x22c + 0x4f + + + + .debug_line + 0x27b + 0x27b + 0x4f + + + + .debug_line + 0x2ca + 0x2ca + 0x4f + + + + .debug_line + 0x319 + 0x319 + 0x4f + + + + .debug_line + 0x368 + 0x368 + 0x4f + + + + .debug_line + 0x3b7 + 0x3b7 + 0x4f + + + + .debug_line + 0x406 + 0x406 + 0x4f + + + + .debug_line + 0x455 + 0x455 + 0x4f + + + + .debug_line + 0x4a4 + 0x4a4 + 0x4f + + + + .debug_line + 0x4f3 + 0x4f3 + 0x4f + + + + .debug_line + 0x542 + 0x542 + 0x4f + + + + .debug_line + 0x591 + 0x591 + 0x4f + + + + .debug_line + 0x5e0 + 0x5e0 + 0x4f + + + + .debug_line + 0x62f + 0x62f + 0x4f + + + + .debug_line + 0x67e + 0x67e + 0x4f + + + + .debug_line + 0x6cd + 0x6cd + 0x4f + + + + .debug_line + 0x71c + 0x71c + 0x4f + + + + .debug_line + 0x76b + 0x76b + 0x4f + + + + .debug_line + 0x7ba + 0x7ba + 0x4f + + + + .debug_line + 0x809 + 0x809 + 0x4f + + + + .debug_line + 0x858 + 0x858 + 0x4f + + + + .debug_line + 0x8a7 + 0x8a7 + 0x4f + + + + .debug_line + 0x8f6 + 0x8f6 + 0x4f + + + + .debug_line + 0x945 + 0x945 + 0x4f + + + + .debug_line + 0x994 + 0x994 + 0x4f + + + + .debug_line + 0x9e3 + 0x9e3 + 0x4f + + + + .debug_line + 0xa32 + 0xa32 + 0x4f + + + + .debug_line + 0xa81 + 0xa81 + 0x4f + + + + .debug_line + 0xad0 + 0xad0 + 0x4f + + + + .debug_line + 0xb1f + 0xb1f + 0x4f + + + + .debug_line + 0xb6e + 0xb6e + 0x4f + + + + .debug_line + 0xbbd + 0xbbd + 0x4f + + + + .debug_line + 0xc0c + 0xc0c + 0x4f + + + + .debug_line + 0xc5b + 0xc5b + 0x4f + + + + .debug_line + 0xcaa + 0xcaa + 0x4f + + + + .debug_line + 0xcf9 + 0xcf9 + 0x4f + + + + .debug_line + 0xd48 + 0xd48 + 0x4f + + + + .debug_line + 0xd97 + 0xd97 + 0x4f + + + + .debug_line + 0xde6 + 0xde6 + 0x4f + + + + .debug_line + 0xe35 + 0xe35 + 0x4f + + + + .debug_line + 0xe84 + 0xe84 + 0x4f + + + + .debug_line + 0xed3 + 0xed3 + 0x4f + + + + .debug_line + 0xf22 + 0xf22 + 0x4f + + + + .debug_line + 0xf71 + 0xf71 + 0x4f + + + + .debug_line + 0xfc0 + 0xfc0 + 0x4f + + + + .debug_line + 0x100f + 0x100f + 0x4f + + + + .debug_line + 0x105e + 0x105e + 0x4f + + + + .debug_line + 0x10ad + 0x10ad + 0x4f + + + + .debug_line + 0x10fc + 0x10fc + 0x4f + + + + .debug_line + 0x114b + 0x114b + 0x4f + + + + .debug_line + 0x119a + 0x119a + 0x4f + + + + .debug_line + 0x11e9 + 0x11e9 + 0x4f + + + + .debug_line + 0x1238 + 0x1238 + 0x4f + + + + .debug_line + 0x1287 + 0x1287 + 0x4f + + + + .debug_line + 0x12d6 + 0x12d6 + 0x4f + + + + .debug_line + 0x1325 + 0x1325 + 0x4f + + + + .debug_line + 0x1374 + 0x1374 + 0x4f + + + + .debug_line + 0x13c3 + 0x13c3 + 0x4f + + + + .debug_line + 0x1412 + 0x1412 + 0x4f + + + + .debug_line + 0x1461 + 0x1461 + 0x4f + + + + .debug_line + 0x14b0 + 0x14b0 + 0x4f + + + + .debug_line + 0x14ff + 0x14ff + 0x4f + + + + .debug_line + 0x154e + 0x154e + 0x4f + + + + .debug_line + 0x159d + 0x159d + 0x4f + + + + .debug_line + 0x15ec + 0x15ec + 0x4f + + + + .debug_line + 0x163b + 0x163b + 0x4f + + + + .debug_line + 0x168a + 0x168a + 0x4f + + + + .debug_line + 0x16d9 + 0x16d9 + 0x4f + + + + .debug_line + 0x1728 + 0x1728 + 0x4f + + + + .debug_line + 0x1777 + 0x1777 + 0x4f + + + + .debug_line + 0x17c6 + 0x17c6 + 0x4f + + + + .debug_line + 0x1815 + 0x1815 + 0x4f + + + + .debug_line + 0x1864 + 0x1864 + 0x4f + + + + .debug_line + 0x18b3 + 0x18b3 + 0x4f + + + + .debug_line + 0x1902 + 0x1902 + 0x4f + + + + .debug_line + 0x1951 + 0x1951 + 0x4f + + + + .debug_line + 0x19a0 + 0x19a0 + 0x4f + + + + .debug_line + 0x19ef + 0x19ef + 0x4f + + + + .debug_line + 0x1a3e + 0x1a3e + 0x4f + + + + .debug_line + 0x1a8d + 0x1a8d + 0x4f + + + + .debug_line + 0x1adc + 0x1adc + 0x4f + + + + .debug_line + 0x1b2b + 0x1b2b + 0x4f + + + + .debug_line + 0x1b7a + 0x1b7a + 0x4f + + + + .debug_line + 0x1bc9 + 0x1bc9 + 0x4f + + + + .debug_line + 0x1c18 + 0x1c18 + 0x4f + + + + .debug_line + 0x1c67 + 0x1c67 + 0x4f + + + + .debug_line + 0x1cb6 + 0x1cb6 + 0x4f + + + + .debug_line + 0x1d05 + 0x1d05 + 0x4f + + + + .debug_line + 0x1d54 + 0x1d54 + 0x4f + + + + .debug_line + 0x1da3 + 0x1da3 + 0x4f + + + + .debug_line + 0x1df2 + 0x1df2 + 0x4f + + + + .debug_line + 0x1e41 + 0x1e41 + 0x4f + + + + .debug_line + 0x1e90 + 0x1e90 + 0x4f + + + + .debug_line + 0x1edf + 0x1edf + 0x4f + + + + .debug_line + 0x1f2e + 0x1f2e + 0x4f + + + + .debug_line + 0x1f7d + 0x1f7d + 0x4f + + + + .debug_line + 0x1fcc + 0x1fcc + 0x4f + + + + .debug_line + 0x201b + 0x201b + 0x4f + + + + .debug_line + 0x206a + 0x206a + 0x4f + + + + .debug_line + 0x20b9 + 0x20b9 + 0x4f + + + + .debug_line + 0x2108 + 0x2108 + 0x4f + + + + .debug_line + 0x2157 + 0x2157 + 0x4f + + + + .debug_line + 0x21a6 + 0x21a6 + 0x4f + + + + .debug_line + 0x21f5 + 0x21f5 + 0x4f + + + + .debug_line + 0x2244 + 0x2244 + 0x4f + + + + .debug_line + 0x2293 + 0x2293 + 0x4f + + + + .debug_line + 0x22e2 + 0x22e2 + 0x4f + + + + .debug_line + 0x2331 + 0x2331 + 0x4f + + + + .debug_line + 0x2380 + 0x2380 + 0x4f + + + + .debug_line + 0x23cf + 0x23cf + 0x4f + + + + .debug_line + 0x241e + 0x241e + 0x4f + + + + .debug_line + 0x246d + 0x246d + 0x4f + + + + .debug_line + 0x24bc + 0x24bc + 0x4f + + + + .debug_line + 0x250b + 0x250b + 0x4f + + + + .debug_line + 0x255a + 0x255a + 0x4f + + + + .debug_line + 0x25a9 + 0x25a9 + 0x4f + + + + .debug_line + 0x25f8 + 0x25f8 + 0x4f + + + + .debug_line + 0x2647 + 0x2647 + 0x4f + + + + .debug_line + 0x2696 + 0x2696 + 0x4f + + + + .debug_line + 0x26e5 + 0x26e5 + 0x4f + + + + .debug_line + 0x2734 + 0x2734 + 0x4f + + + + .debug_line + 0x2783 + 0x2783 + 0x4f + + + + .debug_line + 0x27d2 + 0x27d2 + 0x4f + + + + .debug_line + 0x2821 + 0x2821 + 0x4f + + + + .debug_line + 0x2870 + 0x2870 + 0x4f + + + + .debug_line + 0x28bf + 0x28bf + 0x4f + + + + .debug_line + 0x290e + 0x290e + 0x4f + + + + .debug_line + 0x295d + 0x295d + 0x4f + + + + .debug_line + 0x29ac + 0x29ac + 0x4f + + + + .debug_line + 0x29fb + 0x29fb + 0x4f + + + + .debug_line + 0x2a4a + 0x2a4a + 0x4f + + + + .debug_line + 0x2a99 + 0x2a99 + 0x4f + + + + .debug_line + 0x2ae8 + 0x2ae8 + 0x4f + + + + .debug_line + 0x2b37 + 0x2b37 + 0x4f + + + + .debug_line + 0x2b86 + 0x2b86 + 0x4f + + + + .debug_line + 0x2bd5 + 0x2bd5 + 0x4f + + + + .debug_line + 0x2c24 + 0x2c24 + 0x4f + + + + .debug_line + 0x2c73 + 0x2c73 + 0x4f + + + + .debug_line + 0x2cc2 + 0x2cc2 + 0x4f + + + + .debug_line + 0x2d11 + 0x2d11 + 0x4f + + + + .debug_line + 0x2d60 + 0x2d60 + 0x4f + + + + .debug_line + 0x2daf + 0x2daf + 0x4f + + + + .debug_line + 0x2dfe + 0x2dfe + 0x4f + + + + .debug_line + 0x2e4d + 0x2e4d + 0x4f + + + + .debug_line + 0x2e9c + 0x2e9c + 0x4f + + + + .debug_line + 0x2eeb + 0x2eeb + 0x4f + + + + .debug_line + 0x2f3a + 0x2f3a + 0x4f + + + + .debug_line + 0x2f89 + 0x2f89 + 0x4f + + + + .debug_line + 0x2fd8 + 0x2fd8 + 0x4f + + + + .debug_line + 0x3027 + 0x3027 + 0x4f + + + + .debug_line + 0x3076 + 0x3076 + 0x4f + + + + .debug_line + 0x30c5 + 0x30c5 + 0x4f + + + + .debug_line + 0x3114 + 0x3114 + 0x4f + + + + .debug_line + 0x3163 + 0x3163 + 0x4f + + + + .debug_line + 0x31b2 + 0x31b2 + 0x4f + + + + .debug_line + 0x3201 + 0x3201 + 0x4f + + + + .debug_line + 0x3250 + 0x3250 + 0x4f + + + + .debug_line + 0x329f + 0x329f + 0x4f + + + + .debug_line + 0x32ee + 0x32ee + 0x4f + + + + .debug_line + 0x333d + 0x333d + 0x4f + + + + .debug_line + 0x338c + 0x338c + 0x4f + + + + .debug_line + 0x33db + 0x33db + 0x4f + + + + .debug_line + 0x342a + 0x342a + 0x4f + + + + .debug_line + 0x3479 + 0x3479 + 0x4f + + + + .debug_line + 0x34c8 + 0x34c8 + 0x4f + + + + .debug_line + 0x3517 + 0x3517 + 0x4f + + + + .debug_line + 0x3566 + 0x3566 + 0x4f + + + + .debug_line + 0x35b5 + 0x35b5 + 0x4f + + + + .debug_line + 0x3604 + 0x3604 + 0x4f + + + + .debug_line + 0x3653 + 0x3653 + 0x4f + + + + .debug_line + 0x36a2 + 0x36a2 + 0x4f + + + + .debug_line + 0x36f1 + 0x36f1 + 0x4f + + + + .debug_line + 0x3740 + 0x3740 + 0x4f + + + + .debug_line + 0x378f + 0x378f + 0x4f + + + + .debug_line + 0x37de + 0x37de + 0x4f + + + + .debug_line + 0x382d + 0x382d + 0x4f + + + + .debug_line + 0x387c + 0x387c + 0x4f + + + + .debug_line + 0x38cb + 0x38cb + 0x4f + + + + .debug_line + 0x391a + 0x391a + 0x4f + + + + .debug_line + 0x3969 + 0x3969 + 0x4f + + + + .debug_line + 0x39b8 + 0x39b8 + 0x4f + + + + .debug_line + 0x3a07 + 0x3a07 + 0x4f + + + + .debug_line + 0x3a56 + 0x3a56 + 0x4f + + + + .debug_line + 0x3aa5 + 0x3aa5 + 0x4f + + + + .debug_line + 0x3af4 + 0x3af4 + 0x4f + + + + .debug_line + 0x3b43 + 0x3b43 + 0x4f + + + + .debug_line + 0x3b92 + 0x3b92 + 0x4f + + + + .debug_line + 0x3be1 + 0x3be1 + 0x4f + + + + .debug_line + 0x3c30 + 0x3c30 + 0x4f + + + + .debug_line + 0x3c7f + 0x3c7f + 0x4f + + + + .debug_line + 0x3cce + 0x3cce + 0x4f + + + + .debug_line + 0x3d1d + 0x3d1d + 0x4f + + + + .debug_line + 0x3d6c + 0x3d6c + 0x4f + + + + .debug_line + 0x3dbb + 0x3dbb + 0x4f + + + + .debug_line + 0x3e0a + 0x3e0a + 0x4f + + + + .debug_line + 0x3e59 + 0x3e59 + 0x4f + + + + .debug_line + 0x3ea8 + 0x3ea8 + 0x4f + + + + .debug_line + 0x3ef7 + 0x3ef7 + 0x4f + + + + .debug_line + 0x3f46 + 0x3f46 + 0x4f + + + + .debug_line + 0x3f95 + 0x3f95 + 0x4c + + + + .debug_line + 0x3fe1 + 0x3fe1 + 0x4f + + + + .debug_line + 0x4030 + 0x4030 + 0x21 + + + + .debug_line + 0x4051 + 0x4051 + 0x43 + + + + .debug_line + 0x4094 + 0x4094 + 0x43 + + + + .debug_line + 0x40d7 + 0x40d7 + 0x43 + + + + .debug_line + 0x411a + 0x411a + 0x43 + + + + .debug_line + 0x415d + 0x415d + 0x43 + + + + .debug_line + 0x41a0 + 0x41a0 + 0x43 + + + + .debug_line + 0x41e3 + 0x41e3 + 0x43 + + + + .debug_line + 0x4226 + 0x4226 + 0x43 + + + + .debug_line + 0x4269 + 0x4269 + 0x43 + + + + .debug_line + 0x42ac + 0x42ac + 0x43 + + + + .debug_line + 0x42ef + 0x42ef + 0x43 + + + + .debug_line + 0x4332 + 0x4332 + 0x43 + + + + .debug_line + 0x4375 + 0x4375 + 0x43 + + + + .debug_line + 0x43b8 + 0x43b8 + 0xb0 + + + + .debug_line + 0x4468 + 0x4468 + 0x7e + + + + .debug_line + 0x44e6 + 0x44e6 + 0x64 + + + + .debug_line + 0x454a + 0x454a + 0x87 + + + + .debug_line + 0x45d1 + 0x45d1 + 0x50 + + + + .debug_line + 0x4621 + 0x4621 + 0x4e + + + + .debug_line + 0x466f + 0x466f + 0x161 + + + + .debug_line + 0x47d0 + 0x47d0 + 0x68 + + + + .debug_line + 0x4838 + 0x4838 + 0x8c + + + + .debug_line + 0x48c4 + 0x48c4 + 0x38 + + + + .debug_line + 0x48fc + 0x48fc + 0x69 + + + + .debug_line + 0x4965 + 0x4965 + 0xf9 + + + + .debug_line + 0x4a5e + 0x4a5e + 0x79 + + + + .debug_line + 0x4ad7 + 0x4ad7 + 0x80 + + + + .debug_line + 0x4b57 + 0x4b57 + 0xa4 + + + + .debug_line + 0x4bfb + 0x4bfb + 0x51 + + + + .debug_line + 0x4c4c + 0x4c4c + 0xa3 + + + + .debug_line + 0x4cef + 0x4cef + 0x9d + + + + .debug_line + 0x4d8c + 0x4d8c + 0x50 + + + + .debug_line + 0x4ddc + 0x4ddc + 0x50 + + + + .debug_line + 0x4e2c + 0x4e2c + 0x67 + + + + .debug_line + 0x4e93 + 0x4e93 + 0x62 + + + + .debug_line + 0x4ef5 + 0x4ef5 + 0x59 + + + + .debug_line + 0x4f4e + 0x4f4e + 0x50 + + + + .debug_line + 0x4f9e + 0x4f9e + 0x53 + + + + .debug_line + 0x4ff1 + 0x4ff1 + 0x53 + + + + .debug_line + 0x5044 + 0x5044 + 0x50 + + + + .debug_line + 0x5094 + 0x5094 + 0x96 + + + + .debug_line + 0x512a + 0x512a + 0x70 + + + + .debug_line + 0x519a + 0x519a + 0x3c4 + + + + .debug_line + 0x555e + 0x555e + 0x4a + + + + .debug_line + 0x55a8 + 0x55a8 + 0x38 + + + + .debug_line + 0x55e0 + 0x55e0 + 0x83 + + + + .debug_line + 0x5663 + 0x5663 + 0x21 + + + + .debug_line + 0x5684 + 0x5684 + 0x32 + + + + .debug_line + 0x56b6 + 0x56b6 + 0x32 + + + + .debug_line + 0x56e8 + 0x56e8 + 0x32 + + + + .debug_line + 0x571a + 0x571a + 0x32 + + + + .debug_line + 0x574c + 0x574c + 0x72 + + + + .debug_line + 0x57be + 0x57be + 0x55 + + + + .debug_line + 0x5813 + 0x5813 + 0x75 + + + + .debug_line + 0x5888 + 0x5888 + 0x48 + + + + .debug_line + 0x58d0 + 0x58d0 + 0x59 + + + + .debug_line + 0x5929 + 0x5929 + 0x78 + + + + .debug_line + 0x59a1 + 0x59a1 + 0x49 + + + + .debug_line + 0x59ea + 0x59ea + 0x56 + + + + .debug_line + 0x5a40 + 0x5a40 + 0x6c + + + + .debug_line + 0x5aac + 0x5aac + 0xf7 + + + + .debug_line + 0x5ba3 + 0x5ba3 + 0xbf + + + + .debug_line + 0x5c62 + 0x5c62 + 0x21 + + + + .debug_line + 0x5c83 + 0x5c83 + 0x50 + + + + .debug_line + 0x5cd3 + 0x5cd3 + 0xae + + + + .debug_line + 0x5d81 + 0x5d81 + 0x6d + + + + .debug_line + 0x5dee + 0x5dee + 0x3f + + + + .debug_line + 0x5e2d + 0x5e2d + 0x21 + + + + .debug_line + 0x5e4e + 0x5e4e + 0x74 + + + + .debug_line + 0x5ec2 + 0x5ec2 + 0x21 + + + + .debug_line + 0x5ee3 + 0x5ee3 + 0x52 + + + + .debug_line + 0x5f35 + 0x5f35 + 0x21 + + + + .debug_line + 0x5f56 + 0x5f56 + 0x57 + + + + .debug_line + 0x5fad + 0x5fad + 0x21 + + + + .debug_line + 0x5fce + 0x5fce + 0x9a + + + + .debug_line + 0x6068 + 0x6068 + 0x21 + + + + .debug_line + 0x6089 + 0x6089 + 0x2b + + + + .debug_line + 0x60b4 + 0x60b4 + 0x66 + + + + .debug_line + 0x611a + 0x611a + 0x21 + + + + .debug_line + 0x613b + 0x613b + 0x2c + + + + .debug_line + 0x6167 + 0x6167 + 0x2c + + + + .debug_line + 0x6193 + 0x6193 + 0x5f + + + + .debug_line + 0x61f2 + 0x61f2 + 0x21 + + + + .debug_line + 0x6213 + 0x6213 + 0x4e + + + + .debug_line + 0x6261 + 0x6261 + 0x30 + + + + .debug_line + 0x6291 + 0x6291 + 0xaf + + + + .debug_line + 0x6340 + 0x6340 + 0x21 + + + + .debug_line + 0x6361 + 0x6361 + 0x63 + + + + .debug_line + 0x63c4 + 0x63c4 + 0x21 + + + + .debug_line + 0x63e5 + 0x63e5 + 0x3b + + + + .debug_line + 0x6420 + 0x6420 + 0x21 + + + + .debug_abbrev + 0x0 + 0x0 + 0x25 + + + + .debug_abbrev + 0x25 + 0x25 + 0x25 + + + + .debug_abbrev + 0x4a + 0x4a + 0x3b + + + + .debug_abbrev + 0x85 + 0x85 + 0x3b + + + + .debug_abbrev + 0xc0 + 0xc0 + 0x3b + + + + .debug_abbrev + 0xfb + 0xfb + 0x3b + + + + .debug_abbrev + 0x136 + 0x136 + 0x3b + + + + .debug_abbrev + 0x171 + 0x171 + 0x3b + + + + .debug_abbrev + 0x1ac + 0x1ac + 0x3b + + + + .debug_abbrev + 0x1e7 + 0x1e7 + 0x3b + + + + .debug_abbrev + 0x222 + 0x222 + 0x3b + + + + .debug_abbrev + 0x25d + 0x25d + 0x3b + + + + .debug_abbrev + 0x298 + 0x298 + 0x3b + + + + .debug_abbrev + 0x2d3 + 0x2d3 + 0x3b + + + + .debug_abbrev + 0x30e + 0x30e + 0x3b + + + + .debug_abbrev + 0x349 + 0x349 + 0x3b + + + + .debug_abbrev + 0x384 + 0x384 + 0x3b + + + + .debug_abbrev + 0x3bf + 0x3bf + 0x3b + + + + .debug_abbrev + 0x3fa + 0x3fa + 0x3b + + + + .debug_abbrev + 0x435 + 0x435 + 0x3b + + + + .debug_abbrev + 0x470 + 0x470 + 0x3b + + + + .debug_abbrev + 0x4ab + 0x4ab + 0x3b + + + + .debug_abbrev + 0x4e6 + 0x4e6 + 0x3b + + + + .debug_abbrev + 0x521 + 0x521 + 0x3b + + + + .debug_abbrev + 0x55c + 0x55c + 0x3b + + + + .debug_abbrev + 0x597 + 0x597 + 0x3b + + + + .debug_abbrev + 0x5d2 + 0x5d2 + 0x3b + + + + .debug_abbrev + 0x60d + 0x60d + 0x3b + + + + .debug_abbrev + 0x648 + 0x648 + 0x3b + + + + .debug_abbrev + 0x683 + 0x683 + 0x3b + + + + .debug_abbrev + 0x6be + 0x6be + 0x3b + + + + .debug_abbrev + 0x6f9 + 0x6f9 + 0x3b + + + + .debug_abbrev + 0x734 + 0x734 + 0x3b + + + + .debug_abbrev + 0x76f + 0x76f + 0x3b + + + + .debug_abbrev + 0x7aa + 0x7aa + 0x3b + + + + .debug_abbrev + 0x7e5 + 0x7e5 + 0x3b + + + + .debug_abbrev + 0x820 + 0x820 + 0x3b + + + + .debug_abbrev + 0x85b + 0x85b + 0x3b + + + + .debug_abbrev + 0x896 + 0x896 + 0x3b + + + + .debug_abbrev + 0x8d1 + 0x8d1 + 0x3b + + + + .debug_abbrev + 0x90c + 0x90c + 0x3b + + + + .debug_abbrev + 0x947 + 0x947 + 0x3b + + + + .debug_abbrev + 0x982 + 0x982 + 0x3b + + + + .debug_abbrev + 0x9bd + 0x9bd + 0x3b + + + + .debug_abbrev + 0x9f8 + 0x9f8 + 0x3b + + + + .debug_abbrev + 0xa33 + 0xa33 + 0x3b + + + + .debug_abbrev + 0xa6e + 0xa6e + 0x3b + + + + .debug_abbrev + 0xaa9 + 0xaa9 + 0x3b + + + + .debug_abbrev + 0xae4 + 0xae4 + 0x3b + + + + .debug_abbrev + 0xb1f + 0xb1f + 0x3b + + + + .debug_abbrev + 0xb5a + 0xb5a + 0x3b + + + + .debug_abbrev + 0xb95 + 0xb95 + 0x3b + + + + .debug_abbrev + 0xbd0 + 0xbd0 + 0x3b + + + + .debug_abbrev + 0xc0b + 0xc0b + 0x3b + + + + .debug_abbrev + 0xc46 + 0xc46 + 0x3b + + + + .debug_abbrev + 0xc81 + 0xc81 + 0x3b + + + + .debug_abbrev + 0xcbc + 0xcbc + 0x3b + + + + .debug_abbrev + 0xcf7 + 0xcf7 + 0x3b + + + + .debug_abbrev + 0xd32 + 0xd32 + 0x3b + + + + .debug_abbrev + 0xd6d + 0xd6d + 0x3b + + + + .debug_abbrev + 0xda8 + 0xda8 + 0x3b + + + + .debug_abbrev + 0xde3 + 0xde3 + 0x3b + + + + .debug_abbrev + 0xe1e + 0xe1e + 0x3b + + + + .debug_abbrev + 0xe59 + 0xe59 + 0x3b + + + + .debug_abbrev + 0xe94 + 0xe94 + 0x3b + + + + .debug_abbrev + 0xecf + 0xecf + 0x3b + + + + .debug_abbrev + 0xf0a + 0xf0a + 0x3b + + + + .debug_abbrev + 0xf45 + 0xf45 + 0x3b + + + + .debug_abbrev + 0xf80 + 0xf80 + 0x3b + + + + .debug_abbrev + 0xfbb + 0xfbb + 0x3b + + + + .debug_abbrev + 0xff6 + 0xff6 + 0x3b + + + + .debug_abbrev + 0x1031 + 0x1031 + 0x3b + + + + .debug_abbrev + 0x106c + 0x106c + 0x3b + + + + .debug_abbrev + 0x10a7 + 0x10a7 + 0x3b + + + + .debug_abbrev + 0x10e2 + 0x10e2 + 0x3b + + + + .debug_abbrev + 0x111d + 0x111d + 0x3b + + + + .debug_abbrev + 0x1158 + 0x1158 + 0x3b + + + + .debug_abbrev + 0x1193 + 0x1193 + 0x3b + + + + .debug_abbrev + 0x11ce + 0x11ce + 0x3b + + + + .debug_abbrev + 0x1209 + 0x1209 + 0x3b + + + + .debug_abbrev + 0x1244 + 0x1244 + 0x3b + + + + .debug_abbrev + 0x127f + 0x127f + 0x3b + + + + .debug_abbrev + 0x12ba + 0x12ba + 0x3b + + + + .debug_abbrev + 0x12f5 + 0x12f5 + 0x3b + + + + .debug_abbrev + 0x1330 + 0x1330 + 0x3b + + + + .debug_abbrev + 0x136b + 0x136b + 0x3b + + + + .debug_abbrev + 0x13a6 + 0x13a6 + 0x3b + + + + .debug_abbrev + 0x13e1 + 0x13e1 + 0x3b + + + + .debug_abbrev + 0x141c + 0x141c + 0x3b + + + + .debug_abbrev + 0x1457 + 0x1457 + 0x3b + + + + .debug_abbrev + 0x1492 + 0x1492 + 0x3b + + + + .debug_abbrev + 0x14cd + 0x14cd + 0x3b + + + + .debug_abbrev + 0x1508 + 0x1508 + 0x3b + + + + .debug_abbrev + 0x1543 + 0x1543 + 0x3b + + + + .debug_abbrev + 0x157e + 0x157e + 0x3b + + + + .debug_abbrev + 0x15b9 + 0x15b9 + 0x3b + + + + .debug_abbrev + 0x15f4 + 0x15f4 + 0x3b + + + + .debug_abbrev + 0x162f + 0x162f + 0x3b + + + + .debug_abbrev + 0x166a + 0x166a + 0x3b + + + + .debug_abbrev + 0x16a5 + 0x16a5 + 0x3b + + + + .debug_abbrev + 0x16e0 + 0x16e0 + 0x3b + + + + .debug_abbrev + 0x171b + 0x171b + 0x3b + + + + .debug_abbrev + 0x1756 + 0x1756 + 0x3b + + + + .debug_abbrev + 0x1791 + 0x1791 + 0x3b + + + + .debug_abbrev + 0x17cc + 0x17cc + 0x3b + + + + .debug_abbrev + 0x1807 + 0x1807 + 0x3b + + + + .debug_abbrev + 0x1842 + 0x1842 + 0x3b + + + + .debug_abbrev + 0x187d + 0x187d + 0x3b + + + + .debug_abbrev + 0x18b8 + 0x18b8 + 0x3b + + + + .debug_abbrev + 0x18f3 + 0x18f3 + 0x3b + + + + .debug_abbrev + 0x192e + 0x192e + 0x3b + + + + .debug_abbrev + 0x1969 + 0x1969 + 0x3b + + + + .debug_abbrev + 0x19a4 + 0x19a4 + 0x3b + + + + .debug_abbrev + 0x19df + 0x19df + 0x3b + + + + .debug_abbrev + 0x1a1a + 0x1a1a + 0x3b + + + + .debug_abbrev + 0x1a55 + 0x1a55 + 0x3b + + + + .debug_abbrev + 0x1a90 + 0x1a90 + 0x3b + + + + .debug_abbrev + 0x1acb + 0x1acb + 0x3b + + + + .debug_abbrev + 0x1b06 + 0x1b06 + 0x3b + + + + .debug_abbrev + 0x1b41 + 0x1b41 + 0x3b + + + + .debug_abbrev + 0x1b7c + 0x1b7c + 0x3b + + + + .debug_abbrev + 0x1bb7 + 0x1bb7 + 0x3b + + + + .debug_abbrev + 0x1bf2 + 0x1bf2 + 0x3b + + + + .debug_abbrev + 0x1c2d + 0x1c2d + 0x3b + + + + .debug_abbrev + 0x1c68 + 0x1c68 + 0x3b + + + + .debug_abbrev + 0x1ca3 + 0x1ca3 + 0x3b + + + + .debug_abbrev + 0x1cde + 0x1cde + 0x3b + + + + .debug_abbrev + 0x1d19 + 0x1d19 + 0x3b + + + + .debug_abbrev + 0x1d54 + 0x1d54 + 0x3b + + + + .debug_abbrev + 0x1d8f + 0x1d8f + 0x3b + + + + .debug_abbrev + 0x1dca + 0x1dca + 0x3b + + + + .debug_abbrev + 0x1e05 + 0x1e05 + 0x3b + + + + .debug_abbrev + 0x1e40 + 0x1e40 + 0x3b + + + + .debug_abbrev + 0x1e7b + 0x1e7b + 0x3b + + + + .debug_abbrev + 0x1eb6 + 0x1eb6 + 0x3b + + + + .debug_abbrev + 0x1ef1 + 0x1ef1 + 0x3b + + + + .debug_abbrev + 0x1f2c + 0x1f2c + 0x3b + + + + .debug_abbrev + 0x1f67 + 0x1f67 + 0x3b + + + + .debug_abbrev + 0x1fa2 + 0x1fa2 + 0x3b + + + + .debug_abbrev + 0x1fdd + 0x1fdd + 0x3b + + + + .debug_abbrev + 0x2018 + 0x2018 + 0x3b + + + + .debug_abbrev + 0x2053 + 0x2053 + 0x3b + + + + .debug_abbrev + 0x208e + 0x208e + 0x3b + + + + .debug_abbrev + 0x20c9 + 0x20c9 + 0x3b + + + + .debug_abbrev + 0x2104 + 0x2104 + 0x3b + + + + .debug_abbrev + 0x213f + 0x213f + 0x3b + + + + .debug_abbrev + 0x217a + 0x217a + 0x3b + + + + .debug_abbrev + 0x21b5 + 0x21b5 + 0x3b + + + + .debug_abbrev + 0x21f0 + 0x21f0 + 0x3b + + + + .debug_abbrev + 0x222b + 0x222b + 0x3b + + + + .debug_abbrev + 0x2266 + 0x2266 + 0x3b + + + + .debug_abbrev + 0x22a1 + 0x22a1 + 0x3b + + + + .debug_abbrev + 0x22dc + 0x22dc + 0x3b + + + + .debug_abbrev + 0x2317 + 0x2317 + 0x3b + + + + .debug_abbrev + 0x2352 + 0x2352 + 0x3b + + + + .debug_abbrev + 0x238d + 0x238d + 0x3b + + + + .debug_abbrev + 0x23c8 + 0x23c8 + 0x3b + + + + .debug_abbrev + 0x2403 + 0x2403 + 0x3b + + + + .debug_abbrev + 0x243e + 0x243e + 0x3b + + + + .debug_abbrev + 0x2479 + 0x2479 + 0x3b + + + + .debug_abbrev + 0x24b4 + 0x24b4 + 0x3b + + + + .debug_abbrev + 0x24ef + 0x24ef + 0x3b + + + + .debug_abbrev + 0x252a + 0x252a + 0x3b + + + + .debug_abbrev + 0x2565 + 0x2565 + 0x3b + + + + .debug_abbrev + 0x25a0 + 0x25a0 + 0x3b + + + + .debug_abbrev + 0x25db + 0x25db + 0x3b + + + + .debug_abbrev + 0x2616 + 0x2616 + 0x3b + + + + .debug_abbrev + 0x2651 + 0x2651 + 0x3b + + + + .debug_abbrev + 0x268c + 0x268c + 0x3b + + + + .debug_abbrev + 0x26c7 + 0x26c7 + 0x3b + + + + .debug_abbrev + 0x2702 + 0x2702 + 0x3b + + + + .debug_abbrev + 0x273d + 0x273d + 0x3b + + + + .debug_abbrev + 0x2778 + 0x2778 + 0x3b + + + + .debug_abbrev + 0x27b3 + 0x27b3 + 0x3b + + + + .debug_abbrev + 0x27ee + 0x27ee + 0x3b + + + + .debug_abbrev + 0x2829 + 0x2829 + 0x3b + + + + .debug_abbrev + 0x2864 + 0x2864 + 0x3b + + + + .debug_abbrev + 0x289f + 0x289f + 0x3b + + + + .debug_abbrev + 0x28da + 0x28da + 0x3b + + + + .debug_abbrev + 0x2915 + 0x2915 + 0x3b + + + + .debug_abbrev + 0x2950 + 0x2950 + 0x3b + + + + .debug_abbrev + 0x298b + 0x298b + 0x3b + + + + .debug_abbrev + 0x29c6 + 0x29c6 + 0x3b + + + + .debug_abbrev + 0x2a01 + 0x2a01 + 0x3b + + + + .debug_abbrev + 0x2a3c + 0x2a3c + 0x3b + + + + .debug_abbrev + 0x2a77 + 0x2a77 + 0x3b + + + + .debug_abbrev + 0x2ab2 + 0x2ab2 + 0x3b + + + + .debug_abbrev + 0x2aed + 0x2aed + 0x3b + + + + .debug_abbrev + 0x2b28 + 0x2b28 + 0x3b + + + + .debug_abbrev + 0x2b63 + 0x2b63 + 0x3b + + + + .debug_abbrev + 0x2b9e + 0x2b9e + 0x3b + + + + .debug_abbrev + 0x2bd9 + 0x2bd9 + 0x3b + + + + .debug_abbrev + 0x2c14 + 0x2c14 + 0x3b + + + + .debug_abbrev + 0x2c4f + 0x2c4f + 0x3b + + + + .debug_abbrev + 0x2c8a + 0x2c8a + 0x3b + + + + .debug_abbrev + 0x2cc5 + 0x2cc5 + 0x3b + + + + .debug_abbrev + 0x2d00 + 0x2d00 + 0x3b + + + + .debug_abbrev + 0x2d3b + 0x2d3b + 0x3b + + + + .debug_abbrev + 0x2d76 + 0x2d76 + 0x3b + + + + .debug_abbrev + 0x2db1 + 0x2db1 + 0x3b + + + + .debug_abbrev + 0x2dec + 0x2dec + 0x3b + + + + .debug_abbrev + 0x2e27 + 0x2e27 + 0x3b + + + + .debug_abbrev + 0x2e62 + 0x2e62 + 0x3b + + + + .debug_abbrev + 0x2e9d + 0x2e9d + 0x3b + + + + .debug_abbrev + 0x2ed8 + 0x2ed8 + 0x3b + + + + .debug_abbrev + 0x2f13 + 0x2f13 + 0x3b + + + + .debug_abbrev + 0x2f4e + 0x2f4e + 0x49 + + + + .debug_abbrev + 0x2f97 + 0x2f97 + 0x3b + + + + .debug_abbrev + 0x2fd2 + 0x2fd2 + 0x1c + + + + .debug_abbrev + 0x2fee + 0x2fee + 0x26 + + + + .debug_abbrev + 0x3014 + 0x3014 + 0x26 + + + + .debug_abbrev + 0x303a + 0x303a + 0x26 + + + + .debug_abbrev + 0x3060 + 0x3060 + 0x26 + + + + .debug_abbrev + 0x3086 + 0x3086 + 0x26 + + + + .debug_abbrev + 0x30ac + 0x30ac + 0x26 + + + + .debug_abbrev + 0x30d2 + 0x30d2 + 0x26 + + + + .debug_abbrev + 0x30f8 + 0x30f8 + 0x26 + + + + .debug_abbrev + 0x311e + 0x311e + 0x26 + + + + .debug_abbrev + 0x3144 + 0x3144 + 0x26 + + + + .debug_abbrev + 0x316a + 0x316a + 0x26 + + + + .debug_abbrev + 0x3190 + 0x3190 + 0x26 + + + + .debug_abbrev + 0x31b6 + 0x31b6 + 0x26 + + + + .debug_abbrev + 0x31dc + 0x31dc + 0x182 + + + + .debug_abbrev + 0x335e + 0x335e + 0x51 + + + + .debug_abbrev + 0x33af + 0x33af + 0x5c + + + + .debug_abbrev + 0x340b + 0x340b + 0x5c + + + + .debug_abbrev + 0x3467 + 0x3467 + 0x46 + + + + .debug_abbrev + 0x34ad + 0x34ad + 0x5f + + + + .debug_abbrev + 0x350c + 0x350c + 0x15a + + + + .debug_abbrev + 0x3666 + 0x3666 + 0x46 + + + + .debug_abbrev + 0x36ac + 0x36ac + 0xde + + + + .debug_abbrev + 0x378a + 0x378a + 0x28 + + + + .debug_abbrev + 0x37b2 + 0x37b2 + 0x51 + + + + .debug_abbrev + 0x3803 + 0x3803 + 0x126 + + + + .debug_abbrev + 0x3929 + 0x3929 + 0x63 + + + + .debug_abbrev + 0x398c + 0x398c + 0x6c + + + + .debug_abbrev + 0x39f8 + 0x39f8 + 0x46 + + + + .debug_abbrev + 0x3a3e + 0x3a3e + 0x51 + + + + .debug_abbrev + 0x3a8f + 0x3a8f + 0x6a + + + + .debug_abbrev + 0x3af9 + 0x3af9 + 0x6a + + + + .debug_abbrev + 0x3b63 + 0x3b63 + 0x46 + + + + .debug_abbrev + 0x3ba9 + 0x3ba9 + 0x46 + + + + .debug_abbrev + 0x3bef + 0x3bef + 0x5d + + + + .debug_abbrev + 0x3c4c + 0x3c4c + 0x54 + + + + .debug_abbrev + 0x3ca0 + 0x3ca0 + 0x54 + + + + .debug_abbrev + 0x3cf4 + 0x3cf4 + 0x46 + + + + .debug_abbrev + 0x3d3a + 0x3d3a + 0x54 + + + + .debug_abbrev + 0x3d8e + 0x3d8e + 0x54 + + + + .debug_abbrev + 0x3de2 + 0x3de2 + 0x46 + + + + .debug_abbrev + 0x3e28 + 0x3e28 + 0x6c + + + + .debug_abbrev + 0x3e94 + 0x3e94 + 0x6a + + + + .debug_abbrev + 0x3efe + 0x3efe + 0x16c + + + + .debug_abbrev + 0x406a + 0x406a + 0x33 + + + + .debug_abbrev + 0x409d + 0x409d + 0x26 + + + + .debug_abbrev + 0x40c3 + 0x40c3 + 0x53 + + + + .debug_abbrev + 0x4116 + 0x4116 + 0x5b + + + + .debug_abbrev + 0x4171 + 0x4171 + 0x26 + + + + .debug_abbrev + 0x4197 + 0x4197 + 0x28 + + + + .debug_abbrev + 0x41bf + 0x41bf + 0x28 + + + + .debug_abbrev + 0x41e7 + 0x41e7 + 0x26 + + + + .debug_abbrev + 0x420d + 0x420d + 0x61 + + + + .debug_abbrev + 0x426e + 0x426e + 0x6a + + + + .debug_abbrev + 0x42d8 + 0x42d8 + 0x5f + + + + .debug_abbrev + 0x4337 + 0x4337 + 0x6a + + + + .debug_abbrev + 0x43a1 + 0x43a1 + 0x5c + + + + .debug_abbrev + 0x43fd + 0x43fd + 0x6a + + + + .debug_abbrev + 0x4467 + 0x4467 + 0x5c + + + + .debug_abbrev + 0x44c3 + 0x44c3 + 0x5c + + + + .debug_abbrev + 0x451f + 0x451f + 0x5c + + + + .debug_abbrev + 0x457b + 0x457b + 0xf7 + + + + .debug_abbrev + 0x4672 + 0x4672 + 0x6f + + + + .debug_abbrev + 0x46e1 + 0x46e1 + 0x3b + + + + .debug_abbrev + 0x471c + 0x471c + 0x3d + + + + .debug_abbrev + 0x4759 + 0x4759 + 0x3b + + + + .debug_abbrev + 0x4794 + 0x4794 + 0x3b + + + + .debug_abbrev + 0x47cf + 0x47cf + 0x4b + + + + .debug_abbrev + 0x481a + 0x481a + 0x1c + + + + .debug_abbrev + 0x4836 + 0x4836 + 0x71 + + + + .debug_abbrev + 0x48a7 + 0x48a7 + 0xb3 + + + + .debug_abbrev + 0x495a + 0x495a + 0x6d + + + + .debug_abbrev + 0x49c7 + 0x49c7 + 0x44 + + + + .debug_abbrev + 0x4a0b + 0x4a0b + 0x6d + + + + .debug_abbrev + 0x4a78 + 0x4a78 + 0x44 + + + + .debug_abbrev + 0x4abc + 0x4abc + 0x5f + + + + .debug_abbrev + 0x4b1b + 0x4b1b + 0x44 + + + + .debug_abbrev + 0x4b5f + 0x4b5f + 0x28 + + + + .debug_abbrev + 0x4b87 + 0x4b87 + 0xa0 + + + + .debug_abbrev + 0x4c27 + 0x4c27 + 0x57 + + + + .debug_abbrev + 0x4c7e + 0x4c7e + 0x28 + + + + .debug_abbrev + 0x4ca6 + 0x4ca6 + 0x28 + + + + .debug_abbrev + 0x4cce + 0x4cce + 0x5f + + + + .debug_abbrev + 0x4d2d + 0x4d2d + 0x3a + + + + .debug_abbrev + 0x4d67 + 0x4d67 + 0x64 + + + + .debug_abbrev + 0x4dcb + 0x4dcb + 0x79 + + + + .debug_abbrev + 0x4e44 + 0x4e44 + 0x61 + + + + .debug_abbrev + 0x4ea5 + 0x4ea5 + 0x44 + + + + .debug_abbrev + 0x4ee9 + 0x4ee9 + 0x61 + + + + .debug_abbrev + 0x4f4a + 0x4f4a + 0x44 + + + + .debug_abbrev + 0x4f8e + 0x4f8e + 0x49 + + + + .debug_abbrev + 0x4fd7 + 0x4fd7 + 0x1c + + + + .debug_abbrev + 0x4ff3 + 0x4ff3 + 0xf + + + .debug_aranges + 0x0 + 0x0 + 0x20 + + + + .debug_aranges + 0x20 + 0x20 + 0x20 + + + + .debug_aranges + 0x40 + 0x40 + 0x20 + + + + .debug_aranges + 0x60 + 0x60 + 0x20 + + + + .debug_aranges + 0x80 + 0x80 + 0x20 + + + + .debug_aranges + 0xa0 + 0xa0 + 0x20 + + + + .debug_aranges + 0xc0 + 0xc0 + 0x20 + + + + .debug_aranges + 0xe0 + 0xe0 + 0x20 + + + + .debug_aranges + 0x100 + 0x100 + 0x20 + + + + .debug_aranges + 0x120 + 0x120 + 0x20 + + + + .debug_aranges + 0x140 + 0x140 + 0x20 + + + + .debug_aranges + 0x160 + 0x160 + 0x20 + + + + .debug_aranges + 0x180 + 0x180 + 0x20 + + + + .debug_aranges + 0x1a0 + 0x1a0 + 0x20 + + + + .debug_aranges + 0x1c0 + 0x1c0 + 0x20 + + + + .debug_aranges + 0x1e0 + 0x1e0 + 0x20 + + + + .debug_aranges + 0x200 + 0x200 + 0x20 + + + + .debug_aranges + 0x220 + 0x220 + 0x20 + + + + .debug_aranges + 0x240 + 0x240 + 0x20 + + + + .debug_aranges + 0x260 + 0x260 + 0x20 + + + + .debug_aranges + 0x280 + 0x280 + 0x20 + + + + .debug_aranges + 0x2a0 + 0x2a0 + 0x20 + + + + .debug_aranges + 0x2c0 + 0x2c0 + 0x20 + + + + .debug_aranges + 0x2e0 + 0x2e0 + 0x20 + + + + .debug_aranges + 0x300 + 0x300 + 0x20 + + + + .debug_aranges + 0x320 + 0x320 + 0x20 + + + + .debug_aranges + 0x340 + 0x340 + 0x20 + + + + .debug_aranges + 0x360 + 0x360 + 0x20 + + + + .debug_aranges + 0x380 + 0x380 + 0x20 + + + + .debug_aranges + 0x3a0 + 0x3a0 + 0x20 + + + + .debug_aranges + 0x3c0 + 0x3c0 + 0x20 + + + + .debug_aranges + 0x3e0 + 0x3e0 + 0x20 + + + + .debug_aranges + 0x400 + 0x400 + 0x20 + + + + .debug_aranges + 0x420 + 0x420 + 0x20 + + + + .debug_aranges + 0x440 + 0x440 + 0x20 + + + + .debug_aranges + 0x460 + 0x460 + 0x20 + + + + .debug_aranges + 0x480 + 0x480 + 0x20 + + + + .debug_aranges + 0x4a0 + 0x4a0 + 0x20 + + + + .debug_aranges + 0x4c0 + 0x4c0 + 0x20 + + + + .debug_aranges + 0x4e0 + 0x4e0 + 0x20 + + + + .debug_aranges + 0x500 + 0x500 + 0x20 + + + + .debug_aranges + 0x520 + 0x520 + 0x20 + + + + .debug_aranges + 0x540 + 0x540 + 0x20 + + + + .debug_aranges + 0x560 + 0x560 + 0x20 + + + + .debug_aranges + 0x580 + 0x580 + 0x20 + + + + .debug_aranges + 0x5a0 + 0x5a0 + 0x20 + + + + .debug_aranges + 0x5c0 + 0x5c0 + 0x20 + + + + .debug_aranges + 0x5e0 + 0x5e0 + 0x20 + + + + .debug_aranges + 0x600 + 0x600 + 0x20 + + + + .debug_aranges + 0x620 + 0x620 + 0x20 + + + + .debug_aranges + 0x640 + 0x640 + 0x20 + + + + .debug_aranges + 0x660 + 0x660 + 0x20 + + + + .debug_aranges + 0x680 + 0x680 + 0x20 + + + + .debug_aranges + 0x6a0 + 0x6a0 + 0x20 + + + + .debug_aranges + 0x6c0 + 0x6c0 + 0x20 + + + + .debug_aranges + 0x6e0 + 0x6e0 + 0x20 + + + + .debug_aranges + 0x700 + 0x700 + 0x20 + + + + .debug_aranges + 0x720 + 0x720 + 0x20 + + + + .debug_aranges + 0x740 + 0x740 + 0x20 + + + + .debug_aranges + 0x760 + 0x760 + 0x20 + + + + .debug_aranges + 0x780 + 0x780 + 0x20 + + + + .debug_aranges + 0x7a0 + 0x7a0 + 0x20 + + + + .debug_aranges + 0x7c0 + 0x7c0 + 0x20 + + + + .debug_aranges + 0x7e0 + 0x7e0 + 0x20 + + + + .debug_aranges + 0x800 + 0x800 + 0x20 + + + + .debug_aranges + 0x820 + 0x820 + 0x20 + + + + .debug_aranges + 0x840 + 0x840 + 0x20 + + + + .debug_aranges + 0x860 + 0x860 + 0x20 + + + + .debug_aranges + 0x880 + 0x880 + 0x20 + + + + .debug_aranges + 0x8a0 + 0x8a0 + 0x20 + + + + .debug_aranges + 0x8c0 + 0x8c0 + 0x20 + + + + .debug_aranges + 0x8e0 + 0x8e0 + 0x20 + + + + .debug_aranges + 0x900 + 0x900 + 0x20 + + + + .debug_aranges + 0x920 + 0x920 + 0x20 + + + + .debug_aranges + 0x940 + 0x940 + 0x20 + + + + .debug_aranges + 0x960 + 0x960 + 0x20 + + + + .debug_aranges + 0x980 + 0x980 + 0x20 + + + + .debug_aranges + 0x9a0 + 0x9a0 + 0x20 + + + + .debug_aranges + 0x9c0 + 0x9c0 + 0x20 + + + + .debug_aranges + 0x9e0 + 0x9e0 + 0x20 + + + + .debug_aranges + 0xa00 + 0xa00 + 0x20 + + + + .debug_aranges + 0xa20 + 0xa20 + 0x20 + + + + .debug_aranges + 0xa40 + 0xa40 + 0x20 + + + + .debug_aranges + 0xa60 + 0xa60 + 0x20 + + + + .debug_aranges + 0xa80 + 0xa80 + 0x20 + + + + .debug_aranges + 0xaa0 + 0xaa0 + 0x20 + + + + .debug_aranges + 0xac0 + 0xac0 + 0x20 + + + + .debug_aranges + 0xae0 + 0xae0 + 0x20 + + + + .debug_aranges + 0xb00 + 0xb00 + 0x20 + + + + .debug_aranges + 0xb20 + 0xb20 + 0x20 + + + + .debug_aranges + 0xb40 + 0xb40 + 0x20 + + + + .debug_aranges + 0xb60 + 0xb60 + 0x20 + + + + .debug_aranges + 0xb80 + 0xb80 + 0x20 + + + + .debug_aranges + 0xba0 + 0xba0 + 0x20 + + + + .debug_aranges + 0xbc0 + 0xbc0 + 0x20 + + + + .debug_aranges + 0xbe0 + 0xbe0 + 0x20 + + + + .debug_aranges + 0xc00 + 0xc00 + 0x20 + + + + .debug_aranges + 0xc20 + 0xc20 + 0x20 + + + + .debug_aranges + 0xc40 + 0xc40 + 0x20 + + + + .debug_aranges + 0xc60 + 0xc60 + 0x20 + + + + .debug_aranges + 0xc80 + 0xc80 + 0x20 + + + + .debug_aranges + 0xca0 + 0xca0 + 0x20 + + + + .debug_aranges + 0xcc0 + 0xcc0 + 0x20 + + + + .debug_aranges + 0xce0 + 0xce0 + 0x20 + + + + .debug_aranges + 0xd00 + 0xd00 + 0x20 + + + + .debug_aranges + 0xd20 + 0xd20 + 0x20 + + + + .debug_aranges + 0xd40 + 0xd40 + 0x20 + + + + .debug_aranges + 0xd60 + 0xd60 + 0x20 + + + + .debug_aranges + 0xd80 + 0xd80 + 0x20 + + + + .debug_aranges + 0xda0 + 0xda0 + 0x20 + + + + .debug_aranges + 0xdc0 + 0xdc0 + 0x20 + + + + .debug_aranges + 0xde0 + 0xde0 + 0x20 + + + + .debug_aranges + 0xe00 + 0xe00 + 0x20 + + + + .debug_aranges + 0xe20 + 0xe20 + 0x20 + + + + .debug_aranges + 0xe40 + 0xe40 + 0x20 + + + + .debug_aranges + 0xe60 + 0xe60 + 0x20 + + + + .debug_aranges + 0xe80 + 0xe80 + 0x20 + + + + .debug_aranges + 0xea0 + 0xea0 + 0x20 + + + + .debug_aranges + 0xec0 + 0xec0 + 0x20 + + + + .debug_aranges + 0xee0 + 0xee0 + 0x20 + + + + .debug_aranges + 0xf00 + 0xf00 + 0x20 + + + + .debug_aranges + 0xf20 + 0xf20 + 0x20 + + + + .debug_aranges + 0xf40 + 0xf40 + 0x20 + + + + .debug_aranges + 0xf60 + 0xf60 + 0x20 + + + + .debug_aranges + 0xf80 + 0xf80 + 0x20 + + + + .debug_aranges + 0xfa0 + 0xfa0 + 0x20 + + + + .debug_aranges + 0xfc0 + 0xfc0 + 0x20 + + + + .debug_aranges + 0xfe0 + 0xfe0 + 0x20 + + + + .debug_aranges + 0x1000 + 0x1000 + 0x20 + + + + .debug_aranges + 0x1020 + 0x1020 + 0x20 + + + + .debug_aranges + 0x1040 + 0x1040 + 0x20 + + + + .debug_aranges + 0x1060 + 0x1060 + 0x20 + + + + .debug_aranges + 0x1080 + 0x1080 + 0x20 + + + + .debug_aranges + 0x10a0 + 0x10a0 + 0x20 + + + + .debug_aranges + 0x10c0 + 0x10c0 + 0x20 + + + + .debug_aranges + 0x10e0 + 0x10e0 + 0x20 + + + + .debug_aranges + 0x1100 + 0x1100 + 0x20 + + + + .debug_aranges + 0x1120 + 0x1120 + 0x20 + + + + .debug_aranges + 0x1140 + 0x1140 + 0x20 + + + + .debug_aranges + 0x1160 + 0x1160 + 0x20 + + + + .debug_aranges + 0x1180 + 0x1180 + 0x20 + + + + .debug_aranges + 0x11a0 + 0x11a0 + 0x20 + + + + .debug_aranges + 0x11c0 + 0x11c0 + 0x20 + + + + .debug_aranges + 0x11e0 + 0x11e0 + 0x20 + + + + .debug_aranges + 0x1200 + 0x1200 + 0x20 + + + + .debug_aranges + 0x1220 + 0x1220 + 0x20 + + + + .debug_aranges + 0x1240 + 0x1240 + 0x20 + + + + .debug_aranges + 0x1260 + 0x1260 + 0x20 + + + + .debug_aranges + 0x1280 + 0x1280 + 0x20 + + + + .debug_aranges + 0x12a0 + 0x12a0 + 0x20 + + + + .debug_aranges + 0x12c0 + 0x12c0 + 0x20 + + + + .debug_aranges + 0x12e0 + 0x12e0 + 0x20 + + + + .debug_aranges + 0x1300 + 0x1300 + 0x20 + + + + .debug_aranges + 0x1320 + 0x1320 + 0x20 + + + + .debug_aranges + 0x1340 + 0x1340 + 0x20 + + + + .debug_aranges + 0x1360 + 0x1360 + 0x20 + + + + .debug_aranges + 0x1380 + 0x1380 + 0x20 + + + + .debug_aranges + 0x13a0 + 0x13a0 + 0x20 + + + + .debug_aranges + 0x13c0 + 0x13c0 + 0x20 + + + + .debug_aranges + 0x13e0 + 0x13e0 + 0x20 + + + + .debug_aranges + 0x1400 + 0x1400 + 0x20 + + + + .debug_aranges + 0x1420 + 0x1420 + 0x20 + + + + .debug_aranges + 0x1440 + 0x1440 + 0x20 + + + + .debug_aranges + 0x1460 + 0x1460 + 0x20 + + + + .debug_aranges + 0x1480 + 0x1480 + 0x20 + + + + .debug_aranges + 0x14a0 + 0x14a0 + 0x20 + + + + .debug_aranges + 0x14c0 + 0x14c0 + 0x20 + + + + .debug_aranges + 0x14e0 + 0x14e0 + 0x20 + + + + .debug_aranges + 0x1500 + 0x1500 + 0x20 + + + + .debug_aranges + 0x1520 + 0x1520 + 0x20 + + + + .debug_aranges + 0x1540 + 0x1540 + 0x20 + + + + .debug_aranges + 0x1560 + 0x1560 + 0x20 + + + + .debug_aranges + 0x1580 + 0x1580 + 0x20 + + + + .debug_aranges + 0x15a0 + 0x15a0 + 0x20 + + + + .debug_aranges + 0x15c0 + 0x15c0 + 0x20 + + + + .debug_aranges + 0x15e0 + 0x15e0 + 0x20 + + + + .debug_aranges + 0x1600 + 0x1600 + 0x20 + + + + .debug_aranges + 0x1620 + 0x1620 + 0x20 + + + + .debug_aranges + 0x1640 + 0x1640 + 0x20 + + + + .debug_aranges + 0x1660 + 0x1660 + 0x20 + + + + .debug_aranges + 0x1680 + 0x1680 + 0x20 + + + + .debug_aranges + 0x16a0 + 0x16a0 + 0x20 + + + + .debug_aranges + 0x16c0 + 0x16c0 + 0x20 + + + + .debug_aranges + 0x16e0 + 0x16e0 + 0x20 + + + + .debug_aranges + 0x1700 + 0x1700 + 0x20 + + + + .debug_aranges + 0x1720 + 0x1720 + 0x20 + + + + .debug_aranges + 0x1740 + 0x1740 + 0x20 + + + + .debug_aranges + 0x1760 + 0x1760 + 0x20 + + + + .debug_aranges + 0x1780 + 0x1780 + 0x20 + + + + .debug_aranges + 0x17a0 + 0x17a0 + 0x20 + + + + .debug_aranges + 0x17c0 + 0x17c0 + 0x20 + + + + .debug_aranges + 0x17e0 + 0x17e0 + 0x20 + + + + .debug_aranges + 0x1800 + 0x1800 + 0x20 + + + + .debug_aranges + 0x1820 + 0x1820 + 0x20 + + + + .debug_aranges + 0x1840 + 0x1840 + 0x20 + + + + .debug_aranges + 0x1860 + 0x1860 + 0x20 + + + + .debug_aranges + 0x1880 + 0x1880 + 0x20 + + + + .debug_aranges + 0x18a0 + 0x18a0 + 0x20 + + + + .debug_aranges + 0x18c0 + 0x18c0 + 0x20 + + + + .debug_aranges + 0x18e0 + 0x18e0 + 0x20 + + + + .debug_aranges + 0x1900 + 0x1900 + 0x20 + + + + .debug_aranges + 0x1920 + 0x1920 + 0x20 + + + + .debug_aranges + 0x1940 + 0x1940 + 0x20 + + + + .debug_aranges + 0x1960 + 0x1960 + 0x20 + + + + .debug_aranges + 0x1980 + 0x1980 + 0x20 + + + + .debug_aranges + 0x19a0 + 0x19a0 + 0x20 + + + + .debug_aranges + 0x19c0 + 0x19c0 + 0x20 + + + + .debug_aranges + 0x19e0 + 0x19e0 + 0x20 + + + + .debug_aranges + 0x1a00 + 0x1a00 + 0x20 + + + + .debug_aranges + 0x1a20 + 0x1a20 + 0x20 + + + + .debug_aranges + 0x1a40 + 0x1a40 + 0x20 + + + + .debug_aranges + 0x1a60 + 0x1a60 + 0x20 + + + + .debug_aranges + 0x1a80 + 0x1a80 + 0x20 + + + + .debug_aranges + 0x1aa0 + 0x1aa0 + 0x20 + + + + .debug_aranges + 0x1ac0 + 0x1ac0 + 0x20 + + + + .debug_aranges + 0x1ae0 + 0x1ae0 + 0x20 + + + + .debug_aranges + 0x1b00 + 0x1b00 + 0x20 + + + + .debug_aranges + 0x1b20 + 0x1b20 + 0x20 + + + + .debug_aranges + 0x1b40 + 0x1b40 + 0x20 + + + + .debug_aranges + 0x1b60 + 0x1b60 + 0x20 + + + + .debug_aranges + 0x1b80 + 0x1b80 + 0x20 + + + + .debug_aranges + 0x1ba0 + 0x1ba0 + 0x20 + + + + .debug_aranges + 0x1bc0 + 0x1bc0 + 0x20 + + + + .debug_aranges + 0x1be0 + 0x1be0 + 0x20 + + + + .debug_aranges + 0x1c00 + 0x1c00 + 0x20 + + + + .debug_aranges + 0x1c20 + 0x1c20 + 0x20 + + + + .debug_aranges + 0x1c40 + 0x1c40 + 0x20 + + + + .debug_aranges + 0x1c60 + 0x1c60 + 0x20 + + + + .debug_aranges + 0x1c80 + 0x1c80 + 0x20 + + + + .debug_aranges + 0x1ca0 + 0x1ca0 + 0x20 + + + + .debug_aranges + 0x1cc0 + 0x1cc0 + 0x20 + + + + .debug_aranges + 0x1ce0 + 0x1ce0 + 0x20 + + + + .debug_aranges + 0x1d00 + 0x1d00 + 0x20 + + + + .debug_aranges + 0x1d20 + 0x1d20 + 0x20 + + + + .debug_aranges + 0x1d40 + 0x1d40 + 0x20 + + + + .debug_aranges + 0x1d60 + 0x1d60 + 0x20 + + + + .debug_aranges + 0x1d80 + 0x1d80 + 0x20 + + + + .debug_aranges + 0x1da0 + 0x1da0 + 0x20 + + + + .debug_aranges + 0x1dc0 + 0x1dc0 + 0x20 + + + + .debug_aranges + 0x1de0 + 0x1de0 + 0x20 + + + + .debug_aranges + 0x1e00 + 0x1e00 + 0x20 + + + + .debug_aranges + 0x1e20 + 0x1e20 + 0x20 + + + + .debug_aranges + 0x1e40 + 0x1e40 + 0x20 + + + + .debug_aranges + 0x1e60 + 0x1e60 + 0x20 + + + + .debug_aranges + 0x1e80 + 0x1e80 + 0x20 + + + + .debug_aranges + 0x1ea0 + 0x1ea0 + 0x20 + + + + .debug_aranges + 0x1ec0 + 0x1ec0 + 0x30 + + + + .debug_aranges + 0x1ef0 + 0x1ef0 + 0x20 + + + + .debug_aranges + 0x1f10 + 0x1f10 + 0x20 + + + + .debug_aranges + 0x1f30 + 0x1f30 + 0x20 + + + + .debug_aranges + 0x1f50 + 0x1f50 + 0x20 + + + + .debug_aranges + 0x1f70 + 0x1f70 + 0x20 + + + + .debug_aranges + 0x1f90 + 0x1f90 + 0x28 + + + + .debug_aranges + 0x1fb8 + 0x1fb8 + 0x30 + + + + .debug_aranges + 0x1fe8 + 0x1fe8 + 0x20 + + + + .debug_aranges + 0x2008 + 0x2008 + 0x20 + + + + .debug_aranges + 0x2028 + 0x2028 + 0x20 + + + + .debug_aranges + 0x2048 + 0x2048 + 0x20 + + + + .debug_pubnames + 0x0 + 0x0 + 0x3c + + + + .debug_pubnames + 0x3c + 0x3c + 0x3d + + + + .debug_pubnames + 0x79 + 0x79 + 0x21 + + + + .debug_pubnames + 0x9a + 0x9a + 0x21 + + + + .debug_pubnames + 0xbb + 0xbb + 0x22 + + + + .debug_pubnames + 0xdd + 0xdd + 0x1f + + + + .debug_pubnames + 0xfc + 0xfc + 0x1e + + + + .debug_pubnames + 0x11a + 0x11a + 0x1e + + + + .debug_pubnames + 0x138 + 0x138 + 0x22 + + + + .debug_pubnames + 0x15a + 0x15a + 0x20 + + + + .debug_pubnames + 0x17a + 0x17a + 0x20 + + + + .debug_pubnames + 0x19a + 0x19a + 0x20 + + + + .debug_pubnames + 0x1ba + 0x1ba + 0x20 + + + + .debug_pubnames + 0x1da + 0x1da + 0x20 + + + + .debug_pubnames + 0x1fa + 0x1fa + 0x20 + + + + .debug_pubnames + 0x21a + 0x21a + 0x20 + + + + .debug_pubnames + 0x23a + 0x23a + 0x20 + + + + .debug_pubnames + 0x25a + 0x25a + 0x20 + + + + .debug_pubnames + 0x27a + 0x27a + 0x21 + + + + .debug_pubnames + 0x29b + 0x29b + 0x21 + + + + .debug_pubnames + 0x2bc + 0x2bc + 0x21 + + + + .debug_pubnames + 0x2dd + 0x2dd + 0x20 + + + + .debug_pubnames + 0x2fd + 0x2fd + 0x20 + + + + .debug_pubnames + 0x31d + 0x31d + 0x20 + + + + .debug_pubnames + 0x33d + 0x33d + 0x20 + + + + .debug_pubnames + 0x35d + 0x35d + 0x20 + + + + .debug_pubnames + 0x37d + 0x37d + 0x20 + + + + .debug_pubnames + 0x39d + 0x39d + 0x21 + + + + .debug_pubnames + 0x3be + 0x3be + 0x1f + + + + .debug_pubnames + 0x3dd + 0x3dd + 0x23 + + + + .debug_pubnames + 0x400 + 0x400 + 0x23 + + + + .debug_pubnames + 0x423 + 0x423 + 0x23 + + + + .debug_pubnames + 0x446 + 0x446 + 0x23 + + + + .debug_pubnames + 0x469 + 0x469 + 0x23 + + + + .debug_pubnames + 0x48c + 0x48c + 0x23 + + + + .debug_pubnames + 0x4af + 0x4af + 0x23 + + + + .debug_pubnames + 0x4d2 + 0x4d2 + 0x23 + + + + .debug_pubnames + 0x4f5 + 0x4f5 + 0x20 + + + + .debug_pubnames + 0x515 + 0x515 + 0x20 + + + + .debug_pubnames + 0x535 + 0x535 + 0x20 + + + + .debug_pubnames + 0x555 + 0x555 + 0x20 + + + + .debug_pubnames + 0x575 + 0x575 + 0x20 + + + + .debug_pubnames + 0x595 + 0x595 + 0x20 + + + + .debug_pubnames + 0x5b5 + 0x5b5 + 0x20 + + + + .debug_pubnames + 0x5d5 + 0x5d5 + 0x20 + + + + .debug_pubnames + 0x5f5 + 0x5f5 + 0x20 + + + + .debug_pubnames + 0x615 + 0x615 + 0x20 + + + + .debug_pubnames + 0x635 + 0x635 + 0x20 + + + + .debug_pubnames + 0x655 + 0x655 + 0x20 + + + + .debug_pubnames + 0x675 + 0x675 + 0x20 + + + + .debug_pubnames + 0x695 + 0x695 + 0x20 + + + + .debug_pubnames + 0x6b5 + 0x6b5 + 0x20 + + + + .debug_pubnames + 0x6d5 + 0x6d5 + 0x20 + + + + .debug_pubnames + 0x6f5 + 0x6f5 + 0x20 + + + + .debug_pubnames + 0x715 + 0x715 + 0x20 + + + + .debug_pubnames + 0x735 + 0x735 + 0x1f + + + + .debug_pubnames + 0x754 + 0x754 + 0x1f + + + + .debug_pubnames + 0x773 + 0x773 + 0x1f + + + + .debug_pubnames + 0x792 + 0x792 + 0x1f + + + + .debug_pubnames + 0x7b1 + 0x7b1 + 0x22 + + + + .debug_pubnames + 0x7d3 + 0x7d3 + 0x22 + + + + .debug_pubnames + 0x7f5 + 0x7f5 + 0x22 + + + + .debug_pubnames + 0x817 + 0x817 + 0x22 + + + + .debug_pubnames + 0x839 + 0x839 + 0x24 + + + + .debug_pubnames + 0x85d + 0x85d + 0x24 + + + + .debug_pubnames + 0x881 + 0x881 + 0x24 + + + + .debug_pubnames + 0x8a5 + 0x8a5 + 0x24 + + + + .debug_pubnames + 0x8c9 + 0x8c9 + 0x22 + + + + .debug_pubnames + 0x8eb + 0x8eb + 0x22 + + + + .debug_pubnames + 0x90d + 0x90d + 0x22 + + + + .debug_pubnames + 0x92f + 0x92f + 0x22 + + + + .debug_pubnames + 0x951 + 0x951 + 0x22 + + + + .debug_pubnames + 0x973 + 0x973 + 0x22 + + + + .debug_pubnames + 0x995 + 0x995 + 0x1f + + + + .debug_pubnames + 0x9b4 + 0x9b4 + 0x24 + + + + .debug_pubnames + 0x9d8 + 0x9d8 + 0x1f + + + + .debug_pubnames + 0x9f7 + 0x9f7 + 0x24 + + + + .debug_pubnames + 0xa1b + 0xa1b + 0x22 + + + + .debug_pubnames + 0xa3d + 0xa3d + 0x22 + + + + .debug_pubnames + 0xa5f + 0xa5f + 0x22 + + + + .debug_pubnames + 0xa81 + 0xa81 + 0x22 + + + + .debug_pubnames + 0xaa3 + 0xaa3 + 0x22 + + + + .debug_pubnames + 0xac5 + 0xac5 + 0x22 + + + + .debug_pubnames + 0xae7 + 0xae7 + 0x22 + + + + .debug_pubnames + 0xb09 + 0xb09 + 0x22 + + + + .debug_pubnames + 0xb2b + 0xb2b + 0x20 + + + + .debug_pubnames + 0xb4b + 0xb4b + 0x20 + + + + .debug_pubnames + 0xb6b + 0xb6b + 0x20 + + + + .debug_pubnames + 0xb8b + 0xb8b + 0x20 + + + + .debug_pubnames + 0xbab + 0xbab + 0x23 + + + + .debug_pubnames + 0xbce + 0xbce + 0x20 + + + + .debug_pubnames + 0xbee + 0xbee + 0x20 + + + + .debug_pubnames + 0xc0e + 0xc0e + 0x20 + + + + .debug_pubnames + 0xc2e + 0xc2e + 0x23 + + + + .debug_pubnames + 0xc51 + 0xc51 + 0x20 + + + + .debug_pubnames + 0xc71 + 0xc71 + 0x20 + + + + .debug_pubnames + 0xc91 + 0xc91 + 0x20 + + + + .debug_pubnames + 0xcb1 + 0xcb1 + 0x21 + + + + .debug_pubnames + 0xcd2 + 0xcd2 + 0x21 + + + + .debug_pubnames + 0xcf3 + 0xcf3 + 0x21 + + + + .debug_pubnames + 0xd14 + 0xd14 + 0x21 + + + + .debug_pubnames + 0xd35 + 0xd35 + 0x21 + + + + .debug_pubnames + 0xd56 + 0xd56 + 0x21 + + + + .debug_pubnames + 0xd77 + 0xd77 + 0x21 + + + + .debug_pubnames + 0xd98 + 0xd98 + 0x21 + + + + .debug_pubnames + 0xdb9 + 0xdb9 + 0x20 + + + + .debug_pubnames + 0xdd9 + 0xdd9 + 0x20 + + + + .debug_pubnames + 0xdf9 + 0xdf9 + 0x20 + + + + .debug_pubnames + 0xe19 + 0xe19 + 0x20 + + + + .debug_pubnames + 0xe39 + 0xe39 + 0x1e + + + + .debug_pubnames + 0xe57 + 0xe57 + 0x24 + + + + .debug_pubnames + 0xe7b + 0xe7b + 0x24 + + + + .debug_pubnames + 0xe9f + 0xe9f + 0x24 + + + + .debug_pubnames + 0xec3 + 0xec3 + 0x22 + + + + .debug_pubnames + 0xee5 + 0xee5 + 0x24 + + + + .debug_pubnames + 0xf09 + 0xf09 + 0x1f + + + + .debug_pubnames + 0xf28 + 0xf28 + 0x20 + + + + .debug_pubnames + 0xf48 + 0xf48 + 0x20 + + + + .debug_pubnames + 0xf68 + 0xf68 + 0x20 + + + + .debug_pubnames + 0xf88 + 0xf88 + 0x20 + + + + .debug_pubnames + 0xfa8 + 0xfa8 + 0x23 + + + + .debug_pubnames + 0xfcb + 0xfcb + 0x24 + + + + .debug_pubnames + 0xfef + 0xfef + 0x24 + + + + .debug_pubnames + 0x1013 + 0x1013 + 0x24 + + + + .debug_pubnames + 0x1037 + 0x1037 + 0x24 + + + + .debug_pubnames + 0x105b + 0x105b + 0x24 + + + + .debug_pubnames + 0x107f + 0x107f + 0x24 + + + + .debug_pubnames + 0x10a3 + 0x10a3 + 0x24 + + + + .debug_pubnames + 0x10c7 + 0x10c7 + 0x20 + + + + .debug_pubnames + 0x10e7 + 0x10e7 + 0x21 + + + + .debug_pubnames + 0x1108 + 0x1108 + 0x21 + + + + .debug_pubnames + 0x1129 + 0x1129 + 0x21 + + + + .debug_pubnames + 0x114a + 0x114a + 0x21 + + + + .debug_pubnames + 0x116b + 0x116b + 0x21 + + + + .debug_pubnames + 0x118c + 0x118c + 0x21 + + + + .debug_pubnames + 0x11ad + 0x11ad + 0x21 + + + + .debug_pubnames + 0x11ce + 0x11ce + 0x22 + + + + .debug_pubnames + 0x11f0 + 0x11f0 + 0x22 + + + + .debug_pubnames + 0x1212 + 0x1212 + 0x22 + + + + .debug_pubnames + 0x1234 + 0x1234 + 0x22 + + + + .debug_pubnames + 0x1256 + 0x1256 + 0x22 + + + + .debug_pubnames + 0x1278 + 0x1278 + 0x22 + + + + .debug_pubnames + 0x129a + 0x129a + 0x22 + + + + .debug_pubnames + 0x12bc + 0x12bc + 0x22 + + + + .debug_pubnames + 0x12de + 0x12de + 0x20 + + + + .debug_pubnames + 0x12fe + 0x12fe + 0x20 + + + + .debug_pubnames + 0x131e + 0x131e + 0x22 + + + + .debug_pubnames + 0x1340 + 0x1340 + 0x24 + + + + .debug_pubnames + 0x1364 + 0x1364 + 0x23 + + + + .debug_pubnames + 0x1387 + 0x1387 + 0x23 + + + + .debug_pubnames + 0x13aa + 0x13aa + 0x23 + + + + .debug_pubnames + 0x13cd + 0x13cd + 0x23 + + + + .debug_pubnames + 0x13f0 + 0x13f0 + 0x22 + + + + .debug_pubnames + 0x1412 + 0x1412 + 0x22 + + + + .debug_pubnames + 0x1434 + 0x1434 + 0x22 + + + + .debug_pubnames + 0x1456 + 0x1456 + 0x22 + + + + .debug_pubnames + 0x1478 + 0x1478 + 0x23 + + + + .debug_pubnames + 0x149b + 0x149b + 0x23 + + + + .debug_pubnames + 0x14be + 0x14be + 0x23 + + + + .debug_pubnames + 0x14e1 + 0x14e1 + 0x23 + + + + .debug_pubnames + 0x1504 + 0x1504 + 0x22 + + + + .debug_pubnames + 0x1526 + 0x1526 + 0x22 + + + + .debug_pubnames + 0x1548 + 0x1548 + 0x22 + + + + .debug_pubnames + 0x156a + 0x156a + 0x22 + + + + .debug_pubnames + 0x158c + 0x158c + 0x22 + + + + .debug_pubnames + 0x15ae + 0x15ae + 0x22 + + + + .debug_pubnames + 0x15d0 + 0x15d0 + 0x22 + + + + .debug_pubnames + 0x15f2 + 0x15f2 + 0x22 + + + + .debug_pubnames + 0x1614 + 0x1614 + 0x22 + + + + .debug_pubnames + 0x1636 + 0x1636 + 0x22 + + + + .debug_pubnames + 0x1658 + 0x1658 + 0x22 + + + + .debug_pubnames + 0x167a + 0x167a + 0x22 + + + + .debug_pubnames + 0x169c + 0x169c + 0x1f + + + + .debug_pubnames + 0x16bb + 0x16bb + 0x1f + + + + .debug_pubnames + 0x16da + 0x16da + 0x1f + + + + .debug_pubnames + 0x16f9 + 0x16f9 + 0x1f + + + + .debug_pubnames + 0x1718 + 0x1718 + 0x22 + + + + .debug_pubnames + 0x173a + 0x173a + 0x22 + + + + .debug_pubnames + 0x175c + 0x175c + 0x24 + + + + .debug_pubnames + 0x1780 + 0x1780 + 0x25 + + + + .debug_pubnames + 0x17a5 + 0x17a5 + 0x21 + + + + .debug_pubnames + 0x17c6 + 0x17c6 + 0x24 + + + + .debug_pubnames + 0x17ea + 0x17ea + 0x1f + + + + .debug_pubnames + 0x1809 + 0x1809 + 0x23 + + + + .debug_pubnames + 0x182c + 0x182c + 0x20 + + + + .debug_pubnames + 0x184c + 0x184c + 0x20 + + + + .debug_pubnames + 0x186c + 0x186c + 0x20 + + + + .debug_pubnames + 0x188c + 0x188c + 0x23 + + + + .debug_pubnames + 0x18af + 0x18af + 0x20 + + + + .debug_pubnames + 0x18cf + 0x18cf + 0x20 + + + + .debug_pubnames + 0x18ef + 0x18ef + 0x20 + + + + .debug_pubnames + 0x190f + 0x190f + 0x27 + + + + .debug_pubnames + 0x1936 + 0x1936 + 0x27 + + + + .debug_pubnames + 0x195d + 0x195d + 0x27 + + + + .debug_pubnames + 0x1984 + 0x1984 + 0x27 + + + + .debug_pubnames + 0x19ab + 0x19ab + 0x27 + + + + .debug_pubnames + 0x19d2 + 0x19d2 + 0x27 + + + + .debug_pubnames + 0x19f9 + 0x19f9 + 0x27 + + + + .debug_pubnames + 0x1a20 + 0x1a20 + 0x27 + + + + .debug_pubnames + 0x1a47 + 0x1a47 + 0x22 + + + + .debug_pubnames + 0x1a69 + 0x1a69 + 0x22 + + + + .debug_pubnames + 0x1a8b + 0x1a8b + 0x21 + + + + .debug_pubnames + 0x1aac + 0x1aac + 0x22 + + + + .debug_pubnames + 0x1ace + 0x1ace + 0x27 + + + + .debug_pubnames + 0x1af5 + 0x1af5 + 0x28 + + + + .debug_pubnames + 0x1b1d + 0x1b1d + 0x27 + + + + .debug_pubnames + 0x1b44 + 0x1b44 + 0x20 + + + + .debug_pubnames + 0x1b64 + 0x1b64 + 0x22 + + + + .debug_pubnames + 0x1b86 + 0x1b86 + 0x22 + + + + .debug_pubnames + 0x1ba8 + 0x1ba8 + 0x1f + + + + .debug_pubnames + 0x1bc7 + 0x1bc7 + 0x1d + + + + .debug_pubnames + 0x1be4 + 0x1be4 + 0x1f + + + + .debug_pubnames + 0x1c03 + 0x1c03 + 0x1f + + + + .debug_pubnames + 0x1c22 + 0x1c22 + 0x1f + + + + .debug_pubnames + 0x1c41 + 0x1c41 + 0x23 + + + + .debug_pubnames + 0x1c64 + 0x1c64 + 0x21 + + + + .debug_pubnames + 0x1c85 + 0x1c85 + 0x27 + + + + .debug_pubnames + 0x1cac + 0x1cac + 0x21 + + + + .debug_pubnames + 0x1ccd + 0x1ccd + 0x23 + + + + .debug_pubnames + 0x1cf0 + 0x1cf0 + 0x21 + + + + .debug_pubnames + 0x1d11 + 0x1d11 + 0x23 + + + + .debug_pubnames + 0x1d34 + 0x1d34 + 0x1f + + + + .debug_pubnames + 0x1d53 + 0x1d53 + 0x27 + + + + .debug_pubnames + 0x1d7a + 0x1d7a + 0x2b + + + + .debug_pubnames + 0x1da5 + 0x1da5 + 0x3c + + + + .debug_pubnames + 0x1de1 + 0x1de1 + 0x33 + + + + .debug_pubnames + 0x1e14 + 0x1e14 + 0x22 + + + + .debug_pubnames + 0x1e36 + 0x1e36 + 0x27 + + + + .debug_pubnames + 0x1e5d + 0x1e5d + 0x27 + + + + .debug_pubnames + 0x1e84 + 0x1e84 + 0x22 + + + + .debug_pubnames + 0x1ea6 + 0x1ea6 + 0x21 + + + + .debug_pubnames + 0x1ec7 + 0x1ec7 + 0x2b + + + + .debug_pubnames + 0x1ef2 + 0x1ef2 + 0x21 + + + + .debug_pubnames + 0x1f13 + 0x1f13 + 0x21 + + + + .debug_pubnames + 0x1f34 + 0x1f34 + 0x21 + + + + .debug_pubnames + 0x1f55 + 0x1f55 + 0x24 + + + + .debug_pubnames + 0x1f79 + 0x1f79 + 0x24 + + + + .debug_pubnames + 0x1f9d + 0x1f9d + 0x24 + + + + .debug_pubnames + 0x1fc1 + 0x1fc1 + 0x24 + + + + .debug_pubnames + 0x1fe5 + 0x1fe5 + 0x26 + + + + .debug_pubnames + 0x200b + 0x200b + 0x24 + + + + .debug_pubnames + 0x202f + 0x202f + 0x24 + + + + .debug_pubnames + 0x2053 + 0x2053 + 0x26 + + + + .debug_pubnames + 0x2079 + 0x2079 + 0x23 + + + + .debug_pubnames + 0x209c + 0x209c + 0x21 + + + + .debug_pubnames + 0x20bd + 0x20bd + 0x2b + + + + .debug_pubnames + 0x20e8 + 0x20e8 + 0x35 + + + + .debug_pubnames + 0x211d + 0x211d + 0x1e + + + + .debug_pubnames + 0x213b + 0x213b + 0x1b + + + + .debug_pubnames + 0x2156 + 0x2156 + 0x1e + + + + .debug_pubnames + 0x2174 + 0x2174 + 0x21 + + + + .debug_pubnames + 0x2195 + 0x2195 + 0x21 + + + + .debug_pubnames + 0x21b6 + 0x21b6 + 0x25 + + + + .debug_pubnames + 0x21db + 0x21db + 0x23 + + + + .debug_pubnames + 0x21fe + 0x21fe + 0x2a + + + + .debug_pubnames + 0x2228 + 0x2228 + 0x2b + + + + .debug_pubnames + 0x2253 + 0x2253 + 0x23 + + + + .debug_pubnames + 0x2276 + 0x2276 + 0x28 + + + + .debug_pubnames + 0x229e + 0x229e + 0x29 + + + + .debug_pubnames + 0x22c7 + 0x22c7 + 0x25 + + + + .debug_pubnames + 0x22ec + 0x22ec + 0x25 + + + + .debug_pubnames + 0x2311 + 0x2311 + 0x1f + + + + .debug_pubnames + 0x2330 + 0x2330 + 0x1b + + + + .debug_pubnames + 0x234b + 0x234b + 0x1f + + + + .debug_pubnames + 0x236a + 0x236a + 0x25 + + + + .debug_pubnames + 0x238f + 0x238f + 0x4d + + + + .debug_pubnames + 0x23dc + 0x23dc + 0x27 + + + + .debug_pubnames + 0x2403 + 0x2403 + 0x35 + + + + .debug_pubnames + 0x2438 + 0x2438 + 0x25 + + + + .debug_pubnames + 0x245d + 0x245d + 0x2b + + + + .debug_pubnames + 0x2488 + 0x2488 + 0x2b + + + + .debug_pubnames + 0x24b3 + 0x24b3 + 0x5e + + + + .debug_pubnames + 0x2511 + 0x2511 + 0x25 + + + + .debug_pubnames + 0x2536 + 0x2536 + 0x1c + + + + .debug_pubnames + 0x2552 + 0x2552 + 0x1e + + + + .debug_pubnames + 0x2570 + 0x2570 + 0x43 + + + + .debug_pubnames + 0x25b3 + 0x25b3 + 0x21 + + + + .debug_pubnames + 0x25d4 + 0x25d4 + 0x1d + + + + .debug_pubnames + 0x25f1 + 0x25f1 + 0x1d + + + + .debug_pubnames + 0x260e + 0x260e + 0x29 + + + + .debug_types + 0x0 + 0x0 + 0x2d9 + + + + .debug_types + 0x2d9 + 0x2d9 + 0x88749 + + + + .debug_types + 0x88a22 + 0x88a22 + 0x5a + + + + .debug_types + 0x0 + 0x0 + 0x0 + + + + .debug_types + 0x88a7c + 0x88a7c + 0x5a + + + + .debug_types + 0x88ad6 + 0x88ad6 + 0x5a + + + + .debug_types + 0x88b30 + 0x88b30 + 0xfe + + + + .debug_types + 0x88c2e + 0x88c2e + 0x444 + + + + .debug_types + 0x89072 + 0x89072 + 0x102 + + + + .debug_types + 0x0 + 0x0 + 0x0 + + + + .debug_types + 0x89174 + 0x89174 + 0x500 + + + + .debug_types + 0x89674 + 0x89674 + 0x13a + + + + .debug_types + 0x0 + 0x0 + 0x0 + + + + .debug_types + 0x897ae + 0x897ae + 0x191 + + + + .debug_types + 0x8993f + 0x8993f + 0xbf + + + + .debug_types + 0x899fe + 0x899fe + 0x2f + + + + .debug_types + 0x89a2d + 0x89a2d + 0xe1 + + + + .debug_types + 0x89b0e + 0x89b0e + 0x2f + + + + .debug_types + 0x89b3d + 0x89b3d + 0x89 + + + + .debug_types + 0x0 + 0x0 + 0x0 + + + + .debug_frame + 0x0 + 0x0 + 0x48 + + + + .debug_frame + 0x48 + 0x48 + 0x48 + + + + .debug_frame + 0x90 + 0x90 + 0x48 + + + + .debug_frame + 0xd8 + 0xd8 + 0x48 + + + + .debug_frame + 0x120 + 0x120 + 0x48 + + + + .debug_frame + 0x168 + 0x168 + 0x48 + + + + .debug_frame + 0x1b0 + 0x1b0 + 0x48 + + + + .debug_frame + 0x1f8 + 0x1f8 + 0x48 + + + + .debug_frame + 0x240 + 0x240 + 0x48 + + + + .debug_frame + 0x288 + 0x288 + 0x48 + + + + .debug_frame + 0x2d0 + 0x2d0 + 0x48 + + + + .debug_frame + 0x318 + 0x318 + 0x48 + + + + .debug_frame + 0x360 + 0x360 + 0x48 + + + + .debug_frame + 0x3a8 + 0x3a8 + 0x48 + + + + .debug_frame + 0x3f0 + 0x3f0 + 0x48 + + + + .debug_frame + 0x438 + 0x438 + 0x48 + + + + .debug_frame + 0x480 + 0x480 + 0x48 + + + + .debug_frame + 0x4c8 + 0x4c8 + 0x48 + + + + .debug_frame + 0x510 + 0x510 + 0x48 + + + + .debug_frame + 0x558 + 0x558 + 0x48 + + + + .debug_frame + 0x5a0 + 0x5a0 + 0x48 + + + + .debug_frame + 0x5e8 + 0x5e8 + 0x48 + + + + .debug_frame + 0x630 + 0x630 + 0x48 + + + + .debug_frame + 0x678 + 0x678 + 0x48 + + + + .debug_frame + 0x6c0 + 0x6c0 + 0x48 + + + + .debug_frame + 0x708 + 0x708 + 0x48 + + + + .debug_frame + 0x750 + 0x750 + 0x48 + + + + .debug_frame + 0x798 + 0x798 + 0x48 + + + + .debug_frame + 0x7e0 + 0x7e0 + 0x48 + + + + .debug_frame + 0x828 + 0x828 + 0x48 + + + + .debug_frame + 0x870 + 0x870 + 0x48 + + + + .debug_frame + 0x8b8 + 0x8b8 + 0x48 + + + + .debug_frame + 0x900 + 0x900 + 0x48 + + + + .debug_frame + 0x948 + 0x948 + 0x48 + + + + .debug_frame + 0x990 + 0x990 + 0x48 + + + + .debug_frame + 0x9d8 + 0x9d8 + 0x48 + + + + .debug_frame + 0xa20 + 0xa20 + 0x48 + + + + .debug_frame + 0xa68 + 0xa68 + 0x48 + + + + .debug_frame + 0xab0 + 0xab0 + 0x48 + + + + .debug_frame + 0xaf8 + 0xaf8 + 0x48 + + + + .debug_frame + 0xb40 + 0xb40 + 0x48 + + + + .debug_frame + 0xb88 + 0xb88 + 0x48 + + + + .debug_frame + 0xbd0 + 0xbd0 + 0x48 + + + + .debug_frame + 0xc18 + 0xc18 + 0x48 + + + + .debug_frame + 0xc60 + 0xc60 + 0x48 + + + + .debug_frame + 0xca8 + 0xca8 + 0x48 + + + + .debug_frame + 0xcf0 + 0xcf0 + 0x48 + + + + .debug_frame + 0xd38 + 0xd38 + 0x48 + + + + .debug_frame + 0xd80 + 0xd80 + 0x48 + + + + .debug_frame + 0xdc8 + 0xdc8 + 0x48 + + + + .debug_frame + 0xe10 + 0xe10 + 0x48 + + + + .debug_frame + 0xe58 + 0xe58 + 0x48 + + + + .debug_frame + 0xea0 + 0xea0 + 0x48 + + + + .debug_frame + 0xee8 + 0xee8 + 0x48 + + + + .debug_frame + 0xf30 + 0xf30 + 0x48 + + + + .debug_frame + 0xf78 + 0xf78 + 0x48 + + + + .debug_frame + 0xfc0 + 0xfc0 + 0x48 + + + + .debug_frame + 0x1008 + 0x1008 + 0x48 + + + + .debug_frame + 0x1050 + 0x1050 + 0x48 + + + + .debug_frame + 0x1098 + 0x1098 + 0x48 + + + + .debug_frame + 0x10e0 + 0x10e0 + 0x48 + + + + .debug_frame + 0x1128 + 0x1128 + 0x48 + + + + .debug_frame + 0x1170 + 0x1170 + 0x48 + + + + .debug_frame + 0x11b8 + 0x11b8 + 0x48 + + + + .debug_frame + 0x1200 + 0x1200 + 0x48 + + + + .debug_frame + 0x1248 + 0x1248 + 0x48 + + + + .debug_frame + 0x1290 + 0x1290 + 0x48 + + + + .debug_frame + 0x12d8 + 0x12d8 + 0x48 + + + + .debug_frame + 0x1320 + 0x1320 + 0x48 + + + + .debug_frame + 0x1368 + 0x1368 + 0x48 + + + + .debug_frame + 0x13b0 + 0x13b0 + 0x48 + + + + .debug_frame + 0x13f8 + 0x13f8 + 0x48 + + + + .debug_frame + 0x1440 + 0x1440 + 0x48 + + + + .debug_frame + 0x1488 + 0x1488 + 0x48 + + + + .debug_frame + 0x14d0 + 0x14d0 + 0x48 + + + + .debug_frame + 0x1518 + 0x1518 + 0x48 + + + + .debug_frame + 0x1560 + 0x1560 + 0x48 + + + + .debug_frame + 0x15a8 + 0x15a8 + 0x48 + + + + .debug_frame + 0x15f0 + 0x15f0 + 0x48 + + + + .debug_frame + 0x1638 + 0x1638 + 0x48 + + + + .debug_frame + 0x1680 + 0x1680 + 0x48 + + + + .debug_frame + 0x16c8 + 0x16c8 + 0x48 + + + + .debug_frame + 0x1710 + 0x1710 + 0x48 + + + + .debug_frame + 0x1758 + 0x1758 + 0x48 + + + + .debug_frame + 0x17a0 + 0x17a0 + 0x48 + + + + .debug_frame + 0x17e8 + 0x17e8 + 0x48 + + + + .debug_frame + 0x1830 + 0x1830 + 0x48 + + + + .debug_frame + 0x1878 + 0x1878 + 0x48 + + + + .debug_frame + 0x18c0 + 0x18c0 + 0x48 + + + + .debug_frame + 0x1908 + 0x1908 + 0x48 + + + + .debug_frame + 0x1950 + 0x1950 + 0x48 + + + + .debug_frame + 0x1998 + 0x1998 + 0x48 + + + + .debug_frame + 0x19e0 + 0x19e0 + 0x48 + + + + .debug_frame + 0x1a28 + 0x1a28 + 0x48 + + + + .debug_frame + 0x1a70 + 0x1a70 + 0x48 + + + + .debug_frame + 0x1ab8 + 0x1ab8 + 0x48 + + + + .debug_frame + 0x1b00 + 0x1b00 + 0x48 + + + + .debug_frame + 0x1b48 + 0x1b48 + 0x48 + + + + .debug_frame + 0x1b90 + 0x1b90 + 0x48 + + + + .debug_frame + 0x1bd8 + 0x1bd8 + 0x48 + + + + .debug_frame + 0x1c20 + 0x1c20 + 0x48 + + + + .debug_frame + 0x1c68 + 0x1c68 + 0x48 + + + + .debug_frame + 0x1cb0 + 0x1cb0 + 0x48 + + + + .debug_frame + 0x1cf8 + 0x1cf8 + 0x48 + + + + .debug_frame + 0x1d40 + 0x1d40 + 0x48 + + + + .debug_frame + 0x1d88 + 0x1d88 + 0x48 + + + + .debug_frame + 0x1dd0 + 0x1dd0 + 0x48 + + + + .debug_frame + 0x1e18 + 0x1e18 + 0x48 + + + + .debug_frame + 0x1e60 + 0x1e60 + 0x48 + + + + .debug_frame + 0x1ea8 + 0x1ea8 + 0x48 + + + + .debug_frame + 0x1ef0 + 0x1ef0 + 0x48 + + + + .debug_frame + 0x1f38 + 0x1f38 + 0x48 + + + + .debug_frame + 0x1f80 + 0x1f80 + 0x48 + + + + .debug_frame + 0x1fc8 + 0x1fc8 + 0x48 + + + + .debug_frame + 0x2010 + 0x2010 + 0x48 + + + + .debug_frame + 0x2058 + 0x2058 + 0x48 + + + + .debug_frame + 0x20a0 + 0x20a0 + 0x48 + + + + .debug_frame + 0x20e8 + 0x20e8 + 0x48 + + + + .debug_frame + 0x2130 + 0x2130 + 0x48 + + + + .debug_frame + 0x2178 + 0x2178 + 0x48 + + + + .debug_frame + 0x21c0 + 0x21c0 + 0x48 + + + + .debug_frame + 0x2208 + 0x2208 + 0x48 + + + + .debug_frame + 0x2250 + 0x2250 + 0x48 + + + + .debug_frame + 0x2298 + 0x2298 + 0x48 + + + + .debug_frame + 0x22e0 + 0x22e0 + 0x48 + + + + .debug_frame + 0x2328 + 0x2328 + 0x48 + + + + .debug_frame + 0x2370 + 0x2370 + 0x48 + + + + .debug_frame + 0x23b8 + 0x23b8 + 0x48 + + + + .debug_frame + 0x2400 + 0x2400 + 0x48 + + + + .debug_frame + 0x2448 + 0x2448 + 0x48 + + + + .debug_frame + 0x2490 + 0x2490 + 0x48 + + + + .debug_frame + 0x24d8 + 0x24d8 + 0x48 + + + + .debug_frame + 0x2520 + 0x2520 + 0x48 + + + + .debug_frame + 0x2568 + 0x2568 + 0x48 + + + + .debug_frame + 0x25b0 + 0x25b0 + 0x48 + + + + .debug_frame + 0x25f8 + 0x25f8 + 0x48 + + + + .debug_frame + 0x2640 + 0x2640 + 0x48 + + + + .debug_frame + 0x2688 + 0x2688 + 0x48 + + + + .debug_frame + 0x26d0 + 0x26d0 + 0x48 + + + + .debug_frame + 0x2718 + 0x2718 + 0x48 + + + + .debug_frame + 0x2760 + 0x2760 + 0x48 + + + + .debug_frame + 0x27a8 + 0x27a8 + 0x48 + + + + .debug_frame + 0x27f0 + 0x27f0 + 0x48 + + + + .debug_frame + 0x2838 + 0x2838 + 0x48 + + + + .debug_frame + 0x2880 + 0x2880 + 0x48 + + + + .debug_frame + 0x28c8 + 0x28c8 + 0x48 + + + + .debug_frame + 0x2910 + 0x2910 + 0x48 + + + + .debug_frame + 0x2958 + 0x2958 + 0x48 + + + + .debug_frame + 0x29a0 + 0x29a0 + 0x48 + + + + .debug_frame + 0x29e8 + 0x29e8 + 0x48 + + + + .debug_frame + 0x2a30 + 0x2a30 + 0x48 + + + + .debug_frame + 0x2a78 + 0x2a78 + 0x48 + + + + .debug_frame + 0x2ac0 + 0x2ac0 + 0x48 + + + + .debug_frame + 0x2b08 + 0x2b08 + 0x48 + + + + .debug_frame + 0x2b50 + 0x2b50 + 0x48 + + + + .debug_frame + 0x2b98 + 0x2b98 + 0x48 + + + + .debug_frame + 0x2be0 + 0x2be0 + 0x48 + + + + .debug_frame + 0x2c28 + 0x2c28 + 0x48 + + + + .debug_frame + 0x2c70 + 0x2c70 + 0x48 + + + + .debug_frame + 0x2cb8 + 0x2cb8 + 0x48 + + + + .debug_frame + 0x2d00 + 0x2d00 + 0x48 + + + + .debug_frame + 0x2d48 + 0x2d48 + 0x48 + + + + .debug_frame + 0x2d90 + 0x2d90 + 0x48 + + + + .debug_frame + 0x2dd8 + 0x2dd8 + 0x48 + + + + .debug_frame + 0x2e20 + 0x2e20 + 0x48 + + + + .debug_frame + 0x2e68 + 0x2e68 + 0x48 + + + + .debug_frame + 0x2eb0 + 0x2eb0 + 0x48 + + + + .debug_frame + 0x2ef8 + 0x2ef8 + 0x48 + + + + .debug_frame + 0x2f40 + 0x2f40 + 0x48 + + + + .debug_frame + 0x2f88 + 0x2f88 + 0x48 + + + + .debug_frame + 0x2fd0 + 0x2fd0 + 0x48 + + + + .debug_frame + 0x3018 + 0x3018 + 0x48 + + + + .debug_frame + 0x3060 + 0x3060 + 0x48 + + + + .debug_frame + 0x30a8 + 0x30a8 + 0x48 + + + + .debug_frame + 0x30f0 + 0x30f0 + 0x48 + + + + .debug_frame + 0x3138 + 0x3138 + 0x48 + + + + .debug_frame + 0x3180 + 0x3180 + 0x48 + + + + .debug_frame + 0x31c8 + 0x31c8 + 0x48 + + + + .debug_frame + 0x3210 + 0x3210 + 0x48 + + + + .debug_frame + 0x3258 + 0x3258 + 0x48 + + + + .debug_frame + 0x32a0 + 0x32a0 + 0x48 + + + + .debug_frame + 0x32e8 + 0x32e8 + 0x48 + + + + .debug_frame + 0x3330 + 0x3330 + 0x48 + + + + .debug_frame + 0x3378 + 0x3378 + 0x48 + + + + .debug_frame + 0x33c0 + 0x33c0 + 0x48 + + + + .debug_frame + 0x3408 + 0x3408 + 0x48 + + + + .debug_frame + 0x3450 + 0x3450 + 0x48 + + + + .debug_frame + 0x3498 + 0x3498 + 0x48 + + + + .debug_frame + 0x34e0 + 0x34e0 + 0x48 + + + + .debug_frame + 0x3528 + 0x3528 + 0x48 + + + + .debug_frame + 0x3570 + 0x3570 + 0x48 + + + + .debug_frame + 0x35b8 + 0x35b8 + 0x48 + + + + .debug_frame + 0x3600 + 0x3600 + 0x48 + + + + .debug_frame + 0x3648 + 0x3648 + 0x48 + + + + .debug_frame + 0x3690 + 0x3690 + 0x48 + + + + .debug_frame + 0x36d8 + 0x36d8 + 0x48 + + + + .debug_frame + 0x3720 + 0x3720 + 0x48 + + + + .debug_frame + 0x3768 + 0x3768 + 0x48 + + + + .debug_frame + 0x37b0 + 0x37b0 + 0x48 + + + + .debug_frame + 0x37f8 + 0x37f8 + 0x48 + + + + .debug_frame + 0x3840 + 0x3840 + 0x48 + + + + .debug_frame + 0x3888 + 0x3888 + 0x48 + + + + .debug_frame + 0x38d0 + 0x38d0 + 0x48 + + + + .debug_frame + 0x3918 + 0x3918 + 0x48 + + + + .debug_frame + 0x3960 + 0x3960 + 0x50 + + + + .debug_frame + 0x39b0 + 0x39b0 + 0x48 + + + + .debug_frame + 0x39f8 + 0x39f8 + 0x44 + + + + .debug_frame + 0x3a3c + 0x3a3c + 0x44 + + + + .debug_frame + 0x3a80 + 0x3a80 + 0x44 + + + + .debug_frame + 0x3ac4 + 0x3ac4 + 0x40 + + + + .debug_frame + 0x3b04 + 0x3b04 + 0x44 + + + + .debug_frame + 0x3b48 + 0x3b48 + 0x40 + + + + .debug_frame + 0x3b88 + 0x3b88 + 0x44 + + + + .debug_frame + 0x3bcc + 0x3bcc + 0x44 + + + + .debug_frame + 0x3c10 + 0x3c10 + 0x50 + + + + .debug_frame + 0x3c60 + 0x3c60 + 0x44 + + + + .debug_frame + 0x3ca4 + 0x3ca4 + 0x44 + + + + .debug_frame + 0x3ce8 + 0x3ce8 + 0x44 + + + + .debug_frame + 0x3d2c + 0x3d2c + 0x44 + + + + .debug_frame + 0x3d70 + 0x3d70 + 0x40 + + + + .debug_frame + 0x3db0 + 0x3db0 + 0x40 + + + + .debug_frame + 0x3df0 + 0x3df0 + 0x44 + + + + .debug_frame + 0x3e34 + 0x3e34 + 0x40 + + + + .debug_frame + 0x3e74 + 0x3e74 + 0x40 + + + + .debug_frame + 0x3eb4 + 0x3eb4 + 0x40 + + + + .debug_frame + 0x3ef4 + 0x3ef4 + 0x40 + + + + .debug_frame + 0x3f34 + 0x3f34 + 0x40 + + + + .debug_frame + 0x3f74 + 0x3f74 + 0x40 + + + + .debug_frame + 0x3fb4 + 0x3fb4 + 0x44 + + + + .debug_frame + 0x3ff8 + 0x3ff8 + 0x44 + + + + .debug_frame + 0x403c + 0x403c + 0x48 + + + + .debug_frame + 0x4084 + 0x4084 + 0x48 + + + + .debug_frame + 0x40cc + 0x40cc + 0x44 + + + + .debug_frame + 0x4110 + 0x4110 + 0x44 + + + + .debug_frame + 0x4154 + 0x4154 + 0x44 + + + + .debug_frame + 0x4198 + 0x4198 + 0x44 + + + + .debug_frame + 0x41dc + 0x41dc + 0x44 + + + + .debug_frame + 0x4220 + 0x4220 + 0x44 + + + + .debug_frame + 0x4264 + 0x4264 + 0x44 + + + + .debug_frame + 0x42a8 + 0x42a8 + 0x44 + + + + .debug_frame + 0x42ec + 0x42ec + 0x44 + + + + .debug_frame + 0x4330 + 0x4330 + 0x40 + + + + .debug_frame + 0x4370 + 0x4370 + 0x58 + + + + .debug_frame + 0x43c8 + 0x43c8 + 0x40 + + + + .debug_frame + 0x4408 + 0x4408 + 0x40 + + + + .debug_frame + 0x4448 + 0x4448 + 0x40 + + + + .debug_frame + 0x4488 + 0x4488 + 0x60 + + + + .debug_frame + 0x44e8 + 0x44e8 + 0x70 + + + + .debug_frame + 0x4558 + 0x4558 + 0x40 + + + + .debug_frame + 0x4598 + 0x4598 + 0x40 + + + + .debug_frame + 0x45d8 + 0x45d8 + 0x40 + + + + .debug_frame + 0x4618 + 0x4618 + 0x40 + + + + .debug_str + 0x0 + 0x0 + 0x67 + + + + .debug_str + 0x67 + 0x67 + 0x67 + + + + .debug_str + 0xce + 0xce + 0x67 + + + + .debug_str + 0x135 + 0x135 + 0x67 + + + + .debug_str + 0x19c + 0x19c + 0x67 + + + + .debug_str + 0x203 + 0x203 + 0x67 + + + + .debug_str + 0x26a + 0x26a + 0x67 + + + + .debug_str + 0x2d1 + 0x2d1 + 0x67 + + + + .debug_str + 0x338 + 0x338 + 0x69 + + + + .debug_str + 0x3a1 + 0x3a1 + 0x69 + + + + .debug_str + 0x40a + 0x40a + 0x69 + + + + .debug_str + 0x473 + 0x473 + 0x69 + + + + .debug_str + 0x4dc + 0x4dc + 0x69 + + + + .debug_str + 0x545 + 0x545 + 0x69 + + + + .debug_str + 0x5ae + 0x5ae + 0x69 + + + + .debug_str + 0x617 + 0x617 + 0x69 + + + + .debug_str + 0x680 + 0x680 + 0x69 + + + + .debug_str + 0x6e9 + 0x6e9 + 0x69 + + + + .debug_str + 0x752 + 0x752 + 0x69 + + + + .debug_str + 0x7bb + 0x7bb + 0x69 + + + + + + codestart + 0x0 + 0x0 + 0x2 + + + + + + .text.1 + 0x8000 + 0x8000 + 0x59c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text.2 + 0xc000 + 0xc000 + 0x800 + + + + + + + + + + + + + + + + .text.3 + 0xc800 + 0xc800 + 0x800 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .text + + + + + + + + .cinit + 0x1b8 + 0x1b8 + 0x24 + + + + + + + + + + .switch + 0x0 + 0x0 + + + + + .reset + 0x3fffc0 + 0x0 + + + + + .stack + 0x400 + 0x100 + + + + + + + .bss + 0xa800 + 0x424 + + + + + + + + + .bss:output + 0x0 + 0x0 + + + + + .init_array + 0x0 + 0x0 + + + + + .const + 0xb000 + 0xb000 + 0x500 + + + + + + + .data + 0xac24 + 0xa + + + + + + + + .sysmem + 0x0 + 0x0 + + + + + ramgs0 + 0x0 + 0x0 + + + + + ramgs1 + 0x0 + 0x0 + + + + + MSGRAM_CPU1_TO_CPU2 + 0x0 + 0x0 + + + + + MSGRAM_CPU2_TO_CPU1 + 0x0 + 0x0 + + + + + MSGRAM_CPU_TO_CM + 0x0 + 0x0 + + + + + MSGRAM_CM_TO_CPU + 0x0 + 0x0 + + + + + Filter_RegsFile + 0x0 + 0x0 + + + + + Filter1_RegsFile + 0xe000 + 0xe000 + 0x0 + + + + + Filter2_RegsFile + 0xf000 + 0xf000 + 0x0 + + + + + Filter3_RegsFile + 0x10000 + 0x10000 + 0x0 + + + + + Filter4_RegsFile + 0x11000 + 0x11000 + 0x0 + + + + + Difference_RegsFile + 0x12000 + 0x12000 + 0x0 + + + + + .TI.ramfunc + 0x1b1 + 0x1b1 + 0x4 + + + + + + PieVectTableFile + 0xd00 + 0x1c0 + + + + + + EmuKeyVar + 0xd00 + 0x0 + + + + + EmuBModeVar + 0xd00 + 0x0 + + + + + EmuBootPinsVar + 0xd00 + 0x0 + + + + + FlashCallbackVar + 0xd00 + 0x0 + + + + + FlashScalingVar + 0xd00 + 0x0 + + + + + GROUP_2 + 0xd00 + 0x0 + + + + + + + + + + UNION_1 + 0xd00 + 0x1c0 + + + + + + + AccessProtectionRegsFile + 0x0 + 0x0 + + + + + AdcaRegsFile + 0x0 + 0x0 + + + + + AdcbRegsFile + 0x0 + 0x0 + + + + + AdccRegsFile + 0x0 + 0x0 + + + + + AdcdRegsFile + 0x0 + 0x0 + + + + + AdcaResultRegsFile + 0x0 + 0x0 + + + + + AdcbResultRegsFile + 0x0 + 0x0 + + + + + AdccResultRegsFile + 0x0 + 0x0 + + + + + AdcdResultRegsFile + 0x0 + 0x0 + + + + + AnalogSubsysRegsFile + 0x5d700 + 0x3e + + + + + + BgcrcCpuRegsFile + 0x0 + 0x0 + + + + + BgcrcCla1RegsFile + 0x0 + 0x0 + + + + + CanaRegsFile + 0x0 + 0x0 + + + + + CanbRegsFile + 0x0 + 0x0 + + + + + Cla1RegsFile + 0x0 + 0x0 + + + + + Clb1DataExchRegsFile + 0x0 + 0x0 + + + + + Clb2DataExchRegsFile + 0x0 + 0x0 + + + + + Clb3DataExchRegsFile + 0x0 + 0x0 + + + + + Clb4DataExchRegsFile + 0x0 + 0x0 + + + + + Clb5DataExchRegsFile + 0x0 + 0x0 + + + + + Clb6DataExchRegsFile + 0x0 + 0x0 + + + + + Clb7DataExchRegsFile + 0x0 + 0x0 + + + + + Clb8DataExchRegsFile + 0x0 + 0x0 + + + + + Clb1LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb2LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb3LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb4LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb5LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb6LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb7LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb8LogicCfgRegsFile + 0x0 + 0x0 + + + + + Clb1LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb2LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb3LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb4LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb5LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb6LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb7LogicCtrlRegsFile + 0x0 + 0x0 + + + + + Clb8LogicCtrlRegsFile + 0x0 + 0x0 + + + + + CLBXbarRegsFile + 0x0 + 0x0 + + + + + ClkCfgRegsFile + 0x5d200 + 0x3a + + + + + + Cmpss1RegsFile + 0x0 + 0x0 + + + + + Cmpss2RegsFile + 0x0 + 0x0 + + + + + Cmpss3RegsFile + 0x0 + 0x0 + + + + + Cmpss4RegsFile + 0x0 + 0x0 + + + + + Cmpss5RegsFile + 0x0 + 0x0 + + + + + Cmpss6RegsFile + 0x0 + 0x0 + + + + + Cmpss7RegsFile + 0x0 + 0x0 + + + + + Cmpss8RegsFile + 0x0 + 0x0 + + + + + CmConfRegsFile + 0x0 + 0x0 + + + + + Cpu1toCmIpcRegsFile + 0x0 + 0x0 + + + + + Cpu1toCpu2IpcRegsFile + 0x0 + 0x0 + + + + + SysPeriphAcRegsFile + 0x0 + 0x0 + + + + + CpuTimer0RegsFile + 0x0 + 0x0 + + + + + CpuTimer1RegsFile + 0x0 + 0x0 + + + + + CpuTimer2RegsFile + 0x0 + 0x0 + + + + + CpuSysRegsFile + 0x5d300 + 0x9c + + + + + + DacaRegsFile + 0x0 + 0x0 + + + + + DacbRegsFile + 0x0 + 0x0 + + + + + DaccRegsFile + 0x0 + 0x0 + + + + + Dcc0RegsFile + 0x5e700 + 0x2c + + + + + + Dcc1RegsFile + 0x5e740 + 0x2c + + + + + + Dcc2RegsFile + 0x5e780 + 0x2c + + + + + + DcsmCommonRegsFile + 0x0 + 0x0 + + + + + DcsmZ1OtpRegsFile + 0x0 + 0x0 + + + + + DcsmZ1RegsFile + 0x0 + 0x0 + + + + + DcsmZ2OtpRegsFile + 0x0 + 0x0 + + + + + DcsmZ2RegsFile + 0x0 + 0x0 + + + + + DevCfgRegsFile + 0x5d000 + 0x1a0 + + + + + + DmaClaSrcSelRegsFile + 0x0 + 0x0 + + + + + DmaRegsFile + 0x0 + 0x0 + + + + + ECap1RegsFile + 0x0 + 0x0 + + + + + ECap2RegsFile + 0x0 + 0x0 + + + + + ECap3RegsFile + 0x0 + 0x0 + + + + + ECap4RegsFile + 0x0 + 0x0 + + + + + ECap5RegsFile + 0x0 + 0x0 + + + + + ECap6RegsFile + 0x0 + 0x0 + + + + + ECap7RegsFile + 0x0 + 0x0 + + + + + Emif1ConfigRegsFile + 0x0 + 0x0 + + + + + Emif2ConfigRegsFile + 0x0 + 0x0 + + + + + Emif1RegsFile + 0x0 + 0x0 + + + + + Emif2RegsFile + 0x0 + 0x0 + + + + + EPwm1RegsFile + 0x0 + 0x0 + + + + + EPwm2RegsFile + 0x0 + 0x0 + + + + + EPwm3RegsFile + 0x0 + 0x0 + + + + + EPwm4RegsFile + 0x0 + 0x0 + + + + + EPwm5RegsFile + 0x0 + 0x0 + + + + + EPwm6RegsFile + 0x0 + 0x0 + + + + + EPwm7RegsFile + 0x0 + 0x0 + + + + + EPwm8RegsFile + 0x0 + 0x0 + + + + + EPwm9RegsFile + 0x0 + 0x0 + + + + + EPwm10RegsFile + 0x0 + 0x0 + + + + + EPwm11RegsFile + 0x0 + 0x0 + + + + + EPwm12RegsFile + 0x0 + 0x0 + + + + + EPwm13RegsFile + 0x0 + 0x0 + + + + + EPwm14RegsFile + 0x0 + 0x0 + + + + + EPwm15RegsFile + 0x0 + 0x0 + + + + + EPwm16RegsFile + 0x0 + 0x0 + + + + + EPwmXbarRegsFile + 0x0 + 0x0 + + + + + EQep1RegsFile + 0x0 + 0x0 + + + + + EQep2RegsFile + 0x0 + 0x0 + + + + + EQep3RegsFile + 0x0 + 0x0 + + + + + EradCounter1RegsFile + 0x0 + 0x0 + + + + + EradCounter2RegsFile + 0x0 + 0x0 + + + + + EradCounter3RegsFile + 0x0 + 0x0 + + + + + EradCounter4RegsFile + 0x0 + 0x0 + + + + + EradCRCGlobalRegsFile + 0x0 + 0x0 + + + + + EradCRC1RegsFile + 0x0 + 0x0 + + + + + EradCRC2RegsFile + 0x0 + 0x0 + + + + + EradCRC3RegsFile + 0x0 + 0x0 + + + + + EradCRC4RegsFile + 0x0 + 0x0 + + + + + EradCRC5RegsFile + 0x0 + 0x0 + + + + + EradCRC6RegsFile + 0x0 + 0x0 + + + + + EradCRC7RegsFile + 0x0 + 0x0 + + + + + EradCRC8RegsFile + 0x0 + 0x0 + + + + + EradGlobalRegsFile + 0x0 + 0x0 + + + + + EradHWBP1RegsFile + 0x0 + 0x0 + + + + + EradHWBP2RegsFile + 0x0 + 0x0 + + + + + EradHWBP3RegsFile + 0x0 + 0x0 + + + + + EradHWBP4RegsFile + 0x0 + 0x0 + + + + + EradHWBP5RegsFile + 0x0 + 0x0 + + + + + EradHWBP6RegsFile + 0x0 + 0x0 + + + + + EradHWBP7RegsFile + 0x0 + 0x0 + + + + + EradHWBP8RegsFile + 0x0 + 0x0 + + + + + EscssConfigRegsFile + 0x0 + 0x0 + + + + + EscssRegsFile + 0x0 + 0x0 + + + + + Flash0CtrlRegsFile + 0x0 + 0x0 + + + + + Flash0EccRegsFile + 0x0 + 0x0 + + + + + FsiRxaRegsFile + 0x0 + 0x0 + + + + + FsiRxbRegsFile + 0x0 + 0x0 + + + + + FsiRxcRegsFile + 0x0 + 0x0 + + + + + FsiRxdRegsFile + 0x0 + 0x0 + + + + + FsiRxeRegsFile + 0x0 + 0x0 + + + + + FsiRxfRegsFile + 0x0 + 0x0 + + + + + FsiRxgRegsFile + 0x0 + 0x0 + + + + + FsiRxhRegsFile + 0x0 + 0x0 + + + + + FsiTxaRegsFile + 0x0 + 0x0 + + + + + FsiTxbRegsFile + 0x0 + 0x0 + + + + + GpioCtrlRegsFile + 0x7c00 + 0x180 + + + + + + GpioDataReadRegsFile + 0x0 + 0x0 + + + + + GpioDataRegsFile + 0x7f00 + 0x30 + + + + + + HRCap6RegsFile + 0x0 + 0x0 + + + + + HRCap7RegsFile + 0x0 + 0x0 + + + + + I2caRegsFile + 0x7300 + 0x22 + + + + + + I2cbRegsFile + 0x0 + 0x0 + + + + + InputXbarRegsFile + 0x0 + 0x0 + + + + + ClbInputXbarRegsFile + 0x0 + 0x0 + + + + + McanaSsRegsFile + 0x0 + 0x0 + + + + + McanaErrRegsFile + 0x0 + 0x0 + + + + + McanaRegsFile + 0x0 + 0x0 + + + + + MemoryErrorRegsFile + 0x0 + 0x0 + + + + + MemCfgRegsFile + 0x0 + 0x0 + + + + + McbspaRegsFile + 0x0 + 0x0 + + + + + McbspbRegsFile + 0x0 + 0x0 + + + + + NmiIntruptRegsFile + 0x0 + 0x0 + + + + + OutputXbarRegsFile + 0x0 + 0x0 + + + + + ClbOutputXbarRegsFile + 0x0 + 0x0 + + + + + PieCtrlRegsFile + 0xce0 + 0x1a + + + + + + PieVectTableFile + 0x0 + 0x0 + + + + + PmbusaRegsFile + 0x0 + 0x0 + + + + + RomPrefetchRegsFile + 0x0 + 0x0 + + + + + RomWaitStateRegsFile + 0x0 + 0x0 + + + + + SciaRegsFile + 0x0 + 0x0 + + + + + ScibRegsFile + 0x0 + 0x0 + + + + + ScicRegsFile + 0x0 + 0x0 + + + + + ScidRegsFile + 0x0 + 0x0 + + + + + Sdfm1RegsFile + 0x0 + 0x0 + + + + + Sdfm2RegsFile + 0x0 + 0x0 + + + + + SpiaRegsFile + 0x0 + 0x0 + + + + + SpibRegsFile + 0x0 + 0x0 + + + + + SpicRegsFile + 0x0 + 0x0 + + + + + SpidRegsFile + 0x0 + 0x0 + + + + + SyncSocRegsFile + 0x0 + 0x0 + + + + + SysStatusRegsFile + 0x0 + 0x0 + + + + + TestErrorRegsFile + 0x0 + 0x0 + + + + + WdRegsFile + 0x7000 + 0x2b + + + + + + XbarRegsFile + 0x0 + 0x0 + + + + + XintRegsFile + 0x0 + 0x0 + + + + + .ppdata + 0x0 + 0x0 + + + + + .debug_info + 0x0 + 0x0 + 0x16917 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_line + 0x0 + 0x0 + 0x6441 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_abbrev + 0x0 + 0x0 + 0x5002 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_aranges + 0x0 + 0x0 + 0x2068 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_pubnames + 0x0 + 0x0 + 0x2637 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_types + 0x0 + 0x0 + 0x89bc6 + + + + + + + + + + + + + + + + + + + + + + + + + .debug_frame + 0x0 + 0x0 + 0x4658 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .debug_str + 0x0 + 0x0 + 0x824 + + + + + + + + + + + + + + + + + + + + + + + + + SEGMENT_0 + 0x0 + 0x0 + 0x2 + 0x5 + + + + + + SEGMENT_1 + 0x1b1 + 0x1b1 + 0x4 + 0x5 + + + + + + SEGMENT_2 + 0x1b8 + 0x1b8 + 0x24 + 0x4 + + + + + + SEGMENT_3 + 0x400 + 0x100 + 0x6 + + + + + + SEGMENT_4 + 0x8000 + 0x8000 + 0x59c + 0x5 + + + + + + SEGMENT_5 + 0xa800 + 0x42e + 0x6 + + + + + + + SEGMENT_6 + 0xb000 + 0xb000 + 0x500 + 0x4 + + + + + + SEGMENT_7 + 0xc000 + 0xc000 + 0x1000 + 0x5 + + + + + + + SEGMENT_8 + 0xce0 + 0x1a + 0x6 + + + + + + SEGMENT_9 + 0xd00 + 0x1c0 + 0x6 + + + + + + SEGMENT_10 + 0x7000 + 0x2b + 0x6 + + + + + + SEGMENT_11 + 0x7300 + 0x22 + 0x6 + + + + + + SEGMENT_12 + 0x7c00 + 0x180 + 0x6 + + + + + + SEGMENT_13 + 0x7f00 + 0x30 + 0x6 + + + + + + SEGMENT_14 + 0x5d000 + 0x1a0 + 0x6 + + + + + + SEGMENT_15 + 0x5d200 + 0x3a + 0x6 + + + + + + SEGMENT_16 + 0x5d300 + 0x9c + 0x6 + + + + + + SEGMENT_17 + 0x5d700 + 0x3e + 0x6 + + + + + + SEGMENT_18 + 0x5e700 + 0x2c + 0x6 + + + + + + SEGMENT_19 + 0x5e740 + 0x2c + 0x6 + + + + + + SEGMENT_20 + 0x5e780 + 0x2c + 0x6 + + + + + + + + BEGIN + 0x0 + 0x0 + 0x2 + 0x2 + 0x0 + RWIX + + + 0x0 + 0x2 + + + + + + BOOT_RSVD + 0x0 + 0x2 + 0x1af + 0x0 + 0x1af + RWIX + + + + + RAMM0 + 0x0 + 0x1b1 + 0x24f + 0x28 + 0x227 + RWIX + + + 0x1b1 + 0x4 + + + + 0x1b5 + 0x3 + + + 0x1b8 + 0x24 + + + + 0x1dc + 0x224 + + + + + RAMM1 + 0x0 + 0x400 + 0x3f8 + 0x100 + 0x2f8 + RWIX + + + 0x400 + 0x100 + + + + 0x500 + 0x2f8 + + + + + RAMLS0 + 0x0 + 0x8000 + 0x800 + 0x59c + 0x264 + RWIX + + + 0x8000 + 0x59c + + + + 0x859c + 0x264 + + + + + RAMLS1 + 0x0 + 0x8800 + 0x800 + 0x0 + 0x800 + RWIX + + + + + RAMLS2 + 0x0 + 0x9000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + RAMLS3 + 0x0 + 0x9800 + 0x800 + 0x0 + 0x800 + RWIX + + + + + RAMLS4 + 0x0 + 0xa000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + RAMLS5 + 0x0 + 0xa800 + 0x800 + 0x42e + 0x3d2 + RWIX + + + 0xa800 + 0x424 + + + + 0xac24 + 0xa + + + + 0xac2e + 0x3d2 + + + + + RAMLS6 + 0x0 + 0xb000 + 0x800 + 0x500 + 0x300 + RWIX + + + 0xb000 + 0x500 + + + + 0xb500 + 0x300 + + + + + RAMLS7 + 0x0 + 0xb800 + 0x800 + 0x0 + 0x800 + RWIX + + + + + RAMD0 + 0x0 + 0xc000 + 0x800 + 0x800 + 0x0 + RWIX + + + 0xc000 + 0x800 + + + + + + RAMD1 + 0x0 + 0xc800 + 0x800 + 0x800 + 0x0 + RWIX + + + 0xc800 + 0x800 + + + + + + RAMGS0 + 0x0 + 0xd000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS1 + 0x0 + 0xe000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS2 + 0x0 + 0xf000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS3 + 0x0 + 0x10000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS4 + 0x0 + 0x11000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS5 + 0x0 + 0x12000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS6 + 0x0 + 0x13000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS7 + 0x0 + 0x14000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS8 + 0x0 + 0x15000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS9 + 0x0 + 0x16000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS10 + 0x0 + 0x17000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS11 + 0x0 + 0x18000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS12 + 0x0 + 0x19000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS13 + 0x0 + 0x1a000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS14 + 0x0 + 0x1b000 + 0x1000 + 0x0 + 0x1000 + RWIX + + + + + RAMGS15 + 0x0 + 0x1c000 + 0xff8 + 0x0 + 0xff8 + RWIX + + + + + CMTOCPURAM + 0x0 + 0x38000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + CPUTOCMRAM + 0x0 + 0x39000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + CPU1TOCPU2RAM + 0x0 + 0x3a000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + CPU2TOCPU1RAM + 0x0 + 0x3b000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + CANA_MSG_RAM + 0x0 + 0x49000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + CANB_MSG_RAM + 0x0 + 0x4b000 + 0x800 + 0x0 + 0x800 + RWIX + + + + + FLASH0 + 0x0 + 0x80000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH1 + 0x0 + 0x82000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH2 + 0x0 + 0x84000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH3 + 0x0 + 0x86000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH4 + 0x0 + 0x88000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH5 + 0x0 + 0x90000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH6 + 0x0 + 0x98000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH7 + 0x0 + 0xa0000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH8 + 0x0 + 0xa8000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH9 + 0x0 + 0xb0000 + 0x8000 + 0x0 + 0x8000 + RWIX + + + + + FLASH10 + 0x0 + 0xb8000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH11 + 0x0 + 0xba000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH12 + 0x0 + 0xbc000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + FLASH13 + 0x0 + 0xbe000 + 0x2000 + 0x0 + 0x2000 + RWIX + + + + + RESET + 0x0 + 0x3fffc0 + 0x2 + 0x0 + 0x2 + RWIX + + + + + ADCARESULT + 0x1 + 0xb00 + 0x18 + 0x0 + 0x18 + RWIX + + + + + ADCBRESULT + 0x1 + 0xb20 + 0x18 + 0x0 + 0x18 + RWIX + + + + + ADCCRESULT + 0x1 + 0xb40 + 0x18 + 0x0 + 0x18 + RWIX + + + + + ADCDRESULT + 0x1 + 0xb60 + 0x18 + 0x0 + 0x18 + RWIX + + + + + CPUTIMER0 + 0x1 + 0xc00 + 0x8 + 0x0 + 0x8 + RWIX + + + + + CPUTIMER1 + 0x1 + 0xc08 + 0x8 + 0x0 + 0x8 + RWIX + + + + + CPUTIMER2 + 0x1 + 0xc10 + 0x8 + 0x0 + 0x8 + RWIX + + + + + PIECTRL + 0x1 + 0xce0 + 0x1a + 0x1a + 0x0 + RWIX + + + 0xce0 + 0x1a + + + + + + PIEVECTTABLE + 0x1 + 0xd00 + 0x200 + 0x1c0 + 0x40 + RWIX + + + 0xd00 + 0x1c0 + + + + 0xec0 + 0x40 + + + + + DMA + 0x1 + 0x1000 + 0x200 + 0x0 + 0x200 + RWIX + + + + + CLA1 + 0x1 + 0x1400 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB1LOGICCFG + 0x1 + 0x3000 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB1LOGICCTRL + 0x1 + 0x3100 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB1DATAEXCH + 0x1 + 0x3180 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB2LOGICCFG + 0x1 + 0x3200 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB2LOGICCTRL + 0x1 + 0x3300 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB2DATAEXCH + 0x1 + 0x3380 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB3LOGICCFG + 0x1 + 0x3400 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB3LOGICCTRL + 0x1 + 0x3500 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB3DATAEXCH + 0x1 + 0x3580 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB4LOGICCFG + 0x1 + 0x3600 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB4LOGICCTRL + 0x1 + 0x3700 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB4DATAEXCH + 0x1 + 0x3780 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB5LOGICCFG + 0x1 + 0x3800 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB5LOGICCTRL + 0x1 + 0x3900 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB5DATAEXCH + 0x1 + 0x3980 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB6LOGICCFG + 0x1 + 0x3a00 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB6LOGICCTRL + 0x1 + 0x3b00 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB6DATAEXCH + 0x1 + 0x3b80 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB7LOGICCFG + 0x1 + 0x3c00 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB7LOGICCTRL + 0x1 + 0x3d00 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB7DATAEXCH + 0x1 + 0x3d80 + 0x80 + 0x0 + 0x80 + RWIX + + + + + CLB8LOGICCFG + 0x1 + 0x3e00 + 0x52 + 0x0 + 0x52 + RWIX + + + + + CLB8LOGICCTRL + 0x1 + 0x3f00 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLB8DATAEXCH + 0x1 + 0x3f80 + 0x80 + 0x0 + 0x80 + RWIX + + + + + EPWM1 + 0x1 + 0x4000 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM2 + 0x1 + 0x4100 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM3 + 0x1 + 0x4200 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM4 + 0x1 + 0x4300 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM5 + 0x1 + 0x4400 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM6 + 0x1 + 0x4500 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM7 + 0x1 + 0x4600 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM8 + 0x1 + 0x4700 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM9 + 0x1 + 0x4800 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM10 + 0x1 + 0x4900 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM11 + 0x1 + 0x4a00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM12 + 0x1 + 0x4b00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM13 + 0x1 + 0x4c00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM14 + 0x1 + 0x4d00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM15 + 0x1 + 0x4e00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EPWM16 + 0x1 + 0x4f00 + 0x100 + 0x0 + 0x100 + RWIX + + + + + EQEP1 + 0x1 + 0x5100 + 0x40 + 0x0 + 0x40 + RWIX + + + + + EQEP2 + 0x1 + 0x5140 + 0x40 + 0x0 + 0x40 + RWIX + + + + + EQEP3 + 0x1 + 0x5180 + 0x40 + 0x0 + 0x40 + RWIX + + + + + ECAP1 + 0x1 + 0x5200 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP2 + 0x1 + 0x5240 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP3 + 0x1 + 0x5280 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP4 + 0x1 + 0x52c0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP5 + 0x1 + 0x5300 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP6 + 0x1 + 0x5340 + 0x20 + 0x0 + 0x20 + RWIX + + + + + HRCAP6 + 0x1 + 0x5360 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ECAP7 + 0x1 + 0x5380 + 0x20 + 0x0 + 0x20 + RWIX + + + + + HRCAP7 + 0x1 + 0x53a0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + DACA + 0x1 + 0x5c00 + 0x8 + 0x0 + 0x8 + RWIX + + + + + DACB + 0x1 + 0x5c10 + 0x8 + 0x0 + 0x8 + RWIX + + + + + DACC + 0x1 + 0x5c20 + 0x8 + 0x0 + 0x8 + RWIX + + + + + CMPSS1 + 0x1 + 0x5c80 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS2 + 0x1 + 0x5ca0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS3 + 0x1 + 0x5cc0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS4 + 0x1 + 0x5ce0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS5 + 0x1 + 0x5d00 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS6 + 0x1 + 0x5d20 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS7 + 0x1 + 0x5d40 + 0x20 + 0x0 + 0x20 + RWIX + + + + + CMPSS8 + 0x1 + 0x5d60 + 0x20 + 0x0 + 0x20 + RWIX + + + + + SDFM1 + 0x1 + 0x5e00 + 0x80 + 0x0 + 0x80 + RWIX + + + + + SDFM2 + 0x1 + 0x5e80 + 0x80 + 0x0 + 0x80 + RWIX + + + + + MCBSPA + 0x1 + 0x6000 + 0x24 + 0x0 + 0x24 + RWIX + + + + + MCBSPB + 0x1 + 0x6040 + 0x24 + 0x0 + 0x24 + RWIX + + + + + SPIA + 0x1 + 0x6100 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SPIB + 0x1 + 0x6110 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SPIC + 0x1 + 0x6120 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SPID + 0x1 + 0x6130 + 0x10 + 0x0 + 0x10 + RWIX + + + + + BGCRCCPU + 0x1 + 0x6340 + 0x40 + 0x0 + 0x40 + RWIX + + + + + BGCRCCLA1 + 0x1 + 0x6380 + 0x40 + 0x0 + 0x40 + RWIX + + + + + PMBUSA + 0x1 + 0x6400 + 0x20 + 0x0 + 0x20 + RWIX + + + + + FSITXA + 0x1 + 0x6600 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXA + 0x1 + 0x6680 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSITXB + 0x1 + 0x6700 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXB + 0x1 + 0x6780 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXC + 0x1 + 0x6880 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXD + 0x1 + 0x6980 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXE + 0x1 + 0x6a80 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXF + 0x1 + 0x6b80 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXG + 0x1 + 0x6c80 + 0x50 + 0x0 + 0x50 + RWIX + + + + + FSIRXH + 0x1 + 0x6d80 + 0x50 + 0x0 + 0x50 + RWIX + + + + + WD + 0x1 + 0x7000 + 0x2c + 0x2b + 0x1 + RWIX + + + 0x7000 + 0x2b + + + + 0x702b + 0x1 + + + + + NMIINTRUPT + 0x1 + 0x7060 + 0x10 + 0x0 + 0x10 + RWIX + + + + + XINT + 0x1 + 0x7070 + 0xc + 0x0 + 0xc + RWIX + + + + + SCIA + 0x1 + 0x7200 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SCIB + 0x1 + 0x7210 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SCIC + 0x1 + 0x7220 + 0x10 + 0x0 + 0x10 + RWIX + + + + + SCID + 0x1 + 0x7230 + 0x10 + 0x0 + 0x10 + RWIX + + + + + I2CA + 0x1 + 0x7300 + 0x22 + 0x22 + 0x0 + RWIX + + + 0x7300 + 0x22 + + + + + + I2CB + 0x1 + 0x7340 + 0x22 + 0x0 + 0x22 + RWIX + + + + + ADCA + 0x1 + 0x7400 + 0x80 + 0x0 + 0x80 + RWIX + + + + + ADCB + 0x1 + 0x7480 + 0x80 + 0x0 + 0x80 + RWIX + + + + + ADCC + 0x1 + 0x7500 + 0x80 + 0x0 + 0x80 + RWIX + + + + + ADCD + 0x1 + 0x7580 + 0x80 + 0x0 + 0x80 + RWIX + + + + + INPUTXBAR + 0x1 + 0x7900 + 0x20 + 0x0 + 0x20 + RWIX + + + + + XBAR + 0x1 + 0x7920 + 0x20 + 0x0 + 0x20 + RWIX + + + + + SYNCSOC + 0x1 + 0x7940 + 0x6 + 0x0 + 0x6 + RWIX + + + + + CLBINPUTXBAR + 0x1 + 0x7960 + 0x20 + 0x0 + 0x20 + RWIX + + + + + DMACLASRCSEL + 0x1 + 0x7980 + 0x1a + 0x0 + 0x1a + RWIX + + + + + EPWMXBAR + 0x1 + 0x7a00 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLBXBAR + 0x1 + 0x7a40 + 0x40 + 0x0 + 0x40 + RWIX + + + + + OUTPUTXBAR + 0x1 + 0x7a80 + 0x40 + 0x0 + 0x40 + RWIX + + + + + CLBOUTPUTXBAR + 0x1 + 0x7bc0 + 0x40 + 0x0 + 0x40 + RWIX + + + + + GPIOCTRL + 0x1 + 0x7c00 + 0x200 + 0x180 + 0x80 + RWIX + + + 0x7c00 + 0x180 + + + + 0x7d80 + 0x80 + + + + + GPIODATA + 0x1 + 0x7f00 + 0x40 + 0x30 + 0x10 + RWIX + + + 0x7f00 + 0x30 + + + + 0x7f30 + 0x10 + + + + + GPIODATAREAD + 0x1 + 0x7f80 + 0x10 + 0x0 + 0x10 + RWIX + + + + + EMIF1 + 0x1 + 0x47000 + 0x70 + 0x0 + 0x70 + RWIX + + + + + EMIF2 + 0x1 + 0x47800 + 0x70 + 0x0 + 0x70 + RWIX + + + + + CANA + 0x1 + 0x48000 + 0x200 + 0x0 + 0x200 + RWIX + + + + + CANB + 0x1 + 0x4a000 + 0x200 + 0x0 + 0x200 + RWIX + + + + + ESCSS + 0x1 + 0x57e00 + 0x24 + 0x0 + 0x24 + RWIX + + + + + ESCSSCONFIG + 0x1 + 0x57f00 + 0x16 + 0x0 + 0x16 + RWIX + + + + + MCANASS + 0x1 + 0x5c400 + 0x2c + 0x0 + 0x2c + RWIX + + + + + MCANA + 0x1 + 0x5c600 + 0x100 + 0x0 + 0x100 + RWIX + + + + + MCANAERR + 0x1 + 0x5c800 + 0x210 + 0x0 + 0x210 + RWIX + + + + + CPU1TOCPU2IPC + 0x1 + 0x5ce00 + 0x26 + 0x0 + 0x26 + RWIX + + + + + CPU1TOCMIPC + 0x1 + 0x5ce40 + 0x26 + 0x0 + 0x26 + RWIX + + + + + DEVCFG + 0x1 + 0x5d000 + 0x1a0 + 0x1a0 + 0x0 + RWIX + + + 0x5d000 + 0x1a0 + + + + + + CLKCFG + 0x1 + 0x5d200 + 0x100 + 0x3a + 0xc6 + RWIX + + + 0x5d200 + 0x3a + + + + 0x5d23a + 0xc6 + + + + + CPUSYS + 0x1 + 0x5d300 + 0xa0 + 0x9c + 0x4 + RWIX + + + 0x5d300 + 0x9c + + + + 0x5d39c + 0x4 + + + + + SYSSTATUS + 0x1 + 0x5d400 + 0x100 + 0x0 + 0x100 + RWIX + + + + + SYSPERIPHAC + 0x1 + 0x5d500 + 0x200 + 0x0 + 0x200 + RWIX + + + + + ANALOGSUBSYS + 0x1 + 0x5d700 + 0x100 + 0x3e + 0xc2 + RWIX + + + 0x5d700 + 0x3e + + + + 0x5d73e + 0xc2 + + + + + CMCONF + 0x1 + 0x5dc00 + 0x400 + 0x0 + 0x400 + RWIX + + + + + DCC0 + 0x1 + 0x5e700 + 0x38 + 0x2c + 0xc + RWIX + + + 0x5e700 + 0x2c + + + + 0x5e72c + 0xc + + + + + DCC1 + 0x1 + 0x5e740 + 0x38 + 0x2c + 0xc + RWIX + + + 0x5e740 + 0x2c + + + + 0x5e76c + 0xc + + + + + DCC2 + 0x1 + 0x5e780 + 0x38 + 0x2c + 0xc + RWIX + + + 0x5e780 + 0x2c + + + + 0x5e7ac + 0xc + + + + + ERADGLOBAL + 0x1 + 0x5e800 + 0x14 + 0x0 + 0x14 + RWIX + + + + + ERADHWBP1 + 0x1 + 0x5e900 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP2 + 0x1 + 0x5e908 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP3 + 0x1 + 0x5e910 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP4 + 0x1 + 0x5e918 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP5 + 0x1 + 0x5e920 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP6 + 0x1 + 0x5e928 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP7 + 0x1 + 0x5e930 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADHWBP8 + 0x1 + 0x5e938 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ERADCOUNTER1 + 0x1 + 0x5e980 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCOUNTER2 + 0x1 + 0x5e990 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCOUNTER3 + 0x1 + 0x5e9a0 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCOUNTER4 + 0x1 + 0x5e9b0 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRCGLOBAL + 0x1 + 0x5ea00 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC1 + 0x1 + 0x5ea10 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC2 + 0x1 + 0x5ea20 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC3 + 0x1 + 0x5ea30 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC4 + 0x1 + 0x5ea40 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC5 + 0x1 + 0x5ea50 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC6 + 0x1 + 0x5ea60 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC7 + 0x1 + 0x5ea70 + 0x10 + 0x0 + 0x10 + RWIX + + + + + ERADCRC8 + 0x1 + 0x5ea80 + 0x10 + 0x0 + 0x10 + RWIX + + + + + DCSMZ1 + 0x1 + 0x5f000 + 0x3e + 0x0 + 0x3e + RWIX + + + + + DCSMZ2 + 0x1 + 0x5f080 + 0x3e + 0x0 + 0x3e + RWIX + + + + + DCSMCOMMON + 0x1 + 0x5f0c0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + MEMCFG + 0x1 + 0x5f400 + 0xc0 + 0x0 + 0xc0 + RWIX + + + + + EMIF1CONFIG + 0x1 + 0x5f4c0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + EMIF2CONFIG + 0x1 + 0x5f4e0 + 0x20 + 0x0 + 0x20 + RWIX + + + + + ACCESSPROTECTION + 0x1 + 0x5f500 + 0x40 + 0x0 + 0x40 + RWIX + + + + + MEMORYERROR + 0x1 + 0x5f540 + 0x40 + 0x0 + 0x40 + RWIX + + + + + ROMWAITSTATE + 0x1 + 0x5f580 + 0x8 + 0x0 + 0x8 + RWIX + + + + + ROMPREFETCH + 0x1 + 0x5f588 + 0x8 + 0x0 + 0x8 + RWIX + + + + + TESTERROR + 0x1 + 0x5f590 + 0x10 + 0x0 + 0x10 + RWIX + + + + + FLASH0CTRL + 0x1 + 0x5f800 + 0x182 + 0x0 + 0x182 + RWIX + + + + + FLASH0ECC + 0x1 + 0x5fb00 + 0x28 + 0x0 + 0x28 + RWIX + + + + + DCSMZ1OTP + 0x1 + 0x78000 + 0x20 + 0x0 + 0x20 + RWIX + + + + + DCSMZ2OTP + 0x1 + 0x78200 + 0x20 + 0x0 + 0x20 + RWIX + + + + + + + __TI_cinit_table + + .data + 0x1b8 + 0x8 + 0xac24 + 0xa + lzss + + + .bss + 0x1c6 + 0x4 + 0xa800 + 0x424 + zero_init + + + PieVectTableFile + 0x1ca + 0x4 + 0xd00 + 0x1c0 + zero_init + + + + + __TI_handler_table + + 0x0 + __TI_zero_init + + + 0x1 + __TI_decompress_lzss + + + 0x2 + __TI_decompress_none + + + + + __TI_CINIT_Base + 0x1d0 + + + __TI_CINIT_Limit + 0x1dc + + + __TI_CINIT_Warm + 0x1dc + + + __TI_Handler_Table_Base + 0x1c0 + + + __TI_Handler_Table_Limit + 0x1c6 + + + __TI_STACK_SIZE + 0x100 + + + __TI_STACK_END + 0x500 + + + __TI_pprof_out_hndl + 0xffffffff + + + __TI_prof_data_start + 0xffffffff + + + __TI_prof_data_size + 0xffffffff + + + code_start + 0x0 + + + + EMPTY_ISR + 0xcd2a + + + + ADCA_EVT_ISR + 0xcd6b + + + + ECAP4_ISR + 0xcfeb + + + + CLB7_ISR + 0xcf0f + + + + ADCD1_ISR + 0xcdd9 + + + + ECAP6_2_ISR + 0x8000 + + + + EPWM6_TZ_ISR + 0x8154 + + + + ADCA1_ISR + 0xcd43 + + + + ADCC1_ISR + 0xcda7 + + + + ADCB1_ISR + 0xcd75 + + + + CMTOCPUXIPC7_ISR + 0xcf69 + + + + TIMER1_ISR + 0x8492 + + + + MPOST_ISR + 0x832a + + + + EPWM13_ISR + 0x8096 + + + + CLA1_4_ISR + 0xce8d + + + + USER2_ISR + 0x84d8 + + + + SCIC_RX_ISR + 0x838e + + + + SCIC_TX_ISR + 0x8398 + + + + ECAP5_ISR + 0xcff5 + + + + NMI_ISR + 0x8334 + + + + CLA_UNDERFLOW_ISR + 0xcec9 + + + + CLB8_ISR + 0xcf19 + + + + ADCD2_ISR + 0xcde3 + + + + EPWM14_TZ_ISR + 0x80b4 + + + + ADCA2_ISR + 0xcd4d + + + + EPWM11_TZ_ISR + 0x8078 + + + + ADCC2_ISR + 0xcdb1 + + + + ADCB2_ISR + 0xcd7f + + + + DMA_CH4_ISR + 0xcfaf + + + + CMTOCPUXIPC6_ISR + 0xcf5f + + + + SDFM2DR1_ISR + 0x83e8 + + + + TIMER2_ISR + 0x849c + + + + XINT5_ISR + 0x855a + + + + EPWM12_ISR + 0x8082 + + + + CLA1_5_ISR + 0xce97 + + + + SDFM1_ISR + 0x83de + + + + WAKE_ISR + 0x8528 + + + + ECAP6_ISR + 0x800a + + + + PMBUSA_ISR + 0x8352 + + + + EPWM8_TZ_ISR + 0x817c + + + + EPWM7_TZ_ISR + 0x8168 + + + + ADCD3_ISR + 0xcded + + + + RTOS_ISR + 0x835c + + + + EPWM4_ISR + 0x8122 + + + + ADCA3_ISR + 0xcd57 + + + + EPWM2_TZ_ISR + 0x8104 + + + + CLA_OVERFLOW_ISR + 0xcebf + + + + ADCC3_ISR + 0xcdbb + + + + ADCB3_ISR + 0xcd89 + + + + CLA1CRC_ISR + 0xce65 + + + + DMA_CH5_ISR + 0xcfb9 + + + + CMTOCPUXIPC5_ISR + 0xcf55 + + + + ECATRST_ISR + 0x8028 + + + + SDFM2DR2_ISR + 0x83f2 + + + + XINT4_ISR + 0x8550 + + + + EQEP1_ISR + 0x819a + + + + CLA1_6_ISR + 0xcea1 + + + + SYS_ERR_ISR + 0x8474 + + + + ECATSYNC1_ISR + 0x803c + + + + NOTUSED_ISR + 0x833e + + + + MCBSPA_RX_ISR + 0x8302 + + + + MCBSPA_TX_ISR + 0x830c + + + + SPIA_RX_ISR + 0x841a + + + + SPIA_TX_ISR + 0x8424 + + + + ECAP7_ISR + 0x801e + + + + SPID_RX_ISR + 0x8456 + + + + SPID_TX_ISR + 0x8460 + + + + EPWM10_TZ_ISR + 0x8064 + + + + EPWM5_ISR + 0x8136 + + + + DMA_CH6_ISR + 0xcfc3 + + + + SDFM1DR1_ISR + 0x83b6 + + + + CMTOCPUXIPC4_ISR + 0xcf4b + + + + SDFM2DR3_ISR + 0x83fc + + + + FPU_OFLOW_ISR + 0x81c2 + + + + USER5_ISR + 0x84f6 + + + + EQEP2_ISR + 0x81a4 + + + + CLA1_7_ISR + 0xceab + + + + ECATSYNC0_ISR + 0x8032 + + + + CLB1_ISR + 0xced3 + + + + EPWM9_TZ_ISR + 0x8190 + + + + EPWM4_TZ_ISR + 0x812c + + + + FSITXA1_ISR + 0x8276 + + + + EPWM3_TZ_ISR + 0x8118 + + + + FSITXB1_ISR + 0x828a + + + + EPWM6_ISR + 0x814a + + + + MCANA_ECC_ISR + 0x82ee + + + + ADCB_EVT_ISR + 0xcd9d + + + + CIPC0_ISR + 0xce3d + + + + EPWM8_ISR + 0x8172 + + + + EMU_ISR + 0x8050 + + + + USER11_ISR + 0x84ba + + + + SDFM1DR2_ISR + 0x83c0 + + + + CMTOCPUXIPC3_ISR + 0xcf41 + + + + EPWM15_ISR + 0x80be + + + + USER4_ISR + 0x84ec + + + + EQEP3_ISR + 0x81ae + + + + SDFM2_ISR + 0x8410 + + + + SCIA_RX_ISR + 0x8366 + + + + SCIA_TX_ISR + 0x8370 + + + + SCID_RX_ISR + 0x83a2 + + + + SCID_TX_ISR + 0x83ac + + + + CLB2_ISR + 0xcedd + + + + ADCD4_ISR + 0xcdf7 + + + + ECAP1_ISR + 0xcfcd + + + + ADCA4_ISR + 0xcd61 + + + + ADCC4_ISR + 0xcdc5 + + + + ADCB4_ISR + 0xcd93 + + + + FSITXA2_ISR + 0x8280 + + + + FSITXB2_ISR + 0x8294 + + + + EPWM7_ISR + 0x815e + + + + CIPC1_ISR + 0xce47 + + + + EPWM9_ISR + 0x8186 + + + + USER10_ISR + 0x84b0 + + + + SDFM1DR3_ISR + 0x83ca + + + + CMTOCPUXIPC2_ISR + 0xcf37 + + + + EPWM14_ISR + 0x80aa + + + + XINT1_ISR + 0x8532 + + + + USER7_ISR + 0x850a + + + + CLA1_1_ISR + 0xce6f + + + + MCANA_WAKE_ISR + 0x82f8 + + + + USER9_ISR + 0x851e + + + + CLB3_ISR + 0xcee7 + + + + ECAP2_ISR + 0xcfd7 + + + + EPWM5_TZ_ISR + 0x8140 + + + + I2CB_FIFO_ISR + 0x82bc + + + + CIPC2_ISR + 0xce51 + + + + SDFM2DR4_ISR + 0x8406 + + + + DMA_CH1_ISR + 0xcf91 + + + + CMTOCPUXIPC1_ISR + 0xcf2d + + + + CLA1_8_ISR + 0xceb5 + + + + USER6_ISR + 0x8500 + + + + CLA1_2_ISR + 0xce79 + + + + ECAT_ISR + 0x8046 + + + + USER8_ISR + 0x8514 + + + + CM_STATUS_ISR + 0xcf73 + + + + MCBSPB_RX_ISR + 0x8316 + + + + MCBSPB_TX_ISR + 0x8320 + + + + CLB4_ISR + 0xcef1 + + + + SPIB_RX_ISR + 0x842e + + + + SPIB_TX_ISR + 0x8438 + + + + ECAP3_ISR + 0xcfe1 + + + + EPWM16_TZ_ISR + 0x80dc + + + + EPWM13_TZ_ISR + 0x80a0 + + + + EPWM1_ISR + 0x80e6 + + + + CIPC3_ISR + 0xce5b + + + + DMA_CH2_ISR + 0xcf9b + + + + USER12_ISR + 0x84c4 + + + + CMTOCPUXIPC0_ISR + 0xcf23 + + + + EPWM16_ISR + 0x80d2 + + + + XINT3_ISR + 0x8546 + + + + USER1_ISR + 0x84ce + + + + CLA1_3_ISR + 0xce83 + + + + I2CA_ISR + 0x82b2 + + + + CANA0_ISR + 0xce15 + + + + CANB0_ISR + 0xce29 + + + + CLB5_ISR + 0xcefb + + + + ECAP7_2_ISR + 0x8014 + + + + FSIRXA1_ISR + 0x81d6 + + + + EPWM1_TZ_ISR + 0x80f0 + + + + FSIRXB1_ISR + 0x81ea + + + + FSIRXC1_ISR + 0x81fe + + + + FSIRXD1_ISR + 0x8212 + + + + I2CA_FIFO_ISR + 0x829e + + + + FSIRXE1_ISR + 0x8226 + + + + FSIRXF1_ISR + 0x823a + + + + FSIRXG1_ISR + 0x824e + + + + FSIRXH1_ISR + 0x8262 + + + + EPWM2_ISR + 0x80fa + + + + USBA_ISR + 0x84a6 + + + + SDFM1DR4_ISR + 0x83d4 + + + + ADCD_EVT_ISR + 0xce01 + + + + DMA_CH3_ISR + 0xcfa5 + + + + FMC_ISR + 0x81b8 + + + + ADCC_EVT_ISR + 0xcdcf + + + + EPWM11_ISR + 0x806e + + + + DATALOG_ISR + 0xcf87 + + + + XINT2_ISR + 0x853c + + + + MCANA_0_ISR + 0x82da + + + + PIE_RESERVED_ISR + 0x8348 + + + + SCIB_RX_ISR + 0x837a + + + + SCIB_TX_ISR + 0x8384 + + + + I2CB_ISR + 0x82c6 + + + + CANA1_ISR + 0xce1f + + + + SPIC_RX_ISR + 0x8442 + + + + CANB1_ISR + 0xce33 + + + + CPUCRC_ISR + 0xcf7d + + + + CLB6_ISR + 0xcf05 + + + + SPIC_TX_ISR + 0x844c + + + + EPWM15_TZ_ISR + 0x80c8 + + + + FSIRXA2_ISR + 0x81e0 + + + + FSIRXB2_ISR + 0x81f4 + + + + EPWM12_TZ_ISR + 0x808c + + + + FSIRXC2_ISR + 0x8208 + + + + ILLEGAL_ISR + 0x82d0 + + + + FSIRXD2_ISR + 0x821c + + + + FSIRXE2_ISR + 0x8230 + + + + FSIRXF2_ISR + 0x8244 + + + + FSIRXG2_ISR + 0x8258 + + + + FSIRXH2_ISR + 0x826c + + + + EPWM3_ISR + 0x810e + + + + I2CA_HIGH_ISR + 0x82a8 + + + + FPU_UFLOW_ISR + 0x81cc + + + + TIMER0_ISR + 0x8488 + + + + EPWM10_ISR + 0x805a + + + + USER3_ISR + 0x84e2 + + + + MCANA_1_ISR + 0x82e4 + + + + ClkCfgRegs + 0x5d200 + + + + PieVectTable + 0xd00 + + + + GpioCtrlRegs + 0x7c00 + + + + Dcc0Regs + 0x5e700 + + + + CpuSysRegs + 0x5d300 + + + + I2caRegs + 0x7300 + + + + Dcc1Regs + 0x5e740 + + + + Dcc2Regs + 0x5e780 + + + + DevCfgRegs + 0x5d000 + + + + PieCtrlRegs + 0xce0 + + + + WdRegs + 0x7000 + + + + GpioDataRegs + 0x7f00 + + + + AnalogSubsysRegs + 0x5d700 + + + + GPIO_SetupPinMux + 0xc14f + + + + GPIO_EnableUnbondedIOPullupsFor176Pin + 0xcc8c + + + + GPIO_EnableUnbondedIOPullups + 0xcd1c + + + + GPIO_SetupPinOptions + 0xc24e + + + + InitGpio + 0xca8b + + + + InitPieCtrl + 0xcc35 + + + + InitPieVectTable + 0xcba2 + + + + PieVectTableInit + 0xb340 + + + + ComputeCntrSeedValue + 0xc800 + + + + VerifyXTAL + 0xc4f9 + + + + IsPLLValid + 0xc5b0 + + + + InitPeripheralClocks + 0xc665 + + + + SysIntOsc1Sel + 0x847e + + + + SysXtalOscSel + 0xcc12 + + + + SysXtalOscSESel + 0xccd6 + + + + AuxIntOsc2Sel + 0x856d + + + + InitSysCtrl + 0xca39 + + + + InitAuxPll + 0xc717 + + + + DisableDog + 0xcd0e + + + + AuxAuxClkSel + 0xce0b + + + + AuxXtalOscSESel + 0xccec + + + + AuxXtalOscSel + 0xccfd + + + + InitSysPll + 0xc33b + + + + SysIntOsc2Sel + 0x8575 + + + + F28x_usDelay + 0x1b1 + + + + main + 0xc91d + + + + I2CWrite + 0xc7c3 + + + + SSD1306_setPosition + 0xcbc8 + + + + I2C_TXdata + 0xac10 + + + + I2C_RXdata + 0xac00 + + + + SSD1306_GotoXY + 0x846a + + + + SSD1306_DrawPixel + 0xc9df + + + + I2CMaster_Init + 0xcbee + + + + SSD1306_Init + 0xc000 + + + + ssd1306_DrawBitmap + 0xc97e + + + + SSD1306_Fill + 0xc7f1 + + + + SSD1306_UpdateScreen + 0xcadc + + + + ceil + 0xc421 + + + + ceill + 0xc421 + + + + _c_int00 + 0xcca5 + + + + __stack + 0x400 + + + + __c28xabi_divf + 0xc895 + + + + __c28xabi_orll + 0xccc6 + + + + __c28xabi_xorll + 0xccce + + + + __c28xabi_andll + 0xccbe + + + + _system_pre_init + 0x859a + + + + __TI_auto_init_nobinit_nopinit + 0xcb4e + + + + __TI_zero_init + 0x8594 + + + + __TI_decompress_none + 0x857d + + + + __TI_decompress_lzss + 0xcb20 + + + + C$$EXIT + 0xcb79 + + + + abort + 0xcb79 + + + + exit + 0xcb7b + + + + __TI_dtors_ptr + 0xac28 + + + + __TI_cleanup_ptr + 0xac26 + + + + __TI_enable_exit_profile_output + 0xac24 + + + + _nop + 0x856c + + + + _lock + 0xac2a + + + + _unlock + 0xac2c + + + + _register_lock + 0x8568 + + + + _register_unlock + 0x8564 + + + + _args_main + 0xcd37 + + + + memset + 0x858d + + + + memcpy + 0xcc54 + + + + _system_post_cinit + 0xcfff + + + + __c_args__ + 0x0 + + + Link successful + diff --git a/i2c_ex1_master/CPU1_RAM/i2c_oled.d b/i2c_ex1_master/CPU1_RAM/i2c_oled.d new file mode 100644 index 0000000..40bbb55 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/i2c_oled.d @@ -0,0 +1,249 @@ +# FIXED + +i2c_oled.obj: ../i2c_oled.c +i2c_oled.obj: ../i2c_oled.h +i2c_oled.obj: ../fonts.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/string.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/xlocale/_string.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f28x_project.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_typedefs.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h +i2c_oled.obj: C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h +i2c_oled.obj: C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h + +../i2c_oled.c: + +../i2c_oled.h: + +../fonts.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/string.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_ti_config.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/linkage.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/cdefs.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/xlocale/_string.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f28x_project.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_typedefs.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_device.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/assert.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdarg.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_types.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdbool.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stddef.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/_stdint40.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/machine/_stdint.h: + +C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include/sys/_stdint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_adc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_analogsubsys.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_bgcrc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cla.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clb.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_clbxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cmpss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_cputimer.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dac.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcsm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dma.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecap.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ecat_ss.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_emif.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_epwmxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_eqep.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_erad.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_flash.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_fsi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_gpio.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_hwbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_i2c.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_inputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_ipc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcbsp.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_memconfig.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_nmiintrupt.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_outputxbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pbist.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_piectrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pievect.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_pmbus.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sci.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sdfm.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_spi.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_sysctrl.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_wwd.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xbar.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_xint.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_can.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_dcc.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include/f2838x_mcan.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_examples.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_globalprototypes.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cputimervars.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_cla_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_can_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dac_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_memctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_epwm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_adc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_emif_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_gpio_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_ipc_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_pie_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_dma_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sdfm_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_sysctrl_defines.h: + +C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include/f2838x_defaultisr.h: + diff --git a/i2c_ex1_master/CPU1_RAM/i2c_oled.obj b/i2c_ex1_master/CPU1_RAM/i2c_oled.obj new file mode 100644 index 0000000000000000000000000000000000000000..181298e516ea588e3f445ae14ec6f2bf3ebdb28c GIT binary patch literal 63280 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 KM}bo})ct=O=YUiI literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/makefile b/i2c_ex1_master/CPU1_RAM/makefile new file mode 100644 index 0000000..bde2fe1 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/makefile @@ -0,0 +1,168 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +SHELL = cmd.exe + +CG_TOOL_ROOT := C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS + +GEN_OPTS__FLAG := +GEN_CMDS__FLAG := + +ORDERED_OBJS += \ +"./f2838x_codestartbranch.obj" \ +"./f2838x_cputimers.obj" \ +"./f2838x_defaultisr.obj" \ +"./f2838x_dma.obj" \ +"./f2838x_epwm.obj" \ +"./f2838x_globalvariabledefs.obj" \ +"./f2838x_gpio.obj" \ +"./f2838x_piectrl.obj" \ +"./f2838x_pievect.obj" \ +"./f2838x_sysctrl.obj" \ +"./f2838x_usdelay.obj" \ +"./fonts.obj" \ +"./i2c_ex1_master.obj" \ +"./i2c_oled.obj" \ +"../2838x_RAM_lnk_cpu1.cmd" \ +"../f2838x_headers_nonBIOS_cpu1.cmd" \ +$(GEN_CMDS__FLAG) \ +-llibc.a \ + +-include ../makefile.init + +RM := DEL /F +RMDIR := RMDIR /S/Q + +# All of the sources participating in the build are defined here +-include sources.mk +-include subdir_vars.mk +-include subdir_rules.mk +-include objects.mk + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(C55_DEPS)),) +-include $(C55_DEPS) +endif +ifneq ($(strip $(C_UPPER_DEPS)),) +-include $(C_UPPER_DEPS) +endif +ifneq ($(strip $(S67_DEPS)),) +-include $(S67_DEPS) +endif +ifneq ($(strip $(S62_DEPS)),) +-include $(S62_DEPS) +endif +ifneq ($(strip $(S_DEPS)),) +-include $(S_DEPS) +endif +ifneq ($(strip $(OPT_DEPS)),) +-include $(OPT_DEPS) +endif +ifneq ($(strip $(C??_DEPS)),) +-include $(C??_DEPS) +endif +ifneq ($(strip $(ASM_UPPER_DEPS)),) +-include $(ASM_UPPER_DEPS) +endif +ifneq ($(strip $(S??_DEPS)),) +-include $(S??_DEPS) +endif +ifneq ($(strip $(C64_DEPS)),) +-include $(C64_DEPS) +endif +ifneq ($(strip $(CXX_DEPS)),) +-include $(CXX_DEPS) +endif +ifneq ($(strip $(S64_DEPS)),) +-include $(S64_DEPS) +endif +ifneq ($(strip $(INO_DEPS)),) +-include $(INO_DEPS) +endif +ifneq ($(strip $(CLA_DEPS)),) +-include $(CLA_DEPS) +endif +ifneq ($(strip $(S55_DEPS)),) +-include $(S55_DEPS) +endif +ifneq ($(strip $(SV7A_DEPS)),) +-include $(SV7A_DEPS) +endif +ifneq ($(strip $(C62_DEPS)),) +-include $(C62_DEPS) +endif +ifneq ($(strip $(C67_DEPS)),) +-include $(C67_DEPS) +endif +ifneq ($(strip $(PDE_DEPS)),) +-include $(PDE_DEPS) +endif +ifneq ($(strip $(K_DEPS)),) +-include $(K_DEPS) +endif +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +ifneq ($(strip $(CC_DEPS)),) +-include $(CC_DEPS) +endif +ifneq ($(strip $(C++_DEPS)),) +-include $(C++_DEPS) +endif +ifneq ($(strip $(C43_DEPS)),) +-include $(C43_DEPS) +endif +ifneq ($(strip $(S43_DEPS)),) +-include $(S43_DEPS) +endif +ifneq ($(strip $(ASM_DEPS)),) +-include $(ASM_DEPS) +endif +ifneq ($(strip $(S_UPPER_DEPS)),) +-include $(S_UPPER_DEPS) +endif +ifneq ($(strip $(CPP_DEPS)),) +-include $(CPP_DEPS) +endif +ifneq ($(strip $(SA_DEPS)),) +-include $(SA_DEPS) +endif +endif + +-include ../makefile.defs + +# Add inputs and outputs from these tool invocations to the build variables +EXE_OUTPUTS += \ +i2c_ex1_master.out \ + +EXE_OUTPUTS__QUOTED += \ +"i2c_ex1_master.out" \ + + +# All Target +all: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) + @$(MAKE) --no-print-directory -Onone "i2c_ex1_master.out" + +# Tool invocations +i2c_ex1_master.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) + @echo 'Building target: "$@"' + @echo 'Invoking: C2000 Linker' + "C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -Ooff --advice:performance=all --define=DEBUG --define=CPU1 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --cla_background_task=on -z -m"i2c_ex1_master.map" --stack_size=0x100 --warn_sections -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/lib" -i"C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --reread_libs --diag_wrap=off --display_error_number --xml_link_info="i2c_ex1_master_linkInfo.xml" --entry_point=code_start --rom_model -o "i2c_ex1_master.out" $(ORDERED_OBJS) + @echo 'Finished building target: "$@"' + @echo ' ' + +# Other Targets +clean: + -$(RM) $(EXE_OUTPUTS__QUOTED) + -$(RM) "f2838x_codestartbranch.obj" "f2838x_cputimers.obj" "f2838x_defaultisr.obj" "f2838x_dma.obj" "f2838x_epwm.obj" "f2838x_globalvariabledefs.obj" "f2838x_gpio.obj" "f2838x_piectrl.obj" "f2838x_pievect.obj" "f2838x_sysctrl.obj" "f2838x_usdelay.obj" "fonts.obj" "i2c_ex1_master.obj" "i2c_oled.obj" + -$(RM) "f2838x_cputimers.d" "f2838x_defaultisr.d" "f2838x_dma.d" "f2838x_epwm.d" "f2838x_globalvariabledefs.d" "f2838x_gpio.d" "f2838x_piectrl.d" "f2838x_pievect.d" "f2838x_sysctrl.d" "fonts.d" "i2c_ex1_master.d" "i2c_oled.d" + -$(RM) "f2838x_codestartbranch.d" "f2838x_usdelay.d" + -@echo 'Finished clean' + -@echo ' ' + +.PHONY: all clean dependents +.SECONDARY: + +-include ../makefile.targets + diff --git a/i2c_ex1_master/CPU1_RAM/objects.mk b/i2c_ex1_master/CPU1_RAM/objects.mk new file mode 100644 index 0000000..ad64ce9 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/objects.mk @@ -0,0 +1,8 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +USER_OBJS := + +LIBS := -llibc.a + diff --git a/i2c_ex1_master/CPU1_RAM/sources.mk b/i2c_ex1_master/CPU1_RAM/sources.mk new file mode 100644 index 0000000..57d4267 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/sources.mk @@ -0,0 +1,115 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +C55_SRCS := +A_SRCS := +ASM_UPPER_SRCS := +EXE_SRCS := +LDS_UPPER_SRCS := +CPP_SRCS := +CMD_SRCS := +O_SRCS := +ELF_SRCS := +C??_SRCS := +C64_SRCS := +C67_SRCS := +SA_SRCS := +S64_SRCS := +OPT_SRCS := +CXX_SRCS := +S67_SRCS := +S??_SRCS := +PDE_SRCS := +SV7A_SRCS := +K_SRCS := +CLA_SRCS := +S55_SRCS := +LD_UPPER_SRCS := +OUT_SRCS := +INO_SRCS := +LIB_SRCS := +ASM_SRCS := +S_UPPER_SRCS := +S43_SRCS := +LD_SRCS := +CMD_UPPER_SRCS := +C_UPPER_SRCS := +C++_SRCS := +C43_SRCS := +OBJ_SRCS := +LDS_SRCS := +S_SRCS := +CC_SRCS := +S62_SRCS := +C62_SRCS := +C_SRCS := +C55_DEPS := +C_UPPER_DEPS := +S67_DEPS := +S62_DEPS := +S_DEPS := +OPT_DEPS := +C??_DEPS := +ASM_UPPER_DEPS := +S??_DEPS := +C64_DEPS := +CXX_DEPS := +S64_DEPS := +INO_DEPS := +CLA_DEPS := +S55_DEPS := +SV7A_DEPS := +EXE_OUTPUTS := +C62_DEPS := +C67_DEPS := +PDE_DEPS := +K_DEPS := +C_DEPS := +CC_DEPS := +BIN_OUTPUTS := +C++_DEPS := +C43_DEPS := +S43_DEPS := +OBJS := +ASM_DEPS := +S_UPPER_DEPS := +CPP_DEPS := +SA_DEPS := +C++_DEPS__QUOTED := +OPT_DEPS__QUOTED := +S_UPPER_DEPS__QUOTED := +SA_DEPS__QUOTED := +C??_DEPS__QUOTED := +S67_DEPS__QUOTED := +C55_DEPS__QUOTED := +CC_DEPS__QUOTED := +ASM_UPPER_DEPS__QUOTED := +SV7A_DEPS__QUOTED := +S??_DEPS__QUOTED := +OBJS__QUOTED := +C67_DEPS__QUOTED := +K_DEPS__QUOTED := +S55_DEPS__QUOTED := +INO_DEPS__QUOTED := +C62_DEPS__QUOTED := +C_DEPS__QUOTED := +C_UPPER_DEPS__QUOTED := +C43_DEPS__QUOTED := +CPP_DEPS__QUOTED := +BIN_OUTPUTS__QUOTED := +C64_DEPS__QUOTED := +CXX_DEPS__QUOTED := +CLA_DEPS__QUOTED := +S_DEPS__QUOTED := +ASM_DEPS__QUOTED := +S43_DEPS__QUOTED := +EXE_OUTPUTS__QUOTED := +S64_DEPS__QUOTED := +S62_DEPS__QUOTED := +PDE_DEPS__QUOTED := + +# Every subdirectory with source files must be described here +SUBDIRS := \ +. \ + diff --git a/i2c_ex1_master/CPU1_RAM/subdir_rules.mk b/i2c_ex1_master/CPU1_RAM/subdir_rules.mk new file mode 100644 index 0000000..dccbebf --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/subdir_rules.mk @@ -0,0 +1,22 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +SHELL = cmd.exe + +# Each subdirectory must supply rules for building sources it contributes +%.obj: ../%.asm $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES) + @echo 'Building file: "$<"' + @echo 'Invoking: C2000 Compiler' + "C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/bin/cl2000" -v28 -ml -mt --cla_support=cla2 --float_support=fpu64 --idiv_support=idiv0 --tmu_support=tmu0 --vcu_support=vcrc -Ooff --include_path="C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/i2c_ex1_master" --include_path="C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/common/include" --include_path="C:/Users/sedov/Desktop/Work/C2000Ware_5_00_00_00/device_support/f2838x/headers/include" --include_path="C:/ti/ccs1240/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS/include" --advice:performance=all --define=DEBUG --define=CPU1 --diag_suppress=10063 --diag_warning=225 --diag_wrap=off --display_error_number --gen_func_subsections=on --abi=eabi --cla_background_task=on --preproc_with_compile --preproc_dependency="$(basename $(>6 ;Set data page for WDCR register + MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD + EDIS ;Disable EALLOW protected register access + LB _c_int00 ;Branch to start of boot._asm in RTS library + + .endif + +;end wd_disable + + .end + +;// +;// End of file. +;// diff --git a/i2c_ex1_master/f2838x_cputimers.c b/i2c_ex1_master/f2838x_cputimers.c new file mode 100644 index 0000000..ed6db21 --- /dev/null +++ b/i2c_ex1_master/f2838x_cputimers.c @@ -0,0 +1,181 @@ +//########################################################################### +// +// FILE: f2838x_cputimers.c +// +// TITLE: CPU 32-bit Timers Initialization & Support Functions. +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" +#include "f2838x_examples.h" + +// +// Globals +// +struct CPUTIMER_VARS CpuTimer0; +struct CPUTIMER_VARS CpuTimer1; +struct CPUTIMER_VARS CpuTimer2; + +// +// InitCpuTimers - This function initializes all three CPU timers to a known +// state. +// +void InitCpuTimers(void) +{ + // + // CPU Timer 0 + // Initialize address pointers to respective timer registers: + // + CpuTimer0.RegsAddr = &CpuTimer0Regs; + + // + // Initialize timer period to maximum: + // + CpuTimer0Regs.PRD.all = 0xFFFFFFFF; + + // + // Initialize pre-scale counter to divide by 1 (SYSCLKOUT): + // + CpuTimer0Regs.TPR.all = 0; + CpuTimer0Regs.TPRH.all = 0; + + // + // Make sure timer is stopped: + // + CpuTimer0Regs.TCR.bit.TSS = 1; + + // + // Reload all counter register with period value: + // + CpuTimer0Regs.TCR.bit.TRB = 1; + + // + // Reset interrupt counters: + // + CpuTimer0.InterruptCount = 0; + + // + // Initialize address pointers to respective timer registers: + // + CpuTimer1.RegsAddr = &CpuTimer1Regs; + CpuTimer2.RegsAddr = &CpuTimer2Regs; + + // + // Initialize timer period to maximum: + // + CpuTimer1Regs.PRD.all = 0xFFFFFFFF; + CpuTimer2Regs.PRD.all = 0xFFFFFFFF; + + // + // Initialize pre-scale counter to divide by 1 (SYSCLKOUT): + // + CpuTimer1Regs.TPR.all = 0; + CpuTimer1Regs.TPRH.all = 0; + CpuTimer2Regs.TPR.all = 0; + CpuTimer2Regs.TPRH.all = 0; + + // + // Make sure timers are stopped: + // + CpuTimer1Regs.TCR.bit.TSS = 1; + CpuTimer2Regs.TCR.bit.TSS = 1; + + // + // Reload all counter register with period value: + // + CpuTimer1Regs.TCR.bit.TRB = 1; + CpuTimer2Regs.TCR.bit.TRB = 1; + + // + // Reset interrupt counters: + // + CpuTimer1.InterruptCount = 0; + CpuTimer2.InterruptCount = 0; +} + +// +// ConfigCpuTimer - This function initializes the selected timer to the period +// specified by the "Freq" and "Period" parameters. The "Freq" +// is entered as "MHz" and the period in "uSeconds". The timer +// is held in the stopped state after configuration. +// +void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period) +{ + Uint32 temp; + + // + // Initialize timer period: + // + Timer->CPUFreqInMHz = Freq; + Timer->PeriodInUSec = Period; + temp = (long) (Freq * Period); + + // + // Counter decrements PRD+1 times each period + // + Timer->RegsAddr->PRD.all = temp - 1; + + // + // Set pre-scale counter to divide by 1 (SYSCLKOUT): + // + Timer->RegsAddr->TPR.all = 0; + Timer->RegsAddr->TPRH.all = 0; + + // + // Initialize timer control register: + // + Timer->RegsAddr->TCR.bit.TSS = 1; // 1 = Stop timer, 0 = Start/Restart + // Timer + Timer->RegsAddr->TCR.bit.TRB = 1; // 1 = reload timer + Timer->RegsAddr->TCR.bit.SOFT = 0; + Timer->RegsAddr->TCR.bit.FREE = 0; // Timer Free Run Disabled + Timer->RegsAddr->TCR.bit.TIE = 1; // 0 = Disable/ 1 = Enable Timer + // Interrupt + + // + // Reset interrupt counter: + // + Timer->InterruptCount = 0; +} + + +// +// End of file +// diff --git a/i2c_ex1_master/f2838x_defaultisr.c b/i2c_ex1_master/f2838x_defaultisr.c new file mode 100644 index 0000000..0a9c44f --- /dev/null +++ b/i2c_ex1_master/f2838x_defaultisr.c @@ -0,0 +1,4635 @@ +//########################################################################### +// +// FILE: f2838x_defaultisr.c +// +// TITLE: f2838x Device Default Interrupt Service Routines +// +//########################################################################### +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" // f2838x Header File Include File +#include "f2838x_examples.h" // f2838x Examples Include File + +// +// CPU Timer 1 Interrupt +// +interrupt void TIMER1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// CPU Timer 2 Interrupt +// +interrupt void TIMER2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// Datalogging Interrupt +// +interrupt void DATALOG_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// RTOS Interrupt +// +interrupt void RTOS_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// Emulation Interrupt +// +interrupt void EMU_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// Non-Maskable Interrupt +// +interrupt void NMI_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// Illegal Operation Trap +// +interrupt void ILLEGAL_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 1 +// +interrupt void USER1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 2 +// +interrupt void USER2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 3 +// +interrupt void USER3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 4 +// +interrupt void USER4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 5 +// +interrupt void USER5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 6 +// +interrupt void USER6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 7 +// +interrupt void USER7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 8 +// +interrupt void USER8_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 9 +// +interrupt void USER9_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 10 +// +interrupt void USER10_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 11 +// +interrupt void USER11_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// User Defined Trap 12 +// +interrupt void USER12_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.1 - ADCA Interrupt 1 +// +interrupt void ADCA1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.2 - ADCB Interrupt 1 +// +interrupt void ADCB1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.3 - ADCC Interrupt 1 +// +interrupt void ADCC1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.4 - XINT1 Interrupt +// +interrupt void XINT1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.5 - XINT2 Interrupt +// +interrupt void XINT2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.6 - ADCD Interrupt 1 +// +interrupt void ADCD1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.7 - Timer 0 Interrupt +// +interrupt void TIMER0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.8 - Standby and Halt Wakeup Interrupt +// +interrupt void WAKE_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.1 - ePWM1 Trip Zone Interrupt +// +interrupt void EPWM1_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.2 - ePWM2 Trip Zone Interrupt +// +interrupt void EPWM2_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.3 - ePWM3 Trip Zone Interrupt +// +interrupt void EPWM3_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.4 - ePWM4 Trip Zone Interrupt +// +interrupt void EPWM4_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.5 - ePWM5 Trip Zone Interrupt +// +interrupt void EPWM5_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.6 - ePWM6 Trip Zone Interrupt +// +interrupt void EPWM6_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.7 - ePWM7 Trip Zone Interrupt +// +interrupt void EPWM7_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.8 - ePWM8 Trip Zone Interrupt +// +interrupt void EPWM8_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.1 - ePWM1 Interrupt +// +interrupt void EPWM1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.2 - ePWM2 Interrupt +// +interrupt void EPWM2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.3 - ePWM3 Interrupt +// +interrupt void EPWM3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.4 - ePWM4 Interrupt +// +interrupt void EPWM4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.5 - ePWM5 Interrupt +// +interrupt void EPWM5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.6 - ePWM6 Interrupt +// +interrupt void EPWM6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.7 - ePWM7 Interrupt +// +interrupt void EPWM7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.8 - ePWM8 Interrupt +// +interrupt void EPWM8_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.1 - eCAP1 Interrupt +// +interrupt void ECAP1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.2 - eCAP2 Interrupt +// +interrupt void ECAP2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.3 - eCAP3 Interrupt +// +interrupt void ECAP3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.4 - eCAP4 Interrupt +// +interrupt void ECAP4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.5 - eCAP5 Interrupt +// +interrupt void ECAP5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.6 - eCAP6 Interrupt +// +interrupt void ECAP6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.7 - eCAP7 Interrupt +// +interrupt void ECAP7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.1 - eQEP1 Interrupt +// +interrupt void EQEP1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.2 - eQEP2 Interrupt +// +interrupt void EQEP2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.3 - eQEP3 Interrupt +// +interrupt void EQEP3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.5 - CLB1 (Reconfigurable Logic) Interrupt +// +interrupt void CLB1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.6 - CLB2 (Reconfigurable Logic) Interrupt +// +interrupt void CLB2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.7 - CLB3 (Reconfigurable Logic) Interrupt +// +interrupt void CLB3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.8 - CLB4 (Reconfigurable Logic) Interrupt +// +interrupt void CLB4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.1 - SPIA Receive Interrupt +// +interrupt void SPIA_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.2 - SPIA Transmit Interrupt +// +interrupt void SPIA_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.3 - SPIB Receive Interrupt +// +interrupt void SPIB_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.4 - SPIB Transmit Interrupt +// +interrupt void SPIB_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.5 - McBSPA Receive Interrupt +// +interrupt void MCBSPA_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.6 - McBSPA Transmit Interrupt +// +interrupt void MCBSPA_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.7 - McBSPB Receive Interrupt +// +interrupt void MCBSPB_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.8 - McBSPB Transmit Interrupt +// +interrupt void MCBSPB_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.1 - DMA Channel 1 Interrupt +// +interrupt void DMA_CH1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.2 - DMA Channel 2 Interrupt +// +interrupt void DMA_CH2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.3 - DMA Channel 3 Interrupt +// +interrupt void DMA_CH3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.4 - DMA Channel 4 Interrupt +// +interrupt void DMA_CH4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.5 - DMA Channel 5 Interrupt +// +interrupt void DMA_CH5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.6 - DMA Channel 6 Interrupt +// +interrupt void DMA_CH6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.1 - I2CA Interrupt 1 +// +interrupt void I2CA_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.2 - I2CA Interrupt 2 +// +interrupt void I2CA_FIFO_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.3 - I2CB Interrupt 1 +// +interrupt void I2CB_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.4 - I2CB Interrupt 2 +// +interrupt void I2CB_FIFO_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.5 - SCIC Receive Interrupt +// +interrupt void SCIC_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.6 - SCIC Transmit Interrupt +// +interrupt void SCIC_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.7 - SCID Receive Interrupt +// +interrupt void SCID_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.8 - SCID Transmit Interrupt +// +interrupt void SCID_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.1 - SCIA Receive Interrupt +// +interrupt void SCIA_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.2 - SCIA Transmit Interrupt +// +interrupt void SCIA_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.3 - SCIB Receive Interrupt +// +interrupt void SCIB_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.4 - SCIB Transmit Interrupt +// +interrupt void SCIB_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.5 - CANA Interrupt 0 +// +interrupt void CANA0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.6 - CANA Interrupt 1 +// +interrupt void CANA1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.7 - CANB Interrupt 0 +// +interrupt void CANB0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.8 - CANB Interrupt 1 +// +interrupt void CANB1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.1 - ADCA Event Interrupt +// +interrupt void ADCA_EVT_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.2 - ADCA Interrupt 2 +// +interrupt void ADCA2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.3 - ADCA Interrupt 3 +// +interrupt void ADCA3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.4 - ADCA Interrupt 4 +// +interrupt void ADCA4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.5 - ADCB Event Interrupt +// +interrupt void ADCB_EVT_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.6 - ADCB Interrupt 2 +// +interrupt void ADCB2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.7 - ADCB Interrupt 3 +// +interrupt void ADCB3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.8 - ADCB Interrupt 4 +// +interrupt void ADCB4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.1 - CLA1 Interrupt 1 +// +interrupt void CLA1_1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.2 - CLA1 Interrupt 2 +// +interrupt void CLA1_2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.3 - CLA1 Interrupt 3 +// +interrupt void CLA1_3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.4 - CLA1 Interrupt 4 +// +interrupt void CLA1_4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.5 - CLA1 Interrupt 5 +// +interrupt void CLA1_5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.6 - CLA1 Interrupt 6 +// +interrupt void CLA1_6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.7 - CLA1 Interrupt 7 +// +interrupt void CLA1_7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.8 - CLA1 Interrupt 8 +// +interrupt void CLA1_8_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.1 - XINT3 Interrupt +// +interrupt void XINT3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.2 - XINT4 Interrupt +// +interrupt void XINT4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.3 - XINT5 Interrupt +// +interrupt void XINT5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.4 - MPOST Interrupt +// +interrupt void MPOST_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.5 - Flash Wrapper Operation Done Interrupt +// +interrupt void FMC_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.7 - FPU Overflow Interrupt +// +interrupt void FPU_OFLOW_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.8 - FPU Underflow Interrupt +// +interrupt void FPU_UFLOW_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.9 - I2CA Interrupt high priority +// +interrupt void I2CA_HIGH_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.10 - System error interrupt +// +interrupt void SYS_ERR_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.11 - ETHERCAT SYNC0 interrupt +// +interrupt void ECATSYNC0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.12 - ETHERCAT main interrupt +// +interrupt void ECAT_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.13 - C28x CPU IPC interrupt 1 +// +interrupt void CIPC0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.14 - C28x CPU IPC interrupt 2 +// +interrupt void CIPC1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.15 - C28x CPU IPC interrupt 3 +// +interrupt void CIPC2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 1.16 - C28x CPU IPC interrupt 4 +// +interrupt void CIPC3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.9 - ePWM9 Trip Zone Interrupt +// +interrupt void EPWM9_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.10 - ePWM10 Trip Zone Interrupt +// +interrupt void EPWM10_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.11 - ePWM11 Trip Zone Interrupt +// +interrupt void EPWM11_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.12 - ePWM12 Trip Zone Interrupt +// +interrupt void EPWM12_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.13 - ePWM13 Trip Zone Interrupt +// +interrupt void EPWM13_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.14 - ePWM14 Trip Zone Interrupt +// +interrupt void EPWM14_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.15 - ePWM15 Trip Zone Interrupt +// +interrupt void EPWM15_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 2.16 - ePWM16 Trip Zone Interrupt +// +interrupt void EPWM16_TZ_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP2; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.9 - ePWM9 Interrupt +// +interrupt void EPWM9_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.10 - ePWM10 Interrupt +// +interrupt void EPWM10_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.11 - ePWM11 Interrupt +// +interrupt void EPWM11_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.12 - ePWM12 Interrupt +// +interrupt void EPWM12_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.13 - ePWM13 Interrupt +// +interrupt void EPWM13_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.14 - ePWM14 Interrupt +// +interrupt void EPWM14_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.15 - ePWM15 Interrupt +// +interrupt void EPWM15_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 3.16 - ePWM16 Interrupt +// +interrupt void EPWM16_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP3; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.9 - FSIA Transmit interrupt 1 +// +interrupt void FSITXA1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.10 - FSIA Transmit interrupt 2 +// +interrupt void FSITXA2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.11 - FSIB Transmit interrupt 1 +// +interrupt void FSITXB1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.12 - FSIB Transmit interrupt 2 +// +interrupt void FSITXB2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.13 - FSIA Receive interrupt 1 +// +interrupt void FSIRXA1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.14 - FSIA Receive interrupt 2 +// +interrupt void FSIRXA2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.15 - FSIB Receive interrupt 1 +// +interrupt void FSIRXB1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 4.16 - FSIB Receive interrupt 2 +// +interrupt void FSIRXB2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP4; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.9 - Sigma Delta Filter Module1 Interrupt +// +interrupt void SDFM1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.10 - Sigma Delta Filter Module2 Interrupt +// +interrupt void SDFM2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.11 - ETHERCAT Resetout Interrupt +// +interrupt void ECATRST_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.12 - ETHERCAT SYNC1 interrupt +// +interrupt void ECATSYNC1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.13 - Sigma Delta Filter Module1 Filter 1 Interrupt +// +interrupt void SDFM1DR1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.14 - Sigma Delta Filter Module1 Filter 2 Interrupt +// +interrupt void SDFM1DR2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.15 - Sigma Delta Filter Module1 Filter 3 Interrupt +// +interrupt void SDFM1DR3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 5.16 - Sigma Delta Filter Module1 Filter 4 Interrupt +// +interrupt void SDFM1DR4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP5; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.9 - SPIC Receive Interrupt +// +interrupt void SPIC_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.10 - SPIC Transmit Interrupt +// +interrupt void SPIC_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.11 - SPID Receive Interrupt +// +interrupt void SPID_RX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.12 - SPID Transmit Interrupt +// +interrupt void SPID_TX_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.13 - Sigma Delta Filter Module2 Filter 1 Interrupt +// +interrupt void SDFM2DR1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.14 - Sigma Delta Filter Module2 Filter 2 Interrupt +// +interrupt void SDFM2DR2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.15 - Sigma Delta Filter Module2 Filter 3 Interrupt +// +interrupt void SDFM2DR3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 6.16 - Sigma Delta Filter Module2 Filter 4 Interrupt +// +interrupt void SDFM2DR4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP6; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.9 - FSIC Receive interrupt 1 +// +interrupt void FSIRXC1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.10 - FSIC Receive interrupt 2 +// +interrupt void FSIRXC2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.11 - FSID Receive interrupt 1 +// +interrupt void FSIRXD1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.12 - FSID Receive interrupt 2 +// +interrupt void FSIRXD2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.13 - FSIE Receive interrupt 1 +// +interrupt void FSIRXE1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.14 - FSIE Receive interrupt 2 +// +interrupt void FSIRXE2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.15 - FSIF Receive interrupt 1 +// +interrupt void FSIRXF1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 7.16 - FSIF Receive interrupt 2 +// +interrupt void FSIRXF2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP7; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.9 - FSIG Receive interrupt 1 +// +interrupt void FSIRXG1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.10 - FSIG Receive interrupt 2 +// +interrupt void FSIRXG2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.11 - FSIH Receive interrupt 1 +// +interrupt void FSIRXH1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.12 - FSIH Receive interrupt 2 +// +interrupt void FSIRXH2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.13 - CLB5 Interrupt +// +interrupt void CLB5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.14 - CLB6 Interrupt +// +interrupt void CLB6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.15 - CLB7 Interrupt +// +interrupt void CLB7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 8.16 - CLB8 Interrupt +// +interrupt void CLB8_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP8; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.9 - MCAN Sub-System Interrupt 0 +// +interrupt void MCANA_0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.10 - MCAN Sub-System Interrupt 1 +// +interrupt void MCANA_1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.11 - MCAN Sub-System ECC error Interrupt +// +interrupt void MCANA_ECC_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.12 - MCAN Sub-System wakeup Interrupt +// +interrupt void MCANA_WAKE_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.13 - PMBUSA Interrupt +// +interrupt void PMBUSA_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.14 - CM Reset Status Interrupt +// +interrupt void CM_STATUS_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 9.15 - USBA Interrupt +// +interrupt void USBA_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.9 - ADCC Event Interrupt +// +interrupt void ADCC_EVT_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.10 - ADCC Interrupt 2 +// +interrupt void ADCC2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.11 - ADCC Interrupt 3 +// +interrupt void ADCC3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.12 - ADCC Interrupt 4 +// +interrupt void ADCC4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.13 - ADCD Event Interrupt +// +interrupt void ADCD_EVT_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.14 - ADCD Interrupt 2 +// +interrupt void ADCD2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.15 - ADCD Interrupt 3 +// +interrupt void ADCD3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 10.16 - ADCD Interrupt 4 +// +interrupt void ADCD4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP10; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.9 - CM to CPU IPC Interrupt 0 +// +interrupt void CMTOCPUXIPC0_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.10 - CM to CPU IPC Interrupt 1 +// +interrupt void CMTOCPUXIPC1_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.11 - CM to CPU IPC Interrupt 2 +// +interrupt void CMTOCPUXIPC2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.12 - CM to CPU IPC Interrupt 3 +// +interrupt void CMTOCPUXIPC3_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.13 - CM to CPU IPC Interrupt 4 +// +interrupt void CMTOCPUXIPC4_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.14 - CM to CPU IPC Interrupt 5 +// +interrupt void CMTOCPUXIPC5_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.15 - CM to CPU IPC Interrupt 6 +// +interrupt void CMTOCPUXIPC6_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 11.16 - CM to CPU IPC Interrupt 7 +// +interrupt void CMTOCPUXIPC7_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP11; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.10 - eCAP6 Interrupt 2 +// +interrupt void ECAP6_2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.11 - eCAP7 Interrupt 2 +// +interrupt void ECAP7_2_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.13 - CPU BGCRC module interrupt +// +interrupt void CPUCRC_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.14 - CLA1 BGCRC module interrupt +// +interrupt void CLA1CRC_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.15 - CLA Overflow Interrupt +// +interrupt void CLA_OVERFLOW_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// 12.16 - CLA Underflow Interrupt +// +interrupt void CLA_UNDERFLOW_ISR(void) +{ + // + // Insert ISR Code here + // + + // + // To receive more interrupts from this PIE group, + // acknowledge this interrupt. + // PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; + // + + // + // Next two lines for debug only to halt the processor here + // Remove after inserting ISR Code + // + asm (" ESTOP0"); + for(;;); +} + +// +// Catch-all Default ISRs: +// + +// +// PIE_RESERVED_ISR - Reserved ISR +// +interrupt void PIE_RESERVED_ISR(void) +{ + asm (" ESTOP0"); + for(;;); +} + +// +// EMPTY_ISR - Only does a return +// +interrupt void EMPTY_ISR(void) +{ + +} + +// +// NOTUSED_ISR - Unused ISR +// +interrupt void NOTUSED_ISR(void) +{ + asm (" ESTOP0"); + for(;;); +} + +// +// End of File +// + diff --git a/i2c_ex1_master/f2838x_dma.c b/i2c_ex1_master/f2838x_dma.c new file mode 100644 index 0000000..dc4a8dc --- /dev/null +++ b/i2c_ex1_master/f2838x_dma.c @@ -0,0 +1,1100 @@ +//########################################################################### +// +// FILE: f2838x_dma.c +// +// TITLE: F2838x Device DMA Initialization & Support Functions. +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" +#include "f2838x_examples.h" + +// +// DMAInitialize - This function initializes the DMA to a known state. +// +void DMAInitialize(void) +{ + EALLOW; + + // + // Perform a hard reset on DMA + // + DmaRegs.DMACTRL.bit.HARDRESET = 1; + __asm (" nop"); // one NOP required after HARDRESET + + // + // Allow DMA to run free on emulation suspend + // + DmaRegs.DEBUGCTRL.bit.FREE = 1; + + EDIS; +} + +// +// DMACH1AddrConfig - DMA Channel 1 Address Configuration +// +void DMACH1AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH1.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to + // beginning of + // source buffer + DmaRegs.CH1.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH1.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to + // beginning of + // destination buffer + DmaRegs.CH1.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH1BurstConfig - DMA Channel 1 Burst size configuration +// +void DMACH1BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH1.BURST_SIZE.all = bsize; // Number of words(X-1) + // x-ferred in a burst. + DmaRegs.CH1.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH1.DST_BURST_STEP = desbstep; // Increment dest addr between + // each word x-ferred. + + EDIS; +} + +// +// DMACH1TransferConfig - DMA Channel 1 Transfer size configuration +// +void DMACH1TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH1.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH1.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored + // when WRAP occurs. + DmaRegs.CH1.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored + // when WRAP occurs. + + EDIS; +} + +// +// DMACH1WrapConfig - DMA Channel 1 Wrap size configuration +// +void DMACH1WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH1.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH1.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH1.DST_WRAP_SIZE = deswsize; // Wrap destination address after + // N bursts. + DmaRegs.CH1.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH1ModeConfig - DMA Channel 1 Mode configuration +// +void DMACH1ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL1.bit.CH1 = persel; + DmaRegs.CH1.MODE.bit.PERINTSEL = 1; + DmaRegs.CH1.MODE.bit.PERINTE = perinte; + DmaRegs.CH1.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH1.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH1.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH1.MODE.bit.DATASIZE = datasize; + DmaRegs.CH1.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH1.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: interrupt and sync error flags + // + DmaRegs.CH1.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH1.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH1 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx1 = 1; + + EDIS; +} + +// +// StartDMACH1 - This function starts DMA Channel 1. +// +void StartDMACH1(void) +{ + EALLOW; + DmaRegs.CH1.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// DMACH2AddrConfig - DMA Channel 2 Address Configuration +// +void DMACH2AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH2.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to + // beginning of + // source buffer. + DmaRegs.CH2.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH2.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH2.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH2BurstConfig - DMA Channel 2 Burst size configuration +// +void DMACH2BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH2.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in + // a burst. + DmaRegs.CH2.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH2.DST_BURST_STEP = desbstep; // Increment dest addr between each + // word x-ferred. + + EDIS; +} + +// +// DMACH2TransferConfig - DMA Channel 2 Transfer size Configuration +// +void DMACH2TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH2.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH2.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when + // WRAP occurs. + DmaRegs.CH2.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when + // WRAP occurs. + + EDIS; +} + +// +// DMACH2WrapConfig - DMA Channel 2 Wrap size configuration +// +void DMACH2WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH2.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH2.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH2.DST_WRAP_SIZE = deswsize; // Wrap destination address after + // N bursts. + DmaRegs.CH2.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH2ModeConfig - DMA Channel 2 Mode configuration +// +void DMACH2ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL1.bit.CH2 = persel; + DmaRegs.CH2.MODE.bit.PERINTSEL = 2; + DmaRegs.CH2.MODE.bit.PERINTE = perinte; + DmaRegs.CH2.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH2.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH2.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH2.MODE.bit.DATASIZE = datasize; + DmaRegs.CH2.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH2.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: Interrupt flags and sync error flags + // + DmaRegs.CH2.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH2.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH2 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx2 = 1; + + EDIS; +} + +// +// StartDMACH2 - This function starts DMA Channel 2. +// +void StartDMACH2(void) +{ + EALLOW; + DmaRegs.CH2.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// DMACH3AddrConfig - DMA Channel 3 Address configuration +// +void DMACH3AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH3.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer. + DmaRegs.CH3.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH3.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH3.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH3BurstConfig - DMA Channel 3 burst size configuration +// +void DMACH3BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH3.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in + // a burst. + DmaRegs.CH3.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH3.DST_BURST_STEP = desbstep; // Increment dest addr between each + // word x-ferred. + + EDIS; +} + +// +// DMACH3TransferConfig - DMA channel 3 transfer size configuration +// +void DMACH3TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH3.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH3.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when + // WRAP occurs. + DmaRegs.CH3.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when + // WRAP occurs. + + EDIS; +} + +// +// DMACH3WrapConfig - DMA Channel 3 wrap size configuration +// +void DMACH3WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH3.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH3.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH3.DST_WRAP_SIZE = deswsize; // Wrap destination address after N + // bursts. + DmaRegs.CH3.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH3ModeConfig - DMA Channel 3 mode configuration +// +void DMACH3ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL1.bit.CH3 = persel; + DmaRegs.CH3.MODE.bit.PERINTSEL = 3; + DmaRegs.CH3.MODE.bit.PERINTE = perinte; + DmaRegs.CH3.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH3.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH3.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH3.MODE.bit.DATASIZE = datasize; + DmaRegs.CH3.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH3.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: interrupt flags and sync error flags + // + DmaRegs.CH3.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH3.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH3 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx3 = 1; + + EDIS; +} + +// +// StartDMACH3 - This function starts DMA Channel 3. +// +void StartDMACH3(void) +{ + EALLOW; + DmaRegs.CH3.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// DMACH4AddrConfig - DMA Channel 4 address configuration +// +void DMACH4AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH4.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer. + DmaRegs.CH4.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH4.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH4.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH4BurstConfig - DMA Channel 4 burst size configuration +// +void DMACH4BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH4.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in + // a burst. + DmaRegs.CH4.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH4.DST_BURST_STEP = desbstep; // Increment dest addr between each + // word x-ferred. + + EDIS; +} + +// +// DMACH4TransferConfig - DMA channel 4 transfer size configuration +// +void DMACH4TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH4.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH4.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when + // WRAP occurs. + DmaRegs.CH4.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when + // WRAP occurs. + + EDIS; +} + +// +// DMACH4WrapConfig - DMA channel 4 wrap size configuration +// +void DMACH4WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH4.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH4.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH4.DST_WRAP_SIZE = deswsize; // Wrap destination address after + // N bursts. + DmaRegs.CH4.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH4ModeConfig - DMA Channel 4 mode configuration +// +void DMACH4ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL1.bit.CH4 = persel; + DmaRegs.CH4.MODE.bit.PERINTSEL = 4; + DmaRegs.CH4.MODE.bit.PERINTE = perinte; + DmaRegs.CH4.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH4.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH4.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH4.MODE.bit.DATASIZE = datasize; + DmaRegs.CH4.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH4.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: Interrupt flags and sync error flags + // + DmaRegs.CH4.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH4.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH4 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx4 = 1; + + EDIS; +} + +// +// StartDMACH4 - This function starts DMA Channel 4. +// +void StartDMACH4(void) +{ + EALLOW; + DmaRegs.CH4.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// DMACH5AddrConfig - DMA channel 5 address configuration +// +void DMACH5AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH5.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH5.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH5.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH5.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH5BurstConfig - DMA Channel 5 burst size configuration +// +void DMACH5BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH5.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in + // a burst. + DmaRegs.CH5.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH5.DST_BURST_STEP = desbstep; // Increment dest addr between each + // word x-ferred. + + EDIS; +} + +// +// DMACH5TransferConfig - DMA channel 5 transfer size configuration +// +void DMACH5TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH5.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH5.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when + // WRAP occurs. + DmaRegs.CH5.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when + // WRAP occurs. + + EDIS; +} + +// +// DMACH5WrapConfig - DMA Channel 5 wrap size configuration +// +void DMACH5WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH5.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH5.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH5.DST_WRAP_SIZE = deswsize; // Wrap destination address after + // N bursts. + DmaRegs.CH5.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH5ModeConfig - DMA Channel 5 mode configuration +// +void DMACH5ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL2.bit.CH5 = persel; + DmaRegs.CH5.MODE.bit.PERINTSEL = 5; + DmaRegs.CH5.MODE.bit.PERINTE = perinte; + DmaRegs.CH5.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH5.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH5.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH5.MODE.bit.DATASIZE = datasize; + DmaRegs.CH5.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH5.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: Interrupt flags and sync error flags + // + DmaRegs.CH5.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH5.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH5 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx5 = 1; + + EDIS; +} + +// +// StartDMACH5 - This function starts DMA Channel 5. +// +void StartDMACH5(void) +{ + EALLOW; + DmaRegs.CH5.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// DMACH6AddrConfig - DMA Channel 6 address configuration +// +void DMACH6AddrConfig(volatile Uint16 *DMA_Dest,volatile Uint16 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH6.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer. + DmaRegs.CH6.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH6.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH6.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH6BurstConfig - DMA Channel 6 burst size configuration +// +void DMACH6BurstConfig(Uint16 bsize, int16 srcbstep, int16 desbstep) +{ + EALLOW; + + // + // Set up BURST registers: + // + DmaRegs.CH6.BURST_SIZE.all = bsize; // Number of words(X-1) x-ferred in + // a burst. + DmaRegs.CH6.SRC_BURST_STEP = srcbstep; // Increment source addr between + // each word x-ferred. + DmaRegs.CH6.DST_BURST_STEP = desbstep; // Increment dest addr between each + // word x-ferred. + + EDIS; +} + +// +// DMACH6TransferConfig - DMA channel 6 transfer size configuration +// +void DMACH6TransferConfig(Uint16 tsize, int16 srctstep, int16 deststep) +{ + EALLOW; + + // + // Set up TRANSFER registers: + // + DmaRegs.CH6.TRANSFER_SIZE = tsize; // Number of bursts per transfer, + // DMA interrupt will occur after + // completed transfer. + DmaRegs.CH6.SRC_TRANSFER_STEP = srctstep; // TRANSFER_STEP is ignored when + // WRAP occurs. + DmaRegs.CH6.DST_TRANSFER_STEP = deststep; // TRANSFER_STEP is ignored when + // WRAP occurs. + + EDIS; +} + +// +// DMACH6WrapConfig - DMA Channel 6 wrap size configuration +// +void DMACH6WrapConfig(Uint16 srcwsize, int16 srcwstep, Uint16 deswsize, + int16 deswstep) +{ + EALLOW; + + // + // Set up WRAP registers: + // + DmaRegs.CH6.SRC_WRAP_SIZE = srcwsize; // Wrap source address after N bursts + DmaRegs.CH6.SRC_WRAP_STEP = srcwstep; // Step for source wrap + + DmaRegs.CH6.DST_WRAP_SIZE = deswsize; // Wrap destination address after N + // bursts. + DmaRegs.CH6.DST_WRAP_STEP = deswstep; // Step for destination wrap + + EDIS; +} + +// +// DMACH6ModeConfig - DMA Channel 6 mode configuration +// +void DMACH6ModeConfig(Uint16 persel, Uint16 perinte, Uint16 oneshot, + Uint16 cont, Uint16 synce, Uint16 syncsel, + Uint16 ovrinte, Uint16 datasize, Uint16 chintmode, + Uint16 chinte) +{ + EALLOW; + + // + // Set up MODE Register: + // persel - Source select + // PERINTSEL - Should be hard coded to channel, above now selects source + // PERINTE - Peripheral interrupt enable + // ONESHOT - Oneshot enable + // CONTINUOUS - Continuous enable + // OVRINTE - Enable/disable the overflow interrupt + // DATASIZE - 16-bit/32-bit data size transfers + // CHINTMODE - Generate interrupt to CPU at beginning/end of transfer + // CHINTE - Channel Interrupt to CPU enable + // + DmaClaSrcSelRegs.DMACHSRCSEL2.bit.CH6 = persel; + DmaRegs.CH6.MODE.bit.PERINTSEL = 6; + DmaRegs.CH6.MODE.bit.PERINTE = perinte; + DmaRegs.CH6.MODE.bit.ONESHOT = oneshot; + DmaRegs.CH6.MODE.bit.CONTINUOUS = cont; + DmaRegs.CH6.MODE.bit.OVRINTE = ovrinte; + DmaRegs.CH6.MODE.bit.DATASIZE = datasize; + DmaRegs.CH6.MODE.bit.CHINTMODE = chintmode; + DmaRegs.CH6.MODE.bit.CHINTE = chinte; + + // + // Clear any spurious flags: Interrupt flags and sync error flags + // + DmaRegs.CH6.CONTROL.bit.PERINTCLR = 1; + DmaRegs.CH6.CONTROL.bit.ERRCLR = 1; + + // + // Initialize PIE vector for CPU interrupt: + // Enable DMA CH6 interrupt in PIE + // + PieCtrlRegs.PIEIER7.bit.INTx6 = 1; + + EDIS; +} + +// +// StartDMACH6 - This function starts DMA Channel 6. +// +void StartDMACH6(void) +{ + EALLOW; + DmaRegs.CH6.CONTROL.bit.RUN = 1; + EDIS; +} + +// +// NOTE: +// Following functions are required for EMIF as the address is out of +// 22bit range +// + +// +// DMACH1AddrConfig32bit - DMA Channel 1 address configuration for 32bit +// +void DMACH1AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH1.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH1.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH1.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer + DmaRegs.CH1.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH2AddrConfig32bit - DMA Channel 2 address configuration for 32bit +// +void DMACH2AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH2.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH2.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH2.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer + DmaRegs.CH2.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH3AddrConfig32bit - DMA Channel 3 address configuration for 32bit +// +void DMACH3AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH3.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH3.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH3.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer. + DmaRegs.CH3.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH4AddrConfig32bit - DMA Channel 4 address configuration for 32bit +// +void DMACH4AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH4.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH4.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH4.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer + DmaRegs.CH4.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH5AddrConfig32bit - DMA Channel 5 address configuration for 32bit +// +void DMACH5AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH5.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH5.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH5.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer + DmaRegs.CH5.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// DMACH6AddrConfig32bit - DMA Channel 6 address configuration for 32bit +// +void DMACH6AddrConfig32bit(volatile Uint32 *DMA_Dest, + volatile Uint32 *DMA_Source) +{ + EALLOW; + + // + // Set up SOURCE address: + // + DmaRegs.CH6.SRC_BEG_ADDR_SHADOW = (Uint32)DMA_Source; // Point to beginning + // of source buffer + DmaRegs.CH6.SRC_ADDR_SHADOW = (Uint32)DMA_Source; + + // + // Set up DESTINATION address: + // + DmaRegs.CH6.DST_BEG_ADDR_SHADOW = (Uint32)DMA_Dest; // Point to beginning + // of destination + // buffer + DmaRegs.CH6.DST_ADDR_SHADOW = (Uint32)DMA_Dest; + + EDIS; +} + +// +// End of file +// diff --git a/i2c_ex1_master/f2838x_epwm.c b/i2c_ex1_master/f2838x_epwm.c new file mode 100644 index 0000000..b1b422c --- /dev/null +++ b/i2c_ex1_master/f2838x_epwm.c @@ -0,0 +1,642 @@ +//########################################################################### +// +// FILE: f2838x_epwm.c +// +// TITLE: F2838x EPwm Initialization & Support Functions. +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" +#include "f2838x_examples.h" + +// +// InitEPwmGpio - Initialize all EPWM modules' GPIOs +// +void InitEPwmGpio(void) +{ + InitEPwm1Gpio(); + InitEPwm2Gpio(); + InitEPwm3Gpio(); + InitEPwm4Gpio(); + InitEPwm5Gpio(); + InitEPwm6Gpio(); + InitEPwm7Gpio(); + InitEPwm8Gpio(); + InitEPwm9Gpio(); + InitEPwm10Gpio(); + InitEPwm11Gpio(); + InitEPwm12Gpio(); + InitEPwm13Gpio(); + InitEPwm14Gpio(); + InitEPwm15Gpio(); + InitEPwm16Gpio(); +} + +// +// InitEPwm1Gpio - Initialize EPWM1 GPIOs +// +void InitEPwm1Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // Disable pull-up on GPIO0 (EPWM1A) + GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; // Disable pull-up on GPIO1 (EPWM1B) +// GpioCtrlRegs.GPEPUD.bit.GPIO145 = 1; // Disable pull-up on GPIO145 (EPWM1A) +// GpioCtrlRegs.GPEPUD.bit.GPIO146 = 1; // Disable pull-up on GPIO146 (EPWM1B) + + // + // Configure EPWM-1 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM1 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // Configure GPIO0 as EPWM1A + GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // Configure GPIO1 as EPWM1B +// GpioCtrlRegs.GPEMUX2.bit.GPIO145 = 1; // Configure GPIO145 as EPWM1A +// GpioCtrlRegs.GPEMUX2.bit.GPIO146 = 1; // Configure GPIO0146 as EPWM1B + + EDIS; +} + +// +// InitEPwm2Gpio - Initialize EPWM2 GPIOs +// +void InitEPwm2Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO2 = 1; // Disable pull-up on GPIO2 (EPWM2A) + GpioCtrlRegs.GPAPUD.bit.GPIO3 = 1; // Disable pull-up on GPIO3 (EPWM2B) +// GpioCtrlRegs.GPEPUD.bit.GPIO147 = 1; // Disable pull-up on GPIO147 (EPWM2A) +// GpioCtrlRegs.GPEPUD.bit.GPIO148 = 1; // Disable pull-up on GPIO148 (EPWM2B) + + // + // Configure EPwm-2 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM2 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1; // Configure GPIO2 as EPWM2A + GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 1; // Configure GPIO3 as EPWM2B +// GpioCtrlRegs.GPEMUX2.bit.GPIO147 = 1; // Configure GPIO147 as EPWM2A +// GpioCtrlRegs.GPEMUX2.bit.GPIO148 = 1; // Configure GPIO148 as EPWM2B + + EDIS; +} + +// +// InitEPwm3Gpio - Initialize EPWM3 GPIOs +// +void InitEPwm3Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; // Disable pull-up on GPIO4 (EPWM3A) + GpioCtrlRegs.GPAPUD.bit.GPIO5 = 1; // Disable pull-up on GPIO5 (EPWM3B) +// GpioCtrlRegs.GPEPUD.bit.GPIO149 = 1; // Disable pull-up on GPIO149 (EPWM3A) +// GpioCtrlRegs.GPEPUD.bit.GPIO150 = 1; // Disable pull-up on GPIO150 (EPWM3B) + + // + // Configure EPwm-3 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM3 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 1; // Configure GPIO4 as EPWM3A + GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 1; // Configure GPIO5 as EPWM3B +// GpioCtrlRegs.GPEMUX2.bit.GPIO149 = 1; // Configure GPIO149 as EPWM3A +// GpioCtrlRegs.GPEMUX2.bit.GPIO150 = 1; // Configure GPIO150 as EPWM3B + + EDIS; +} + +// +// InitEPwm4Gpio - Initialize EPWM4 GPIOs +// +void InitEPwm4Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1; // Disable pull-up on GPIO6 (EPWM4A) + GpioCtrlRegs.GPAPUD.bit.GPIO7 = 1; // Disable pull-up on GPIO7 (EPWM4B) +// GpioCtrlRegs.GPEPUD.bit.GPIO151 = 1; // Disable pull-up on GPIO151 (EPWM4A) +// GpioCtrlRegs.GPEPUD.bit.GPIO152 = 1; // Disable pull-up on GPIO152 (EPWM4B) + + // + // Configure EPWM-4 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM4 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1; // Configure GPIO6 as EPWM4A + GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 1; // Configure GPIO7 as EPWM4B +// GpioCtrlRegs.GPEMUX2.bit.GPIO151 = 1; // Configure GPIO151 as EPWM4A +// GpioCtrlRegs.GPEMUX2.bit.GPIO152 = 1; // Configure GPIO152 as EPWM4B + + EDIS; +} + +// +// InitEPwm5Gpio - Initialize EPWM5 GPIOs +// +void InitEPwm5Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO8 = 1; // Disable pull-up on GPIO8 (EPWM5A) + GpioCtrlRegs.GPAPUD.bit.GPIO9 = 1; // Disable pull-up on GPIO9 (EPWM5B) +// GpioCtrlRegs.GPEPUD.bit.GPIO153 = 1; // Disable pull-up on GPIO153 (EPWM5A) +// GpioCtrlRegs.GPEPUD.bit.GPIO154 = 1; // Disable pull-up on GPIO154 (EPWM5B) + + // + // Configure EPWM-5 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM5 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 1; // Configure GPIO8 as EPWM5A + GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 1; // Configure GPIO9 as EPWM5B +// GpioCtrlRegs.GPEMUX2.bit.GPIO153 = 1; // Configure GPIO153 as EPWM5A +// GpioCtrlRegs.GPEMUX2.bit.GPIO154 = 1; // Configure GPIO0154 as EPWM5B + + EDIS; +} + +// +// InitEPwm6Gpio - Initialize EPWM6 GPIOs +// +void InitEPwm6Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO10 = 1; // Disable pull-up on GPIO10 (EPWM6A) + GpioCtrlRegs.GPAPUD.bit.GPIO11 = 1; // Disable pull-up on GPIO11 (EPWM6B) +// GpioCtrlRegs.GPEPUD.bit.GPIO155 = 1; // Disable pull-up on GPIO155 (EPWM6A) +// GpioCtrlRegs.GPEPUD.bit.GPIO156 = 1; // Disable pull-up on GPIO156 (EPWM6B) + + // + // Configure EPWM-6 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM6 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 1; // Configure GPIO10 as EPWM6A + GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 1; // Configure GPIO11 as EPWM6B +// GpioCtrlRegs.GPEMUX2.bit.GPIO155 = 1; // Configure GPIO155 as EPWM6A +// GpioCtrlRegs.GPEMUX2.bit.GPIO156 = 1; // Configure GPIO156 as EPWM6B + + EDIS; +} + +// +// InitEPwm7Gpio - Initialize EPWM7 GPIOs +// +void InitEPwm7Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO12 = 1; // Disable pull-up on GPIO12 (EPWM7A) + GpioCtrlRegs.GPAPUD.bit.GPIO13 = 1; // Disable pull-up on GPIO13 (EPWM7B) +// GpioCtrlRegs.GPEPUD.bit.GPIO157 = 1; // Disable pull-up on GPIO157 (EPWM7A) +// GpioCtrlRegs.GPEPUD.bit.GPIO158 = 1; // Disable pull-up on GPIO158 (EPWM7B) + + // + // Configure EPWM-7 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM7 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 1; // Configure GPIO12 as EPWM7A + GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 1; // Configure GPIO13 as EPWM7B +// GpioCtrlRegs.GPEMUX2.bit.GPIO157 = 1; // Configure GPIO157 as EPWM7A +// GpioCtrlRegs.GPEMUX2.bit.GPIO158 = 1; // Configure GPIO158 as EPWM7B + + EDIS; +} + +// +// InitEPwm8Gpio - Initialize EPWM8 GPIOs +// +void InitEPwm8Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAPUD.bit.GPIO14 = 1; // Disable pull-up on GPIO14 (EPWM8A) + GpioCtrlRegs.GPAPUD.bit.GPIO15 = 1; // Disable pull-up on GPIO15 (EPWM8B) +// GpioCtrlRegs.GPEPUD.bit.GPIO159 = 1; // Disable pull-up on GPIO159 (EPWM8A) +// GpioCtrlRegs.GPFPUD.bit.GPIO160 = 1; // Disable pull-up on GPIO160 (EPWM8B) + + // + // Configure EPWM-8 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM8 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPAMUX1.bit.GPIO14 = 1; // Configure GPIO14 as EPWM8A + GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 1; // Configure GPIO15 as EPWM8B +// GpioCtrlRegs.GPEMUX2.bit.GPIO159 = 1; // Configure GPIO159 as EPWM8A +// GpioCtrlRegs.GPFMUX1.bit.GPIO160 = 1; // Configure GPIO160 as EPWM8B + + EDIS; +} + +// +// InitEPwm9Gpio - Initialize EPWM9 GPIOs +// +void InitEPwm9Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFPUD.bit.GPIO161 = 1; // Disable pull-up on GPIO161 (EPWM9A) + GpioCtrlRegs.GPFPUD.bit.GPIO162 = 1; // Disable pull-up on GPIO162 (EPWM9B) +// GpioCtrlRegs.GPAPUD.bit.GPIO16 = 1; // Disable pull-up on GPIO16 (EPWM9A) +// GpioCtrlRegs.GPAPUD.bit.GPIO17 = 1; // Disable pull-up on GPIO17 (EPWM9B) + + // + // Configure EPWM-9 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM9 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFMUX1.bit.GPIO161 = 1; // Configure GPIO161 as EPWM9A + GpioCtrlRegs.GPFMUX1.bit.GPIO162 = 1; // Configure GPIO162 as EPWM9B + +// // +// // Alternate mapping for EPWM-9. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 0; // Configure GPAMUX to 0 for GPIO16 +// GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0; // Configure GPAMUX to 0 for GPIO17 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO16 = 1; // Configure GPAGMUX for EPWM9A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO17 = 1; // Configure GPAGMUX for EPWM9B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1; // Configure GPAMUX for EPWM9A +// GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; // Configure GPAMUX for EPWM9B + + EDIS; +} + +// +// InitEPwm10Gpio - Initialize EPWM10 GPIOs +// +void InitEPwm10Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFPUD.bit.GPIO163 = 1; // Disable pull-up on GPIO163 (EPWM10A) + GpioCtrlRegs.GPFPUD.bit.GPIO164 = 1; // Disable pull-up on GPIO164 (EPWM10B) +// GpioCtrlRegs.GPAPUD.bit.GPIO18 = 1; // Disable pull-up on GPIO18 (EPWM10A) +// GpioCtrlRegs.GPAPUD.bit.GPIO19 = 1; // Disable pull-up on GPIO19 (EPWM10B) + + // + // Configure EPWM-10 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM10 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFMUX1.bit.GPIO163 = 1; // Configure GPIO163 as EPWM10A + GpioCtrlRegs.GPFMUX1.bit.GPIO164 = 1; // Configure GPIO164 as EPWM10B + +// // +// // Alternate mapping for EPWM-10. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0; // Configure GPAMUX to 0 for GPIO18 +// GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 0; // Configure GPAMUX to 0 for GPIO19 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO18 = 1; // Configure GPAGMUX for EPWM10A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO19 = 1; // Configure GPAGMUX for EPWM10B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 1; // Configure GPAMUX for EPWM10A +// GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1; // Configure GPAMUX for EPWM10B + + EDIS; +} + +// +// InitEPwm11Gpio - Initialize EPWM11 GPIOs +// +void InitEPwm11Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFPUD.bit.GPIO165 = 1; // Disable pull-up on GPIO165 (EPWM11A) + GpioCtrlRegs.GPFPUD.bit.GPIO166 = 1; // Disable pull-up on GPIO166 (EPWM11B) +// GpioCtrlRegs.GPAPUD.bit.GPIO20 = 1; // Disable pull-up on GPIO20 (EPWM11A) +// GpioCtrlRegs.GPAPUD.bit.GPIO21 = 1; // Disable pull-up on GPIO21 (EPWM11B) + + // + // Configure EPWM-11 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM11 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFMUX1.bit.GPIO165 = 1; // Configure GPIO165 as EPWM11A + GpioCtrlRegs.GPFMUX1.bit.GPIO166 = 1; // Configure GPIO166 as EPWM11B + +// // +// // Alternate mapping for EPWM-11. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 0; // Configure GPAMUX to 0 for GPIO20 +// GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 0; // Configure GPAMUX to 0 for GPIO21 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO20 = 1; // Configure GPAGMUX for EPWM11A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO21 = 1; // Configure GPAGMUX for EPWM11B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 1; // Configure GPAMUX for EPWM11A +// GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 1; // Configure GPAMUX for EPWM11B + + EDIS; +} + +// +// InitEPwm12Gpio - Initialize EPWM12 GPIOs +// +void InitEPwm12Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFPUD.bit.GPIO167 = 1; // Disable pull-up on GPIO167 (EPWM12A) + GpioCtrlRegs.GPFPUD.bit.GPIO168 = 1; // Disable pull-up on GPIO168 (EPWM12B) +// GpioCtrlRegs.GPAPUD.bit.GPIO22 = 1; // Disable pull-up on GPIO22 (EPWM12A) +// GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1; // Disable pull-up on GPIO23 (EPWM12B) + + // + // Configure EPWM-12 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM12 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPFMUX1.bit.GPIO167 = 1; // Configure GPIO167 as EPWM12A + GpioCtrlRegs.GPFMUX1.bit.GPIO168 = 1; // Configure GPIO168 as EPWM12B + +// // +// // Alternate mapping for EPWM-12. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 0; // Configure GPAMUX to 0 for GPIO22 +// GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0; // Configure GPAMUX to 0 for GPIO23 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO22 = 1; // Configure GPAGMUX for EPWM12A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO23 = 1; // Configure GPAGMUX for EPWM12B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO22 = 1; // Configure GPAMUX for EPWM12A +// GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 1; // Configure GPAMUX for EPWM12B + + EDIS; +} + +// +// InitEPwm13Gpio - Initialize EPWM13 GPIOs +// +void InitEPwm13Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEPUD.bit.GPIO137 = 1; // Disable pull-up on GPIO137 (EPWM13A) + GpioCtrlRegs.GPEPUD.bit.GPIO138 = 1; // Disable pull-up on GPIO138 (EPWM13B) +// GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1; // Disable pull-up on GPIO24 (EPWM13A) +// GpioCtrlRegs.GPAPUD.bit.GPIO25 = 1; // Disable pull-up on GPIO25 (EPWM13B) + + // + // Configure EPWM-13 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM13 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEMUX1.bit.GPIO137 = 1; // Configure GPIO137 as EPWM13A + GpioCtrlRegs.GPEMUX1.bit.GPIO138 = 1; // Configure GPIO138 as EPWM13B + +// // +// // Alternate mapping for EPWM-13. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 0; // Configure GPAMUX to 0 for GPIO24 +// GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 0; // Configure GPAMUX to 0 for GPIO25 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO24 = 3; // Configure GPAGMUX for EPWM13A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO25 = 3; // Configure GPAGMUX for EPWM13B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 1; // Configure GPAMUX for EPWM13A +// GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 1; // Configure GPAMUX for EPWM13B + + EDIS; +} + +// +// InitEPwm14Gpio - Initialize EPWM14 GPIOs +// +void InitEPwm14Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEPUD.bit.GPIO139 = 1; // Disable pull-up on GPIO139 (EPWM14A) + GpioCtrlRegs.GPEPUD.bit.GPIO140 = 1; // Disable pull-up on GPIO140 (EPWM14B) +// GpioCtrlRegs.GPAPUD.bit.GPIO26 = 1; // Disable pull-up on GPIO26 (EPWM14A) +// GpioCtrlRegs.GPAPUD.bit.GPIO27 = 1; // Disable pull-up on GPIO27 (EPWM14B) + + // + // Configure EPWM-14 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM14 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEMUX1.bit.GPIO139 = 1; // Configure GPIO139 as EPWM14A + GpioCtrlRegs.GPEMUX1.bit.GPIO140 = 1; // Configure GPIO140 as EPWM14B + +// // +// // Alternate mapping for EPWM-14. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 0; // Configure GPAMUX to 0 for GPIO26 +// GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 0; // Configure GPAMUX to 0 for GPIO27 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO26 = 3; // Configure GPAGMUX for EPWM14A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO27 = 3; // Configure GPAGMUX for EPWM14B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 1; // Configure GPAMUX for EPWM14A +// GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 1; // Configure GPAMUX for EPWM14B + + EDIS; +} + +// +// InitEPwm15Gpio - Initialize EPWM15 GPIOs +// +void InitEPwm15Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEPUD.bit.GPIO141 = 1; // Disable pull-up on GPIO141 (EPWM15A) + GpioCtrlRegs.GPEPUD.bit.GPIO142 = 1; // Disable pull-up on GPIO142 (EPWM15B) +// GpioCtrlRegs.GPAPUD.bit.GPIO28 = 1; // Disable pull-up on GPIO28 (EPWM15A) +// GpioCtrlRegs.GPAPUD.bit.GPIO29 = 1; // Disable pull-up on GPIO29 (EPWM15B) + + // + // Configure EPWM-15 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM15 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEMUX1.bit.GPIO141 = 1; // Configure GPIO141 as EPWM15A + GpioCtrlRegs.GPEMUX1.bit.GPIO142 = 1; // Configure GPIO142 as EPWM15B + +// // +// // Alternate mapping for EPWM-15. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 0; // Configure GPAMUX to 0 for GPIO28 +// GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 0; // Configure GPAMUX to 0 for GPIO29 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO28 = 3; // Configure GPAGMUX for EPWM15A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO29 = 3; // Configure GPAGMUX for EPWM15B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // Configure GPAMUX for EPWM15A +// GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // Configure GPAMUX for EPWM15B + + EDIS; +} + +// +// InitEPwm16Gpio - Initialize EPWM16 GPIOs +// +void InitEPwm16Gpio(void) +{ + EALLOW; + + // + // Disable internal pull-up for the selected output pins for reduced + // power consumption. Pull-ups can be enabled or disabled by the user. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEPUD.bit.GPIO143 = 1; // Disable pull-up on GPIO141 (EPWM16A) + GpioCtrlRegs.GPEPUD.bit.GPIO144 = 1; // Disable pull-up on GPIO142 (EPWM16B) +// GpioCtrlRegs.GPAPUD.bit.GPIO30 = 1; // Disable pull-up on GPIO28 (EPWM16A) +// GpioCtrlRegs.GPAPUD.bit.GPIO31 = 1; // Disable pull-up on GPIO29 (EPWM16B) + + // + // Configure EPWM-16 pins using GPIO regs. This specifies which of the + // possible GPIO pins will be EPWM16 functional pins. + // Comment out other unwanted lines. + // + GpioCtrlRegs.GPEMUX1.bit.GPIO143 = 1; // Configure GPIO141 as EPWM16A + GpioCtrlRegs.GPEMUX2.bit.GPIO144 = 1; // Configure GPIO142 as EPWM16B + +// // +// // Alternate mapping for EPWM-16. Uncomment if required. Write 0 to +// // GPAMUx register before configuring GPAGMux to avoid glitches in Mux. +// // +// GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 0; // Configure GPAMUX to 0 for GPIO30 +// GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0; // Configure GPAMUX to 0 for GPIO31 +// +// GpioCtrlRegs.GPAGMUX2.bit.GPIO30 = 3; // Configure GPAGMUx for EPWM16A +// GpioCtrlRegs.GPAGMUX2.bit.GPIO31 = 3; // Configure GPAGMux for EPWM16B +// +// GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1; // Configure GPAMUx for EPWM16A +// GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1; // Configure GPAMux for EPWM16B + + EDIS; +} + +// +// End of File +// diff --git a/i2c_ex1_master/f2838x_globalvariabledefs.c b/i2c_ex1_master/f2838x_globalvariabledefs.c new file mode 100644 index 0000000..db5a2a5 --- /dev/null +++ b/i2c_ex1_master/f2838x_globalvariabledefs.c @@ -0,0 +1,1561 @@ +//########################################################################### +// +// FILE: f2838x_globalvariabledefs.c +// +// TITLE: f2838x Global Variables and Data Section Pragmas. +// +//########################################################################### +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +#include "f2838x_device.h" // f2838x Headerfile Include File + +//--------------------------------------------------------------------------- +// Define Global Peripheral Variables: +// + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AccessProtectionRegsFile") +#else +#pragma DATA_SECTION(AccessProtectionRegs,"AccessProtectionRegsFile"); +#endif +volatile struct ACCESS_PROTECTION_REGS AccessProtectionRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcaRegsFile") +#else +#pragma DATA_SECTION(AdcaRegs,"AdcaRegsFile"); +#endif +volatile struct ADC_REGS AdcaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcbRegsFile") +#else +#pragma DATA_SECTION(AdcbRegs,"AdcbRegsFile"); +#endif +volatile struct ADC_REGS AdcbRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdccRegsFile") +#else +#pragma DATA_SECTION(AdccRegs,"AdccRegsFile"); +#endif +volatile struct ADC_REGS AdccRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcdRegsFile") +#else +#pragma DATA_SECTION(AdcdRegs,"AdcdRegsFile"); +#endif +volatile struct ADC_REGS AdcdRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcaResultRegsFile") +#else +#pragma DATA_SECTION(AdcaResultRegs,"AdcaResultRegsFile"); +#endif +volatile struct ADC_RESULT_REGS AdcaResultRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcbResultRegsFile") +#else +#pragma DATA_SECTION(AdcbResultRegs,"AdcbResultRegsFile"); +#endif +volatile struct ADC_RESULT_REGS AdcbResultRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdccResultRegsFile") +#else +#pragma DATA_SECTION(AdccResultRegs,"AdccResultRegsFile"); +#endif +volatile struct ADC_RESULT_REGS AdccResultRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AdcdResultRegsFile") +#else +#pragma DATA_SECTION(AdcdResultRegs,"AdcdResultRegsFile"); +#endif +volatile struct ADC_RESULT_REGS AdcdResultRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("AnalogSubsysRegsFile") +#else +#pragma DATA_SECTION(AnalogSubsysRegs,"AnalogSubsysRegsFile"); +#endif +volatile struct ANALOG_SUBSYS_REGS AnalogSubsysRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("BgcrcCpuRegsFile") +#else +#pragma DATA_SECTION(BgcrcCpuRegs,"BgcrcCpuRegsFile"); +#endif +volatile struct BGCRC_REGS BgcrcCpuRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("BgcrcCla1RegsFile") +#else +#pragma DATA_SECTION(BgcrcCla1Regs,"BgcrcCla1RegsFile"); +#endif +volatile struct BGCRC_REGS BgcrcCla1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CanaRegsFile") +#else +#pragma DATA_SECTION(CanaRegs,"CanaRegsFile"); +#endif +volatile struct CAN_REGS CanaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CanbRegsFile") +#else +#pragma DATA_SECTION(CanbRegs,"CanbRegsFile"); +#endif +volatile struct CAN_REGS CanbRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cla1RegsFile") +#else +#pragma DATA_SECTION(Cla1Regs,"Cla1RegsFile"); +#endif +volatile struct CLA_REGS Cla1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb1DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb1DataExchRegs,"Clb1DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb1DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb2DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb2DataExchRegs,"Clb2DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb2DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb3DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb3DataExchRegs,"Clb3DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb3DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb4DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb4DataExchRegs,"Clb4DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb4DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb5DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb5DataExchRegs,"Clb5DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb5DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb6DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb6DataExchRegs,"Clb6DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb6DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb7DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb7DataExchRegs,"Clb7DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb7DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb8DataExchRegsFile") +#else +#pragma DATA_SECTION(Clb8DataExchRegs,"Clb8DataExchRegsFile"); +#endif +volatile struct CLB_DATA_EXCHANGE_REGS Clb8DataExchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb1LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb1LogicCfgRegs,"Clb1LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb1LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb2LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb2LogicCfgRegs,"Clb2LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb2LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb3LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb3LogicCfgRegs,"Clb3LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb3LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb4LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb4LogicCfgRegs,"Clb4LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb4LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb5LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb5LogicCfgRegs,"Clb5LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb5LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb6LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb6LogicCfgRegs,"Clb6LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb6LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb7LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb7LogicCfgRegs,"Clb7LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb7LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb8LogicCfgRegsFile") +#else +#pragma DATA_SECTION(Clb8LogicCfgRegs,"Clb8LogicCfgRegsFile"); +#endif +volatile struct CLB_LOGIC_CONFIG_REGS Clb8LogicCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb1LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb1LogicCtrlRegs,"Clb1LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb1LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb2LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb2LogicCtrlRegs,"Clb2LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb2LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb3LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb3LogicCtrlRegs,"Clb3LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb3LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb4LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb4LogicCtrlRegs,"Clb4LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb4LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb5LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb5LogicCtrlRegs,"Clb5LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb5LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb6LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb6LogicCtrlRegs,"Clb6LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb6LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb7LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb7LogicCtrlRegs,"Clb7LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb7LogicCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Clb8LogicCtrlRegsFile") +#else +#pragma DATA_SECTION(Clb8LogicCtrlRegs,"Clb8LogicCtrlRegsFile"); +#endif +volatile struct CLB_LOGIC_CONTROL_REGS Clb8LogicCtrlRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CLBXbarRegsFile") +#else +#pragma DATA_SECTION(CLBXbarRegs,"CLBXbarRegsFile"); +#endif +volatile struct CLB_XBAR_REGS CLBXbarRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ClkCfgRegsFile") +#else +#pragma DATA_SECTION(ClkCfgRegs,"ClkCfgRegsFile"); +#endif +volatile struct CLK_CFG_REGS ClkCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss1RegsFile") +#else +#pragma DATA_SECTION(Cmpss1Regs,"Cmpss1RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss2RegsFile") +#else +#pragma DATA_SECTION(Cmpss2Regs,"Cmpss2RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss3RegsFile") +#else +#pragma DATA_SECTION(Cmpss3Regs,"Cmpss3RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss4RegsFile") +#else +#pragma DATA_SECTION(Cmpss4Regs,"Cmpss4RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss5RegsFile") +#else +#pragma DATA_SECTION(Cmpss5Regs,"Cmpss5RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss5Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss6RegsFile") +#else +#pragma DATA_SECTION(Cmpss6Regs,"Cmpss6RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss7RegsFile") +#else +#pragma DATA_SECTION(Cmpss7Regs,"Cmpss7RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cmpss8RegsFile") +#else +#pragma DATA_SECTION(Cmpss8Regs,"Cmpss8RegsFile"); +#endif +volatile struct CMPSS_REGS Cmpss8Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CmConfRegsFile") +#else +#pragma DATA_SECTION(CmConfRegs,"CmConfRegsFile"); +#endif +volatile struct CM_CONF_REGS CmConfRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cpu1toCmIpcRegsFile") +#else +#pragma DATA_SECTION(Cpu1toCmIpcRegs,"Cpu1toCmIpcRegsFile"); +#endif +volatile struct CPU1TOCM_IPC_REGS_CPU1VIEW Cpu1toCmIpcRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cpu1toCpu2IpcRegsFile") +#else +#pragma DATA_SECTION(Cpu1toCpu2IpcRegs,"Cpu1toCpu2IpcRegsFile"); +#endif +volatile struct CPU1TOCPU2_IPC_REGS_CPU1VIEW Cpu1toCpu2IpcRegs; +#endif // ifdef CPU1 + +#ifdef CPU2 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cpu2toCpu1IpcRegsFile") +#else +#pragma DATA_SECTION(Cpu2toCpu1IpcRegs,"Cpu2toCpu1IpcRegsFile"); +#endif +volatile struct CPU1TOCPU2_IPC_REGS_CPU2VIEW Cpu2toCpu1IpcRegs; +#endif // ifdef CPU2 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SysPeriphAcRegsFile") +#else +#pragma DATA_SECTION(SysPeriphAcRegs,"SysPeriphAcRegsFile"); +#endif +volatile struct CPU1_PERIPH_AC_REGS SysPeriphAcRegs; +#endif // ifdef CPU1 + +#ifdef CPU2 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Cpu2toCmIpcRegsFile") +#else +#pragma DATA_SECTION(Cpu2toCmIpcRegs,"Cpu2toCmIpcRegsFile"); +#endif +volatile struct CPU2TOCM_IPC_REGS_CPU2VIEW Cpu2toCmIpcRegs; +#endif // ifdef CPU2 + +#ifdef CPU2 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SysPeriphAcRegsFile") +#else +#pragma DATA_SECTION(SysPeriphAcRegs,"SysPeriphAcRegsFile"); +#endif +volatile struct CPU2_PERIPH_AC_REGS SysPeriphAcRegs; +#endif // ifdef CPU2 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CpuTimer0RegsFile") +#else +#pragma DATA_SECTION(CpuTimer0Regs,"CpuTimer0RegsFile"); +#endif +volatile struct CPUTIMER_REGS CpuTimer0Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CpuTimer1RegsFile") +#else +#pragma DATA_SECTION(CpuTimer1Regs,"CpuTimer1RegsFile"); +#endif +volatile struct CPUTIMER_REGS CpuTimer1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CpuTimer2RegsFile") +#else +#pragma DATA_SECTION(CpuTimer2Regs,"CpuTimer2RegsFile"); +#endif +volatile struct CPUTIMER_REGS CpuTimer2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("CpuSysRegsFile") +#else +#pragma DATA_SECTION(CpuSysRegs,"CpuSysRegsFile"); +#endif +volatile struct CPU_SYS_REGS CpuSysRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DacaRegsFile") +#else +#pragma DATA_SECTION(DacaRegs,"DacaRegsFile"); +#endif +volatile struct DAC_REGS DacaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DacbRegsFile") +#else +#pragma DATA_SECTION(DacbRegs,"DacbRegsFile"); +#endif +volatile struct DAC_REGS DacbRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DaccRegsFile") +#else +#pragma DATA_SECTION(DaccRegs,"DaccRegsFile"); +#endif +volatile struct DAC_REGS DaccRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Dcc0RegsFile") +#else +#pragma DATA_SECTION(Dcc0Regs,"Dcc0RegsFile"); +#endif +volatile struct DCC_REGS Dcc0Regs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Dcc1RegsFile") +#else +#pragma DATA_SECTION(Dcc1Regs,"Dcc1RegsFile"); +#endif +volatile struct DCC_REGS Dcc1Regs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Dcc2RegsFile") +#else +#pragma DATA_SECTION(Dcc2Regs,"Dcc2RegsFile"); +#endif +volatile struct DCC_REGS Dcc2Regs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DcsmCommonRegsFile") +#else +#pragma DATA_SECTION(DcsmCommonRegs,"DcsmCommonRegsFile"); +#endif +volatile struct DCSM_COMMON_REGS DcsmCommonRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DcsmZ1OtpRegsFile") +#else +#pragma DATA_SECTION(DcsmZ1OtpRegs,"DcsmZ1OtpRegsFile"); +#endif +volatile struct DCSM_Z1_OTP DcsmZ1OtpRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DcsmZ1RegsFile") +#else +#pragma DATA_SECTION(DcsmZ1Regs,"DcsmZ1RegsFile"); +#endif +volatile struct DCSM_Z1_REGS DcsmZ1Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DcsmZ2OtpRegsFile") +#else +#pragma DATA_SECTION(DcsmZ2OtpRegs,"DcsmZ2OtpRegsFile"); +#endif +volatile struct DCSM_Z2_OTP DcsmZ2OtpRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DcsmZ2RegsFile") +#else +#pragma DATA_SECTION(DcsmZ2Regs,"DcsmZ2RegsFile"); +#endif +volatile struct DCSM_Z2_REGS DcsmZ2Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DevCfgRegsFile") +#else +#pragma DATA_SECTION(DevCfgRegs,"DevCfgRegsFile"); +#endif +volatile struct DEV_CFG_REGS DevCfgRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DmaClaSrcSelRegsFile") +#else +#pragma DATA_SECTION(DmaClaSrcSelRegs,"DmaClaSrcSelRegsFile"); +#endif +volatile struct DMA_CLA_SRC_SEL_REGS DmaClaSrcSelRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("DmaRegsFile") +#else +#pragma DATA_SECTION(DmaRegs,"DmaRegsFile"); +#endif +volatile struct DMA_REGS DmaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap1RegsFile") +#else +#pragma DATA_SECTION(ECap1Regs,"ECap1RegsFile"); +#endif +volatile struct ECAP_REGS ECap1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap2RegsFile") +#else +#pragma DATA_SECTION(ECap2Regs,"ECap2RegsFile"); +#endif +volatile struct ECAP_REGS ECap2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap3RegsFile") +#else +#pragma DATA_SECTION(ECap3Regs,"ECap3RegsFile"); +#endif +volatile struct ECAP_REGS ECap3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap4RegsFile") +#else +#pragma DATA_SECTION(ECap4Regs,"ECap4RegsFile"); +#endif +volatile struct ECAP_REGS ECap4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap5RegsFile") +#else +#pragma DATA_SECTION(ECap5Regs,"ECap5RegsFile"); +#endif +volatile struct ECAP_REGS ECap5Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap6RegsFile") +#else +#pragma DATA_SECTION(ECap6Regs,"ECap6RegsFile"); +#endif +volatile struct ECAP_REGS ECap6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ECap7RegsFile") +#else +#pragma DATA_SECTION(ECap7Regs,"ECap7RegsFile"); +#endif +volatile struct ECAP_REGS ECap7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Emif1ConfigRegsFile") +#else +#pragma DATA_SECTION(Emif1ConfigRegs,"Emif1ConfigRegsFile"); +#endif +volatile struct EMIF1_CONFIG_REGS Emif1ConfigRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Emif2ConfigRegsFile") +#else +#pragma DATA_SECTION(Emif2ConfigRegs,"Emif2ConfigRegsFile"); +#endif +volatile struct EMIF2_CONFIG_REGS Emif2ConfigRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Emif1RegsFile") +#else +#pragma DATA_SECTION(Emif1Regs,"Emif1RegsFile"); +#endif +volatile struct EMIF_REGS Emif1Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Emif2RegsFile") +#else +#pragma DATA_SECTION(Emif2Regs,"Emif2RegsFile"); +#endif +volatile struct EMIF_REGS Emif2Regs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm1RegsFile") +#else +#pragma DATA_SECTION(EPwm1Regs,"EPwm1RegsFile"); +#endif +volatile struct EPWM_REGS EPwm1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm2RegsFile") +#else +#pragma DATA_SECTION(EPwm2Regs,"EPwm2RegsFile"); +#endif +volatile struct EPWM_REGS EPwm2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm3RegsFile") +#else +#pragma DATA_SECTION(EPwm3Regs,"EPwm3RegsFile"); +#endif +volatile struct EPWM_REGS EPwm3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm4RegsFile") +#else +#pragma DATA_SECTION(EPwm4Regs,"EPwm4RegsFile"); +#endif +volatile struct EPWM_REGS EPwm4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm5RegsFile") +#else +#pragma DATA_SECTION(EPwm5Regs,"EPwm5RegsFile"); +#endif +volatile struct EPWM_REGS EPwm5Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm6RegsFile") +#else +#pragma DATA_SECTION(EPwm6Regs,"EPwm6RegsFile"); +#endif +volatile struct EPWM_REGS EPwm6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm7RegsFile") +#else +#pragma DATA_SECTION(EPwm7Regs,"EPwm7RegsFile"); +#endif +volatile struct EPWM_REGS EPwm7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm8RegsFile") +#else +#pragma DATA_SECTION(EPwm8Regs,"EPwm8RegsFile"); +#endif +volatile struct EPWM_REGS EPwm8Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm9RegsFile") +#else +#pragma DATA_SECTION(EPwm9Regs,"EPwm9RegsFile"); +#endif +volatile struct EPWM_REGS EPwm9Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm10RegsFile") +#else +#pragma DATA_SECTION(EPwm10Regs,"EPwm10RegsFile"); +#endif +volatile struct EPWM_REGS EPwm10Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm11RegsFile") +#else +#pragma DATA_SECTION(EPwm11Regs,"EPwm11RegsFile"); +#endif +volatile struct EPWM_REGS EPwm11Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm12RegsFile") +#else +#pragma DATA_SECTION(EPwm12Regs,"EPwm12RegsFile"); +#endif +volatile struct EPWM_REGS EPwm12Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm13RegsFile") +#else +#pragma DATA_SECTION(EPwm13Regs,"EPwm13RegsFile"); +#endif +volatile struct EPWM_REGS EPwm13Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm14RegsFile") +#else +#pragma DATA_SECTION(EPwm14Regs,"EPwm14RegsFile"); +#endif +volatile struct EPWM_REGS EPwm14Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm15RegsFile") +#else +#pragma DATA_SECTION(EPwm15Regs,"EPwm15RegsFile"); +#endif +volatile struct EPWM_REGS EPwm15Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwm16RegsFile") +#else +#pragma DATA_SECTION(EPwm16Regs,"EPwm16RegsFile"); +#endif +volatile struct EPWM_REGS EPwm16Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EPwmXbarRegsFile") +#else +#pragma DATA_SECTION(EPwmXbarRegs,"EPwmXbarRegsFile"); +#endif +volatile struct EPWM_XBAR_REGS EPwmXbarRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EQep1RegsFile") +#else +#pragma DATA_SECTION(EQep1Regs,"EQep1RegsFile"); +#endif +volatile struct EQEP_REGS EQep1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EQep2RegsFile") +#else +#pragma DATA_SECTION(EQep2Regs,"EQep2RegsFile"); +#endif +volatile struct EQEP_REGS EQep2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EQep3RegsFile") +#else +#pragma DATA_SECTION(EQep3Regs,"EQep3RegsFile"); +#endif +volatile struct EQEP_REGS EQep3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCounter1RegsFile") +#else +#pragma DATA_SECTION(EradCounter1Regs,"EradCounter1RegsFile"); +#endif +volatile struct ERAD_COUNTER_REGS EradCounter1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCounter2RegsFile") +#else +#pragma DATA_SECTION(EradCounter2Regs,"EradCounter2RegsFile"); +#endif +volatile struct ERAD_COUNTER_REGS EradCounter2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCounter3RegsFile") +#else +#pragma DATA_SECTION(EradCounter3Regs,"EradCounter3RegsFile"); +#endif +volatile struct ERAD_COUNTER_REGS EradCounter3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCounter4RegsFile") +#else +#pragma DATA_SECTION(EradCounter4Regs,"EradCounter4RegsFile"); +#endif +volatile struct ERAD_COUNTER_REGS EradCounter4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRCGlobalRegsFile") +#else +#pragma DATA_SECTION(EradCRCGlobalRegs,"EradCRCGlobalRegsFile"); +#endif +volatile struct ERAD_CRC_GLOBAL_REGS EradCRCGlobalRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC1RegsFile") +#else +#pragma DATA_SECTION(EradCRC1Regs,"EradCRC1RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC2RegsFile") +#else +#pragma DATA_SECTION(EradCRC2Regs,"EradCRC2RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC3RegsFile") +#else +#pragma DATA_SECTION(EradCRC3Regs,"EradCRC3RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC4RegsFile") +#else +#pragma DATA_SECTION(EradCRC4Regs,"EradCRC4RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC5RegsFile") +#else +#pragma DATA_SECTION(EradCRC5Regs,"EradCRC5RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC5Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC6RegsFile") +#else +#pragma DATA_SECTION(EradCRC6Regs,"EradCRC6RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC7RegsFile") +#else +#pragma DATA_SECTION(EradCRC7Regs,"EradCRC7RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradCRC8RegsFile") +#else +#pragma DATA_SECTION(EradCRC8Regs,"EradCRC8RegsFile"); +#endif +volatile struct ERAD_CRC_REGS EradCRC8Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradGlobalRegsFile") +#else +#pragma DATA_SECTION(EradGlobalRegs,"EradGlobalRegsFile"); +#endif +volatile struct ERAD_GLOBAL_REGS EradGlobalRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP1RegsFile") +#else +#pragma DATA_SECTION(EradHWBP1Regs,"EradHWBP1RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP2RegsFile") +#else +#pragma DATA_SECTION(EradHWBP2Regs,"EradHWBP2RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP3RegsFile") +#else +#pragma DATA_SECTION(EradHWBP3Regs,"EradHWBP3RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP3Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP4RegsFile") +#else +#pragma DATA_SECTION(EradHWBP4Regs,"EradHWBP4RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP4Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP5RegsFile") +#else +#pragma DATA_SECTION(EradHWBP5Regs,"EradHWBP5RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP5Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP6RegsFile") +#else +#pragma DATA_SECTION(EradHWBP6Regs,"EradHWBP6RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP7RegsFile") +#else +#pragma DATA_SECTION(EradHWBP7Regs,"EradHWBP7RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EradHWBP8RegsFile") +#else +#pragma DATA_SECTION(EradHWBP8Regs,"EradHWBP8RegsFile"); +#endif +volatile struct ERAD_HWBP_REGS EradHWBP8Regs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EscssConfigRegsFile") +#else +#pragma DATA_SECTION(EscssConfigRegs,"EscssConfigRegsFile"); +#endif +volatile struct ESCSS_CONFIG_REGS EscssConfigRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("EscssRegsFile") +#else +#pragma DATA_SECTION(EscssRegs,"EscssRegsFile"); +#endif +volatile struct ESCSS_REGS EscssRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Flash0CtrlRegsFile") +#else +#pragma DATA_SECTION(Flash0CtrlRegs,"Flash0CtrlRegsFile"); +#endif +volatile struct FLASH_CTRL_REGS Flash0CtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Flash0EccRegsFile") +#else +#pragma DATA_SECTION(Flash0EccRegs,"Flash0EccRegsFile"); +#endif +volatile struct FLASH_ECC_REGS Flash0EccRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxaRegsFile") +#else +#pragma DATA_SECTION(FsiRxaRegs,"FsiRxaRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxbRegsFile") +#else +#pragma DATA_SECTION(FsiRxbRegs,"FsiRxbRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxbRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxcRegsFile") +#else +#pragma DATA_SECTION(FsiRxcRegs,"FsiRxcRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxcRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxdRegsFile") +#else +#pragma DATA_SECTION(FsiRxdRegs,"FsiRxdRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxdRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxeRegsFile") +#else +#pragma DATA_SECTION(FsiRxeRegs,"FsiRxeRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxeRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxfRegsFile") +#else +#pragma DATA_SECTION(FsiRxfRegs,"FsiRxfRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxfRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxgRegsFile") +#else +#pragma DATA_SECTION(FsiRxgRegs,"FsiRxgRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiRxhRegsFile") +#else +#pragma DATA_SECTION(FsiRxhRegs,"FsiRxhRegsFile"); +#endif +volatile struct FSI_RX_REGS FsiRxhRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiTxaRegsFile") +#else +#pragma DATA_SECTION(FsiTxaRegs,"FsiTxaRegsFile"); +#endif +volatile struct FSI_TX_REGS FsiTxaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("FsiTxbRegsFile") +#else +#pragma DATA_SECTION(FsiTxbRegs,"FsiTxbRegsFile"); +#endif +volatile struct FSI_TX_REGS FsiTxbRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("GpioCtrlRegsFile") +#else +#pragma DATA_SECTION(GpioCtrlRegs,"GpioCtrlRegsFile"); +#endif +volatile struct GPIO_CTRL_REGS GpioCtrlRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("GpioDataReadRegsFile") +#else +#pragma DATA_SECTION(GpioDataReadRegs,"GpioDataReadRegsFile"); +#endif +volatile struct GPIO_DATA_READ_REGS GpioDataReadRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("GpioDataRegsFile") +#else +#pragma DATA_SECTION(GpioDataRegs,"GpioDataRegsFile"); +#endif +volatile struct GPIO_DATA_REGS GpioDataRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("HRCap6RegsFile") +#else +#pragma DATA_SECTION(HRCap6Regs,"HRCap6RegsFile"); +#endif +volatile struct HRCAP_REGS HRCap6Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("HRCap7RegsFile") +#else +#pragma DATA_SECTION(HRCap7Regs,"HRCap7RegsFile"); +#endif +volatile struct HRCAP_REGS HRCap7Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("I2caRegsFile") +#else +#pragma DATA_SECTION(I2caRegs,"I2caRegsFile"); +#endif +volatile struct I2C_REGS I2caRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("I2cbRegsFile") +#else +#pragma DATA_SECTION(I2cbRegs,"I2cbRegsFile"); +#endif +volatile struct I2C_REGS I2cbRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("InputXbarRegsFile") +#else +#pragma DATA_SECTION(InputXbarRegs,"InputXbarRegsFile"); +#endif +volatile struct INPUT_XBAR_REGS InputXbarRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ClbInputXbarRegsFile") +#else +#pragma DATA_SECTION(ClbInputXbarRegs,"ClbInputXbarRegsFile"); +#endif +volatile struct INPUT_XBAR_REGS ClbInputXbarRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("McanaSsRegsFile") +#else +#pragma DATA_SECTION(McanaSsRegs,"McanaSsRegsFile"); +#endif +volatile struct MCANSS_REGS McanaSsRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("McanaErrRegsFile") +#else +#pragma DATA_SECTION(McanaErrRegs,"McanaErrRegsFile"); +#endif +volatile struct MCAN_ERROR_REGS McanaErrRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("McanaRegsFile") +#else +#pragma DATA_SECTION(McanaRegs,"McanaRegsFile"); +#endif +volatile struct MCAN_REGS McanaRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("MemoryErrorRegsFile") +#else +#pragma DATA_SECTION(MemoryErrorRegs,"MemoryErrorRegsFile"); +#endif +volatile struct MEMORY_ERROR_REGS MemoryErrorRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("MemCfgRegsFile") +#else +#pragma DATA_SECTION(MemCfgRegs,"MemCfgRegsFile"); +#endif +volatile struct MEM_CFG_REGS MemCfgRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("McbspaRegsFile") +#else +#pragma DATA_SECTION(McbspaRegs,"McbspaRegsFile"); +#endif +volatile struct McBSP_REGS McbspaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("McbspbRegsFile") +#else +#pragma DATA_SECTION(McbspbRegs,"McbspbRegsFile"); +#endif +volatile struct McBSP_REGS McbspbRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("NmiIntruptRegsFile") +#else +#pragma DATA_SECTION(NmiIntruptRegs,"NmiIntruptRegsFile"); +#endif +volatile struct NMI_INTRUPT_REGS NmiIntruptRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("OutputXbarRegsFile") +#else +#pragma DATA_SECTION(OutputXbarRegs,"OutputXbarRegsFile"); +#endif +volatile struct OUTPUT_XBAR_REGS OutputXbarRegs; +#endif // ifdef CPU1 + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ClbOutputXbarRegsFile") +#else +#pragma DATA_SECTION(ClbOutputXbarRegs,"ClbOutputXbarRegsFile"); +#endif +volatile struct OUTPUT_XBAR_REGS ClbOutputXbarRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("PieCtrlRegsFile") +#else +#pragma DATA_SECTION(PieCtrlRegs,"PieCtrlRegsFile"); +#endif +volatile struct PIE_CTRL_REGS PieCtrlRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("PieVectTableFile") +#else +#pragma DATA_SECTION(PieVectTable,"PieVectTableFile"); +#endif +volatile struct PIE_VECT_TABLE PieVectTable; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("PmbusaRegsFile") +#else +#pragma DATA_SECTION(PmbusaRegs,"PmbusaRegsFile"); +#endif +volatile struct PMBUS_REGS PmbusaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("RomPrefetchRegsFile") +#else +#pragma DATA_SECTION(RomPrefetchRegs,"RomPrefetchRegsFile"); +#endif +volatile struct ROM_PREFETCH_REGS RomPrefetchRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("RomWaitStateRegsFile") +#else +#pragma DATA_SECTION(RomWaitStateRegs,"RomWaitStateRegsFile"); +#endif +volatile struct ROM_WAIT_STATE_REGS RomWaitStateRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SciaRegsFile") +#else +#pragma DATA_SECTION(SciaRegs,"SciaRegsFile"); +#endif +volatile struct SCI_REGS SciaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ScibRegsFile") +#else +#pragma DATA_SECTION(ScibRegs,"ScibRegsFile"); +#endif +volatile struct SCI_REGS ScibRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ScicRegsFile") +#else +#pragma DATA_SECTION(ScicRegs,"ScicRegsFile"); +#endif +volatile struct SCI_REGS ScicRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("ScidRegsFile") +#else +#pragma DATA_SECTION(ScidRegs,"ScidRegsFile"); +#endif +volatile struct SCI_REGS ScidRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Sdfm1RegsFile") +#else +#pragma DATA_SECTION(Sdfm1Regs,"Sdfm1RegsFile"); +#endif +volatile struct SDFM_REGS Sdfm1Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("Sdfm2RegsFile") +#else +#pragma DATA_SECTION(Sdfm2Regs,"Sdfm2RegsFile"); +#endif +volatile struct SDFM_REGS Sdfm2Regs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SpiaRegsFile") +#else +#pragma DATA_SECTION(SpiaRegs,"SpiaRegsFile"); +#endif +volatile struct SPI_REGS SpiaRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SpibRegsFile") +#else +#pragma DATA_SECTION(SpibRegs,"SpibRegsFile"); +#endif +volatile struct SPI_REGS SpibRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SpicRegsFile") +#else +#pragma DATA_SECTION(SpicRegs,"SpicRegsFile"); +#endif +volatile struct SPI_REGS SpicRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SpidRegsFile") +#else +#pragma DATA_SECTION(SpidRegs,"SpidRegsFile"); +#endif +volatile struct SPI_REGS SpidRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SyncSocRegsFile") +#else +#pragma DATA_SECTION(SyncSocRegs,"SyncSocRegsFile"); +#endif +volatile struct SYNC_SOC_REGS SyncSocRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("SysStatusRegsFile") +#else +#pragma DATA_SECTION(SysStatusRegs,"SysStatusRegsFile"); +#endif +volatile struct SYS_STATUS_REGS SysStatusRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("TestErrorRegsFile") +#else +#pragma DATA_SECTION(TestErrorRegs,"TestErrorRegsFile"); +#endif +volatile struct TEST_ERROR_REGS TestErrorRegs; + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("WdRegsFile") +#else +#pragma DATA_SECTION(WdRegs,"WdRegsFile"); +#endif +volatile struct WD_REGS WdRegs; + +#ifdef CPU1 +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("XbarRegsFile") +#else +#pragma DATA_SECTION(XbarRegs,"XbarRegsFile"); +#endif +volatile struct XBAR_REGS XbarRegs; +#endif // ifdef CPU1 + +//---------------------------------------- +#ifdef __cplusplus +#pragma DATA_SECTION("XintRegsFile") +#else +#pragma DATA_SECTION(XintRegs,"XintRegsFile"); +#endif +volatile struct XINT_REGS XintRegs; + + + +//=========================================================================== +// End of file. +//=========================================================================== + + diff --git a/i2c_ex1_master/f2838x_gpio.c b/i2c_ex1_master/f2838x_gpio.c new file mode 100644 index 0000000..aca3330 --- /dev/null +++ b/i2c_ex1_master/f2838x_gpio.c @@ -0,0 +1,472 @@ +//########################################################################### +// +// FILE: f2838x_gpio.c +// +// TITLE: GPIO module support functions +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" +#include "f2838x_examples.h" + +// +//Low-level functions for GPIO configuration (CPU1 only) +// + +#ifdef CPU1 + // + // InitGpio - Sets all pins to be muxed to GPIO in input mode. + // Also resets CPU control to CPU1 and disables open + // drain and polarity inversion and sets the qualification to + // synchronous. Also unlocks all GPIOs. Only one CPU should call + // this function. + // + void InitGpio() + { + volatile Uint32 *gpioBaseAddr; + Uint16 regOffset; + + // + //Disable pin locks + // + EALLOW; + GpioCtrlRegs.GPALOCK.all = 0x00000000; + GpioCtrlRegs.GPBLOCK.all = 0x00000000; + GpioCtrlRegs.GPCLOCK.all = 0x00000000; + GpioCtrlRegs.GPDLOCK.all = 0x00000000; + GpioCtrlRegs.GPELOCK.all = 0x00000000; + GpioCtrlRegs.GPFLOCK.all = 0x00000000; + + // + // Fill all registers with zeros. Writing to each register separately + // for six GPIO modules would make this function *very* long. + // Fortunately, we'd be writing them all with zeros anyway, so this + // saves a lot of space. + // + gpioBaseAddr = (Uint32 *)&GpioCtrlRegs; + for (regOffset = 0; regOffset < sizeof(GpioCtrlRegs)/2; regOffset++) + { + // + //Hack to avoid enabling pull-ups on all pins. GPyPUD is offset + //0x0C in each register group of 0x40 words. Since this is a + //32-bit pointer, the addresses must be divided by 2. + // + if (regOffset % (0x40/2) != (0x0C/2)) + { + gpioBaseAddr[regOffset] = 0x00000000; + } + } + + gpioBaseAddr = (Uint32 *)&GpioDataRegs; + for (regOffset = 0; regOffset < sizeof(GpioDataRegs)/2; regOffset++) + { + gpioBaseAddr[regOffset] = 0x00000000; + } + + EDIS; + } + + // + // GPIO_SetupPinMux - Set the peripheral muxing for the specified pin. The + // appropriate parameters can be found in the GPIO Muxed + // Pins table(4.4) in the datasheet. Use the GPIO index + // row (0 to 15) to select a muxing option for the GPIO. + // + void GPIO_SetupPinMux(Uint16 gpioNumber, Uint16 cpu, Uint16 muxPosition) + { + volatile Uint32 *gpioBaseAddr; + volatile Uint32 *mux, *gmux, *csel; + Uint16 pin32, pin16, pin8; + + pin32 = gpioNumber % 32; + pin16 = gpioNumber % 16; + pin8 = gpioNumber % 8; + gpioBaseAddr = (Uint32 *)&GpioCtrlRegs + (gpioNumber/32)*GPY_CTRL_OFFSET; + + // + //Sanity check for valid cpu and peripheral values + // + if (cpu > GPIO_MUX_CPU2CLA || muxPosition > 0xF) + return; + + // + //Create pointers to the appropriate registers. This is a workaround + //for the way GPIO registers are defined. The standard definition + //in the header file makes it very easy to do named accesses of one + //register or bit, but hard to do arbitrary numerical accesses. It's + //easier to have an array of GPIO modules with identical registers, + //including arrays for multi-register groups like GPyCSEL1-4. But + //the header file doesn't define anything we can turn into an array, + //so manual pointer arithmetic is used instead. + // + mux = gpioBaseAddr + GPYMUX + pin32/16; + gmux = gpioBaseAddr + GPYGMUX + pin32/16; + csel = gpioBaseAddr + GPYCSEL + pin32/8; + + // + //Now for the actual function + // + EALLOW; + + // + //To change the muxing, set the peripheral mux to 0/GPIO first to avoid + //glitches, then change the group mux, then set the peripheral mux to + //its target value. Finally, set the CPU select. This procedure is + //described in the TRM. Unfortunately, since we don't know the pin in + //advance we can't hardcode a bitfield reference, so there's some + //tricky bit twiddling here. + // + *mux &= ~(0x3UL << (2*pin16)); + *gmux &= ~(0x3UL << (2*pin16)); + *gmux |= (Uint32)((muxPosition >> 2) & 0x3UL) << (2*pin16); + *mux |= (Uint32)(muxPosition & 0x3UL) << (2*pin16); + + *csel &= ~(0x3L << (4*pin8)); + *csel |= (Uint32)(cpu & 0x3L) << (4*pin8); + + // + //WARNING: This code does not touch the analog mode select registers, + //which are needed to give the USB module control of its IOs. + // + EDIS; + } + + // + // GPIO_SetupPinOptions - Setup up the GPIO input/output options for the + // specified pin. + // + //The flags are a 16-bit mask produced by ORing together options. + //For input pins, the valid flags are: + //GPIO_PULLUP Enable pull-up + //GPIO_INVERT Enable input polarity inversion + //GPIO_SYNC Synchronize the input latch to PLLSYSCLK + // (default -- you don't need to specify this) + //GPIO_QUAL3 Use 3-sample qualification + //GPIO_QUAL6 Use 6-sample qualification + //GPIO_ASYNC Do not use synchronization or qualification + //(Note: only one of SYNC, QUAL3, QUAL6, or ASYNC is allowed) + // + //For output pins, the valid flags are: + //GPIO_OPENDRAIN Output in open drain mode + //GPIO_PULLUP If open drain enabled, also enable the pull-up + //and the input qualification flags (SYNC/QUAL3/QUAL6/SYNC) listed above. + // + //With no flags, the default input state is synchronous with no + //pull-up or polarity inversion. The default output state is + //the standard digital output. + // + void GPIO_SetupPinOptions(Uint16 gpioNumber, Uint16 output, Uint16 flags) + { + volatile Uint32 *gpioBaseAddr; + volatile Uint32 *dir, *pud, *inv, *odr, *qsel; + Uint32 pin32, pin16, pinMask, qual; + + pin32 = gpioNumber % 32; + pin16 = gpioNumber % 16; + pinMask = 1UL << pin32; + gpioBaseAddr = (Uint32 *)&GpioCtrlRegs + (gpioNumber/32)*GPY_CTRL_OFFSET; + + // + //Create pointers to the appropriate registers. This is a workaround + //for the way GPIO registers are defined. The standard definition + //in the header file makes it very easy to do named accesses of one + //register or bit, but hard to do arbitrary numerical accesses. It's + //easier to have an array of GPIO modules with identical registers, + //including arrays for multi-register groups like GPyQSEL1-2. But + //the header file doesn't define anything we can turn into an array, + //so manual pointer arithmetic is used instead. + // + dir = gpioBaseAddr + GPYDIR; + pud = gpioBaseAddr + GPYPUD; + inv = gpioBaseAddr + GPYINV; + odr = gpioBaseAddr + GPYODR; + qsel = gpioBaseAddr + GPYQSEL + pin32/16; + + EALLOW; + + // + //Set the data direction + // + *dir &= ~pinMask; + if (output == 1) + { + // + //Output, with optional open drain mode and pull-up + // + *dir |= pinMask; + + // + //Enable open drain if necessary + // + if (flags & GPIO_OPENDRAIN) + { + *odr |= pinMask; + } + else + { + *odr &= ~pinMask; + } + + // + //Enable pull-up if necessary. Open drain mode must be active. + // + if (flags & (GPIO_OPENDRAIN | GPIO_PULLUP)) + { + *pud &= ~pinMask; + } + else + { + *pud |= pinMask; + } + } + else + { + // + //Input, with optional pull-up, qualification, and polarity + //inversion + // + *dir &= ~pinMask; + + // + //Enable pull-up if necessary + // + if (flags & GPIO_PULLUP) + { + *pud &= ~pinMask; + } + else + { + *pud |= pinMask; + } + + // + //Invert polarity if necessary + // + if (flags & GPIO_INVERT) + { + *inv |= pinMask; + } + else + { + *inv &= ~pinMask; + } + } + + // + //Extract the qualification parameter and load it into the register. + //This is also needed for open drain outputs, so we might as well do it + //all the time. + // + qual = (flags & GPIO_ASYNC) / GPIO_QUAL3; + *qsel &= ~(0x3L << (2 * pin16)); + if (qual != 0x0) + { + *qsel |= qual << (2 * pin16); + } + + EDIS; + } + + // + // GPIO_SetupLock - Enable or disable the GPIO register bit lock for the + // specified pin. + // The valid flags are: + // GPIO_UNLOCK - Unlock the pin setup register bits for + // the specified pin + // GPIO_LOCK - Lock the pin setup register bits for the + // specified pin + // + void GPIO_SetupLock(Uint16 gpioNumber, Uint16 flags) + { + volatile Uint32 *gpioBaseAddr; + volatile Uint32 *lock; + Uint32 pin32, pinMask; + + pin32 = gpioNumber % 32; + pinMask = 1UL << pin32; + gpioBaseAddr = (Uint32 *)&GpioCtrlRegs + (gpioNumber/32)*GPY_CTRL_OFFSET; + + // + //Create pointers to the appropriate registers. This is a workaround + //for the way GPIO registers are defined. The standard definition + //in the header file makes it very easy to do named accesses of one + //register or bit, but hard to do arbitrary numerical accesses. It's + //easier to have an array of GPIO modules with identical registers, + //including arrays for multi-register groups like GPyQSEL1-2. But + //the header file doesn't define anything we can turn into an array, + //so manual pointer arithmetic is used instead. + // + lock = gpioBaseAddr + GPYLOCK; + + EALLOW; + if(flags) + { + //Lock the pin + *lock |= pinMask; + } + else + { + //Unlock the pin + *lock &= ~pinMask; + } + EDIS; + } + + // + //External interrupt setup + // + void GPIO_SetupXINT1Gpio(Uint16 gpioNumber) + { + EALLOW; + InputXbarRegs.INPUT4SELECT = gpioNumber; //Set XINT1 source to GPIO-pin + EDIS; + } + void GPIO_SetupXINT2Gpio(Uint16 gpioNumber) + { + EALLOW; + InputXbarRegs.INPUT5SELECT = gpioNumber; //Set XINT2 source to GPIO-pin + EDIS; + } + void GPIO_SetupXINT3Gpio(Uint16 gpioNumber) + { + EALLOW; + InputXbarRegs.INPUT6SELECT = gpioNumber; //Set XINT3 source to GPIO-pin + EDIS; + } + void GPIO_SetupXINT4Gpio(Uint16 gpioNumber) + { + EALLOW; + InputXbarRegs.INPUT13SELECT = gpioNumber; //Set XINT4 source to GPIO-pin + EDIS; + } + void GPIO_SetupXINT5Gpio(Uint16 gpioNumber) + { + EALLOW; + InputXbarRegs.INPUT14SELECT = gpioNumber; //Set XINT5 source to GPIO-pin + EDIS; + } + + // + //GPIO_EnableUnbondedIOPullupsFor176Pin - Enable pullups for the unbonded + // GPIOs on the 176PTP package: + // GPIOs Grp Bits + // 95-132 C 31 + // D 31:0 + // E 4:0 + // 134-168 E 31:6 + // F 8:0 + // + void GPIO_EnableUnbondedIOPullupsFor176Pin() + { + EALLOW; + GpioCtrlRegs.GPCPUD.all = ~0x80000000; //GPIO 95 + GpioCtrlRegs.GPDPUD.all = ~0xFFFFFFF7; //GPIOs 96-127 + GpioCtrlRegs.GPEPUD.all = ~0xFFFFFFDF; //GPIOs 128-159 except for 133 + GpioCtrlRegs.GPFPUD.all = ~0x000001FF; //GPIOs 160-168 + EDIS; + } + + // + // GPIO_EnableUnbondedIOPullups - InitSysCtrl would call this function + // this takes care of enabling IO pullups. + // + void GPIO_EnableUnbondedIOPullups() + { + // + //bits 8-10 have pin count + // + unsigned char pin_count = (DevCfgRegs.PARTIDL.bit.PIN_COUNT) ; + + // + //6 = 176 pin + //7 = 337 pin + // + if (pin_count == 6) + { + GPIO_EnableUnbondedIOPullupsFor176Pin(); + } + else + { + //do nothing - this is 337 pin package + } + } + +#endif //CPU1 + +// +// GPIO_ReadPin - Read the GPyDAT register bit for the specified pin. Note that +// this returns the actual state of the pin, not the state of +// the output latch. +// +Uint16 GPIO_ReadPin(Uint16 gpioNumber) +{ + volatile Uint32 *gpioDataReg; + Uint16 pinVal; + + gpioDataReg = (volatile Uint32 *)&GpioDataRegs + (gpioNumber/32)*GPY_DATA_OFFSET; + pinVal = (gpioDataReg[GPYDAT] >> (gpioNumber % 32)) & 0x1; + + return pinVal; +} + +// +// GPIO_WritePin - Set the GPyDAT register bit for the specified pin. +// +void GPIO_WritePin(Uint16 gpioNumber, Uint16 outVal) +{ + volatile Uint32 *gpioDataReg; + Uint32 pinMask; + + gpioDataReg = (volatile Uint32 *)&GpioDataRegs + (gpioNumber/32)*GPY_DATA_OFFSET; + pinMask = 1UL << (gpioNumber % 32); + + if (outVal == 0) + { + gpioDataReg[GPYCLEAR] = pinMask; + } + else + { + gpioDataReg[GPYSET] = pinMask; + } +} + +// +// End of file +// diff --git a/i2c_ex1_master/f2838x_headers_nonBIOS_cpu1.cmd b/i2c_ex1_master/f2838x_headers_nonBIOS_cpu1.cmd new file mode 100644 index 0000000..475a56a --- /dev/null +++ b/i2c_ex1_master/f2838x_headers_nonBIOS_cpu1.cmd @@ -0,0 +1,388 @@ +MEMORY +{ + PAGE 0: /* Program Memory */ + PAGE 1: /* Data Memory */ + ACCESSPROTECTION : origin = 0x0005F500, length = 0x00000040 + ADCA : origin = 0x00007400, length = 0x00000080 + ADCB : origin = 0x00007480, length = 0x00000080 + ADCC : origin = 0x00007500, length = 0x00000080 + ADCD : origin = 0x00007580, length = 0x00000080 + ADCARESULT : origin = 0x00000B00, length = 0x00000018 + ADCBRESULT : origin = 0x00000B20, length = 0x00000018 + ADCCRESULT : origin = 0x00000B40, length = 0x00000018 + ADCDRESULT : origin = 0x00000B60, length = 0x00000018 + ANALOGSUBSYS : origin = 0x0005D700, length = 0x00000100 + BGCRCCPU : origin = 0x00006340, length = 0x00000040 + BGCRCCLA1 : origin = 0x00006380, length = 0x00000040 + CANA : origin = 0x00048000, length = 0x00000200 + CANB : origin = 0x0004A000, length = 0x00000200 + CLA1 : origin = 0x00001400, length = 0x00000080 + CLB1DATAEXCH : origin = 0x00003180, length = 0x00000080 + CLB2DATAEXCH : origin = 0x00003380, length = 0x00000080 + CLB3DATAEXCH : origin = 0x00003580, length = 0x00000080 + CLB4DATAEXCH : origin = 0x00003780, length = 0x00000080 + CLB5DATAEXCH : origin = 0x00003980, length = 0x00000080 + CLB6DATAEXCH : origin = 0x00003B80, length = 0x00000080 + CLB7DATAEXCH : origin = 0x00003D80, length = 0x00000080 + CLB8DATAEXCH : origin = 0x00003F80, length = 0x00000080 + CLB1LOGICCFG : origin = 0x00003000, length = 0x00000052 + CLB2LOGICCFG : origin = 0x00003200, length = 0x00000052 + CLB3LOGICCFG : origin = 0x00003400, length = 0x00000052 + CLB4LOGICCFG : origin = 0x00003600, length = 0x00000052 + CLB5LOGICCFG : origin = 0x00003800, length = 0x00000052 + CLB6LOGICCFG : origin = 0x00003A00, length = 0x00000052 + CLB7LOGICCFG : origin = 0x00003C00, length = 0x00000052 + CLB8LOGICCFG : origin = 0x00003E00, length = 0x00000052 + CLB1LOGICCTRL : origin = 0x00003100, length = 0x00000040 + CLB2LOGICCTRL : origin = 0x00003300, length = 0x00000040 + CLB3LOGICCTRL : origin = 0x00003500, length = 0x00000040 + CLB4LOGICCTRL : origin = 0x00003700, length = 0x00000040 + CLB5LOGICCTRL : origin = 0x00003900, length = 0x00000040 + CLB6LOGICCTRL : origin = 0x00003B00, length = 0x00000040 + CLB7LOGICCTRL : origin = 0x00003D00, length = 0x00000040 + CLB8LOGICCTRL : origin = 0x00003F00, length = 0x00000040 + CLBXBAR : origin = 0x00007A40, length = 0x00000040 + CLKCFG : origin = 0x0005D200, length = 0x00000100 + CMPSS1 : origin = 0x00005C80, length = 0x00000020 + CMPSS2 : origin = 0x00005CA0, length = 0x00000020 + CMPSS3 : origin = 0x00005CC0, length = 0x00000020 + CMPSS4 : origin = 0x00005CE0, length = 0x00000020 + CMPSS5 : origin = 0x00005D00, length = 0x00000020 + CMPSS6 : origin = 0x00005D20, length = 0x00000020 + CMPSS7 : origin = 0x00005D40, length = 0x00000020 + CMPSS8 : origin = 0x00005D60, length = 0x00000020 + CMCONF : origin = 0x0005DC00, length = 0x00000400 + CPU1TOCMIPC : origin = 0x0005CE40, length = 0x00000026 + CPU1TOCPU2IPC : origin = 0x0005CE00, length = 0x00000026 + SYSPERIPHAC : origin = 0x0005D500, length = 0x00000200 + CPUTIMER0 : origin = 0x00000C00, length = 0x00000008 + CPUTIMER1 : origin = 0x00000C08, length = 0x00000008 + CPUTIMER2 : origin = 0x00000C10, length = 0x00000008 + CPUSYS : origin = 0x0005D300, length = 0x000000A0 + DACA : origin = 0x00005C00, length = 0x00000008 + DACB : origin = 0x00005C10, length = 0x00000008 + DACC : origin = 0x00005C20, length = 0x00000008 + DCC0 : origin = 0x0005E700, length = 0x00000038 + DCC1 : origin = 0x0005E740, length = 0x00000038 + DCC2 : origin = 0x0005E780, length = 0x00000038 + DCSMCOMMON : origin = 0x0005F0C0, length = 0x00000020 + DCSMZ1OTP : origin = 0x00078000, length = 0x00000020 + DCSMZ1 : origin = 0x0005F000, length = 0x0000003E + DCSMZ2OTP : origin = 0x00078200, length = 0x00000020 + DCSMZ2 : origin = 0x0005F080, length = 0x0000003E + DEVCFG : origin = 0x0005D000, length = 0x000001A0 + DMACLASRCSEL : origin = 0x00007980, length = 0x0000001A + DMA : origin = 0x00001000, length = 0x00000200 + ECAP1 : origin = 0x00005200, length = 0x00000020 + ECAP2 : origin = 0x00005240, length = 0x00000020 + ECAP3 : origin = 0x00005280, length = 0x00000020 + ECAP4 : origin = 0x000052C0, length = 0x00000020 + ECAP5 : origin = 0x00005300, length = 0x00000020 + ECAP6 : origin = 0x00005340, length = 0x00000020 + ECAP7 : origin = 0x00005380, length = 0x00000020 + EMIF1CONFIG : origin = 0x0005F4C0, length = 0x00000020 + EMIF2CONFIG : origin = 0x0005F4E0, length = 0x00000020 + EMIF1 : origin = 0x00047000, length = 0x00000070 + EMIF2 : origin = 0x00047800, length = 0x00000070 + EPWM1 : origin = 0x00004000, length = 0x00000100 + EPWM2 : origin = 0x00004100, length = 0x00000100 + EPWM3 : origin = 0x00004200, length = 0x00000100 + EPWM4 : origin = 0x00004300, length = 0x00000100 + EPWM5 : origin = 0x00004400, length = 0x00000100 + EPWM6 : origin = 0x00004500, length = 0x00000100 + EPWM7 : origin = 0x00004600, length = 0x00000100 + EPWM8 : origin = 0x00004700, length = 0x00000100 + EPWM9 : origin = 0x00004800, length = 0x00000100 + EPWM10 : origin = 0x00004900, length = 0x00000100 + EPWM11 : origin = 0x00004A00, length = 0x00000100 + EPWM12 : origin = 0x00004B00, length = 0x00000100 + EPWM13 : origin = 0x00004C00, length = 0x00000100 + EPWM14 : origin = 0x00004D00, length = 0x00000100 + EPWM15 : origin = 0x00004E00, length = 0x00000100 + EPWM16 : origin = 0x00004F00, length = 0x00000100 + EPWMXBAR : origin = 0x00007A00, length = 0x00000040 + EQEP1 : origin = 0x00005100, length = 0x00000040 + EQEP2 : origin = 0x00005140, length = 0x00000040 + EQEP3 : origin = 0x00005180, length = 0x00000040 + ERADCOUNTER1 : origin = 0x0005E980, length = 0x00000010 + ERADCOUNTER2 : origin = 0x0005E990, length = 0x00000010 + ERADCOUNTER3 : origin = 0x0005E9A0, length = 0x00000010 + ERADCOUNTER4 : origin = 0x0005E9B0, length = 0x00000010 + ERADCRCGLOBAL : origin = 0x0005EA00, length = 0x00000010 + ERADCRC1 : origin = 0x0005EA10, length = 0x00000010 + ERADCRC2 : origin = 0x0005EA20, length = 0x00000010 + ERADCRC3 : origin = 0x0005EA30, length = 0x00000010 + ERADCRC4 : origin = 0x0005EA40, length = 0x00000010 + ERADCRC5 : origin = 0x0005EA50, length = 0x00000010 + ERADCRC6 : origin = 0x0005EA60, length = 0x00000010 + ERADCRC7 : origin = 0x0005EA70, length = 0x00000010 + ERADCRC8 : origin = 0x0005EA80, length = 0x00000010 + ERADGLOBAL : origin = 0x0005E800, length = 0x00000014 + ERADHWBP1 : origin = 0x0005E900, length = 0x00000008 + ERADHWBP2 : origin = 0x0005E908, length = 0x00000008 + ERADHWBP3 : origin = 0x0005E910, length = 0x00000008 + ERADHWBP4 : origin = 0x0005E918, length = 0x00000008 + ERADHWBP5 : origin = 0x0005E920, length = 0x00000008 + ERADHWBP6 : origin = 0x0005E928, length = 0x00000008 + ERADHWBP7 : origin = 0x0005E930, length = 0x00000008 + ERADHWBP8 : origin = 0x0005E938, length = 0x00000008 + ESCSSCONFIG : origin = 0x00057F00, length = 0x00000016 + ESCSS : origin = 0x00057E00, length = 0x00000024 + FLASH0CTRL : origin = 0x0005F800, length = 0x00000182 + FLASH0ECC : origin = 0x0005FB00, length = 0x00000028 + FSIRXA : origin = 0x00006680, length = 0x00000050 + FSIRXB : origin = 0x00006780, length = 0x00000050 + FSIRXC : origin = 0x00006880, length = 0x00000050 + FSIRXD : origin = 0x00006980, length = 0x00000050 + FSIRXE : origin = 0x00006A80, length = 0x00000050 + FSIRXF : origin = 0x00006B80, length = 0x00000050 + FSIRXG : origin = 0x00006C80, length = 0x00000050 + FSIRXH : origin = 0x00006D80, length = 0x00000050 + FSITXA : origin = 0x00006600, length = 0x00000050 + FSITXB : origin = 0x00006700, length = 0x00000050 + GPIOCTRL : origin = 0x00007C00, length = 0x00000200 + GPIODATAREAD : origin = 0x00007F80, length = 0x00000010 + GPIODATA : origin = 0x00007F00, length = 0x00000040 + HRCAP6 : origin = 0x00005360, length = 0x00000020 + HRCAP7 : origin = 0x000053A0, length = 0x00000020 + I2CA : origin = 0x00007300, length = 0x00000022 + I2CB : origin = 0x00007340, length = 0x00000022 + INPUTXBAR : origin = 0x00007900, length = 0x00000020 + CLBINPUTXBAR : origin = 0x00007960, length = 0x00000020 + MCANASS : origin = 0x0005C400, length = 0x0000002C + MCANAERR : origin = 0x0005C800, length = 0x00000210 + MCANA : origin = 0x0005C600, length = 0x00000100 + MEMORYERROR : origin = 0x0005F540, length = 0x00000040 + MEMCFG : origin = 0x0005F400, length = 0x000000C0 + MCBSPA : origin = 0x00006000, length = 0x00000024 + MCBSPB : origin = 0x00006040, length = 0x00000024 + NMIINTRUPT : origin = 0x00007060, length = 0x00000010 + OUTPUTXBAR : origin = 0x00007A80, length = 0x00000040 + CLBOUTPUTXBAR : origin = 0x00007BC0, length = 0x00000040 + PIECTRL : origin = 0x00000CE0, length = 0x0000001A + PIEVECTTABLE : origin = 0x00000D00, length = 0x00000200 + PMBUSA : origin = 0x00006400, length = 0x00000020 + ROMPREFETCH : origin = 0x0005F588, length = 0x00000008 + ROMWAITSTATE : origin = 0x0005F580, length = 0x00000008 + SCIA : origin = 0x00007200, length = 0x00000010 + SCIB : origin = 0x00007210, length = 0x00000010 + SCIC : origin = 0x00007220, length = 0x00000010 + SCID : origin = 0x00007230, length = 0x00000010 + SDFM1 : origin = 0x00005E00, length = 0x00000080 + SDFM2 : origin = 0x00005E80, length = 0x00000080 + SPIA : origin = 0x00006100, length = 0x00000010 + SPIB : origin = 0x00006110, length = 0x00000010 + SPIC : origin = 0x00006120, length = 0x00000010 + SPID : origin = 0x00006130, length = 0x00000010 + SYNCSOC : origin = 0x00007940, length = 0x00000006 + SYSSTATUS : origin = 0x0005D400, length = 0x00000100 + TESTERROR : origin = 0x0005F590, length = 0x00000010 + WD : origin = 0x00007000, length = 0x0000002C + XBAR : origin = 0x00007920, length = 0x00000020 + XINT : origin = 0x00007070, length = 0x0000000C + +} + + +SECTIONS +{ +/*** PIE Vect Table and Boot ROM Variables Structures ***/ +UNION run = PIEVECTTABLE +{ + PieVectTableFile + GROUP + { + EmuKeyVar + EmuBModeVar + EmuBootPinsVar + FlashCallbackVar + FlashScalingVar + } +} + + AccessProtectionRegsFile : > ACCESSPROTECTION, type=NOINIT + AdcaRegsFile : > ADCA, type=NOINIT + AdcbRegsFile : > ADCB, type=NOINIT + AdccRegsFile : > ADCC, type=NOINIT + AdcdRegsFile : > ADCD, type=NOINIT + AdcaResultRegsFile : > ADCARESULT, type=NOINIT + AdcbResultRegsFile : > ADCBRESULT, type=NOINIT + AdccResultRegsFile : > ADCCRESULT, type=NOINIT + AdcdResultRegsFile : > ADCDRESULT, type=NOINIT + AnalogSubsysRegsFile : > ANALOGSUBSYS, type=NOINIT + BgcrcCpuRegsFile : > BGCRCCPU, type=NOINIT + BgcrcCla1RegsFile : > BGCRCCLA1, type=NOINIT + CanaRegsFile : > CANA, type=NOINIT + CanbRegsFile : > CANB, type=NOINIT + Cla1RegsFile : > CLA1, type=NOINIT + Clb1DataExchRegsFile : > CLB1DATAEXCH, type=NOINIT + Clb2DataExchRegsFile : > CLB2DATAEXCH, type=NOINIT + Clb3DataExchRegsFile : > CLB3DATAEXCH, type=NOINIT + Clb4DataExchRegsFile : > CLB4DATAEXCH, type=NOINIT + Clb5DataExchRegsFile : > CLB5DATAEXCH, type=NOINIT + Clb6DataExchRegsFile : > CLB6DATAEXCH, type=NOINIT + Clb7DataExchRegsFile : > CLB7DATAEXCH, type=NOINIT + Clb8DataExchRegsFile : > CLB8DATAEXCH, type=NOINIT + Clb1LogicCfgRegsFile : > CLB1LOGICCFG, type=NOINIT + Clb2LogicCfgRegsFile : > CLB2LOGICCFG, type=NOINIT + Clb3LogicCfgRegsFile : > CLB3LOGICCFG, type=NOINIT + Clb4LogicCfgRegsFile : > CLB4LOGICCFG, type=NOINIT + Clb5LogicCfgRegsFile : > CLB5LOGICCFG, type=NOINIT + Clb6LogicCfgRegsFile : > CLB6LOGICCFG, type=NOINIT + Clb7LogicCfgRegsFile : > CLB7LOGICCFG, type=NOINIT + Clb8LogicCfgRegsFile : > CLB8LOGICCFG, type=NOINIT + Clb1LogicCtrlRegsFile : > CLB1LOGICCTRL, type=NOINIT + Clb2LogicCtrlRegsFile : > CLB2LOGICCTRL, type=NOINIT + Clb3LogicCtrlRegsFile : > CLB3LOGICCTRL, type=NOINIT + Clb4LogicCtrlRegsFile : > CLB4LOGICCTRL, type=NOINIT + Clb5LogicCtrlRegsFile : > CLB5LOGICCTRL, type=NOINIT + Clb6LogicCtrlRegsFile : > CLB6LOGICCTRL, type=NOINIT + Clb7LogicCtrlRegsFile : > CLB7LOGICCTRL, type=NOINIT + Clb8LogicCtrlRegsFile : > CLB8LOGICCTRL, type=NOINIT + CLBXbarRegsFile : > CLBXBAR, type=NOINIT + ClkCfgRegsFile : > CLKCFG, type=NOINIT + Cmpss1RegsFile : > CMPSS1, type=NOINIT + Cmpss2RegsFile : > CMPSS2, type=NOINIT + Cmpss3RegsFile : > CMPSS3, type=NOINIT + Cmpss4RegsFile : > CMPSS4, type=NOINIT + Cmpss5RegsFile : > CMPSS5, type=NOINIT + Cmpss6RegsFile : > CMPSS6, type=NOINIT + Cmpss7RegsFile : > CMPSS7, type=NOINIT + Cmpss8RegsFile : > CMPSS8, type=NOINIT + CmConfRegsFile : > CMCONF, type=NOINIT + Cpu1toCmIpcRegsFile : > CPU1TOCMIPC, type=NOINIT + Cpu1toCpu2IpcRegsFile : > CPU1TOCPU2IPC, type=NOINIT + SysPeriphAcRegsFile : > SYSPERIPHAC, type=NOINIT + CpuTimer0RegsFile : > CPUTIMER0, type=NOINIT + CpuTimer1RegsFile : > CPUTIMER1, type=NOINIT + CpuTimer2RegsFile : > CPUTIMER2, type=NOINIT + CpuSysRegsFile : > CPUSYS, type=NOINIT + DacaRegsFile : > DACA, type=NOINIT + DacbRegsFile : > DACB, type=NOINIT + DaccRegsFile : > DACC, type=NOINIT + Dcc0RegsFile : > DCC0, type=NOINIT + Dcc1RegsFile : > DCC1, type=NOINIT + Dcc2RegsFile : > DCC2, type=NOINIT + DcsmCommonRegsFile : > DCSMCOMMON, type=NOINIT + DcsmZ1OtpRegsFile : > DCSMZ1OTP, type=NOINIT + DcsmZ1RegsFile : > DCSMZ1, type=NOINIT + DcsmZ2OtpRegsFile : > DCSMZ2OTP, type=NOINIT + DcsmZ2RegsFile : > DCSMZ2, type=NOINIT + DevCfgRegsFile : > DEVCFG, type=NOINIT + DmaClaSrcSelRegsFile : > DMACLASRCSEL, type=NOINIT + DmaRegsFile : > DMA, type=NOINIT + ECap1RegsFile : > ECAP1, type=NOINIT + ECap2RegsFile : > ECAP2, type=NOINIT + ECap3RegsFile : > ECAP3, type=NOINIT + ECap4RegsFile : > ECAP4, type=NOINIT + ECap5RegsFile : > ECAP5, type=NOINIT + ECap6RegsFile : > ECAP6, type=NOINIT + ECap7RegsFile : > ECAP7, type=NOINIT + Emif1ConfigRegsFile : > EMIF1CONFIG, type=NOINIT + Emif2ConfigRegsFile : > EMIF2CONFIG, type=NOINIT + Emif1RegsFile : > EMIF1, type=NOINIT + Emif2RegsFile : > EMIF2, type=NOINIT + EPwm1RegsFile : > EPWM1, type=NOINIT + EPwm2RegsFile : > EPWM2, type=NOINIT + EPwm3RegsFile : > EPWM3, type=NOINIT + EPwm4RegsFile : > EPWM4, type=NOINIT + EPwm5RegsFile : > EPWM5, type=NOINIT + EPwm6RegsFile : > EPWM6, type=NOINIT + EPwm7RegsFile : > EPWM7, type=NOINIT + EPwm8RegsFile : > EPWM8, type=NOINIT + EPwm9RegsFile : > EPWM9, type=NOINIT + EPwm10RegsFile : > EPWM10, type=NOINIT + EPwm11RegsFile : > EPWM11, type=NOINIT + EPwm12RegsFile : > EPWM12, type=NOINIT + EPwm13RegsFile : > EPWM13, type=NOINIT + EPwm14RegsFile : > EPWM14, type=NOINIT + EPwm15RegsFile : > EPWM15, type=NOINIT + EPwm16RegsFile : > EPWM16, type=NOINIT + EPwmXbarRegsFile : > EPWMXBAR, type=NOINIT + EQep1RegsFile : > EQEP1, type=NOINIT + EQep2RegsFile : > EQEP2, type=NOINIT + EQep3RegsFile : > EQEP3, type=NOINIT + EradCounter1RegsFile : > ERADCOUNTER1, type=NOINIT + EradCounter2RegsFile : > ERADCOUNTER2, type=NOINIT + EradCounter3RegsFile : > ERADCOUNTER3, type=NOINIT + EradCounter4RegsFile : > ERADCOUNTER4, type=NOINIT + EradCRCGlobalRegsFile : > ERADCRCGLOBAL, type=NOINIT + EradCRC1RegsFile : > ERADCRC1, type=NOINIT + EradCRC2RegsFile : > ERADCRC2, type=NOINIT + EradCRC3RegsFile : > ERADCRC3, type=NOINIT + EradCRC4RegsFile : > ERADCRC4, type=NOINIT + EradCRC5RegsFile : > ERADCRC5, type=NOINIT + EradCRC6RegsFile : > ERADCRC6, type=NOINIT + EradCRC7RegsFile : > ERADCRC7, type=NOINIT + EradCRC8RegsFile : > ERADCRC8, type=NOINIT + EradGlobalRegsFile : > ERADGLOBAL, type=NOINIT + EradHWBP1RegsFile : > ERADHWBP1, type=NOINIT + EradHWBP2RegsFile : > ERADHWBP2, type=NOINIT + EradHWBP3RegsFile : > ERADHWBP3, type=NOINIT + EradHWBP4RegsFile : > ERADHWBP4, type=NOINIT + EradHWBP5RegsFile : > ERADHWBP5, type=NOINIT + EradHWBP6RegsFile : > ERADHWBP6, type=NOINIT + EradHWBP7RegsFile : > ERADHWBP7, type=NOINIT + EradHWBP8RegsFile : > ERADHWBP8, type=NOINIT + EscssConfigRegsFile : > ESCSSCONFIG, type=NOINIT + EscssRegsFile : > ESCSS, type=NOINIT + Flash0CtrlRegsFile : > FLASH0CTRL, type=NOINIT + Flash0EccRegsFile : > FLASH0ECC, type=NOINIT + FsiRxaRegsFile : > FSIRXA, type=NOINIT + FsiRxbRegsFile : > FSIRXB, type=NOINIT + FsiRxcRegsFile : > FSIRXC, type=NOINIT + FsiRxdRegsFile : > FSIRXD, type=NOINIT + FsiRxeRegsFile : > FSIRXE, type=NOINIT + FsiRxfRegsFile : > FSIRXF, type=NOINIT + FsiRxgRegsFile : > FSIRXG, type=NOINIT + FsiRxhRegsFile : > FSIRXH, type=NOINIT + FsiTxaRegsFile : > FSITXA, type=NOINIT + FsiTxbRegsFile : > FSITXB, type=NOINIT + GpioCtrlRegsFile : > GPIOCTRL, type=NOINIT + GpioDataReadRegsFile : > GPIODATAREAD, type=NOINIT + GpioDataRegsFile : > GPIODATA, type=NOINIT + HRCap6RegsFile : > HRCAP6, type=NOINIT + HRCap7RegsFile : > HRCAP7, type=NOINIT + I2caRegsFile : > I2CA, type=NOINIT + I2cbRegsFile : > I2CB, type=NOINIT + InputXbarRegsFile : > INPUTXBAR, type=NOINIT + ClbInputXbarRegsFile : > CLBINPUTXBAR, type=NOINIT + McanaSsRegsFile : > MCANASS, type=NOINIT + McanaErrRegsFile : > MCANAERR, type=NOINIT + McanaRegsFile : > MCANA, type=NOINIT + MemoryErrorRegsFile : > MEMORYERROR, type=NOINIT + MemCfgRegsFile : > MEMCFG, type=NOINIT + McbspaRegsFile : > MCBSPA, type=NOINIT + McbspbRegsFile : > MCBSPB, type=NOINIT + NmiIntruptRegsFile : > NMIINTRUPT, type=NOINIT + OutputXbarRegsFile : > OUTPUTXBAR, type=NOINIT + ClbOutputXbarRegsFile : > CLBOUTPUTXBAR, type=NOINIT + PieCtrlRegsFile : > PIECTRL, type=NOINIT + PieVectTableFile : > PIEVECTTABLE, type=NOINIT + PmbusaRegsFile : > PMBUSA, type=NOINIT + RomPrefetchRegsFile : > ROMPREFETCH, type=NOINIT + RomWaitStateRegsFile : > ROMWAITSTATE, type=NOINIT + SciaRegsFile : > SCIA, type=NOINIT + ScibRegsFile : > SCIB, type=NOINIT + ScicRegsFile : > SCIC, type=NOINIT + ScidRegsFile : > SCID, type=NOINIT + Sdfm1RegsFile : > SDFM1, type=NOINIT + Sdfm2RegsFile : > SDFM2, type=NOINIT + SpiaRegsFile : > SPIA, type=NOINIT + SpibRegsFile : > SPIB, type=NOINIT + SpicRegsFile : > SPIC, type=NOINIT + SpidRegsFile : > SPID, type=NOINIT + SyncSocRegsFile : > SYNCSOC, type=NOINIT + SysStatusRegsFile : > SYSSTATUS, type=NOINIT + TestErrorRegsFile : > TESTERROR, type=NOINIT + WdRegsFile : > WD, type=NOINIT + XbarRegsFile : > XBAR, type=NOINIT + XintRegsFile : > XINT, type=NOINIT +} + +/* +//=========================================================================== +// End of file. +//=========================================================================== +*/ + diff --git a/i2c_ex1_master/f2838x_piectrl.c b/i2c_ex1_master/f2838x_piectrl.c new file mode 100644 index 0000000..3fbd8a5 --- /dev/null +++ b/i2c_ex1_master/f2838x_piectrl.c @@ -0,0 +1,121 @@ +//########################################################################### +// +// FILE: f2838x_piectrl.c +// +// TITLE: F2838x Device PIE Control Register Initialization Functions. +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" // F2838x Headerfile Include File +#include "f2838x_examples.h" // F2838x Examples Include File + +// +// InitPieCtrl - This function initializes the PIE control registers to a +// known state. +// +void InitPieCtrl(void) +{ + // + // Disable Interrupts at the CPU level: + // + DINT; + + // + // Disable the PIE + // + PieCtrlRegs.PIECTRL.bit.ENPIE = 0; + + // + // Clear all PIEIER registers: + // + PieCtrlRegs.PIEIER1.all = 0; + PieCtrlRegs.PIEIER2.all = 0; + PieCtrlRegs.PIEIER3.all = 0; + PieCtrlRegs.PIEIER4.all = 0; + PieCtrlRegs.PIEIER5.all = 0; + PieCtrlRegs.PIEIER6.all = 0; + PieCtrlRegs.PIEIER7.all = 0; + PieCtrlRegs.PIEIER8.all = 0; + PieCtrlRegs.PIEIER9.all = 0; + PieCtrlRegs.PIEIER10.all = 0; + PieCtrlRegs.PIEIER11.all = 0; + PieCtrlRegs.PIEIER12.all = 0; + + // + // Clear all PIEIFR registers: + // + PieCtrlRegs.PIEIFR1.all = 0; + PieCtrlRegs.PIEIFR2.all = 0; + PieCtrlRegs.PIEIFR3.all = 0; + PieCtrlRegs.PIEIFR4.all = 0; + PieCtrlRegs.PIEIFR5.all = 0; + PieCtrlRegs.PIEIFR6.all = 0; + PieCtrlRegs.PIEIFR7.all = 0; + PieCtrlRegs.PIEIFR8.all = 0; + PieCtrlRegs.PIEIFR9.all = 0; + PieCtrlRegs.PIEIFR10.all = 0; + PieCtrlRegs.PIEIFR11.all = 0; + PieCtrlRegs.PIEIFR12.all = 0; +} + +// +// EnableInterrupts - This function enables the PIE module and CPU __interrupts +// +void EnableInterrupts() +{ + // + // Enable the PIE + // + PieCtrlRegs.PIECTRL.bit.ENPIE = 1; + + // + // Enables PIE to drive a pulse into the CPU + // + PieCtrlRegs.PIEACK.all = 0xFFFF; + + // + // Enable Interrupts at the CPU level + // + EINT; +} + +// +// End of file +// diff --git a/i2c_ex1_master/f2838x_pievect.c b/i2c_ex1_master/f2838x_pievect.c new file mode 100644 index 0000000..5f0d7cb --- /dev/null +++ b/i2c_ex1_master/f2838x_pievect.c @@ -0,0 +1,309 @@ +//########################################################################### +// +// FILE: f2838x_pievect.c +// +// TITLE: f2838x Device PIE Vector Initialization Functions +// +//########################################################################### +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" // f2838x Header File Include File +#include "f2838x_examples.h" // f2838x Examples Include File + +// +// Globals +// +const struct PIE_VECT_TABLE PieVectTableInit = { + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + PIE_RESERVED_ISR, // Reserved + TIMER1_ISR, // CPU Timer 1 Interrupt + TIMER2_ISR, // CPU Timer 2 Interrupt + DATALOG_ISR, // Datalogging Interrupt + RTOS_ISR, // RTOS Interrupt + EMU_ISR, // Emulation Interrupt + NMI_ISR, // Non-Maskable Interrupt + ILLEGAL_ISR, // Illegal Operation Trap + USER1_ISR, // User Defined Trap 1 + USER2_ISR, // User Defined Trap 2 + USER3_ISR, // User Defined Trap 3 + USER4_ISR, // User Defined Trap 4 + USER5_ISR, // User Defined Trap 5 + USER6_ISR, // User Defined Trap 6 + USER7_ISR, // User Defined Trap 7 + USER8_ISR, // User Defined Trap 8 + USER9_ISR, // User Defined Trap 9 + USER10_ISR, // User Defined Trap 10 + USER11_ISR, // User Defined Trap 11 + USER12_ISR, // User Defined Trap 12 + ADCA1_ISR, // 1.1 - ADCA Interrupt 1 + ADCB1_ISR, // 1.2 - ADCB Interrupt 1 + ADCC1_ISR, // 1.3 - ADCC Interrupt 1 + XINT1_ISR, // 1.4 - XINT1 Interrupt + XINT2_ISR, // 1.5 - XINT2 Interrupt + ADCD1_ISR, // 1.6 - ADCD Interrupt 1 + TIMER0_ISR, // 1.7 - Timer 0 Interrupt + WAKE_ISR, // 1.8 - Standby and Halt Wakeup Interrupt + EPWM1_TZ_ISR, // 2.1 - ePWM1 Trip Zone Interrupt + EPWM2_TZ_ISR, // 2.2 - ePWM2 Trip Zone Interrupt + EPWM3_TZ_ISR, // 2.3 - ePWM3 Trip Zone Interrupt + EPWM4_TZ_ISR, // 2.4 - ePWM4 Trip Zone Interrupt + EPWM5_TZ_ISR, // 2.5 - ePWM5 Trip Zone Interrupt + EPWM6_TZ_ISR, // 2.6 - ePWM6 Trip Zone Interrupt + EPWM7_TZ_ISR, // 2.7 - ePWM7 Trip Zone Interrupt + EPWM8_TZ_ISR, // 2.8 - ePWM8 Trip Zone Interrupt + EPWM1_ISR, // 3.1 - ePWM1 Interrupt + EPWM2_ISR, // 3.2 - ePWM2 Interrupt + EPWM3_ISR, // 3.3 - ePWM3 Interrupt + EPWM4_ISR, // 3.4 - ePWM4 Interrupt + EPWM5_ISR, // 3.5 - ePWM5 Interrupt + EPWM6_ISR, // 3.6 - ePWM6 Interrupt + EPWM7_ISR, // 3.7 - ePWM7 Interrupt + EPWM8_ISR, // 3.8 - ePWM8 Interrupt + ECAP1_ISR, // 4.1 - eCAP1 Interrupt + ECAP2_ISR, // 4.2 - eCAP2 Interrupt + ECAP3_ISR, // 4.3 - eCAP3 Interrupt + ECAP4_ISR, // 4.4 - eCAP4 Interrupt + ECAP5_ISR, // 4.5 - eCAP5 Interrupt + ECAP6_ISR, // 4.6 - eCAP6 Interrupt + ECAP7_ISR, // 4.7 - eCAP7 Interrupt + PIE_RESERVED_ISR, // 4.8 - Reserved + EQEP1_ISR, // 5.1 - eQEP1 Interrupt + EQEP2_ISR, // 5.2 - eQEP2 Interrupt + EQEP3_ISR, // 5.3 - eQEP3 Interrupt + PIE_RESERVED_ISR, // 5.4 - Reserved + CLB1_ISR, // 5.5 - CLB1 (Reconfigurable Logic) Interrupt + CLB2_ISR, // 5.6 - CLB2 (Reconfigurable Logic) Interrupt + CLB3_ISR, // 5.7 - CLB3 (Reconfigurable Logic) Interrupt + CLB4_ISR, // 5.8 - CLB4 (Reconfigurable Logic) Interrupt + SPIA_RX_ISR, // 6.1 - SPIA Receive Interrupt + SPIA_TX_ISR, // 6.2 - SPIA Transmit Interrupt + SPIB_RX_ISR, // 6.3 - SPIB Receive Interrupt + SPIB_TX_ISR, // 6.4 - SPIB Transmit Interrupt + MCBSPA_RX_ISR, // 6.5 - McBSPA Receive Interrupt + MCBSPA_TX_ISR, // 6.6 - McBSPA Transmit Interrupt + MCBSPB_RX_ISR, // 6.7 - McBSPB Receive Interrupt + MCBSPB_TX_ISR, // 6.8 - McBSPB Transmit Interrupt + DMA_CH1_ISR, // 7.1 - DMA Channel 1 Interrupt + DMA_CH2_ISR, // 7.2 - DMA Channel 2 Interrupt + DMA_CH3_ISR, // 7.3 - DMA Channel 3 Interrupt + DMA_CH4_ISR, // 7.4 - DMA Channel 4 Interrupt + DMA_CH5_ISR, // 7.5 - DMA Channel 5 Interrupt + DMA_CH6_ISR, // 7.6 - DMA Channel 6 Interrupt + PIE_RESERVED_ISR, // 7.7 - Reserved + PIE_RESERVED_ISR, // 7.8 - Reserved + I2CA_ISR, // 8.1 - I2CA Interrupt 1 + I2CA_FIFO_ISR, // 8.2 - I2CA Interrupt 2 + I2CB_ISR, // 8.3 - I2CB Interrupt 1 + I2CB_FIFO_ISR, // 8.4 - I2CB Interrupt 2 + SCIC_RX_ISR, // 8.5 - SCIC Receive Interrupt + SCIC_TX_ISR, // 8.6 - SCIC Transmit Interrupt + SCID_RX_ISR, // 8.7 - SCID Receive Interrupt + SCID_TX_ISR, // 8.8 - SCID Transmit Interrupt + SCIA_RX_ISR, // 9.1 - SCIA Receive Interrupt + SCIA_TX_ISR, // 9.2 - SCIA Transmit Interrupt + SCIB_RX_ISR, // 9.3 - SCIB Receive Interrupt + SCIB_TX_ISR, // 9.4 - SCIB Transmit Interrupt + CANA0_ISR, // 9.5 - CANA Interrupt 0 + CANA1_ISR, // 9.6 - CANA Interrupt 1 + CANB0_ISR, // 9.7 - CANB Interrupt 0 + CANB1_ISR, // 9.8 - CANB Interrupt 1 + ADCA_EVT_ISR, // 10.1 - ADCA Event Interrupt + ADCA2_ISR, // 10.2 - ADCA Interrupt 2 + ADCA3_ISR, // 10.3 - ADCA Interrupt 3 + ADCA4_ISR, // 10.4 - ADCA Interrupt 4 + ADCB_EVT_ISR, // 10.5 - ADCB Event Interrupt + ADCB2_ISR, // 10.6 - ADCB Interrupt 2 + ADCB3_ISR, // 10.7 - ADCB Interrupt 3 + ADCB4_ISR, // 10.8 - ADCB Interrupt 4 + CLA1_1_ISR, // 11.1 - CLA1 Interrupt 1 + CLA1_2_ISR, // 11.2 - CLA1 Interrupt 2 + CLA1_3_ISR, // 11.3 - CLA1 Interrupt 3 + CLA1_4_ISR, // 11.4 - CLA1 Interrupt 4 + CLA1_5_ISR, // 11.5 - CLA1 Interrupt 5 + CLA1_6_ISR, // 11.6 - CLA1 Interrupt 6 + CLA1_7_ISR, // 11.7 - CLA1 Interrupt 7 + CLA1_8_ISR, // 11.8 - CLA1 Interrupt 8 + XINT3_ISR, // 12.1 - XINT3 Interrupt + XINT4_ISR, // 12.2 - XINT4 Interrupt + XINT5_ISR, // 12.3 - XINT5 Interrupt + MPOST_ISR, // 12.4 - MPOST Interrupt + FMC_ISR, // 12.5 - Flash Wrapper Operation Done Interrupt + PIE_RESERVED_ISR, // 12.6 - Reserved + FPU_OFLOW_ISR, // 12.7 - FPU Overflow Interrupt + FPU_UFLOW_ISR, // 12.8 - FPU Underflow Interrupt + I2CA_HIGH_ISR, // 1.9 - I2CA Interrupt high priority + SYS_ERR_ISR, // 1.10 - System error interrupt + ECATSYNC0_ISR, // 1.11 - ETHERCAT SYNC0 interrupt + ECAT_ISR, // 1.12 - ETHERCAT main interrupt + CIPC0_ISR, // 1.13 - C28x CPU IPC interrupt 1 + CIPC1_ISR, // 1.14 - C28x CPU IPC interrupt 2 + CIPC2_ISR, // 1.15 - C28x CPU IPC interrupt 3 + CIPC3_ISR, // 1.16 - C28x CPU IPC interrupt 4 + EPWM9_TZ_ISR, // 2.9 - ePWM9 Trip Zone Interrupt + EPWM10_TZ_ISR, // 2.10 - ePWM10 Trip Zone Interrupt + EPWM11_TZ_ISR, // 2.11 - ePWM11 Trip Zone Interrupt + EPWM12_TZ_ISR, // 2.12 - ePWM12 Trip Zone Interrupt + EPWM13_TZ_ISR, // 2.13 - ePWM13 Trip Zone Interrupt + EPWM14_TZ_ISR, // 2.14 - ePWM14 Trip Zone Interrupt + EPWM15_TZ_ISR, // 2.15 - ePWM15 Trip Zone Interrupt + EPWM16_TZ_ISR, // 2.16 - ePWM16 Trip Zone Interrupt + EPWM9_ISR, // 3.9 - ePWM9 Interrupt + EPWM10_ISR, // 3.10 - ePWM10 Interrupt + EPWM11_ISR, // 3.11 - ePWM11 Interrupt + EPWM12_ISR, // 3.12 - ePWM12 Interrupt + EPWM13_ISR, // 3.13 - ePWM13 Interrupt + EPWM14_ISR, // 3.14 - ePWM14 Interrupt + EPWM15_ISR, // 3.15 - ePWM15 Interrupt + EPWM16_ISR, // 3.16 - ePWM16 Interrupt + FSITXA1_ISR, // 4.9 - FSIA Transmit interrupt 1 + FSITXA2_ISR, // 4.10 - FSIA Transmit interrupt 2 + FSITXB1_ISR, // 4.11 - FSIB Transmit interrupt 1 + FSITXB2_ISR, // 4.12 - FSIB Transmit interrupt 2 + FSIRXA1_ISR, // 4.13 - FSIA Receive interrupt 1 + FSIRXA2_ISR, // 4.14 - FSIA Receive interrupt 2 + FSIRXB1_ISR, // 4.15 - FSIB Receive interrupt 1 + FSIRXB2_ISR, // 4.16 - FSIB Receive interrupt 2 + SDFM1_ISR, // 5.9 - Sigma Delta Filter Module1 Interrupt + SDFM2_ISR, // 5.10 - Sigma Delta Filter Module2 Interrupt + ECATRST_ISR, // 5.11 - ETHERCAT Resetout Interrupt + ECATSYNC1_ISR, // 5.12 - ETHERCAT SYNC1 interrupt + SDFM1DR1_ISR, // 5.13 - Sigma Delta Filter Module1 Filter 1 Interrupt + SDFM1DR2_ISR, // 5.14 - Sigma Delta Filter Module1 Filter 2 Interrupt + SDFM1DR3_ISR, // 5.15 - Sigma Delta Filter Module1 Filter 3 Interrupt + SDFM1DR4_ISR, // 5.16 - Sigma Delta Filter Module1 Filter 4 Interrupt + SPIC_RX_ISR, // 6.9 - SPIC Receive Interrupt + SPIC_TX_ISR, // 6.10 - SPIC Transmit Interrupt + SPID_RX_ISR, // 6.11 - SPID Receive Interrupt + SPID_TX_ISR, // 6.12 - SPID Transmit Interrupt + SDFM2DR1_ISR, // 6.13 - Sigma Delta Filter Module2 Filter 1 Interrupt + SDFM2DR2_ISR, // 6.14 - Sigma Delta Filter Module2 Filter 2 Interrupt + SDFM2DR3_ISR, // 6.15 - Sigma Delta Filter Module2 Filter 3 Interrupt + SDFM2DR4_ISR, // 6.16 - Sigma Delta Filter Module2 Filter 4 Interrupt + FSIRXC1_ISR, // 7.9 - FSIC Receive interrupt 1 + FSIRXC2_ISR, // 7.10 - FSIC Receive interrupt 2 + FSIRXD1_ISR, // 7.11 - FSID Receive interrupt 1 + FSIRXD2_ISR, // 7.12 - FSID Receive interrupt 2 + FSIRXE1_ISR, // 7.13 - FSIE Receive interrupt 1 + FSIRXE2_ISR, // 7.14 - FSIE Receive interrupt 2 + FSIRXF1_ISR, // 7.15 - FSIF Receive interrupt 1 + FSIRXF2_ISR, // 7.16 - FSIF Receive interrupt 2 + FSIRXG1_ISR, // 8.9 - FSIG Receive interrupt 1 + FSIRXG2_ISR, // 8.10 - FSIG Receive interrupt 2 + FSIRXH1_ISR, // 8.11 - FSIH Receive interrupt 1 + FSIRXH2_ISR, // 8.12 - FSIH Receive interrupt 2 + CLB5_ISR, // 8.13 - CLB5 Interrupt + CLB6_ISR, // 8.14 - CLB6 Interrupt + CLB7_ISR, // 8.15 - CLB7 Interrupt + CLB8_ISR, // 8.16 - CLB8 Interrupt + MCANA_0_ISR, // 9.9 - MCAN Sub-System Interrupt 0 + MCANA_1_ISR, // 9.10 - MCAN Sub-System Interrupt 1 + MCANA_ECC_ISR, // 9.11 - MCAN Sub-System ECC error Interrupt + MCANA_WAKE_ISR, // 9.12 - MCAN Sub-System wakeup Interrupt + PMBUSA_ISR, // 9.13 - PMBUSA Interrupt + CM_STATUS_ISR, // 9.14 - CM Reset Status Interrupt + USBA_ISR, // 9.15 - USBA Interrupt + PIE_RESERVED_ISR, // 9.16 - Reserved + ADCC_EVT_ISR, // 10.9 - ADCC Event Interrupt + ADCC2_ISR, // 10.10 - ADCC Interrupt 2 + ADCC3_ISR, // 10.11 - ADCC Interrupt 3 + ADCC4_ISR, // 10.12 - ADCC Interrupt 4 + ADCD_EVT_ISR, // 10.13 - ADCD Event Interrupt + ADCD2_ISR, // 10.14 - ADCD Interrupt 2 + ADCD3_ISR, // 10.15 - ADCD Interrupt 3 + ADCD4_ISR, // 10.16 - ADCD Interrupt 4 + CMTOCPUXIPC0_ISR, // 11.9 - CM to CPU IPC Interrupt 0 + CMTOCPUXIPC1_ISR, // 11.10 - CM to CPU IPC Interrupt 1 + CMTOCPUXIPC2_ISR, // 11.11 - CM to CPU IPC Interrupt 2 + CMTOCPUXIPC3_ISR, // 11.12 - CM to CPU IPC Interrupt 3 + CMTOCPUXIPC4_ISR, // 11.13 - CM to CPU IPC Interrupt 4 + CMTOCPUXIPC5_ISR, // 11.14 - CM to CPU IPC Interrupt 5 + CMTOCPUXIPC6_ISR, // 11.15 - CM to CPU IPC Interrupt 6 + CMTOCPUXIPC7_ISR, // 11.16 - CM to CPU IPC Interrupt 7 + PIE_RESERVED_ISR, // 12.9 - Reserved + ECAP6_2_ISR, // 12.10 - eCAP6 Interrupt 2 + ECAP7_2_ISR, // 12.11 - eCAP7 Interrupt 2 + PIE_RESERVED_ISR, // 12.12 - Reserved + CPUCRC_ISR, // 12.13 - CPU BGCRC module interrupt + CLA1CRC_ISR, // 12.14 - CLA1 BGCRC module interrupt + CLA_OVERFLOW_ISR, // 12.15 - CLA Overflow Interrupt + CLA_UNDERFLOW_ISR, // 12.16 - CLA Underflow Interrupt +}; + +// +// InitPieVectTable - This function initializes the PIE vector table to a +// known state and must be executed after boot time. +// +void InitPieVectTable(void) +{ + Uint16 i; + Uint32 *Source = (void *) &PieVectTableInit; + Uint32 *Dest = (void *) &PieVectTable; + + // + // Do not write over first 3 32-bit locations (these locations are + // initialized by Boot ROM with boot variables) + // + Source = Source + 3; + Dest = Dest + 3; + + EALLOW; + for(i = 0; i < 221; i++) + { + *Dest++ = *Source++; + } + EDIS; + + // + // Enable the PIE Vector Table + // + PieCtrlRegs.PIECTRL.bit.ENPIE = 1; +} + +// +// End of file +// diff --git a/i2c_ex1_master/f2838x_sysctrl.c b/i2c_ex1_master/f2838x_sysctrl.c new file mode 100644 index 0000000..e6da39b --- /dev/null +++ b/i2c_ex1_master/f2838x_sysctrl.c @@ -0,0 +1,1463 @@ +//########################################################################### +// +// FILE: f2838x_sysctrl.c +// +// TITLE: F2838x Device System Control Initialization & Support Functions. +// +// DESCRIPTION: +// +// Example initialization of system resources. +// +//########################################################################### +// +// +// $Copyright: +// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the +// distribution. +// +// Neither the name of Texas Instruments Incorporated nor the names of +// its contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// $ +//########################################################################### + +// +// Included Files +// +#include "f2838x_device.h" +#include "f2838x_examples.h" +#include "math.h" + +// +// Functions that will be run from RAM need to be assigned to a different +// section. This section will then be mapped to a load and run address using +// the linker cmd file. +// +// *IMPORTANT* +// +// IF RUNNING FROM FLASH, PLEASE COPY OVER THE SECTION ".TI.ramfunc" FROM +// FLASH TO RAM PRIOR TO CALLING InitSysCtrl(). THIS PREVENTS THE MCU FROM +// THROWING AN EXCEPTION WHEN A CALL TO DELAY_US() IS MADE. +// +#pragma CODE_SECTION(InitFlash, ".TI.ramfunc"); +#pragma CODE_SECTION(FlashOff, ".TI.ramfunc"); + + +// The following values are used to validate PLL Frequency using DCC +// +#define DCC_COUNTER0_TOLERANCE 1 + +#ifdef USE_20MHZ_XTAL + +#define OSC_FREQ 20 + +// +// Multipliers and dividers to configure 200MHz SYSPLL output from 20MHz XTAL +// +#define SYS_IMULT IMULT_40 +#define SYS_REFDIV REFDIV_2 +#define SYS_ODIV ODIV_2 +#define SYS_DIV PLLCLK_BY_1 + +// +// Multipliers and dividers to configure 125MHz AUXPLL output from 20MHz XTAL +// +#define AUX_IMULT IMULT_50 +#define AUX_REFDIV REFDIV_2 +#define AUX_ODIV ODIV_4 +#define AUX_DIV AUXPLLRAWCLK_BY_1 + + +#else // USE_25MHZ_XTAL + +#define OSC_FREQ 25 + +// +// Multipliers and dividers to configure 200MHz SYSPLL output from 25MHz XTAL +// +#define SYS_IMULT IMULT_32 +#define SYS_REFDIV REFDIV_2 +#define SYS_ODIV ODIV_2 +#define SYS_DIV PLLCLK_BY_1 + +// +// Multipliers and dividers to configure 125MHz AUXPLL output from 25MHz XTAL +// +#define AUX_IMULT IMULT_40 +#define AUX_REFDIV REFDIV_2 +#define AUX_ODIV ODIV_4 +#define AUX_DIV AUXPLLRAWCLK_BY_1 + +#endif + +// +// InitSysCtrl - Initialization of system resources. +// +void InitSysCtrl(void) +{ + // + // Disable the watchdog + // + DisableDog(); + +#ifdef _FLASH + // + // Copy time critical code and Flash setup code to RAM. This includes the + // following functions: InitFlash() + // + // The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart + // symbols are created by the linker. Refer to the device .cmd file. + // + memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize); + + // + // Call Flash Initialization to setup flash waitstates. This function must + // reside in RAM. + // + InitFlash(); +#endif + + // + // *IMPORTANT* + // + // The Device_cal function, which copies the ADC & oscillator calibration + // values from TI reserved OTP into the appropriate trim registers, occurs + // automatically in the Boot ROM. If the boot ROM code is bypassed during + // the debug process, the following function MUST be called for the ADC and + // oscillators to function according to specification. The clocks to the + // ADC MUST be enabled before calling this function. + // + // See the device data manual and/or the ADC Reference Manual for more + // information. + // +#ifdef CPU1 + // + // Enable pull-ups on unbonded IOs as soon as possible to reduce power + // consumption. + // + GPIO_EnableUnbondedIOPullups(); + + EALLOW; + + + CpuSysRegs.PCLKCR13.bit.ADC_A = 1; + CpuSysRegs.PCLKCR13.bit.ADC_B = 1; + CpuSysRegs.PCLKCR13.bit.ADC_C = 1; + CpuSysRegs.PCLKCR13.bit.ADC_D = 1; + + // + // Check if device is trimmed + // + if(*((Uint16 *)0x5D736) == 0x0000){ + // + // Device is not trimmed--apply static calibration values + // + AnalogSubsysRegs.ANAREFTRIMA.all = 31709; + AnalogSubsysRegs.ANAREFTRIMB.all = 31709; + AnalogSubsysRegs.ANAREFTRIMC.all = 31709; + AnalogSubsysRegs.ANAREFTRIMD.all = 31709; + } + + CpuSysRegs.PCLKCR13.bit.ADC_A = 0; + CpuSysRegs.PCLKCR13.bit.ADC_B = 0; + CpuSysRegs.PCLKCR13.bit.ADC_C = 0; + CpuSysRegs.PCLKCR13.bit.ADC_D = 0; + EDIS; + + // + // Verify the crystal frequency. + // Note: This check can be removed if you are not using XTAL as the PLL + // source + // + if(!VerifyXTAL(OSC_FREQ)) + { + // + // The actual XTAL frequency does not match OSC_FREQ!! + // Please check the XTAL frequency used. + // + // By default, the InitSysCtrl function assumes 25MHz XTAL. + // If a 20MHz crystal is used, please add a predefined symbol + // "USE_20MHZ_XTAL" in your CCS project. + // If a different XTAL is used, please update the PLL configuration + // below accordingly. + // + // Note that the latest F2838x controlCARDs (Rev.B and later) have been + // updated to use 25MHz XTAL by default. If you have an older 20MHz XTAL + // controlCARD (E1, E2, or Rev.A), refer to the controlCARD + // documentation on steps to reconfigure the controlCARD from 20MHz to + // 25MHz. + // + ESTOP0; + while(1); + } + + // + // Initialize the SYSPLL control to generate a 200Mhz clock + // + // Defined options to be passed as arguments to this function are defined + // in f2838x_examples.h. + // + // Note: The internal oscillator CANNOT be used as the PLL source if the + // PLLSYSCLK is configured to frequencies above 194 MHz. + // + // PLLSYSCLK = (XTAL_OSC) * (IMULT) /(REFDIV) * (ODIV) * (PLLSYSCLKDIV) + // + InitSysPll(XTAL_OSC, SYS_IMULT, SYS_REFDIV, SYS_ODIV, SYS_DIV, SYSCTL_DCC_BASE0); + + // + // Initialize the AUXPLL control to generate a 125Mhz clock: + // + // Defined options to be passed as arguments to this function are defined + // in f2838x_Examples.h. + // + // Note: The internal oscillator CANNOT be used as the PLL source if the + // AUXPLLCLK is configured to frequencies above 194 MHz. + // + // AUXPLLCLK = (XTAL_OSC) * (IMULT) /(REFDIV) * (ODIV) * (AUXPLLDIV) + // + InitAuxPll(XTAL_OSC, AUX_IMULT, AUX_REFDIV, AUX_ODIV, AUX_DIV, SYSCTL_DCC_BASE1); + + // + // Set up CMCLK to use AUXPLL as the clock source and set the + // clock divider to 1. + // + EALLOW; + ClkCfgRegs.CMCLKCTL.bit.CMCLKDIV = 0; // 0 : Divide by 1 + ClkCfgRegs.CMCLKCTL.bit.CMDIVSRCSEL = 0; // 0 : AuxPLL is the source for the CM clock divider. + EDIS; + +#ifndef _FLASH + // + // Call Device_cal function when run using debugger + // This function is called as part of the Boot code. The function is called + // in the InitSysCtrl function since during debug time resets, the boot code + // will not be executed and the gel script will reinitialize all the + // registers and the calibrated values will be lost. + // + Device_cal(); +#endif + +#endif // CPU1 + + // + // Turn on all peripherals + // + InitPeripheralClocks(); +} + +// +// +// Function to verify the XTAL frequency +// freq is the XTAL frequency in MHz +// The function return true if the the actual XTAL frequency matches with the +// input value +// +// +#ifdef CPU1 +bool VerifyXTAL(float freq) +{ + // + // Configures XTAL as CLKSRC0 and INTOSC2 as CLKSRC1. + // Fclk0 = XTAL frequency (input parameter) + // Fclk1 = INTOSC2 frequency = 10MHz + // + // Calculating Counter0 & Valid Seed Value with +/-1% tolerance + // INTOSC can have a variance in frequency of +/-10% + // + // Since Fclk1 < Fclk0, then Async. Error (In Clock0 cycles) = + // 2*(Fclk0/Fclk1) + 2*(Fsysclk/Fclk0) + // Digitization error = 8 Clock0 cycles + // DCC Error (in Cycles) = 2*(Fclk0/Fclk1) + 2*(Fsysclk/Fclk0) + 8 + // Window (in Cycles) = (Total Error) / (0.01 * Tolerance) + // Error due to variance in frequency = Window * freqVariance + // Total error = DCC Error + Error due to variance in frequency + // Counter0 = Window - Total Error + // Valid0 = 2 * Total Error + // Counter1 = Window * (Fclk1/Fclk0) + // + // Note : Update the tolerance and INTOSC2 frequency variance as necessary. + // + uint32_t total_error = ceil((2.0F * freq/10.0F) + (2.0F * 10.0F/freq) + 8.0F); + uint32_t window = total_error / 0.01F; + total_error += window * 0.1F; + + uint32_t count0 = window - total_error; + uint32_t valid = 2 * total_error; + uint32_t count1 = window * 10 / freq; + + EALLOW; + + // + // Enable DCC0 clock + // + CpuSysRegs.PCLKCR21.bit.DCC0 = 1; + + // + // Insert atleast 5 cycles delay after enabling the peripheral clock + // + asm(" RPT #5 || NOP"); + + // + // Clear Error & Done Flag + // + Dcc0Regs.DCCSTATUS.bit.ERR = 1; + Dcc0Regs.DCCSTATUS.bit.DONE = 1; + + // + // Disable DCC + // + Dcc0Regs.DCCGCTRL.bit.DCCENA = 0x5; + + // + // Disable Error Signal + // + Dcc0Regs.DCCGCTRL.bit.ERRENA = 0x5; + + // + // Disable Done Signal + // + Dcc0Regs.DCCGCTRL.bit.DONEENA = 0x5; + + // + // Configure Clock Source0 to XTAL + // + Dcc0Regs.DCCCLKSRC0.all = (0xA << 12) | // bits 12..15 : Key + 0; // bits 0..4 : Source = XTAL(value 0) + + // + // Configure Clock Source1 to INTOSC + // + Dcc0Regs.DCCCLKSRC1.all = (0xA << 12) | // bits 12..15 : Key + 3; // bits 0..4 : Source = INTOS2(value 3) + + // + // Configure COUNTER-0, COUNTER-1 & Valid Window + // + Dcc0Regs.DCCCNTSEED0.all = count0; + Dcc0Regs.DCCCNTSEED1.all = count1; + Dcc0Regs.DCCVALIDSEED0.all = valid; + + // + // Enable Single Shot mode + // + Dcc0Regs.DCCGCTRL.bit.SINGLESHOT = 0xA; + + // + // Enable Error Signal + // + Dcc0Regs.DCCGCTRL.bit.ERRENA = 0xA; + + // + // Enable Done Signal + // + Dcc0Regs.DCCGCTRL.bit.DONEENA = 0xA; + + // + // Enable DCC to start counting + // + Dcc0Regs.DCCGCTRL.bit.DCCENA = 0xA; + + EDIS; + + // + // Wait until Error or Done Flag is generated + // + while((Dcc0Regs.DCCSTATUS.bit.DONE | Dcc0Regs.DCCSTATUS.bit.ERR) == 0); + + // + // Returns true if DCC completes without error + // + if (Dcc0Regs.DCCSTATUS.bit.DONE == 1U) + { + return true; + } + else + { + return false; + } + +} +#endif + +// +// InitPeripheralClocks - Initializes the clocks for the peripherals. +// +// Note: In order to reduce power consumption, turn off the clocks to any +// peripheral that is not specified for your part-number or is not used in the +// application +// +void InitPeripheralClocks(void) +{ + EALLOW; + + CpuSysRegs.PCLKCR0.bit.CLA1 = 1; + CpuSysRegs.PCLKCR0.bit.DMA = 1; + CpuSysRegs.PCLKCR0.bit.CPUTIMER0 = 1; + CpuSysRegs.PCLKCR0.bit.CPUTIMER1 = 1; + CpuSysRegs.PCLKCR0.bit.CPUTIMER2 = 1; + CpuSysRegs.PCLKCR0.bit.CPUBGCRC = 1; + CpuSysRegs.PCLKCR0.bit.CLA1BGCRC = 1; + +#ifdef CPU1 + CpuSysRegs.PCLKCR0.bit.HRCAL = 1; +#endif + + CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; + CpuSysRegs.PCLKCR0.bit.ERAD = 1; + +#ifdef CPU1 + CpuSysRegs.PCLKCR1.bit.EMIF1 = 1; + CpuSysRegs.PCLKCR1.bit.EMIF2 = 1; +#endif + + CpuSysRegs.PCLKCR2.bit.EPWM1 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM2 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM3 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM4 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM5 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM6 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM7 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM8 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM9 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM10 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM11 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM12 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM13 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM14 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM15 = 1; + CpuSysRegs.PCLKCR2.bit.EPWM16 = 1; + + CpuSysRegs.PCLKCR3.bit.ECAP1 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP2 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP3 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP4 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP5 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP6 = 1; + CpuSysRegs.PCLKCR3.bit.ECAP7 = 1; + + CpuSysRegs.PCLKCR4.bit.EQEP1 = 1; + CpuSysRegs.PCLKCR4.bit.EQEP2 = 1; + CpuSysRegs.PCLKCR4.bit.EQEP3 = 1; + + CpuSysRegs.PCLKCR6.bit.SD1 = 1; + CpuSysRegs.PCLKCR6.bit.SD2 = 1; + + CpuSysRegs.PCLKCR7.bit.SCI_A = 1; + CpuSysRegs.PCLKCR7.bit.SCI_B = 1; + CpuSysRegs.PCLKCR7.bit.SCI_C = 1; + CpuSysRegs.PCLKCR7.bit.SCI_D = 1; + + CpuSysRegs.PCLKCR8.bit.SPI_A = 1; + CpuSysRegs.PCLKCR8.bit.SPI_B = 1; + CpuSysRegs.PCLKCR8.bit.SPI_C = 1; + CpuSysRegs.PCLKCR8.bit.SPI_D = 1; + + CpuSysRegs.PCLKCR9.bit.I2C_A = 1; + CpuSysRegs.PCLKCR9.bit.I2C_B = 1; + + CpuSysRegs.PCLKCR10.bit.CAN_A = 1; + CpuSysRegs.PCLKCR10.bit.CAN_B = 1; + + CpuSysRegs.PCLKCR11.bit.McBSP_A = 1; + CpuSysRegs.PCLKCR11.bit.McBSP_B = 1; + +#ifdef CPU1 + CpuSysRegs.PCLKCR11.bit.USB_A = 1; +#endif + + CpuSysRegs.PCLKCR13.bit.ADC_A = 1; + CpuSysRegs.PCLKCR13.bit.ADC_B = 1; + CpuSysRegs.PCLKCR13.bit.ADC_C = 1; + CpuSysRegs.PCLKCR13.bit.ADC_D = 1; + + CpuSysRegs.PCLKCR14.bit.CMPSS1 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS2 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS3 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS4 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS5 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS6 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS7 = 1; + CpuSysRegs.PCLKCR14.bit.CMPSS8 = 1; + + CpuSysRegs.PCLKCR16.bit.DAC_A = 1; + CpuSysRegs.PCLKCR16.bit.DAC_B = 1; + CpuSysRegs.PCLKCR16.bit.DAC_C = 1; + + CpuSysRegs.PCLKCR18.bit.FSITX_A = 1; + CpuSysRegs.PCLKCR18.bit.FSITX_B = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_A = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_B = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_C = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_D = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_E = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_F = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_G = 1; + CpuSysRegs.PCLKCR18.bit.FSIRX_H = 1; + + CpuSysRegs.PCLKCR20.bit.PMBUS_A = 1; + + CpuSysRegs.PCLKCR21.bit.DCC0 = 1; + CpuSysRegs.PCLKCR21.bit.DCC1 = 1; + CpuSysRegs.PCLKCR21.bit.DCC2 = 1; + + CpuSysRegs.PCLKCR23.bit.ETHERCAT = 1; + + EDIS; +} + +// +// DisablePeripheralClocks - Gates-off all peripheral clocks. +// +void DisablePeripheralClocks(void) +{ + EALLOW; + + CpuSysRegs.PCLKCR0.all = 0; + CpuSysRegs.PCLKCR1.all = 0; + CpuSysRegs.PCLKCR2.all = 0; + CpuSysRegs.PCLKCR3.all = 0; + CpuSysRegs.PCLKCR4.all = 0; + CpuSysRegs.PCLKCR6.all = 0; + CpuSysRegs.PCLKCR7.all = 0; + CpuSysRegs.PCLKCR8.all = 0; + CpuSysRegs.PCLKCR9.all = 0; + CpuSysRegs.PCLKCR10.all = 0; + CpuSysRegs.PCLKCR11.all = 0; + CpuSysRegs.PCLKCR13.all = 0; + CpuSysRegs.PCLKCR14.all = 0; + CpuSysRegs.PCLKCR16.all = 0; + CpuSysRegs.PCLKCR18.all = 0; + CpuSysRegs.PCLKCR20.all = 0; + CpuSysRegs.PCLKCR21.all = 0; + CpuSysRegs.PCLKCR22.all = 0; + CpuSysRegs.PCLKCR23.all = 0; + + EDIS; +} + +// +// InitFlash - This function initializes the Flash Control registers. +// +// *CAUTION* +// This function MUST be executed out of RAM. Executing it out of OTP/Flash +// will yield unpredictable results. +// +#ifdef __cplusplus +#pragma CODE_SECTION(".TI.ramfunc"); +#endif +void InitFlash(void) +{ + EALLOW; + + // + // At reset bank and pump are in sleep. A Flash access will power up the + // bank and pump automatically. + // + // Power up Flash bank and pump. This also sets the fall back mode of + // flash and pump as active. + // + Flash0CtrlRegs.FPAC1.bit.PMPPWR = 0x1; + Flash0CtrlRegs.FBFALLBACK.bit.BNKPWR0 = 0x3; + + // + // Disable Cache and prefetch mechanism before changing wait states + // + Flash0CtrlRegs.FRD_INTF_CTRL.bit.DATA_CACHE_EN = 0; + Flash0CtrlRegs.FRD_INTF_CTRL.bit.PREFETCH_EN = 0; + + // + // Set waitstates according to frequency + // + // *CAUTION* + // Minimum waitstates required for the flash operating at a given CPU rate + // must be characterized by TI. Refer to the datasheet for the latest + // information. + // + #if CPU_FRQ_200MHZ + Flash0CtrlRegs.FRDCNTL.bit.RWAIT = 0x3; + #endif + + #if CPU_FRQ_150MHZ + Flash0CtrlRegs.FRDCNTL.bit.RWAIT = 0x2; + #endif + + #if CPU_FRQ_120MHZ + Flash0CtrlRegs.FRDCNTL.bit.RWAIT = 0x2; + #endif + + // + // Enable Cache and prefetch mechanism to improve performance of code + // executed from Flash. + // + Flash0CtrlRegs.FRD_INTF_CTRL.bit.DATA_CACHE_EN = 1; + Flash0CtrlRegs.FRD_INTF_CTRL.bit.PREFETCH_EN = 1; + + // + // At reset, ECC is enabled. If it is disabled by application software and + // if application again wants to enable ECC. + // + Flash0EccRegs.ECC_ENABLE.bit.ENABLE = 0xA; + + EDIS; + + // + // Force a pipeline flush to ensure that the write to the last register + // configured occurs before returning. + // + __asm(" RPT #7 || NOP"); +} + +// +// FlashOff - This function powers down the flash +// +// *CAUTION* +// This function MUST be executed out of RAM. Executing it out of OTP/Flash +// will yield unpredictable results. Also you must seize the flash pump in +// order to power it down. +// +#ifdef __cplusplus +#pragma CODE_SECTION(".TI.ramfunc"); +#endif +void FlashOff(void) +{ + EALLOW; + + // + // Power down bank + // + Flash0CtrlRegs.FBFALLBACK.bit.BNKPWR0 = 0; + + // + // Power down pump + // + Flash0CtrlRegs.FPAC1.bit.PMPPWR = 0; + + EDIS; +} + + +// +// ServiceDog - This function resets the watchdog timer. +// +// Enable this function for using ServiceDog in the application. +// +void ServiceDog(void) +{ + EALLOW; + WdRegs.WDKEY.bit.WDKEY = 0x0055; + WdRegs.WDKEY.bit.WDKEY = 0x00AA; + EDIS; +} + +// +// DisableDog - This function disables the watchdog timer. +// +void DisableDog(void) +{ + volatile Uint16 temp; + + // + // Grab the clock config first so we don't clobber it + // + EALLOW; + temp = WdRegs.WDCR.all & 0x0007; + WdRegs.WDCR.all = 0x0068 | temp; + EDIS; +} + +#ifdef CPU1 +// +// InitPll - This function initializes the PLL registers. +// +// Note: This function uses the DCC to check that the PLLRAWCLK is running at +// the expected rate. The desirable DCC can be provided as a parameter. +// +void InitSysPll(Uint16 clock_source, Uint16 imult, Uint32 refdiv, Uint32 odiv, + Uint16 divsel, Uint32 dccbase) +{ + Uint32 timeout,temp_syspllmult, pllLockStatus; + bool status; + + if(((clock_source & 0x3) == ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL) && + (((clock_source & 0x4) >> 2) == ClkCfgRegs.XTALCR.bit.SE) && + (imult == ClkCfgRegs.SYSPLLMULT.bit.IMULT) && + (refdiv == ClkCfgRegs.SYSPLLMULT.bit.REFDIV) && + (odiv == ClkCfgRegs.SYSPLLMULT.bit.ODIV) && + (divsel == ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV)) + { + // + // Everything is set as required, so just return + // + return; + } + + EALLOW; + + // + // First modify the PLL multipliers if the multipliers need an update or PLL needs + // to be powered on / enabled + // + if((imult != ClkCfgRegs.SYSPLLMULT.bit.IMULT) || + (refdiv != ClkCfgRegs.SYSPLLMULT.bit.REFDIV)|| + (odiv != ClkCfgRegs.SYSPLLMULT.bit.ODIV) || + (1U != ClkCfgRegs.SYSPLLCTL1.bit.PLLEN)) + { + // + // Bypass PLL and set dividers to /1 + // + ClkCfgRegs.SYSPLLCTL1.bit.PLLCLKEN = 0; + + // + // Delay of at least 120 OSCCLK cycles required post PLL bypass + // + asm(" RPT #120 || NOP"); + + // + // Evaluate PLL multipliers and dividers + // + temp_syspllmult = ((refdiv << 24U) | (odiv << 16U)| imult); + + // + // Turnoff the PLL + // + ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0; + EDIS; + + // + // Delay of at least 66 OSCCLK cycles + // + asm(" RPT #66 || NOP"); + + if(((clock_source & 0x3) != ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL) || + (((clock_source & 0x4) >> 2) != ClkCfgRegs.XTALCR.bit.SE)) + { + switch (clock_source) + { + case INT_OSC1: + SysIntOsc1Sel(); + break; + + case INT_OSC2: + SysIntOsc2Sel(); + break; + + case XTAL_OSC: + SysXtalOscSel(); + break; + + case XTAL_OSC_SE: + SysXtalOscSESel(); + break; + } + } + + // + // Delay of at least 60 OSCCLK cycles + // + asm(" RPT #60 || NOP"); + + EALLOW; + + // + // Set dividers to /1 to ensure the fastest PLL configuration + // + ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = 0; + + // + // Program PLL multipliers + // + ClkCfgRegs.SYSPLLMULT.all = temp_syspllmult; + + // + // Enable SYSPLL + // + ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 1; + + // + // Lock time is 1024 OSCCLK * (REFDIV+1) + // + timeout = (1024U * (refdiv + 1U)); + pllLockStatus = ClkCfgRegs.SYSPLLSTS.bit.LOCKS; + + // + // Wait for the SYSPLL lock + // + while((pllLockStatus != 1) && (timeout != 0U)) + { + pllLockStatus = ClkCfgRegs.SYSPLLSTS.bit.LOCKS; + timeout--; + } + + EDIS; + + // + // Check PLL Frequency using DCC + // + status = IsPLLValid(dccbase, clock_source, INT_PLL_SYSPLL, + imult, odiv , refdiv); + + } + else + { + // + // Re-Lock of PLL not needed since the multipliers + // are not updated + // + status = true; + } + + if(status) + { + EALLOW; + // + // Set divider to produce slower output frequency to limit current increase + // + if(divsel != PLLCLK_BY_126) + { + ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = divsel + 1; + } + else + { + ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = divsel; + } + + // + // Enable PLLSYSCLK is fed from system PLL clock + // + ClkCfgRegs.SYSPLLCTL1.bit.PLLCLKEN = 1; + + // + // Small 100 cycle delay + // + asm(" RPT #100 || NOP"); + + // + // Set the divider to user value + // + ClkCfgRegs.SYSCLKDIVSEL.bit.PLLSYSCLKDIV = divsel; + EDIS; + } + else + ESTOP0; // If the frequency is out of range, stop here. + +} + +// +// InitAuxPll - This function initializes the AUXPLL registers. +// +// Note: This function uses the DCC to check that the AUXPLLRAWCLK is running at +// the expected rate. The desirable DCC can be provided as a parameter. +// +void InitAuxPll(Uint16 clock_source, Uint16 imult, Uint32 refdiv, Uint32 odiv, + Uint16 divsel, Uint32 dccbase) +{ + Uint16 started = 0 , status = 0; + + if((clock_source == ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL) && + (((clock_source & 0x4) >> 2) == ClkCfgRegs.XTALCR.bit.SE) && + (imult == ClkCfgRegs.AUXPLLMULT.bit.IMULT) && + (refdiv == ClkCfgRegs.SYSPLLMULT.bit.REFDIV) && + (odiv == ClkCfgRegs.SYSPLLMULT.bit.ODIV) && + (divsel == ClkCfgRegs.AUXCLKDIVSEL.bit.AUXPLLDIV)) + { + // + // Everything is set as required, so just return + // + return; + } + + // + // First modify the PLL multipliers + // + if((imult != ClkCfgRegs.AUXPLLMULT.bit.IMULT) || + (refdiv != ClkCfgRegs.AUXPLLMULT.bit.REFDIV)|| + (odiv != ClkCfgRegs.AUXPLLMULT.bit.ODIV) || + (1U != ClkCfgRegs.AUXPLLCTL1.bit.PLLEN)) + { + EALLOW; + + // + // Bypass PLL + // + ClkCfgRegs.AUXPLLCTL1.bit.PLLCLKEN = 0; + + // + // Delay of at least 120 OSCCLK cycles required post PLL bypass + // + asm(" RPT #120 || NOP"); + + ClkCfgRegs.AUXPLLCTL1.bit.PLLEN = 0; // Turn off AUXPLL + + // + // Delay of at least 66 OSCCLK cycles + // + asm(" RPT #66 || NOP"); + + // + // Configure oscillator source + // + switch (clock_source) + { + case INT_OSC2: + AuxIntOsc2Sel(); + break; + + case XTAL_OSC: + AuxXtalOscSel(); + break; + + case XTAL_OSC_SE: + AuxXtalOscSESel(); + break; + + case AUXCLKIN: + AuxAuxClkSel(); + break; + } + + // + // Delay of at least 60 OSCCLK cycles + // + asm(" RPT #60 || NOP"); + + EALLOW; + // + // Set integer multiplier and dividers, which automatically turns on + // the PLL + // + ClkCfgRegs.AUXPLLMULT.all = ((refdiv << 24U) | (odiv << 16U) | imult); + + // + // Enable AUXPLL + // + ClkCfgRegs.AUXPLLCTL1.bit.PLLEN = 1; + EDIS; + + // + // Wait for the AUXPLL lock counter + // + while(ClkCfgRegs.AUXPLLSTS.bit.LOCKS != 1) + { + // + // Uncomment to service the watchdog + // + // ServiceDog(); + } + + status = IsPLLValid(dccbase, clock_source, INT_PLL_AUXPLL, + imult, odiv , refdiv); + + // + // Check DCC Status + // + if(status) + { + started = 1; + } + + // + // Enable AUXPLLCLK to be fed from AUX PLL + // + EALLOW; + ClkCfgRegs.AUXPLLCTL1.bit.PLLCLKEN = 1; + asm(" RPT #20 || NOP"); + + EDIS; + + if(started == 0) + { + // + // AUX PLL may not have started. Reset multiplier to 0 (bypass PLL). + // + EALLOW; + ClkCfgRegs.AUXPLLMULT.all = 0; + EDIS; + + // + // The user should put some handler code here based on how this + // condition should be handled in their application. + // + asm(" ESTOP0"); + } + } + + // + // Set divider to desired value + // + EALLOW; + ClkCfgRegs.AUXCLKDIVSEL.bit.AUXPLLDIV = divsel; + + EDIS; +} +#endif + +// +// CsmUnlock - This function unlocks the CSM. User must replace the default +// value with the current password for the DSP. +// +Uint16 CsmUnlock(void) +{ + volatile Uint16 temp; + + // + // Load the key registers with the current password. These values are + // default passwords for the first ZSB. User should replace them with + // the correct password for the DSP. + // + EALLOW; + DcsmZ1Regs.Z1_CSMKEY0 = 0xFFFFFFFF; + DcsmZ1Regs.Z1_CSMKEY1 = 0x4D7FFFFF; + DcsmZ1Regs.Z1_CSMKEY2 = 0xFFFFFFFF; + DcsmZ1Regs.Z1_CSMKEY3 = 0xFFFFFFFF; + + DcsmZ2Regs.Z2_CSMKEY0 = 0xFFFFFFFF; + DcsmZ2Regs.Z2_CSMKEY1 = 0x3FFFFFFF; + DcsmZ2Regs.Z2_CSMKEY2 = 0xFFFFFFFF; + DcsmZ2Regs.Z2_CSMKEY3 = 0xFFFFFFFF; + EDIS; + + return(0); +} + +// +// SysIntOsc1Sel - This function switches to Internal Oscillator 1. +// +void SysIntOsc1Sel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 2; // Clk Src = INTOSC1 + EDIS; +} + +// +// SysIntOsc2Sel - This function switches to Internal oscillator 2. +// +void SysIntOsc2Sel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 0; // Clk Src = INTOSC2 + EDIS; +} + +// +// PollX1Counter - Clear the X1CNT counter and then wait for it to saturate +// four times. +// +static void +PollX1Counter(void) +{ + Uint16 loopCount = 0; + + // + // Delay for 1 ms while the XTAL powers up + // + // 2000 loops, 5 cycles per loop + 9 cycles overhead = 10009 cycles + // + F28x_usDelay(2000); + + // + // Clear and saturate X1CNT 4 times to guarantee operation + // + do + { + // + // Keep clearing the counter until it is no longer saturated + // + while(ClkCfgRegs.X1CNT.all > 0x1FF) + { + ClkCfgRegs.X1CNT.bit.CLR = 1; + ClkCfgRegs.X1CNT.bit.CLR = 0; + } + + // + // Wait for the X1 clock to saturate + // + while(ClkCfgRegs.X1CNT.all != 0x3FFU) + { + ; + } + + // + // Increment the counter + // + loopCount++; + }while(loopCount < 4); +} +// SysXtalOscSel - This function switches to External CRYSTAL oscillator. +// +void SysXtalOscSel(void) +{ + EALLOW; + ClkCfgRegs.XTALCR.bit.OSCOFF = 0; // Turn on XTALOSC + ClkCfgRegs.XTALCR.bit.SE = 0; // Select crystal mode + EDIS; + + // + // Wait for the X1 clock to saturate + // + PollX1Counter(); + + // + // Select XTAL as the oscillator source + // + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 1; + EDIS; + + // + // If a missing clock failure was detected, try waiting for the X1 counter + // to saturate again. Consider modifying this code to add a 10ms timeout. + // + while(ClkCfgRegs.MCDCR.bit.MCLKSTS != 0) + { + EALLOW; + ClkCfgRegs.MCDCR.bit.MCLKCLR = 1; + EDIS; + + // + // Wait for the X1 clock to saturate + // + PollX1Counter(); + + // + // Select XTAL as the oscillator source + // + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 1; + EDIS; + } +} +// +// SysXtalOscSESel - This function switches to external oscillator in +// single-ended mode and turns off all other clock sources to minimize power +// consumption. This option may not be available on all device packages +// +void +SysXtalOscSESel (void) +{ + EALLOW; + ClkCfgRegs.XTALCR.bit.OSCOFF = 0; // Turn on XTALOSC + ClkCfgRegs.XTALCR.bit.SE = 1; // Select single-ended mode + EDIS; + + // + // Wait for the X1 clock to saturate + // + PollX1Counter(); + + // + // Select XTALOSC as the oscillator source + // + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 1; + EDIS; + + // + // If missing clock detected, there is something wrong with the oscillator + // module. + // + if(ClkCfgRegs.MCDCR.bit.MCLKSTS != 0) + { + ESTOP0; + } +} +// +// AuxIntOsc2Sel - This function switches to Internal oscillator 2. +// +void AuxIntOsc2Sel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 0; // Clk Src = INTOSC2 + EDIS; +} + +// +// AuxXtalOscSel - This function switches to External CRYSTAL oscillator in +// crystal mode. +// +void AuxXtalOscSel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.XTALOFF=0; // Turn on XTALOSC + ClkCfgRegs.XTALCR.bit.SE = 0; // Select crystal mode + PollX1Counter(); // Wait for the X1 clock to saturate + ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 1; // Clk Src = XTAL + EDIS; +} + +// +// AuxXtalOscSESel - This function switches to External CRYSTAL oscillator in +// single-ended mode. +// +void AuxXtalOscSESel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL1.bit.XTALOFF=0; // Turn on XTALOSC + ClkCfgRegs.XTALCR.bit.SE = 1; // Select single-ended mode + PollX1Counter(); // Wait for the X1 clock to saturate + ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 1; // Clk Src = XTAL + EDIS; +} +// +// AuxAuxClkSel - This function switches to AUXCLKIN (from a GPIO). +// +void AuxAuxClkSel(void) +{ + EALLOW; + ClkCfgRegs.CLKSRCCTL2.bit.AUXOSCCLKSRCSEL = 2; // Clk Src = XTAL + EDIS; +} + +// +// IDLE - Enter IDLE mode (single CPU). +// +void IDLE(void) +{ + EALLOW; + CpuSysRegs.LPMCR.bit.LPM = LPM_IDLE; + EDIS; + asm(" IDLE"); +} + +// +// STANDBY - Enter STANDBY mode (single CPU). +// +void STANDBY(void) +{ + EALLOW; + CpuSysRegs.LPMCR.bit.LPM = LPM_STANDBY; + EDIS; + asm(" IDLE"); +} + +#ifdef CPU1 +// +// IsPLLValid - This function validates PLL Raw Clock Frequency +// +bool +IsPLLValid(Uint32 base, Uint16 oscSource, Uint16 pllclk, Uint16 imult, + Uint16 odiv, Uint16 refdiv) +{ + float fclk1_0ratio; + volatile struct DCC_REGS *DccRegs; + + EALLOW; + + // + // Assigning DCC for PLL validation + // Enable Peripheral Clock Domain PCLKCR21 for DCC + // + if(base == SYSCTL_DCC_BASE0) + { + DccRegs = &Dcc0Regs; + CpuSysRegs.PCLKCR21.bit.DCC0 = 1; + } + else if(base == SYSCTL_DCC_BASE1) + { + DccRegs = &Dcc1Regs; + CpuSysRegs.PCLKCR21.bit.DCC1 = 1; + } + else if(base == SYSCTL_DCC_BASE2) + { + DccRegs = &Dcc2Regs; + CpuSysRegs.PCLKCR21.bit.DCC2 = 1; + } + else + ESTOP0; // Invalid DCC selected + + // + // Clear Error & Done Flag + // + DccRegs->DCCSTATUS.bit.ERR = 1; + DccRegs->DCCSTATUS.bit.DONE = 1; + + // + // Disable DCC + // + DccRegs->DCCGCTRL.bit.DCCENA = 0x5; + + // + // Disable Error Signal + // + DccRegs->DCCGCTRL.bit.ERRENA = 0x5; + + // + // Disable Done Signal + // + DccRegs->DCCGCTRL.bit.DONEENA = 0x5; + + // + // Configure Clock Source1 to PLL + // + // Clk Src1 Key 0xA to enable clock source selection + // + switch(pllclk) + { + case INT_PLL_SYSPLL: + DccRegs->DCCCLKSRC1.all = 0xA000; // Clk Src1 = SYSPLL + break; + + case INT_PLL_AUXPLL: + DccRegs->DCCCLKSRC1.all = 0xA001; // Clk Src1 = AUXPLL + break; + + default: + // + // Code shouldn't reach here + // + break; + } + + // + // Configure Clock Source0 to whatever is set as a reference + // clock source for PLL + // + // Clk Src0 Key 0xA to enable clock source selection + // + switch(oscSource) + { + case INT_OSC1: + DccRegs->DCCCLKSRC0.all = 0xA001; // Clk Src0 = INTOSC1 + break; + + case INT_OSC2: + DccRegs->DCCCLKSRC0.all = 0xA002; // Clk Src0 = INTOSC2 + break; + + case XTAL_OSC: + case XTAL_OSC_SE: + DccRegs->DCCCLKSRC0.all = 0xA000; // Clk Src0 = XTAL + break; + + default: + // + // Code shouldn't reach here + // + break; + } + + // + // Calculating frequency ratio of output clock(f1) vs reference clock(f0) + // + fclk1_0ratio = (float)imult / ((odiv + 1U) * (refdiv + 1)); + + // + // Computing and configuring Counter0 , Counter1 & Valid Seed Values + // with +/-1% tolerance for the desired DCC + // + ComputeCntrSeedValue(base, fclk1_0ratio, DCC_COUNTER0_TOLERANCE); + + // + // Enable Single Shot Mode + // + DccRegs->DCCGCTRL.bit.SINGLESHOT = 0xA; + + // + // Enable DCC to start counting + // + DccRegs->DCCGCTRL.bit.DCCENA = 0xA; + EDIS; + + // + // Wait until Error or Done Flag is generated + // + while((DccRegs->DCCSTATUS.all & 3) == 0) + { + } + + // + // Returns true if DCC completes without error + // + return((DccRegs->DCCSTATUS.all & 3) == 2); + +} + +//***************************************************************************** +// +// ComputeCntSeedValid - Compute Counter seed values based on the frequency ratio of output +// clock vs reference clock & tolerance expected for the desired DCC +// +//***************************************************************************** +void ComputeCntrSeedValue(Uint32 base, float fclk1_0ratio, Uint32 tolerance) +{ + Uint32 window, dccCounterSeed0, dccValidSeed0, dccCounterSeed1, total_error; + volatile struct DCC_REGS *DccRegs; + + if(fclk1_0ratio >= 1U) + { + // + // Setting Counter0 & Valid Seed Value with expected tolerance + // Total error is 12 + // + window = (12U * 100U) / tolerance; + dccCounterSeed0 = window - 12U; + dccValidSeed0 = 24U; + + } + else + { + total_error = (((Uint32)2U / fclk1_0ratio) + (Uint32)10U); + + window = ((total_error * 100U)/ tolerance); + + // + // Setting Counter0 & Valid Seed Value with expected tolerance + // + dccCounterSeed0 = window - total_error; + dccValidSeed0 = (Uint32)2U * total_error; + + } + + // + // Multiplying Counter-0 window with PLL Integer Multiplier + // + dccCounterSeed1 = window * fclk1_0ratio; + + // + // Assigning DCC for PLL validation + // + if(base == SYSCTL_DCC_BASE0) + DccRegs = &Dcc0Regs; + else if(base == SYSCTL_DCC_BASE1) + DccRegs = &Dcc1Regs; + else if(base == SYSCTL_DCC_BASE2) + DccRegs = &Dcc2Regs; + else + ESTOP0; // Invalid DCC selected + + // + // Configure COUNTER-0, COUNTER-1 & Valid Window + // + DccRegs->DCCCNTSEED0.bit.COUNTSEED0 = dccCounterSeed0; // Loaded Counter0 Value + DccRegs->DCCVALIDSEED0.bit.VALIDSEED = dccValidSeed0; // Loaded Valid Value + DccRegs->DCCCNTSEED1.bit.COUNTSEED1 = dccCounterSeed1; // Loaded Counter1 Value +} +#endif + +// +// End of File +// + diff --git a/i2c_ex1_master/f2838x_usdelay.asm b/i2c_ex1_master/f2838x_usdelay.asm new file mode 100644 index 0000000..a29cb5c --- /dev/null +++ b/i2c_ex1_master/f2838x_usdelay.asm @@ -0,0 +1,108 @@ +;//########################################################################### +;// +;// FILE: f2838x_usdelay.asm +;// +;// TITLE: Simple delay function +;// +;// DESCRIPTION: +;// This is a simple delay function that can be used to insert a specified +;// delay into code. +;// This function is only accurate if executed from internal zero-waitstate +;// SARAM. If it is executed from waitstate memory then the delay will be +;// longer then specified. +;// To use this function: +;// 1 - update the CPU clock speed in the f2838x_examples.h +;// file. For example: +;// #define CPU_RATE 6.667L // for a 150MHz CPU clock speed +;// 2 - Call this function by using the DELAY_US(A) macro +;// that is defined in the f2838x_device.h file. This macro +;// will convert the number of microseconds specified +;// into a loop count for use with this function. +;// This count will be based on the CPU frequency you specify. +;// 3 - For the most accurate delay +;// - Execute this function in 0 waitstate RAM. +;// - Disable interrupts before calling the function +;// If you do not disable interrupts, then think of +;// this as an "at least" delay function as the actual +;// delay may be longer. +;// The C assembly call from the DELAY_US(time) macro will +;// look as follows: +;// extern void Delay(long LoopCount); +;// MOV AL,#LowLoopCount +;// MOV AH,#HighLoopCount +;// LCR _Delay +;// Or as follows (if count is less then 16-bits): +;// MOV ACC,#LoopCount +;// LCR _Delay +;// +;//########################################################################### +;// +;// +;// $Copyright: +;// Copyright (C) 2022 Texas Instruments Incorporated - http://www.ti.com +;// +;// Redistribution and use in source and binary forms, with or without +;// modification, are permitted provided that the following conditions +;// are met: +;// +;// Redistributions of source code must retain the above copyright +;// notice, this list of conditions and the following disclaimer. +;// +;// Redistributions in binary form must reproduce the above copyright +;// notice, this list of conditions and the following disclaimer in the +;// documentation and/or other materials provided with the +;// distribution. +;// +;// Neither the name of Texas Instruments Incorporated nor the names of +;// its contributors may be used to endorse or promote products derived +;// from this software without specific prior written permission. +;// +;// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +;// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +;// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +;// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +;// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +;// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +;// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +;// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +;// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +;// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +;// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +;// $ +;//########################################################################### + + .if __TI_EABI__ + .asg F28x_usDelay, _F28x_usDelay + .endif + .def _F28x_usDelay + + .cdecls LIST ;;Used to populate __TI_COMPILER_VERSION__ macro + %{ + %} + + .if __TI_COMPILER_VERSION__ + .if __TI_COMPILER_VERSION__ >= 15009000 + .sect ".TI.ramfunc" ;;Used with compiler v15.9.0 and newer + .else + .sect "ramfuncs" ;;Used with compilers older than v15.9.0 + .endif + .endif + + .global __F28x_usDelay +_F28x_usDelay: + SUB ACC,#1 + BF _F28x_usDelay,GEQ ;; Loop if ACC >= 0 + LRETR + +;There is a 9/10 cycle overhead and each loop +;takes five cycles. The LoopCount is given by +;the following formula: +; DELAY_CPU_CYCLES = 9 + 5*LoopCount +; LoopCount = (DELAY_CPU_CYCLES - 9) / 5 +; The macro DELAY_US(A) performs this calculation for you +; +; + +;// +;// End of file +;// diff --git a/i2c_ex1_master/fonts.c b/i2c_ex1_master/fonts.c new file mode 100644 index 0000000..78b2b66 --- /dev/null +++ b/i2c_ex1_master/fonts.c @@ -0,0 +1,345 @@ +/** + * original author: Tilen Majerle + * modification for STM32f10x: Alexander Lutsai + + ---------------------------------------------------------------------- + Copyright (C) Alexander Lutsai, 2016 + Copyright (C) Tilen Majerle, 2015 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + ---------------------------------------------------------------------- + */ +#include "fonts.h" + +const uint16_t Font7x10 [] = { +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // sp +0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0000, // ! +0x2800, 0x2800, 0x2800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // " +0x2400, 0x2400, 0x7C00, 0x2400, 0x4800, 0x7C00, 0x4800, 0x4800, 0x0000, 0x0000, // # +0x3800, 0x5400, 0x5000, 0x3800, 0x1400, 0x5400, 0x5400, 0x3800, 0x1000, 0x0000, // $ +0x2000, 0x5400, 0x5800, 0x3000, 0x2800, 0x5400, 0x1400, 0x0800, 0x0000, 0x0000, // % +0x1000, 0x2800, 0x2800, 0x1000, 0x3400, 0x4800, 0x4800, 0x3400, 0x0000, 0x0000, // & +0x1000, 0x1000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ' +0x0800, 0x1000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x2000, 0x1000, 0x0800, // ( +0x2000, 0x1000, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x1000, 0x2000, // ) +0x1000, 0x3800, 0x1000, 0x2800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // * +0x0000, 0x0000, 0x1000, 0x1000, 0x7C00, 0x1000, 0x1000, 0x0000, 0x0000, 0x0000, // + +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x1000, 0x1000, // , +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3800, 0x0000, 0x0000, 0x0000, 0x0000, // - +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, // . +0x0800, 0x0800, 0x1000, 0x1000, 0x1000, 0x1000, 0x2000, 0x2000, 0x0000, 0x0000, // / +0x3800, 0x4400, 0x4400, 0x5400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 0 +0x1000, 0x3000, 0x5000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // 1 +0x3800, 0x4400, 0x4400, 0x0400, 0x0800, 0x1000, 0x2000, 0x7C00, 0x0000, 0x0000, // 2 +0x3800, 0x4400, 0x0400, 0x1800, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 3 +0x0800, 0x1800, 0x2800, 0x2800, 0x4800, 0x7C00, 0x0800, 0x0800, 0x0000, 0x0000, // 4 +0x7C00, 0x4000, 0x4000, 0x7800, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 5 +0x3800, 0x4400, 0x4000, 0x7800, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 6 +0x7C00, 0x0400, 0x0800, 0x1000, 0x1000, 0x2000, 0x2000, 0x2000, 0x0000, 0x0000, // 7 +0x3800, 0x4400, 0x4400, 0x3800, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // 8 +0x3800, 0x4400, 0x4400, 0x4400, 0x3C00, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // 9 +0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, // : +0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x1000, 0x1000, 0x1000, // ; +0x0000, 0x0000, 0x0C00, 0x3000, 0x4000, 0x3000, 0x0C00, 0x0000, 0x0000, 0x0000, // < +0x0000, 0x0000, 0x0000, 0x7C00, 0x0000, 0x7C00, 0x0000, 0x0000, 0x0000, 0x0000, // = +0x0000, 0x0000, 0x6000, 0x1800, 0x0400, 0x1800, 0x6000, 0x0000, 0x0000, 0x0000, // > +0x3800, 0x4400, 0x0400, 0x0800, 0x1000, 0x1000, 0x0000, 0x1000, 0x0000, 0x0000, // ? +0x3800, 0x4400, 0x4C00, 0x5400, 0x5C00, 0x4000, 0x4000, 0x3800, 0x0000, 0x0000, // @ +0x1000, 0x2800, 0x2800, 0x2800, 0x2800, 0x7C00, 0x4400, 0x4400, 0x0000, 0x0000, // A +0x7800, 0x4400, 0x4400, 0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x0000, 0x0000, // B +0x3800, 0x4400, 0x4000, 0x4000, 0x4000, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // C +0x7000, 0x4800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4800, 0x7000, 0x0000, 0x0000, // D +0x7C00, 0x4000, 0x4000, 0x7C00, 0x4000, 0x4000, 0x4000, 0x7C00, 0x0000, 0x0000, // E +0x7C00, 0x4000, 0x4000, 0x7800, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // F +0x3800, 0x4400, 0x4000, 0x4000, 0x5C00, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // G +0x4400, 0x4400, 0x4400, 0x7C00, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // H +0x3800, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x3800, 0x0000, 0x0000, // I +0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // J +0x4400, 0x4800, 0x5000, 0x6000, 0x5000, 0x4800, 0x4800, 0x4400, 0x0000, 0x0000, // K +0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, 0x7C00, 0x0000, 0x0000, // L +0x4400, 0x6C00, 0x6C00, 0x5400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // M +0x4400, 0x6400, 0x6400, 0x5400, 0x5400, 0x4C00, 0x4C00, 0x4400, 0x0000, 0x0000, // N +0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // O +0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // P +0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x5400, 0x3800, 0x0400, 0x0000, // Q +0x7800, 0x4400, 0x4400, 0x4400, 0x7800, 0x4800, 0x4800, 0x4400, 0x0000, 0x0000, // R +0x3800, 0x4400, 0x4000, 0x3000, 0x0800, 0x0400, 0x4400, 0x3800, 0x0000, 0x0000, // S +0x7C00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // T +0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // U +0x4400, 0x4400, 0x4400, 0x2800, 0x2800, 0x2800, 0x1000, 0x1000, 0x0000, 0x0000, // V +0x4400, 0x4400, 0x5400, 0x5400, 0x5400, 0x6C00, 0x2800, 0x2800, 0x0000, 0x0000, // W +0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x2800, 0x2800, 0x4400, 0x0000, 0x0000, // X +0x4400, 0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // Y +0x7C00, 0x0400, 0x0800, 0x1000, 0x1000, 0x2000, 0x4000, 0x7C00, 0x0000, 0x0000, // Z +0x1800, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1800, // [ +0x2000, 0x2000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800, 0x0000, 0x0000, /* \ */ +0x3000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x3000, // ] +0x1000, 0x2800, 0x2800, 0x4400, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ^ +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFE00, // _ +0x2000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ` +0x0000, 0x0000, 0x3800, 0x4400, 0x3C00, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // a +0x4000, 0x4000, 0x5800, 0x6400, 0x4400, 0x4400, 0x6400, 0x5800, 0x0000, 0x0000, // b +0x0000, 0x0000, 0x3800, 0x4400, 0x4000, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // c +0x0400, 0x0400, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // d +0x0000, 0x0000, 0x3800, 0x4400, 0x7C00, 0x4000, 0x4400, 0x3800, 0x0000, 0x0000, // e +0x0C00, 0x1000, 0x7C00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // f +0x0000, 0x0000, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0400, 0x7800, // g +0x4000, 0x4000, 0x5800, 0x6400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // h +0x1000, 0x0000, 0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // i +0x1000, 0x0000, 0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0xE000, // j +0x4000, 0x4000, 0x4800, 0x5000, 0x6000, 0x5000, 0x4800, 0x4400, 0x0000, 0x0000, // k +0x7000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0000, 0x0000, // l +0x0000, 0x0000, 0x7800, 0x5400, 0x5400, 0x5400, 0x5400, 0x5400, 0x0000, 0x0000, // m +0x0000, 0x0000, 0x5800, 0x6400, 0x4400, 0x4400, 0x4400, 0x4400, 0x0000, 0x0000, // n +0x0000, 0x0000, 0x3800, 0x4400, 0x4400, 0x4400, 0x4400, 0x3800, 0x0000, 0x0000, // o +0x0000, 0x0000, 0x5800, 0x6400, 0x4400, 0x4400, 0x6400, 0x5800, 0x4000, 0x4000, // p +0x0000, 0x0000, 0x3400, 0x4C00, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0400, 0x0400, // q +0x0000, 0x0000, 0x5800, 0x6400, 0x4000, 0x4000, 0x4000, 0x4000, 0x0000, 0x0000, // r +0x0000, 0x0000, 0x3800, 0x4400, 0x3000, 0x0800, 0x4400, 0x3800, 0x0000, 0x0000, // s +0x2000, 0x2000, 0x7800, 0x2000, 0x2000, 0x2000, 0x2000, 0x1800, 0x0000, 0x0000, // t +0x0000, 0x0000, 0x4400, 0x4400, 0x4400, 0x4400, 0x4C00, 0x3400, 0x0000, 0x0000, // u +0x0000, 0x0000, 0x4400, 0x4400, 0x2800, 0x2800, 0x2800, 0x1000, 0x0000, 0x0000, // v +0x0000, 0x0000, 0x5400, 0x5400, 0x5400, 0x6C00, 0x2800, 0x2800, 0x0000, 0x0000, // w +0x0000, 0x0000, 0x4400, 0x2800, 0x1000, 0x1000, 0x2800, 0x4400, 0x0000, 0x0000, // x +0x0000, 0x0000, 0x4400, 0x4400, 0x2800, 0x2800, 0x1000, 0x1000, 0x1000, 0x6000, // y +0x0000, 0x0000, 0x7C00, 0x0800, 0x1000, 0x2000, 0x4000, 0x7C00, 0x0000, 0x0000, // z +0x1800, 0x1000, 0x1000, 0x1000, 0x2000, 0x2000, 0x1000, 0x1000, 0x1000, 0x1800, // { +0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, // | +0x3000, 0x1000, 0x1000, 0x1000, 0x0800, 0x0800, 0x1000, 0x1000, 0x1000, 0x3000, // } +0x0000, 0x0000, 0x0000, 0x7400, 0x4C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ~ +}; +/* +const uint16_t Font11x18 [] = { +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // sp +0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // ! +0x0000, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // " +0x0000, 0x1980, 0x1980, 0x1980, 0x1980, 0x7FC0, 0x7FC0, 0x1980, 0x3300, 0x7FC0, 0x7FC0, 0x3300, 0x3300, 0x3300, 0x3300, 0x0000, 0x0000, 0x0000, // # +0x0000, 0x1E00, 0x3F00, 0x7580, 0x6580, 0x7400, 0x3C00, 0x1E00, 0x0700, 0x0580, 0x6580, 0x6580, 0x7580, 0x3F00, 0x1E00, 0x0400, 0x0400, 0x0000, // $ +0x0000, 0x7000, 0xD800, 0xD840, 0xD8C0, 0xD980, 0x7300, 0x0600, 0x0C00, 0x1B80, 0x36C0, 0x66C0, 0x46C0, 0x06C0, 0x0380, 0x0000, 0x0000, 0x0000, // % +0x0000, 0x1E00, 0x3F00, 0x3300, 0x3300, 0x3300, 0x1E00, 0x0C00, 0x3CC0, 0x66C0, 0x6380, 0x6180, 0x6380, 0x3EC0, 0x1C80, 0x0000, 0x0000, 0x0000, // & +0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ' +0x0080, 0x0100, 0x0300, 0x0600, 0x0600, 0x0400, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0400, 0x0600, 0x0600, 0x0300, 0x0100, 0x0080, // ( +0x2000, 0x1000, 0x1800, 0x0C00, 0x0C00, 0x0400, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0400, 0x0C00, 0x0C00, 0x1800, 0x1000, 0x2000, // ) +0x0000, 0x0C00, 0x2D00, 0x3F00, 0x1E00, 0x3300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // * +0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0xFFC0, 0xFFC0, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // + +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0400, 0x0400, 0x0800, // , +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x1E00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // - +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // . +0x0000, 0x0300, 0x0300, 0x0300, 0x0600, 0x0600, 0x0600, 0x0600, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000, 0x0000, // / +0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6D80, 0x6D80, 0x6180, 0x6180, 0x6180, 0x3300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 0 +0x0000, 0x0600, 0x0E00, 0x1E00, 0x3600, 0x2600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // 1 +0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6180, 0x0180, 0x0300, 0x0600, 0x0C00, 0x1800, 0x3000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // 2 +0x0000, 0x1C00, 0x3E00, 0x6300, 0x6300, 0x0300, 0x0E00, 0x0E00, 0x0300, 0x0180, 0x0180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 3 +0x0000, 0x0600, 0x0E00, 0x0E00, 0x1E00, 0x1E00, 0x1600, 0x3600, 0x3600, 0x6600, 0x7F80, 0x7F80, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // 4 +0x0000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6E00, 0x7F00, 0x6380, 0x0180, 0x0180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 5 +0x0000, 0x1E00, 0x3F00, 0x3380, 0x6180, 0x6000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x3380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 6 +0x0000, 0x7F80, 0x7F80, 0x0180, 0x0300, 0x0300, 0x0600, 0x0600, 0x0C00, 0x0C00, 0x0C00, 0x0800, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000, 0x0000, // 7 +0x0000, 0x1E00, 0x3F00, 0x6380, 0x6180, 0x6180, 0x2100, 0x1E00, 0x3F00, 0x6180, 0x6180, 0x6180, 0x6180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 8 +0x0000, 0x1E00, 0x3F00, 0x7300, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x6180, 0x7300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // 9 +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // : +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C00, 0x0C00, 0x0400, 0x0400, 0x0800, // ; +0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x0380, 0x0E00, 0x3800, 0x6000, 0x3800, 0x0E00, 0x0380, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // < +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // = +0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x7000, 0x1C00, 0x0700, 0x0180, 0x0700, 0x1C00, 0x7000, 0x4000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // > +0x0000, 0x1F00, 0x3F80, 0x71C0, 0x60C0, 0x00C0, 0x01C0, 0x0380, 0x0700, 0x0E00, 0x0C00, 0x0C00, 0x0000, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // ? +0x0000, 0x1E00, 0x3F00, 0x3180, 0x7180, 0x6380, 0x6F80, 0x6D80, 0x6D80, 0x6F80, 0x6780, 0x6000, 0x3200, 0x3E00, 0x1C00, 0x0000, 0x0000, 0x0000, // @ +0x0000, 0x0E00, 0x0E00, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x3180, 0x3180, 0x3F80, 0x3F80, 0x3180, 0x60C0, 0x60C0, 0x60C0, 0x0000, 0x0000, 0x0000, // A +0x0000, 0x7C00, 0x7E00, 0x6300, 0x6300, 0x6300, 0x6300, 0x7E00, 0x7E00, 0x6300, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x0000, 0x0000, 0x0000, // B +0x0000, 0x1E00, 0x3F00, 0x3180, 0x6180, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6180, 0x3180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // C +0x0000, 0x7C00, 0x7F00, 0x6300, 0x6380, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6300, 0x6300, 0x7E00, 0x7C00, 0x0000, 0x0000, 0x0000, // D +0x0000, 0x7F80, 0x7F80, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // E +0x0000, 0x7F80, 0x7F80, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F00, 0x7F00, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, // F +0x0000, 0x1E00, 0x3F00, 0x3180, 0x6180, 0x6000, 0x6000, 0x6000, 0x6380, 0x6380, 0x6180, 0x6180, 0x3180, 0x3F80, 0x1E00, 0x0000, 0x0000, 0x0000, // G +0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x7F80, 0x7F80, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // H +0x0000, 0x3F00, 0x3F00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x3F00, 0x3F00, 0x0000, 0x0000, 0x0000, // I +0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x0180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // J +0x0000, 0x60C0, 0x6180, 0x6300, 0x6600, 0x6600, 0x6C00, 0x7800, 0x7C00, 0x6600, 0x6600, 0x6300, 0x6180, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // K +0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // L +0x0000, 0x71C0, 0x71C0, 0x7BC0, 0x7AC0, 0x6AC0, 0x6AC0, 0x6EC0, 0x64C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x60C0, 0x0000, 0x0000, 0x0000, // M +0x0000, 0x7180, 0x7180, 0x7980, 0x7980, 0x7980, 0x6D80, 0x6D80, 0x6D80, 0x6580, 0x6780, 0x6780, 0x6780, 0x6380, 0x6380, 0x0000, 0x0000, 0x0000, // N +0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x3300, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // O +0x0000, 0x7E00, 0x7F00, 0x6380, 0x6180, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, // P +0x0000, 0x1E00, 0x3F00, 0x3300, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6580, 0x6780, 0x3300, 0x3F80, 0x1E40, 0x0000, 0x0000, 0x0000, // Q +0x0000, 0x7E00, 0x7F00, 0x6380, 0x6180, 0x6180, 0x6380, 0x7F00, 0x7E00, 0x6600, 0x6300, 0x6300, 0x6180, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // R +0x0000, 0x0E00, 0x1F00, 0x3180, 0x3180, 0x3000, 0x3800, 0x1E00, 0x0700, 0x0380, 0x6180, 0x6180, 0x3180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // S +0x0000, 0xFFC0, 0xFFC0, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // T +0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // U +0x0000, 0x60C0, 0x60C0, 0x60C0, 0x3180, 0x3180, 0x3180, 0x1B00, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0E00, 0x0400, 0x0000, 0x0000, 0x0000, // V +0x0000, 0xC0C0, 0xC0C0, 0xC0C0, 0xC0C0, 0xC0C0, 0xCCC0, 0x4C80, 0x4C80, 0x5E80, 0x5280, 0x5280, 0x7380, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // W +0x0000, 0xC0C0, 0x6080, 0x6180, 0x3300, 0x3B00, 0x1E00, 0x0C00, 0x0C00, 0x1E00, 0x1F00, 0x3B00, 0x7180, 0x6180, 0xC0C0, 0x0000, 0x0000, 0x0000, // X +0x0000, 0xC0C0, 0x6180, 0x6180, 0x3300, 0x3300, 0x1E00, 0x1E00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // Y +0x0000, 0x3F80, 0x3F80, 0x0180, 0x0300, 0x0300, 0x0600, 0x0C00, 0x0C00, 0x1800, 0x1800, 0x3000, 0x6000, 0x7F80, 0x7F80, 0x0000, 0x0000, 0x0000, // Z +0x0F00, 0x0F00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0F00, 0x0F00, // [ +0x0000, 0x1800, 0x1800, 0x1800, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0300, 0x0300, 0x0300, 0x0000, 0x0000, 0x0000, /* \ +0x1E00, 0x1E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x1E00, 0x1E00, // ] +0x0000, 0x0C00, 0x0C00, 0x1E00, 0x1200, 0x3300, 0x3300, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ^ +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFE0, 0x0000, // _ +0x0000, 0x3800, 0x1800, 0x0C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ` +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1F00, 0x3F80, 0x6180, 0x0180, 0x1F80, 0x3F80, 0x6180, 0x6380, 0x7F80, 0x38C0, 0x0000, 0x0000, 0x0000, // a +0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x7F00, 0x6E00, 0x0000, 0x0000, 0x0000, // b +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6000, 0x6000, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // c +0x0000, 0x0180, 0x0180, 0x0180, 0x0180, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0000, 0x0000, 0x0000, // d +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7300, 0x6180, 0x7F80, 0x7F80, 0x6000, 0x7180, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // e +0x0000, 0x07C0, 0x0FC0, 0x0C00, 0x0C00, 0x7F80, 0x7F80, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0000, 0x0000, 0x0000, // f +0x0000, 0x0000, 0x0000, 0x0000, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x6380, 0x7F00, 0x3E00, // g +0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6F00, 0x7F80, 0x7180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // h +0x0000, 0x0600, 0x0600, 0x0000, 0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // i +0x0600, 0x0600, 0x0000, 0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x4600, 0x7E00, 0x3C00, // j +0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6180, 0x6300, 0x6600, 0x6C00, 0x7C00, 0x7600, 0x6300, 0x6300, 0x6180, 0x60C0, 0x0000, 0x0000, 0x0000, // k +0x0000, 0x3E00, 0x3E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0000, 0x0000, 0x0000, // l +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD80, 0xFFC0, 0xCEC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0xCCC0, 0x0000, 0x0000, 0x0000, // m +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6F00, 0x7F80, 0x7180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x0000, 0x0000, 0x0000, // n +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F00, 0x1E00, 0x0000, 0x0000, 0x0000, // o +0x0000, 0x0000, 0x0000, 0x0000, 0x6E00, 0x7F00, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x7F00, 0x6E00, 0x6000, 0x6000, 0x6000, 0x6000, // p +0x0000, 0x0000, 0x0000, 0x0000, 0x1D80, 0x3F80, 0x7380, 0x6180, 0x6180, 0x6180, 0x6180, 0x7380, 0x3F80, 0x1D80, 0x0180, 0x0180, 0x0180, 0x0180, // q +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6700, 0x3F80, 0x3900, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000, 0x0000, // r +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1E00, 0x3F80, 0x6180, 0x6000, 0x7F00, 0x3F80, 0x0180, 0x6180, 0x7F00, 0x1E00, 0x0000, 0x0000, 0x0000, // s +0x0000, 0x0000, 0x0800, 0x1800, 0x1800, 0x7F00, 0x7F00, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1F80, 0x0F80, 0x0000, 0x0000, 0x0000, // t +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6180, 0x6380, 0x7F80, 0x3D80, 0x0000, 0x0000, 0x0000, // u +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x60C0, 0x3180, 0x3180, 0x3180, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0600, 0x0000, 0x0000, 0x0000, // v +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD80, 0xDD80, 0xDD80, 0x5500, 0x5500, 0x5500, 0x7700, 0x7700, 0x2200, 0x2200, 0x0000, 0x0000, 0x0000, // w +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x3300, 0x3300, 0x1E00, 0x0C00, 0x0C00, 0x1E00, 0x3300, 0x3300, 0x6180, 0x0000, 0x0000, 0x0000, // x +0x0000, 0x0000, 0x0000, 0x0000, 0x6180, 0x6180, 0x3180, 0x3300, 0x3300, 0x1B00, 0x1B00, 0x1B00, 0x0E00, 0x0E00, 0x0E00, 0x1C00, 0x7C00, 0x7000, // y +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7FC0, 0x7FC0, 0x0180, 0x0300, 0x0600, 0x0C00, 0x1800, 0x3000, 0x7FC0, 0x7FC0, 0x0000, 0x0000, 0x0000, // z +0x0380, 0x0780, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0E00, 0x1C00, 0x1C00, 0x0E00, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0780, 0x0380, // { +0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, 0x0600, // | +0x3800, 0x3C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0E00, 0x0700, 0x0700, 0x0E00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x0C00, 0x3C00, 0x3800, // } +0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3880, 0x7F80, 0x4700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, // ~ +}; + +const uint16_t Font16x26 [] = { +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [ ] +0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03C0,0x03C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [!] +0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x1E3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = ["] +0x01CE,0x03CE,0x03DE,0x039E,0x039C,0x079C,0x3FFF,0x7FFF,0x0738,0x0F38,0x0F78,0x0F78,0x0E78,0xFFFF,0xFFFF,0x1EF0,0x1CF0,0x1CE0,0x3CE0,0x3DE0,0x39E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [#] +0x03FC,0x0FFE,0x1FEE,0x1EE0,0x1EE0,0x1EE0,0x1EE0,0x1FE0,0x0FE0,0x07E0,0x03F0,0x01FC,0x01FE,0x01FE,0x01FE,0x01FE,0x01FE,0x01FE,0x3DFE,0x3FFC,0x0FF0,0x01E0,0x01E0,0x0000,0x0000,0x0000, // Ascii = [$] +0x3E03,0xF707,0xE78F,0xE78E,0xE39E,0xE3BC,0xE7B8,0xE7F8,0xF7F0,0x3FE0,0x01C0,0x03FF,0x07FF,0x07F3,0x0FF3,0x1EF3,0x3CF3,0x38F3,0x78F3,0xF07F,0xE03F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [%] +0x07E0,0x0FF8,0x0F78,0x1F78,0x1F78,0x1F78,0x0F78,0x0FF0,0x0FE0,0x1F80,0x7FC3,0xFBC3,0xF3E7,0xF1F7,0xF0F7,0xF0FF,0xF07F,0xF83E,0x7C7F,0x3FFF,0x1FEF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [&] +0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03C0,0x01C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = ['] +0x003F,0x007C,0x01F0,0x01E0,0x03C0,0x07C0,0x0780,0x0780,0x0F80,0x0F00,0x0F00,0x0F00,0x0F00,0x0F00,0x0F00,0x0F80,0x0780,0x0780,0x07C0,0x03C0,0x01E0,0x01F0,0x007C,0x003F,0x000F,0x0000, // Ascii = [(] +0x7E00,0x1F00,0x07C0,0x03C0,0x01E0,0x01F0,0x00F0,0x00F0,0x00F8,0x0078,0x0078,0x0078,0x0078,0x0078,0x0078,0x00F8,0x00F0,0x00F0,0x01F0,0x01E0,0x03C0,0x07C0,0x1F00,0x7E00,0x7800,0x0000, // Ascii = [)] +0x03E0,0x03C0,0x01C0,0x39CE,0x3FFF,0x3F7F,0x0320,0x0370,0x07F8,0x0F78,0x1F3C,0x0638,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [*] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0xFFFF,0xFFFF,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [+] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x01E0,0x01E0,0x01E0,0x01C0,0x0380, // Ascii = [,] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3FFE,0x3FFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [-] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [.] +0x000F,0x000F,0x001E,0x001E,0x003C,0x003C,0x0078,0x0078,0x00F0,0x00F0,0x01E0,0x01E0,0x03C0,0x03C0,0x0780,0x0780,0x0F00,0x0F00,0x1E00,0x1E00,0x3C00,0x3C00,0x7800,0x7800,0xF000,0x0000, // Ascii = [/] +0x07F0,0x0FF8,0x1F7C,0x3E3E,0x3C1E,0x7C1F,0x7C1F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x7C1F,0x7C1F,0x3C1E,0x3E3E,0x1F7C,0x0FF8,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [0] +0x00F0,0x07F0,0x3FF0,0x3FF0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [1] +0x0FE0,0x3FF8,0x3C7C,0x003C,0x003E,0x003E,0x003E,0x003C,0x003C,0x007C,0x00F8,0x01F0,0x03E0,0x07C0,0x0780,0x0F00,0x1E00,0x3E00,0x3C00,0x3FFE,0x3FFE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [2] +0x0FF0,0x1FF8,0x1C7C,0x003E,0x003E,0x003E,0x003C,0x003C,0x00F8,0x0FF0,0x0FF8,0x007C,0x003E,0x001E,0x001E,0x001E,0x001E,0x003E,0x1C7C,0x1FF8,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [3] +0x0078,0x00F8,0x00F8,0x01F8,0x03F8,0x07F8,0x07F8,0x0F78,0x1E78,0x1E78,0x3C78,0x7878,0x7878,0xFFFF,0xFFFF,0x0078,0x0078,0x0078,0x0078,0x0078,0x0078,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [4] +0x1FFC,0x1FFC,0x1FFC,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1FE0,0x1FF8,0x00FC,0x007C,0x003E,0x003E,0x001E,0x003E,0x003E,0x003C,0x1C7C,0x1FF8,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [5] +0x01FC,0x07FE,0x0F8E,0x1F00,0x1E00,0x3E00,0x3C00,0x3C00,0x3DF8,0x3FFC,0x7F3E,0x7E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3E0F,0x1E1F,0x1F3E,0x0FFC,0x03F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [6] +0x3FFF,0x3FFF,0x3FFF,0x000F,0x001E,0x001E,0x003C,0x0038,0x0078,0x00F0,0x00F0,0x01E0,0x01E0,0x03C0,0x03C0,0x0780,0x0F80,0x0F80,0x0F00,0x1F00,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [7] +0x07F8,0x0FFC,0x1F3E,0x1E1E,0x3E1E,0x3E1E,0x1E1E,0x1F3C,0x0FF8,0x07F0,0x0FF8,0x1EFC,0x3E3E,0x3C1F,0x7C1F,0x7C0F,0x7C0F,0x3C1F,0x3F3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [8] +0x07F0,0x0FF8,0x1E7C,0x3C3E,0x3C1E,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x3C1F,0x3E3F,0x1FFF,0x07EF,0x001F,0x001E,0x001E,0x003E,0x003C,0x38F8,0x3FF0,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [9] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [:] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03E0,0x03E0,0x03E0,0x03E0,0x01E0,0x01E0,0x01E0,0x03C0,0x0380, // Ascii = [;] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0003,0x000F,0x003F,0x00FC,0x03F0,0x0FC0,0x3F00,0xFE00,0x3F00,0x0FC0,0x03F0,0x00FC,0x003F,0x000F,0x0003,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [<] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [=] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xE000,0xF800,0x7E00,0x1F80,0x07E0,0x01F8,0x007E,0x001F,0x007E,0x01F8,0x07E0,0x1F80,0x7E00,0xF800,0xE000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [>] +0x1FF0,0x3FFC,0x383E,0x381F,0x381F,0x001E,0x001E,0x003C,0x0078,0x00F0,0x01E0,0x03C0,0x03C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x07C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [?] +0x03F8,0x0FFE,0x1F1E,0x3E0F,0x3C7F,0x78FF,0x79EF,0x73C7,0xF3C7,0xF38F,0xF38F,0xF38F,0xF39F,0xF39F,0x73FF,0x7BFF,0x79F7,0x3C00,0x1F1C,0x0FFC,0x03F8,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [@] +0x0000,0x0000,0x0000,0x03E0,0x03E0,0x07F0,0x07F0,0x07F0,0x0F78,0x0F78,0x0E7C,0x1E3C,0x1E3C,0x3C3E,0x3FFE,0x3FFF,0x781F,0x780F,0xF00F,0xF007,0xF007,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [A] +0x0000,0x0000,0x0000,0x3FF8,0x3FFC,0x3C3E,0x3C1E,0x3C1E,0x3C1E,0x3C3E,0x3C7C,0x3FF0,0x3FF8,0x3C7E,0x3C1F,0x3C1F,0x3C0F,0x3C0F,0x3C1F,0x3FFE,0x3FF8,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [B] +0x0000,0x0000,0x0000,0x01FF,0x07FF,0x1F87,0x3E00,0x3C00,0x7C00,0x7800,0x7800,0x7800,0x7800,0x7800,0x7C00,0x7C00,0x3E00,0x3F00,0x1F83,0x07FF,0x01FF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [C] +0x0000,0x0000,0x0000,0x7FF0,0x7FFC,0x787E,0x781F,0x781F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x780F,0x781F,0x781E,0x787E,0x7FF8,0x7FE0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [D] +0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFE,0x3FFE,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [E] +0x0000,0x0000,0x0000,0x1FFF,0x1FFF,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1FFF,0x1FFF,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x1E00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [F] +0x0000,0x0000,0x0000,0x03FE,0x0FFF,0x1F87,0x3E00,0x7C00,0x7C00,0x7800,0xF800,0xF800,0xF87F,0xF87F,0x780F,0x7C0F,0x7C0F,0x3E0F,0x1F8F,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [G] +0x0000,0x0000,0x0000,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7FFF,0x7FFF,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x7C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [H] +0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [I] +0x0000,0x0000,0x0000,0x1FFC,0x1FFC,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x007C,0x0078,0x0078,0x38F8,0x3FF0,0x3FC0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [J] +0x0000,0x0000,0x0000,0x3C1F,0x3C1E,0x3C3C,0x3C78,0x3CF0,0x3DE0,0x3FE0,0x3FC0,0x3F80,0x3FC0,0x3FE0,0x3DF0,0x3CF0,0x3C78,0x3C7C,0x3C3E,0x3C1F,0x3C0F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [K] +0x0000,0x0000,0x0000,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3FFF,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [L] +0x0000,0x0000,0x0000,0xF81F,0xFC1F,0xFC1F,0xFE3F,0xFE3F,0xFE3F,0xFF7F,0xFF77,0xFF77,0xF7F7,0xF7E7,0xF3E7,0xF3E7,0xF3C7,0xF007,0xF007,0xF007,0xF007,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [M] +0x0000,0x0000,0x0000,0x7C0F,0x7C0F,0x7E0F,0x7F0F,0x7F0F,0x7F8F,0x7F8F,0x7FCF,0x7BEF,0x79EF,0x79FF,0x78FF,0x78FF,0x787F,0x783F,0x783F,0x781F,0x781F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [N] +0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x7C1F,0x780F,0x780F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0x780F,0x780F,0x7C1F,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [O] +0x0000,0x0000,0x0000,0x3FFC,0x3FFF,0x3E1F,0x3E0F,0x3E0F,0x3E0F,0x3E0F,0x3E1F,0x3E3F,0x3FFC,0x3FF0,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x3E00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [P] +0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x7C1F,0x780F,0x780F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0xF80F,0x780F,0x780F,0x7C1F,0x3E3E,0x1FFC,0x07F8,0x007C,0x003F,0x000F,0x0003,0x0000, // Ascii = [Q] +0x0000,0x0000,0x0000,0x3FF0,0x3FFC,0x3C7E,0x3C3E,0x3C1E,0x3C1E,0x3C3E,0x3C3C,0x3CFC,0x3FF0,0x3FE0,0x3DF0,0x3CF8,0x3C7C,0x3C3E,0x3C1E,0x3C1F,0x3C0F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [R] +0x0000,0x0000,0x0000,0x07FC,0x1FFE,0x3E0E,0x3C00,0x3C00,0x3C00,0x3E00,0x1FC0,0x0FF8,0x03FE,0x007F,0x001F,0x000F,0x000F,0x201F,0x3C3E,0x3FFC,0x1FF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [S] +0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [T] +0x0000,0x0000,0x0000,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x7C0F,0x3C1E,0x3C1E,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [U] +0x0000,0x0000,0x0000,0xF007,0xF007,0xF807,0x780F,0x7C0F,0x3C1E,0x3C1E,0x3E1E,0x1E3C,0x1F3C,0x1F78,0x0F78,0x0FF8,0x07F0,0x07F0,0x07F0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [V] +0x0000,0x0000,0x0000,0xE003,0xF003,0xF003,0xF007,0xF3E7,0xF3E7,0xF3E7,0x73E7,0x7BF7,0x7FF7,0x7FFF,0x7F7F,0x7F7F,0x7F7E,0x3F7E,0x3E3E,0x3E3E,0x3E3E,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [W] +0x0000,0x0000,0x0000,0xF807,0x7C0F,0x3E1E,0x3E3E,0x1F3C,0x0FF8,0x07F0,0x07E0,0x03E0,0x03E0,0x07F0,0x0FF8,0x0F7C,0x1E7C,0x3C3E,0x781F,0x780F,0xF00F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [X] +0x0000,0x0000,0x0000,0xF807,0x7807,0x7C0F,0x3C1E,0x3E1E,0x1F3C,0x0F78,0x0FF8,0x07F0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [Y] +0x0000,0x0000,0x0000,0x7FFF,0x7FFF,0x000F,0x001F,0x003E,0x007C,0x00F8,0x00F0,0x01E0,0x03E0,0x07C0,0x0F80,0x0F00,0x1E00,0x3E00,0x7C00,0x7FFF,0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [Z] +0x07FF,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x07FF,0x07FF,0x0000, // Ascii = [[] +0x7800,0x7800,0x3C00,0x3C00,0x1E00,0x1E00,0x0F00,0x0F00,0x0780,0x0780,0x03C0,0x03C0,0x01E0,0x01E0,0x00F0,0x00F0,0x0078,0x0078,0x003C,0x003C,0x001E,0x001E,0x000F,0x000F,0x0007,0x0000, // Ascii = [\] +0x7FF0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x00F0,0x7FF0,0x7FF0,0x0000, // Ascii = []] +0x00C0,0x01C0,0x01C0,0x03E0,0x03E0,0x07F0,0x07F0,0x0778,0x0F78,0x0F38,0x1E3C,0x1E3C,0x3C1E,0x3C1E,0x380F,0x780F,0x7807,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [^] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFFFF,0xFFFF,0x0000,0x0000,0x0000, // Ascii = [_] +0x00F0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [`] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0FF8,0x3FFC,0x3C7C,0x003E,0x003E,0x003E,0x07FE,0x1FFE,0x3E3E,0x7C3E,0x783E,0x7C3E,0x7C7E,0x3FFF,0x1FCF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [a] +0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3DF8,0x3FFE,0x3F3E,0x3E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C1F,0x3C1E,0x3F3E,0x3FFC,0x3BF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [b] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03FE,0x0FFF,0x1F87,0x3E00,0x3E00,0x3C00,0x7C00,0x7C00,0x7C00,0x3C00,0x3E00,0x3E00,0x1F87,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [c] +0x001F,0x001F,0x001F,0x001F,0x001F,0x001F,0x07FF,0x1FFF,0x3E3F,0x3C1F,0x7C1F,0x7C1F,0x7C1F,0x781F,0x781F,0x7C1F,0x7C1F,0x3C3F,0x3E7F,0x1FFF,0x0FDF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [d] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F8,0x0FFC,0x1F3E,0x3E1E,0x3C1F,0x7C1F,0x7FFF,0x7FFF,0x7C00,0x7C00,0x3C00,0x3E00,0x1F07,0x0FFF,0x03FE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [e] +0x01FF,0x03E1,0x03C0,0x07C0,0x07C0,0x07C0,0x7FFF,0x7FFF,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x07C0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [f] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,0x1FFF,0x3E7F,0x3C1F,0x7C1F,0x7C1F,0x781F,0x781F,0x781F,0x7C1F,0x7C1F,0x3C3F,0x3E7F,0x1FFF,0x0FDF,0x001E,0x001E,0x001E,0x387C,0x3FF8, // Ascii = [g] +0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3DFC,0x3FFE,0x3F9E,0x3F1F,0x3E1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [h] +0x01F0,0x01F0,0x0000,0x0000,0x0000,0x0000,0x7FE0,0x7FE0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [i] +0x00F8,0x00F8,0x0000,0x0000,0x0000,0x0000,0x3FF8,0x3FF8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F8,0x00F0,0x71F0,0x7FE0, // Ascii = [j] +0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00,0x3C1F,0x3C3E,0x3C7C,0x3CF8,0x3DF0,0x3DE0,0x3FC0,0x3FC0,0x3FE0,0x3DF0,0x3CF8,0x3C7C,0x3C3E,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [k] +0x7FF0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x01F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [l] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF79E,0xFFFF,0xFFFF,0xFFFF,0xFBE7,0xF9E7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0xF1C7,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [m] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3DFC,0x3FFE,0x3F9E,0x3F1F,0x3E1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x3C1F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [n] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07F0,0x1FFC,0x3E3E,0x3C1F,0x7C1F,0x780F,0x780F,0x780F,0x780F,0x780F,0x7C1F,0x3C1F,0x3E3E,0x1FFC,0x07F0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [o] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3DF8,0x3FFE,0x3F3E,0x3E1F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C0F,0x3C1F,0x3E1E,0x3F3E,0x3FFC,0x3FF8,0x3C00,0x3C00,0x3C00,0x3C00,0x3C00, // Ascii = [p] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EE,0x1FFE,0x3E7E,0x3C1E,0x7C1E,0x781E,0x781E,0x781E,0x781E,0x781E,0x7C1E,0x7C3E,0x3E7E,0x1FFE,0x0FDE,0x001E,0x001E,0x001E,0x001E,0x001E, // Ascii = [q] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x1F7F,0x1FFF,0x1FE7,0x1FC7,0x1F87,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x1F00,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [r] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x07FC,0x1FFE,0x1E0E,0x3E00,0x3E00,0x3F00,0x1FE0,0x07FC,0x00FE,0x003E,0x001E,0x001E,0x3C3E,0x3FFC,0x1FF0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [s] +0x0000,0x0000,0x0000,0x0780,0x0780,0x0780,0x7FFF,0x7FFF,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x0780,0x07C0,0x03FF,0x01FF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [t] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C1E,0x3C3E,0x3C7E,0x3EFE,0x1FFE,0x0FDE,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [u] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF007,0x780F,0x780F,0x3C1E,0x3C1E,0x3E1E,0x1E3C,0x1E3C,0x0F78,0x0F78,0x0FF0,0x07F0,0x07F0,0x03E0,0x03E0,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [v] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF003,0xF1E3,0xF3E3,0xF3E7,0xF3F7,0xF3F7,0x7FF7,0x7F77,0x7F7F,0x7F7F,0x7F7F,0x3E3E,0x3E3E,0x3E3E,0x3E3E,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [w] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7C0F,0x3E1E,0x3E3C,0x1F3C,0x0FF8,0x07F0,0x07F0,0x03E0,0x07F0,0x07F8,0x0FF8,0x1E7C,0x3E3E,0x3C1F,0x781F,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [x] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF807,0x780F,0x7C0F,0x3C1E,0x3C1E,0x1E3C,0x1E3C,0x1F3C,0x0F78,0x0FF8,0x07F0,0x07F0,0x03E0,0x03E0,0x03C0,0x03C0,0x03C0,0x0780,0x0F80,0x7F00, // Ascii = [y] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3FFF,0x3FFF,0x001F,0x003E,0x007C,0x00F8,0x01F0,0x03E0,0x07C0,0x0F80,0x1F00,0x1E00,0x3C00,0x7FFF,0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [z] +0x01FE,0x03E0,0x03C0,0x03C0,0x03C0,0x03C0,0x01E0,0x01E0,0x01E0,0x01C0,0x03C0,0x3F80,0x3F80,0x03C0,0x01C0,0x01E0,0x01E0,0x01E0,0x03C0,0x03C0,0x03C0,0x03C0,0x03E0,0x01FE,0x007E,0x0000, // Ascii = [{] +0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x01C0,0x0000, // Ascii = [|] +0x3FC0,0x03E0,0x01E0,0x01E0,0x01E0,0x01E0,0x01C0,0x03C0,0x03C0,0x01C0,0x01E0,0x00FE,0x00FE,0x01E0,0x01C0,0x03C0,0x03C0,0x01C0,0x01E0,0x01E0,0x01E0,0x01E0,0x03E0,0x3FC0,0x3F00,0x0000, // Ascii = [}] +0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3F07,0x7FC7,0x73E7,0xF1FF,0xF07E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, // Ascii = [~] +}; +*/ + +FontDef_t Font_7x10 = { + 7, + 10, + Font7x10 +}; +/* +FontDef_t Font_11x18 = { + 11, + 18, + Font11x18 +}; + +FontDef_t Font_16x26 = { + 16, + 26, + Font16x26 +};*/ + +char* FONTS_GetStringSize(char* str, FONTS_SIZE_t* SizeStruct, FontDef_t* Font) { + /* Fill settings */ + SizeStruct->Height = Font->FontHeight; + SizeStruct->Length = Font->FontWidth * strlen(str); + + /* Return pointer */ + return str; +} diff --git a/i2c_ex1_master/fonts.h b/i2c_ex1_master/fonts.h new file mode 100644 index 0000000..b8aa071 --- /dev/null +++ b/i2c_ex1_master/fonts.h @@ -0,0 +1,132 @@ +/** + * original author: Tilen Majerle + * modification for STM32f10x: Alexander Lutsai + + ---------------------------------------------------------------------- + Copyright (C) Alexander Lutsai, 2016 + Copyright (C) Tilen Majerle, 2015 + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + ---------------------------------------------------------------------- + */ +#ifndef FONTS_H +#define FONTS_H 120 +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +/* C++ detection */ +#ifdef __cplusplus +extern C { +#endif + +/** + * + * Default fonts library. It is used in all LCD based libraries. + * + * \par Supported fonts + * + * Currently, these fonts are supported: + * - 7 x 10 pixels + * - 11 x 18 pixels + * - 16 x 26 pixels + + */ +#include "string.h" + +/** + * @defgroup LIB_Typedefs + * @brief Library Typedefs + * @{ + */ + +/** + * @brief Font structure used on my LCD libraries + */ +typedef struct { + uint8_t FontWidth; /*!< Font width in pixels */ + uint8_t FontHeight; /*!< Font height in pixels */ + const uint16_t *data; /*!< Pointer to data font data array */ +} FontDef_t; + +/** + * @brief String length and height + */ +typedef struct { + uint16_t Length; /*!< String length in units of pixels */ + uint16_t Height; /*!< String height in units of pixels */ +} FONTS_SIZE_t; + +/** + * @} + */ + +/** + * @defgroup FONTS_FontVariables + * @brief Library font variables + * @{ + */ + +/** + * @brief 7 x 10 pixels font size structure + */ +extern FontDef_t Font_7x10; + +/** + * @brief 11 x 18 pixels font size structure + */ +extern FontDef_t Font_11x18; + +/** + * @brief 16 x 26 pixels font size structure + */ +extern FontDef_t Font_16x26; + +/** + * @} + */ + +/** + * @defgroup FONTS_Functions + * @brief Library functions + * @{ + */ + +/** + * @brief Calculates string length and height in units of pixels depending on string and font used + * @param *str: String to be checked for length and height + * @param *SizeStruct: Pointer to empty @ref FONTS_SIZE_t structure where informations will be saved + * @param *Font: Pointer to @ref FontDef_t font used for calculations + * @retval Pointer to string used for length and height + */ +char* FONTS_GetStringSize(char* str, FONTS_SIZE_t* SizeStruct, FontDef_t* Font); + +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ + +/* C++ detection */ +#ifdef __cplusplus +} +#endif + + +#endif + diff --git a/i2c_ex1_master/i2c_ex1_master.c b/i2c_ex1_master/i2c_ex1_master.c new file mode 100644 index 0000000..ef2092a --- /dev/null +++ b/i2c_ex1_master/i2c_ex1_master.c @@ -0,0 +1,185 @@ +//############################################################################# +// +// FILE: i2c_ex1_master.c +// +// TITLE: I2C Example Master. +// +//############################################################################# +// +// Included Files +// +#include "f28x_project.h" +#include "i2c_oled.h" +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +extern uint16_t I2C_TXdata[]; +extern uint16_t I2C_RXdata[]; +//////////////////////////////////////////////////////////// +// +// Main +// + +void main(void) +{ + // + // Locals + // + uint16_t index = 0U; + uint16_t count = 0U; + + // + // Initialize System Control: + // PLL, WatchDog, enable Peripheral Clocks + // + InitSysCtrl(); + + // + // Initialize GPIO + // + InitGpio(); + + // + //Configure I2C pins + // + GPIO_SetupPinMux(GPIO_PIN_SDAA, GPIO_MUX_CPU1, 6); + GPIO_SetupPinOptions(GPIO_PIN_SDAA, GPIO_OUTPUT, GPIO_PULLUP); + GPIO_SetupPinMux(GPIO_PIN_SCLA, GPIO_MUX_CPU1, 6); + GPIO_SetupPinOptions(GPIO_PIN_SCLA, GPIO_OUTPUT, GPIO_PULLUP); + + + // + // Initialize the PIE control registers to their default state. + // The default state is all PIE interrupts disabled and flags + // are cleared. + // + InitPieCtrl(); + + // + // Disable CPU interrupts and clear all CPU interrupt flags + // + IER = 0x0000; + IFR = 0x0000; + + // + // Initialize the PIE vector table with pointers to the shell Interrupt + // Service Routines (ISR) + // + InitPieVectTable(); + + // + // Set the buffer to some default non-zero value + // + for (index=0; index 0 ? (x) : -(x)) + +/* SSD1306 data buffer */ +static uint8_t SSD1306_Buffer[SSD1306_WIDTH * SSD1306_HEIGHT / 8]; + +uint16_t I2C_TXdata[16]; +uint16_t I2C_RXdata[16]; +/* Private SSD1306 structure */ +typedef struct { + uint16_t CurrentX; + uint16_t CurrentY; + uint8_t Inverted; + uint8_t Initialized; +} SSD1306_t; + +/* Private variable */ +static SSD1306_t SSD1306; +/* Функция инициализации дисплея подает управялющие комманды на микросхему управления sh1106 */ +uint8_t SSD1306_Init(void) { + + /* A little delay */ + uint32_t p = 2500; + while(p>0) + p--; + + /* Init LCD */ + SSD1306_WRITECOMMAND(0xAE); //display off + + SSD1306_WRITECOMMAND(0xB0); //Set Page Address + SSD1306_WRITECOMMAND(0x40); //---set high column address + SSD1306_WRITECOMMAND(0x00); //---set low column address + + SSD1306_WRITECOMMAND(0xA4); //---set high column address + + SSD1306_WRITECOMMAND(0xD5); //--set start line address + SSD1306_WRITECOMMAND(0x50); //--set contrast control register + + SSD1306_WRITECOMMAND(0xA8); + SSD1306_WRITECOMMAND(0x3F); //--set segment re-map 0 to 127 + + SSD1306_WRITECOMMAND(0xD3); //--set normal display + SSD1306_WRITECOMMAND(0x00); //--set multiplex ratio(1 to 64) + + SSD1306_WRITECOMMAND(0x40); // + + SSD1306_WRITECOMMAND(0xAD); //0xa4,Output follows RAM content;0xa5,Output ignores RAM content + SSD1306_WRITECOMMAND(0x8A); //-set display offset + + SSD1306_WRITECOMMAND(0xA1); //-not offset + + SSD1306_WRITECOMMAND(0xC8); //--set display clock divide ratio/oscillator frequency + + SSD1306_WRITECOMMAND(0xDA); //--set divide ratio + SSD1306_WRITECOMMAND(0x12); //--set pre-charge period + + SSD1306_WRITECOMMAND(0x81); // + SSD1306_WRITECOMMAND(0xFF); //--set com pins hardware configuration + + SSD1306_WRITECOMMAND(0xD9); + SSD1306_WRITECOMMAND(0x11); //--set vcomh + + SSD1306_WRITECOMMAND(0xDB); //0x20,0.77xVcc + SSD1306_WRITECOMMAND(0x35); //--set DC-DC enable + + SSD1306_WRITECOMMAND(0xA6); // + + SSD1306_WRITECOMMAND(0xAF); //--turn on SSD1306 panel + + /* Clear screen */ + SSD1306_Fill(SSD1306_COLOR_BLACK); + + /* Update screen */ + SSD1306_UpdateScreen(); + /* Set default values */ + SSD1306.CurrentX = 0; + SSD1306.CurrentY = 0; + + /* Initialized OK */ + SSD1306.Initialized = 1; + + /* Return OK */ + return 1; +} + +//Начальные адресса колонки и странцы +#define SSD1306_COLUMNADDR 0x21 +#define SSD1306_PAGEADDR 0xB0 + +//Функция перемещения на начльную позцию +void SSD1306_setPosition(uint8_t column, uint8_t page) { + if (column > SSD1306_WIDTH - 1) { + column = 0; // Ограничение столбца + } + if (page > 7) { + page = 0; // Ограничение страницы + } + + SSD1306_WRITECOMMAND(0x20+column); // Начальный адрес столбца + SSD1306_WRITECOMMAND(SSD1306_PAGEADDR+page); // Начальный адрес страницы + // SSD1306_WRITECOMMAND(7); // Конечный адрес страницы +} + +//Функция отображения картинки из буффера +void SSD1306_UpdateScreen(void) { + + uint8_t page; + uint8_t column; + uint8_t data_bytes = SSD1306_WIDTH / 8; + int i; + for (page = 0; page < 8; page++) { + SSD1306_WRITECOMMAND(0x10); + SSD1306_WRITECOMMAND(0x00); + for (column = 0; column < SSD1306_WIDTH; column++) { // + SSD1306_setPosition(column, page); // Начало столбца - 0, страница - m + + // Запись данных в буфер дисплея + I2C_TXdata[0] = 0x40; // Байт управления: данные + // Заполнить буфер I2C данными из буфера дисплея + I2C_TXdata[0] = 0x40; // Команда записи данных + I2C_TXdata[1] = SSD1306_Buffer[SSD1306_WIDTH*page + column]; + I2CWrite(I2C_SLAVE_ADDRESS, 2, true); + } + } +} +//Функция инвертирования бфуффера. +void SSD1306_ToggleInvert(void) { + uint16_t i; + + /* Toggle invert */ + SSD1306.Inverted = !SSD1306.Inverted; + + /* Do memory toggle */ + for (i = 0; i < sizeof(SSD1306_Buffer); i++) { + SSD1306_Buffer[i] = ~SSD1306_Buffer[i]; + } +} +// Функция заливки (стирания) +void SSD1306_Fill(SSD1306_COLOR_t color) { + /* Set memory */ + memset(SSD1306_Buffer, (color == SSD1306_COLOR_BLACK) ? 0x00 : 0xFF, sizeof(SSD1306_Buffer)); +} +void SSD1306_DrawPixel(uint16_t x, uint16_t y, SSD1306_COLOR_t color) { + if (x >= SSD1306_WIDTH || y >= SSD1306_HEIGHT) { + return; + } + + if (SSD1306.Inverted) { + color = (SSD1306_COLOR_t)!color; + } + + // Правильно вычисляем индекс байта в буфере + uint16_t byteIndex = x + (y / 8) * SSD1306_WIDTH; + // Правильно вычисляем индекс бита в байт + uint8_t bitIndex = y % 8; + + if (color == SSD1306_COLOR_WHITE) { + SSD1306_Buffer[byteIndex] |= (1 << bitIndex); + } else { + SSD1306_Buffer[byteIndex] &= ~(1 << bitIndex); + } +} + +/* Функция отображения растрового изображения */ +void ssd1306_DrawBitmap(uint8_t x, uint8_t y, const unsigned char* bitmap, uint8_t w, uint8_t h, SSD1306_COLOR_t color) { + int16_t byteWidth = (w + 7) / 8; // Bitmap scanline pad = whole byte + uint8_t byte = 0; + uint8_t i,j; + if (x >= SSD1306_WIDTH || y >= SSD1306_HEIGHT) { + return; + } + + for ( j = 0; j < h; j++, y++) { + for ( i = 0; i < w; i++) { + if (i & 7) { + byte <<= 1; + } else { + byte = (*(const unsigned char *)(&bitmap[j * byteWidth + i / 8])); + } + + if (byte & 0x80) { + SSD1306_DrawPixel(x + i, y, color); + } + } + } + return; +} + +// функция позцианирования каретки по изображению +void SSD1306_GotoXY(uint16_t x, uint16_t y) { + /* Set write pointers */ + SSD1306.CurrentX = x; + SSD1306.CurrentY = y; +} +// функция отображения символов +char SSD1306_Putc(char ch, FontDef_t* Font, SSD1306_COLOR_t color) { + uint32_t i, b, j; + + /* Check available space in LCD */ + if ( + SSD1306_WIDTH <= (SSD1306.CurrentX + Font->FontWidth) || + SSD1306_HEIGHT <= (SSD1306.CurrentY + Font->FontHeight) + ) { + /* Error */ + return 0; + } + + /* Go through font */ + for (i = 0; i < Font->FontHeight; i++) { + b = Font->data[(ch - 32) * Font->FontHeight + i]; + for (j = 0; j < Font->FontWidth; j++) { + if ((b << j) & 0x8000) { + SSD1306_DrawPixel(SSD1306.CurrentX + j, (SSD1306.CurrentY + i), (SSD1306_COLOR_t) color); + } else { + SSD1306_DrawPixel(SSD1306.CurrentX + j, (SSD1306.CurrentY + i), (SSD1306_COLOR_t)!color); + } + } + } + + /* Increase pointer */ + SSD1306.CurrentX += Font->FontWidth; + + /* Return character written */ + return ch; +} +//Диспетчер отображения строк. +char SSD1306_Puts(char* str, FontDef_t* Font, SSD1306_COLOR_t color) { + /* Write characters */ + // reverseString(str); + while (*str) { + /* Write character by character */ + if (SSD1306_Putc(*str, Font, color) != *str) { + /* Return error */ + return *str; + } + + /* Increase string pointer */ + str++; + } + + /* Everything OK, zero should be returned */ + return *str; +} + +//Функция построения прямых линий по алгоритму брезинхема +void SSD1306_DrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, SSD1306_COLOR_t c) { + int16_t dx, dy, sx, sy, err, e2, i, tmp; + + /* Check for overflow */ + if (x0 >= SSD1306_WIDTH) { + x0 = SSD1306_WIDTH - 1; + } + if (x1 >= SSD1306_WIDTH) { + x1 = SSD1306_WIDTH - 1; + } + if (y0 >= SSD1306_HEIGHT) { + y0 = SSD1306_HEIGHT - 1; + } + if (y1 >= SSD1306_HEIGHT) { + y1 = SSD1306_HEIGHT - 1; + } + + dx = (x0 < x1) ? (x1 - x0) : (x0 - x1); + dy = (y0 < y1) ? (y1 - y0) : (y0 - y1); + sx = (x0 < x1) ? 1 : -1; + sy = (y0 < y1) ? 1 : -1; + err = ((dx > dy) ? dx : -dy) / 2; + + if (dx == 0) { + if (y1 < y0) { + tmp = y1; + y1 = y0; + y0 = tmp; + } + + if (x1 < x0) { + tmp = x1; + x1 = x0; + x0 = tmp; + } + + /* Vertical line */ + for (i = y0; i <= y1; i++) { + SSD1306_DrawPixel(x0, i, c); + } + + /* Return from function */ + return; + } + + if (dy == 0) { + if (y1 < y0) { + tmp = y1; + y1 = y0; + y0 = tmp; + } + + if (x1 < x0) { + tmp = x1; + x1 = x0; + x0 = tmp; + } + + /* Horizontal line */ + for (i = x0; i <= x1; i++) { + SSD1306_DrawPixel(i, y0, c); + } + + /* Return from function */ + return; + } + + while (1) { + SSD1306_DrawPixel(x0, y0, c); + if (x0 == x1 && y0 == y1) { + break; + } + e2 = err; + if (e2 > -dx) { + err -= dy; + x0 += sx; + } + if (e2 < dy) { + err += dx; + y0 += sy; + } + } +} +//функция построения прямоугольников +void SSD1306_DrawRectangle(uint16_t x, uint16_t y, uint16_t w, uint16_t h, SSD1306_COLOR_t c) { + /* Check input parameters */ + if ( + x >= SSD1306_WIDTH || + y >= SSD1306_HEIGHT + ) { + /* Return error */ + return; + } + + /* Check width and height */ + if ((x + w) >= SSD1306_WIDTH) { + w = SSD1306_WIDTH - x; + } + if ((y + h) >= SSD1306_HEIGHT) { + h = SSD1306_HEIGHT - y; + } + + /* Draw 4 lines */ + SSD1306_DrawLine(x, y, x + w, y, c); /* Top line */ + SSD1306_DrawLine(x, y + h, x + w, y + h, c); /* Bottom line */ + SSD1306_DrawLine(x, y, x, y + h, c); /* Left line */ + SSD1306_DrawLine(x + w, y, x + w, y + h, c); /* Right line */ +} +//Функция построения прямоугольников закрашенных прямоугольников +void SSD1306_DrawFilledRectangle(uint16_t x, uint16_t y, uint16_t w, uint16_t h, SSD1306_COLOR_t c) { + uint8_t i; + + /* Check input parameters */ + if ( + x >= SSD1306_WIDTH || + y >= SSD1306_HEIGHT + ) { + /* Return error */ + return; + } + + /* Check width and height */ + if ((x + w) >= SSD1306_WIDTH) { + w = SSD1306_WIDTH - x; + } + if ((y + h) >= SSD1306_HEIGHT) { + h = SSD1306_HEIGHT - y; + } + + /* Draw lines */ + for (i = 0; i <= h; i++) { + /* Draw lines */ + SSD1306_DrawLine(x, y + i, x + w, y + i, c); + } +} +//Фунция построения треугольников +void SSD1306_DrawTriangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, SSD1306_COLOR_t color) { + /* Draw lines */ + SSD1306_DrawLine(x1, y1, x2, y2, color); + SSD1306_DrawLine(x2, y2, x3, y3, color); + SSD1306_DrawLine(x3, y3, x1, y1, color); +} + +//Фунция построения закрашенных треугольников +void SSD1306_DrawFilledTriangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t x3, uint16_t y3, SSD1306_COLOR_t color) { + int16_t deltax = 0, deltay = 0, x = 0, y = 0, xinc1 = 0, xinc2 = 0, + yinc1 = 0, yinc2 = 0, den = 0, num = 0, numadd = 0, numpixels = 0, + curpixel = 0; + + deltax = ABS(x2 - x1); + deltay = ABS(y2 - y1); + x = x1; + y = y1; + + if (x2 >= x1) { + xinc1 = 1; + xinc2 = 1; + } else { + xinc1 = -1; + xinc2 = -1; + } + + if (y2 >= y1) { + yinc1 = 1; + yinc2 = 1; + } else { + yinc1 = -1; + yinc2 = -1; + } + + if (deltax >= deltay){ + xinc1 = 0; + yinc2 = 0; + den = deltax; + num = deltax / 2; + numadd = deltay; + numpixels = deltax; + } else { + xinc2 = 0; + yinc1 = 0; + den = deltay; + num = deltay / 2; + numadd = deltax; + numpixels = deltay; + } + + for (curpixel = 0; curpixel <= numpixels; curpixel++) { + SSD1306_DrawLine(x, y, x3, y3, color); + + num += numadd; + if (num >= den) { + num -= den; + x += xinc1; + y += yinc1; + } + x += xinc2; + y += yinc2; + } +} +//Функция построения окружностей +void SSD1306_DrawCircle(int16_t x0, int16_t y0, int16_t r, SSD1306_COLOR_t c) { + int16_t f = 1 - r; + int16_t ddF_x = 1; + int16_t ddF_y = -2 * r; + int16_t x = 0; + int16_t y = r; + + SSD1306_DrawPixel(x0, y0 + r, c); + SSD1306_DrawPixel(x0, y0 - r, c); + SSD1306_DrawPixel(x0 + r, y0, c); + SSD1306_DrawPixel(x0 - r, y0, c); + + while (x < y) { + if (f >= 0) { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + SSD1306_DrawPixel(x0 + x, y0 + y, c); + SSD1306_DrawPixel(x0 - x, y0 + y, c); + SSD1306_DrawPixel(x0 + x, y0 - y, c); + SSD1306_DrawPixel(x0 - x, y0 - y, c); + + SSD1306_DrawPixel(x0 + y, y0 + x, c); + SSD1306_DrawPixel(x0 - y, y0 + x, c); + SSD1306_DrawPixel(x0 + y, y0 - x, c); + SSD1306_DrawPixel(x0 - y, y0 - x, c); + } +} +//Функция построения закрашенных окружностей +void SSD1306_DrawFilledCircle(int16_t x0, int16_t y0, int16_t r, SSD1306_COLOR_t c) { + int16_t f = 1 - r; + int16_t ddF_x = 1; + int16_t ddF_y = -2 * r; + int16_t x = 0; + int16_t y = r; + + SSD1306_DrawPixel(x0, y0 + r, c); + SSD1306_DrawPixel(x0, y0 - r, c); + SSD1306_DrawPixel(x0 + r, y0, c); + SSD1306_DrawPixel(x0 - r, y0, c); + SSD1306_DrawLine(x0 - r, y0, x0 + r, y0, c); + + while (x < y) { + if (f >= 0) { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x; + + SSD1306_DrawLine(x0 - x, y0 + y, x0 + x, y0 + y, c); + SSD1306_DrawLine(x0 + x, y0 - y, x0 - x, y0 - y, c); + + SSD1306_DrawLine(x0 + y, y0 + x, x0 - y, y0 + x, c); + SSD1306_DrawLine(x0 + y, y0 - x, x0 - y, y0 - x, c); + } +} +//Функция включения дисплея +void SSD1306_ON(void) { + SSD1306_WRITECOMMAND(0x8D); + SSD1306_WRITECOMMAND(0x14); + SSD1306_WRITECOMMAND(0xAF); +} +//Функция выключения дисплея +void SSD1306_OFF(void) { + SSD1306_WRITECOMMAND(0x8D); + SSD1306_WRITECOMMAND(0x10); + SSD1306_WRITECOMMAND(0xAE); +} + +// +// Функция инцииализации I2C как мастера. +// +void I2CMaster_Init(uint16_t I2C_OwnAddress, uint16_t I2CSlave_Address) +{ + EALLOW; + // + // Must put I2C into reset before configuring it + // + I2caRegs.I2CMDR.all &= ~(0x20U); + + // + // I2C configuration. Use a 400kHz I2CCLK with a 50% duty cycle. + // + //I2C_initMaster(base, DEVICE_SYSCLK_FREQ, 400000, I2C_DUTYCYCLE_50); + I2caRegs.I2CPSC.all = 0xB; // Prescaler - need 7-12 Mhz on module clk + I2caRegs.I2CCLKL = 0x7; // NOTE: must be non zero + I2caRegs.I2CCLKH = 0x8; // NOTE: must be non zero + + + // + // Configure Master as a Transmitter + // + I2caRegs.I2CMDR.bit.MST = 0x1; + I2caRegs.I2CMDR.bit.TRX = 0x1; + + // + // Set data count + // + I2caRegs.I2CCNT = I2C_NUMBYTES; + + // + // Set the bit count to 8 bits per data byte + // + I2caRegs.I2CMDR.bit.BC = 0x0U; + + // + // Configure slave and own address + // + I2caRegs.I2COAR.all = I2C_OwnAddress; // Own address + I2caRegs.I2CSAR.all = I2CSlave_Address; // Slave address + + // + // Set emulation mode to FREE + // + I2caRegs.I2CMDR.bit.FREE = 0x1; + + // + //Clear all status + // + I2caRegs.I2CSTR.all = 0xFFFF; + + // + // Enable I2C Interrupts- RRDY + // + I2caRegs.I2CIER.all = 0x08; + + // + // Take I2C out of reset + // + I2caRegs.I2CMDR.all |= 0x0020; + + +} + +// +// Функция передачи сообщений по I2C на слэйва. +// +void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition) { + int i ; + I2caRegs.I2CSAR.all = slaveAddr; + I2caRegs.I2CMDR.bit.MST = 0x1; + I2caRegs.I2CMDR.bit.TRX = 0x1; + I2caRegs.I2CCNT = byteCount; + I2caRegs.I2CMDR.bit.STT = 0x1; + + for ( i = 0; i < byteCount; i++) { + I2caRegs.I2CDXR.all = I2C_TXdata[i]; + while (I2caRegs.I2CSTR.bit.BYTESENT != 0x1); + I2caRegs.I2CSTR.bit.BYTESENT = 0x1; + } + + if (sendStopCondition) { + I2caRegs.I2CMDR.bit.STP = 0x1; + while (I2caRegs.I2CMDR.bit.STP != 0x0); + I2caRegs.I2CSTR.bit.BYTESENT = 0x1; + } + } +// +// Функция чтения сообщений по I2C слэйва. +// +uint16_t I2CRead(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition) +{ + // + // Configure slave address + // + I2caRegs.I2CSAR.all = slaveAddr; + + // + // Configure I2C in Master Receiver mode + // + I2caRegs.I2CMDR.bit.MST = 0x1; + I2caRegs.I2CMDR.bit.TRX = 0x0; + + // + //Set Data Count + // + //I2caRegs.I2CCNT = byteCount; + + // + // send Start condition + // + I2caRegs.I2CMDR.bit.STT = 0x1; + + uint16_t count = 0; + + // + // Read the received data into RX buffer + // + while(count < I2C_NUMBYTES) + { + if(I2caRegs.I2CSTR.bit.RRDY ==0x1) + { + I2C_RXdata[count] = I2caRegs.I2CDRR.all; + count++; + } + } + + // + // Send STOP condition + // + if(sendStopCondition) + { + I2caRegs.I2CMDR.bit.STP = 0x1; + while(I2caRegs.I2CMDR.bit.STP != 0x0); + + I2caRegs.I2CSTR.bit.BYTESENT = 0x1; + + } + return count; +} + + + diff --git a/i2c_ex1_master/i2c_oled.h b/i2c_ex1_master/i2c_oled.h new file mode 100644 index 0000000..e0d4059 --- /dev/null +++ b/i2c_ex1_master/i2c_oled.h @@ -0,0 +1,53 @@ +#include "fonts.h" +#include "f28x_project.h" +// +// Defines +// +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +#define I2C_SLAVE_ADDRESS 0x3C +#define I2C_OWN_ADDRESS 0x30 +#define MAX_BUFFER_SIZE 0x10 +#define I2C_NUMBYTES 0x2U + +// +// I2C GPIO pins +// +#define GPIO_PIN_SDAA 0 // GPIO number for I2C SDAA +#define GPIO_PIN_SCLA 1 // GPIO number for I2C SCLA + + +// Ìàêðîñ äëÿ îòïðàâêè êîìàíäû íà OLED-äèñïëåé + #define SSD1306_WRITECOMMAND(cmd) \ + do { \ + I2C_TXdata[0] = 0x00; \ + I2C_TXdata[1] = cmd; \ + I2CWrite(I2C_SLAVE_ADDRESS, 2, true); \ + } while (0) + + +/* SSD1306 settings */ +/* SSD1306 width in pixels */ +#ifndef SSD1306_WIDTH +#define SSD1306_WIDTH 128 +#endif +/* SSD1306 LCD height in pixels */ +#ifndef SSD1306_HEIGHT +#define SSD1306_HEIGHT 64 +#endif + +/** + * @brief SSD1306 color enumeration + */ +typedef enum { + SSD1306_COLOR_BLACK = 0x00, /*!< Black color, no pixel */ + SSD1306_COLOR_WHITE = 0x01 /*!< Pixel is set. Color depends on LCD */ +} SSD1306_COLOR_t; + + +// +// Function Prototypes +// +void I2CMaster_Init(uint16_t I2CSlave_OwnAddress, uint16_t I2CSlave_Address); +void I2CWrite(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition); +uint16_t I2CRead(uint16_t slaveAddr, uint16_t byteCount, bool sendStopCondition); diff --git a/i2c_ex1_master/targetConfigs/TMS320F28388D.ccxml b/i2c_ex1_master/targetConfigs/TMS320F28388D.ccxml new file mode 100644 index 0000000..07dfdb0 --- /dev/null +++ b/i2c_ex1_master/targetConfigs/TMS320F28388D.ccxml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

hpT1wyC2EK@bx!{^>bjXK|Sb#iH6YwK3t9a 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 A4*&oF literal 0 HcmV?d00001 diff --git a/i2c_ex1_master/CPU1_RAM/i2c_ex1_master_linkInfo.xml b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master_linkInfo.xml new file mode 100644 index 0000000..4ca3507 --- /dev/null +++ b/i2c_ex1_master/CPU1_RAM/i2c_ex1_master_linkInfo.xml @@ -0,0 +1,22201 @@ + + + TMS320C2000 Linker PC v22.6.0.LTS + Copyright (c) 1996-2018 Texas Instruments Incorporated + 0x66b5df03 + 0x0 + i2c_ex1_master.out + + code_start +