diff --git a/.github/scripts/core_checker.py b/.github/scripts/core_checker.py
index 1fa5c963a..a17a45bec 100755
--- a/.github/scripts/core_checker.py
+++ b/.github/scripts/core_checker.py
@@ -44,8 +44,10 @@ FREERTOS_IGNORED_EXTENSIONS = [
'.cfg',
'.cgp',
'.checksum',
+ '.clang-format',
'.cmake',
'.cmd',
+ '.code-workspace',
'.config',
'.cpp',
'.cproj',
@@ -303,6 +305,8 @@ FREERTOS_IGNORED_PATTERNS = [
r'FreeRTOS/Demo/CORTEX_STM32L152_Discovery_IAR/include/.*',
r'FreeRTOS/Demo/CORTEX_M0_Infineon_XMC1000_IAR_Keil_GCC/.*',
r'FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4000_Keil/.*',
+ r'FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/.*',
+ r'FreeRTOS/Demo/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC/BoardFiles/.*',
r'FreeRTOS/Demo/AVR_ATMega4809_Atmel_Studio/RTOSDemo/.*',
r'FreeRTOS/Demo/AVR32_UC3/.*',
r'FreeRTOS/Demo/AVR_ATMega4809_IAR/.*',
@@ -331,6 +335,8 @@ FREERTOS_IGNORED_PATTERNS = [
FREERTOS_IGNORED_FILES = [
'cspell.config.yaml',
+ '.ccsproject',
+ '.clang-format',
'.cproject',
'.project',
'requirements.txt',
diff --git a/.github/workflows/freertos_mpu_demo.yml b/.github/workflows/freertos_mpu_demo.yml
new file mode 100644
index 000000000..bb7933501
--- /dev/null
+++ b/.github/workflows/freertos_mpu_demo.yml
@@ -0,0 +1,119 @@
+name: FreeRTOS MPU Demo
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+
+env:
+ bashPass: \033[32;1mPASSED -
+ bashInfo: \033[33;1mINFO -
+ bashFail: \033[31;1mFAILED -
+ bashEnd: \033[0m
+
+jobs:
+ Cortex-R4:
+ name: Texas Instruments RM46
+ runs-on: ubuntu-latest
+ steps:
+ - env:
+ stepName: Checkout Repository
+ name: ${{ env.stepName }}
+ uses: actions/checkout@v4.1.1
+ with:
+ submodules: false
+
+ - env:
+ stepName: Install GNU ARM Toolchain
+ name: Install GNU ARM Toolchain
+ shell: bash
+ run: |
+ # ${{ env.stepName }}
+ echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ sudo apt-get -y update
+ sudo apt-get -y install gcc-arm-none-eabi build-essential cmake git ninja-build python3-minimal
+ echo -e "::endgroup::"
+ echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
+
+ - env:
+ stepName: Build CORTEX R4 MPU Demo
+ name: ${{ env.stepName }}
+ shell: bash
+ working-directory: FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC
+ run: |
+ # ${{ env.stepName }}
+ echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ set +e
+ cmake -S . -B build;
+ make -C build all;
+ exitStatus=$?
+ set -e
+ echo -e "::endgroup::"
+ if [ $exitStatus -eq 0 ]; then
+ echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ else
+ echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ exit 1
+ fi
+
+ Cortex-R5:
+ name: Texas Instruments RM57
+ runs-on: ubuntu-latest
+ steps:
+ - env:
+ stepName: Checkout Repository
+ name: ${{ env.stepName }}
+ uses: actions/checkout@v4.1.1
+ with:
+ submodules: false
+
+ - env:
+ stepName: Install GNU ARM Toolchain
+ name: Install GNU ARM Toolchain
+ shell: bash
+ run: |
+ # ${{ env.stepName }}
+ echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ sudo apt-get -y update
+ sudo apt-get -y install gcc-arm-none-eabi build-essential cmake git ninja-build python3-minimal
+ echo -e "::endgroup::"
+ echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
+
+ - env:
+ stepName: Fetch Kernel Submodule
+ name: ${{ env.stepName }}
+ shell: bash
+ run: |
+ # ${{ env.stepName }}
+ echo -e "::group:: ${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ set +e
+ git submodule update --checkout --init --depth 1 FreeRTOS/Source FreeRTOS/Demo/ThirdParty/Community-Supported-Demos
+ exitStatus=$?
+ set -e
+ echo -e "::endgroup::"
+ if [ $exitStatus -eq 0 ]; then
+ echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ else
+ echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ exit 1
+ fi
+
+ - env:
+ stepName: Build CORTEX R5 MPU Demo
+ name: ${{ env.stepName }}
+ shell: bash
+ working-directory: FreeRTOS/Demo/CORTEX_MPU_R5F_TI_RM57_HERCULES_GCC
+ run: |
+ # ${{ env.stepName }}
+ echo -e "::group::${{ env.bashInfo }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ set +e
+ cmake -S . -B build;
+ make -C build all;
+ exitStatus=$?
+ set -e
+ echo -e "::endgroup::"
+ if [ $exitStatus -eq 0 ]; then
+ echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ else
+ echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}"
+ exit 1
+ fi
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.ccsproject b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.ccsproject
new file mode 100644
index 000000000..7fdda6201
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.ccsproject
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.clang-format b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.clang-format
new file mode 100644
index 000000000..c745d9c66
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.clang-format
@@ -0,0 +1,104 @@
+---
+Language: Cpp
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: None
+AlignConsecutiveBitFields: AcrossEmptyLinesAndComments
+AlignConsecutiveDeclarations: None
+AlignConsecutiveMacros: AcrossEmptyLinesAndComments
+AlignEscapedNewlines: Left
+AlignOperands: AlignAfterOperator
+AlignTrailingComments: true
+AllowAllArgumentsOnNextLine: false
+AllowAllParametersOfDeclarationOnNextLine: false
+AllowShortBlocksOnASingleLine: Never
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortEnumsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: None
+AllowShortIfStatementsOnASingleLine: false
+AllowShortLambdasOnASingleLine: All
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterReturnType: None
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: Yes
+BinPackArguments: false
+BinPackParameters: false
+BitFieldColonSpacing: Both
+BraceWrapping:
+ AfterCaseLabel: true
+ AfterClass: true
+ AfterControlStatement: Always
+ AfterEnum: true
+ AfterExternBlock: false
+ AfterFunction: true
+ AfterNamespace: true
+ AfterStruct: true
+ AfterUnion: true
+ BeforeCatch: true
+ BeforeElse: true
+ BeforeLambdaBody: false
+ BeforeWhile: false
+ IndentBraces: false
+ SplitEmptyFunction: true
+ SplitEmptyRecord: true
+ SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: NonAssignment
+BreakBeforeBraces: Custom
+BreakBeforeConceptDeclarations: true
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializers: BeforeColon
+BreakInheritanceList: BeforeColon
+BreakStringLiterals: true
+ColumnLimit: 90
+CompactNamespaces: false
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+EmptyLineBeforeAccessModifier: Always
+FixNamespaceComments: true
+IncludeBlocks: Preserve
+IndentCaseBlocks: false
+IndentCaseLabels: true
+IndentExternBlock: NoIndent
+IndentGotoLabels: true
+IndentPPDirectives: BeforeHash
+IndentWidth: 4
+IndentWrappedFunctionNames: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+PenaltyBreakAssignment: 1000
+PenaltyBreakBeforeFirstCallParameter: 200
+PenaltyBreakComment: 50
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakString: 100
+PenaltyBreakTemplateDeclaration: 10
+PenaltyExcessCharacter: 100
+PenaltyIndentedWhitespace: 0
+PenaltyReturnTypeOnItsOwnLine: 10000
+PointerAlignment: Middle
+ReflowComments: true
+SortIncludes: false
+SortUsingDeclarations: true
+SpaceAfterCStyleCast: true
+SpaceAfterLogicalNot: false
+SpaceAfterTemplateKeyword: false
+SpaceBeforeCpp11BracedList: true
+SpaceBeforeCtorInitializerColon: false
+SpaceBeforeInheritanceColon: false
+SpaceBeforeParens: Never
+SpaceBeforeRangeBasedForLoopColon: false
+SpaceBeforeSquareBrackets: false
+SpaceInEmptyBlock: false
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles: false
+SpacesInConditionalStatement: true
+SpacesInContainerLiterals: true
+SpacesInCStyleCastParentheses: true
+SpacesInParentheses: true
+SpacesInSquareBrackets: true
+TabWidth: 4
+UseCRLF: false
+UseTab: Never
+...
+
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.cproject b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.cproject
new file mode 100644
index 000000000..f498a34b3
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.cproject
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.gitignore b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.gitignore
new file mode 100644
index 000000000..ba04ae8d5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.gitignore
@@ -0,0 +1,4 @@
+[Bb]uild
+[Dd]ebug
+.settings/
+.launches/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.project b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.project
new file mode 100644
index 000000000..4d25d42f9
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.project
@@ -0,0 +1,126 @@
+
+
+ RM46_Demo
+
+
+
+
+
+ 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
+
+
+
+ FreeRTOS-Kernel
+ 2
+ FREERTOS_KERNEL_DIR
+
+
+
+
+ 1703728340587
+
+ 22
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-CMakeLists.txt
+
+
+
+ 1703728340594
+
+ 10
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-build
+
+
+
+ 1703284178173
+ FreeRTOS-Kernel
+ 5
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-*.c
+
+
+
+ 1703284178175
+ FreeRTOS-Kernel
+ 10
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-examples
+
+
+
+ 1703728468486
+ FreeRTOS-Kernel/portable
+ 9
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-Common
+
+
+
+ 1703728468488
+ FreeRTOS-Kernel/portable
+ 9
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-GCC
+
+
+
+ 1703267897500
+ FreeRTOS-Kernel/portable/Common
+ 6
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-mpu_wrappers.c
+
+
+
+ 1703728489501
+ FreeRTOS-Kernel/portable/GCC
+ 9
+
+ org.eclipse.ui.ide.multiFilter
+ 1.0-name-matches-false-false-ARM_CRx_MPU
+
+
+
+
+
+ BOARD_FILES_DIR
+ $%7BPROJECT_LOC%7D/BoardFiles
+
+
+ FREERTOS_KERNEL_DIR
+ $%7BPARENT-2-PROJECT_LOC%7D/Source
+
+
+ FREERTOS_PORT_DIR
+ $%7BPARENT-2-PROJECT_LOC%7D/Source/portable/GCC/ARM_CRx_MPU
+
+
+ REPOSITORY_ROOT
+ $%7BPARENT-2-PROJECT_LOC%7D
+
+
+
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC.code-workspace b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC.code-workspace
new file mode 100644
index 000000000..87f157a22
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC.code-workspace
@@ -0,0 +1,50 @@
+{
+ "folders": [
+ {
+ "path": ".."
+ },
+ {
+ "path": "../../../Source",
+ "name": "FreeRTOS-Kernel"
+ },
+ {
+ "path": "../../../Source/portable/GCC/ARM_CRx_MPU",
+ "C_Cpp.default.includePath": [
+ "../source",
+ "../include",
+ "../BoardFiles/include",
+ "../BoardFiles/source",
+ "../../Source/portable/GCC/ARM_CRx_MPU",
+ "../../Source/include",
+ "../../Source",
+ ],
+ }
+ ],
+ "settings": {
+ "files.associations": {
+ "*.h": "c",
+ "variant": "c"
+ },
+
+ "files.exclude": {
+ "**/.launches/**": true,
+ "**/.settings/**": true,
+ "**/.ccsproject/**": true,
+ "**/examples**": true,
+ "**/.github**": true,
+ "**/.git[a-hj-z-]**": true,
+ "**/portable/**": true
+
+ },
+
+ "C_Cpp.default.includePath": [
+ "../source",
+ "../include",
+ "../BoardFiles/include",
+ "../BoardFiles/source",
+ "../../Source/portable/GCC/ARM_CRx_MPU",
+ "../../Source/include",
+ "../../Source",
+ ],
+ }
+}
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/settings.json b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/settings.json
new file mode 100644
index 000000000..3bbc53ac2
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/.vscode/settings.json
@@ -0,0 +1,8 @@
+{
+ "files.associations": {
+ ".cSpellWords.txt": "magic",
+ "freertos.h": "c",
+ "portable.h": "c",
+ "portmacro.h": "c"
+ }
+}
\ No newline at end of file
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.dil b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.dil
new file mode 100644
index 000000000..64223ae58
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.dil
@@ -0,0 +1,10393 @@
+# RM46L852ZWT 02/06/22 16:30:00
+#
+ARCH=RM46L852ZWT
+#
+DRIVER.TOOLS.VAR.GCC.VALUE=1
+DRIVER.TOOLS.VAR.ARM.VALUE=0
+DRIVER.TOOLS.VAR.IAR.VALUE=0
+DRIVER.TOOLS.VAR.GHS.VALUE=0
+DRIVER.TOOLS.VAR.TI.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_PERMISSION.VALUE=PRIV_RW_USER_RW_NOEXEC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_122_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_114_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_106_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_70_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_62_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_54_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_46_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_38_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.PMM_MEM_PD3_STATE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CAPTURE_EVENT_SOURCE_0.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_PERMISSION_VALUE.VALUE=0x0300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_81_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_73_NAME.VALUE=het2LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_65_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_57_NAME.VALUE=adc2Group2Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_49_NAME.VALUE=spi4HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_2_MAPPING.VALUE=2
+DRIVER.SYSTEM.VAR.VIM_CAPTURE_EVENT_SOURCE_1.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_111_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_103_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ADC1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.EQEP2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MEMINIT_SELECTED.VALUE=0
+DRIVER.SYSTEM.VAR.FLASH_DATA_3_WAIT_STATE_FREQ.VALUE=220.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_96_MAPPING.VALUE=96
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_88_MAPPING.VALUE=88
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_1_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_END_ADDRESS.VALUE=0xfcffffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_5_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_DATA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_11_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_STC_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SPI3_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL1_BYPASS_ON_SLIP.VALUE=0x20000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_124_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_116_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_108_NAME.VALUE=ecap5Interrupt
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SIZE.VALUE=256_KB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_100_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_98_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_20_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_12_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_2_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CRC_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.MIBSPI1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_HCLK_FREQ.VALUE=220.000
+DRIVER.SYSTEM.VAR.CLKT_PLL2_FREQ.VALUE=220.00
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_81_MAPPING.VALUE=81
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_73_MAPPING.VALUE=73
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_65_MAPPING.VALUE=65
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_57_MAPPING.VALUE=57
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_49_MAPPING.VALUE=49
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_40_NAME.VALUE=dmaBTCAInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_32_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_24_NAME.VALUE=het1LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_16_NAME.VALUE=can1HighLevelInterrupt
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_6_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_92_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_84_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_76_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_68_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_31_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_23_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_15_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CCM_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.PMM_MEM_PD2_STATE_AVAIL.VALUE=1
+DRIVER.SYSTEM.VAR.ECLK_CLKSRC.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.CLKT_PLL2_OUTPUT_DIV.VALUE=2
+DRIVER.SYSTEM.VAR.CLKT_EXT2_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CLKT_PLL1_SOURCE_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_END_ADDRESS.VALUE=0x63ffffff
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_96_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_88_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_9_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_4_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HET2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CLKT_RTI2_PRE_SOURCE.VALUE=PLL1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SIZE_VALUE.VALUE=0x1A
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_99_NAME.VALUE=etpwm5TripZoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_50_MAPPING.VALUE=50
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_42_MAPPING.VALUE=42
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_34_MAPPING.VALUE=34
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_26_MAPPING.VALUE=26
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_18_MAPPING.VALUE=18
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD2_STATEVALUE.VALUE=0x5
+DRIVER.SYSTEM.VAR.CLKT_VCLK3_DOMAIN_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.FLASH_ECC_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.FLASH_BANKS.VALUE=4
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_IRQ_DISP_ENTRY.VALUE=_isrStub
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_111_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_103_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_92_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_84_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_76_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_68_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CAN3_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK1_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM4_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.DCC2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_PLL1_RESET_ON_OSCILLATOR_FAIL.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_PERMISSION_VALUE.VALUE=0x0600
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_11_MAPPING.VALUE=11
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_PERMISSION.VALUE=PRIV_RW_USER_RW_EXEC
+DRIVER.SYSTEM.VAR.LBIST_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK2_DOMAIN_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_END_ADDRESS.VALUE=0x003fffff
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_41_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_33_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_25_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_17_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_3_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ECAP6_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SCI_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.FLASH_DATA_1_WAIT_STATE_FREQ.VALUE=110.0
+DRIVER.SYSTEM.VAR.RAM_STACK_IRQ_BASE.VALUE=0x08000500
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_125_MAPPING.VALUE=125
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_117_MAPPING.VALUE=117
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_109_MAPPING.VALUE=109
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_90_NAME.VALUE=etpwm1Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_82_NAME.VALUE=dcc1DoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_74_NAME.VALUE=sciLowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_66_NAME.VALUE=i2cInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_58_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_DOMAIN_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_PMU_GLOBAL_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_BASE_ADDRESS.VALUE=0xFF000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_TASK_REGION_STACK.VALUE=5
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_97_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_89_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_81_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_73_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_70_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_65_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_62_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_57_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_54_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_49_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_46_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_38_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD2_STATE.VALUE=1
+DRIVER.SYSTEM.VAR.EMAC_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_PBIST_DP_SELECTED.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_8_MAPPING.VALUE=8
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_2_NAME.VALUE=vPortPreemptiveTick
+DRIVER.SYSTEM.VAR.CORE_PMU_COUNTER0_EVENT.VALUE=0x11
+DRIVER.SYSTEM.VAR.FLASH_ADDRESS_WAIT_STATES.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_RESET_ENTRY.VALUE=_c_int00
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_127_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_122_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_119_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_114_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_106_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_9_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ADC1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.MIBSPI_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ECLK_VCLK1_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL_FREQ.VALUE=00.0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SIZE_VALUE.VALUE=0x0A
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_125_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_117_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_110_MAPPING.VALUE=110
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_109_NAME.VALUE=ecap6Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_102_MAPPING.VALUE=102
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.RAM_LENGTH.VALUE=0x00030000
+DRIVER.SYSTEM.VAR.CORE_MPU_TOTAL_REGION.VALUE=12
+DRIVER.SYSTEM.VAR.CLKT_VCLK1_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SIZE.VALUE=64_MB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_124_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_116_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_108_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ESRAM_SP_PBISTCHECK_VALUE_NEW.VALUE=0x00300020
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_41_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_33_NAME.VALUE=dmaFTCAInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_25_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_17_NAME.VALUE=spi2HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_1_MAPPING.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL_SOURCE_ENABLE.VALUE=0x00000008
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_END_ADDRESS.VALUE=0x203fffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_BASE_ADDRESS.VALUE=0xF0000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_40_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_32_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_24_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_16_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_5_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_PARITY_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FRAY_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_TYPE_VALUE.VALUE=0x0000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_95_MAPPING.VALUE=95
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_87_MAPPING.VALUE=87
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_79_MAPPING.VALUE=79
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_4_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_IRQ_VIC_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_121_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_113_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_105_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_70_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_62_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_54_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_50_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_46_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_42_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_38_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_34_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_26_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_18_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SPI1_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_100_NAME.VALUE=etpwm6Interrupt
+DRIVER.SYSTEM.VAR.CLKT_RTI2_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.RAM_ECC_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_7_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_99_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN4_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.USB_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SCI_ALL_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL_FREQ_INPUT.VALUE=16.0
+DRIVER.SYSTEM.VAR.STC_INTERVAL.VALUE=24
+DRIVER.SYSTEM.VAR.CLKT_LPO_HIGH_TRIM_VALUE.VALUE=16
+DRIVER.SYSTEM.VAR.CLKT_GCLK_FREQ.VALUE=220.000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_PERMISSION_VALUE.VALUE=0x1000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_80_MAPPING.VALUE=80
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_72_MAPPING.VALUE=72
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_64_MAPPING.VALUE=64
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_56_MAPPING.VALUE=56
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_48_MAPPING.VALUE=48
+DRIVER.SYSTEM.VAR.CLKT_PLL1_REF_CLOCK_DIV.VALUE=6
+DRIVER.SYSTEM.VAR.FLASHW_BASE_ADDRESS.VALUE=0xFFF87000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_FIQ_ENTRY.VALUE="ldr pc,[pc,#-0x1b0]"
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_10_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN5_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SCILIN_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SPI_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ALL_DVR_ENA.VALUE=1
+DRIVER.SYSTEM.VAR.CCM_MENU_VALUE.VALUE=0x0001
+DRIVER.SYSTEM.VAR.PBIST_ENA1.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_VCLK4_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_97_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_89_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_OSCILLATOR_FREQ.VALUE=16.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_91_NAME.VALUE=etpwm1TripZoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_83_NAME.VALUE=dcc2DoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_75_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_67_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_59_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_41_MAPPING.VALUE=41
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_33_MAPPING.VALUE=33
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_25_MAPPING.VALUE=25
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_17_MAPPING.VALUE=17
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_IRQ_MODE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_11_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_11_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.PMM_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.EMIF_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CAN1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CAN_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_3_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.PMM_MEM_PD3_STATEVALUE.VALUE=0xA
+DRIVER.SYSTEM.VAR.CLKT_PLL1_OUTPUT_DIV.VALUE=2
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_PERMISSION.VALUE=PRIV_RW_USER_RW_NOEXEC
+DRIVER.SYSTEM.VAR.CLKT_PLL2_FM_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_BASE_ADDRESS.VALUE=0x08400000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_92_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_91_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_84_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_83_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_76_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_75_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_68_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_67_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_59_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_8_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_STC_CPUSELFTEST_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.HET1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_RTI1_PRE_SOURCE.VALUE=PLL1
+DRIVER.SYSTEM.VAR.FLASH_MODE_VALUE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SIZE_VALUE.VALUE=0x19
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_126_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_118_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_10_MAPPING.VALUE=10
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SIZE.VALUE=128_MB
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_125_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_117_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_109_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_91_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_83_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_75_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_67_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_59_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_3_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HET1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ECAP4_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_PLL2_BYPASS_ON_SLIP.VALUE=0x20000000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_124_MAPPING.VALUE=124
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_116_MAPPING.VALUE=116
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_108_MAPPING.VALUE=108
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_50_NAME.VALUE=adc2Group0Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_42_NAME.VALUE=can2LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_34_NAME.VALUE=dmaLFSAInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_26_NAME.VALUE=mibspi1LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_18_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.FLASH_ARBITRATION.VALUE=FIX
+DRIVER.SYSTEM.VAR.CLKT_LPO_HIGH_SOURCE_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_110_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_102_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PBIST_ALGO_9_10.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL2_FREQ_INPUT.VALUE=16.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_7_MAPPING.VALUE=7
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_PERMISSION.VALUE=PRIV_RW_USER_RW_EXEC
+DRIVER.SYSTEM.VAR.CLKT_RTI2_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_BACKGROUND_REGION_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_8_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_2_INT_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CONFIG.VALUE=TRUE
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_101_MAPPING.VALUE=101
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_101_NAME.VALUE=etpwm6TripZoneInterrupt
+DRIVER.SYSTEM.VAR.RAM_STACK_ABORT_LENGTH.VALUE=0x00000100
+DRIVER.SYSTEM.VAR.FLASH_DATA_MAX_WAIT_STATES.VALUE=3
+DRIVER.SYSTEM.VAR.FLASH_MODE.VALUE=PIPELINE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_7_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_61_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_61_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_53_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_53_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_45_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_45_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_40_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_37_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_37_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_32_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_29_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_29_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_24_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_16_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI4_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_EMAC_SP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.MINIT_VALUE.VALUE=0x1E57F
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_0_MAPPING.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL1_DIV.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_VCLK4_DOMAIN_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL2_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.RAM_BASE_ADDRESS.VALUE=0x08000000
+DRIVER.SYSTEM.VAR.CORE_PMU_EVENT_EXPORT_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_126_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_118_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_110_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_102_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_96_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_88_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.GIO_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SIZE_VALUE.VALUE=0x17
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_94_MAPPING.VALUE=94
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_86_MAPPING.VALUE=86
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_78_MAPPING.VALUE=78
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_TYPE.VALUE=STRONGLYORDERED_SHAREABLE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_3_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_BASE_ADDRESS.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_UNDEF_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_8_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_PBIST_SP_SELECTED.VALUE=0
+DRIVER.SYSTEM.VAR.RAM_STACK_ABORT_BASE.VALUE=0x08000600
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_92_NAME.VALUE=etpwm2Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_84_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_76_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_68_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.CLKT_RTI1_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_6_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_123_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_115_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_107_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_31_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_23_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_15_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_1_INT_TYPE.VALUE=FIQ
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD3_STATE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_EFUSE_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_GHV_WAKUP_SOURCE.VALUE=OSC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_TYPE_VALUE.VALUE=0x0000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_71_MAPPING.VALUE=71
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_63_MAPPING.VALUE=63
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_55_MAPPING.VALUE=55
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_47_MAPPING.VALUE=47
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_39_MAPPING.VALUE=39
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_4_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.CORE_PMU_COUNTER1_EVENT.VALUE=0x11
+DRIVER.SYSTEM.VAR.EFUSE_SELFTEST_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_DOMAIN_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.RAM_LINK_BASE_ADDRESS.VALUE=0x08000800
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_120_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_112_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_104_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_30_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_22_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_14_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_127_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_119_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.CLKT_PLL2_DIV.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_VCLK3_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_LPO_TRIM_OTP_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SIZE.VALUE=8_MB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_95_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_87_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_79_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_61_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_53_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_45_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_37_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_29_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_VIM1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.FLASH_ADDRESS_WAIT_STATES_FREQ.VALUE=165.0
+DRIVER.SYSTEM.VAR.RAM_STACK_BASE.VALUE=0x08000000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_51_NAME.VALUE=adc2Group1Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_43_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_40_MAPPING.VALUE=40
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_35_NAME.VALUE=can2HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_32_MAPPING.VALUE=32
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_27_NAME.VALUE=linLowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_24_MAPPING.VALUE=24
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_19_NAME.VALUE=crcInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_16_MAPPING.VALUE=16
+DRIVER.SYSTEM.VAR.CLKT_VCLK3_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_END_ADDRESS.VALUE=0xf07fffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM7_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_1.VALUE=0
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_2.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_96_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_88_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN4_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_3.VALUE=1
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_4.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_110_NAME.VALUE=eqep1Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_102_NAME.VALUE=etpwm7Interrupt
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_5.VALUE=1
+DRIVER.SYSTEM.VAR.LBIST_STT.VALUE=1
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_6.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HTU2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_7.VALUE=1
+DRIVER.SYSTEM.VAR.ECAP2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_8.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_TYPE_VALUE.VALUE=0x0010
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_123_MAPPING.VALUE=123
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_115_MAPPING.VALUE=115
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_107_MAPPING.VALUE=107
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_10_NAME.VALUE=het1HighLevelInterrupt
+DRIVER.SYSTEM.VAR.PMM_MEM_PD2_STATEVALUE.VALUE=0x5
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_9.VALUE=1
+DRIVER.SYSTEM.VAR.RAM_STACK_USER_LENGTH.VALUE=0x00000300
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_PERMISSION.VALUE=PRIV_RW_USER_RW_NOEXEC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_END_ADDRESS.VALUE=0x0843ffff
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_80_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_72_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_64_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_56_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_48_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_10_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_7_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_USB_SP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_PBIST_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM_OLDCODE.VALUE=1
+DRIVER.SYSTEM.VAR.SCI2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.LIN_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_RTI1_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SIZE_VALUE.VALUE=0x11
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_6_MAPPING.VALUE=6
+DRIVER.SYSTEM.VAR.CLKT_PLL2_SPEADING_AMOUNT.VALUE=61
+DRIVER.SYSTEM.VAR.CLKT_PLL2_SPEADING_RATE.VALUE=255
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_BASE_ADDRESS.VALUE=0x08001000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_TYPE.VALUE=STRONGLYORDERED_SHAREABLE
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_121_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_113_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_105_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_90_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_90_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_82_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_82_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_74_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_74_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_66_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_66_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_58_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_58_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI5_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CLKT_PLL2_RESET_ON_SLIP.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ECLK_FREQ.VALUE=13.750
+DRIVER.SYSTEM.VAR.CLKT_AVCLK1_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_100_MAPPING.VALUE=100
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_93_NAME.VALUE=etpwm2TripZoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_85_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_77_NAME.VALUE=EMACTxIntISR
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_69_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.RAM_STACK_IRQ_LENGTH.VALUE=0x00000100
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_6_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_2_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_RTI2_POST_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_PERMISSION_VALUE.VALUE=0x1300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_5_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.RAM_STACK_LENGTH.VALUE=0x00000800
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_PERMISSION.VALUE=PRIV_RO_USER_RO_EXEC
+DRIVER.SYSTEM.VAR.CLKT_LPO_BIAS.VALUE=true
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_DIVIDER1.VALUE=4
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_END_ADDRESS.VALUE=0xffffffff
+DRIVER.SYSTEM.VAR.CORE_PRAGMA_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_101_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_4_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_1_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SPI4_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_POST_SOURCE.VALUE=VCLKA4_DIVR
+DRIVER.SYSTEM.VAR.CLKT_VCLK1_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_FREQ1.VALUE=110.000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_93_MAPPING.VALUE=93
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_85_MAPPING.VALUE=85
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_77_MAPPING.VALUE=77
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_69_MAPPING.VALUE=69
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_FREQ2.VALUE=27.500
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SIZE.VALUE=16_MB
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_BASE_ADDRESS.VALUE=0xFC000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_2_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_60_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_52_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_44_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_41_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_36_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_33_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_28_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_25_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_17_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.CLKT_PLL1_MUL.VALUE=165
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_60_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_52_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_44_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_36_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_28_NAME.VALUE=adc1Group2Interrupt
+DRIVER.SYSTEM.VAR.CLKT_OSC_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SIZE.VALUE=16_MB
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_SVC_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_125_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_117_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_109_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_98_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_31_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_23_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_15_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PINMUX_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PBIST_ALGO_3_4.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_LPO_BIAS_VALUE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_70_MAPPING.VALUE=70
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_62_MAPPING.VALUE=62
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_54_MAPPING.VALUE=54
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_46_MAPPING.VALUE=46
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_38_MAPPING.VALUE=38
+DRIVER.SYSTEM.VAR.CLKT_AVCLK1_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL2_SOURCE_ENABLE.VALUE=0x00000080
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_PREFETCH_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_95_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_87_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_79_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HTU2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_EMAC_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_TASK_REGION_FIRST.VALUE=6
+DRIVER.SYSTEM.VAR.PBIST_ALGO_15.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_111_NAME.VALUE=eqep2Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_103_NAME.VALUE=etpwm7TripZoneInterrupt
+DRIVER.SYSTEM.VAR.PBIST_ALGO_16.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_VCLK2_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.RAM_LINK_LENGTH.VALUE=0x0002F800
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_END_ADDRESS.VALUE=0x080017ff
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_30_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_22_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_14_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_7_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_LPO_OSCFRQCONFIGCNT_VALUE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK2_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_31_MAPPING.VALUE=31
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_23_MAPPING.VALUE=23
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_15_MAPPING.VALUE=15
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_11_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.PBIST_ALGO_5_6.VALUE=0
+DRIVER.SYSTEM.VAR.PBIST_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_HCLK_DOMAIN_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_122_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_114_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_111_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_106_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_103_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_10_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.ETPWM5_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ETPWM_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL2_MUL.VALUE=165
+DRIVER.SYSTEM.VAR.CLKT_RTI2_FREQ.VALUE=0.0
+DRIVER.SYSTEM.VAR.CLKT_LPO_LOW_FREQ.VALUE=0.080
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_PREFETCH_ENTRY.VALUE=_prefetch
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_91_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_83_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_75_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_67_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_59_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_DMA_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ENA.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK2_FREQ.VALUE=0.000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_PERMISSION_VALUE.VALUE=0x1300
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_PERMISSION_VALUE.VALUE=0x1300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_94_NAME.VALUE=etpwm3Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_86_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_78_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_OSCILLATOR_SOURCE_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_BASE_ADDRESS.VALUE=0x60000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_124_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_116_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_108_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_60_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_52_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_44_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_36_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_28_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PMM_AUTO_CLK_WAKE_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD4_STATE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HET2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.PBIST_ALGO_7_8.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL2_RESET_ON_OSCILLATOR_FAIL.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_BASE_ADDRESS_0.VALUE=0x00008020
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_BASE_ADDRESS_1.VALUE=0x00180000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SIZE_VALUE.VALUE=0x08
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_122_MAPPING.VALUE=122
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_114_MAPPING.VALUE=114
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_106_MAPPING.VALUE=106
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_6_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD5_STATEVALUE.VALUE=0x5
+DRIVER.SYSTEM.VAR.CORE_PMU_COUNTER2_EVENT.VALUE=0x11
+DRIVER.SYSTEM.VAR.FLASH_DATA_WAIT_STATES.VALUE=3
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_95_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_87_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_79_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_PARITY_AVAILABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN3_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_RAMECC_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ADC2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_VCLK2_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.FLASH_DATA_2_WAIT_STATE_FREQ.VALUE=165.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_5_MAPPING.VALUE=5
+DRIVER.SYSTEM.VAR.VIM_PARITY_INTERRUPT_MAPPED_TO_VIM.VALUE=FALSE
+DRIVER.SYSTEM.VAR.VIM_CHANNELS.VALUE=128
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_BASE_ADDRESS_7.VALUE=0xF0200000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SIZE.VALUE=512_BYTES
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_7_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.PMM_MEM_PD1_STATE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN3_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ECAP_OLDCODE.VALUE=1
+DRIVER.SYSTEM.VAR.ESM_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_99_MAPPING.VALUE=99
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_61_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_53_NAME.VALUE=mibspi5HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_45_NAME.VALUE=can3HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_37_NAME.VALUE=mibspi3HighInterruptLevel
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_29_NAME.VALUE=can1LowLevelInterrupt
+DRIVER.SYSTEM.VAR.PMM_MEM_PD1_STATEVALUE.VALUE=0x5
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_PERMISSION.VALUE=PRIV_RW_USER_RO_NOEXEC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_5_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SIZE.VALUE=2_KB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_127_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_119_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_60_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_52_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_44_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_36_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_28_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_6_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.EQEP1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_LPO_HIGH_FREQ.VALUE=10.000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SIZE_VALUE.VALUE=0x11
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_IRQ_ENTRY.VALUE="ldr pc,[pc,#-0x1b0]"
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_101_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_81_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_73_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_65_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_57_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_49_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ECAP_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SPI2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_GHV_POWER_DOWN_SOURCE.VALUE=OSC
+DRIVER.SYSTEM.VAR.RAM_STACK_USER_BASE.VALUE=0x08000000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_120_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_112_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_104_NAME.VALUE=ecap1Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_92_MAPPING.VALUE=92
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_84_MAPPING.VALUE=84
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_76_MAPPING.VALUE=76
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_68_MAPPING.VALUE=68
+DRIVER.SYSTEM.VAR.CLKT_GCLK_DOMAIN_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_1_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_81_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_73_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_65_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_57_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_49_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ADC2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI4_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_USB_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SYSTEM_INIT.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_20_NAME.VALUE=esmLowInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_12_NAME.VALUE=mibspi1HighLevelInterrupt
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_PERMISSION.VALUE=PRIV_NA_USER_NA_NOEXEC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_BASE_ADDRESS.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_1_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_0_INT_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_0_INT_TYPE.VALUE=FIQ
+DRIVER.SYSTEM.VAR.DMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_PERMISSION_VALUE.VALUE=0x1100
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_PERMISSION_VALUE.VALUE=0x1200
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_61_MAPPING.VALUE=61
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_53_MAPPING.VALUE=53
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_45_MAPPING.VALUE=45
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_37_MAPPING.VALUE=37
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_29_MAPPING.VALUE=29
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_DIR.VALUE=1
+DRIVER.SYSTEM.VAR.FLASH_LENGTH.VALUE=0x00140000
+DRIVER.SYSTEM.VAR.RAM_STACK_FIQ_LENGTH.VALUE=0x00000100
+DRIVER.SYSTEM.VAR.CLKT_EXT1_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_TYPE.VALUE=DEVICE_NONSHAREABLE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_100_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_51_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_43_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_35_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_27_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_21_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_19_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_13_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ADC2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_TYPE_VALUE.VALUE=0x0010
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_95_NAME.VALUE=etpwm3TripZoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_87_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_79_NAME.VALUE=EMACRxIntISR
+DRIVER.SYSTEM.VAR.CLKT_VCLK1_DIVIDER.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_PERMISSION.VALUE=PRIV_RW_USER_RW_NOEXEC
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_TYPE.VALUE=DEVICE_NONSHAREABLE
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_124_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_116_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_108_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_94_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_86_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_78_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.CAN2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_DOUT.VALUE=0
+DRIVER.SYSTEM.VAR.PBIST_ALGO_1.VALUE=0
+DRIVER.SYSTEM.VAR.FLASH_DATA_0_WAIT_STATE_FREQ.VALUE=55.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_30_MAPPING.VALUE=30
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_22_MAPPING.VALUE=22
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_14_MAPPING.VALUE=14
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_7_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.PBIST_ALGO_2.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_RTI1_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CLKT_AVCLK1_DOMAIN_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_127_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_119_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_30_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_22_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_14_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI3_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM3_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.DCC1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.HET2_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_PBIST_ESRAM_SELECTED.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_VCLK3_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_FREQ1.VALUE=110.000
+DRIVER.SYSTEM.VAR.PBIST_ALGO_11_12.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL2_SOURCE_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_END_ADDRESS.VALUE=0xfe0001ff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_94_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_86_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_78_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_21_INT_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_13_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HTU1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ECAP5_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.ADC_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_70_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_62_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_54_NAME.VALUE=spi4LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_46_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_38_NAME.VALUE=mibspi3LowLevelInterrupt
+DRIVER.SYSTEM.VAR.FEE_FLASH_ECC_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SIZE.VALUE=4_MB
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_RESET_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_110_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_102_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_6_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD4_STATE_AVAIL.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_121_MAPPING.VALUE=121
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_113_MAPPING.VALUE=113
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_105_MAPPING.VALUE=105
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_RESERVED_ENTRY.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_121_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_113_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_105_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_71_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_63_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_55_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_47_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_39_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.PMM_MEM_PD3_STATE_AVAIL.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_121_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_113_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_105_NAME.VALUE=ecap2Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_4_MAPPING.VALUE=4
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_END_ADDRESS.VALUE=0x87ffffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SIZE.VALUE=4_GB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_120_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_112_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_104_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_PERMISSION_VALUE.VALUE=0x1300
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SIZE_VALUE.VALUE=0x17
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_PERMISSION_VALUE.VALUE=0x0300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_98_MAPPING.VALUE=98
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_21_NAME.VALUE=vPortYieldWithinAPI
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_13_NAME.VALUE=linHighLevelInterrupt
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD4_STATEVALUE.VALUE=0xA
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_FUN.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_BASE_ADDRESS.VALUE=0x20000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_7_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_94_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_86_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_78_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_51_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_43_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_35_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_27_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_19_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FRAY_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_DMA_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.HET_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.PBIST_ALGO_13_14.VALUE=0
+DRIVER.SYSTEM.VAR.RAM_STACK_UNDEF_BASE.VALUE=0x08000700
+DRIVER.SYSTEM.VAR.RAM_STACK_SVC_BASE.VALUE=0x08000300
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_TYPE.VALUE=DEVICE_NONSHAREABLE
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_99_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_3_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.DMM_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.MIBSPI5_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_0.VALUE=ACTIVE
+DRIVER.SYSTEM.VAR.PMM_PMCTRL_PWRDN.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK4_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_1.VALUE=ACTIVE
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_96_NAME.VALUE=etpwm4Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_91_MAPPING.VALUE=91
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_88_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_83_MAPPING.VALUE=83
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_75_MAPPING.VALUE=75
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_67_MAPPING.VALUE=67
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_59_MAPPING.VALUE=59
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_2.VALUE=SLEEP
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_PERMISSION.VALUE=PRIV_RW_USER_RW_EXEC
+DRIVER.SYSTEM.VAR.CLKT_VCLK2_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_3.VALUE=SLEEP
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_END_ADDRESS.VALUE=0x0803ffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_0_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_40_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_32_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_24_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_16_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_5_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD5_STATE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_PDR.VALUE=0
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_4.VALUE=SLEEP
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_5.VALUE=SLEEP
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SIZE_VALUE.VALUE=0x15
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_8_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.ECLK_PRESCALER.VALUE=8
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_6.VALUE=SLEEP
+DRIVER.SYSTEM.VAR.FLASH_BANK_CONFIG_7.VALUE=ACTIVE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_BASE_ADDRESS.VALUE=0xFE000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_126_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_118_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_97_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_89_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_80_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_72_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_64_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_56_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_48_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HTU1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_VCLK4_FREQ.VALUE=110.000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_60_MAPPING.VALUE=60
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_52_MAPPING.VALUE=52
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_44_MAPPING.VALUE=44
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_36_MAPPING.VALUE=36
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_28_MAPPING.VALUE=28
+DRIVER.SYSTEM.VAR.CLKT_PLL1_BAND_WIDTH_ADJUSTMENT.VALUE=7
+DRIVER.SYSTEM.VAR.CLKT_LPO_LOW_SOURCE_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.PMM_MEM_PD2_STATE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_VIM2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CLKT_PLL2_MUL_VAL.VALUE=A400
+DRIVER.SYSTEM.VAR.CLKT_RTI1_POST_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_71_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_63_NAME.VALUE=het2HighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_55_NAME.VALUE=can3LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_47_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_39_NAME.VALUE=dmaHBCAInterrupt
+DRIVER.SYSTEM.VAR.CLKT_PLL2_BAND_WIDTH_ADJUSTMENT.VALUE=7
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_DATA_ENTRY.VALUE=_dabort
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_80_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_72_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_64_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_56_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_48_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ADC1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI3_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_21_MAPPING.VALUE=21
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_13_MAPPING.VALUE=13
+DRIVER.SYSTEM.VAR.CLKT_PLL2_REF_CLOCK_DIV.VALUE=6
+DRIVER.SYSTEM.VAR.CLKT_PLL1_SPEADING_RATE.VALUE=255
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_50_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_42_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_34_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_26_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_18_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_0_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN5_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ETPWM1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_PLL1_RESET_ON_SLIP.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_TYPE_VALUE.VALUE=0x0010
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_PERMISSION_VALUE.VALUE=0x0300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_127_MAPPING.VALUE=127
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_122_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_119_MAPPING.VALUE=119
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_114_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_106_NAME.VALUE=ecap3nterrupt
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_PERMISSION.VALUE=PRIV_RW_USER_NA_NOEXEC
+DRIVER.SYSTEM.VAR.CLKT_PLL1_FM_ENABLE.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SIZE.VALUE=4_MB
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_123_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_115_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_107_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_90_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_82_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_74_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_66_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_58_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_PBIST_ROM_PBIST_SELFCHECK_ENA.VALUE=1
+DRIVER.SYSTEM.VAR.ECAP3_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_30_NAME.VALUE=spi2LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_22_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_14_NAME.VALUE=adc1Group0Interrupt
+DRIVER.SYSTEM.VAR.CLKT_LPOLO_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_123_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_115_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_107_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_PSL.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_120_MAPPING.VALUE=120
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_112_MAPPING.VALUE=112
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_104_MAPPING.VALUE=104
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_END_ADDRESS.VALUE=0xffffffff
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SUB_4_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_BASE_ADDRESS.VALUE=0x80000000
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_SVC_ENTRY.VALUE=vPortSWI
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_21_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_20_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_13_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_12_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CONFIG_NEW.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FTU_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FLASHECC_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_EXTERNAL2_FREQ.VALUE=00.0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_97_NAME.VALUE=etpwm4TripZoneInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_89_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_3_MAPPING.VALUE=3
+DRIVER.SYSTEM.VAR.CLKT_LPOHI_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_101_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_99_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_93_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_85_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_77_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_69_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_6_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_RTP_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CLKT_GHV_NORMAL_SOURCE.VALUE=PLL1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_DIV_FREQ.VALUE=110.0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_97_MAPPING.VALUE=97
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_89_MAPPING.VALUE=89
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_9_NAME.VALUE=gioHighLevelInterrupt
+DRIVER.SYSTEM.VAR.CLKT_PLL1_ENABLE.VALUE=TRUE
+DRIVER.SYSTEM.VAR.FLASH_BASE_ADDRESS.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_11_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SUB_6_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_51_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_43_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_35_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_27_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_19_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_5_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_ESRAM_SP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_STC_ROM_PBIST_SELFCHECK_ENA.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_M3.VALUE=0
+DRIVER.SYSTEM.VAR.SPI5_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_AVCLK2_DOMAIN_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_TYPE.VALUE=NORMAL_OINC_NONSHARED
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_120_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_112_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_104_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_100_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FTU_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.RTP_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.MIBSPI3_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_LENGTH_0.VALUE=0x00137FE0
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_LENGTH_1.VALUE=0x00180000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_SIZE_VALUE.VALUE=0x16
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_90_MAPPING.VALUE=90
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_82_MAPPING.VALUE=82
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_80_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_74_MAPPING.VALUE=74
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_72_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_66_MAPPING.VALUE=66
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_64_NAME.VALUE=sciHighLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_58_MAPPING.VALUE=58
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_56_NAME.VALUE=mibspi5LowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_48_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.PMM_LOGIC_PD3_STATEVALUE.VALUE=0x5
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_7_DISABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_8_SUB_1_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_93_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_85_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_77_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_69_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.EQEP_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.RTI_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.STC_MAX_TIMEOUT.VALUE=0xFFFFFFFF
+DRIVER.SYSTEM.VAR.CLKT_LPO_LOW_TRIM.VALUE=100.00
+DRIVER.SYSTEM.VAR.RAM_STACK_FIQ_BASE.VALUE=0x08000400
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_PERMISSION_VALUE.VALUE=0x0300
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_0_NAME.VALUE=esmHighInterrupt
+DRIVER.SYSTEM.VAR.FLASH_BANK_LINK_LENGTH_7.VALUE=0x000010000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_SUB_2_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_50_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_42_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_34_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_26_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_18_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_HET1_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI5_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.FEE_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_10.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_LPO_LOW_TRIM_VALUE.VALUE=16
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_123_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_115_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_107_NAME.VALUE=ecap4Interrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_51_MAPPING.VALUE=51
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_43_MAPPING.VALUE=43
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_35_MAPPING.VALUE=35
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_27_MAPPING.VALUE=27
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_19_MAPPING.VALUE=19
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_11.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_5_PERMISSION.VALUE=PRIV_RW_USER_RW_EXEC
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_12.VALUE=1
+DRIVER.SYSTEM.VAR.CCM_MENU.VALUE=NONE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_9_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SIZE.VALUE=256_KB
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_BASE_ADDRESS.VALUE=0x08000000
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_2_SUB_3_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_98_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_20_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_12_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_4_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_PARITY_ENABLE_NEW.VALUE=0xA
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_13.VALUE=1
+DRIVER.SYSTEM.VAR.POM_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL1_MUL_VAL.VALUE=A400
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_14.VALUE=1
+DRIVER.SYSTEM.VAR.CLKT_AVCLK3_SOURCE.VALUE=VCLK
+DRIVER.SYSTEM.VAR.CLKT_PLL1_FREQ.VALUE=220.00
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_1_SIZE_VALUE.VALUE=0x1F
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_31_NAME.VALUE=phantomInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_23_NAME.VALUE=gioLowLevelInterrupt
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_15_NAME.VALUE=adc1Group1Interrupt
+DRIVER.SYSTEM.VAR.ERRATA_WORKAROUND_15.VALUE=1
+DRIVER.SYSTEM.VAR.RAM_STACK_UNDEF_LENGTH.VALUE=0x00000100
+DRIVER.SYSTEM.VAR.RAM_STACK_SVC_LENGTH.VALUE=0x00000100
+DRIVER.SYSTEM.VAR.CLKT_LPO_TRIM_OTP_LOC.VALUE=0xF00801B4
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_6_SUB_6_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_HANDLER_TABLE_UNDEF_ENTRY.VALUE=_undef
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_93_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_85_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_77_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_71_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_69_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_63_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_55_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_47_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_39_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_CAN1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.ETPWM6_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.DCC_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_20_MAPPING.VALUE=20
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_12_MAPPING.VALUE=12
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_7_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_ENDIAN_LITTLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_126_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_125_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_118_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_117_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_109_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FRAY_SP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.OS_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_12_SIZE_VALUE.VALUE=0x15
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_126_MAPPING.VALUE=126
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_118_MAPPING.VALUE=118
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_98_NAME.VALUE=etpwm5Interrupt
+DRIVER.SYSTEM.VAR.ECLK_PORT_BIT0_PULL.VALUE=2
+DRIVER.SYSTEM.VAR.ECLK_SUSPEND.VALUE=0
+DRIVER.SYSTEM.VAR.CLKT_PLL1_SPEADING_AMOUNT.VALUE=61
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_10_SUB_5_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_4_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.CORE_VFP_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.SAFETY_INIT_VIM1_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.SAFETY_INIT_FMCBUS2_SELFCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.ECAP1_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.I2C_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.AJSM_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.ECLK_OSCILLATOR_FREQ.VALUE=16.000
+DRIVER.SYSTEM.VAR.CLKT_LPO_HIGH_TRIM.VALUE=100.00
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_9_MAPPING.VALUE=9
+DRIVER.SYSTEM.VAR.CLKT_VCLK4_DOMAIN_ENABLE.VALUE=FALSE
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_3_SUB_0_DISABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_71_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_63_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_55_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_47_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_41_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_39_INT_PRAGMA_ENABLE.VALUE=1
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_33_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_25_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_17_INT_ENABLE.VALUE=0
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_9_INT_TYPE.VALUE=IRQ
+DRIVER.SYSTEM.VAR.SAFETY_INIT_VIM2_RAMPARITYCHECK_ENA.VALUE=0
+DRIVER.SYSTEM.VAR.SAFETY_INIT_MIBSPI2_DP_PBISTCHECK_ENA.VALUE=0x00000000
+DRIVER.SYSTEM.VAR.CLKT_CRYSTAL_FREQ.VALUE=16.0
+DRIVER.SYSTEM.VAR.CORE_MPU_REGION_7_TYPE_VALUE.VALUE=0x0008
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_111_MAPPING.VALUE=111
+DRIVER.SYSTEM.VAR.VIM_CHANNEL_103_MAPPING.VALUE=103
+DRIVER.SYSTEM.VAR.VIM_PHANTOM_NAME.VALUE=phantomInterrupt
+DRIVER.OS.VAR.OS_USERECERSIVEMUTEXES.VALUE=0
+DRIVER.OS.VAR.OS_USETIMERS.VALUE=0
+DRIVER.OS.VAR.OS_USECNTSEMAPHORE.VALUE=0
+DRIVER.OS.VAR.OS_GENERATERUNTIMESTATS.VALUE=0
+DRIVER.OS.VAR.OS_USEMPU.VALUE=0
+DRIVER.OS.VAR.OS_TOTALHEAPSIZE.VALUE=8192
+DRIVER.OS.VAR.OS_USEVERBOSESTACK.VALUE=2
+DRIVER.OS.VAR.OS_TIMERPRIORITY.VALUE=0
+DRIVER.OS.VAR.OS_SVCENABLE.VALUE=0
+DRIVER.OS.VAR.OS_MAXTASKNAMELEN.VALUE=16
+DRIVER.OS.VAR.OS_MAXPRIORITIES.VALUE=5
+DRIVER.OS.VAR.OS_TIMERTASKSTACKDEPTH.VALUE=0
+DRIVER.OS.VAR.OS_COROUTINEPRIORITIES.VALUE=2
+DRIVER.OS.VAR.OS_USECOROUTINES.VALUE=0
+DRIVER.OS.VAR.OS_USEMUTEXES.VALUE=0
+DRIVER.OS.VAR.OS_CPUCLOCKHZ.VALUE=110000000
+DRIVER.OS.VAR.OS_USEMALLOCFAILEDHOOK.VALUE=0
+DRIVER.OS.VAR.OS_MINSTACKSIZE.VALUE=128
+DRIVER.OS.VAR.OS_SYSTEM_MODE.VALUE=0x1F
+DRIVER.OS.VAR.OS_USEPREEMPTION.VALUE=1
+DRIVER.OS.VAR.OS_IDLESHOULDYIELD.VALUE=1
+DRIVER.OS.VAR.OS_USEIDLEHOOK.VALUE=0
+DRIVER.OS.VAR.OS_TICKRATEHZ.VALUE=1000
+DRIVER.OS.VAR.OS_TIMERPQUEUELENGTH.VALUE=0
+DRIVER.OS.VAR.OS_USETRACE.VALUE=0
+DRIVER.OS.VAR.OS_USESTACK.VALUE=0
+DRIVER.OS.VAR.OS_USETICKHOOK.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL0_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL21_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL13_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL63_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL55_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL47_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL39_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL3_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL41_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL33_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL25_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL17_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL9_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL50_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL42_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL34_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL26_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL18_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL57_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL49_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL2_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL11_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL50_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL42_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL34_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL26_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL18_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL8_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL5_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL11_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL63_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL55_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL47_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL39_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL11_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL62_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL54_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL46_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL38_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL1_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL7_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL40_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL32_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL24_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL16_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL63_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL55_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL47_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL39_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL0_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL40_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL32_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL24_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL16_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL40_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL32_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL24_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL16_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL10_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL6_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL4_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL61_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL53_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL45_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL37_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL29_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL59_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL61_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL53_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL45_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL37_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL29_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL5_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL61_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL53_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL45_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL37_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL29_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL58_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_LOW_TIME.VALUE=148.945
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL30_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL22_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL14_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL31_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL23_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL15_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL9_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL30_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL22_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL14_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL4_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL3_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL51_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL43_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL35_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL27_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL19_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL58_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL58_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL3_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL9_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL51_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL43_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL35_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL27_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL19_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL60_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL52_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL44_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL36_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL28_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL20_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL12_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL56_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL48_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_VCLK_FREQ.VALUE=110
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL30_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL22_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL14_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL8_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL20_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL12_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL2_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL2_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL8_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL56_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL48_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL1_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL41_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL33_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL25_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL17_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL57_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL49_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL41_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL33_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL25_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL17_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL10_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL7_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL51_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL43_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL35_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL27_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL19_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL62_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL54_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL46_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL38_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL21_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL13_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL7_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL10_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL6_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL59_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL0_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL1_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL62_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL54_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL46_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL38_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL31_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL23_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL15_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL31_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL23_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL15_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL56_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL48_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL5_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL50_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL42_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL34_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL26_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL18_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL60_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL52_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL44_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL36_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL28_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL20_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL12_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL6_INT_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL59_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL4_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL60_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL52_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL44_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL36_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL28_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_LPC.VALUE=16384
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL21_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL13_ENABLE.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL57_INT_LEVEL.VALUE=0
+DRIVER.ESM.VAR.ESM_GROUP0_CHANNEL49_INT_LEVEL.VALUE=0
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_SOURCE.VALUE=0x00000100
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_FREQ.VALUE=0.000100000
+DRIVER.RTI.VAR.RTI_1_FREQ.VALUE=110.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_ACTUALTIME.VALUE=5.000
+DRIVER.RTI.VAR.RTI_1_COUNTER_1_UC_COMPARE.VALUE=10
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_TIME.VALUE=5.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_UPDATE.VALUE=100000
+DRIVER.RTI.VAR.RTI_1_CONTINUE_ON_SUSPEND_ENABLE.VALUE=0x00000000
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_INPUT_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_SOURCE.VALUE=0x00000000
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_TIME.VALUE=8.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_ACTUALTIME.VALUE=1.000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_UC_COMPARE.VALUE=10
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_UPDATE.VALUE=50000
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_TIME.VALUE=10.000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_NTU_SOURCE.VALUE=0
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_INPUT_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_RTI_FREQ.VALUE=0.0
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COUNTER_1_FREQUENCY.VALUE=10.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_SOURCE.VALUE=0x00001000
+DRIVER.RTI.VAR.RTI_1_COUNTER_1_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_NTU_SOURCE_REG.VALUE=0x0
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_SOURCE.VALUE=0x00000000
+DRIVER.RTI.VAR.RTI_1_NTU_1_FREQ.VALUE=0.0
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_ACTUALTIME.VALUE=10.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_FREQ.VALUE=0.001000000
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_UPDATE.VALUE=80000
+DRIVER.RTI.VAR.RTI_1_BASE.VALUE=0xFFFFFC00
+DRIVER.RTI.VAR.RTI_1_NTU_2_FREQ.VALUE=0.0
+DRIVER.RTI.VAR.RTI_1_COMPARE_3_INPUT_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COMPARE_1_FREQ.VALUE=0.000200000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_CAPTURE_SOURCE_ENABLE.VALUE=0
+DRIVER.RTI.VAR.RTI_1_COUNTER_1_CAPTURE_SOURCE_ENABLE.VALUE=0
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_UPDATE.VALUE=10000
+DRIVER.RTI.VAR.RTI_1_NTU_3_FREQ.VALUE=220.0
+DRIVER.RTI.VAR.RTI_1_COMPARE_0.VALUE=10000
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_ACTUALTIME.VALUE=8.000
+DRIVER.RTI.VAR.RTI_1_COMPARE_1.VALUE=50000
+DRIVER.RTI.VAR.RTI_1_COMPARE_2.VALUE=80000
+DRIVER.RTI.VAR.RTI_1_COMPARE_3.VALUE=100000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_NTU_FREQ.VALUE=0.0
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_FREQ.VALUE=0.000125000
+DRIVER.RTI.VAR.RTI_1_COMPARE_0_TIME.VALUE=1.000
+DRIVER.RTI.VAR.RTI_1_NTU_4_FREQ.VALUE=0.0
+DRIVER.RTI.VAR.RTI_1_COMPARE_2_INPUT_FREQ.VALUE=10.000000000
+DRIVER.RTI.VAR.RTI_1_COUNTER_0_FREQUENCY.VALUE=10.000
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_BASE_PORTA.VALUE=0xFFF7BC34
+DRIVER.GIO.VAR.GIO_BASE_PORTB.VALUE=0xFFF7BC54
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT1_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_BASE.VALUE=0xFFF7BC00
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT2_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT6_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT4_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORTB_ENABLE.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT3_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT3_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT7_PULL.VALUE=1
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT5_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT0_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT4_DIR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT0_PULDIS.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_DOUT.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT6_PSL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT2_PDR.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_LVL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT5_ENA.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT1_BIT7_POL.VALUE=0
+DRIVER.GIO.VAR.GIO_PORT0_BIT1_PSL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_TIMMINGMODE.VALUE=1
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_DIR.VALUE=0
+DRIVER.SCI.VAR.SCI_TIMMINGMODE.VALUE=1
+DRIVER.SCI.VAR.SCILIN_WAKEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT2_PULL.VALUE=2
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_DIR.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT0_DIR.VALUE=0
+DRIVER.SCI.VAR.SCI_ACTUALBAUDRATE.VALUE=9602
+DRIVER.SCI.VAR.SCI_EVENPARITY.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_FUN.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_DIR.VALUE=0
+DRIVER.SCI.VAR.SCILIN_RXINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT1_DIR.VALUE=0
+DRIVER.SCI.VAR.SCI_BASE_PORT.VALUE=0xFFF7E540
+DRIVER.SCI.VAR.SCILIN_PRESCALE.VALUE=715
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_PDR.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_FUN.VALUE=1
+DRIVER.SCI.VAR.SCI_PORT_BIT0_FUN.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT2_DIR.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_PDR.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT0_PDR.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_FUN.VALUE=1
+DRIVER.SCI.VAR.SCILIN_PEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT1_FUN.VALUE=1
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_PSL.VALUE=1
+DRIVER.SCI.VAR.SCI_OEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_PDR.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT1_PDR.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT2_FUN.VALUE=1
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_PSL.VALUE=1
+DRIVER.SCI.VAR.SCI_PORT_BIT0_PSL.VALUE=1
+DRIVER.SCI.VAR.SCI_PORT_BIT2_PDR.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_PSL.VALUE=1
+DRIVER.SCI.VAR.SCI_PORT_BIT1_PSL.VALUE=1
+DRIVER.SCI.VAR.SCILIN_BREAKINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_WAKEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_BREAKINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT2_PSL.VALUE=1
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCI_FEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCI_OEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCI_TXINTENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PARITYENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT0_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCI_BAUDRATE.VALUE=115200
+DRIVER.SCI.VAR.SCILIN_BREAKINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCI_WAKEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCI_BREAKINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCI_STOPBITS.VALUE=2
+DRIVER.SCI.VAR.SCI_RXINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_FEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_EVENPARITY.VALUE=0
+DRIVER.SCI.VAR.SCI_TXINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_OEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT1_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCI_PEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_CLKMODE.VALUE=1
+DRIVER.SCI.VAR.SCI_PARITYENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT0_PULL.VALUE=2
+DRIVER.SCI.VAR.SCI_PORT_BIT2_DOUT.VALUE=0
+DRIVER.SCI.VAR.SCILIN_BASE.VALUE=0xFFF7E400
+DRIVER.SCI.VAR.SCI_RXINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_FEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_PRESCALE.VALUE=715
+DRIVER.SCI.VAR.SCILIN_OEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_TXINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_PULL.VALUE=2
+DRIVER.SCI.VAR.SCI_PORT_BIT0_PULL.VALUE=2
+DRIVER.SCI.VAR.SCI_PEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_WAKEINTENA.VALUE=0
+DRIVER.SCI.VAR.SCI_LENGTH.VALUE=8
+DRIVER.SCI.VAR.SCILIN_CLKMODE.VALUE=1
+DRIVER.SCI.VAR.SCILIN_BASE_PORT.VALUE=0xFFF7E440
+DRIVER.SCI.VAR.SCILIN_BAUDRATE.VALUE=115200
+DRIVER.SCI.VAR.SCILIN_STOPBITS.VALUE=2
+DRIVER.SCI.VAR.SCILIN_PORT_BIT2_PULL.VALUE=2
+DRIVER.SCI.VAR.SCI_PORT_BIT1_PULL.VALUE=2
+DRIVER.SCI.VAR.SCILIN_RXINTENA.VALUE=0
+DRIVER.SCI.VAR.SCILIN_LENGTH.VALUE=8
+DRIVER.SCI.VAR.SCILIN_FEINTLVL.VALUE=0
+DRIVER.SCI.VAR.SCILIN_ACTUALBAUDRATE.VALUE=9602
+DRIVER.SCI.VAR.SCILIN_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCI_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SCI.VAR.SCI_BASE.VALUE=0xFFF7E500
+DRIVER.SCI.VAR.SCILIN_TXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_BITERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_CLKMOD.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PHASE0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_PHASE1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PHASE2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_PHASE3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_CSNR.VALUE=CS_2
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TIMEOUTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_LENGTH.VALUE=8
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_CSNR.VALUE=CS_1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PARERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_OVRNINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_CSNR.VALUE=CS_3
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_C2TDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_RXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_DEYSNCENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_BASE.VALUE=0xFFF7FC00
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_DEYSNCLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_CSNR.VALUE=CS_5
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_TXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PRESCALE0.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI1_CLKMOD.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_PRESCALE1.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PRESCALE2.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TIMEOUTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PRESCALE3.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARITYENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PARITYENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_PARITYENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_DLENERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARITYENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_BITERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_T2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_BITERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_WDELAY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.MIBSPI.VAR.MIBSPI3_WDELAY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_WDELAY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_WDELAY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_ENABLEHIGHZ.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_CSNR.VALUE=CS_4
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_CSNR.VALUE=CS_6
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_BASE_PORT.VALUE=0xFFF7FC18
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_WAITENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_WAITENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_WAITENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_WAITENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PARPOL0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARPOL1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARPOL2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARPOL3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PARERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_OVRNINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_DEYSNCENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_RXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_RXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_DEYSNCLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_CSNR.VALUE=CS_1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_BAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_CSNR.VALUE=CS_7
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_BAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_BAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_BAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_DLENERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_C2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TIMEOUTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BITERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_POLARITY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_POLARITY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_POLARITY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_BITERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_POLARITY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_CSNR.VALUE=CS_0
+DRIVER.MIBSPI.VAR.MIBSPI5_T2CDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_LENGTH.VALUE=8
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_BASE_RAM.VALUE=0xFF0A0000
+DRIVER.MIBSPI.VAR.MIBSPI5_CHARLEN0.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_CSDEF.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_CHARLEN1.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_CHARLEN2.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_CSNR.VALUE=CS_2
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_CHARLEN3.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_BASE_PORT.VALUE=0xFFF7F818
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WAITENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_WAITENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WAITENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WAITENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_CSNR.VALUE=CS_4
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_PARERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_OVRNINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PARERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_DEYSNCLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_RXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.MIBSPI.VAR.MIBSPI1_WDELAY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WDELAY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WDELAY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_WDELAY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_BAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_CSNR.VALUE=CS_3
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_BAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_BAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_BAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_TIMEOUTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_ENABLEHIGHZ.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PARITYENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_C2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PARITYENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PARITYENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_DLENERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_PARITYENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_CSNR.VALUE=CS_5
+DRIVER.MIBSPI.VAR.MIBSPI3_POLARITY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_C2TDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_POLARITY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_POLARITY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BITERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_POLARITY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_CSNR.VALUE=CS_7
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_T2CDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_BASE_RAM.VALUE=0xFF0E0000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_PARPOL0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_CHARLEN0.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI1_PARPOL1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_CHARLEN1.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PARPOL2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_CHARLEN2.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_PARPOL3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_CHARLEN3.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_BASE_PORT.VALUE=0xFFF7F418
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_T2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_SHIFTDIR0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_SHIFTDIR1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_CSNR.VALUE=CS_0
+DRIVER.MIBSPI.VAR.MIBSPI5_SHIFTDIR2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_SHIFTDIR3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_CSNR.VALUE=CS_6
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_MASTER.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PARERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_OVRNINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_DLENERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT9_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI1_BAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TIMEOUTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT11_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_CSNR.VALUE=CS_1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_POLARITY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI1_POLARITY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_BASE.VALUE=0xFFF7F400
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_POLARITY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_RXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_POLARITY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PHASE0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PHASE1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PHASE2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT9_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PHASE3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_CSNR.VALUE=CS_3
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_LENGTH.VALUE=8
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT5_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_TXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_ENABLE.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT10_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT0_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_OVRNINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_T2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT1_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT11_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_SHIFTDIR0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_MASTER.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_SHIFTDIR1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_SHIFTDIR2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_SHIFTDIR3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_CSNR.VALUE=CS_2
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG4_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PRESCALE0.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI5_PRESCALE1.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PRESCALE2.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PRESCALE3.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI3_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.MIBSPI.VAR.MIBSPI5_PARITYENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_CSNR.VALUE=CS_4
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PARITYENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PARITYENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_DLENERRLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_CSDEF.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_PARITYENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_WAITENA0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_WAITENA1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_WAITENA2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG7_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_WAITENA3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_CSNR.VALUE=CS_6
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI1_TIMEOUTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG1_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_CLKMOD.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT9_DOUT.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PHASE0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_PHASE1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PHASE2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT11_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT1_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI3_PHASE3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT2_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG4_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG6_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_RXINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_WDELAY0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_ENABLEHIGHZ.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_WDELAY1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG5_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_WDELAY2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT17_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT25_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_WDELAY3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG5_BUF_CSNR.VALUE=CS_5
+DRIVER.MIBSPI.VAR.MIBSPI3_BASE.VALUE=0xFFF7F800
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT27_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT19_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT3_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_MASTER.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG0_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG4_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.MIBSPI.VAR.MIBSPI3_C2EDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_TG2_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_LOCK.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT25_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT17_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_ONESHOT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT1_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG7_BUF_CSNR.VALUE=CS_7
+DRIVER.MIBSPI.VAR.MIBSPI1_TG3_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_C2TDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_LENGTH.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_OVRNINTLVL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_SHIFTDIR0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG6_BUF_MODE.VALUE=4
+DRIVER.MIBSPI.VAR.MIBSPI5_DEYSNCENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_SHIFTDIR1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG1_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT4_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI1_SHIFTDIR2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_SHIFTDIR3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_FUN.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_TG0_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_FUN.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT8_DIR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT0_PSL.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_T2CDELAY.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT4_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG2_TRGEVT.VALUE=TRG_ALWAYS
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_CSHOLD_LASTBUF.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT2_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI1_CSDEF.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_CS_ENCODE.VALUE=0xFF
+DRIVER.MIBSPI.VAR.MIBSPI5_TG7_USE_CS_ENCODE.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TXINTENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG3_BUF_WDEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_TG2_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_TG6_PRST.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PRESCALE0.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI1_PORT_BIT5_DOUT.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI3_PRESCALE1.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI3_BASE_RAM.VALUE=0xFF0C0000
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT3_PULL.VALUE=2
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT0_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI5_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PARPOL0.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT10_DIR.VALUE=1
+DRIVER.MIBSPI.VAR.MIBSPI3_TG3_BUF_CSHOLD.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PRESCALE2.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI3_CHARLEN0.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI5_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.MIBSPI.VAR.MIBSPI5_PARPOL1.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PRESCALE3.VALUE=109
+DRIVER.MIBSPI.VAR.MIBSPI3_CHARLEN1.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI3_DLENERRENA.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT26_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PORT_BIT18_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI5_PARPOL2.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_PORT_BIT2_PDR.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG5_BUF_DFSEL.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_TG0_BUF_CSNR.VALUE=CS_0
+DRIVER.MIBSPI.VAR.MIBSPI3_CHARLEN2.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI5_PARPOL3.VALUE=0
+DRIVER.MIBSPI.VAR.MIBSPI3_CHARLEN3.VALUE=16
+DRIVER.MIBSPI.VAR.MIBSPI1_TG1_TRGSRC.VALUE=TRG_DISABLED
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PHASE2.VALUE=0
+DRIVER.SPI.VAR.SPI2_TIMEOUTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PHASE3.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.SPI.VAR.SPI4_POLARITY0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI4_POLARITY1.VALUE=0
+DRIVER.SPI.VAR.SPI2_T2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_POLARITY2.VALUE=0
+DRIVER.SPI.VAR.SPI2_BITERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_SHIFTDIR0.VALUE=0
+DRIVER.SPI.VAR.SPI1_RXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_DEYSNCENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_POLARITY3.VALUE=0
+DRIVER.SPI.VAR.SPI1_SHIFTDIR1.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_SHIFTDIR2.VALUE=0
+DRIVER.SPI.VAR.SPI1_SHIFTDIR3.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PRESCALE0.VALUE=109
+DRIVER.SPI.VAR.SPI3_PRESCALE1.VALUE=109
+DRIVER.SPI.VAR.SPI1_C2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PRESCALE2.VALUE=109
+DRIVER.SPI.VAR.SPI1_MASTER.VALUE=1
+DRIVER.SPI.VAR.SPI3_PRESCALE3.VALUE=109
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_C2TDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI2_BASE_PORT.VALUE=0xFFF7F618
+DRIVER.SPI.VAR.SPI5_BITERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_OVRNINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_WAITENA0.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_WAITENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_OVRNINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_WAITENA2.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI4_WAITENA3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_T2CDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_TXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_BASE_RAM.VALUE=0xFF0E0000
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_CHARLEN0.VALUE=16
+DRIVER.SPI.VAR.SPI1_CHARLEN1.VALUE=16
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI1_CHARLEN2.VALUE=16
+DRIVER.SPI.VAR.SPI1_CHARLEN3.VALUE=16
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_PARERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_DLENERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_PARITYENA0.VALUE=0
+DRIVER.SPI.VAR.SPI4_ENABLEHIGHZ.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI5_T2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARITYENA1.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARITYENA2.VALUE=0
+DRIVER.SPI.VAR.SPI4_DLENERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_RXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARITYENA3.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI3_CLKMOD.VALUE=1
+DRIVER.SPI.VAR.SPI1_PHASE0.VALUE=0
+DRIVER.SPI.VAR.SPI1_PHASE1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PHASE2.VALUE=0
+DRIVER.SPI.VAR.SPI1_PHASE3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_BAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_BAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_BAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_BAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_WDELAY0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.SPI.VAR.SPI1_ENABLEHIGHZ.VALUE=0
+DRIVER.SPI.VAR.SPI5_WDELAY1.VALUE=0
+DRIVER.SPI.VAR.SPI4_C2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_WDELAY2.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_TIMEOUTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_WDELAY3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_RAM_PARITY_ENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_POLARITY0.VALUE=0
+DRIVER.SPI.VAR.SPI2_POLARITY1.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_POLARITY2.VALUE=0
+DRIVER.SPI.VAR.SPI3_DEYSNCENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_POLARITY3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_DEYSNCLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_T2CDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI1_PRESCALE0.VALUE=109
+DRIVER.SPI.VAR.SPI4_BASE_RAM.VALUE=0xFF0E0000
+DRIVER.SPI.VAR.SPI1_PRESCALE1.VALUE=109
+DRIVER.SPI.VAR.SPI4_CHARLEN0.VALUE=16
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PRESCALE2.VALUE=109
+DRIVER.SPI.VAR.SPI4_CHARLEN1.VALUE=16
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_PRESCALE3.VALUE=109
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.SPI.VAR.SPI4_CHARLEN2.VALUE=16
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_CHARLEN3.VALUE=16
+DRIVER.SPI.VAR.SPI1_BASE.VALUE=0xFFF7F400
+DRIVER.SPI.VAR.SPI3_BITERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_OVRNINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_RXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PARPOL0.VALUE=0
+DRIVER.SPI.VAR.SPI5_BITERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_SHIFTDIR0.VALUE=0
+DRIVER.SPI.VAR.SPI4_OVRNINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PARPOL1.VALUE=0
+DRIVER.SPI.VAR.SPI4_SHIFTDIR1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_PARPOL2.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI4_SHIFTDIR2.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARPOL3.VALUE=0
+DRIVER.SPI.VAR.SPI4_SHIFTDIR3.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_TXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_CLKMOD.VALUE=1
+DRIVER.SPI.VAR.SPI5_TIMEOUTENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_DLENERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PARITYENA0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PARITYENA1.VALUE=0
+DRIVER.SPI.VAR.SPI1_T2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_BASE_PORT.VALUE=0xFFF7FC18
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PARITYENA2.VALUE=0
+DRIVER.SPI.VAR.SPI3_DLENERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_PARITYENA3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_WDELAY0.VALUE=0
+DRIVER.SPI.VAR.SPI4_WDELAY1.VALUE=0
+DRIVER.SPI.VAR.SPI4_WDELAY2.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_WDELAY3.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.SPI.VAR.SPI4_MASTER.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_BASE.VALUE=0xFFF7F600
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI3_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI3_PARERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI2_C2TDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_DEYSNCENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_WAITENA0.VALUE=0
+DRIVER.SPI.VAR.SPI3_WAITENA1.VALUE=0
+DRIVER.SPI.VAR.SPI3_WAITENA2.VALUE=0
+DRIVER.SPI.VAR.SPI3_DEYSNCLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_WAITENA3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_TXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_BAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.SPI.VAR.SPI5_BAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_BAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARPOL0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_BAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_RAM_PARITY_ENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARPOL1.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARPOL2.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARPOL3.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_OVRNINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_BITERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_POLARITY0.VALUE=0
+DRIVER.SPI.VAR.SPI4_PHASE0.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_POLARITY1.VALUE=0
+DRIVER.SPI.VAR.SPI4_T2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI4_PHASE1.VALUE=0
+DRIVER.SPI.VAR.SPI5_POLARITY2.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PHASE2.VALUE=0
+DRIVER.SPI.VAR.SPI3_BITERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_OVRNINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_RXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_SHIFTDIR0.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_POLARITY3.VALUE=0
+DRIVER.SPI.VAR.SPI4_PHASE3.VALUE=0
+DRIVER.SPI.VAR.SPI2_SHIFTDIR1.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI2_SHIFTDIR2.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI1_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_SHIFTDIR3.VALUE=0
+DRIVER.SPI.VAR.SPI1_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI4_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_BASE.VALUE=0xFFF7F800
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PRESCALE0.VALUE=109
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI3_WDELAY0.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI4_PRESCALE1.VALUE=109
+DRIVER.SPI.VAR.SPI3_C2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI3_WDELAY1.VALUE=0
+DRIVER.SPI.VAR.SPI4_PRESCALE2.VALUE=109
+DRIVER.SPI.VAR.SPI3_WDELAY2.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PRESCALE3.VALUE=109
+DRIVER.SPI.VAR.SPI4_TIMEOUTENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_WDELAY3.VALUE=0
+DRIVER.SPI.VAR.SPI1_DLENERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_ENABLEHIGHZ.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_PARITYENA0.VALUE=0
+DRIVER.SPI.VAR.SPI5_C2TDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI2_PARITYENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_TIMEOUTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_BASE_PORT.VALUE=0xFFF7F818
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_PARITYENA2.VALUE=0
+DRIVER.SPI.VAR.SPI2_DLENERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_MASTER.VALUE=1
+DRIVER.SPI.VAR.SPI2_PARITYENA3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_RAM_PARITY_ENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_T2CDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_TXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_BASE_RAM.VALUE=0xFF0C0000
+DRIVER.SPI.VAR.SPI3_CHARLEN0.VALUE=16
+DRIVER.SPI.VAR.SPI3_CHARLEN1.VALUE=16
+DRIVER.SPI.VAR.SPI1_PARERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_CHARLEN2.VALUE=16
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_CHARLEN3.VALUE=16
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI3_PARERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_RXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_PARPOL0.VALUE=0
+DRIVER.SPI.VAR.SPI1_DEYSNCLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_PARPOL1.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT10_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PARPOL2.VALUE=0
+DRIVER.SPI.VAR.SPI2_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.SPI.VAR.SPI4_BASE.VALUE=0xFFF7FA00
+DRIVER.SPI.VAR.SPI3_PARPOL3.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_CLKMOD.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI3_BAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PHASE0.VALUE=0
+DRIVER.SPI.VAR.SPI3_BAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PHASE1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_BAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PHASE2.VALUE=0
+DRIVER.SPI.VAR.SPI2_TXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_BAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_PHASE3.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT3_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_OVRNINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI3_POLARITY0.VALUE=0
+DRIVER.SPI.VAR.SPI3_POLARITY1.VALUE=0
+DRIVER.SPI.VAR.SPI3_POLARITY2.VALUE=0
+DRIVER.SPI.VAR.SPI2_OVRNINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_BITERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_DEYSNCENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_POLARITY3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_WDELAY0.VALUE=0
+DRIVER.SPI.VAR.SPI2_WDELAY1.VALUE=0
+DRIVER.SPI.VAR.SPI2_WDELAY2.VALUE=0
+DRIVER.SPI.VAR.SPI2_WDELAY3.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_PRESCALE0.VALUE=109
+DRIVER.SPI.VAR.SPI2_PRESCALE1.VALUE=109
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI2_PRESCALE2.VALUE=109
+DRIVER.SPI.VAR.SPI3_TIMEOUTENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_PRESCALE3.VALUE=109
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PARITYENA0.VALUE=0
+DRIVER.SPI.VAR.SPI1_C2TDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARITYENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_TIMEOUTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_PARITYENA2.VALUE=0
+DRIVER.SPI.VAR.SPI1_DLENERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_BASE_PORT.VALUE=0xFFF7F418
+DRIVER.SPI.VAR.SPI5_RXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_BITERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARITYENA3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI4_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_WAITENA0.VALUE=0
+DRIVER.SPI.VAR.SPI5_BASE.VALUE=0xFFF7FC00
+DRIVER.SPI.VAR.SPI2_WAITENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_SHIFTDIR0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_WAITENA2.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI5_SHIFTDIR1.VALUE=0
+DRIVER.SPI.VAR.SPI2_WAITENA3.VALUE=0
+DRIVER.SPI.VAR.SPI5_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI5_SHIFTDIR2.VALUE=0
+DRIVER.SPI.VAR.SPI5_SHIFTDIR3.VALUE=0
+DRIVER.SPI.VAR.SPI1_TXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT8_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT26_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT18_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_TXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_PARPOL0.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_PARPOL1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI2_PARPOL2.VALUE=0
+DRIVER.SPI.VAR.SPI2_PARPOL3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_PARERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_CLKMOD.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_T2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_RXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI2_RAM_PARITY_ENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_BAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_BAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT8_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_BAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_BAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_WDELAY0.VALUE=0
+DRIVER.SPI.VAR.SPI2_C2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI1_WDELAY1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT9_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_MASTER.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_WDELAY2.VALUE=0
+DRIVER.SPI.VAR.SPI4_PARERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_WDELAY3.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI1_POLARITY0.VALUE=0
+DRIVER.SPI.VAR.SPI4_C2TDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI1_POLARITY1.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT4_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT25_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT17_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_POLARITY2.VALUE=0
+DRIVER.SPI.VAR.SPI1_OVRNINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_DLENERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_DEYSNCENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_POLARITY3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_WAITENA0.VALUE=0
+DRIVER.SPI.VAR.SPI5_ENABLEHIGHZ.VALUE=0
+DRIVER.SPI.VAR.SPI3_T2CDELAYACTUAL.VALUE=9.091
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_WAITENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_WAITENA2.VALUE=0
+DRIVER.SPI.VAR.SPI4_DEYSNCLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_WAITENA3.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI4_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_T2CDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_TXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT3_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT0_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI2_BASE_RAM.VALUE=0xFF0E0000
+DRIVER.SPI.VAR.SPI2_CHARLEN0.VALUE=16
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_CHARLEN1.VALUE=16
+DRIVER.SPI.VAR.SPI2_TIMEOUTENA.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_CHARLEN2.VALUE=16
+DRIVER.SPI.VAR.SPI2_ENABLEHIGHZ.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_CHARLEN3.VALUE=16
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_TIMEOUTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_BITERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_RXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT10_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_RXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_BITERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_SHIFTDIR0.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARPOL0.VALUE=0
+DRIVER.SPI.VAR.SPI3_SHIFTDIR1.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARPOL1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PHASE0.VALUE=0
+DRIVER.SPI.VAR.SPI4_C2TDELAYACTUAL.VALUE=18.182
+DRIVER.SPI.VAR.SPI3_SHIFTDIR2.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARPOL2.VALUE=0
+DRIVER.SPI.VAR.SPI5_PHASE1.VALUE=0
+DRIVER.SPI.VAR.SPI3_SHIFTDIR3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PARPOL3.VALUE=0
+DRIVER.SPI.VAR.SPI5_PHASE2.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT9_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT27_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT19_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_PHASE3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT1_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI1_TXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI5_PRESCALE0.VALUE=109
+DRIVER.SPI.VAR.SPI1_PORT_BIT10_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_C2EDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI5_PRESCALE1.VALUE=109
+DRIVER.SPI.VAR.SPI5_PRESCALE2.VALUE=109
+DRIVER.SPI.VAR.SPI3_PORT_BIT5_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI5_PRESCALE3.VALUE=109
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI3_PORT_BIT8_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI2_ACTUALBAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI2_ACTUALBAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_BASE_PORT.VALUE=0xFFF7FA18
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_ACTUALBAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT0_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI5_OVRNINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI2_ACTUALBAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI5_PORT_BIT1_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_MASTER.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT1_DOUT.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT2_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_T2CDELAY.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT9_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_PORT_BIT11_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI5_BASE_RAM.VALUE=0xFF0A0000
+DRIVER.SPI.VAR.SPI5_CHARLEN0.VALUE=16
+DRIVER.SPI.VAR.SPI3_PORT_BIT10_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI3_PORT_BIT2_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI5_CHARLEN1.VALUE=16
+DRIVER.SPI.VAR.SPI2_PARERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI5_CHARLEN2.VALUE=16
+DRIVER.SPI.VAR.SPI1_PORT_BIT4_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI5_CHARLEN3.VALUE=16
+DRIVER.SPI.VAR.SPI5_PORT_BIT25_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT17_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI5_PORT_BIT11_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI4_PARERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI2_PORT_BIT11_DIR.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_DLENERRENA.VALUE=0
+DRIVER.SPI.VAR.SPI4_RXINTENA.VALUE=0
+DRIVER.SPI.VAR.SPI3_RAM_PARITY_ENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARITYENA0.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT0_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI1_WAITENA0.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARITYENA1.VALUE=0
+DRIVER.SPI.VAR.SPI1_WAITENA1.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARITYENA2.VALUE=0
+DRIVER.SPI.VAR.SPI5_DLENERRLVL.VALUE=0
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_DEYSNCLVL.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI1_WAITENA2.VALUE=0
+DRIVER.SPI.VAR.SPI5_PARITYENA3.VALUE=0
+DRIVER.SPI.VAR.SPI1_WAITENA3.VALUE=0
+DRIVER.SPI.VAR.SPI1_PORT_BIT3_PSL.VALUE=1
+DRIVER.SPI.VAR.SPI3_PORT_BIT1_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT8_PULL.VALUE=2
+DRIVER.SPI.VAR.SPI2_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI4_BAUDRATE0.VALUE=1000.000
+DRIVER.SPI.VAR.SPI1_T2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI4_BAUDRATE1.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_BAUDRATE2.VALUE=1000.000
+DRIVER.SPI.VAR.SPI4_TXINTLVL.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT3_DIR.VALUE=1
+DRIVER.SPI.VAR.SPI2_PORT_BIT10_FUN.VALUE=1
+DRIVER.SPI.VAR.SPI4_BAUDRATE3.VALUE=1000.000
+DRIVER.SPI.VAR.SPI2_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.SPI.VAR.SPI1_TIMEOUTENA.VALUE=0
+DRIVER.SPI.VAR.SPI5_CLKMOD.VALUE=1
+DRIVER.SPI.VAR.SPI4_PORT_BIT8_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PORT_BIT9_DOUT.VALUE=0
+DRIVER.SPI.VAR.SPI3_PHASE0.VALUE=0
+DRIVER.SPI.VAR.SPI2_C2EDELAYACTUAL.VALUE=0.000
+DRIVER.SPI.VAR.SPI1_PORT_BIT5_PDR.VALUE=0
+DRIVER.SPI.VAR.SPI3_PHASE1.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_SYNC.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_BAUDRATE.VALUE=500
+DRIVER.CAN.VAR.CAN_2_PORT_RX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_ID.VALUE=30
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_ID.VALUE=22
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_ID.VALUE=14
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_ID.VALUE=9
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_RAMBASE.VALUE=0xFF1C0000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_NOMINAL_BIT_RATE.VALUE=500.000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_PIN_MODE.VALUE=1
+DRIVER.CAN.VAR.CAN_2_PHASE_SEG.VALUE=3
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_ID.VALUE=31
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_ID.VALUE=23
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_ID.VALUE=15
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_AUTO_BUS_ON.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_BASE.VALUE=0xFFF7DC00
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_ID.VALUE=40
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_ID.VALUE=32
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_ID.VALUE=24
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_ID.VALUE=16
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_RX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_ID.VALUE=41
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_ID.VALUE=33
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_ID.VALUE=25
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_ID.VALUE=17
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_BRP_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_DIR.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PROP_SEG.VALUE=4
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_ID.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_NOMINAL_BIT_RATE.VALUE=500.000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_ID.VALUE=50
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_ID.VALUE=42
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_ID.VALUE=34
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_ID.VALUE=26
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_ID.VALUE=18
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PROPAGATION_DELAY.VALUE=700
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_ID.VALUE=2
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_NOMINAL_BIT_TIME.VALUE=11
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_SAMPLE_POINT.VALUE=72.727
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_ID.VALUE=51
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_ID.VALUE=43
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_ID.VALUE=35
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_ID.VALUE=27
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_ID.VALUE=19
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_ID.VALUE=3
+DRIVER.CAN.VAR.CAN_2_PORT_RX_DOUT.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_BASE.VALUE=0xFFF7DE00
+DRIVER.CAN.VAR.CAN_1_RAMBASE.VALUE=0xFF1E0000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_RX_PULL.VALUE=2
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_IDENTIFIER_MODE.VALUE=0x40000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_ID.VALUE=60
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_ID.VALUE=52
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_ID.VALUE=44
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_ID.VALUE=36
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_ID.VALUE=28
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_ID.VALUE=4
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_AUTO_RETRANSMISSION.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_ID.VALUE=61
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_ID.VALUE=53
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_ID.VALUE=45
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_ID.VALUE=37
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_ID.VALUE=29
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_TX_PULL.VALUE=2
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_NOMINAL_BIT_RATE.VALUE=500.000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_ID.VALUE=5
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_BRPE_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_RX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_ID.VALUE=62
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_ID.VALUE=54
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_ID.VALUE=46
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_ID.VALUE=38
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_NOMINAL_BIT_TIME.VALUE=11
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_PORT_RX_DIR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_TQ.VALUE=181.818
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_ID.VALUE=6
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_ID.VALUE=63
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_ID.VALUE=55
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_ID.VALUE=47
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_ID.VALUE=39
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_TQ.VALUE=181.818
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_BRPE.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_ID.VALUE=7
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_BASE.VALUE=0xFFF7E000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_PORT_TX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_ID.VALUE=64
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_ID.VALUE=56
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_ID.VALUE=48
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_DOUT.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_TQ.VALUE=181.818
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_ID.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_ID.VALUE=10
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_ID.VALUE=57
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_ID.VALUE=49
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_SAMPLE_POINT_REFERENCE.VALUE=75
+DRIVER.CAN.VAR.CAN_1_PROPAGATION_DELAY.VALUE=700
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_ID.VALUE=9
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ID.VALUE=11
+DRIVER.CAN.VAR.CAN_1_NOMINAL_BIT_TIME.VALUE=11
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_RX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_ENABLE.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PIN_MODE.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_ID.VALUE=58
+DRIVER.CAN.VAR.CAN_2_SAMPLE_POINT_REFERENCE.VALUE=75
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_RX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_ID.VALUE=20
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ID.VALUE=12
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_AUTO_BUS_ON.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_ID.VALUE=59
+DRIVER.CAN.VAR.CAN_1_PORT_RX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_SAMPLE_POINT_REFERENCE.VALUE=75
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_SHIFT.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_BRPE.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MASK.VALUE=0x1FFFFFFF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_ID.VALUE=21
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_ID.VALUE=13
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_BRPE_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_1_BRP_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_ID.VALUE=30
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_ID.VALUE=22
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ID.VALUE=14
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_BAUDRATE.VALUE=500
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_ID.VALUE=31
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_ID.VALUE=23
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_ID.VALUE=15
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_RX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_SAMPLE_POINT.VALUE=72.727
+DRIVER.CAN.VAR.CAN_1_PORT_TX_DIR.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.CAN.VAR.CAN_3_PHASE_SEG.VALUE=3
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_ID.VALUE=40
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_ID.VALUE=32
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_ID.VALUE=24
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_ID.VALUE=16
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_PORT_RX_DOUT.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_RX_PULL.VALUE=2
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_BRPE.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MASK.VALUE=0x1FFFFFFF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_ID.VALUE=41
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_ID.VALUE=33
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_ID.VALUE=25
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_ID.VALUE=17
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_ID.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_PORT_TX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_ID.VALUE=50
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_ID.VALUE=42
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_ID.VALUE=34
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_ID.VALUE=26
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_ID.VALUE=18
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_BRP.VALUE=19
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_PROP_SEG.VALUE=4
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_ID.VALUE=10
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_ID.VALUE=2
+DRIVER.CAN.VAR.CAN_1_AUTO_BUS_ON_TR.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_RX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_ID.VALUE=51
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_ID.VALUE=43
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_ID.VALUE=35
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_ID.VALUE=27
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_ID.VALUE=19
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_AUTO_BUS_ON_TIME.VALUE=0
+DRIVER.CAN.VAR.CAN_3_PORT_RX_DIR.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_ID.VALUE=11
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_ID.VALUE=3
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_ID.VALUE=60
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_ID.VALUE=52
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_ID.VALUE=44
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_ID.VALUE=36
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_ID.VALUE=28
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_BRP.VALUE=19
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_PORT_RX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_ID.VALUE=20
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_ID.VALUE=12
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_ID.VALUE=4
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_NOMINAL_AUTO_BUS_ON_TIME.VALUE=0.000
+DRIVER.CAN.VAR.CAN_2_SHIFT.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MASK.VALUE=0x1FFFFFFF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_TX_DOUT.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_31_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_23_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_15_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_ID.VALUE=61
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_ID.VALUE=53
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_ID.VALUE=45
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_ID.VALUE=37
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_ID.VALUE=29
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_PULL.VALUE=2
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_ID.VALUE=21
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_ID.VALUE=13
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_ID.VALUE=5
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_ID.VALUE=62
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_ID.VALUE=54
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_ID.VALUE=46
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_ID.VALUE=38
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_BRP.VALUE=19
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_IDENTIFIER_MODE.VALUE=0x40000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PHASE_SEG.VALUE=3
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_ID.VALUE=30
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_ID.VALUE=22
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_ID.VALUE=14
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_ID.VALUE=6
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_AUTO_BUS_ON_TIME.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_RX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_ID.VALUE=63
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_ID.VALUE=55
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_ID.VALUE=47
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_ID.VALUE=39
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_ID.VALUE=31
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_ID.VALUE=23
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_20_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_ID.VALUE=15
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_12_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_PORT_TX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_ID.VALUE=7
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_PORT_RX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_ID.VALUE=64
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_ID.VALUE=56
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_ID.VALUE=48
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_ID.VALUE=40
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_ID.VALUE=32
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_ID.VALUE=24
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_ID.VALUE=16
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ID.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_NOMINAL_AUTO_BUS_ON_TIME.VALUE=0.000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_AUTO_RETRANSMISSION.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_ID.VALUE=57
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_ID.VALUE=49
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_AUTO_BUS_ON.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_40_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_32_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_24_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_16_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_ID.VALUE=41
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_ID.VALUE=33
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_ID.VALUE=25
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_ID.VALUE=17
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_ID.VALUE=9
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_SJW.VALUE=3
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_BAUDRATE.VALUE=500
+DRIVER.CAN.VAR.CAN_1_MESSAGE_61_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_53_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_45_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_37_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_29_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_IDENTIFIER_MODE.VALUE=0x40000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_ID.VALUE=58
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_AUTO_BUS_ON_TIME.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_ID.VALUE=50
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_ID.VALUE=42
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_ID.VALUE=34
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_ID.VALUE=26
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_ID.VALUE=18
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_TX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_PIN_MODE.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_30_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_22_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_14_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_PORT_RX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_AUTO_BUS_ON_TR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_ID.VALUE=59
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_TX_DIR.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_4_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_ID.VALUE=51
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_ID.VALUE=43
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_ID.VALUE=35
+DRIVER.CAN.VAR.CAN_3_MESSAGE_30_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_ID.VALUE=27
+DRIVER.CAN.VAR.CAN_3_MESSAGE_22_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_ID.VALUE=19
+DRIVER.CAN.VAR.CAN_3_MESSAGE_14_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_6_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_SJW.VALUE=3
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_RX_PULL.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_50_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_42_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_34_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_26_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_18_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_ID.VALUE=60
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_ID.VALUE=52
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_ID.VALUE=44
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_ID.VALUE=36
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_ID.VALUE=28
+DRIVER.CAN.VAR.CAN_1_MESSAGE_63_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_55_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_47_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_39_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_NOMINAL_AUTO_BUS_ON_TIME.VALUE=0.000
+DRIVER.CAN.VAR.CAN_1_SYNC.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_11_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_SHIFT.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_PORT_RX_PULDIS.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_40_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_32_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_24_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_16_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_ID.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_BRP_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_2_BRPE_FREQ.VALUE=5.500
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PROP_SEG.VALUE=4
+DRIVER.CAN.VAR.CAN_1_MESSAGE_41_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_33_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_25_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_17_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_ID.VALUE=61
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_ID.VALUE=53
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_ID.VALUE=45
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_ID.VALUE=37
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_ID.VALUE=29
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_SJW.VALUE=3
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_1_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_3_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_ID.VALUE=2
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_8_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_10_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_SAMPLE_POINT.VALUE=72.727
+DRIVER.CAN.VAR.CAN_2_MESSAGE_51_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_43_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_35_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_27_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_19_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_ID.VALUE=62
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_ID.VALUE=54
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_ID.VALUE=46
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_ID.VALUE=38
+DRIVER.CAN.VAR.CAN_1_MESSAGE_64_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_56_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_48_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_PORT_TX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_1_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_21_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_13_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_7_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_5_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_60_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_52_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_44_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_36_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_28_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_ID.VALUE=3
+DRIVER.CAN.VAR.CAN_1_PORT_RX_DOUT.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_1_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_ID.VALUE=63
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_ID.VALUE=55
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_ID.VALUE=47
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_ID.VALUE=39
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_RAMBASE.VALUE=0xFF1A0000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_PORT_RX_DIN.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_59_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_PORT_TX_PDR.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_ID.VALUE=4
+DRIVER.CAN.VAR.CAN_1_MESSAGE_31_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_23_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_15_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_PORT_RX_DIR.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_PORT_TX_DOUT.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_64_ID.VALUE=64
+DRIVER.CAN.VAR.CAN_3_MESSAGE_56_ID.VALUE=56
+DRIVER.CAN.VAR.CAN_3_MESSAGE_48_ID.VALUE=48
+DRIVER.CAN.VAR.CAN_3_MESSAGE_31_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_23_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_15_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_57_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_49_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_3_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_SYNC.VALUE=1
+DRIVER.CAN.VAR.CAN_2_PORT_TX_PULL.VALUE=2
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_2_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_64_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_63_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_56_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_55_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_48_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_47_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_39_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_61_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_53_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_45_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_37_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_29_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_ID.VALUE=10
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_ID.VALUE=5
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_57_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_49_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_4_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_50_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_42_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_34_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_26_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_18_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_ID.VALUE=57
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_ID.VALUE=49
+DRIVER.CAN.VAR.CAN_3_MESSAGE_41_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_33_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_25_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_17_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_9_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_62_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_54_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_46_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_38_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_51_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_43_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_35_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_27_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_19_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_9_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_41_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_33_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_25_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_17_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_11_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_5_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_58_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_11_ID.VALUE=11
+DRIVER.CAN.VAR.CAN_2_MESSAGE_6_ID.VALUE=6
+DRIVER.CAN.VAR.CAN_3_PROPAGATION_DELAY.VALUE=700
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_57_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_49_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_AUTO_RETRANSMISSION.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_20_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_9_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_58_ID.VALUE=58
+DRIVER.CAN.VAR.CAN_1_MESSAGE_60_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_52_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_44_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_36_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_28_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_3_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_7_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_10_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_PORT_TX_PSL.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_60_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_52_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_44_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_36_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_28_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_62_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_54_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_46_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_38_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_20_ID.VALUE=20
+DRIVER.CAN.VAR.CAN_2_MESSAGE_12_ID.VALUE=12
+DRIVER.CAN.VAR.CAN_2_MESSAGE_7_ID.VALUE=7
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_59_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_51_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_43_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_35_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_27_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_19_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_61_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_53_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_45_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_40_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_37_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_32_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_29_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_24_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_16_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_3_MESSAGE_10_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_1_MESSAGE_8_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_2_MASK.VALUE=0x000007FF
+DRIVER.CAN.VAR.CAN_3_MESSAGE_59_ID.VALUE=59
+DRIVER.CAN.VAR.CAN_3_MESSAGE_50_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_42_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_34_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_26_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_18_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_AUTO_BUS_ON_TR.VALUE=0
+DRIVER.CAN.VAR.CAN_2_MESSAGE_30_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_22_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_14_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_5_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_4_DLC.VALUE=8
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_63_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_62_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_55_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_54_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_47_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_46_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_EOB.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_39_DIR.VALUE=0x20000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_38_INT_ENA_REF.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_PORT_RX_FUN.VALUE=1
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_BOOL_ENA.VALUE=0
+DRIVER.CAN.VAR.CAN_1_MESSAGE_58_INT_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_21_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_1_MESSAGE_13_ENA.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_6_RTR.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_3_MESSAGE_2_INT_LEVEL.VALUE=0x00000000
+DRIVER.CAN.VAR.CAN_2_MESSAGE_21_ID.VALUE=21
+DRIVER.CAN.VAR.CAN_2_MESSAGE_13_ID.VALUE=13
+DRIVER.CAN.VAR.CAN_2_MESSAGE_8_ID.VALUE=8
+DRIVER.ADC.VAR.ADC2_GROUP1_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN21_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_GROUP1_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_PARITY_ENABLE.VALUE=0x00000005
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN17_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC1_GROUP2_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC1_GROUP1_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP2_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC1_GROUP1_LENGTH.VALUE=16
+DRIVER.ADC.VAR.ADC2_GROUP1_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_DIR.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_ALT_TRIG.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC2_GROUP2_LENGTH.VALUE=32
+DRIVER.ADC.VAR.ADC2_GROUP2_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN22_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP2_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN18_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_BND.VALUE=2
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN23_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP0_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC2_GROUP0_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC2_GROUP1_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC2_BND.VALUE=2
+DRIVER.ADC.VAR.ADC2_GROUP1_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_PDR.VALUE=0
+DRIVER.ADC.VAR.ADC2_ACTUAL_CYCLE_TIME.VALUE=100.00
+DRIVER.ADC.VAR.ADC2_GROUP1_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_TRIGGER_MODE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN19_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.ADC.VAR.ADC2_GROUP1_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC2_GROUP0_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC1_GROUP2_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP0_LENGTH.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP0_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN20_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN24_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN16_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_TRIGGER_MODE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_PSL.VALUE=1
+DRIVER.ADC.VAR.ADC1_GROUP2_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC1_GROUP0_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_LENGTH.VALUE=64
+DRIVER.ADC.VAR.ADC2_GROUP0_DISCHARGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN21_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP0_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_GROUP0_SAMPLE_PRESCALER.VALUE=1
+DRIVER.ADC.VAR.ADC1_GROUP0_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_RAMBASE.VALUE=0xFF3A0000
+DRIVER.ADC.VAR.ADC2_GROUP0_BND.VALUE=8
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_DOUT.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC1_GROUP0_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC2_GROUP2_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP1_BND.VALUE=8
+DRIVER.ADC.VAR.ADC2_GROUP0_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_ALT_TRIG_COMP.VALUE=1
+DRIVER.ADC.VAR.ADC2_GROUP1_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN17_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_PARITY_ENABLE.VALUE=0x00000005
+DRIVER.ADC.VAR.ADC1_ACTUAL_CYCLE_TIME.VALUE=100.00
+DRIVER.ADC.VAR.ADC2_GROUP2_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN22_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN18_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_RAMBASE.VALUE=0xFF3E0000
+DRIVER.ADC.VAR.ADC1_BASE.VALUE=0xFFF7C000
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_DIR.VALUE=0
+DRIVER.ADC.VAR.ADC2_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.ADC.VAR.ADC2_GROUP2_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP2_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP2_LENGTH.VALUE=32
+DRIVER.ADC.VAR.ADC1_GROUP0_BND.VALUE=8
+DRIVER.ADC.VAR.ADC2_GROUP2_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC2_GROUP2_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP0_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP1_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_GROUP2_TRIGGER_MODE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN23_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_BND.VALUE=8
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN19_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_DOUT.VALUE=0
+DRIVER.ADC.VAR.ADC2_CYCLE_TIME.VALUE=100.00
+DRIVER.ADC.VAR.ADC1_GROUP1_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC1_GROUP1_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_PRESCALE.VALUE=10
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN20_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP0_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_BASE.VALUE=0xFFF7C200
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN24_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN16_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_PDR.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC1_GROUP0_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_PULL.VALUE=2
+DRIVER.ADC.VAR.ADC1_GROUP0_LENGTH.VALUE=16
+DRIVER.ADC.VAR.ADC2_GROUP1_CONVERSION_TIME.VALUE=1.300
+DRIVER.ADC.VAR.ADC1_GROUP0_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP0_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC2_GROUP1_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC1_GROUP1_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC1_GROUP0_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP0_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_PORT_BIT0_PSL.VALUE=1
+DRIVER.ADC.VAR.ADC1_GROUP2_EXTENDED_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_LENGTH.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP1_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN3_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN21_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC1_GROUP2_HW_TRIGGER_SOURCE_ALT.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN17_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN22_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_CYCLE_TIME.VALUE=100.00
+DRIVER.ADC.VAR.ADC2_GROUP0_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN7_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC1_GROUP0_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN0_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_ID_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_DISCHARGE_TIME.VALUE=0.00
+DRIVER.ADC.VAR.ADC1_GROUP2_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC1_GROUP1_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_ALT_TRIG_COMP.VALUE=1
+DRIVER.ADC.VAR.ADC1_GROUP0_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_ALT_TRIG.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP1_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_RAM_PARITY_ENA.VALUE=0
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN4_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_DISCHARGE_PRESCALER.VALUE=0
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN8_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN18_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_RESOLUTION.VALUE=12_BIT
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN1_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN11_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN23_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN15_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_HW_TRIGGER_SOURCE.VALUE=EVENT
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN19_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_PRESCALE.VALUE=10
+DRIVER.ADC.VAR.ADC2_GROUP0_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP2_PINS.VALUE=0
+DRIVER.ADC.VAR.ADC2_PORT_BIT0_PULL.VALUE=2
+DRIVER.ADC.VAR.ADC1_LENGTH.VALUE=64
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN20_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN12_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_CHANNEL_TOTAL_TIME.VALUE=0.000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_CONTINUOUS_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_PIN5_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_ACTUAL_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC1_GROUP0_SCAN_TIME.VALUE=0.000
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_PIN13_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP0_TRIGGER_EDGE_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN9_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_SAMPLE_TIME.VALUE=300.00
+DRIVER.ADC.VAR.ADC2_GROUP1_FIFO_SIZE.VALUE=16
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN2_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP1_PIN10_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP2_PIN6_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN24_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_PIN16_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC2_GROUP2_PIN14_ENABLE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP1_TRIGGER_MODE.VALUE=0x00000000
+DRIVER.ADC.VAR.ADC1_GROUP0_ACTUAL_DISCHARGE_TIME.VALUE=0.00
+DRIVER.LIN.VAR.LIN_PORT_BIT0_DOUT.VALUE=0
+DRIVER.LIN.VAR.LIN_PEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TOAWUSINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_BEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TOA3WUSINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT1_DOUT.VALUE=0
+DRIVER.LIN.VAR.LIN_MAXPRESCALE.VALUE=4954
+DRIVER.LIN.VAR.LIN_LENGTH.VALUE=8
+DRIVER.LIN.VAR.LIN_PARITYENA.VALUE=0
+DRIVER.LIN.VAR.LIN_BREAKINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TX_MASK.VALUE=0xFF
+DRIVER.LIN.VAR.LIN_MSTMOD.VALUE=1
+DRIVER.LIN.VAR.LIN_SDEL.VALUE=1
+DRIVER.LIN.VAR.LIN_PORT_BIT2_DOUT.VALUE=0
+DRIVER.LIN.VAR.LIN_TOAWUSINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_WAKEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_HGENCTRL.VALUE=1
+DRIVER.LIN.VAR.LIN_TOA3WUSINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT0_DIR.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT0_PULL.VALUE=2
+DRIVER.LIN.VAR.LIN_CEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_BREAKINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PBEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT1_DIR.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT0_FUN.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT2_DIR.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT1_PULL.VALUE=2
+DRIVER.LIN.VAR.LIN_WAKEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT0_PDR.VALUE=0
+DRIVER.LIN.VAR.LIN_OEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT1_FUN.VALUE=2
+DRIVER.LIN.VAR.LIN_NREINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT1_PDR.VALUE=0
+DRIVER.LIN.VAR.LIN_PORT_BIT2_FUN.VALUE=4
+DRIVER.LIN.VAR.LIN_CEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT0_PSL.VALUE=1
+DRIVER.LIN.VAR.LIN_PORT_BIT2_PULL.VALUE=2
+DRIVER.LIN.VAR.LIN_PBEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT2_PDR.VALUE=0
+DRIVER.LIN.VAR.LIN_BASE_PORT.VALUE=0xFFF7E440
+DRIVER.LIN.VAR.LIN_ACTUALBAUDRATE.VALUE=19.985
+DRIVER.LIN.VAR.LIN_PORT_BIT1_PSL.VALUE=2
+DRIVER.LIN.VAR.LIN_ISFEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_FEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT2_PSL.VALUE=4
+DRIVER.LIN.VAR.LIN_OEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TXINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_NREINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_IDINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_SBREAK.VALUE=13
+DRIVER.LIN.VAR.LIN_TOINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_BAUDRATE.VALUE=20.000
+DRIVER.LIN.VAR.LIN_RX_MASK.VALUE=0xFF
+DRIVER.LIN.VAR.LIN_ISFEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_RXINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_BASE.VALUE=0xFFF7E400
+DRIVER.LIN.VAR.LIN_FEINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TXINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.LIN.VAR.LIN_IDINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_TOINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_MAXBAUDRATE.VALUE=22.204
+DRIVER.LIN.VAR.LIN_BEINTENA.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_RXINTLVL.VALUE=0x00000000
+DRIVER.LIN.VAR.LIN_PRESCALE.VALUE=343
+DRIVER.LIN.VAR.LIN_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE5_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_PWM0_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT0_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_INT_X0.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE4_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_BIT1_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_HRSHARE.VALUE=0x00000008
+DRIVER.HET.VAR.HET2_INT_X1.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_BIT29_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT0_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_IGNORE_SUSPEND_ENABLE.VALUE=0x00020000
+DRIVER.HET.VAR.HET2_PWM3_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_PWM1_PIN_SELECT.VALUE=10
+DRIVER.HET.VAR.HET2_BIT12_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT3_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_INT_X2.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X3.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_INT_X4.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_PWM0_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT4_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM3_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT4_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X5.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_IGNORE_SUSPEND_ENABLE.VALUE=0x00020000
+DRIVER.HET.VAR.HET1_BIT30_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT26_HRSHARE.VALUE=0x00002000
+DRIVER.HET.VAR.HET1_BIT22_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM4_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT3_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X6.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE0_PIN_SELECT.VALUE=9
+DRIVER.HET.VAR.HET1_BIT28_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT7_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_INT_X7.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT7_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X8.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT18_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT10_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X9.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT11_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT11_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_PWM4_PIN_SELECT.VALUE=16
+DRIVER.HET.VAR.HET2_PWM4_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET1_RAM_BASE.VALUE=0xFF460000
+DRIVER.HET.VAR.HET2_EDGE6_BOTH.VALUE=0
+DRIVER.HET.VAR.HET2_PWM2_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT15_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE2_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_BIT11_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PIN_ENABLE.VALUE=0
+DRIVER.HET.VAR.HET1_CAP3_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT24_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT5_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT27_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT19_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE6_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT24_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT16_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT2_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE3_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE5_PIN_SELECT.VALUE=21
+DRIVER.HET.VAR.HET2_BIT13_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT27_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT19_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_CAP5_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_PWM4_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT8_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_CAP2_PIN_SELECT.VALUE=4
+DRIVER.HET.VAR.HET2_BIT4_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT29_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT0_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT8_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_BIT1_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT12_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_PWM4_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_BIT18_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_BIT16_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_BIT0_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT6_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP5_PIN_SELECT.VALUE=26
+DRIVER.HET.VAR.HET1_BIT28_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT10_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE7_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM0_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT1_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE7_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE5_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_PWM5_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_BIT3_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE7_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE1_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_PWM1_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT14_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT4_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE4_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_BIT5_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_MASTER.VALUE=1
+DRIVER.HET.VAR.HET2_EDGE5_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_PWM0_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT2_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT5_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_BIT8_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT1_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_LR_ACTUALTIME.VALUE=1163.636
+DRIVER.HET.VAR.HET1_PWM5_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_PWM5_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM4_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_BIT9_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM0_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT5_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_PIN_SELECT.VALUE=18
+DRIVER.HET.VAR.HET2_BIT13_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT12_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE7_BOTH.VALUE=0
+DRIVER.HET.VAR.HET2_BIT17_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_BIT30_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT27_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT19_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_BIT7_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE5_PIN_SELECT.VALUE=21
+DRIVER.HET.VAR.HET1_BIT29_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT0_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET_DIS_BLACKBOX.VALUE=0
+DRIVER.HET.VAR.HET2_PWM7_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_HR_ACTUALFREQUENCY.VALUE=110.000
+DRIVER.HET.VAR.HET2_PWM5_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_BIT25_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT17_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT4_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE0_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_CAP6_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT20_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT15_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X10.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT28_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_INT_X11.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X20.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X12.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_PWM6_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT16_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X21.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X13.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_HR_PRESCALE.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE6_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM6_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_LR_PRESCALE.VALUE=7
+DRIVER.HET.VAR.HET2_PWM0_PIN_SELECT.VALUE=8
+DRIVER.HET.VAR.HET2_BIT6_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X30.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X22.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X14.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X31.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X23.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X15.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_INT_X24.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X16.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BASE_PORT.VALUE=0xFFF7B84C
+DRIVER.HET.VAR.HET2_PWM5_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT0_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X25.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X17.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_PWM3_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT10_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT14_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X26.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X18.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X27.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X19.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT18_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X28.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_PWM0_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_BIT18_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_INT_X29.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_CAP7_PIN_SELECT.VALUE=6
+DRIVER.HET.VAR.HET2_BIT8_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_PWM4_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_PWM3_PIN_SELECT.VALUE=14
+DRIVER.HET.VAR.HET1_BIT11_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT1_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM0_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_BIT2_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE6_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_BIT5_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT14_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_BIT20_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PIN_ENABLE.VALUE=0
+DRIVER.HET.VAR.HET2_BIT16_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT5_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM0_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_BIT6_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM7_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_PWM0_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT8_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE4_PIN_SELECT.VALUE=20
+DRIVER.HET.VAR.HET2_BIT7_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT9_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT3_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT10_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_CAP1_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE6_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP1_PIN_SELECT.VALUE=2
+DRIVER.HET.VAR.HET2_BIT15_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT13_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE3_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_PWM6_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT9_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE0_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_PWM2_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_BIT26_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT18_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT6_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE3_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT16_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT17_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP4_PIN_SELECT.VALUE=24
+DRIVER.HET.VAR.HET1_BIT29_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT0_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM2_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_EDGE3_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT3_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_HRSHARE.VALUE=0x00000002
+DRIVER.HET.VAR.HET2_PWM6_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_BIT8_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_BIT4_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT4_HRSHARE.VALUE=0x00000004
+DRIVER.HET.VAR.HET1_BIT25_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT17_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT16_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_PWM4_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_PWM1_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_PWM7_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_PWM3_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_BIT24_HRSHARE.VALUE=0x00001000
+DRIVER.HET.VAR.HET1_BIT16_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT10_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_PIN_SELECT.VALUE=17
+DRIVER.HET.VAR.HET1_BIT20_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT12_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT3_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X10.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X11.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT3_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE7_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE0_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT7_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X20.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X12.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT14_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_BIT10_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X21.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X13.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT18_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE4_PIN_SELECT.VALUE=20
+DRIVER.HET.VAR.HET1_INT_X30.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X22.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X14.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET1_INT_X31.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X23.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X15.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE5_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_PWM1_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_BIT7_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_INT_X24.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X16.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP2_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM3_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X25.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X17.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT9_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT5_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X26.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X18.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X27.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X19.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT11_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_INT_X28.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_RAM_SIZE.VALUE=160
+DRIVER.HET.VAR.HET1_EDGE2_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_INT_X29.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT17_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT14_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_PWM3_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_PWM5_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_PWM1_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_BIT10_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP4_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_BIT8_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT4_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_PWM0_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_BIT4_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_EDGE1_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM1_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT27_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT19_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT8_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT14_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP6_PIN_SELECT.VALUE=4
+DRIVER.HET.VAR.HET1_PWM2_PIN_SELECT.VALUE=12
+DRIVER.HET.VAR.HET1_BIT1_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM3_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_PWM2_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_EDGE4_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT28_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE0_BOTH.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE6_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_PWM5_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT8_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT4_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE3_PIN_SELECT.VALUE=15
+DRIVER.HET.VAR.HET2_PWM2_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT18_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT11_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT10_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_EDGE1_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_PWM5_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_BIT8_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP0_PIN_SELECT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT21_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT13_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT5_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_BIT4_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE2_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_BIT9_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_BIT1_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM4_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_BIT7_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_PWM7_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_BIT8_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM2_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT12_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT31_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT23_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT15_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP3_PIN_SELECT.VALUE=6
+DRIVER.HET.VAR.HET1_BIT7_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_PWM4_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_BIT12_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_PWM0_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_PWM0_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_CAP5_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT26_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT15_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM0_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_EDGE4_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_BIT20_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT12_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE5_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM6_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_BIT6_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE1_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_PWM3_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE3_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT28_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_CAP7_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM3_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_PWM4_PIN_SELECT.VALUE=16
+DRIVER.HET.VAR.HET1_BIT10_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_BIT9_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE3_PIN_SELECT.VALUE=15
+DRIVER.HET.VAR.HET1_PWM1_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT8_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BASE.VALUE=0xFFF7B800
+DRIVER.HET.VAR.HET2_EDGE1_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_PWM6_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT12_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT2_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_PIN_SELECT.VALUE=19
+DRIVER.HET.VAR.HET1_PWM5_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_LR_ACTUALTIME.VALUE=1163.636
+DRIVER.HET.VAR.HET1_BIT21_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT13_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT11_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM3_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_PWM7_ENA.VALUE=0
+DRIVER.HET.VAR.HET1_HR_PRESCALE.VALUE=0
+DRIVER.HET.VAR.HET1_BIT30_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT22_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT14_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT7_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_HR_ACTUALFREQUENCY.VALUE=110.000
+DRIVER.HET.VAR.HET2_PWM1_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT5_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE4_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP0_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_BIT4_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE2_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_PWM2_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT8_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT11_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_EDGE6_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_MASTER.VALUE=1
+DRIVER.HET.VAR.HET1_PWM5_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT9_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_EDGE6_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT10_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP5_PIN_SELECT.VALUE=2
+DRIVER.HET.VAR.HET1_PWM1_PIN_SELECT.VALUE=10
+DRIVER.HET.VAR.HET1_BIT9_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT13_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_PWM7_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_PWM5_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT24_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.HET.VAR.HET2_BIT16_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT10_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE0_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_BIT30_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X0.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE2_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_PWM4_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT28_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT0_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT0_HRSHARE.VALUE=0x00000001
+DRIVER.HET.VAR.HET1_INT_X1.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE2_PIN_SELECT.VALUE=13
+DRIVER.HET.VAR.HET2_PWM2_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT8_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X2.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_DIS_BLACKBOX.VALUE=0
+DRIVER.HET.VAR.HET2_LR_TIME.VALUE=800.000
+DRIVER.HET.VAR.HET1_INT_X3.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_EDGE5_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_BIT29_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT0_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_INT_X4.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT2_HRSHARE.VALUE=0x00000002
+DRIVER.HET.VAR.HET1_BIT21_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT13_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X5.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_BIT20_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT3_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_INT_X6.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET1_INT_X7.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BASE_PORT.VALUE=0xFFF7B94C
+DRIVER.HET.VAR.HET1_INT_X8.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT17_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT2_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_BIT30_HRSHARE.VALUE=0x00008000
+DRIVER.HET.VAR.HET1_BIT22_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_INT_X9.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BASE.VALUE=0xFFF7B900
+DRIVER.HET.VAR.HET2_EDGE2_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE0_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_BIT10_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP2_PIN_SELECT.VALUE=4
+DRIVER.HET.VAR.HET1_BIT11_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_PWM0_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT31_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT23_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT20_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT15_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM4_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_BIT18_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP1_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT30_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_PWM6_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT31_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT23_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT15_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT9_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE6_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT7_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE1_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_RAM_SIZE.VALUE=160
+DRIVER.HET.VAR.HET2_BIT9_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT21_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT13_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT0_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_CAP3_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_BIT0_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_PIN_SELECT.VALUE=14
+DRIVER.HET.VAR.HET2_PWM6_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT14_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE7_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT17_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_EDGE2_PIN_SELECT.VALUE=13
+DRIVER.HET.VAR.HET1_BIT20_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_HR_FREQUENCY.VALUE=110.000
+DRIVER.HET.VAR.HET2_PWM2_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_EDGE5_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE1_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_PWM5_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT24_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT18_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE0_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT0_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_PWM6_PIN_SELECT.VALUE=18
+DRIVER.HET.VAR.HET2_EDGE2_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE7_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT1_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_EDGE5_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE4_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_HRSHARE.VALUE=0x00000008
+DRIVER.HET.VAR.HET1_BIT30_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT4_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_BIT1_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT8_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT0_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT4_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE7_PIN_SELECT.VALUE=23
+DRIVER.HET.VAR.HET2_PWM7_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_PWM3_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET1_PWM3_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_EDGE3_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_PWM1_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM2_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT28_HRSHARE.VALUE=0x00004000
+DRIVER.HET.VAR.HET1_BIT26_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP4_PIN_SELECT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM0_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_PWM0_PIN_SELECT.VALUE=8
+DRIVER.HET.VAR.HET1_BIT21_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT13_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_LR_TIME.VALUE=800.000
+DRIVER.HET.VAR.HET2_EDGE0_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM3_ACTION.VALUE=3
+DRIVER.HET.VAR.HET1_BIT25_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT21_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT17_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT13_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM5_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_PWM1_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT20_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT11_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT24_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT16_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM5_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_RAM_BASE.VALUE=0xFF440000
+DRIVER.HET.VAR.HET2_PWM3_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT7_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM4_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT15_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP4_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT8_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE1_PIN_SELECT.VALUE=11
+DRIVER.HET.VAR.HET1_CAP7_PIN_SELECT.VALUE=30
+DRIVER.HET.VAR.HET1_BIT31_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT23_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT15_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE7_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_BIT2_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE4_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_BIT15_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_BIT10_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP6_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM2_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT18_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_BIT0_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET1_BIT30_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE1_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE2_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_BIT26_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM1_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT16_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT5_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_RAM_PARITY_ENA.VALUE=0x00000005
+DRIVER.HET.VAR.HET1_PWM7_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_PWM0_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT1_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_CAP1_PIN_SELECT.VALUE=2
+DRIVER.HET.VAR.HET1_PWM7_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_BIT2_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM6_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM4_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT10_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM7_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT10_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE7_PIN_SELECT.VALUE=23
+DRIVER.HET.VAR.HET1_BIT24_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT5_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM7_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_PWM7_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_PWM4_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT3_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE5_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_EDGE4_BOTH.VALUE=0
+DRIVER.HET.VAR.HET2_PWM1_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT11_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE1_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_LR_PRESCALE.VALUE=7
+DRIVER.HET.VAR.HET2_PWM2_PIN_SELECT.VALUE=12
+DRIVER.HET.VAR.HET2_BIT1_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT31_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT23_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT15_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM6_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_EDGE2_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT30_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT27_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT22_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT19_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT14_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_EDGE2_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_BIT8_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT9_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE1_PIN_SELECT.VALUE=11
+DRIVER.HET.VAR.HET1_BIT25_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT17_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_BIT8_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_PWM4_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM0_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT14_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT2_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM5_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_BIT0_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_PIN_SELECT.VALUE=17
+DRIVER.HET.VAR.HET1_BIT25_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT17_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM6_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT4_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE1_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_CAP7_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT28_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT24_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT16_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_BIT12_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_PWM1_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT0_HRSHARE.VALUE=0x00000001
+DRIVER.HET.VAR.HET1_EDGE7_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_PWM1_DUTY_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE6_PIN_SELECT.VALUE=22
+DRIVER.HET.VAR.HET2_BIT2_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_DIS_BLACKBOX.VALUE=0
+DRIVER.HET.VAR.HET1_BIT24_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT16_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE3_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE6_EVENT.VALUE=1
+DRIVER.HET.VAR.HET1_EDGE3_BOTH.VALUE=0
+DRIVER.HET.VAR.HET1_PWM6_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET1_BIT28_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT13_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_PWM1_DUTY.VALUE=50
+DRIVER.HET.VAR.HET1_BIT20_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT12_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP3_PIN_SELECT.VALUE=6
+DRIVER.HET.VAR.HET2_BIT10_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT2_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_PWM3_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_EDGE3_EVENT.VALUE=1
+DRIVER.HET.VAR.HET2_PWM6_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_PWM3_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET1_BIT3_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_PWM1_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT1_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT26_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT6_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM1_DUTYTIME.VALUE=501.527
+DRIVER.HET.VAR.HET2_BIT5_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET2_BIT16_HRSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP0_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET1_BIT4_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE0_PIN_SELECT.VALUE=9
+DRIVER.HET.VAR.HET2_BIT10_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_CAP6_PIN_SELECT.VALUE=28
+DRIVER.HET.VAR.HET1_PWM2_PERIOD.VALUE=1000.000
+DRIVER.HET.VAR.HET2_EDGE5_BOTH.VALUE=0
+DRIVER.HET.VAR.HET2_BIT13_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT3_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE0_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_PWM7_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_BIT3_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT25_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT17_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_EDGE4_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT31_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT29_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT23_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT15_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_BIT0_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_CAP2_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_PWM7_DUTY.VALUE=50
+DRIVER.HET.VAR.HET2_BIT6_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM4_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT11_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT26_DOUT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT18_DOUT.VALUE=0
+DRIVER.HET.VAR.HET2_PWM6_PERIOD_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_ACTION.VALUE=3
+DRIVER.HET.VAR.HET2_BIT9_PULL.VALUE=1
+DRIVER.HET.VAR.HET1_PWM7_DUTY_LVL.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM3_PERIOD_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM2_ENA.VALUE=0
+DRIVER.HET.VAR.HET2_BIT12_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE3_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM7_PIN_SELECT.VALUE=19
+DRIVER.HET.VAR.HET2_BIT2_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_CAP0_PIN_SELECT.VALUE=0
+DRIVER.HET.VAR.HET1_BIT27_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT19_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT6_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM0_DUTY_PRESCALER.VALUE=55296
+DRIVER.HET.VAR.HET2_EDGE7_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_PWM0_POLARITY.VALUE=3
+DRIVER.HET.VAR.HET1_BIT26_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_XORSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT10_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_EDGE6_PIN_SELECT.VALUE=22
+DRIVER.HET.VAR.HET1_PWM0_ACTUALPERIOD.VALUE=1000.727
+DRIVER.HET.VAR.HET2_HR_FREQUENCY.VALUE=110.000
+DRIVER.HET.VAR.HET2_BIT17_PULL.VALUE=1
+DRIVER.HET.VAR.HET2_BIT14_DIR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_PWM5_PERIOD_PRESCALER.VALUE=109952
+DRIVER.HET.VAR.HET2_EDGE4_POLARITY.VALUE=0
+DRIVER.HET.VAR.HET2_EDGE0_INTENA.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT7_PULDIS.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT4_HRSHARE.VALUE=0x00000004
+DRIVER.HET.VAR.HET1_BIT2_ANDSHARE.VALUE=0x00000000
+DRIVER.HET.VAR.HET2_BIT4_PDR.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT26_PSL.VALUE=0x00000000
+DRIVER.HET.VAR.HET1_BIT18_PSL.VALUE=0x00000000
+DRIVER.RTP.VAR.RTP_PORT_BIT1_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT3_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT1_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT5_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT14_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT11_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT3_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT8_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT4_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT6_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT2_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT10_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT6_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT14_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT12_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT17_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT4_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT10_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT2_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT5_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT3_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT11_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT7_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT13_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT5_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT11_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT9_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT6_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT12_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT4_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT12_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT8_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT10_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT15_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT14_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT18_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT6_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT0_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT12_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT3_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT7_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT5_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT13_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT9_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT11_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT15_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT7_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT13_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT8_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT6_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT14_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT12_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT16_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT16_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT8_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT1_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT14_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT4_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT9_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT7_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT15_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT13_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT10_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT17_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT9_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT15_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT8_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT16_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT14_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT18_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT17_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_BASE_PORT.VALUE=0xFFFFFA38
+DRIVER.RTP.VAR.RTP_PORT_BIT2_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT16_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT5_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT9_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT17_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT15_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT15_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT11_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT17_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT7_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT18_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT16_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT18_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT3_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT18_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT6_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT17_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT12_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT13_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT18_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT4_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT7_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT10_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT13_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT18_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT5_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT8_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT0_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT11_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT14_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT1_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT6_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT0_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT9_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT2_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT12_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT16_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT15_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT0_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT0_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT1_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_BASE.VALUE=0xFFFFFA00
+DRIVER.RTP.VAR.RTP_PORT_BIT3_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT1_PDR.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT7_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT2_FUN.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT0_PSL.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT4_DIR.VALUE=0
+DRIVER.RTP.VAR.RTP_BASE_RAM.VALUE=0xFFF83000
+DRIVER.RTP.VAR.RTP_PORT_BIT13_PULL.VALUE=2
+DRIVER.RTP.VAR.RTP_PORT_BIT10_DIR.VALUE=1
+DRIVER.RTP.VAR.RTP_PORT_BIT16_DOUT.VALUE=0
+DRIVER.RTP.VAR.RTP_PORT_BIT2_PDR.VALUE=0
+DRIVER.USB.VAR.USB1_MANUFACTURING_STRING_COUNT.VALUE=1
+DRIVER.USB.VAR.USB1_MANUFACTURING_STRING.VALUE=0
+DRIVER.USB.VAR.USB1_SERIAL_NUM_STRING_COUNT.VALUE=1
+DRIVER.USB.VAR.USB1_CONTROL_INTERFACE_STRING_COUNT.VALUE=1
+DRIVER.USB.VAR.USB1_POWER_TYPE.VALUE=USB_CONF_ATTR_SELF_PWR
+DRIVER.USB.VAR.USB1_LANGUAGE.VALUE=USB_LANG_EN_UK
+DRIVER.USB.VAR.USB1_VENDORID.VALUE=0x0000
+DRIVER.USB.VAR.USB1_CONFIG_STRING_COUNT.VALUE=1
+DRIVER.USB.VAR.USB_BASE.VALUE=0xFCF78A00
+DRIVER.USB.VAR.USB1_CONTROL_INTERFACE_STRING.VALUE=0
+DRIVER.USB.VAR.USB1_CONFIG_STRING.VALUE=0
+DRIVER.USB.VAR.USB1_CDC.VALUE=1
+DRIVER.USB.VAR.USB1_PRODUCT_STRING_COUNT.VALUE=1
+DRIVER.USB.VAR.USB1_PRODUCTID.VALUE=0x0000
+DRIVER.USB.VAR.USB1_PRODUCT_STRING.VALUE=0
+DRIVER.USB.VAR.USB1_UART_BUFFER_SIZE.VALUE=0x0001
+DRIVER.USB.VAR.USB1_SERIAL_NUM_STRING.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT14_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT17_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT17_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT4_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT1_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT18_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT0_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT15_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT4_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT2_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT7_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT15_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT18_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT0_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_BASE.VALUE=0xFFFFF700
+DRIVER.DMM.VAR.DMM_PORT_BIT1_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT3_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT9_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT1_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT2_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT2_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT0_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT5_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT4_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT8_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT16_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT2_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT3_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_BASE_PORT.VALUE=0xFFFFF770
+DRIVER.DMM.VAR.DMM_PORT_BIT1_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT5_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT10_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT3_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT4_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT2_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT6_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT6_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT7_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT9_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT17_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT4_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT5_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT3_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT0_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT7_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT18_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT5_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT6_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT4_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT8_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT7_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT18_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT6_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT10_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT7_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT5_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT5_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT1_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT9_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT12_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT7_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT8_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT16_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT6_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT8_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT10_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT8_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT12_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT9_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT10_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT7_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT2_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT10_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT13_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT9_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT3_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT8_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT9_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT12_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT10_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT14_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT14_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT0_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT12_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT9_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT3_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT11_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT14_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT11_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT15_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT8_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT14_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT12_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT16_DIR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT1_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT14_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT4_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT12_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT15_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT15_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT12_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT17_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT15_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT16_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT14_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT18_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT2_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT6_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT16_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT5_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT13_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT16_DOUT.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT17_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT15_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT17_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT17_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT10_PULDIS.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT18_FUN.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT16_PSL.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT3_PULL.VALUE=2
+DRIVER.DMM.VAR.DMM_PORT_BIT0_DIR.VALUE=1
+DRIVER.DMM.VAR.DMM_PORT_BIT18_PDR.VALUE=0
+DRIVER.DMM.VAR.DMM_PORT_BIT6_DOUT.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT0_DIR.VALUE=0
+DRIVER.I2C.VAR.I2C_STOPBITS.VALUE=2
+DRIVER.I2C.VAR.I2C_PORT_BIT1_DIR.VALUE=0
+DRIVER.I2C.VAR.I2C_ICXRDYINTLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_BASE_PORT.VALUE=0xFFF7D44C
+DRIVER.I2C.VAR.I2C_DATACOUNT.VALUE=8
+DRIVER.I2C.VAR.I2C_ADDRMODE.VALUE=7BIT_AMODE
+DRIVER.I2C.VAR.I2C_PORT_BIT0_FUN.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT0_PDR.VALUE=0
+DRIVER.I2C.VAR.I2C_BC_VALUE.VALUE=0x0003
+DRIVER.I2C.VAR.I2C_PORT_BIT1_FUN.VALUE=0
+DRIVER.I2C.VAR.I2C_RM_ENA.VALUE=0
+DRIVER.I2C.VAR.I2C_BC.VALUE=8_BIT
+DRIVER.I2C.VAR.I2C_PORT_BIT1_PDR.VALUE=0
+DRIVER.I2C.VAR.I2C_TXRX_VALUE.VALUE=0
+DRIVER.I2C.VAR.I2C_SCDLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT0_PSL.VALUE=1
+DRIVER.I2C.VAR.I2C_STPCND.VALUE=1
+DRIVER.I2C.VAR.I2C_ALINTENA.VALUE=0
+DRIVER.I2C.VAR.I2C_PRESCALE.VALUE=13
+DRIVER.I2C.VAR.I2C_PORT_BIT1_PSL.VALUE=1
+DRIVER.I2C.VAR.I2C_TXRX.VALUE=TRANSMITTER
+DRIVER.I2C.VAR.I2C_PORT_BIT0_DOUT.VALUE=0
+DRIVER.I2C.VAR.I2C_ALINTLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_RXDMA.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT0_PULDIS.VALUE=0
+DRIVER.I2C.VAR.I2C_BASE.VALUE=0xFFF7D400
+DRIVER.I2C.VAR.I2C_ARDYINTENA.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT1_DOUT.VALUE=0
+DRIVER.I2C.VAR.I2C_TXDMA.VALUE=0
+DRIVER.I2C.VAR.I2C_MSMODE.VALUE=1
+DRIVER.I2C.VAR.I2C_ICCH.VALUE=34
+DRIVER.I2C.VAR.I2C_AASLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_ICCL.VALUE=34
+DRIVER.I2C.VAR.I2C_AAS.VALUE=0
+DRIVER.I2C.VAR.I2C_BCM.VALUE=0
+DRIVER.I2C.VAR.I2C_ADDRMODE_VALUE.VALUE=0x0001
+DRIVER.I2C.VAR.I2C_ICRRDYINTENA.VALUE=0
+DRIVER.I2C.VAR.I2C_FDF.VALUE=0
+DRIVER.I2C.VAR.I2C_ARDYINTLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_PARITYENA.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT0_PULL.VALUE=2
+DRIVER.I2C.VAR.I2C_LENGTH.VALUE=8
+DRIVER.I2C.VAR.I2C_NACKINTENA.VALUE=0
+DRIVER.I2C.VAR.I2C_SCD.VALUE=0
+DRIVER.I2C.VAR.I2C_PORT_BIT1_PULL.VALUE=2
+DRIVER.I2C.VAR.I2C_ICRRDYINTLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_STACND.VALUE=1
+DRIVER.I2C.VAR.I2C_PORT_BIT1_PULDIS.VALUE=0
+DRIVER.I2C.VAR.I2C_ICXRDYINTENA.VALUE=0
+DRIVER.I2C.VAR.I2C_NACKINTLVL.VALUE=0
+DRIVER.I2C.VAR.I2C_EVENPARITY.VALUE=0
+DRIVER.I2C.VAR.I2C_BAUDRATE.VALUE=100
+DRIVER.I2C.VAR.I2C_MODCLK.VALUE=8
+DRIVER.DCC.VAR.DCC1_ENABLE_KEY.VALUE=10
+DRIVER.DCC.VAR.PINMUX_BASE.VALUE=0xFFFFEA00
+DRIVER.DCC.VAR.DCC1_DETECTION_TIME.VALUE=2500.00
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE1_VALUE.VALUE=0x0002
+DRIVER.DCC.VAR.DCC1_ENABLE_ERROR_INTERRUPT.VALUE=0xA
+DRIVER.DCC.VAR.DCC2_ENABLE.VALUE=0xA
+DRIVER.DCC.VAR.PINMUX_BASE_PORT.VALUE=0xFFFFEA40
+DRIVER.DCC.VAR.DCC2_ENABLE_ERROR_INTERRUPT.VALUE=0xA
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE0_VALUE.VALUE=0x0001
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE0_FREQ.VALUE=0
+DRIVER.DCC.VAR.DCC2_VALID0_SEED.VALUE=0
+DRIVER.DCC.VAR.DCC2_CLKT_N2HET2_0_FREQ.VALUE=1
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE1_FREQ.VALUE=0
+DRIVER.DCC.VAR.DCC2_DETECTION_TIME.VALUE=2500.00
+DRIVER.DCC.VAR.DCC2_CLOCK_DRIFT.VALUE=1.0
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE1_VALUE.VALUE=0x0002
+DRIVER.DCC.VAR.DCC1_CLKT_N2HET1_31_FREQ.VALUE=1
+DRIVER.DCC.VAR.DCC2_COUNT0_SEED.VALUE=0
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE0.VALUE=OSCIN
+DRIVER.DCC.VAR.DCC2_CLOCK_SOURCE1.VALUE=VCLK
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE0_FREQ.VALUE=16.0
+DRIVER.DCC.VAR.DCC1_VALID0_SEED.VALUE=792
+DRIVER.DCC.VAR.DCC1_BASE.VALUE=0xFFFFEC00
+DRIVER.DCC.VAR.DCC2_COUNT1_SEED.VALUE=0
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE1_FREQ.VALUE=220.00
+DRIVER.DCC.VAR.DCC1_CLOCK_DRIFT.VALUE=1.0
+DRIVER.DCC.VAR.DCC1_ENABLE.VALUE=0xA
+DRIVER.DCC.VAR.DCC1_ENABLE_SINGLESHOT_MODE.VALUE=0x5
+DRIVER.DCC.VAR.DCC2_ENABLE_SINGLESHOT_MODE.VALUE=0x5
+DRIVER.DCC.VAR.DCC2_BASE.VALUE=0xFFFFF400
+DRIVER.DCC.VAR.DCC1_DONE_INTERRUPT_ENABLE.VALUE=0xA
+DRIVER.DCC.VAR.DCC2_DONE_INTERRUPT_ENABLE.VALUE=0xA
+DRIVER.DCC.VAR.DCC2_ENABLE_KEY.VALUE=0xA
+DRIVER.DCC.VAR.DCC1_COUNT0_SEED.VALUE=39204
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE0_VALUE.VALUE=0x0001
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE0.VALUE=OSCIN
+DRIVER.DCC.VAR.DCC1_CLOCK_SOURCE1.VALUE=PLL1
+DRIVER.DCC.VAR.CLKT_TCK_FREQ.VALUE=12.0
+DRIVER.DCC.VAR.DCC1_COUNT1_SEED.VALUE=544500
+DRIVER.PINMUX.VAR.DMA_EIDXS_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_2.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_2.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_3.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_3.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_4.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_4.VALUE=0
+DRIVER.PINMUX.VAR.ETPWM_TIME_BASE_SELECT.VALUE=OFF
+DRIVER.PINMUX.VAR.MUX61_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX50_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_5.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_5.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_6.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_6.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_7.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_7.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_8.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_10.VALUE=1
+DRIVER.PINMUX.VAR.MUX99_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_96_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_88_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_5_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_9.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_FIDXD_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_12.VALUE=1
+DRIVER.PINMUX.VAR.MUX30_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_13.VALUE=1
+DRIVER.PINMUX.VAR.MUX30_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_14.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_10.VALUE=1
+DRIVER.PINMUX.VAR.MUX30_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_81_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_73_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_65_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_57_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_49_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_CHPR_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX30_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_16.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_12.VALUE=1
+DRIVER.PINMUX.VAR.MUX30_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_13.VALUE=1
+DRIVER.PINMUX.VAR.MUX30_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_14.VALUE=1
+DRIVER.PINMUX.VAR.MUX101_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_50_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_42_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_34_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_26_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_18_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_ENABLEINT_1.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_16.VALUE=1
+DRIVER.PINMUX.VAR.DMA_ENABLEINT_2.VALUE=1
+DRIVER.PINMUX.VAR.DMA_ENABLEINT_3.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_10.VALUE=FIXED
+DRIVER.PINMUX.VAR.DMA_ENABLEINT_4.VALUE=1
+DRIVER.PINMUX.VAR.PINMUX10.VALUE="PINMUX_BALL_N19_AD1EVT | PINMUX_BALL_N17_EMIF_nCS_0"
+DRIVER.PINMUX.VAR.MUX11_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_11_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_PRITY_11.VALUE=FIXED
+DRIVER.PINMUX.VAR.DMA_CHPR_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.PINMUX11.VALUE="PINMUX_BALL_K17_EMIF_nCS_3 | PINMUX_BALL_P1_HET1_24"
+DRIVER.PINMUX.VAR.DMA_PRITY_12.VALUE=FIXED
+DRIVER.PINMUX.VAR.PINMUX20.VALUE=PINMUX_BALL_F3_MIBSPI1NCS_1
+DRIVER.PINMUX.VAR.PINMUX12.VALUE="PINMUX_BALL_A14_HET1_26 | PINMUX_BALL_G19_MIBSPI1NENA | PINMUX_BALL_H18_MIBSPI5NENA"
+DRIVER.PINMUX.VAR.DMA_PRITY_13.VALUE=FIXED
+DRIVER.PINMUX.VAR.PINMUX21.VALUE="PINMUX_BALL_D5_EMIF_ADDR_1 | PINMUX_BALL_K2_GIOB_1"
+DRIVER.PINMUX.VAR.PINMUX13.VALUE="PINMUX_BALL_J18_MIBSPI5SOMI_0 | PINMUX_BALL_J19_MIBSPI5SIMO_0 | PINMUX_BALL_H19_MIBSPI5CLK | PINMUX_BALL_R2_MIBSPI1NCS_0"
+DRIVER.PINMUX.VAR.DMA_PRITY_14.VALUE=FIXED
+DRIVER.PINMUX.VAR.PINMUX22.VALUE="PINMUX_BALL_D4_EMIF_ADDR_0 | PINMUX_BALL_C5_EMIF_ADDR_7 | PINMUX_BALL_C4_EMIF_ADDR_6"
+DRIVER.PINMUX.VAR.PINMUX14.VALUE="PINMUX_BALL_E18_HET1_08 | PINMUX_BALL_K19_HET1_28 | PINMUX_BALL_D17_EMIF_nWE | PINMUX_BALL_D16_EMIF_BA_1"
+DRIVER.PINMUX.VAR.MUX92_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_15.VALUE=FIXED
+DRIVER.PINMUX.VAR.PINMUX23.VALUE=PINMUX_BALL_C6_EMIF_ADDR_8
+DRIVER.PINMUX.VAR.DMA_PRITY_16.VALUE=FIXED
+DRIVER.PINMUX.VAR.PINMUX33.VALUE="PINMUX_BALL_B12_HET1_04 | PINMUX_BALL_V8_MIBSPI3SOMI | PINMUX_BALL_W8_MIBSPI3SIMO | PINMUX_BALL_V9_MIBSPI3CLK"
+DRIVER.PINMUX.VAR.PINMUX17.VALUE="PINMUX_BALL_D19_HET1_10 | PINMUX_BALL_B4_HET1_12"
+DRIVER.PINMUX.VAR.PINMUX34.VALUE="PINMUX_BALL_A4_HET1_16 | PINMUX_BALL_J1_HET1_18 | PINMUX_BALL_P2_HET1_20"
+DRIVER.PINMUX.VAR.PINMUX18.VALUE="PINMUX_BALL_A11_HET1_14 | PINMUX_BALL_M2_GIOB_0"
+DRIVER.PINMUX.VAR.DMA_ADDMR_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.PINMUX35.VALUE=0
+DRIVER.PINMUX.VAR.PINMUX27.VALUE=PINMUX_BALL_E19_MIBSPI5NCS_0
+DRIVER.PINMUX.VAR.PINMUX19.VALUE=PINMUX_BALL_B11_HET1_30
+DRIVER.PINMUX.VAR.MUX98_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.PINMUX29.VALUE=PINMUX_BALL_D3_SPI2NENA
+DRIVER.PINMUX.VAR.MUX98_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_10.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX98_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_11.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_PRITY_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX98_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_20.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_12.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX100_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX98_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_21.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_13.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX100_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_30.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_22.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_14.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_0.VALUE=ENABLED
+DRIVER.PINMUX.VAR.MUX100_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_109_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_31.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_23.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_15.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_TTYPE_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_1.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ENABLEREG_1.VALUE=1
+DRIVER.PINMUX.VAR.MUX100_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_24.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_16.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_2.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ENABLEREG_2.VALUE=1
+DRIVER.PINMUX.VAR.MUX100_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX91_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_25.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_17.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_3.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ENABLEREG_3.VALUE=1
+DRIVER.PINMUX.VAR.MUX91_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_26.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_18.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_4.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ENABLEREG_4.VALUE=1
+DRIVER.PINMUX.VAR.MUX91_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX61_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX53_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX45_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX37_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX29_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_102_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_27.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_19.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_5.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ADDMR_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX91_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_28.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_6.VALUE=ENABLED
+DRIVER.PINMUX.VAR.ETPWM2_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.MUX91_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX6_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_29.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_FIDXS_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_7.VALUE=ENABLED
+DRIVER.PINMUX.VAR.MUX59_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX6_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_8.VALUE=ENABLED
+DRIVER.PINMUX.VAR.MUX6_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_9.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX6_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX6_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX6_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_10.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_10.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_11.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTASS_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX60_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_20.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_12.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_12.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_21.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_13.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_13.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_30.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_22.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_14.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_14.VALUE=0
+DRIVER.PINMUX.VAR.MUX104_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_94_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_86_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_78_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_3_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_31.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_23.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_15.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_PRITY_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ACC_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_STADD_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_24.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_16.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_STADD_2.VALUE=0
+DRIVER.PINMUX.VAR.MUX21_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_25.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_17.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_STADD_3.VALUE=0
+DRIVER.PINMUX.VAR.MUX21_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_26.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_18.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_STADD_4.VALUE=0
+DRIVER.PINMUX.VAR.MUX30_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX22_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX21_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX14_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_71_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_63_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_55_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_47_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_39_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_27.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_19.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX21_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_28.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_28.VALUE=0
+DRIVER.PINMUX.VAR.MUX21_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_29.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_29.VALUE=0
+DRIVER.PINMUX.VAR.MUX21_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_0.VALUE=0
+DRIVER.PINMUX.VAR.MUX95_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_40_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_32_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_24_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_16_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_2.VALUE=0
+DRIVER.PINMUX.VAR.ETPWM7_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_0.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.ETPWM_TBCLK_SELECT.VALUE=OFF
+DRIVER.PINMUX.VAR.DMA_TTYPE_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_1.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_2.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_3.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_4.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_0.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_5.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_1.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMR_6.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_2.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMR_7.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_3.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMR_8.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_4.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMR_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_9.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_5.VALUE=8BIT
+DRIVER.PINMUX.VAR.GATE_EMIF_CLK.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_6.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX97_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_7.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX97_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_8.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX97_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX80_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_9.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMW_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX97_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX97_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_107_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX90_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_DEBUGMODE.VALUE=IGNORE_SUSPEND
+DRIVER.PINMUX.VAR.MUX90_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_0.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ERRACT.VALUE=IGNORE
+DRIVER.PINMUX.VAR.MUX90_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX3_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_100_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_1.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CHPR_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX90_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_2.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_BASE_PORT.VALUE=0xFFFFF040
+DRIVER.PINMUX.VAR.MUX90_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX5_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_3.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.MUX58_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX5_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_4.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.MUX5_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_5.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_1.VALUE=1
+DRIVER.PINMUX.VAR.MUX5_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_6.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_2.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX5_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_7.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_3.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX5_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_8.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTEN_10.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_4.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX41_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_99_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_8_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_9.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTEN_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_5.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_12.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_6.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_13.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_7.VALUE=1
+DRIVER.PINMUX.VAR.MUX51_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_14.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_8.VALUE=1
+DRIVER.PINMUX.VAR.ALT_ADC_SELECT.VALUE=1
+DRIVER.PINMUX.VAR.MUX98_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_92_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_84_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_76_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_68_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_1_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_9.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTEN_16.VALUE=1
+DRIVER.PINMUX.VAR.MUX20_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX20_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX20_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_61_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_53_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_45_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_37_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_29_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX20_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX20_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX20_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX100_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_30_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_22_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_14_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX10_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ENDADD_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ENDADD_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ENDADD_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ENDADD_4.VALUE=0
+DRIVER.PINMUX.VAR.ETHERNET_SELECT.VALUE=RMII
+DRIVER.PINMUX.VAR.MUX91_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX83_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX75_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX67_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX59_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTASS_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTASS_1.VALUE=TO_VIM
+DRIVER.PINMUX.VAR.DMA_INTASS_2.VALUE=TO_VIM
+DRIVER.PINMUX.VAR.ETPWM5_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.CONCOUNT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTASS_3.VALUE=TO_VIM
+DRIVER.PINMUX.VAR.DMA_INTASS_4.VALUE=TO_VIM
+DRIVER.PINMUX.VAR.DMA_ADDMR_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHAS_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ACC_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHAS_2.VALUE=0
+DRIVER.PINMUX.VAR.MUX96_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_3.VALUE=0
+DRIVER.PINMUX.VAR.MUX96_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_10.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_0.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_CHAS_4.VALUE=0
+DRIVER.PINMUX.VAR.MUX96_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX6_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_11.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ADDMW_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_1.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_INTMP_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHAS_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX96_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_20.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_12.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_2.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_CHAS_6.VALUE=0
+DRIVER.PINMUX.VAR.MUX96_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_21.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_13.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_3.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_CHAS_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_30.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_22.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_14.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_4.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_CHAS_8.VALUE=0
+DRIVER.PINMUX.VAR.GIOB_DISABLE_SELECT.VALUE=OFF
+DRIVER.PINMUX.VAR.PIN_MUX_105_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_31.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_23.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ADDMW_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_15.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_ADDMR_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_5.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_TRIG_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHAS_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_24.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_16.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_6.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX81_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_25.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_17.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_7.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX81_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_26.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_18.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_8.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_0.VALUE=0
+DRIVER.PINMUX.VAR.MUX81_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX60_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX52_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX44_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX36_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX28_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXS_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_27.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_FIDXS_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_19.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_9.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ENABLE1.VALUE=1
+DRIVER.PINMUX.VAR.MUX81_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_28.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_2.VALUE=0
+DRIVER.PINMUX.VAR.MUX81_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXS_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_29.VALUE=ENABLED
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_3.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_10.VALUE=1
+DRIVER.PINMUX.VAR.ECAP.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_BYP_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_1.VALUE=1
+DRIVER.PINMUX.VAR.MUX4_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_12.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_2.VALUE=1
+DRIVER.PINMUX.VAR.MUX50_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_13.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_3.VALUE=1
+DRIVER.PINMUX.VAR.MUX50_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_14.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_4.VALUE=1
+DRIVER.PINMUX.VAR.MUX50_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_97_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_89_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_6_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_IFT_COUNT_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_5.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_1.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX50_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BYP_16.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_6.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_2.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX50_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_7.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_3.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX50_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX42_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX34_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX26_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX18_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_8.VALUE=1
+DRIVER.PINMUX.VAR.DMA_PRITY_4.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX103_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_90_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_82_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_74_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_66_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_58_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTBTCEN_9.VALUE=1
+DRIVER.PINMUX.VAR.DMA_TRIG_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_5.VALUE=FIXED
+DRIVER.PINMUX.VAR.DMA_PRITY_6.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX11_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_PRITY_7.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX11_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_PRITY_8.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX21_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX13_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX11_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_51_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_43_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_35_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_27_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_19_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_9.VALUE=FIXED
+DRIVER.PINMUX.VAR.MUX11_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX11_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.ETPWM_TBCLK_SYNC_ENABLE.VALUE=0
+DRIVER.PINMUX.VAR.AD1.VALUE=0
+DRIVER.PINMUX.VAR.MUX11_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.AD2.VALUE=0
+DRIVER.PINMUX.VAR.MUX94_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_20_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_12_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX9_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX104_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX104_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX104_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_PRITY_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.ALT_ADC.VALUE=0
+DRIVER.PINMUX.VAR.I2C.VALUE=0
+DRIVER.PINMUX.VAR.MUX104_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX104_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX95_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX95_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX95_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX71_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_DEBUGMODE_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX95_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.ETPWM3_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.MUX95_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX87_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX79_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_10.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_103_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_12.VALUE=0
+DRIVER.PINMUX.VAR.MUX80_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_13.VALUE=0
+DRIVER.PINMUX.VAR.HET1.VALUE=0
+DRIVER.PINMUX.VAR.MUX80_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_10.VALUE=0
+DRIVER.PINMUX.VAR.HET2.VALUE=0
+DRIVER.PINMUX.VAR.MUX80_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX2_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_1.VALUE=1
+DRIVER.PINMUX.VAR.MUX80_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_2.VALUE=1
+DRIVER.PINMUX.VAR.MUX80_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX72_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX64_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX56_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX3_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_3.VALUE=1
+DRIVER.PINMUX.VAR.MUX56_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX48_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX3_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_10.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTEN_4.VALUE=1
+DRIVER.PINMUX.VAR.MUX3_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXD_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXD_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_11.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_AIM_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTEN_5.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTASS_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX3_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_20.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_12.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTEN_6.VALUE=1
+DRIVER.PINMUX.VAR.EMIF.VALUE=0
+DRIVER.PINMUX.VAR.MUX41_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX3_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CP0_ISADDR_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_21.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_13.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTEN_7.VALUE=1
+DRIVER.PINMUX.VAR.ETPWM_TZ1.VALUE=ASYNC
+DRIVER.PINMUX.VAR.MUX41_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX3_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_30.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_22.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_14.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_8.VALUE=1
+DRIVER.PINMUX.VAR.ETPWM_TZ2.VALUE=ASYNC
+DRIVER.PINMUX.VAR.MUX41_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX40_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_95_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_87_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_79_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_4_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_31.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_23.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_15.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMR_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTEN_9.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ACC_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.ETPWM_TZ3.VALUE=ASYNC
+DRIVER.PINMUX.VAR.MUX41_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_24.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_16.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_12.VALUE=0
+DRIVER.PINMUX.VAR.MUX41_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_25.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_17.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_13.VALUE=0
+DRIVER.PINMUX.VAR.MUX41_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX33_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX25_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX17_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_26.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_18.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_10.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX97_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX89_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_80_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_72_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_64_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_56_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_48_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_27.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_19.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_11.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_ADDMW_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.GIOA.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_28.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_20.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_12.VALUE=8BIT
+DRIVER.PINMUX.VAR.GIOB.VALUE=0
+DRIVER.PINMUX.VAR.MUX10_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_29.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_21.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_13.VALUE=8BIT
+DRIVER.PINMUX.VAR.GIOB_DISABLE.VALUE=0
+DRIVER.PINMUX.VAR.MUX10_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_30.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_22.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_14.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX10_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_41_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_33_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_25_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_17_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_31.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_23.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_15.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_CHANNEL_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX10_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_28.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_24.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_16.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX10_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_29.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_25.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_17.VALUE=8BIT
+DRIVER.PINMUX.VAR.MUX10_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_26.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_18.VALUE=8BIT
+DRIVER.PINMUX.VAR.PIN_MUX_10_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_27.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_19.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_BYP_1.VALUE=1
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_28.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_BYP_2.VALUE=1
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_29.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_BYP_3.VALUE=1
+DRIVER.PINMUX.VAR.DMA_BYP_4.VALUE=1
+DRIVER.PINMUX.VAR.EQEP.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_BYP_5.VALUE=1
+DRIVER.PINMUX.VAR.DMA_BYP_6.VALUE=1
+DRIVER.PINMUX.VAR.DMA_BYP_7.VALUE=1
+DRIVER.PINMUX.VAR.DMA_BYP_8.VALUE=1
+DRIVER.PINMUX.VAR.MUX90_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX82_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX74_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX66_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX58_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_BYP_9.VALUE=1
+DRIVER.PINMUX.VAR.MIBSPI1.VALUE=0
+DRIVER.PINMUX.VAR.MUX103_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MIBSPI3.VALUE=0
+DRIVER.PINMUX.VAR.MUX103_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.OHCI0.VALUE=0
+DRIVER.PINMUX.VAR.MUX103_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MIBSPI5.VALUE=0
+DRIVER.PINMUX.VAR.W2FC.VALUE=0
+DRIVER.PINMUX.VAR.OHCI1.VALUE=0
+DRIVER.PINMUX.VAR.MUX103_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX103_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX94_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX94_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX94_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX5_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_108_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX94_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX94_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX86_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX78_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX9_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX9_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_10.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX9_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_101_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXD_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_11.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_PRITY_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX9_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_12.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX71_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX9_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXD_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_13.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX71_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX9_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_10.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_14.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX71_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX51_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX43_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX35_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX27_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX19_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_11.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXD_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_15.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX71_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_20.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_12.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_16.VALUE=HIGH
+DRIVER.PINMUX.VAR.ETPWM1_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.MUX71_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX2_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_21.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_13.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_3.VALUE=0
+DRIVER.PINMUX.VAR.MUX63_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX55_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX47_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX39_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX2_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_30.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_22.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_14.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_EIDXD_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_10.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.MUX2_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_9_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_31.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CHANNEL_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_23.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CHANNEL_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_15.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_CHANNEL_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXD_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_11.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.MUX2_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_24.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_16.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_12.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.MUX40_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX2_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_25.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_17.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_13.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.MUX40_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX2_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_26.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_18.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_14.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_10.VALUE=1
+DRIVER.PINMUX.VAR.MUX40_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_93_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_85_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_77_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_69_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_2_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_27.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_ADDMW_19.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_IET_COUNT_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_15.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_PRITY_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX40_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_28.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_TRIG_16.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_12.VALUE=1
+DRIVER.PINMUX.VAR.MUX40_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_29.VALUE=CONSTANT
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_13.VALUE=1
+DRIVER.PINMUX.VAR.MUX40_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX32_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX24_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX16_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_14.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_10.VALUE=1
+DRIVER.PINMUX.VAR.MUX102_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_70_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_62_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_54_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_46_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_38_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_11.VALUE=1
+DRIVER.PINMUX.VAR.DMA_CHPR_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ERRACT_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MII.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTFTCEN_16.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_12.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_13.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_14.VALUE=1
+DRIVER.PINMUX.VAR.GATE_EMIF_CLK_SELECT.VALUE=OFF
+DRIVER.PINMUX.VAR.MUX20_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX12_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_31_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_23_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_15_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_15.VALUE=1
+DRIVER.PINMUX.VAR.DMA_TRIG_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHPR_1.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_16.VALUE=1
+DRIVER.PINMUX.VAR.DMA_CHPR_2.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_CHPR_3.VALUE=HIGH
+DRIVER.PINMUX.VAR.ETPWM_TIME_BASE_SYNC_ENABLE.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTMP_10.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_4.VALUE=HIGH
+DRIVER.PINMUX.VAR.MUX93_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_29_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_11.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_5.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_TRIG_1.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.ETPWM_EPWM1SYNCI.VALUE=ASYNC
+DRIVER.PINMUX.VAR.DMA_INTMP_12.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_6.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_TRIG_2.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.ETPWM6_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.DMA_INTMP_13.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_7.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_TRIG_3.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTMP_14.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_8.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_TRIG_4.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_CHANNEL_28_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_6_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_15.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_CHPR_9.VALUE=HIGH
+DRIVER.PINMUX.VAR.DMA_TRIG_5.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_1.VALUE=1
+DRIVER.PINMUX.VAR.SCI.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTMP_16.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_TRIG_6.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_2.VALUE=1
+DRIVER.PINMUX.VAR.DMA_TRIG_7.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_3.VALUE=1
+DRIVER.PINMUX.VAR.DMA_TRIG_8.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_4.VALUE=1
+DRIVER.PINMUX.VAR.MUX8_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_9_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_9.VALUE=HARDWARE_TRIGGER
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_5.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_1.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_6.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_2.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_ENABLEPAR.VALUE=1
+DRIVER.PINMUX.VAR.MUX102_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_7.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_3.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.MUX102_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_8.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_4.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.MUX102_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTHBCEN_9.VALUE=1
+DRIVER.PINMUX.VAR.DMA_CHPR_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_5.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_TRIG_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ACC_1.VALUE=ALL
+DRIVER.PINMUX.VAR.ETPWM.VALUE=0
+DRIVER.PINMUX.VAR.MUX102_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTMP_6.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_ACC_2.VALUE=ALL
+DRIVER.PINMUX.VAR.MUX102_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX93_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTMP_7.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_ACC_3.VALUE=ALL
+DRIVER.PINMUX.VAR.MUX93_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTMP_8.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.DMA_ACC_4.VALUE=ALL
+DRIVER.PINMUX.VAR.MUX93_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX70_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_106_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_0_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTMP_9.VALUE=GROUP_A
+DRIVER.PINMUX.VAR.MUX93_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX93_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX85_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX77_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX69_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX8_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX8_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX8_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_BASE.VALUE=0xFFFFF000
+DRIVER.PINMUX.VAR.MUX8_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX70_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX8_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX70_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX8_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX70_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_20_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_12_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX70_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX70_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX62_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX54_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX46_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX38_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_98_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_7_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX1_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX1_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_91_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_83_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_75_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_67_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_59_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TRIG_8_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX31_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX31_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX23_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.MUX15_OPTION5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_0.VALUE=0
+DRIVER.PINMUX.VAR.MUX96_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX88_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_60_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_52_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_44_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_36_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_28_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_0.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_21_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_13_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_21_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_13_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMW_10_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMR_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHPR_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_PRITY_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_BASE_RAM.VALUE=0xFFF80000
+DRIVER.PINMUX.VAR.DMA_EIDXS_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_25_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_AIM_17_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TTYPE_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_5.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_1.VALUE=1
+DRIVER.PINMUX.VAR.DMA_FIDXD_6.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_2.VALUE=1
+DRIVER.PINMUX.VAR.SPI2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_7.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_3.VALUE=1
+DRIVER.PINMUX.VAR.DMA_FIDXD_8.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_4.VALUE=1
+DRIVER.PINMUX.VAR.SPI4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_30_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_24_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_22_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_16_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_9.VALUE=0
+DRIVER.PINMUX.VAR.DMA_AIM_2_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHAS_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_5.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTASS_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.RMII.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHAS_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_6.VALUE=1
+DRIVER.PINMUX.VAR.PINMUX0.VALUE="PINMUX_BALL_W10_GIOB_3 | PINMUX_BALL_A5_GIOA_0 | PINMUX_BALL_C3_MIBSPI3NCS_3 | PINMUX_BALL_B2_MIBSPI3NCS_2"
+DRIVER.PINMUX.VAR.MUX99_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_7.VALUE=1
+DRIVER.PINMUX.VAR.PINMUX1.VALUE="PINMUX_BALL_C2_GIOA_1 | PINMUX_BALL_E3_HET1_11"
+DRIVER.PINMUX.VAR.MUX99_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_10.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_8.VALUE=1
+DRIVER.PINMUX.VAR.PINMUX2.VALUE="PINMUX_BALL_C1_GIOA_2 | PINMUX_BALL_E1_GIOA_3 | PINMUX_BALL_B5_GIOA_5"
+DRIVER.PINMUX.VAR.MUX99_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX81_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX73_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX65_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX57_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.MUX49_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_11.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_PRITY_14_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_INTLFSEN_9.VALUE=1
+DRIVER.PINMUX.VAR.DMA_INTMP_5_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ACC_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.PINMUX3.VALUE="PINMUX_BALL_B3_HET1_22 | PINMUX_BALL_H3_GIOA_6"
+DRIVER.PINMUX.VAR.MUX99_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_20.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_12.VALUE=8BIT
+DRIVER.PINMUX.VAR.ETPWM4_EQEPERR12.VALUE=EQEPERR12
+DRIVER.PINMUX.VAR.PINMUX4.VALUE="PINMUX_BALL_M1_GIOA_7 | PINMUX_BALL_V2_HET1_01 | PINMUX_BALL_U1_HET1_03"
+DRIVER.PINMUX.VAR.MUX101_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX99_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_21.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_13.VALUE=8BIT
+DRIVER.PINMUX.VAR.PINMUX5.VALUE="PINMUX_BALL_K18_HET1_0 | PINMUX_BALL_W5_HET1_02 | PINMUX_BALL_V6_HET1_05"
+DRIVER.PINMUX.VAR.MUX101_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_30.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_22.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_14.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_0.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.PINMUX6.VALUE="PINMUX_BALL_T1_HET1_07 | PINMUX_BALL_V7_HET1_09"
+DRIVER.PINMUX.VAR.MUX101_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_31.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_23.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_15.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_1_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_1.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHPR_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.ALT_ADC_A.VALUE=0
+DRIVER.PINMUX.VAR.PINMUX7.VALUE="PINMUX_BALL_V5_MIBSPI3NCS_1 | PINMUX_BALL_W3_HET1_06"
+DRIVER.PINMUX.VAR.MUX101_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_24.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_20.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_16.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_12.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_2.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.ALT_ADC_B.VALUE=0
+DRIVER.PINMUX.VAR.PINMUX8.VALUE="PINMUX_BALL_N2_HET1_13 | PINMUX_BALL_G3_MIBSPI1NCS_2 | PINMUX_BALL_N1_HET1_15"
+DRIVER.PINMUX.VAR.MUX101_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX92_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_25.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_21.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_17.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_13.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_3.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.PINMUX9.VALUE="PINMUX_BALL_W9_MIBSPI3NENA | PINMUX_BALL_V10_MIBSPI3NCS_0 | PINMUX_BALL_J3_MIBSPI1NCS_3"
+DRIVER.PINMUX.VAR.MUX92_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_30.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_26.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_22.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_18.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_14.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_4.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX92_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.MUX4_CONFLICT.VALUE=0
+DRIVER.PINMUX.VAR.PIN_MUX_104_SELECT.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_31.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_31_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_27.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_26_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_23.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_23_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_19.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_18_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_15.VALUE=0
+DRIVER.PINMUX.VAR.DMA_ADDMW_15_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_ADDMR_7_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_CHANNEL_5.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_4_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_WRITE_ELSIZE_3_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_TRIG_11_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.MUX92_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_OPTION3.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_28.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_24.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_16.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_6.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX92_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX84_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX76_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX68_OPTION4.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_OPTION0.VALUE=0
+DRIVER.PINMUX.VAR.DMA_READ_ELSIZE_29.VALUE=8BIT
+DRIVER.PINMUX.VAR.DMA_EIDXS_25.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_17.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_7.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.MUX7_OPTION1.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_26.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_18.VALUE=0
+DRIVER.PINMUX.VAR.DMA_FIDXD_10.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_8.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_TTYPE_0.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_0.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_OPTION2.VALUE=0
+DRIVER.PINMUX.VAR.DMA_EIDXS_27.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_27_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_EIDXS_19.VALUE=0
+DRIVER.PINMUX.VAR.DMA_TTYPE_19_VALUE.VALUE=0x0001
+DRIVER.PINMUX.VAR.DMA_FIDXD_11.VALUE=0
+DRIVER.PINMUX.VAR.DMA_CHANNEL_9.VALUE=CHANNEL0
+DRIVER.PINMUX.VAR.DMA_TTYPE_1.VALUE=FRAME_TRANSFER
+DRIVER.PINMUX.VAR.DMA_CP0_IDADDR_1.VALUE=0
+DRIVER.PINMUX.VAR.MUX7_OPTION3.VALUE=0
+DRIVER.CRC.VAR.CRC_CH2_PSIH.VALUE=0
+DRIVER.CRC.VAR.HTU_CPB_7_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH2_PSIL.VALUE=0
+DRIVER.CRC.VAR.HTU_DCP0_TRDIR_1.VALUE=HET_TO_MAIN_MEM
+DRIVER.CRC.VAR.CRC_CH1_CCI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPBL_7_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_5_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPB_1_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_DEBMOD_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH1_CFI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPAL_1_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ENABUS_1.VALUE=0
+DRIVER.CRC.VAR.HTU_CPA_2_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH2_WDTO.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH2_CCI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_MP1_ACC_1.VALUE=READ_ONLY
+DRIVER.CRC.VAR.HTU_CONTPAR_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH2_CFI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPB_6_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_DCP0_EC_1.VALUE=0
+DRIVER.CRC.VAR.HTU_DCP0_CPBFULADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPAL_6_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_CPA_7_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_CPB_3_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH1_DTE.VALUE=0
+DRIVER.CRC.VAR.HTU_DCP0_FC_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH1_CVH.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH1_PSSIH.VALUE=0
+DRIVER.CRC.VAR.HTU_BASE.VALUE=0xFFF7A400
+DRIVER.CRC.VAR.CRC_CH1_CVL.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH1_PSSIL.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPBL_3_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_1_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH2_DTE.VALUE=1
+DRIVER.CRC.VAR.CRC_CH2_CVH.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH2_CVL.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH1_PCP.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPA_6_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPB_2_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH1_SCP.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_DCP0_CPAFULADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPAL_2_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.CRC_CH2_PCP.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_CPA_3_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH1_PSA.VALUE=1
+DRIVER.CRC.VAR.CRC_CH1_ORI.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH2_SCP.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_MP1_STADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPB_7_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH1_TOE.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPAL_7_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.CRC_CH2_PSA.VALUE=1
+DRIVER.CRC.VAR.CRC_CH2_ORI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_CPB_4_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_MP0_ENA_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH2_MODE_VALUE.VALUE=0x0001
+DRIVER.CRC.VAR.CRC_CH1_URI.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH2_PSSIH.VALUE=0
+DRIVER.CRC.VAR.CRC_CH2_TOE.VALUE=0x00000000
+DRIVER.CRC.VAR.CRC_CH2_PSSIL.VALUE=0
+DRIVER.CRC.VAR.CRC_CH1_BCTO.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_ICPBL_4_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_2_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_PAR_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH2_URI.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_CONT_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ENAREQ_1.VALUE=0
+DRIVER.CRC.VAR.HTU_MP1_ERRENA_1.VALUE=0
+DRIVER.CRC.VAR.HTU_MP0_STADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPA_7_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPB_3_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPAL_3_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_CPA_4_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_CPB_0_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH2_BCTO.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_DCP0_MMADD_1.VALUE=POST_INCREMENT
+DRIVER.CRC.VAR.HTU_ENAINTMAP_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH1_MODE_VALUE.VALUE=0x0001
+DRIVER.CRC.VAR.HTU_ICPBL_0_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_CPB_5_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_MP1_ENA_1.VALUE=0
+DRIVER.CRC.VAR.HTU_DCP0_HETADD.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPBL_5_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_3_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_CPA_0_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_RES_1.VALUE=0
+DRIVER.CRC.VAR.HTU_DCP0_CPATMOD_1.VALUE=POST_INCREMENT
+DRIVER.CRC.VAR.HTU_MP1_ENDADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPB_4_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_BASE.VALUE=0xFE000000
+DRIVER.CRC.VAR.HTU_ICPAL_4_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.CRC_CH1_MODE.VALUE=FULL_CPU
+DRIVER.CRC.VAR.HTU_CPA_5_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_CPB_1_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_VBHOLD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_MP0_ERRENA_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPBL_1_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_CPB_6_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.CRC_CH2_MODE.VALUE=FULL_CPU
+DRIVER.CRC.VAR.HTU_DCP0_TRDAT_1.VALUE=32BIT
+DRIVER.CRC.VAR.HTU_ICPBL_6_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_4_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPB_0_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPAL_0_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_CPA_1_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_DCP0_CPBTMOD_1.VALUE=POST_INCREMENT
+DRIVER.CRC.VAR.CRC_CH1_PSIH.VALUE=0
+DRIVER.CRC.VAR.HTU_MP0_ACC_1.VALUE=READ_ONLY
+DRIVER.CRC.VAR.CRC_CH1_PSIL.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPB_5_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ICPAL_5_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_DCP0_ADMOD_1.VALUE=INCREMENT_16BIT
+DRIVER.CRC.VAR.HTU_CPA_6_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_CPB_2_SEL_1.VALUE=ENABLE
+DRIVER.CRC.VAR.HTU_ENA_1.VALUE=0
+DRIVER.CRC.VAR.CRC_CH1_WDTO.VALUE=0x00000000
+DRIVER.CRC.VAR.HTU_MP0_ENDADD_1.VALUE=0
+DRIVER.CRC.VAR.HTU_ICPBL_2_SEL_1.VALUE=HIGH
+DRIVER.CRC.VAR.HTU_ICPA_0_SEL_1.VALUE=ENABLE
+DRIVER.EMAC.VAR.EMAC_ADD1.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_ADD2.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_ADD3.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_ADD4.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_ADD5.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_ADD6.VALUE=FF
+DRIVER.EMAC.VAR.EMAC_CTRL_BASE.VALUE=0xFCF78800
+DRIVER.EMAC.VAR.EMAC_LOOPBACK_ENA.VALUE=0
+DRIVER.EMAC.VAR.MDIO_BASE.VALUE=0xFCF78900
+DRIVER.EMAC.VAR.EMAC_BASE.VALUE=0xFCF78000
+DRIVER.EMAC.VAR.EMAC_BASE_PORT.VALUE=0xFFFFFFFF
+DRIVER.EMAC.VAR.EMAC_TRANSMIT_ENA.VALUE=1
+DRIVER.EMAC.VAR.EMAC_CHANNELNUMBER.VALUE=0
+DRIVER.EMAC.VAR.EMAC_RX_PBUF_ALLOC.VALUE=10
+DRIVER.EMAC.VAR.EMAC_UNICAST_ENA.VALUE=1
+DRIVER.EMAC.VAR.EMAC_FULL_DUPLEX_ENA.VALUE=1
+DRIVER.EMAC.VAR.EMAC_PHYADDRESS.VALUE=0
+DRIVER.EMAC.VAR.EMAC_MII_ENA.VALUE=1
+DRIVER.EMAC.VAR.EMAC_CTRL_RAM_BASE.VALUE=0xFC520000
+DRIVER.EMAC.VAR.EMAC_BROADCAST_ENA.VALUE=1
+DRIVER.EMAC.VAR.EMAC_RECEIVE_ENA.VALUE=1
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TAVAV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_EXTENDED_WAIT.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TA.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_WAIT.VALUE=pin0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_NOR_FLASH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TEHQZ.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TA.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ENA_SDRAM.VALUE=1
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TELQV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_PAGE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_ENA.VALUE=1
+DRIVER.EMIF.VAR.EMIF_SDRAM_REFRESH_CYCLES.VALUE=0
+DRIVER.EMIF.VAR.EMIF_AVAILABLE.VALUE=1
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRC_MAX.VALUE=145
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TEHEL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_ENA.VALUE=1
+DRIVER.EMIF.VAR.EMIF_ASYNC1_R_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRAS_MAX.VALUE=145
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TELEH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRRD_MAX.VALUE=73
+DRIVER.EMIF.VAR.EMIF_ASYNC3_STROBE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_ENA.VALUE=1
+DRIVER.EMIF.VAR.EMIF_ASYNC1_ASIZE.VALUE=8_bit
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRC_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TAVAV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_BANKS.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_PAGE_DELAY_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRAS_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRRD_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_BASE.VALUE=0xFCFFE800
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TEHQZ.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_W_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TELQV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TXSR_MAX.VALUE=291
+DRIVER.EMIF.VAR.EMIF_ASYNC2_PAGE_SIZE.VALUE=4_words
+DRIVER.EMIF.VAR.EMIF_CLKFRQ.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_W_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_ASYNC2_R_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_SDRAM_TREFRESH_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_R_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_SDRAM_TXSR_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TSU.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_EXTENDED_WAIT.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_ASIZE.VALUE=8_bit
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TSU.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_W_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_ASYNC3_NOR_FLASH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TWR_MAX.VALUE=73
+DRIVER.EMIF.VAR.EMIF_ASYNC2_PAGE_DELAY_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_W_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_SDRAM_INIT_TIME.VALUE=200
+DRIVER.EMIF.VAR.EMIF_SDRAM_TREFRESH_DEFAULT.VALUE=8000005
+DRIVER.EMIF.VAR.EMIF_ASYNC3_TSU.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_PAGE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_STROBE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_R_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_SDRAM_TWR_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_R_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRCD_MAX.VALUE=73
+DRIVER.EMIF.VAR.EMIF_CLK.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRCD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_W_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRFC.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_ASIZE.VALUE=8_bit
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRAS.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_NOR_FLASH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_PAGE_DELAY.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_CAS_LATENCY.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC_WAIT_POLARITY0.VALUE=pin_low
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRCD_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC_WAIT_POLARITY1.VALUE=pin_high
+DRIVER.EMIF.VAR.EMIF_ASYNC1_PAGE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_R_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRC.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRRD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_PAGE_DELAY_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_W_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TEHEL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC_MAX_EXT_WAIT.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRP.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_PAGE_SIZE.VALUE=4_words
+DRIVER.EMIF.VAR.EMIF_ASYNC1_W_SETUP.VALUE=15
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TELEH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_REFRESH_CYCLES_MAX.VALUE=0
+DRIVER.EMIF.VAR.EMIF_MS.VALUE=0.001
+DRIVER.EMIF.VAR.EMIF_NS.VALUE=0.000000001
+DRIVER.EMIF.VAR.EMIF_SDRAM_TWR.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_EXTENDED_WAIT.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_REFRESH_PERIOD.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC3_R_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TAVAV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_PAGE_DELAY.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_WAIT.VALUE=pin0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRP_MAX.VALUE=73
+DRIVER.EMIF.VAR.EMIF_SDRAM_TXSR.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TEHQZ.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRFC_MAX.VALUE=291
+DRIVER.EMIF.VAR.EMIF_ASYNC2_R_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TELQV.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_STROBE_MODE.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRP_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_REFRESH_PERIOD_MAX.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_W_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_ASYNC1_PAGE_SIZE.VALUE=4_words
+DRIVER.EMIF.VAR.EMIF_ASYNC2_WAIT.VALUE=pin0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TEHEL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_SDRAM_TRFC_VAL.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_R_HOLD.VALUE=7
+DRIVER.EMIF.VAR.EMIF_SDRAM_PAGE_SIZE.VALUE=elements_256
+DRIVER.EMIF.VAR.EMIF_ASYNC2_TELEH.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC1_PAGE_DELAY.VALUE=0
+DRIVER.EMIF.VAR.EMIF_IBANK.VALUE=0
+DRIVER.EMIF.VAR.EMIF_ASYNC2_W_STROBE.VALUE=63
+DRIVER.EMIF.VAR.EMIF_ASYNC1_TA.VALUE=0
+DRIVER.POM.VAR.POM_OVRLY_START_ADD28.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD29.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_10_ENA.VALUE=0
+DRIVER.POM.VAR.POM_TIMEOUT_ENABLE.VALUE=0
+DRIVER.POM.VAR.POM_REGION_11_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_20_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_12_ENA.VALUE=0
+DRIVER.POM.VAR.POM_NO_OF_REGION.VALUE=1
+DRIVER.POM.VAR.POM_REGION_21_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_13_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_30_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_22_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_14_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_31_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_23_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_15_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_1_ENA.VALUE=1
+DRIVER.POM.VAR.POM_REGION_32_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_24_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_16_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_2_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_25_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_17_ENA.VALUE=0
+DRIVER.POM.VAR.POM_OVRLY_START_ADD1.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD2.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD3.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD4.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD5.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD6.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD7.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD8.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVLY_TRG_REGION.VALUE=INTERNAL_RAM
+DRIVER.POM.VAR.POM_OVRLY_START_ADD9.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_3_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_26_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_18_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_4_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_27_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_19_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_5_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_28_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_6_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_SIZE10.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE11.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE20.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE12.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_29_ENA.VALUE=0
+DRIVER.POM.VAR.POM_REGION_SIZE21.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE13.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE30.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE22.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE14.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE31.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE23.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE15.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE32.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE24.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE16.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE25.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE17.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE26.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE18.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE27.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE19.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE28.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE29.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_7_ENA.VALUE=0
+DRIVER.POM.VAR.POM_BASE.VALUE=0xFFA04000
+DRIVER.POM.VAR.POM_PROG_START_ADD10.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD11.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD20.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD12.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD21.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD13.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_8_ENA.VALUE=0
+DRIVER.POM.VAR.POM_PROG_START_ADD30.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD22.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD14.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD31.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD23.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD15.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD32.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD24.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD16.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD25.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD17.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD26.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD18.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD27.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD19.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_SIZE1.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_PROG_START_ADD28.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_SIZE2.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_PROG_START_ADD29.VALUE=0x00000000
+DRIVER.POM.VAR.POM_REGION_SIZE3.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE4.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE5.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE6.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE7.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE8.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_SIZE9.VALUE=SIZE_64BYTES
+DRIVER.POM.VAR.POM_REGION_9_ENA.VALUE=0
+DRIVER.POM.VAR.POM_PROG_START_ADD1.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD2.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD3.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD4.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD5.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD6.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD7.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD8.VALUE=0x00000000
+DRIVER.POM.VAR.POM_PROG_START_ADD9.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD10.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD11.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD20.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD12.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD21.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD13.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD30.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD22.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD14.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD31.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD23.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD15.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD32.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD24.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD16.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD25.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD17.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD26.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD18.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD27.VALUE=0x00000000
+DRIVER.POM.VAR.POM_OVRLY_START_ADD19.VALUE=0x00000000
+DRIVER.PMM.VAR.PMM_RAM_PWR_DOMAIN2_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_PWR_DOMAIN5_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_PWR_DOMAIN3_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_RAM_PWR_DOMAIN3_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_RAM_PWR_DOMAIN1_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_PWR_DOMAIN4_ENABLE.VALUE=0
+DRIVER.PMM.VAR.PMM_PWR_DOMAIN2_ENABLE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM7_BASE.VALUE=0xFCF79200
+DRIVER.ETPWM.VAR.ETPWM5_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM6_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM6_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM7_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM1_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM1_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM6_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM3_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM1_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM6_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM6_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM6_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM5_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM4_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM6_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM3_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM2_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM5_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM4_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM3_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM2_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM1_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM6_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM5_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM4_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM4_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM6_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_CBC.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM3_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM6_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM1_BASE.VALUE=0xFCF78C00
+DRIVER.ETPWM.VAR.ETPWM6_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM1_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM4_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM2_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM6_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM3_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM3_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM3_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM2_BASE.VALUE=0xFCF78D00
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM7_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM5_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM3_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM5_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM4_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM3_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM5_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM4_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM7_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM1_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM2_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM4_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM2_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM4_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM4_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_BASE.VALUE=0xFCF78E00
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM2_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM4_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM7_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_FALLING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM3_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM1_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM3_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM5_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_OST.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_DUTYTIME.VALUE=50.000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_DEADBAND_INVERT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM4_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM4_BASE.VALUE=0xFCF78F00
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM4_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM4_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM2_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM2_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM7_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM1_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_PERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM1_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_TB_ACTUALFREQUENCY.VALUE=80.000
+DRIVER.ETPWM.VAR.ETPWM2_ENABLE_SOCA.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_ENABLE_SOCB.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM6_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM6_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_DUTYTIME_REG.VALUE=3
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_SOCB_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_BASE.VALUE=0xFCF79000
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM7_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM7_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM1_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM4_PWMB_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM7_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM7_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM7_HSPCLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_CLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_PWMB_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_DEADBAND_OUTPUT.VALUE=PWMA_PWMB_NIL
+DRIVER.ETPWM.VAR.ETPWM1_INTERRUPT_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM4_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM5_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM4_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM1_OSHT_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM4_OSHT_WIDTH_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM2_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM7_DCBEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_MODE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_DCBEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM2_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_CBC1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM5_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM1_SELECT_SOCA.VALUE=DCAEVT1
+DRIVER.ETPWM.VAR.ETPWM7_CBC2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM1_SELECT_SOCB.VALUE=DCBEVT1
+DRIVER.ETPWM.VAR.ETPWM7_CBC3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_PERIOD_REG.VALUE=1000
+DRIVER.ETPWM.VAR.ETPWM3_CHOPPER_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM2_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_CBC4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM6_CHOPPER_ACTUALPERIOD.VALUE=100.000
+DRIVER.ETPWM.VAR.ETPWM7_CBC5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_CBC6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM5_PWMA_COMPARE.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM1_CHOPPER_PERIOD_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_PWMB_PERIOD_REG.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_FALLING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_RISING_EDGE_DELAY.VALUE=9.091
+DRIVER.ETPWM.VAR.ETPWM6_BASE.VALUE=0xFCF79100
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_DUTYTIME.VALUE=500.000
+DRIVER.ETPWM.VAR.ETPWM6_PWMB_ENA.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM5_OSHT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_PWMB_RISING_EDGE_DELAY_REG.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_OSHT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_DEADBAND_INPUT.VALUE=PWMA_RED_FED
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM5_OSHT3.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_OSHT4.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM2_SELECT_EVENT.VALUE=NO_EVENT
+DRIVER.ETPWM.VAR.ETPWM5_OSHT5.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM5_PWMB_DUTY.VALUE=50
+DRIVER.ETPWM.VAR.ETPWM5_OSHT6.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM7_OSHT_ACTUAL_WIDTH.VALUE=100
+DRIVER.ETPWM.VAR.ETPWM6_CLKDIV.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_PWMA_DEADBAND_OUT.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM7_HSPCLKDIV_REG.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM2_CHOPPER_DUTY_NEW.VALUE=50.0
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_PERIOD.VALUE=1000.000
+DRIVER.ETPWM.VAR.ETPWM2_TB_FREQUENCY.VALUE=110.000
+DRIVER.ETPWM.VAR.ETPWM6_DCAEVT1.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM3_PWMA_POLARITY.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM6_SOCA_PERIOD.VALUE=1
+DRIVER.ETPWM.VAR.ETPWM6_DCAEVT2.VALUE=0x0000
+DRIVER.ETPWM.VAR.ETPWM4_FDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_RDELAY_SOURCE.VALUE=0
+DRIVER.ETPWM.VAR.ETPWM1_PWMA_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP1_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP4_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP6_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP6_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP6_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP5_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP5_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP4_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP5_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP5_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP5_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP5_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP3_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP2_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP6_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP3_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP3_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP1_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP2_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP5_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP5_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP5_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_CEVT4.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP1_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP1_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP5_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP1_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP2_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP4_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP6_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP4_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP1_CEVT4.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP5_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP3_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP5_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP5_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP5_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP5_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP6_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP3_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_CEVT4.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP5_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP6_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP5_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP1_BASE.VALUE=0xFCF79300
+DRIVER.ECAP.VAR.ECAP4_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP2_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP4_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP5_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP1_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP2_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP4_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP2_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP1_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP2_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP2_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP2_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP6_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_BASE.VALUE=0xFCF79400
+DRIVER.ECAP.VAR.ECAP2_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP2_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_CEVT4.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP6_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP5_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP4_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP3_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP3_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP3_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP1_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP3_BASE.VALUE=0xFCF79500
+DRIVER.ECAP.VAR.ECAP5_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP3_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP4_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP1_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP2_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP4_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_BASE.VALUE=0xFCF79600
+DRIVER.ECAP.VAR.ECAP6_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP4_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP4_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP3_CEVT4.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP6_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP5_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP4_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP3_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_PWM_ACTUALPERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP6_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP1_PWM_COMPARE.VALUE=50
+DRIVER.ECAP.VAR.ECAP2_CAP2_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP3_PWM_DUTYTIME.VALUE=500.000
+DRIVER.ECAP.VAR.ECAP3_CAP4_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP1_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_PWM_PERIOD.VALUE=1000.000
+DRIVER.ECAP.VAR.ECAP5_BASE.VALUE=0xFCF79700
+DRIVER.ECAP.VAR.ECAP3_ENA_PWM.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_WRAP_COUNTER.VALUE=CAPTURE_EVENT1
+DRIVER.ECAP.VAR.ECAP3_CAPTURE_MODE.VALUE=ONE_SHOT
+DRIVER.ECAP.VAR.ECAP1_RESET_COUNTER_CAP1.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP1_RESET_COUNTER_CAP2.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP1_RESET_COUNTER_CAP3.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP1_RESET_COUNTER_CAP4.VALUE=RESET_DISABLE
+DRIVER.ECAP.VAR.ECAP5_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_PWM_DUTY.VALUE=50
+DRIVER.ECAP.VAR.ECAP1_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_PRESCALE_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_PRESCALE.VALUE=0
+DRIVER.ECAP.VAR.ECAP2_CNTOVF.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP5_CAP1_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP1_PWM_PERIOD_REG.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_CMP.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP2_ENA_LOAD.VALUE=0
+DRIVER.ECAP.VAR.ECAP3_PRD.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP3_RESET_COUNTER.VALUE=0
+DRIVER.ECAP.VAR.ECAP6_BASE.VALUE=0xFCF79800
+DRIVER.ECAP.VAR.ECAP6_CAP3_POLARITY.VALUE=RISING_EDGE
+DRIVER.ECAP.VAR.ECAP4_CEVT1.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_CEVT2.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_CEVT3.VALUE=0x0000
+DRIVER.ECAP.VAR.ECAP4_CEVT4.VALUE=0x0000
+DRIVER.EQEP.VAR.EQEP2_QUPRD.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_INDEX_EVT_INIT_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_IGATE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_QPE_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_PC_RST_MODE.VALUE=MAX_POSITION
+DRIVER.EQEP.VAR.EQEP1_UTO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_SEL_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_INDEX_EVT_SELECT.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP2_PCE_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_PCU_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_BASE.VALUE=0xFCF79900
+DRIVER.EQEP.VAR.EQEP1_INV_QEPS_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_INV_QEPA_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PCSHDW.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PC_INIT_VALUE.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP2_PCR_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_BASE.VALUE=0xFCF79A00
+DRIVER.EQEP.VAR.EQEP1_ENABLE_CAPTURE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_INV_QEPB_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_MAXPC_VALUE.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP1_PCM_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_PCPOL.VALUE=ACTIVE_HIGH
+DRIVER.EQEP.VAR.EQEP2_UNIT_POS_PRESCALER.VALUE=PS_512
+DRIVER.EQEP.VAR.EQEP2_CAP_CLK_PRESCALER.VALUE=PS_8
+DRIVER.EQEP.VAR.EQEP1_PCSPW.VALUE=0x000
+DRIVER.EQEP.VAR.EQEP1_POSCMP.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP2_PC_MODE.VALUE=DIRECTION_COUNT
+DRIVER.EQEP.VAR.EQEP1_PCE_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_INV_QEPS_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_SET_INIT_AT_STARTUP.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_ENABLE_CAPTURE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_STROBE_EVT_SELECT.VALUE=DIRECTON_DEPENDENT
+DRIVER.EQEP.VAR.EQEP2_PCPOL.VALUE=ACTIVE_HIGH
+DRIVER.EQEP.VAR.EQEP2_INV_QEPA_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_CAP_CLK_PRESCALER.VALUE=PS_8
+DRIVER.EQEP.VAR.EQEP2_QDC_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_QCLM.VALUE=ON_POSITION_COUNTER_READ
+DRIVER.EQEP.VAR.EQEP1_PC_MODE.VALUE=DIRECTION_COUNT
+DRIVER.EQEP.VAR.EQEP2_WTO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_SWI_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_PCR_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_INV_QEPB_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_IEL.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP2_PCSPW.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_PC_INIT_VALUE.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP1_PCLOAD.VALUE=QPOSCNT_EQ_QPSCMP
+DRIVER.EQEP.VAR.EQEP2_IEL_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_IEL.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP1_MAXPC_VALUE.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP1_INV_QEPI_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_QCLM.VALUE=ON_POSITION_COUNTER_READ
+DRIVER.EQEP.VAR.EQEP1_STROBE_EVT_INIT_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PCO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_STROBE_EVT_INIT_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_EXT_CLK_RATE.VALUE=RESOLUTION_1x
+DRIVER.EQEP.VAR.EQEP1_STROBE_EVT_SELECT.VALUE=DIRECTON_DEPENDENT
+DRIVER.EQEP.VAR.EQEP1_UNIT_POS_PRESCALER.VALUE=PS_512
+DRIVER.EQEP.VAR.EQEP1_WDPRD.VALUE=0x0000
+DRIVER.EQEP.VAR.EQEP1_SEL.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP1_SOEN.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_QPE_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PC_RST_MODE.VALUE=MAX_POSITION
+DRIVER.EQEP.VAR.EQEP1_WDE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_SET_INIT_AT_STARTUP.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_UTO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_SWI_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_POSITIVE_ROTATION.VALUE=CLOCKWISE
+DRIVER.EQEP.VAR.EQEP2_SEL_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_SEL.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP2_PCU_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_WDE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_SPSEL.VALUE=INDEX_PIN
+DRIVER.EQEP.VAR.EQEP1_PCSHDW.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_SWAP.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_SOEN.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_POSCMP.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_QUPRD.VALUE=0x00000000
+DRIVER.EQEP.VAR.EQEP1_IGATE.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_QDC_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_SWAP.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_WDPRD.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_WTO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_POSITIVE_ROTATION.VALUE=CLOCKWISE
+DRIVER.EQEP.VAR.EQEP2_INV_QEPI_POL.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PCM_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP1_IEL_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_EXT_CLK_RATE.VALUE=RESOLUTION_1x
+DRIVER.EQEP.VAR.EQEP2_SPSEL.VALUE=INDEX_PIN
+DRIVER.EQEP.VAR.EQEP1_PCO_INT_ENA.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_INDEX_EVT_SELECT.VALUE=RISING_EDGE
+DRIVER.EQEP.VAR.EQEP1_INDEX_EVT_INIT_ENABLE.VALUE=0
+DRIVER.EQEP.VAR.EQEP2_PCLOAD.VALUE=QPOSCNT_EQ_QPSCMP
+DRIVER.FEE.VAR.FEE_START_SECTOR.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_4_BANK.VALUE=7
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_READ_CYCLE_COUNT.VALUE=10
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_NUMBER_OF_VIRTUAL_SECTORS.VALUE=4
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX15_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX4_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_FLASH_CRC_ENABLE.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_NUMBER.VALUE=12
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_5_BANK.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_NUMBER.VALUE=3
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_5_NUMBER.VALUE=5
+DRIVER.FEE.VAR.FEE_SECTORS_EEP1.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_5_START.VALUE=4
+DRIVER.FEE.VAR.FEE_BLOCK_NUMBER.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_DRIVER_INDEX.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_VS5_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX9_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX13_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX2_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_NUMBER.VALUE=10
+DRIVER.FEE.VAR.FEE_NUMBER_OF_EEPS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_NUMBER.VALUE=8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_NUMBER.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_DEVICE_INDEX.VALUE=0
+DRIVER.FEE.VAR.FEE_PAGE_OVERHEAD.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_3_NUMBER.VALUE=3
+DRIVER.FEE.VAR.FEE_TI_FEE_SW_MAJOR_VERSION.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_1_END.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_1_START.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_SECTOR_NUMBER.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUALPAGE_SIZE.VALUE=8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_VS3_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX7_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_2_END.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX11_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_FLASH_WRITECOUNTER_SAVE.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_VS_INDEX.VALUE=2
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_NUMBER.VALUE=15
+DRIVER.FEE.VAR.FEE_TI_FEE_SW_PATCH_VERSION.VALUE=0
+DRIVER.FEE.VAR.FEE_JOBERROR_NOTIFICATION.VALUE=JobErrorNotification
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_NUMBER.VALUE=6
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_3_END.VALUE=2
+DRIVER.FEE.VAR.FEE_BLOCK_SIZE.VALUE=0x10
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_TOTAL_BLOCKS_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_1_NUMBER.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_SIZE.VALUE=8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_4_END.VALUE=3
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_MAXIMUM_BLOCKING_TIME.VALUE=600
+DRIVER.FEE.VAR.FEE_VS1_ENABLE.VALUE=1
+DRIVER.FEE.VAR.FEE_NO_OF_UNCONFIGURED_BLOCKS_TO_COPY.VALUE=0
+DRIVER.FEE.VAR.FEE_FLASH_BANK_NUM.VALUE=7
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX16_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX5_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_NUMBER.VALUE=13
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_5_END.VALUE=4
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_2_START.VALUE=1
+DRIVER.FEE.VAR.FEE_SECTOR_OVERHEAD.VALUE=16
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_NUMBER.VALUE=4
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_TI_FEE_SW_MINOR_VERSION.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_VERSIONINFO_API.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_DATASETS.VALUE=1
+DRIVER.FEE.VAR.MAX_BLOCK_TIME.VALUE=600
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_WRITE_CYCLES.VALUE=10
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_OFFSET.VALUE=16
+DRIVER.FEE.VAR.FEE_NUMBER_OF_BLOCKS.VALUE=1
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_BANK.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX14_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX3_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_NUMBER_OF_EIGHTBYTEWRITES.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_3_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_11_NUMBER.VALUE=11
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_NUMBER.VALUE=9
+DRIVER.FEE.VAR.FEE_END_SECTOR.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_1_BANK.VALUE=7
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_NUMBER.VALUE=2
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_FLASH_ERROR_CORRECTION_HANDLING.VALUE=TI_Fee_None
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_4_NUMBER.VALUE=4
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_DEVERROR_DETECT.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_3_START.VALUE=2
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_1_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_VS4_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX8_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_MAX_NUMBER_OF_LINKS.VALUE=256
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_EEP.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX12_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX1_ENABLE.VALUE=1
+DRIVER.FEE.VAR.FEE_FLASH_ERROR_CORRECTION_ENABLE.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_2_BANK.VALUE=7
+DRIVER.FEE.VAR.FEE_DATASELECT_BITS.VALUE=0
+DRIVER.FEE.VAR.FEE_OPERATING_FREQ.VALUE=220.000
+DRIVER.FEE.VAR.FEE_TOTAL_SECTORS.VALUE=4
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_16_NUMBER.VALUE=16
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_2_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_NUMBER.VALUE=7
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_9_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_2_NUMBER.VALUE=2
+DRIVER.FEE.VAR.FEE_JOBEND_NOTIFICATION.VALUE=JobEndNotification
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_13_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_12_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_8_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_ENABLE_ECC.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_OVERHEAD.VALUE=24
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_7_DATASETS.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_4_OFFSET.VALUE=0
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_3_BANK.VALUE=7
+DRIVER.FEE.VAR.FEE_VS2_ENABLE.VALUE=1
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX6_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_DEVICE_INDEX.VALUE=0x00000000
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_10_SIZE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX10_ENABLE.VALUE=0
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_14_NUMBER.VALUE=14
+DRIVER.FEE.VAR.FEE_VIRTUAL_SECTOR_4_START.VALUE=3
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_15_IMED_DATA.VALUE=TRUE
+DRIVER.FEE.VAR.FEE_CHECK_BANK7_ACCESS.VALUE=STD_OFF
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_WRITE_CYCLES.VALUE=0x8
+DRIVER.FEE.VAR.FEE_POLLING_MODE.VALUE=STD_ON
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_5_NUMBER.VALUE=5
+DRIVER.FEE.VAR.FEE_BLOCK_INDEX_6_SIZE.VALUE=0
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_WORD_2.VALUE=0xFFFDFFFE
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_WORD_3.VALUE=0xFFEFFFFF
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_WORD_0.VALUE=0xEFFDFFFF
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_WORD_1.VALUE=0xFFFFFFFF
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_WORD_2.VALUE=0xFFFDFFFE
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_WORD_3.VALUE=0xFFEFFFFF
+DRIVER.AJSM.VAR.AJSM_SCAN_PATTERN_WORD_0.VALUE=PATTERN_NOT_REQUIRED
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_ECC_BYTE_0.VALUE=0xED
+DRIVER.AJSM.VAR.AJSM_SCAN_PATTERN_WORD_1.VALUE=PATTERN_NOT_REQUIRED
+DRIVER.AJSM.VAR.AJSM_VISIBLE_KEY_ECC_BYTE_1.VALUE=0xC0
+DRIVER.AJSM.VAR.AJSM_SCAN_PATTERN_WORD_2.VALUE=PATTERN_NOT_REQUIRED
+DRIVER.AJSM.VAR.AJSM_SCAN_PATTERN_WORD_3.VALUE=PATTERN_NOT_REQUIRED
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_ECC_BYTE_0.VALUE=0xED
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_ECC_BYTE_1.VALUE=0xC0
+DRIVER.AJSM.VAR.AJSM_SCAN_PATTERN.VALUE=PATTERN_NOT_REQUIRED
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_WORD_0.VALUE=0xEFFDFFFF
+DRIVER.AJSM.VAR.AJSM_NEW_KEY_WORD_1.VALUE=0xFFFFFFFF
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.hcg b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.hcg
new file mode 100644
index 000000000..34fd00c5c
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/HalCoGen-RM46L852.hcg
@@ -0,0 +1,1032 @@
+
+
+
+ RM46x
+ RM46L852ZWT_FREERTOS
+ HalCoGen-RM46L852.dil
+ gcc
+
+
+ 04.07.01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hal_stdtypes.h
+ include\hal_stdtypes.h
+
+
+ sys_common.h
+ include\sys_common.h
+
+
+ reg_system.h
+ include\reg_system.h
+
+
+ reg_flash.h
+ include\reg_flash.h
+
+
+ reg_tcram.h
+ include\reg_tcram.h
+
+
+ reg_vim.h
+ include\reg_vim.h
+
+
+ reg_pbist.h
+ include\reg_pbist.h
+
+
+ reg_stc.h
+ include\reg_stc.h
+
+
+ reg_efc.h
+ include\reg_efc.h
+
+
+ reg_pcr.h
+ include\reg_pcr.h
+
+
+ reg_pmm.h
+ include\reg_pmm.h
+
+
+ reg_dma.h
+ include\reg_dma.h
+
+
+ system.h
+ include\system.h
+
+
+ sys_vim.h
+ include\sys_vim.h
+
+
+ sys_core.h
+ include\sys_core.h
+
+
+ sys_mpu.h
+ include\sys_mpu.h
+
+
+ sys_pmu.h
+ include\sys_pmu.h
+
+
+ sys_pcr.h
+ include\sys_pcr.h
+
+
+ sys_pmm.h
+ include\sys_pmm.h
+
+
+ sys_dma.h
+ include\sys_dma.h
+
+
+ sys_selftest.h
+ include\sys_selftest.h
+
+
+ sys_core.s
+ source\sys_core.s
+
+
+ sys_intvecs.s
+ source\sys_intvecs.s
+
+
+ sys_mpu.s
+ source\sys_mpu.s
+
+
+ sys_pmu.s
+ source\sys_pmu.s
+
+
+ dabort.s
+ source\dabort.s
+
+
+ sys_pcr.c
+ source\sys_pcr.c
+
+
+ sys_pmm.c
+ source\sys_pmm.c
+
+
+ sys_dma.c
+ source\sys_dma.c
+
+
+ system.c
+ source\system.c
+
+
+ sys_phantom.c
+ source\sys_phantom.c
+
+
+ sys_startup.c
+ source\sys_startup.c
+
+
+ sys_selftest.c
+ source\sys_selftest.c
+
+
+ sys_vim.c
+ source\sys_vim.c
+
+
+ sys_main.c
+ source\sys_main.c
+
+
+ notification.c
+ source\notification.c
+
+
+ sys_link.ld
+ source\sys_link.ld
+
+
+ HL_Test.h
+
+
+ errata_SSWF021_45.h
+ include\errata_SSWF021_45.h
+
+
+ errata_SSWF021_45_defs.h
+ include\errata_SSWF021_45_defs.h
+
+
+ errata_SSWF021_45.c
+ source\errata_SSWF021_45.c
+
+
+ os_projdefs.h
+
+
+ FreeRTOSConfig.h
+
+
+ os_portmacro.h
+
+
+ os_mpu_wrappers.h
+
+
+ os_portable.h
+
+
+ FreeRTOS.h
+
+
+ os_list.h
+
+
+ os_queue.h
+
+
+ os_semphr.h
+
+
+ os_croutine.h
+
+
+ os_StackMacros.h
+
+
+ os_task.h
+
+
+ os_timer.h
+
+
+ os_port.c
+
+
+ os_portasm.s
+
+
+ os_tasks.c
+
+
+ os_queue.c
+
+
+ os_list.c
+
+
+ os_croutine.c
+
+
+ os_timer.c
+
+
+ os_mpu_wrappers.c
+
+
+ os_heap.c
+
+
+ os_event_groups.c
+
+
+ os_event_groups.h
+
+
+ reg_pinmux.h
+
+
+ pinmux.h
+
+
+ pinmux.c
+
+
+ reg_gio.h
+
+
+ gio.h
+
+
+ gio.c
+
+
+ reg_sci.h
+
+
+ sci.h
+
+
+ sci.c
+
+
+ reg_lin.h
+
+
+ lin.h
+
+
+
+
+ reg_mibspi.h
+
+
+ mibspi.h
+
+
+ mibspi.c
+
+
+ reg_spi.h
+
+
+ spi.h
+
+
+ spi.c
+
+
+ reg_can.h
+
+
+ can.h
+
+
+ can.c
+
+
+ reg_adc.h
+
+
+ adc.h
+
+
+ adc.c
+
+
+
+
+
+
+
+
+ std_nhet.h
+
+
+ reg_het.h
+
+
+ het.h
+
+
+ het.c
+
+
+ reg_htu.h
+
+
+ htu.h
+
+
+
+
+
+
+
+
+ reg_esm.h
+
+
+ esm.h
+
+
+ esm.c
+
+
+ reg_i2c.h
+
+
+ i2c.h
+
+
+
+ emac.h
+
+
+ hw_emac.h
+
+
+ hw_emac_ctrl.h
+
+
+ hw_mdio.h
+
+
+ hw_reg_access.h
+
+
+ mdio.h
+
+
+ emac.c
+
+
+ mdio.c
+
+
+ phy_dp83640.c
+
+
+ phy_dp83640.h
+
+
+ reg_dcc.h
+
+
+ dcc.h
+
+
+
+ reg_emif.h
+
+
+ emif.h
+
+
+ emif.c
+
+
+ reg_pom.h
+
+
+ pom.h
+
+
+
+ usbcdc.h
+
+
+ usb_serial_structs.h
+
+
+ usbdcdc.h
+
+
+ usbdevice.h
+
+
+ usbdevicepriv.h
+
+
+ usb-ids.h
+
+
+ usblib.h
+
+
+ usb.h
+
+
+ hw_usb.h
+
+
+
+
+
+
+
+
+
+
+
+ reg_crc.h
+
+
+ crc.h
+
+
+
+ reg_etpwm.h
+
+
+ etpwm.h
+
+
+
+ reg_ecap.h
+
+
+ ecap.h
+
+
+
+ reg_eqep.h
+
+
+ eqep.h
+
+
+
+ Device_RM46.h
+
+
+ Device_header.h
+
+
+ Device_types.h
+
+
+ ti_fee_cfg.h
+
+
+ MemMap.h
+
+
+ ti_fee_types.h
+
+
+ ti_fee.h
+
+
+ fee_interface.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ include\os_projdefs.h
+
+
+ include\FreeRTOSConfig.h
+
+
+ include\os_portmacro.h
+
+
+ include\os_mpu_wrappers.h
+
+
+ include\os_portable.h
+
+
+ include\FreeRTOS.h
+
+
+ include\os_list.h
+
+
+ include\os_queue.h
+
+
+ include\os_semphr.h
+
+
+ include\os_croutine.h
+
+
+ include\os_StackMacros.h
+
+
+ include\os_task.h
+
+
+ include\os_timer.h
+
+
+ source\os_port.c
+
+
+ source\os_portasm.s
+
+
+ source\os_tasks.c
+
+
+ source\os_queue.c
+
+
+ source\os_list.c
+
+
+ source\os_croutine.c
+
+
+ source\os_timer.c
+
+
+ source\os_mpu_wrappers.c
+
+
+ source\os_heap.c
+
+
+ source\os_event_groups.c
+
+
+ include\os_event_groups.h
+
+
+
+
+
+
+ include\reg_pinmux.h
+
+
+ include\pinmux.h
+
+
+ source\pinmux.c
+
+
+
+
+
+
+ include\reg_gio.h
+
+
+ include\gio.h
+
+
+ source\gio.c
+
+
+
+
+
+
+ include\reg_sci.h
+
+
+ include\sci.h
+
+
+ source\sci.c
+
+
+
+
+
+
+ include\reg_lin.h
+
+
+ include\lin.h
+
+
+
+
+
+
+
+
+
+ include\reg_mibspi.h
+
+
+ include\mibspi.h
+
+
+ source\mibspi.c
+
+
+
+
+
+
+ include\reg_spi.h
+
+
+ include\spi.h
+
+
+ source\spi.c
+
+
+
+
+
+
+ include\reg_can.h
+
+
+ include\can.h
+
+
+ source\can.c
+
+
+
+
+
+
+ include\reg_adc.h
+
+
+ include\adc.h
+
+
+ source\adc.c
+
+
+
+
+
+
+ include\std_nhet.h
+
+
+ include\reg_het.h
+
+
+ include\het.h
+
+
+ source\het.c
+
+
+ include\reg_htu.h
+
+
+ include\htu.h
+
+
+
+
+
+
+ include\reg_esm.h
+
+
+ include\esm.h
+
+
+ source\esm.c
+
+
+
+
+
+
+ include\reg_i2c.h
+
+
+ include\i2c.h
+
+
+
+
+
+
+
+
+
+ include\emac.h
+
+
+ include\hw_emac.h
+
+
+ include\hw_emac_ctrl.h
+
+
+ include\hw_mdio.h
+
+
+ include\hw_reg_access.h
+
+
+ include\mdio.h
+
+
+ source\emac.c
+
+
+ source\mdio.c
+
+
+ source\phy_dp83640.c
+
+
+ include\phy_dp83640.h
+
+
+
+
+
+
+ include\reg_dcc.h
+
+
+ include\dcc.h
+
+
+
+
+
+
+
+
+
+ include\reg_emif.h
+
+
+ include\emif.h
+
+
+ source\emif.c
+
+
+
+
+
+
+ include\reg_pom.h
+
+
+ include\pom.h
+
+
+
+
+
+
+
+
+
+ include\usbcdc.h
+
+
+ include\usb_serial_structs.h
+
+
+ include\usbdcdc.h
+
+
+ include\usbdevice.h
+
+
+ include\usbdevicepriv.h
+
+
+ include\usb-ids.h
+
+
+ include\usblib.h
+
+
+ include\usb.h
+
+
+ include\hw_usb.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ include\reg_crc.h
+
+
+ include\crc.h
+
+
+
+
+
+
+
+
+
+ include\reg_etpwm.h
+
+
+ include\etpwm.h
+
+
+
+
+
+
+
+
+
+ include\reg_ecap.h
+
+
+ include\ecap.h
+
+
+
+
+
+
+
+
+
+ include\reg_eqep.h
+
+
+ include\eqep.h
+
+
+
+
+
+
+
+
+
+ include\Device_RM46.h
+
+
+ include\Device_header.h
+
+
+ include\Device_types.h
+
+
+ include\ti_fee_cfg.h
+
+
+ include\MemMap.h
+
+
+ include\ti_fee_types.h
+
+
+ include\ti_fee.h
+
+
+ include\fee_interface.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_RM46.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_RM46.h
new file mode 100644
index 000000000..689d3f4c2
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_RM46.h
@@ -0,0 +1,112 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: Device_RM46.c
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: None
+ *
+ * Description: This file defines the number of sectors.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 01.15.00 06Jun2014 Vishwanath Reddy History Added.
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/*********************************************************************************************************************
+ * INCLUDES
+ *********************************************************************************************************************/
+
+#ifndef DEVICE_RM46_H
+ #define DEVICE_RM46_H
+
+ /** @def DEVICE_CONFIGURATION_VERSION
+ * @brief Device Configuration Version
+ *
+ * @note Indicates the current version of the device files
+ */
+ #define DEVICE_CONFIGURATION_VERSION \
+ 0U /* Indicates the current version of the device files */
+
+ /** @def DEVICE_NUMBER_OF_FLASH_BANKS
+ * @brief Number of Flash Banks
+ *
+ * @note Defines the number of Flash Banks on the device
+ */
+ #define DEVICE_NUMBER_OF_FLASH_BANKS \
+ 1U /* Defines the number of Flash Banks on the device */
+
+ /** @def DEVICE_BANK_MAX_NUMBER_OF_SECTORS
+ * @brief Maximum number of Sectors
+ *
+ * @note Defines the maxium number of sectors in all banks
+ */
+ #define DEVICE_BANK_MAX_NUMBER_OF_SECTORS \
+ 4U /* Defines the maxium number of sectors in all banks */
+
+ /** @def DEVICE_BANK1_NUMBER_OF_SECTORS
+ * @brief Number of Sectors
+ *
+ * @note Defines the number of sectors in bank1
+ */
+ #define DEVICE_BANK1_NUMBER_OF_SECTORS \
+ 4U /* Defines the number of sectors in bank1 \
+ */
+
+ /** @def DEVICE_NUMBER_OF_READ_CYCLE_THRESHOLDS
+ * @brief Number of Sectors
+ *
+ * @note Defines the number of Read Cycle Thresholds
+ */
+ #define DEVICE_NUMBER_OF_READ_CYCLE_THRESHOLDS \
+ 4U /* Defines the number of Read Cycle Thresholds */
+
+ /* Include Files */
+ #ifndef _PLATFORM_TYPES_H_
+ #define _PLATFORM_TYPES_H_
+ #endif
+ #include "F021.h"
+ #include "hal_stdtypes.h"
+ #include "Device_types.h"
+
+#endif /* DEVICE_RM46_H */
+
+/* End of File */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_header.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_header.h
new file mode 100644
index 000000000..6ed76ab3f
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_header.h
@@ -0,0 +1,65 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: Device_header.h
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: None
+ *
+ * Description: This file includes the header file.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 01.15.00 06Jun2014 Vishwanath Reddy History Added.
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/*********************************************************************************************************************
+ * INCLUDES
+ *********************************************************************************************************************/
+
+#ifndef TI_FEE_DEVICEHEADER_H
+#define TI_FEE_DEVICEHEADER_H
+
+/* Uncomment the appropriate include file depending on the device you are using */
+#include "Device_RM46.h"
+
+/* End of file */
+#endif
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_types.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_types.h
new file mode 100644
index 000000000..5508dc67a
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/Device_types.h
@@ -0,0 +1,133 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: Device_types.h
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: None
+ *
+ * Description: This file defines the structures.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 01.15.00 06Jun2014 Vishwanath Reddy History Added.
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/*********************************************************************************************************************
+ * INCLUDES
+ *********************************************************************************************************************/
+
+#ifndef DEVICE_TYPES_H
+ #define DEVICE_TYPES_H
+
+ #include "hal_stdtypes.h"
+
+/* Enum to describe the type of error handling on the device */
+typedef enum
+{
+ Device_ErrorHandlingNone, /* Device has no error handling */
+ Device_ErrorHandlingParity, /* Device has parity error handling */
+ Device_ErrorHandlingEcc /* Device has ECC error handling */
+} Device_FlashErrorCorrectionProcessType;
+
+/* Enum to describe the ARM core on the device*/
+typedef enum
+{
+ Device_CoreNone, /* To indicate that the device has a single core */
+ Device_Arm7, /* To indicate that the device has a ARM7 core */
+ Device_CortexR4, /* To indicate that the device has a CortexR4 core */
+ Device_CortexM3 /* To indicate that the device has a CortexM3 core */
+} Device_ArmCoreType;
+
+/* Structure defines an individual sector within a bank */
+typedef struct
+{
+ Fapi_FlashSectorType Device_Sector; /* Sector number */
+ uint32 Device_SectorStartAddress; /* Starting address of the sector */
+ uint32 Device_SectorLength; /* Length of the sector */
+ uint32 Device_MaxWriteCycles; /* Number of cycles the sector is rated for */
+ uint32 Device_EccAddress;
+ uint32 Device_EccLength;
+} Device_SectorType;
+
+/* Structure defines an individual bank */
+typedef struct
+{
+ Fapi_FmcRegistersType * Device_ControlRegister;
+ Fapi_FlashBankType Device_Core; /* Core number for this bank */
+ Device_SectorType Device_SectorInfo[ DEVICE_BANK_MAX_NUMBER_OF_SECTORS ]; /* Array of
+ the
+ Sectors
+ within a
+ bank */
+} Device_BankType;
+
+/* Structure defines the Flash structure of the device */
+typedef struct
+{
+ uint8 Device_DeviceName[ 12 ]; /* Device name */
+ uint32 Device_EngineeringId; /* Device Engineering ID */
+ Device_FlashErrorCorrectionProcessType
+ Device_FlashErrorHandlingProcessInfo; /* Indicates
+ which
+ type
+ of bit
+ Error
+ handling
+ is on
+ the
+ device
+ */
+ Device_ArmCoreType Device_MasterCore; /* Indicates the Master core type on the device
+ */
+ boolean Device_SupportsInterrupts; /* Indicates if the device supports Flash
+ interrupts for processing Flash */
+ uint32 Device_NominalWriteTime; /* Nominal time for one write command operation in uS
+ */
+ uint32 Device_MaximumWriteTime; /* Maximum time for one write command operation in uS
+ */
+ Device_BankType Device_BankInfo[ DEVICE_NUMBER_OF_FLASH_BANKS ]; /* Array of Banks on
+ the device */
+} Device_FlashType;
+
+#endif /* DEVICE_TYPES_H */
+
+/* End of File */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/MemMap.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/MemMap.h
new file mode 100644
index 000000000..9acca6757
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/MemMap.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __MEM_MAP_H__
+#define __MEM_MAP_H__
+
+#endif /* __MEM_MAP_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/adc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/adc.h
new file mode 100644
index 000000000..95d8aa60f
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/adc.h
@@ -0,0 +1,343 @@
+/** @file adc.h
+ * @brief ADC Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ADC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __ADC_H__
+#define __ADC_H__
+
+#include "reg_adc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* ADC General Definitions */
+
+/** @def adcGROUP0
+ * @brief Alias name for ADC event group
+ *
+ * @note This value should be used for API argument @a group
+ */
+#define adcGROUP0 0U
+
+/** @def adcGROUP1
+ * @brief Alias name for ADC group 1
+ *
+ * @note This value should be used for API argument @a group
+ */
+#define adcGROUP1 1U
+
+/** @def adcGROUP2
+ * @brief Alias name for ADC group 2
+ *
+ * @note This value should be used for API argument @a group
+ */
+#define adcGROUP2 2U
+
+/** @def ADC_12_BIT_MODE
+ * @brief Alias name for ADC 12-bit mode of operation
+ */
+#define ADC_12_BIT_MODE 0x80000000U
+
+/** @enum adcResolution
+ * @brief Alias names for data resolution
+ * This enumeration is used to provide alias names for the data resolution:
+ * - 12 bit resolution
+ * - 10 bit resolution
+ * - 8 bit resolution
+ */
+enum adcResolution
+{
+ ADC_12_BIT = 0x00000000U, /**< Alias for 12 bit data resolution */
+ ADC_10_BIT = 0x00000100U, /**< Alias for 10 bit data resolution */
+ ADC_8_BIT = 0x00000200U /**< Alias for 8 bit data resolution */
+};
+
+/** @enum adcFiFoStatus
+ * @brief Alias names for FiFo status
+ * This enumeration is used to provide alias names for the current FiFo states:
+ * - FiFo is not full
+ * - FiFo is full
+ * - FiFo overflow occurred
+ */
+
+enum adcFiFoStatus
+{
+ ADC_FIFO_IS_NOT_FULL = 0U, /**< Alias for FiFo is not full */
+ ADC_FIFO_IS_FULL = 1U, /**< Alias for FiFo is full */
+ ADC_FIFO_OVERFLOW = 3U /**< Alias for FiFo overflow occurred */
+};
+
+/** @enum adcConversionStatus
+ * @brief Alias names for conversion status
+ * This enumeration is used to provide alias names for the current conversion states:
+ * - Conversion is not finished
+ * - Conversion is finished
+ */
+
+enum adcConversionStatus
+{
+ ADC_CONVERSION_IS_NOT_FINISHED = 0U, /**< Alias for current conversion is not finished
+ */
+ ADC_CONVERSION_IS_FINISHED = 8U /**< Alias for current conversion is finished */
+};
+
+/** @enum adc1HwTriggerSource
+ * @brief Alias names for hardware trigger source
+ * This enumeration is used to provide alias names for the hardware trigger sources:
+ */
+
+enum adc1HwTriggerSource
+{
+ ADC1_EVENT = 0U, /**< Alias for event pin */
+ ADC1_HET1_8 = 1U, /**< Alias for HET1 pin 8 */
+ ADC1_HET1_10 = 2U, /**< Alias for HET1 pin 10 */
+ ADC1_RTI_COMP0 = 3U, /**< Alias for RTI compare 0 match */
+ ADC1_HET1_12 = 4U, /**< Alias for HET1 pin 12 */
+ ADC1_HET1_14 = 5U, /**< Alias for HET1 pin 14 */
+ ADC1_GIOB0 = 6U, /**< Alias for GIO port b pin 0 */
+ ADC1_GIOB1 = 7U, /**< Alias for GIO port b pin 1 */
+
+ ADC1_HET2_5 = 1U, /**< Alias for HET2 pin 5 */
+ ADC1_HET1_27 = 2U, /**< Alias for HET1 pin 27 */
+ ADC1_HET1_17 = 4U, /**< Alias for HET1 pin 17 */
+ ADC1_HET1_19 = 5U, /**< Alias for HET1 pin 19 */
+ ADC1_HET1_11 = 6U, /**< Alias for HET1 pin 11 */
+ ADC1_HET2_13 = 7U, /**< Alias for HET2 pin 13 */
+
+ ADC1_EPWM_B = 1U, /**< Alias for B Signal EPWM */
+ ADC1_EPWM_A1 = 3U, /**< Alias for A1 Signal EPWM */
+ ADC1_HET2_1 = 5U, /**< Alias for HET2 pin 1 */
+ ADC1_EPWM_A2 = 6U, /**< Alias for A2 Signal EPWM */
+ ADC1_EPWM_AB = 7U /**< Alias for AB Signal EPWM */
+};
+
+/** @enum adc2HwTriggerSource
+ * @brief Alias names for hardware trigger source
+ * This enumeration is used to provide alias names for the hardware trigger sources:
+ */
+
+enum adc2HwTriggerSource
+{
+ ADC2_EVENT = 0U, /**< Alias for event pin */
+ ADC2_HET1_8 = 1U, /**< Alias for HET1 pin 8 */
+ ADC2_HET1_10 = 2U, /**< Alias for HET1 pin 10 */
+ ADC2_RTI_COMP0 = 3U, /**< Alias for RTI compare 0 match */
+ ADC2_HET1_12 = 4U, /**< Alias for HET1 pin 12 */
+ ADC2_HET1_14 = 5U, /**< Alias for HET1 pin 14 */
+ ADC2_GIOB0 = 6U, /**< Alias for GIO port b pin 0 */
+ ADC2_GIOB1 = 7U, /**< Alias for GIO port b pin 1 */
+ ADC2_HET2_5 = 1U, /**< Alias for HET2 pin 5 */
+ ADC2_HET1_27 = 2U, /**< Alias for HET1 pin 27 */
+ ADC2_HET1_17 = 4U, /**< Alias for HET1 pin 17 */
+ ADC2_HET1_19 = 5U, /**< Alias for HET1 pin 19 */
+ ADC2_HET1_11 = 6U, /**< Alias for HET1 pin 11 */
+ ADC2_HET2_13 = 7U, /**< Alias for HET2 pin 13 */
+
+ ADC2_EPWM_B = 1U, /**< Alias for B Signal EPWM */
+ ADC2_EPWM_A1 = 3U, /**< Alias for A1 Signal EPWM */
+ ADC2_HET2_1 = 5U, /**< Alias for HET2 pin 1 */
+ ADC2_EPWM_A2 = 6U, /**< Alias for A2 Signal EPWM */
+ ADC2_EPWM_AB = 7U /**< Alias for AB Signal EPWM */
+};
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @struct adcData
+ * @brief ADC Conversion data structure
+ *
+ * This type is used to pass adc conversion data.
+ */
+
+/** @typedef adcData_t
+ * @brief ADC Data Type Definition
+ */
+typedef struct adcData
+{
+ uint32 id; /**< Channel/Pin Id */
+ uint16 value; /**< Conversion data value */
+} adcData_t;
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+typedef struct adc_config_reg
+{
+ uint32 CONFIG_OPMODECR;
+ uint32 CONFIG_CLOCKCR;
+ uint32 CONFIG_GxMODECR[ 3U ];
+ uint32 CONFIG_G0SRC;
+ uint32 CONFIG_G1SRC;
+ uint32 CONFIG_G2SRC;
+ uint32 CONFIG_BNDCR;
+ uint32 CONFIG_BNDEND;
+ uint32 CONFIG_G0SAMP;
+ uint32 CONFIG_G1SAMP;
+ uint32 CONFIG_G2SAMP;
+ uint32 CONFIG_G0SAMPDISEN;
+ uint32 CONFIG_G1SAMPDISEN;
+ uint32 CONFIG_G2SAMPDISEN;
+ uint32 CONFIG_PARCR;
+} adc_config_reg_t;
+
+#define ADC1_OPMODECR_CONFIGVALUE 0x81140001U
+#define ADC1_CLOCKCR_CONFIGVALUE ( 10U )
+
+#define ADC1_G0MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+#define ADC1_G1MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+#define ADC1_G2MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define ADC1_G0SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT )
+#define ADC1_G1SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT )
+#define ADC1_G2SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT )
+
+#define ADC1_BNDCR_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 8U << 16U ) | ( 8U + 8U ) )
+#define ADC1_BNDEND_CONFIGVALUE ( 2U )
+
+#define ADC1_G0SAMP_CONFIGVALUE ( 1U )
+#define ADC1_G1SAMP_CONFIGVALUE ( 1U )
+#define ADC1_G2SAMP_CONFIGVALUE ( 1U )
+
+#define ADC1_G0SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+#define ADC1_G1SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+#define ADC1_G2SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+
+#define ADC1_PARCR_CONFIGVALUE ( 0x00000005U )
+
+#define ADC2_OPMODECR_CONFIGVALUE 0x81140001U
+#define ADC2_CLOCKCR_CONFIGVALUE ( 10U )
+
+#define ADC2_G0MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+#define ADC2_G1MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+#define ADC2_G2MODECR_CONFIGVALUE \
+ ( ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define ADC2_G0SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT )
+#define ADC2_G1SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT )
+#define ADC2_G2SRC_CONFIGVALUE ( ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT )
+
+#define ADC2_BNDCR_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 8U << 16U ) | ( 8U + 8U ) )
+#define ADC2_BNDEND_CONFIGVALUE ( 2U )
+
+#define ADC2_G0SAMP_CONFIGVALUE ( 1U )
+#define ADC2_G1SAMP_CONFIGVALUE ( 1U )
+#define ADC2_G2SAMP_CONFIGVALUE ( 1U )
+
+#define ADC2_G0SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+#define ADC2_G1SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+#define ADC2_G2SAMPDISEN_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | 0x00000000U )
+
+#define ADC2_PARCR_CONFIGVALUE ( 0x00000005U )
+
+/**
+ * @defgroup ADC ADC
+ * @brief Analog To Digital Converter Module.
+ *
+ * The microcontroller includes two 12-bit ADC modules with selectable 10-bit or 12-bit
+ *resolution
+ *
+ * Related Files
+ * - reg_adc.h
+ * - adc.h
+ * - adc.c
+ * @addtogroup ADC
+ * @{
+ */
+
+/* ADC Interface Functions */
+
+void adcInit( void );
+void adcStartConversion( adcBASE_t * adc, uint32 group );
+void adcStopConversion( adcBASE_t * adc, uint32 group );
+void adcResetFiFo( adcBASE_t * adc, uint32 group );
+uint32 adcGetData( adcBASE_t * adc, uint32 group, adcData_t * data );
+uint32 adcIsFifoFull( adcBASE_t * adc, uint32 group );
+uint32 adcIsConversionComplete( adcBASE_t * adc, uint32 group );
+void adcEnableNotification( adcBASE_t * adc, uint32 group );
+void adcDisableNotification( adcBASE_t * adc, uint32 group );
+void adcCalibration( adcBASE_t * adc );
+uint32 adcMidPointCalibration( adcBASE_t * adc );
+void adcSetEVTPin( adcBASE_t * adc, uint32 value );
+uint32 adcGetEVTPin( adcBASE_t * adc );
+
+void adc1GetConfigValue( adc_config_reg_t * config_reg, config_value_type_t type );
+void adc2GetConfigValue( adc_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void adcNotification(adcBASE_t *adc, uint32 group)
+ * @brief Group notification
+ * @param[in] adc Pointer to ADC node:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group number of ADC node:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * @note This function has to be provide by the user.
+ */
+void adcNotification( adcBASE_t * adc, uint32 group );
+
+/* USER CODE BEGIN (3) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+#endif /* ifndef __ADC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/can.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/can.h
new file mode 100644
index 000000000..051b73176
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/can.h
@@ -0,0 +1,880 @@
+/** @file can.h
+ * @brief CAN Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the CAN driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __CAN_H__
+#define __CAN_H__
+
+#include "reg_can.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* CAN General Definitions */
+
+/** @def canLEVEL_ACTIVE
+ * @brief Alias name for CAN error operation level active (Error counter 0-31)
+ */
+#define canLEVEL_ACTIVE 0x00U
+
+/** @def canLEVEL_PASSIVE
+ * @brief Alias name for CAN error operation level passive (Error counter 32-63)
+ */
+#define canLEVEL_PASSIVE 0x20U
+
+/** @def canLEVEL_WARNING
+ * @brief Alias name for CAN error operation level warning (Error counter 64-127)
+ */
+#define canLEVEL_WARNING 0x40U
+
+/** @def canLEVEL_BUS_OFF
+ * @brief Alias name for CAN error operation level bus off (Error counter 128-255)
+ */
+#define canLEVEL_BUS_OFF 0x80U
+
+/** @def canLEVEL_PARITY_ERR
+ * @brief Alias name for CAN Parity error (Error counter 256-511)
+ */
+#define canLEVEL_PARITY_ERR 0x100U
+
+/** @def canLEVEL_TxOK
+ * @brief Alias name for CAN Sucessful Transmission
+ */
+#define canLEVEL_TxOK 0x08U
+
+/** @def canLEVEL_RxOK
+ * @brief Alias name for CAN Sucessful Reception
+ */
+#define canLEVEL_RxOK 0x10U
+
+/** @def canLEVEL_WakeUpPnd
+ * @brief Alias name for CAN Initiated a WakeUp to system
+ */
+#define canLEVEL_WakeUpPnd 0x200U
+
+/** @def canLEVEL_PDA
+ * @brief Alias name for CAN entered low power mode successfully.
+ */
+#define canLEVEL_PDA 0x400U
+
+/** @def canERROR_NO
+ * @brief Alias name for no CAN error occurred
+ */
+#define canERROR_OK 0U
+
+/** @def canERROR_STUFF
+ * @brief Alias name for CAN stuff error an RX message
+ */
+#define canERROR_STUFF 1U
+
+/** @def canERROR_FORMAT
+ * @brief Alias name for CAN form/format error an RX message
+ */
+#define canERROR_FORMAT 2U
+
+/** @def canERROR_ACKNOWLEDGE
+ * @brief Alias name for CAN TX message wasn't acknowledged
+ */
+#define canERROR_ACKNOWLEDGE 3U
+
+/** @def canERROR_BIT1
+ * @brief Alias name for CAN TX message sending recessive level but monitoring dominant
+ */
+#define canERROR_BIT1 4U
+
+/** @def canERROR_BIT0
+ * @brief Alias name for CAN TX message sending dominant level but monitoring recessive
+ */
+#define canERROR_BIT0 5U
+
+/** @def canERROR_CRC
+ * @brief Alias name for CAN RX message received wrong CRC
+ */
+#define canERROR_CRC 6U
+
+/** @def canERROR_NO
+ * @brief Alias name for CAN no message has send or received since last call of
+ * CANGetLastError
+ */
+#define canERROR_NO 7U
+
+/** @def canMESSAGE_BOX1
+ * @brief Alias name for CAN message box 1
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX1 1U
+
+/** @def canMESSAGE_BOX2
+ * @brief Alias name for CAN message box 2
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX2 2U
+
+/** @def canMESSAGE_BOX3
+ * @brief Alias name for CAN message box 3
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX3 3U
+
+/** @def canMESSAGE_BOX4
+ * @brief Alias name for CAN message box 4
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX4 4U
+
+/** @def canMESSAGE_BOX5
+ * @brief Alias name for CAN message box 5
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX5 5U
+
+/** @def canMESSAGE_BOX6
+ * @brief Alias name for CAN message box 6
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX6 6U
+
+/** @def canMESSAGE_BOX7
+ * @brief Alias name for CAN message box 7
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX7 7U
+
+/** @def canMESSAGE_BOX8
+ * @brief Alias name for CAN message box 8
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX8 8U
+
+/** @def canMESSAGE_BOX9
+ * @brief Alias name for CAN message box 9
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX9 9U
+
+/** @def canMESSAGE_BOX10
+ * @brief Alias name for CAN message box 10
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX10 10U
+
+/** @def canMESSAGE_BOX11
+ * @brief Alias name for CAN message box 11
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX11 11U
+
+/** @def canMESSAGE_BOX12
+ * @brief Alias name for CAN message box 12
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX12 12U
+
+/** @def canMESSAGE_BOX13
+ * @brief Alias name for CAN message box 13
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX13 13U
+
+/** @def canMESSAGE_BOX14
+ * @brief Alias name for CAN message box 14
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX14 14U
+
+/** @def canMESSAGE_BOX15
+ * @brief Alias name for CAN message box 15
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX15 15U
+
+/** @def canMESSAGE_BOX16
+ * @brief Alias name for CAN message box 16
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX16 16U
+
+/** @def canMESSAGE_BOX17
+ * @brief Alias name for CAN message box 17
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX17 17U
+
+/** @def canMESSAGE_BOX18
+ * @brief Alias name for CAN message box 18
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX18 18U
+
+/** @def canMESSAGE_BOX19
+ * @brief Alias name for CAN message box 19
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX19 19U
+
+/** @def canMESSAGE_BOX20
+ * @brief Alias name for CAN message box 20
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX20 20U
+
+/** @def canMESSAGE_BOX21
+ * @brief Alias name for CAN message box 21
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX21 21U
+
+/** @def canMESSAGE_BOX22
+ * @brief Alias name for CAN message box 22
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX22 22U
+
+/** @def canMESSAGE_BOX23
+ * @brief Alias name for CAN message box 23
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX23 23U
+
+/** @def canMESSAGE_BOX24
+ * @brief Alias name for CAN message box 24
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX24 24U
+
+/** @def canMESSAGE_BOX25
+ * @brief Alias name for CAN message box 25
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX25 25U
+
+/** @def canMESSAGE_BOX26
+ * @brief Alias name for CAN message box 26
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX26 26U
+
+/** @def canMESSAGE_BOX27
+ * @brief Alias name for CAN message box 27
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX27 27U
+
+/** @def canMESSAGE_BOX28
+ * @brief Alias name for CAN message box 28
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX28 28U
+
+/** @def canMESSAGE_BOX29
+ * @brief Alias name for CAN message box 29
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX29 29U
+
+/** @def canMESSAGE_BOX30
+ * @brief Alias name for CAN message box 30
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX30 30U
+
+/** @def canMESSAGE_BOX31
+ * @brief Alias name for CAN message box 31
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX31 31U
+
+/** @def canMESSAGE_BOX32
+ * @brief Alias name for CAN message box 32
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX32 32U
+
+/** @def canMESSAGE_BOX33
+ * @brief Alias name for CAN message box 33
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX33 33U
+
+/** @def canMESSAGE_BOX34
+ * @brief Alias name for CAN message box 34
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX34 34U
+
+/** @def canMESSAGE_BOX35
+ * @brief Alias name for CAN message box 35
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX35 35U
+
+/** @def canMESSAGE_BOX36
+ * @brief Alias name for CAN message box 36
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX36 36U
+
+/** @def canMESSAGE_BOX37
+ * @brief Alias name for CAN message box 37
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX37 37U
+
+/** @def canMESSAGE_BOX38
+ * @brief Alias name for CAN message box 38
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX38 38U
+
+/** @def canMESSAGE_BOX39
+ * @brief Alias name for CAN message box 39
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX39 39U
+
+/** @def canMESSAGE_BOX40
+ * @brief Alias name for CAN message box 40
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX40 40U
+
+/** @def canMESSAGE_BOX41
+ * @brief Alias name for CAN message box 41
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX41 41U
+
+/** @def canMESSAGE_BOX42
+ * @brief Alias name for CAN message box 42
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX42 42U
+
+/** @def canMESSAGE_BOX43
+ * @brief Alias name for CAN message box 43
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX43 43U
+
+/** @def canMESSAGE_BOX44
+ * @brief Alias name for CAN message box 44
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX44 44U
+
+/** @def canMESSAGE_BOX45
+ * @brief Alias name for CAN message box 45
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX45 45U
+
+/** @def canMESSAGE_BOX46
+ * @brief Alias name for CAN message box 46
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX46 46U
+
+/** @def canMESSAGE_BOX47
+ * @brief Alias name for CAN message box 47
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX47 47U
+
+/** @def canMESSAGE_BOX48
+ * @brief Alias name for CAN message box 48
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX48 48U
+
+/** @def canMESSAGE_BOX49
+ * @brief Alias name for CAN message box 49
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX49 49U
+
+/** @def canMESSAGE_BOX50
+ * @brief Alias name for CAN message box 50
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX50 50U
+
+/** @def canMESSAGE_BOX51
+ * @brief Alias name for CAN message box 51
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX51 51U
+
+/** @def canMESSAGE_BOX52
+ * @brief Alias name for CAN message box 52
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX52 52U
+
+/** @def canMESSAGE_BOX53
+ * @brief Alias name for CAN message box 53
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX53 53U
+
+/** @def canMESSAGE_BOX54
+ * @brief Alias name for CAN message box 54
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX54 54U
+
+/** @def canMESSAGE_BOX55
+ * @brief Alias name for CAN message box 55
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX55 55U
+
+/** @def canMESSAGE_BOX56
+ * @brief Alias name for CAN message box 56
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX56 56U
+
+/** @def canMESSAGE_BOX57
+ * @brief Alias name for CAN message box 57
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX57 57U
+
+/** @def canMESSAGE_BOX58
+ * @brief Alias name for CAN message box 58
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX58 58U
+
+/** @def canMESSAGE_BOX59
+ * @brief Alias name for CAN message box 59
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX59 59U
+
+/** @def canMESSAGE_BOX60
+ * @brief Alias name for CAN message box 60
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX60 60U
+
+/** @def canMESSAGE_BOX61
+ * @brief Alias name for CAN message box 61
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX61 61U
+
+/** @def canMESSAGE_BOX62
+ * @brief Alias name for CAN message box 62
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX62 62U
+
+/** @def canMESSAGE_BOX63
+ * @brief Alias name for CAN message box 63
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX63 63U
+
+/** @def canMESSAGE_BOX64
+ * @brief Alias name for CAN message box 64
+ *
+ * @note This value should be used for API argument @a messageBox
+ */
+#define canMESSAGE_BOX64 64U
+
+/** @enum canloopBackType
+ * @brief canLoopback type definition
+ */
+
+/** @typedef canloopBackType_t
+ * @brief canLoopback type Type Definition
+ *
+ * This type is used to select the can module Loopback type Digital or Analog loopback.
+ */
+typedef enum canloopBackType
+{
+ Internal_Lbk = 0x00000010U,
+ External_Lbk = 0x00000100U,
+ Internal_Silent_Lbk = 0x00000018U
+} canloopBackType_t;
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Configuration registers */
+typedef struct can_config_reg
+{
+ uint32 CONFIG_CTL;
+ uint32 CONFIG_ES;
+ uint32 CONFIG_BTR;
+ uint32 CONFIG_TEST;
+ uint32 CONFIG_ABOTR;
+ uint32 CONFIG_INTMUX0;
+ uint32 CONFIG_INTMUX1;
+ uint32 CONFIG_INTMUX2;
+ uint32 CONFIG_INTMUX3;
+ uint32 CONFIG_TIOC;
+ uint32 CONFIG_RIOC;
+} can_config_reg_t;
+
+/* Configuration registers initial value for CAN1*/
+#define CAN1_CTL_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | 0x00020002U )
+#define CAN1_ES_CONFIGVALUE 0x00000007U
+#define CAN1_BTR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U ) \
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U ) \
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U ) | ( uint32 ) 19U )
+#define CAN1_TEST_CONFIGVALUE 0x00000080U
+#define CAN1_ABOTR_CONFIGVALUE ( ( uint32 ) ( 0U ) )
+#define CAN1_INTMUX0_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN1_INTMUX1_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN1_INTMUX2_CONFIGVALUE 0x00000000U
+#define CAN1_INTMUX3_CONFIGVALUE 0x00000000U
+#define CAN1_TIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+#define CAN1_RIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+
+/* Configuration registers initial value for CAN2*/
+#define CAN2_CTL_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | 0x00020002U )
+#define CAN2_ES_CONFIGVALUE 0x00000007U
+#define CAN2_BTR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U ) \
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U ) \
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U ) | ( uint32 ) 19U )
+#define CAN2_TEST_CONFIGVALUE 0x00000080U
+#define CAN2_ABOTR_CONFIGVALUE ( ( uint32 ) ( 0U ) )
+#define CAN2_INTMUX0_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN2_INTMUX1_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN2_INTMUX2_CONFIGVALUE 0x00000000U
+#define CAN2_INTMUX3_CONFIGVALUE 0x00000000U
+#define CAN2_TIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+#define CAN2_RIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+
+/* Configuration registers initial value for CAN3*/
+#define CAN3_CTL_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | 0x00020002U )
+#define CAN3_ES_CONFIGVALUE 0x00000007U
+#define CAN3_BTR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U ) \
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U ) \
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U ) | ( uint32 ) 19U )
+#define CAN3_TEST_CONFIGVALUE 0x00000080U
+#define CAN3_ABOTR_CONFIGVALUE ( ( uint32 ) ( 0U ) )
+#define CAN3_INTMUX0_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN3_INTMUX1_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define CAN3_INTMUX2_CONFIGVALUE 0x00000000U
+#define CAN3_INTMUX3_CONFIGVALUE 0x00000000U
+#define CAN3_TIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+#define CAN3_RIOC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 18U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+
+/**
+ * @defgroup CAN CAN
+ * @brief Controller Area Network Module.
+ *
+ * The Controller Area Network is a high-integrity, serial, multi-master communication
+ * protocol for distributed real-time applications. This CAN module is implemented
+ * according to ISO 11898-1 and is suitable for industrial, automotive and general
+ * embedded communications
+ *
+ * Related Files
+ * - reg_can.h
+ * - can.h
+ * - can.c
+ * @addtogroup CAN
+ * @{
+ */
+
+/* CAN Interface Functions */
+
+void canInit( void );
+uint32 canTransmit( canBASE_t * node, uint32 messageBox, const uint8 * data );
+uint32 canGetData( canBASE_t * node, uint32 messageBox, uint8 * const data );
+uint32 canSendRemoteFrame( canBASE_t * node, uint32 messageBox );
+uint32 canFillMessageObjectData( canBASE_t * node,
+ uint32 messageBox,
+ const uint8 * data );
+uint32 canIsTxMessagePending( canBASE_t * node, uint32 messageBox );
+uint32 canIsRxMessageArrived( canBASE_t * node, uint32 messageBox );
+uint32 canIsMessageBoxValid( canBASE_t * node, uint32 messageBox );
+uint32 canGetLastError( canBASE_t * node );
+uint32 canGetErrorLevel( canBASE_t * node );
+void canEnableErrorNotification( canBASE_t * node );
+void canDisableErrorNotification( canBASE_t * node );
+void canEnableStatusChangeNotification( canBASE_t * node );
+void canDisableStatusChangeNotification( canBASE_t * node );
+void canEnableloopback( canBASE_t * node, canloopBackType_t Loopbacktype );
+void canDisableloopback( canBASE_t * node );
+void canIoSetDirection( canBASE_t * node, uint32 TxDir, uint32 RxDir );
+void canIoSetPort( canBASE_t * node, uint32 TxValue, uint32 RxValue );
+uint32 canIoTxGetBit( canBASE_t * node );
+uint32 canIoRxGetBit( canBASE_t * node );
+uint32 canGetID( canBASE_t * node, uint32 messageBox );
+void canUpdateID( canBASE_t * node, uint32 messageBox, uint32 msgBoxArbitVal );
+void can1GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type );
+void can2GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type );
+void can3GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void canErrorNotification(canBASE_t *node, uint32 notification)
+ * @brief Error notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] notification Error notification code:
+ * - canLEVEL_PASSIVE (0x20) : When RX- or TX error counter are between 32
+ * and 63
+ * - canLEVEL_WARNING (0x40) : When RX- or TX error counter are between 64
+ * and 127
+ * - canLEVEL_BUS_OFF (0x80) : When RX- or TX error counter are between 128
+ * and 255
+ * - canLEVEL_PARITY_ERR (0x100): When RX- or TX error counter are above 256
+ *
+ * @note This function has to be provide by the user.
+ */
+void canErrorNotification( canBASE_t * node, uint32 notification );
+
+/** @fn void canStatusChangeNotification(canBASE_t *node, uint32 notification)
+ * @brief Status Change notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] notification Status change notification code:
+ * - canLEVEL_TxOK (0x08) : When successful transmission
+ * - canLEVEL_RxOK (0x10) : When successful reception
+ * - canLEVEL_WakeUpPnd (0x200): When successful WakeUp to system initiated
+ * - canLEVEL_PDA (0x400): When successful low power mode entrance
+ *
+ * @note This function has to be provide by the user.
+ */
+void canStatusChangeNotification( canBASE_t * node, uint32 notification );
+
+/** @fn void canMessageNotification(canBASE_t *node, uint32 messageBox)
+ * @brief Message notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ *
+ * @note This function has to be provide by the user.
+ */
+void canMessageNotification( canBASE_t * node, uint32 messageBox );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __CAN_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/crc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/crc.h
new file mode 100644
index 000000000..229082680
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/crc.h
@@ -0,0 +1,326 @@
+/** @file CRC.h
+ * @brief CRC Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the CRC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __CRC_H__
+#define __CRC_H__
+
+#include "reg_crc.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* CRC General Definitions */
+
+/** @def CRCLEVEL_ACTIVE
+ * @brief Alias name for CRC error operation level active
+ */
+#define CRCLEVEL_ACTIVE 0x00U
+
+/** @def CRC_AUTO
+ * @brief Alias name for CRC auto mode
+ */
+#define CRC_AUTO 0x00000001U
+
+/** @def CRC_SEMI_CPU
+ * @brief Alias name for semi cpu mode setting
+ */
+#define CRC_SEMI_CPU 0x00000002U
+
+/** @def CRC_FULL_CPU
+ * @brief Alias name for CRC cpu full mode
+ */
+#define CRC_FULL_CPU 0x00000003U
+
+/** @def CRC_CH4_TO
+ * @brief Alias name for channel4 time out interrupt flag
+ */
+#define CRC_CH4_TO 0x10000000U
+
+/** @def CRC_CH4_UR
+ * @brief Alias name for channel4 underrun interrupt flag
+ */
+#define CRC_CH4_UR 0x08000000U
+
+/** @def CRC_CH4_OR
+ * @brief Alias name for channel4 overrun interrupt flag
+ */
+#define CRC_CH4_OR 0x04000000U
+
+/** @def CRC_CH4_FAIL
+ * @brief Alias name for channel4 crc fail interrupt flag
+ */
+#define CRC_CH4_FAIL 0x02000000U
+
+/** @def CRC_CH4_CC
+ * @brief Alias name for channel4 compression complete interrupt flag
+ */
+#define CRC_CH4_CC 0x01000000U
+
+/** @def CRC_CH3_TO
+ * @brief Alias name for channel3 time out interrupt flag
+ */
+#define CRC_CH3_TO 0x00100000U
+
+/** @def CRC_CH3_UR
+ * @brief Alias name for channel3 underrun interrupt flag
+ */
+#define CRC_CH3_UR 0x00080000U
+
+/** @def CRC_CH3_OR
+ * @brief Alias name for channel3 overrun interrupt flag
+ */
+#define CRC_CH3_OR 0x00040000U
+
+/** @def CRC_CH3_FAIL
+ * @brief Alias name for channel3 crc fail interrupt flag
+ */
+#define CRC_CH3_FAIL 0x00020000U
+
+/** @def CRC_CH3_CC
+ * @brief Alias name for channel3 compression complete interrupt flag
+ */
+#define CRC_CH3_CC 0x00010000U
+
+/** @def CRC_CH2_TO
+ * @brief Alias name for channel2 time out interrupt flag
+ */
+#define CRC_CH2_TO 0x00001000U
+
+/** @def CRC_CH2_UR
+ * @brief Alias name for channel2 underrun interrupt flag
+ */
+#define CRC_CH2_UR 0x00000800U
+
+/** @def CRC_CH2_OR
+ * @brief Alias name for channel2 overrun interrupt flag
+ */
+#define CRC_CH2_OR 0x00000400U
+
+/** @def CRC_CH2_FAIL
+ * @brief Alias name for channel2 crc fail interrupt flag
+ */
+#define CRC_CH2_FAIL 0x00000200U
+
+/** @def CRC_CH2_CC
+ * @brief Alias name for channel2 compression complete interrupt flag
+ */
+#define CRC_CH2_CC 0x00000100U
+
+/** @def CRC_CH1_TO
+ * @brief Alias name for channel1 time out interrupt flag
+ */
+#define CRC_CH1_TO 0x00000010U
+
+/** @def CRC_CH1_UR
+ * @brief Alias name for channel1 underrun interrupt flag
+ */
+#define CRC_CH1_UR 0x00000008U
+
+/** @def CRC_CH1_OR
+ * @brief Alias name for channel1 overrun interrupt flag
+ */
+#define CRC_CH1_OR 0x00000004U
+
+/** @def CRC_CH1_FAIL
+ * @brief Alias name for channel1 crc fail interrupt flag
+ */
+#define CRC_CH1_FAIL 0x00000002U
+
+/** @def CRC_CH1_CC
+ * @brief Alias name for channel1 compression complete interrupt flag
+ */
+#define CRC_CH1_CC 0x00000001U
+
+/** @def CRC_CH1
+ * @brief Alias name for channel1
+ */
+#define CRC_CH1 0x00000000U
+
+/** @def CRC_CH1
+ * @brief Alias name for channel2
+ */
+#define CRC_CH2 0x00000001U
+
+/** @def CRC_CH3
+ * @brief Alias name for channel3
+ */
+#define CRC_CH3 0x00000002U
+
+/** @def CRC_CH4
+ * @brief Alias name for channel4
+ */
+#define CRC_CH4 0x00000003U
+
+/** @struct crcModConfig
+ * @brief CRC mode specific parameters
+ *
+ * This type is used to pass crc mode specific parameters
+ */
+
+/** @typedef crcModConfig_t
+ * @brief CRC Data Type Definition
+ */
+typedef struct crcModConfig
+{
+ uint32 mode; /**< Mode of operation */
+ uint32 crc_channel; /**< CRC channel-0,1 */
+ uint64 * src_data_pat; /**< Pattern data */
+ uint32 data_length; /**< Pattern data length.Number of 64 bit size word*/
+} crcModConfig_t;
+
+/** @struct crcConfig
+ * @brief CRC configuration for different modes
+ *
+ * This type is used to pass crc configuration
+ */
+
+/** @typedef crcConfig_t
+ * @brief CRC Data Type Definition
+ */
+typedef struct crcConfig
+{
+ uint32 crc_channel; /**< CRC channel-0,1 */
+ uint32 mode; /**< Mode of operation */
+ uint32 pcount; /**< Pattern count*/
+ uint32 scount; /**< Sector count */
+ uint32 wdg_preload; /**< Watchdog period */
+ uint32 block_preload; /**< Block period*/
+} crcConfig_t;
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+typedef struct crc_config_reg
+{
+ uint32 CONFIG_CTRL0;
+ uint32 CONFIG_CTRL1;
+ uint32 CONFIG_CTRL2;
+ uint32 CONFIG_INTS;
+ uint32 CONFIG_PCOUNT_REG1;
+ uint32 CONFIG_SCOUNT_REG1;
+ uint32 CONFIG_WDTOPLD1;
+ uint32 CONFIG_BCTOPLD1;
+ uint32 CONFIG_PCOUNT_REG2;
+ uint32 CONFIG_SCOUNT_REG2;
+ uint32 CONFIG_WDTOPLD2;
+ uint32 CONFIG_BCTOPLD2;
+} crc_config_reg_t;
+
+#define CRC_CTRL0_CONFIGVALUE 0x00000000U
+#define CRC_CTRL1_CONFIGVALUE 0x00000000U
+#define CRC_CTRL2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( CRC_FULL_CPU ) \
+ | ( uint32 ) ( ( uint32 ) CRC_FULL_CPU << 8U ) )
+#define CRC_INTS_CONFIGVALUE \
+ ( 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U )
+#define CRC_PCOUNT_REG1_CONFIGVALUE ( 0x00000000U )
+#define CRC_SCOUNT_REG1_CONFIGVALUE ( 0x00000000U )
+#define CRC_WDTOPLD1_CONFIGVALUE ( 0x00000000U )
+#define CRC_BCTOPLD1_CONFIGVALUE ( 0x00000000U )
+#define CRC_PCOUNT_REG2_CONFIGVALUE ( 0x00000000U )
+#define CRC_SCOUNT_REG2_CONFIGVALUE ( 0x00000000U )
+#define CRC_WDTOPLD2_CONFIGVALUE ( 0x00000000U )
+#define CRC_BCTOPLD2_CONFIGVALUE ( 0x00000000U )
+
+/**
+ * @defgroup CRC CRC
+ * @brief Cyclic Redundancy Check Controller Module.
+ *
+ * The CRC controller is a module that is used to perform CRC (Cyclic Redundancy Check)
+ *to verify the integrity of memory system. A signature representing the contents of the
+ *memory is obtained when the contents of the memory are read into CRC controller. The
+ *responsibility of CRC controller is to calculate the signature for a set of data and
+ *then compare the calculated signature value against a pre-determined good signature
+ *value. CRC controller supports two channels to perform CRC calculation on multiple
+ * memories in parallel and can be used on any memory system.
+ *
+ * Related Files
+ * - reg_crc.h
+ * - crc.h
+ * - crc.c
+ * @addtogroup CRC
+ * @{
+ */
+
+/* CRC Interface Functions */
+void crcInit( void );
+void crcSendPowerDown( crcBASE_t * crc );
+void crcSignGen( crcBASE_t * crc, crcModConfig_t * param );
+void crcSetConfig( crcBASE_t * crc, crcConfig_t * param );
+uint64 crcGetPSASig( crcBASE_t * crc, uint32 channel );
+uint64 crcGetSectorSig( crcBASE_t * crc, uint32 channel );
+uint32 crcGetFailedSector( crcBASE_t * crc, uint32 channel );
+uint32 crcGetIntrPend( crcBASE_t * crc, uint32 channel );
+void crcChannelReset( crcBASE_t * crc, uint32 channel );
+void crcEnableNotification( crcBASE_t * crc, uint32 flags );
+void crcDisableNotification( crcBASE_t * crc, uint32 flags );
+void crcGetConfigValue( crc_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void crcNotification(crcBASE_t *crc, uint32 flags)
+ * @brief Interrupt callback
+ * @param[in] crc - crc module base address
+ * @param[in] flags - copy of error interrupt flags
+ *
+ * This is a callback that is provided by the application and is called upon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void crcNotification( crcBASE_t * crc, uint32 flags );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __CRC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/dcc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/dcc.h
new file mode 100644
index 000000000..0b00b2bb1
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/dcc.h
@@ -0,0 +1,308 @@
+/** @file dcc.h
+ * @brief DCC Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __DCC_H__
+#define __DCC_H__
+
+#include "reg_dcc.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* DCC General Definitions */
+
+/** @def dcc1CNT0_CLKSRC_HFLPO
+ * @brief Alias name for DCC1 Counter 0 Clock Source HFLPO
+ *
+ * This is an alias name for the Clock Source HFLPO for DCC1 Counter 0.
+ *
+ * @note This value should be used for API argument @a cnt0_Clock_Source
+ */
+#define dcc1CNT0_CLKSRC_HFLPO 0x00000005U
+
+/** @def dcc1CNT0_CLKSRC_TCK
+ * @brief Alias name for DCC1 Counter 0 Clock Source TCK
+ *
+ * This is an alias name for the Clock Source TCK for DCC1 Counter 0.
+ *
+ * @note This value should be used for API argument @a cnt0_Clock_Source
+ */
+#define dcc1CNT0_CLKSRC_TCK 0x0000000AU
+
+/** @def dcc1CNT0_CLKSRC_OSCIN
+ * @brief Alias name for DCC1 Counter 0 Clock Source OSCIN
+ *
+ * This is an alias name for the Clock Source OSCIN for DCC1 Counter 0.
+ *
+ * @note This value should be used for API argument @a cnt0_Clock_Source
+ */
+#define dcc1CNT0_CLKSRC_OSCIN 0x0000000FU
+
+/** @def dcc1CNT1_CLKSRC_PLL1
+ * @brief Alias name for DCC1 Counter 1 Clock Source PLL1
+ *
+ * This is an alias name for the Clock Source PLL for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_PLL1 0x0000A000U
+
+/** @def dcc1CNT1_CLKSRC_PLL2
+ * @brief Alias name for DCC1 Counter 1 Clock Source PLL2
+ *
+ * This is an alias name for the Clock Source OSCIN for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_PLL2 0x0000A001U
+
+/** @def dcc1CNT1_CLKSRC_LFLPO
+ * @brief Alias name for DCC1 Counter 1 Clock Source LFLPO
+ *
+ * This is an alias name for the Clock Source LFLPO for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_LFLPO 0x0000A002U
+
+/** @def dcc1CNT1_CLKSRC_HFLPO
+ * @brief Alias name for DCC1 Counter 1 Clock Source HFLPO
+ *
+ * This is an alias name for the Clock Source HFLPO for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_HFLPO 0x0000A003U
+
+/** @def dcc1CNT1_CLKSRC_EXTCLKIN1
+ * @brief Alias name for DCC1 Counter 1 Clock Source EXTCLKIN1
+ *
+ * This is an alias name for the Clock Source EXTCLKIN1 for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_EXTCLKIN1 0x0000A005U
+
+/** @def dcc1CNT1_CLKSRC_EXTCLKIN2
+ * @brief Alias name for DCC1 Counter 1 Clock Source EXTCLKIN2
+ *
+ * This is an alias name for the Clock Source EXTCLKIN2 for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_EXTCLKIN2 0x0000A006U
+
+/** @def dcc1CNT1_CLKSRC_VCLK
+ * @brief Alias name for DCC1 Counter 1 Clock Source VCLK
+ *
+ * This is an alias name for the Clock Source VCLK for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_VCLK 0x0000A008U
+
+/** @def dcc1CNT1_CLKSRC_N2HET1_31
+ * @brief Alias name for DCC1 Counter 1 Clock Source N2HET1_31
+ *
+ * This is an alias name for the Clock Source N2HET1_31 for DCC1 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc1CNT1_CLKSRC_N2HET1_31 0x0000500FU
+
+/** @def dcc2CNT0_CLKSRC_TCK
+ * @brief Alias name for DCC2 Counter 0 Clock Source TCK
+ *
+ * This is an alias name for the Clock Source TCK for DCC2 Counter 0.
+ *
+ * @note This value should be used for API argument @a cnt0_Clock_Source
+ */
+#define dcc2CNT0_CLKSRC_TCK 0x0000000AU
+
+/** @def dcc1CNT0_CLKSRC_OSCIN
+ * @brief Alias name for DCC1 Counter 0 Clock Source OSCIN
+ *
+ * This is an alias name for the Clock Source OSCIN for DCC2 Counter 0.
+ *
+ * @note This value should be used for API argument @a cnt0_Clock_Source
+ */
+#define dcc2CNT0_CLKSRC_OSCIN 0x0000000FU
+
+/** @def dcc2CNT1_CLKSRC_VCLK
+ * @brief Alias name for DCC2 Counter 1 Clock Source VCLK
+ *
+ * This is an alias name for the Clock Source VCLK for DCC2 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc2CNT1_CLKSRC_VCLK 0x0000A008U
+
+/** @def dcc2CNT1_CLKSRC_N2HET1_0
+ * @brief Alias name for DCC2 Counter 1 Clock Source N2HET2_0
+ *
+ * This is an alias name for the Clock Source N2HET2_0 for DCC2 Counter 1.
+ *
+ * @note This value should be used for API argument @a cnt1_Clock_Source
+ */
+#define dcc2CNT1_CLKSRC_N2HET1_0 0x0000500FU
+
+/** @def dccNOTIFICATION_DONE
+ * @brief Alias name for DCC Done notification
+ *
+ * This is an alias name for the DCC Done notification.
+ *
+ * @note This value should be used for API argument @a notification
+ */
+#define dccNOTIFICATION_DONE 0x0000A000U
+
+/** @def dccNOTIFICATION_ERROR
+ * @brief Alias name for DCC Error notification
+ *
+ * This is an alias name for the DCC Error notification.
+ *
+ * @note This value should be used for API argument @a notification
+ */
+#define dccNOTIFICATION_ERROR 0x000000A0U
+
+/** @enum dcc1clocksource
+ * @brief Alias names for dcc clock sources
+ *
+ * This enumeration is used to provide alias names for the clock sources:
+ */
+enum dcc1clocksource
+{
+ DCC1_CNT0_HF_LPO = 0x5U, /**< Alias for DCC1 CNT 0 CLOCK SOURCE 0*/
+ DCC1_CNT0_TCK = 0xAU, /**< Alias for DCC1 CNT 0 CLOCK SOURCE 1*/
+ DCC1_CNT0_OSCIN = 0xFU, /**< Alias for DCC1 CNT 0 CLOCK SOURCE 2*/
+
+ DCC1_CNT1_PLL1 = 0x0U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 0*/
+ DCC1_CNT1_PLL2 = 0x1U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 1*/
+ DCC1_CNT1_LF_LPO = 0x2U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 2*/
+ DCC1_CNT1_HF_LPO = 0x3U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 3*/
+ DCC1_CNT1_EXTCLKIN1 = 0x5U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 4*/
+ DCC1_CNT1_EXTCLKIN2 = 0x6U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 6*/
+ DCC1_CNT1_VCLK = 0x8U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 8*/
+ DCC1_CNT1_N2HET1_31 = 0xAU /**< Alias for DCC1 CNT 1 CLOCK SOURCE 9*/
+};
+
+/** @enum dcc2clocksource
+ * @brief Alias names for dcc clock sources
+ *
+ * This enumeration is used to provide alias names for the clock sources:
+ */
+enum dcc2clocksource
+{
+ DCC2_CNT0_OSCIN = 0xFU, /**< Alias for DCC1 CNT 0 CLOCK SOURCE 0*/
+ DCC2_CNT0_TCK = 0xAU, /**< Alias for DCC1 CNT 0 CLOCK SOURCE 2*/
+
+ DCC2_CNT1_VCLK = 0x8U, /**< Alias for DCC1 CNT 1 CLOCK SOURCE 8*/
+ DCC2_CNT1_N2HET2_0 = 0xAU /**< Alias for DCC1 CNT 1 CLOCK SOURCE 9*/
+};
+
+/* Configuration registers */
+typedef struct dcc_config_reg
+{
+ uint32 CONFIG_GCTRL;
+ uint32 CONFIG_CNT0SEED;
+ uint32 CONFIG_VALID0SEED;
+ uint32 CONFIG_CNT1SEED;
+ uint32 CONFIG_CNT1CLKSRC;
+ uint32 CONFIG_CNT0CLKSRC;
+} dcc_config_reg_t;
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**
+ * @defgroup DCC DCC
+ * @brief Dual-Clock Comparator Module
+ *
+ * The primary purpose of a DCC module is to measure the frequency of a clock signal
+ * using a second known clock signal as a reference. This capability can be used to ensure
+ * the correct frequency range for several different device clock sources, thereby
+ * enhancing the system safety metrics.
+ *
+ * Related Files
+ * - reg_dcc.h
+ * - dcc.h
+ * - dcc.c
+ * @addtogroup DCC
+ * @{
+ */
+
+/* DCC Interface Functions */
+void dccInit( void );
+void dccSetCounter0Seed( dccBASE_t * dcc, uint32 cnt0seed );
+void dccSetTolerance( dccBASE_t * dcc, uint32 valid0seed );
+void dccSetCounter1Seed( dccBASE_t * dcc, uint32 cnt1seed );
+void dccSetSeed( dccBASE_t * dcc, uint32 cnt0seed, uint32 valid0seed, uint32 cnt1seed );
+void dccSelectClockSource( dccBASE_t * dcc,
+ uint32 cnt0_Clock_Source,
+ uint32 cnt1_Clock_Source );
+void dccEnable( dccBASE_t * dcc );
+void dccDisable( dccBASE_t * dcc );
+uint32 dccGetErrStatus( dccBASE_t * dcc );
+
+void dccEnableNotification( dccBASE_t * dcc, uint32 notification );
+void dccDisableNotification( dccBASE_t * dcc, uint32 notification );
+void dcc1GetConfigValue( dcc_config_reg_t * config_reg, config_value_type_t type );
+void dcc2GetConfigValue( dcc_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void dccNotification(dccBASE_t *dcc,uint32 flags)
+ * @brief Interrupt callback
+ * @param[in] dcc - dcc module base address
+ * @param[in] flags - status flags
+ *
+ * This is a callback function provided by the application. It is call when
+ * a dcc is complete or detected error.
+ */
+void dccNotification( dccBASE_t * dcc, uint32 flags );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __DCC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ecap.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ecap.h
new file mode 100644
index 000000000..c8dbcc50d
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ecap.h
@@ -0,0 +1,348 @@
+/** @file ecap.h
+ * @brief ECAP Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ECAP driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __ECAP_H__
+#define __ECAP_H__
+
+#include "reg_ecap.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @brief Enumeration to define the capture (CAP) interrupts
+ */
+typedef enum
+{
+ ecapInt_CTR_CMP = 0x0080U, /*< Denotes CTR = CMP interrupt */
+ ecapInt_CTR_PRD = 0x0040U, /*< Denotes CTR = PRD interrupt */
+ ecapInt_CTR_OVF = 0x0020U, /*< Denotes CTROVF interrupt */
+ ecapInt_CEVT4 = 0x0010U, /*< Denotes CEVT4 interrupt */
+ ecapInt_CEVT3 = 0x0008U, /*< Denotes CEVT3 interrupt */
+ ecapInt_CEVT2 = 0x0004U, /*< Denotes CEVT2 interrupt */
+ ecapInt_CEVT1 = 0x0002U, /*< Denotes CEVT1 interrupt */
+ ecapInt_Global = 0x0001U, /*< Denotes Capture global interrupt */
+ ecapInt_All = 0x00FFU /*< Denotes All interrupts */
+} ecapInterrupt_t;
+
+/** @brief Enumeration to define the capture (CAP) prescaler values
+ */
+typedef enum
+{
+ ecapPrescale_By_1 = ( ( uint16 ) 0U << 9U ), /*< Divide by 1 */
+ ecapPrescale_By_2 = ( ( uint16 ) 1U << 9U ), /*< Divide by 2 */
+ ecapPrescale_By_4 = ( ( uint16 ) 2U << 9U ), /*< Divide by 4 */
+ ecapPrescale_By_6 = ( ( uint16 ) 3U << 9U ), /*< Divide by 6 */
+ ecapPrescale_By_8 = ( ( uint16 ) 4U << 9U ), /*< Divide by 8 */
+ ecapPrescale_By_10 = ( ( uint16 ) 5U << 9U ), /*< Divide by 10 */
+ ecapPrescale_By_12 = ( ( uint16 ) 6U << 9U ), /*< Divide by 12 */
+ ecapPrescale_By_14 = ( ( uint16 ) 7U << 9U ), /*< Divide by 14 */
+ ecapPrescale_By_16 = ( ( uint16 ) 8U << 9U ), /*< Divide by 16 */
+ ecapPrescale_By_18 = ( ( uint16 ) 9U << 9U ), /*< Divide by 18 */
+ ecapPrescale_By_20 = ( ( uint16 ) 10U << 9U ), /*< Divide by 20 */
+ ecapPrescale_By_22 = ( ( uint16 ) 11U << 9U ), /*< Divide by 22 */
+ ecapPrescale_By_24 = ( ( uint16 ) 12U << 9U ), /*< Divide by 24 */
+ ecapPrescale_By_26 = ( ( uint16 ) 13U << 9U ), /*< Divide by 26 */
+ ecapPrescale_By_28 = ( ( uint16 ) 14U << 9U ), /*< Divide by 28 */
+ ecapPrescale_By_30 = ( ( uint16 ) 15U << 9U ), /*< Divide by 30 */
+ ecapPrescale_By_32 = ( ( uint16 ) 16U << 9U ), /*< Divide by 32 */
+ ecapPrescale_By_34 = ( ( uint16 ) 17U << 9U ), /*< Divide by 34 */
+ ecapPrescale_By_36 = ( ( uint16 ) 18U << 9U ), /*< Divide by 36 */
+ ecapPrescale_By_38 = ( ( uint16 ) 19U << 9U ), /*< Divide by 38 */
+ ecapPrescale_By_40 = ( ( uint16 ) 20U << 9U ), /*< Divide by 40 */
+ ecapPrescale_By_42 = ( ( uint16 ) 21U << 9U ), /*< Divide by 42 */
+ ecapPrescale_By_44 = ( ( uint16 ) 22U << 9U ), /*< Divide by 44 */
+ ecapPrescale_By_46 = ( ( uint16 ) 23U << 9U ), /*< Divide by 46 */
+ ecapPrescale_By_48 = ( ( uint16 ) 24U << 9U ), /*< Divide by 48 */
+ ecapPrescale_By_50 = ( ( uint16 ) 25U << 9U ), /*< Divide by 50 */
+ ecapPrescale_By_52 = ( ( uint16 ) 26U << 9U ), /*< Divide by 52 */
+ ecapPrescale_By_54 = ( ( uint16 ) 27U << 9U ), /*< Divide by 54 */
+ ecapPrescale_By_56 = ( ( uint16 ) 28U << 9U ), /*< Divide by 56 */
+ ecapPrescale_By_58 = ( ( uint16 ) 29U << 9U ), /*< Divide by 58 */
+ ecapPrescale_By_60 = ( ( uint16 ) 30U << 9U ), /*< Divide by 60 */
+ ecapPrescale_By_62 = ( ( uint16 ) 31U << 9U ) /*< Divide by 62 */
+} ecapPrescale_t;
+
+/** @brief Enumeration to define the Sync Out options
+ */
+typedef enum
+{
+ SyncOut_SyncIn = ( ( uint16 ) 0U << 6U ), /*< Sync In used for Sync Out */
+ SyncOut_CTRPRD = ( ( uint16 ) 1U << 6U ), /*< CTR = PRD used for Sync Out */
+ SyncOut_None = ( ( uint16 ) 2U << 6U ) /*< Disables Sync Out */
+} ecapSyncOut_t;
+
+/** @brief Enumeration to define the Polarity
+ */
+typedef enum
+{
+ RISING_EDGE = 0U,
+ FALLING_EDGE = 1U
+} ecapEdgePolarity_t;
+
+typedef enum
+{
+ ACTIVE_HIGH = 0U,
+ ACTIVE_LOW = 1U
+} ecapAPWMPolarity_t;
+
+/** @brief Enumeration to define the Mode of operation
+ */
+typedef enum
+{
+ CONTINUOUS = 0U,
+ ONE_SHOT = 1U
+} ecapMode_t;
+
+/** @brief Enumeration to define the capture events
+ */
+typedef enum
+{
+ CAPTURE_EVENT1 = 0U,
+ CAPTURE_EVENT2 = 1U,
+ CAPTURE_EVENT3 = 2U,
+ CAPTURE_EVENT4 = 3U
+} ecapEvent_t;
+
+typedef enum
+{
+ RESET_ENABLE = 1U,
+ RESET_DISABLE = 0U
+} ecapReset_t;
+
+typedef struct ecap_config_reg
+{
+ uint32 CONFIG_CTRPHS;
+ uint16 CONFIG_ECCTL1;
+ uint16 CONFIG_ECCTL2;
+ uint16 CONFIG_ECEINT;
+} ecap_config_reg_t;
+
+#define ECAP1_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP1_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP1_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP1_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+#define ECAP2_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP2_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP2_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP2_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+#define ECAP3_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP3_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP3_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP3_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+#define ECAP4_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP4_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP4_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP4_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+#define ECAP5_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP5_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP5_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP5_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+#define ECAP6_CTRPHS_CONFIGVALUE 0x00000000U
+#define ECAP6_ECCTL1_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) RISING_EDGE << 0U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 1U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 2U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 3U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 4U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 5U ) \
+ | ( uint16 ) ( ( uint16 ) RISING_EDGE << 6U ) \
+ | ( uint16 ) ( ( uint16 ) RESET_DISABLE << 7U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 8U ) | ( uint16 ) ( ( uint16 ) 0U << 9U ) )
+#define ECAP6_ECCTL2_CONFIGVALUE \
+ ( ( uint16 ) ( ( uint16 ) ONE_SHOT << 0U ) \
+ | ( uint16 ) ( ( uint16 ) CAPTURE_EVENT1 << 1U ) \
+ | ( uint16 ) ( ( uint16 ) 0U << 9U ) | ( uint16 ) 0x00000010U )
+#define ECAP6_ECEINT_CONFIGVALUE \
+ ( 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U | 0x0000U )
+
+/**
+ * @defgroup eCAP eCAP
+ * @brief Enhanced Capture Module.
+ *
+ * The enhanced Capture (eCAP) module is essential in systems where accurate timing of
+ *external events is important. This microcontroller implements 6 instances of the eCAP
+ *module.
+ *
+ * Related Files
+ * - reg_ecap.h
+ * - ecap.h
+ * - ecap.c
+ * @addtogroup eCAP
+ * @{
+ */
+void ecapInit( void );
+void ecapSetCounter( ecapBASE_t * ecap, uint32 value );
+void ecapEnableCounterLoadOnSync( ecapBASE_t * ecap, uint32 phase );
+void ecapDisableCounterLoadOnSync( ecapBASE_t * ecap );
+void ecapSetEventPrescaler( ecapBASE_t * ecap, ecapPrescale_t prescale );
+void ecapSetCaptureEvent1( ecapBASE_t * ecap,
+ ecapEdgePolarity_t edgePolarity,
+ ecapReset_t resetenable );
+void ecapSetCaptureEvent2( ecapBASE_t * ecap,
+ ecapEdgePolarity_t edgePolarity,
+ ecapReset_t resetenable );
+void ecapSetCaptureEvent3( ecapBASE_t * ecap,
+ ecapEdgePolarity_t edgePolarity,
+ ecapReset_t resetenable );
+void ecapSetCaptureEvent4( ecapBASE_t * ecap,
+ ecapEdgePolarity_t edgePolarity,
+ ecapReset_t resetenable );
+void ecapSetCaptureMode( ecapBASE_t * ecap, ecapMode_t capMode, ecapEvent_t event );
+void ecapEnableCapture( ecapBASE_t * ecap );
+void ecapDisableCapture( ecapBASE_t * ecap );
+void ecapStartCounter( ecapBASE_t * ecap );
+void ecapStopCounter( ecapBASE_t * ecap );
+void ecapSetSyncOut( ecapBASE_t * ecap, ecapSyncOut_t syncOutSrc );
+void ecapEnableAPWMmode( ecapBASE_t * ecap,
+ ecapAPWMPolarity_t pwmPolarity,
+ uint32 period,
+ uint32 duty );
+void ecapDisableAPWMMode( ecapBASE_t * ecap );
+void ecapEnableInterrupt( ecapBASE_t * ecap, ecapInterrupt_t interrupts );
+void ecapDisableInterrupt( ecapBASE_t * ecap, ecapInterrupt_t interrupts );
+uint16 ecapGetEventStatus( ecapBASE_t * ecap, ecapInterrupt_t events );
+void ecapClearFlag( ecapBASE_t * ecap, ecapInterrupt_t events );
+uint32 ecapGetCAP1( ecapBASE_t * ecap );
+uint32 ecapGetCAP2( ecapBASE_t * ecap );
+uint32 ecapGetCAP3( ecapBASE_t * ecap );
+uint32 ecapGetCAP4( ecapBASE_t * ecap );
+void ecap1GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+void ecap2GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+void ecap3GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+void ecap4GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+void ecap5GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+void ecap6GetConfigValue( ecap_config_reg_t * config_reg, config_value_type_t type );
+
+/** @brief Interrupt callback
+ * @param[in] ecap Handle to CAP object
+ * @param[in] flags Copy of interrupt flags
+ */
+void ecapNotification( ecapBASE_t * ecap, uint16 flags );
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+#endif /*end of _CAP_H_ definition */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emac.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emac.h
new file mode 100644
index 000000000..99f74dc8c
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emac.h
@@ -0,0 +1,440 @@
+/**
+ * \file emac.h
+ *
+ * \brief EMAC APIs and macros.
+ *
+ * This file contains the driver API prototypes and macro definitions.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __EMAC_H__
+#define __EMAC_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "sys_common.h"
+#include "hw_reg_access.h"
+#include "hw_emac.h"
+#include "hw_emac_ctrl.h"
+#include "mdio.h"
+#include "phy_dp83640.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/*****************************************************************************/
+
+/*
+** Macros which can be used as speed parameter to the API EMACRMIISpeedSet
+*/
+#define EMAC_RMIISPEED_10MBPS ( 0x00000000U )
+#define EMAC_RMIISPEED_100MBPS ( 0x00008000U )
+
+/* Macros for enabling taken as inputs from HALCoGen GUI. */
+#define EMAC_TX_ENABLE ( 1U )
+#define EMAC_RX_ENABLE ( 1U )
+#define EMAC_MII_ENABLE ( 1U )
+#define EMAC_FULL_DUPLEX_ENABLE ( 1U )
+#define EMAC_LOOPBACK_ENABLE ( 0U )
+#define EMAC_BROADCAST_ENABLE ( 1U )
+#define EMAC_UNICAST_ENABLE ( 1U )
+#define EMAC_CHANNELNUMBER ( 0U )
+#define EMAC_PHYADDRESS ( 0U )
+
+/*
+ * Macros to indicate EMAC Channel Numbers
+ */
+#define EMAC_CHANNEL_0 ( 0x00000000U )
+#define EMAC_CHANNEL_1 ( 0x00000001U )
+#define EMAC_CHANNEL_2 ( 0x00000002U )
+#define EMAC_CHANNEL_3 ( 0x00000003U )
+#define EMAC_CHANNEL_4 ( 0x00000004U )
+#define EMAC_CHANNEL_5 ( 0x00000005U )
+#define EMAC_CHANNEL_6 ( 0x00000006U )
+#define EMAC_CHANNEL_7 ( 0x00000007U )
+
+/* Macros which can be used as duplexMode parameter to the API
+** EMACDuplexSet
+*/
+#define EMAC_DUPLEX_FULL ( 0x00000001U )
+#define EMAC_DUPLEX_HALF ( 0x00000000U )
+
+/*
+** Macros which can be used as matchFilt parameters to the API
+** EMACMACAddrSet
+*/
+/* Address not used to match/filter incoming packets */
+#define EMAC_MACADDR_NO_MATCH_NO_FILTER ( 0x00000000U )
+
+/* Address will be used to filter incoming packets */
+#define EMAC_MACADDR_FILTER ( 0x00100000U )
+
+/* Address will be used to match incoming packets */
+#define EMAC_MACADDR_MATCH ( 0x00180000U )
+
+/*
+** Macros which can be passed as eoiFlag to EMACRxIntAckToClear API
+*/
+#define EMAC_INT_CORE0_RX ( 0x1U )
+#define EMAC_INT_CORE1_RX ( 0x5U )
+#define EMAC_INT_CORE2_RX ( 0x9U )
+
+/*
+** Macros which can be passed as eoiFlag to EMACTxIntAckToClear API
+*/
+#define EMAC_INT_CORE0_TX ( 0x2U )
+#define EMAC_INT_CORE1_TX ( 0x6U )
+#define EMAC_INT_CORE2_TX ( 0xAU )
+/* Base Addresses */
+#define EMAC_CTRL_RAM_0_BASE 0xFC520000U
+#define EMAC_0_BASE 0xFCF78000U
+#define EMAC_CTRL_0_BASE 0xFCF78800U
+#define MDIO_0_BASE 0xFCF78900U
+
+/*MAC address length*/
+#define EMAC_HWADDR_LEN 6U
+#define MAX_EMAC_INSTANCE 1U
+#define SIZE_EMAC_CTRL_RAM 0x2000U
+#define MAX_TRANSFER_UNIT 1514U
+#define MAX_RX_PBUF_ALLOC ( 10U )
+#define MIN_PKT_LEN 60U
+#define MIN_PACKET_SIZE ( 46U )
+
+#define EMAC_BUF_DESC_OWNER 0x20000000U
+#define EMAC_BUF_DESC_SOP 0x80000000U
+#define EMAC_BUF_DESC_EOP 0x40000000U
+#define EMAC_BUF_DESC_EOQ 0x10000000U
+
+#define EMAC_NETSTATREGS( n ) ( ( uint32 ) 0x200U + ( uint32 ) ( ( n ) * 4U ) )
+
+/* Error Signalling Macros */
+#define EMAC_ERR_CONNECT 0x2U /* Not connected. */
+#define EMAC_ERR_OK 0x1U /* No error, everything OK. */
+
+/* Macros for Configuration Value Registers */
+#define EMAC_TXCONTROL_CONFIGVALUE 0x00000001U
+#define EMAC_RXCONTROL_CONFIGVALUE 0x00000001U
+#define EMAC_TXINTMASKSET_CONFIGVALUE 0x00000001U
+#define EMAC_TXINTMASKCLEAR_CONFIGVALUE 0x00000001U
+#define EMAC_RXINTMASKSET_CONFIGVALUE 0x00000001U
+#define EMAC_RXINTMASKCLEAR_CONFIGVALUE 0x00000001U
+#define EMAC_MACSRCADDRHI_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0xFFU << 24U ) | ( uint32 ) ( ( uint32 ) 0xFFU << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0xFFU << 8U ) | ( uint32 ) ( ( uint32 ) 0xFFU ) )
+#define EMAC_MACSRCADDRLO_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0xFFU << 8U ) | ( uint32 ) ( ( uint32 ) 0xFFU ) )
+#define EMAC_MDIOCONTROL_CONFIGVALUE 0x4114001FU
+#define EMAC_C0RXEN_CONFIGVALUE 0x00000001U
+#define EMAC_C0TXEN_CONFIGVALUE 0x00000001U
+
+/* Structure to store pending status from the Tx Interrupt Status Registers. */
+typedef struct emac_tx_int_status
+{
+ volatile uint32 intstatmasked; /* Pending interrupt status read from the Transmit
+ Interrupt Status (Masked) Register (TXINTSTATMASKED)
+ */
+ volatile uint32 intstatraw; /* Pending interrupt status read from the Transmit
+ Interrupt Status (Unmasked) Register (TXINTSTATRAW) */
+} emac_tx_int_status_t;
+
+/* Structure to store pending status from the Rx Interrupt Status Registers. */
+typedef struct emac_rx_int_status
+{
+ volatile uint32 intstatmasked_pend; /* Reads RXnPEND value from the Receive Interrupt
+ Status (Unmasked) Register (RXINTSTATRAW) */
+ volatile uint32 intstatmasked_threshpend; /* Reads RXnTRHESHPEND value from the
+ Receive Interrupt Status (Unmasked)
+ Register (RXINTSTATRAW) */
+
+ volatile uint32 intstatraw_pend; /* Reads RXnPEND value from the Receive Interrupt
+ Status (Unmasked) Register (RXINTSTATRAW) */
+ volatile uint32 intstatraw_threshpend; /* Reads RXnTRHESHPEND value from the Receive
+ Interrupt Status (Unmasked) Register
+ (RXINTSTATRAW) */
+} emac_rx_int_status_t;
+
+/* EMAC TX Buffer descriptor data structure - Refer TRM for details about the buffer
+ * descriptor structure.*/
+typedef struct emac_tx_bd
+{
+ volatile struct emac_tx_bd * next;
+ volatile uint32 bufptr; /* Pointer to the actual Buffer storing the data to be
+ transmitted. */
+ volatile uint32 bufoff_len; /*Buffer Offset and Buffer Length (16 bits each) */
+ volatile uint32 flags_pktlen; /*Status flags and Packet Length. (16 bits each)*/
+} emac_tx_bd_t;
+
+/* EMAC RX Buffer descriptor data structure - Refer TRM for details about the buffer
+ * descriptor structure. */
+typedef struct emac_rx_bd
+{
+ volatile struct emac_rx_bd * next; /*Used as a pointer for next element in the linked
+ list of descriptors.*/
+ volatile uint32 bufptr; /*Pointer to the actual Buffer which will store the received
+ data.*/
+ volatile uint32 bufoff_len; /*Buffer Offset and Buffer Length (16 bits each)*/
+ volatile uint32 flags_pktlen; /*Status flags and Packet Length. (16 bits each)*/
+} emac_rx_bd_t;
+
+/**
+ * Helper struct to hold the data used to operate on a particular
+ * receive channel
+ */
+typedef struct rxch_struct
+{
+ volatile emac_rx_bd_t * free_head; /*Used to point to the free buffer descriptor which
+ can receive new data.*/
+ volatile emac_rx_bd_t * active_head; /*Used to point to the active descriptor in the
+ chain which is receiving.*/
+ volatile emac_rx_bd_t * active_tail; /*Used to point to the last descriptor in the
+ chain.*/
+} rxch_t;
+
+/**
+ * Helper struct to hold the data used to operate on a particular
+ * transmit channel
+ */
+typedef struct txch_struct
+{
+ volatile emac_tx_bd_t * free_head; /*Used to point to the free buffer descriptor which
+ can transmit new data.*/
+ volatile emac_tx_bd_t * active_tail; /*Used to point to the last descriptor in the
+ chain.*/
+ volatile emac_tx_bd_t * next_bd_to_process; /*Used to point to the next descriptor in
+ the chain to be processed.*/
+} txch_t;
+
+/**
+ * Helper struct to hold private data used to operate the ethernet interface.
+ */
+typedef struct hdkif_struct
+{
+ /* MAC Address of the Module. */
+ uint8_t mac_addr[ 6 ];
+
+ /* emac base address */
+ uint32 emac_base;
+
+ /* emac controller base address */
+ volatile uint32 emac_ctrl_base;
+ volatile uint32 emac_ctrl_ram;
+
+ /* mdio base address */
+ volatile uint32 mdio_base;
+
+ /* phy parameters for this instance - for future use */
+ uint32 phy_addr;
+ boolean ( *phy_autoneg )( uint32 param1, uint32 param2, uint16 param3 );
+ boolean ( *phy_partnerability )( uint32 param4, uint32 param5, uint16 * param6 );
+
+ /* The tx/rx channels for the interface */
+ txch_t txchptr;
+ rxch_t rxchptr;
+} hdkif_t;
+
+/*Ethernet Frame Structure */
+typedef struct ethernet_frame
+{
+ uint8 dest_addr[ 6 ]; /* Destination MAC Address */
+ uint8 src_addr[ 6 ]; /*Source MAC Address. */
+ uint16 frame_length; /* Data Frame Length */
+ uint8 data[ 1500 ]; /* Data */
+} ethernet_frame_t;
+
+/* Struct used to take packet data input from the user for transmit APIs. */
+typedef struct pbuf_struct
+{
+ /** next pbuf in singly linked pbuf chain */
+ struct pbuf_struct * next;
+
+ /**
+ * Pointer to the actual ethernet packet/packet fragment to be transmitted.
+ * The packet needs to be in the following format:
+ * |Destination MAC Address (6 bytes)| Source MAC Address (6 bytes)| Length/Type (2
+ *bytes)| Data (46- 1500 bytes) The data can be split up over multiple pbufs which are
+ *linked as a linked list.
+ **/
+ uint8 * payload;
+
+ /**
+ * total length of this buffer and all next buffers in chain
+ * belonging to the same packet.
+ *
+ * For non-queue packet chains this is the invariant:
+ * p->tot_len == p->len + (p->next? p->next->tot_len: 0)
+ */
+ uint16 tot_len;
+
+ /** length of this buffer */
+ uint16 len;
+} pbuf_t;
+
+/* Structure to hold the values of the EMAC Configuration Registers. */
+typedef struct emac_config_reg_struct
+{
+ /* EMAC Module Register Values */
+ uint32 TXCONTROL; /* Transmit Control Register. */
+ uint32 RXCONTROL; /* Receive Control Register */
+ uint32 TXINTMASKSET; /* Transmit Interrupt Mask Set Register */
+ uint32 TXINTMASKCLEAR; /* Transmit Interrupt Clear Register */
+ uint32 RXINTMASKSET; /* Receive Interrupt Mask Set Register */
+ uint32 RXINTMASKCLEAR; /*Receive Interrupt Mask Clear Register*/
+ uint32 MACSRCADDRHI; /*MAC Source Address High Bytes Register*/
+ uint32 MACSRCADDRLO; /*MAC Source Address Low Bytes Register*/
+
+ /*MDIO Module Registers */
+ uint32 MDIOCONTROL; /*MDIO Control Register. */
+
+ /* EMAC Control Module Registers */
+ uint32 C0RXEN; /*EMAC Control Module Receive Interrupt Enable Register*/
+ uint32 C0TXEN; /*EMAC Control Module Transmit Interrupt Enable Register*/
+} emac_config_reg_t;
+/*****************************************************************************/
+
+/**
+ * @defgroup EMACMDIO EMAC/MDIO
+ * @brief Ethernet Media Access Controller/Management Data Input/Output.
+ *
+ * The EMAC controls the flow of packet data from the system to the PHY. The MDIO module
+ *controls PHY configuration and status monitoring.
+ *
+ * Both the EMAC and the MDIO modules interface to the system core through a custom
+ *interface that allows efficient data transmission and reception. This custom interface
+ *is referred to as the EMAC control module and is considered integral to the EMAC/MDIO
+ *peripheral
+ *
+ * Related Files
+ * - emac.h
+ * - emac.c
+ * - hw_emac.h
+ * - hw_emac_ctrl.h
+ * - hw_mdio.h
+ * - hw_reg_access.h
+ * - mdio.h
+ * - mdio.c
+ * @addtogroup EMACMDIO
+ * @{
+ */
+
+/*
+** Prototypes for the APIs
+*/
+extern uint32 EMACLinkSetup( hdkif_t * hdkif );
+extern void EMACInstConfig( hdkif_t * hdkif );
+extern void EMACTxIntPulseEnable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel );
+extern void EMACTxIntPulseDisable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel );
+extern void EMACRxIntPulseEnable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel );
+extern void EMACRxIntPulseDisable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel );
+extern void EMACRMIISpeedSet( uint32 emacBase, uint32 speed );
+extern void EMACDuplexSet( uint32 emacBase, uint32 duplexMode );
+extern void EMACTxEnable( uint32 emacBase );
+extern void EMACTxDisable( uint32 emacBase );
+extern void EMACRxEnable( uint32 emacBase );
+extern void EMACRxDisable( uint32 emacBase );
+extern void EMACTxHdrDescPtrWrite( uint32 emacBase, uint32 descHdr, uint32 channel );
+extern void EMACRxHdrDescPtrWrite( uint32 emacBase, uint32 descHdr, uint32 channel );
+extern void EMACInit( uint32 emacCtrlBase, uint32 emacBase );
+extern void EMACMACSrcAddrSet( uint32 emacBase, uint8 macAddr[ 6 ] );
+extern void EMACMACAddrSet( uint32 emacBase,
+ uint32 channel,
+ uint8 macAddr[ 6 ],
+ uint32 matchFilt );
+extern void EMACMIIEnable( uint32 emacBase );
+extern void EMACMIIDisable( uint32 emacBase );
+extern void EMACRxUnicastSet( uint32 emacBase, uint32 channel );
+extern void EMACRxUnicastClear( uint32 emacBase, uint32 channel );
+extern void EMACCoreIntAck( uint32 emacBase, uint32 eoiFlag );
+extern void EMACTxCPWrite( uint32 emacBase, uint32 channel, uint32 comPtr );
+extern void EMACRxCPWrite( uint32 emacBase, uint32 channel, uint32 comPtr );
+extern void EMACRxBroadCastEnable( uint32 emacBase, uint32 channel );
+extern void EMACRxBroadCastDisable( uint32 emacBase, uint32 channel );
+extern void EMACRxMultiCastEnable( uint32 emacBase, uint32 channel );
+extern void EMACRxMultiCastDisable( uint32 emacBase, uint32 channel );
+extern void EMACNumFreeBufSet( uint32 emacBase, uint32 channel, uint32 nBuf );
+extern uint32 EMACIntVectorGet( uint32 emacBase );
+uint32 EMACHWInit( uint8_t macaddr[ 6U ] );
+void EMACTxTeardown( uint32 emacBase, uint32 channel );
+void EMACRxTeardown( uint32 emacBase, uint32 channel );
+void EMACFrameSelect( uint32 emacBase, uint64 hashTable );
+void EMACTxPrioritySelect( uint32 emacBase, uint32 txPType );
+void EMACSoftReset( uint32 emacCtrlBase, uint32 emacBase );
+void EMACEnableIdleState( uint32 emacBase );
+void EMACDisableIdleState( uint32 emacBase );
+void EMACEnableLoopback( uint32 emacBase );
+void EMACDisableLoopback( uint32 emacBase );
+void EMACTxFlowControlEnable( uint32 emacBase );
+void EMACTxFlowControlDisable( uint32 emacBase );
+void EMACRxFlowControlEnable( uint32 emacBase );
+void EMACRxFlowControlDisable( uint32 emacBase );
+void EMACRxSetFlowThreshold( uint32 emacBase, uint32 channel, uint32 threshold );
+uint32 EMACReadNetStatRegisters( uint32 emacBase, uint32 statRegNo );
+void EMACDMAInit( hdkif_t * hdkif );
+boolean EMACTransmit( hdkif_t * hdkif, pbuf_t * pbuf );
+void EMACTxIntHandler( hdkif_t * hdkif );
+void EMACReceive( hdkif_t * hdkif );
+/* Notification Function to which received packets are passed after processing */
+void emacTxNotification( hdkif_t * hdkif );
+void emacRxNotification( hdkif_t * hdkif );
+void EMACTxIntStat( uint32 emacBase, uint32 channel, emac_tx_int_status_t * txintstat );
+void EMACRxIntStat( uint32 emacBase, uint32 channel, emac_rx_int_status_t * rxintstat );
+void EMACGetConfigValue( emac_config_reg_t * config_reg, config_value_type_t type );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+/**@}*/
+#endif /* __EMAC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emif.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emif.h
new file mode 100644
index 000000000..8e65dcacc
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/emif.h
@@ -0,0 +1,216 @@
+/** @file emif.h
+ * @brief emif Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _EMIF_H_
+#define _EMIF_H_
+
+#include "reg_emif.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @enum emif_pins
+ * @brief Alias for emif pins
+ *
+ */
+enum emif_pins
+{
+ emif_wait_pin0 = 0U,
+ emif_wait_pin1 = 1U
+};
+
+/** @enum emif_size
+ * @brief Alias for emif page size
+ *
+ */
+enum emif_size
+{
+ elements_256 = 0U,
+ elements_512 = 1U,
+ elements_1024 = 2U,
+ elements_2048 = 3U
+};
+
+/** @enum emif_port
+ * @brief Alias for emif port
+ *
+ */
+enum emif_port
+{
+ emif_8_bit_port = 0U,
+ emif_16_bit_port = 1U
+};
+
+/** @enum emif_pagesize
+ * @brief Alias for emif pagesize
+ *
+ */
+enum emif_pagesize
+{
+ emif_4_words = 0U,
+ emif_8_words = 1U
+};
+
+/** @enum emif_wait_polarity
+ * @brief Alias for emif wait polarity
+ *
+ */
+enum emif_wait_polarity
+{
+ emif_pin_low = 0U,
+ emif_pin_high = 1U
+};
+
+#define PTR ( ( volatile uint32 * ) ( 0x80000000U ) )
+
+/* Configuration registers */
+typedef struct emif_config_reg
+{
+ uint32 CONFIG_AWCC;
+ uint32 CONFIG_SDCR;
+ uint32 CONFIG_SDRCR;
+ uint32 CONFIG_CE2CFG;
+ uint32 CONFIG_CE3CFG;
+ uint32 CONFIG_CE4CFG;
+ uint32 CONFIG_CE5CFG;
+ uint32 CONFIG_SDTIMR;
+ uint32 CONFIG_SDSRETR;
+ uint32 CONFIG_INTMSK;
+ uint32 CONFIG_PMCR;
+} emif_config_reg_t;
+
+/* Configuration registers initial value for EMIF*/
+#define EMIF_AWCC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) emif_pin_high << 29U ) \
+ | ( uint32 ) ( ( uint32 ) emif_pin_low << 28U ) \
+ | ( uint32 ) ( ( uint32 ) emif_wait_pin0 << 16U ) \
+ | ( uint32 ) ( ( uint32 ) emif_wait_pin0 << 18U ) \
+ | ( uint32 ) ( ( uint32 ) emif_wait_pin0 << 20U ) | ( uint32 ) ( ( uint32 ) 0U ) \
+ | ( uint32 ) 0xC0000000U )
+
+#define EMIF_SDCR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 31U ) | ( uint32 ) ( ( uint32 ) 1U << 14U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) elements_256 ) )
+
+#define EMIF_SDRCR_CONFIGVALUE 0U
+
+#define EMIF_CE2CFG_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 31U ) | ( uint32 ) ( ( uint32 ) 0U << 30U ) \
+ | ( uint32 ) ( ( uint32 ) 15U << 26U ) | ( uint32 ) ( ( uint32 ) 63U << 20U ) \
+ | ( uint32 ) ( ( uint32 ) 7U << 17U ) | ( uint32 ) ( ( uint32 ) 15U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 63U << 7U ) | ( uint32 ) ( ( uint32 ) 7U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) emif_8_bit_port ) )
+
+#define EMIF_CE3CFG_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 31U ) | ( uint32 ) ( ( uint32 ) 0U << 30U ) \
+ | ( uint32 ) ( ( uint32 ) 15U << 26U ) | ( uint32 ) ( ( uint32 ) 63U << 20U ) \
+ | ( uint32 ) ( ( uint32 ) 7U << 17U ) | ( uint32 ) ( ( uint32 ) 15U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 63U << 7U ) | ( uint32 ) ( ( uint32 ) 7U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) emif_8_bit_port ) )
+
+#define EMIF_CE4CFG_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 31U ) | ( uint32 ) ( ( uint32 ) 0U << 30U ) \
+ | ( uint32 ) ( ( uint32 ) 15U << 26U ) | ( uint32 ) ( ( uint32 ) 63U << 20U ) \
+ | ( uint32 ) ( ( uint32 ) 7U << 17U ) | ( uint32 ) ( ( uint32 ) 15U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 63U << 7U ) | ( uint32 ) ( ( uint32 ) 7U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) emif_8_bit_port ) )
+
+#define EMIF_CE5CFG_CONFIGVALUE 0x3FFFFFFDU
+
+#define EMIF_SDTIMR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 27U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 12U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | 0x00000000U )
+
+#define EMIF_SDSRETR_CONFIGVALUE 0U
+#define EMIF_INTMSK_CONFIGVALUE 0x00000000U
+#define EMIF_PMCR_CONFIGVALUE \
+ ( 0xFC000000U | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) emif_4_words << 1U ) | ( uint32 ) ( ( uint32 ) 0U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) emif_4_words << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) emif_4_words << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) )
+
+/**
+ * @defgroup EMIF EMIF
+ * @brief External Memory Interface.
+ *
+ * This EMIF memory controller is compliant with the JESD21-C SDR SDRAM memories
+ *utilizing a 16-bit data bus. The purpose of this EMIF is to provide a means for the CPU
+ *to connect to a variety of external devices including:
+ * - Single data rate (SDR) SDRAM
+ * - Asynchronous devices including NOR Flash and SRAM
+ * The most common use for the EMIF is to interface with both a flash device and an SDRAM
+ *device simultaneously. contains an example of operating the EMIF in this configuration.
+ *
+ * Related Files
+ * - reg_emif.h
+ * - emif.h
+ * - emif.c
+ * @addtogroup EMIF
+ * @{
+ */
+/* EMIF Interface Functions */
+
+void emif_SDRAMInit( void );
+void emif_SDRAM_StartupInit( void );
+void emif_ASYNC1Init( void );
+void emif_ASYNC2Init( void );
+void emif_ASYNC3Init( void );
+void emifGetConfigValue( emif_config_reg_t * config_reg, config_value_type_t type );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /*EMIF_H_*/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/eqep.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/eqep.h
new file mode 100644
index 000000000..2a1c1622d
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/eqep.h
@@ -0,0 +1,867 @@
+/** @file eqep.h
+ * @brief EQEP Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __eQEP_H__
+#define __eQEP_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "reg_eqep.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/*QDECCTL Register */
+#define eQEP_QDECCTL_QSRC \
+ ( ( uint16 ) ( ( uint16 ) 3U << 14U ) ) /* "Reason - TI_Fee_Fix is a symbolic
+ * constant."*/
+ #define TI_FEE_FLASH_ERROR_CORRECTION_HANDLING TI_Fee_Fix
+ #else
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - TI_Fee_None is a symbolic
+ * constant."*/
+ #define TI_FEE_FLASH_ERROR_CORRECTION_HANDLING TI_Fee_None
+ #endif
+
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_MAXIMUM_BLOCKING_TIME is a
+ * symbolic constant"*/
+ #define TI_FEE_MAXIMUM_BLOCKING_TIME FEE_MAXIMUM_BLOCKING_TIME
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_OPERATING_FREQUENCY is a symbolic
+ * constant."*/
+ #define TI_FEE_OPERATING_FREQUENCY FEE_OPERATING_FREQUENCY
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_FLASH_ERROR_CORRECTION_ENABLE is a
+ * symbolic constant."*/
+ #define TI_FEE_FLASH_ERROR_CORRECTION_ENABLE FEE_FLASH_ERROR_CORRECTION_ENABLE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_FLASH_CHECKSUM_ENABLE is a
+ * symbolic constant."*/
+ #define TI_FEE_FLASH_CHECKSUM_ENABLE FEE_FLASH_CHECKSUM_ENABLE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_FLASH_WRITECOUNTER_SAVE is a
+ * symbolic constant."*/
+ #define TI_FEE_FLASH_WRITECOUNTER_SAVE FEE_FLASH_WRITECOUNTER_SAVE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - NVM_DATASET_SELECTION_BITS is a
+ * symbolic constant."*/
+ #define TI_FEE_DATASELECT_BITS NVM_DATASET_SELECTION_BITS
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_EEPS is a symbolic
+ * constant."*/
+ #define TI_FEE_NUMBER_OF_EEPS FEE_NUMBER_OF_EEPS
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_INDEX is a symbolic constant."*/
+ #define TI_FEE_INDEX FEE_INDEX
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_PAGE_OVERHEAD is a symbolic
+ * constant."*/
+ #define TI_FEE_PAGE_OVERHEAD FEE_PAGE_OVERHEAD
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_BLOCK_OVERHEAD is a symbolic
+ * constant."*/
+ #define TI_FEE_BLOCK_OVERHEAD FEE_BLOCK_OVERHEAD
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_VIRTUAL_PAGE_SIZE is a symbolic
+ * constant."*/
+ #define TI_FEE_VIRTUAL_PAGE_SIZE FEE_VIRTUAL_PAGE_SIZE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_VIRTUAL_SECTOR_OVERHEAD is a
+ * symbolic constant."*/
+ #define TI_FEE_VIRTUAL_SECTOR_OVERHEAD FEE_VIRTUAL_SECTOR_OVERHEAD
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY
+ * is a symbolic constant."*/
+ #define TI_FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY \
+ FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_EIGHTBYTEWRITES is a
+ * symbolic constant."*/
+ #define TI_FEE_NUMBER_OF_EIGHTBYTEWRITES FEE_NUMBER_OF_EIGHTBYTEWRITES
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NVM_JOB_END_NOTIFICATION is a
+ * symbolic constant."*/
+ #define TI_FEE_NVM_JOB_END_NOTIFICATION FEE_NVM_JOB_END_NOTIFICATION
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NVM_JOB_ERROR_NOTIFICATION is a
+ * symbolic constant."*/
+ #define TI_FEE_NVM_JOB_ERROR_NOTIFICATION FEE_NVM_JOB_ERROR_NOTIFICATION
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_POLLING_MODE is a symbolic
+ * constant."*/
+ #define TI_FEE_POLLING_MODE FEE_POLLING_MODE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_CHECK_BANK7_ACCESS is a symbolic
+ * constant."*/
+ #ifndef FEE_CHECK_BANK7_ACCESS
+ #define TI_FEE_CHECK_BANK7_ACCESS STD_ON
+ #else
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_CHECK_BANK7_ACCESS is a
+ * symbolic constant."*/
+ #define TI_FEE_CHECK_BANK7_ACCESS STD_ON
+ #endif
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_TOTAL_BLOCKS_DATASETS is a
+ * symbolic constant."*/
+ #define TI_FEE_TOTAL_BLOCKS_DATASETS FEE_TOTAL_BLOCKS_DATASETS
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_VIRTUALSECTOR_SIZE is a symbolic
+ * constant."*/
+ #define TI_FEE_VIRTUALSECTOR_SIZE FEE_VIRTUALSECTOR_SIZE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_PHYSICALSECTOR_SIZE is a symbolic
+ * constant."*/
+ #define TI_FEE_PHYSICALSECTOR_SIZE FEE_PHYSICALSECTOR_SIZE
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason -
+ * FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC is a symbolic constant."*/
+ #define TI_FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC \
+ FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_USEPARTIALERASEDSECTOR is a
+ * symbolic constant."*/
+ #define TI_FEE_USEPARTIALERASEDSECTOR FEE_USEPARTIALERASEDSECTOR
+
+ /*----------------------------------------------------------------------------*/
+ /* Virtual Sector Configuration */
+
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_VIRTUAL_SECTORS is a
+ * symbolic constant."*/
+ /*SAFETYMCUSW 61 X MR:1.4,5.1 "Reason - Similar Identifier name is required
+ * here."*/
+ #define TI_FEE_NUMBER_OF_VIRTUAL_SECTORS FEE_NUMBER_OF_VIRTUAL_SECTORS
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_VIRTUAL_SECTORS_EEP1 is
+ * a symbolic constant."*/
+ /*SAFETYMCUSW 384 S MR:1.4,5.1 "Reason - Similar Identifier name is
+ * required here."*/
+ /*SAFETYMCUSW 61 X MR:1.4,5.1 "Reason - Similar Identifier name is required
+ * here."*/
+ #define TI_FEE_NUMBER_OF_VIRTUAL_SECTORS_EEP1 FEE_NUMBER_OF_VIRTUAL_SECTORS_EEP1
+
+ /*----------------------------------------------------------------------------*/
+ /* Block Configuration */
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - FEE_NUMBER_OF_BLOCKS is a symbolic
+ * constant."*/
+ #define TI_FEE_NUMBER_OF_BLOCKS FEE_NUMBER_OF_BLOCKS
+ /*SAFETYMCUSW 79 S MR:19.4 "Reason - TI_FEE_VARIABLE_DATASETS is a symbolic
+ * constant."*/
+ #define TI_FEE_VARIABLE_DATASETS STD_ON
+
+ #endif /* TI_FEE_DRIVER */
+
+#endif /* FEE_INTERFACE_H */
+
+/**********************************************************************************************************************
+ * END OF FILE: fee_interface.h
+ *********************************************************************************************************************/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/gio.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/gio.h
new file mode 100644
index 000000000..c44d11fa6
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/gio.h
@@ -0,0 +1,182 @@
+/** @file gio.h
+ * @brief GIO Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __GIO_H__
+#define __GIO_H__
+
+#include "reg_gio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+typedef struct gio_config_reg
+{
+ uint32 CONFIG_INTDET;
+ uint32 CONFIG_POL;
+ uint32 CONFIG_INTENASET;
+ uint32 CONFIG_LVLSET;
+
+ uint32 CONFIG_PORTADIR;
+ uint32 CONFIG_PORTAPDR;
+ uint32 CONFIG_PORTAPSL;
+ uint32 CONFIG_PORTAPULDIS;
+
+ uint32 CONFIG_PORTBDIR;
+ uint32 CONFIG_PORTBPDR;
+ uint32 CONFIG_PORTBPSL;
+ uint32 CONFIG_PORTBPULDIS;
+} gio_config_reg_t;
+
+#define GIO_INTDET_CONFIGVALUE 0U
+#define GIO_POL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 12U ) | ( uint32 ) ( ( uint32 ) 0U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 14U ) | ( uint32 ) ( ( uint32 ) 0U << 15U ) )
+
+#define GIO_INTENASET_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 12U ) | ( uint32 ) ( ( uint32 ) 0U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 14U ) | ( uint32 ) ( ( uint32 ) 0U << 15U ) )
+
+#define GIO_LVLSET_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 12U ) | ( uint32 ) ( ( uint32 ) 0U << 13U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 14U ) | ( uint32 ) ( ( uint32 ) 0U << 15U ) )
+
+#define GIO_PORTADIR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTAPDR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTAPSL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTAPULDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+
+#define GIO_PORTBDIR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTBPDR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTBPSL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+#define GIO_PORTBPULDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 7U ) )
+
+/**
+ * @defgroup GIO GIO
+ * @brief General-Purpose Input/Output Module.
+ *
+ * The GIO module provides the family of devices with input/output (I/O) capability.
+ * The I/O pins are bidirectional and bit-programmable.
+ * The GIO module also supports external interrupt capability.
+ *
+ * Related Files
+ * - reg_gio.h
+ * - gio.h
+ * - gio.c
+ * @addtogroup GIO
+ * @{
+ */
+
+/* GIO Interface Functions */
+void gioInit( void );
+void gioSetDirection( gioPORT_t * port, uint32 dir );
+void gioSetBit( gioPORT_t * port, uint32 bit, uint32 value );
+void gioSetPort( gioPORT_t * port, uint32 value );
+uint32 gioGetBit( gioPORT_t * port, uint32 bit );
+uint32 gioGetPort( gioPORT_t * port );
+void gioToggleBit( gioPORT_t * port, uint32 bit );
+void gioEnableNotification( gioPORT_t * port, uint32 bit );
+void gioDisableNotification( gioPORT_t * port, uint32 bit );
+void gioNotification( gioPORT_t * port, uint32 bit );
+void gioGetConfigValue( gio_config_reg_t * config_reg, config_value_type_t type );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __GIO_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hal_stdtypes.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hal_stdtypes.h
new file mode 100644
index 000000000..bd58bb736
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hal_stdtypes.h
@@ -0,0 +1,194 @@
+/** @file hal_stdtypes.h
+ * @brief HALCoGen standard types header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Type and Global definitions which are relevant for all drivers.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __HAL_STDTYPES_H__
+#define __HAL_STDTYPES_H__
+
+#include
+#include
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+/************************************************************/
+/* Type Definitions */
+/************************************************************/
+#ifndef _UINT64_DECLARED
+typedef uint64_t uint64;
+ #define _UINT64_DECLARED
+#endif
+
+#ifndef _UINT32_DECLARED
+typedef uint32_t uint32;
+ #define _UINT32_DECLARED
+#endif
+
+#ifndef _UINT16_DECLARED
+typedef uint16_t uint16;
+ #define _UINT16_DECLARED
+#endif
+
+#ifndef _UINT8_DECLARED
+typedef uint8_t uint8;
+ #define _UINT8_DECLARED
+#endif
+
+#ifndef _BOOLEAN_DECLARED
+ #ifdef __cplusplus
+typedef bool boolean;
+ #else
+typedef _Bool boolean;
+ #endif
+ #define _BOOLEAN_DECLARED
+#endif
+
+#ifndef _SINT64_DECLARED
+typedef int64_t sint64;
+ #define _SINT64_DECLARED
+#endif
+
+#ifndef _SINT32_DECLARED
+typedef int32_t sint32;
+ #define _SINT32_DECLARED
+#endif
+
+#ifndef _SINT16_DECLARED
+typedef int16_t sint16;
+ #define _SINT16_DECLARED
+#endif
+
+#ifndef _SINT8_DECLARED
+typedef int8_t sint8;
+ #define _SINT8_DECLARED
+#endif
+
+#ifndef _FLOAT32_DECLARED
+typedef float float32;
+ #define _FLOAT32_DECLARED
+#endif
+
+#ifndef _FLOAT64_DECLARED
+typedef double float64;
+ #define _FLOAT64_DECLARED
+#endif
+
+typedef uint8 Std_ReturnType;
+
+typedef struct
+{
+ uint16 vendorID;
+ uint16 moduleID;
+ uint8 instanceID;
+ uint8 sw_major_version;
+ uint8 sw_minor_version;
+ uint8 sw_patch_version;
+} Std_VersionInfoType;
+
+/*****************************************************************************/
+/* SYMBOL DEFINITIONS */
+/*****************************************************************************/
+#ifndef STATUSTYPEDEFINED
+ #define STATUSTYPEDEFINED
+ #define E_OK 0x00U
+
+typedef unsigned char StatusType;
+#endif
+
+#ifndef E_NOT_OK
+ #define E_NOT_OK 0x01U
+#endif
+
+#ifndef STD_ON
+ #define STD_ON 0x01U
+#endif
+
+#ifndef STD_OFF
+ #define STD_OFF 0x00U
+#endif
+
+/************************************************************/
+/* Global Definitions */
+/************************************************************/
+
+/** @def NULL
+ * @brief NULL definition
+ */
+
+#ifndef NULL
+ /*SAFETYMCUSW 218 S MR:20.2 "Custom Type Definition." */
+ #define NULL ( ( void * ) 0U )
+#endif
+
+/*****************************************************************************/
+/* Define: NULL_PTR */
+/* Description: Void pointer to 0 */
+/*****************************************************************************/
+#ifndef NULL_PTR
+ #define NULL_PTR ( ( void * ) 0x0 )
+#endif
+
+/** @def TRUE
+ * @brief definition for TRUE
+ */
+#ifndef TRUE
+ #define TRUE true
+#endif
+
+/** @def FALSE
+ * @brief BOOLEAN definition for FALSE
+ */
+#ifndef FALSE
+ #define FALSE false
+#endif
+
+/*****************************************************************************/
+/* Define: NULL_PTR */
+/* Description: Void pointer to 0 */
+/*****************************************************************************/
+#ifndef NULL_PTR
+ #define NULL_PTR ( ( void * ) 0x0U )
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* __HAL_STDTYPES_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/het.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/het.h
new file mode 100644
index 000000000..f381d7746
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/het.h
@@ -0,0 +1,600 @@
+/** @file het.h
+ * @brief HET Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __HET_H__
+#define __HET_H__
+
+#include "reg_het.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @def pwm0
+ * @brief Pwm signal 0
+ *
+ * Alias for pwm signal 0
+ */
+#define pwm0 0U
+
+/** @def pwm1
+ * @brief Pwm signal 1
+ *
+ * Alias for pwm signal 1
+ */
+#define pwm1 1U
+
+/** @def pwm2
+ * @brief Pwm signal 2
+ *
+ * Alias for pwm signal 2
+ */
+#define pwm2 2U
+
+/** @def pwm3
+ * @brief Pwm signal 3
+ *
+ * Alias for pwm signal 3
+ */
+#define pwm3 3U
+
+/** @def pwm4
+ * @brief Pwm signal 4
+ *
+ * Alias for pwm signal 4
+ */
+#define pwm4 4U
+
+/** @def pwm5
+ * @brief Pwm signal 5
+ *
+ * Alias for pwm signal 5
+ */
+#define pwm5 5U
+
+/** @def pwm6
+ * @brief Pwm signal 6
+ *
+ * Alias for pwm signal 6
+ */
+#define pwm6 6U
+
+/** @def pwm7
+ * @brief Pwm signal 7
+ *
+ * Alias for pwm signal 7
+ */
+#define pwm7 7U
+
+/** @def edge0
+ * @brief Edge signal 0
+ *
+ * Alias for edge signal 0
+ */
+#define edge0 0U
+
+/** @def edge1
+ * @brief Edge signal 1
+ *
+ * Alias for edge signal 1
+ */
+#define edge1 1U
+
+/** @def edge2
+ * @brief Edge signal 2
+ *
+ * Alias for edge signal 2
+ */
+#define edge2 2U
+
+/** @def edge3
+ * @brief Edge signal 3
+ *
+ * Alias for edge signal 3
+ */
+#define edge3 3U
+
+/** @def edge4
+ * @brief Edge signal 4
+ *
+ * Alias for edge signal 4
+ */
+#define edge4 4U
+
+/** @def edge5
+ * @brief Edge signal 5
+ *
+ * Alias for edge signal 5
+ */
+#define edge5 5U
+
+/** @def edge6
+ * @brief Edge signal 6
+ *
+ * Alias for edge signal 6
+ */
+#define edge6 6U
+
+/** @def edge7
+ * @brief Edge signal 7
+ *
+ * Alias for edge signal 7
+ */
+#define edge7 7U
+
+/** @def cap0
+ * @brief Capture signal 0
+ *
+ * Alias for capture signal 0
+ */
+#define cap0 0U
+
+/** @def cap1
+ * @brief Capture signal 1
+ *
+ * Alias for capture signal 1
+ */
+#define cap1 1U
+
+/** @def cap2
+ * @brief Capture signal 2
+ *
+ * Alias for capture signal 2
+ */
+#define cap2 2U
+
+/** @def cap3
+ * @brief Capture signal 3
+ *
+ * Alias for capture signal 3
+ */
+#define cap3 3U
+
+/** @def cap4
+ * @brief Capture signal 4
+ *
+ * Alias for capture signal 4
+ */
+#define cap4 4U
+
+/** @def cap5
+ * @brief Capture signal 5
+ *
+ * Alias for capture signal 5
+ */
+#define cap5 5U
+
+/** @def cap6
+ * @brief Capture signal 6
+ *
+ * Alias for capture signal 6
+ */
+#define cap6 6U
+
+/** @def cap7
+ * @brief Capture signal 7
+ *
+ * Alias for capture signal 7
+ */
+#define cap7 7U
+
+/** @def pwmEND_OF_DUTY
+ * @brief Pwm end of duty
+ *
+ * Alias for pwm end of duty notification
+ */
+#define pwmEND_OF_DUTY 2U
+
+/** @def pwmEND_OF_PERIOD
+ * @brief Pwm end of period
+ *
+ * Alias for pwm end of period notification
+ */
+#define pwmEND_OF_PERIOD 4U
+
+/** @def pwmEND_OF_BOTH
+ * @brief Pwm end of duty and period
+ *
+ * Alias for pwm end of duty and period notification
+ */
+#define pwmEND_OF_BOTH 6U
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @struct hetBase
+ * @brief HET Register Definition
+ *
+ * This structure is used to access the HET module registers.
+ */
+
+/** @typedef hetBASE_t
+ * @brief HET Register Frame Type Definition
+ *
+ * This type is used to access the HET Registers.
+ */
+
+enum hetPinSelect
+{
+ PIN_HET_0 = 0U,
+ PIN_HET_1 = 1U,
+ PIN_HET_2 = 2U,
+ PIN_HET_3 = 3U,
+ PIN_HET_4 = 4U,
+ PIN_HET_5 = 5U,
+ PIN_HET_6 = 6U,
+ PIN_HET_7 = 7U,
+ PIN_HET_8 = 8U,
+ PIN_HET_9 = 9U,
+ PIN_HET_10 = 10U,
+ PIN_HET_11 = 11U,
+ PIN_HET_12 = 12U,
+ PIN_HET_13 = 13U,
+ PIN_HET_14 = 14U,
+ PIN_HET_15 = 15U,
+ PIN_HET_16 = 16U,
+ PIN_HET_17 = 17U,
+ PIN_HET_18 = 18U,
+ PIN_HET_19 = 19U,
+ PIN_HET_20 = 20U,
+ PIN_HET_21 = 21U,
+ PIN_HET_22 = 22U,
+ PIN_HET_23 = 23U,
+ PIN_HET_24 = 24U,
+ PIN_HET_25 = 25U,
+ PIN_HET_26 = 26U,
+ PIN_HET_27 = 27U,
+ PIN_HET_28 = 28U,
+ PIN_HET_29 = 29U,
+ PIN_HET_30 = 30U,
+ PIN_HET_31 = 31U
+};
+
+/** @struct hetSignal
+ * @brief HET Signal Definition
+ *
+ * This structure is used to define a pwm signal.
+ */
+
+/** @typedef hetSIGNAL_t
+ * @brief HET Signal Type Definition
+ *
+ * This type is used to access HET Signal Information.
+ */
+typedef struct hetSignal
+{
+ uint32 duty; /**< Duty cycle in % of the period */
+ float64 period; /**< Period in us */
+} hetSIGNAL_t;
+
+/* Configuration registers */
+typedef struct het_config_reg
+{
+ uint32 CONFIG_GCR;
+ uint32 CONFIG_PFR;
+ uint32 CONFIG_INTENAS;
+ uint32 CONFIG_INTENAC;
+ uint32 CONFIG_PRY;
+ uint32 CONFIG_AND;
+ uint32 CONFIG_HRSH;
+ uint32 CONFIG_XOR;
+ uint32 CONFIG_DIR;
+ uint32 CONFIG_PDR;
+ uint32 CONFIG_PULDIS;
+ uint32 CONFIG_PSL;
+ uint32 CONFIG_PCR;
+} het_config_reg_t;
+
+/* Configuration registers initial value for HET1*/
+#define HET1_DIR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_PDR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_PULDIS_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_PSL_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_HRSH_CONFIGVALUE \
+ ( ( uint32 ) 0x00008000U | ( uint32 ) 0x00004000U | ( uint32 ) 0x00002000U \
+ | ( uint32 ) 0x00001000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000008U | ( uint32 ) 0x00000004U | ( uint32 ) 0x00000002U \
+ | ( uint32 ) 0x00000001U )
+
+#define HET1_AND_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET1_XOR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET1_PFR_CONFIGVALUE ( ( ( uint32 ) 7U << 8U ) | ( uint32 ) 0U )
+
+#define HET1_PRY_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_INTENAC_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_INTENAS_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET1_PCR_CONFIGVALUE ( ( uint32 ) 0x00000005U )
+#define HET1_GCR_CONFIGVALUE 0x00030001U
+
+/* Configuration registers initial value for HET2*/
+#define HET2_DIR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET2_PDR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET2_PULDIS_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET2_PSL_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U )
+
+#define HET2_HRSH_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000008U \
+ | ( uint32 ) 0x00000004U | ( uint32 ) 0x00000002U | ( uint32 ) 0x00000001U )
+
+#define HET2_AND_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET2_XOR_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET2_PFR_CONFIGVALUE ( ( ( uint32 ) 7U << 8U ) | ( uint32 ) 0U )
+
+#define HET2_PRY_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET2_INTENAC_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET2_INTENAS_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U \
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U )
+
+#define HET2_PCR_CONFIGVALUE ( ( uint32 ) 0x00000005U )
+#define HET2_GCR_CONFIGVALUE 0x00030001U
+
+/**
+ * @defgroup HET HET
+ * @brief HighEnd Timer Module.
+ *
+ * The HET is a software-controlled timer with a dedicated specialized timer micromachine
+ *and a set of 30 instructions. The HET micromachine is connected to a port of up to 32
+ *input/output (I/O) pins.
+ *
+ * Related Files
+ * - reg_het.h
+ * - het.h
+ * - het.c
+ * - reg_htu.h
+ * - htu.h
+ * - std_nhet.h
+ * @addtogroup HET
+ * @{
+ */
+
+/* HET Interface Functions */
+void hetInit( void );
+
+/* PWM Interface Functions */
+void pwmStart( hetRAMBASE_t * hetRAM, uint32 pwm );
+void pwmStop( hetRAMBASE_t * hetRAM, uint32 pwm );
+void pwmSetDuty( hetRAMBASE_t * hetRAM, uint32 pwm, uint32 pwmDuty );
+void pwmSetSignal( hetRAMBASE_t * hetRAM, uint32 pwm, hetSIGNAL_t signal );
+void pwmGetSignal( hetRAMBASE_t * hetRAM, uint32 pwm, hetSIGNAL_t * signal );
+void pwmEnableNotification( hetBASE_t * hetREG, uint32 pwm, uint32 notification );
+void pwmDisableNotification( hetBASE_t * hetREG, uint32 pwm, uint32 notification );
+void pwmNotification( hetBASE_t * hetREG, uint32 pwm, uint32 notification );
+
+/* Edge Interface Functions */
+void edgeResetCounter( hetRAMBASE_t * hetRAM, uint32 edge );
+uint32 edgeGetCounter( hetRAMBASE_t * hetRAM, uint32 edge );
+void edgeEnableNotification( hetBASE_t * hetREG, uint32 edge );
+void edgeDisableNotification( hetBASE_t * hetREG, uint32 edge );
+void edgeNotification( hetBASE_t * hetREG, uint32 edge );
+
+/* Captured Signal Interface Functions */
+void capGetSignal( hetRAMBASE_t * hetRAM, uint32 cap, hetSIGNAL_t * signal );
+
+/* Timestamp Interface Functions */
+void hetResetTimestamp( hetRAMBASE_t * hetRAM );
+uint32 hetGetTimestamp( hetRAMBASE_t * hetRAM );
+void het1GetConfigValue( het_config_reg_t * config_reg, config_value_type_t type );
+void het2GetConfigValue( het_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void hetNotification(hetBASE_t *het, uint32 offset)
+ * @brief het interrupt callback
+ * @param[in] het - Het module base address
+ * - hetREG1: HET1 module base address pointer
+ * - hetREG2: HET2 module base address pointer
+ * @param[in] offset - het interrupt offset / Source number
+ *
+ * @note This function has to be provide by the user.
+ *
+ * This is a interrupt callback that is provided by the application and is call upon
+ * an het interrupt. The parameter passed to the callback is a copy of the interrupt
+ * offset register which is used to decode the interrupt source.
+ */
+void hetNotification( hetBASE_t * het, uint32 offset );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __HET_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/htu.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/htu.h
new file mode 100644
index 000000000..4555067f4
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/htu.h
@@ -0,0 +1,69 @@
+/** @file htu.h
+ * @brief HTU Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __HTU_H__
+#define __HTU_H__
+
+#include "reg_htu.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* HTU General Definitions */
+
+#define HTU1PARLOC ( *( volatile uint32 * ) 0xFF4E0200U )
+#define HTU2PARLOC ( *( volatile uint32 * ) 0xFF4C0200U )
+
+#define HTU1RAMLOC ( *( volatile uint32 * ) 0xFF4E0000U )
+#define HTU2RAMLOC ( *( volatile uint32 * ) 0xFF4C0000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __HTU_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac.h
new file mode 100644
index 000000000..66cc3ae64
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac.h
@@ -0,0 +1,1305 @@
+/*
+ * hw_emac1.h
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _HW_EMAC_H_
+#define _HW_EMAC_H_
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#define EMAC_BASE ( 0xFCF78000U )
+#define EMAC_CTRL_BASE ( 0xFCF78800U )
+#define EMAC_CTRL_RAM_BASE ( 0xFC520000U )
+
+#define EMAC_TXREVID ( 0x0U )
+#define EMAC_TXCONTROL ( 0x4U )
+#define EMAC_TXTEARDOWN ( 0x8U )
+#define EMAC_RXREVID ( 0x10U )
+#define EMAC_RXCONTROL ( 0x14U )
+#define EMAC_RXTEARDOWN ( 0x18U )
+#define EMAC_TXINTSTATRAW ( 0x80U )
+#define EMAC_TXINTSTATMASKED ( 0x84U )
+#define EMAC_TXINTMASKSET ( 0x88U )
+#define EMAC_TXINTMASKCLEAR ( 0x8CU )
+#define EMAC_MACINVECTOR ( 0x90U )
+#define EMAC_MACEOIVECTOR ( 0x94U )
+#define EMAC_RXINTSTATRAW ( 0xA0U )
+#define EMAC_RXINTSTATMASKED ( 0xA4U )
+#define EMAC_RXINTMASKSET ( 0xA8U )
+#define EMAC_RXINTMASKCLEAR ( 0xACU )
+#define EMAC_MACINTSTATRAW ( 0xB0U )
+#define EMAC_MACINTSTATMASKED ( 0xB4U )
+#define EMAC_MACINTMASKSET ( 0xB8U )
+#define EMAC_MACINTMASKCLEAR ( 0xBCU )
+#define EMAC_RXMBPENABLE ( 0x100U )
+#define EMAC_RXUNICASTSET ( 0x104U )
+#define EMAC_RXUNICASTCLEAR ( 0x108U )
+#define EMAC_RXMAXLEN ( 0x10CU )
+#define EMAC_RXBUFFEROFFSET ( 0x110U )
+#define EMAC_RXFILTERLOWTHRESH ( 0x114U )
+#define EMAC_RXFLOWTHRESH( n ) ( ( uint32 ) 0x120U + ( uint32 ) ( ( n ) * 4U ) )
+#define EMAC_RXFREEBUFFER( n ) ( ( uint32 ) 0x140U + ( uint32 ) ( ( n ) * 4U ) )
+#define EMAC_MACCONTROL ( 0x160U )
+#define EMAC_MACSTATUS ( 0x164U )
+#define EMAC_EMCONTROL ( 0x168U )
+#define EMAC_FIFOCONTROL ( 0x16CU )
+#define EMAC_MACCONFIG ( 0x170U )
+#define EMAC_SOFTRESET ( 0x174U )
+#define EMAC_MACSRCADDRLO ( 0x1D0U )
+#define EMAC_MACSRCADDRHI ( 0x1D4U )
+#define EMAC_MACHASH1 ( 0x1D8U )
+#define EMAC_MACHASH2 ( 0x1DCU )
+#define EMAC_BOFFTEST ( 0x1E0U )
+#define EMAC_TPACETEST ( 0x1E4U )
+#define EMAC_RXPAUSE ( 0x1E8U )
+#define EMAC_TXPAUSE ( 0x1ECU )
+#define EMAC_RXGOODFRAMES ( 0x200U )
+#define EMAC_RXBCASTFRAMES ( 0x204U )
+#define EMAC_RXMCASTFRAMES ( 0x208U )
+#define EMAC_RXPAUSEFRAMES ( 0x20CU )
+#define EMAC_RXCRCERRORS ( 0x210U )
+#define EMAC_RXALIGNCODEERRORS ( 0x214U )
+#define EMAC_RXOVERSIZED ( 0x218U )
+#define EMAC_RXJABBER ( 0x21CU )
+#define EMAC_RXUNDERSIZED ( 0x220U )
+#define EMAC_RXFRAGMENTS ( 0x224U )
+#define EMAC_RXFILTERED ( 0x228U )
+#define EMAC_RXQOSFILTERED ( 0x22CU )
+#define EMAC_RXOCTETS ( 0x230U )
+#define EMAC_TXGOODFRAMES ( 0x234U )
+#define EMAC_TXBCASTFRAMES ( 0x238U )
+#define EMAC_TXMCASTFRAMES ( 0x23CU )
+#define EMAC_TXPAUSEFRAMES ( 0x240U )
+#define EMAC_TXDEFERRED ( 0x244U )
+#define EMAC_TXCOLLISION ( 0x248U )
+#define EMAC_TXSINGLECOLL ( 0x24CU )
+#define EMAC_TXMULTICOLL ( 0x250U )
+#define EMAC_TXEXCESSIVECOLL ( 0x254U )
+#define EMAC_TXLATECOLL ( 0x258U )
+#define EMAC_TXUNDERRUN ( 0x25CU )
+#define EMAC_TXCARRIERSENSE ( 0x260U )
+#define EMAC_TXOCTETS ( 0x264U )
+#define EMAC_FRAME64 ( 0x268U )
+#define EMAC_FRAME65T127 ( 0x26CU )
+#define EMAC_FRAME128T255 ( 0x270U )
+#define EMAC_FRAME256T511 ( 0x274U )
+#define EMAC_FRAME512T1023 ( 0x278U )
+#define EMAC_FRAME1024TUP ( 0x27CU )
+#define EMAC_NETOCTETS ( 0x208U )
+#define EMAC_RXSOFOVERRUNS ( 0x284U )
+#define EMAC_RXMOFOVERRUNS ( 0x288U )
+#define EMAC_RXDMAOVERRUNS ( 0x28CU )
+#define EMAC_MACADDRLO ( 0x500U )
+#define EMAC_MACADDRHI ( 0x504U )
+#define EMAC_MACINDEX ( 0x508U )
+#define EMAC_TXHDP( n ) ( ( uint32 ) 0x600U + ( uint32 ) ( ( n ) * 4U ) )
+#define EMAC_RXHDP( n ) ( ( uint32 ) 0x620U + ( uint32 ) ( ( n ) * 4U ) )
+#define EMAC_TXCP( n ) ( ( uint32 ) 0x640U + ( uint32 ) ( ( n ) * 4U ) )
+#define EMAC_RXCP( n ) ( ( uint32 ) 0x660U + ( uint32 ) ( ( n ) * 4U ) )
+
+/**************************************************************************\
+* Field Definition Macros
+\**************************************************************************/
+
+/* TXREVID */
+
+#define EMAC_TXREVID_TXREV ( 0xFFFFFFFFU )
+#define EMAC_TXREVID_TXREV_SHIFT ( 0x00000000U )
+
+/* TXCONTROL */
+
+#define EMAC_TXCONTROL_TXEN ( 0x00000001U )
+#define EMAC_TXCONTROL_TXEN_SHIFT ( 0x00000000U )
+#define EMAC_TXCONTROL_TXDIS ( 0x00000000U )
+
+/* TXTEARDOWN */
+
+#define EMAC_TXTEARDOWN_TXTDNCH ( 0x00000007U )
+#define EMAC_TXTEARDOWN_TXTDNCH_SHIFT ( 0x00000000U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA0 ( 0x00000000U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA1 ( 0x00000001U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA2 ( 0x00000002U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA3 ( 0x00000003U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA4 ( 0x00000004U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA5 ( 0x00000005U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA6 ( 0x00000006U )
+#define EMAC_TXTEARDOWN_TXTDNCH_CHA7 ( 0x00000007U )
+
+/* RXREVID */
+
+#define EMAC_RXREVID_RXREV ( 0xFFFFFFFFU )
+#define EMAC_RXREVID_RXREV_SHIFT ( 0x00000000U )
+
+/* RXCONTROL */
+
+#define EMAC_RXCONTROL_RXEN ( 0x00000001U )
+#define EMAC_RXCONTROL_RXEN_SHIFT ( 0x00000000U )
+#define EMAC_RXCONTROL_RXDIS ( 0x00000000U )
+
+/* RXTEARDOWN */
+
+#define EMAC_RXTEARDOWN_RXTDNCH ( 0x00000007U )
+#define EMAC_RXTEARDOWN_RXTDNCH_SHIFT ( 0x00000000U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA0 ( 0x00000000U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA1 ( 0x00000001U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA2 ( 0x00000002U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA3 ( 0x00000003U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA4 ( 0x00000004U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA5 ( 0x00000005U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA6 ( 0x00000006U )
+#define EMAC_RXTEARDOWN_RXTDNCH_CHA7 ( 0x00000007U )
+
+/* TXINTSTATRAW */
+
+#define EMAC_TXINTSTATRAW_TX7PEND ( 0x00000080U )
+#define EMAC_TXINTSTATRAW_TX7PEND_SHIFT ( 0x00000007U )
+
+#define EMAC_TXINTSTATRAW_TX6PEND ( 0x00000040U )
+#define EMAC_TXINTSTATRAW_TX6PEND_SHIFT ( 0x00000006U )
+
+#define EMAC_TXINTSTATRAW_TX5PEND ( 0x00000020U )
+#define EMAC_TXINTSTATRAW_TX5PEND_SHIFT ( 0x00000005U )
+
+#define EMAC_TXINTSTATRAW_TX4PEND ( 0x00000010U )
+#define EMAC_TXINTSTATRAW_TX4PEND_SHIFT ( 0x00000004U )
+
+#define EMAC_TXINTSTATRAW_TX3PEND ( 0x00000008U )
+#define EMAC_TXINTSTATRAW_TX3PEND_SHIFT ( 0x00000003U )
+
+#define EMAC_TXINTSTATRAW_TX2PEND ( 0x00000004U )
+#define EMAC_TXINTSTATRAW_TX2PEND_SHIFT ( 0x00000002U )
+
+#define EMAC_TXINTSTATRAW_TX1PEND ( 0x00000002U )
+#define EMAC_TXINTSTATRAW_TX1PEND_SHIFT ( 0x00000001U )
+
+#define EMAC_TXINTSTATRAW_TX0PEND ( 0x00000001U )
+#define EMAC_TXINTSTATRAW_TX0PEND_SHIFT ( 0x00000000U )
+
+/* TXINTSTATMASKED */
+
+#define EMAC_TXINTSTATMASKED_TX7PEND ( 0x00000080U )
+#define EMAC_TXINTSTATMASKED_TX7PEND_SHIFT ( 0x00000007U )
+
+#define EMAC_TXINTSTATMASKED_TX6PEND ( 0x00000040U )
+#define EMAC_TXINTSTATMASKED_TX6PEND_SHIFT ( 0x00000006U )
+
+#define EMAC_TXINTSTATMASKED_TX5PEND ( 0x00000020U )
+#define EMAC_TXINTSTATMASKED_TX5PEND_SHIFT ( 0x00000005U )
+
+#define EMAC_TXINTSTATMASKED_TX4PEND ( 0x00000010U )
+#define EMAC_TXINTSTATMASKED_TX4PEND_SHIFT ( 0x00000004U )
+
+#define EMAC_TXINTSTATMASKED_TX3PEND ( 0x00000008U )
+#define EMAC_TXINTSTATMASKED_TX3PEND_SHIFT ( 0x00000003U )
+
+#define EMAC_TXINTSTATMASKED_TX2PEND ( 0x00000004U )
+#define EMAC_TXINTSTATMASKED_TX2PEND_SHIFT ( 0x00000002U )
+
+#define EMAC_TXINTSTATMASKED_TX1PEND ( 0x00000002U )
+#define EMAC_TXINTSTATMASKED_TX1PEND_SHIFT ( 0x00000001U )
+
+#define EMAC_TXINTSTATMASKED_TX0PEND ( 0x00000001U )
+#define EMAC_TXINTSTATMASKED_TX0PEND_SHIFT ( 0x00000000U )
+
+/* TXINTMASKSET */
+
+#define EMAC_TXINTMASKSET_TX7MASK ( 0x00000080U )
+#define EMAC_TXINTMASKSET_TX7MASK_SHIFT ( 0x00000007U )
+
+#define EMAC_TXINTMASKSET_TX6MASK ( 0x00000040U )
+#define EMAC_TXINTMASKSET_TX6MASK_SHIFT ( 0x00000006U )
+
+#define EMAC_TXINTMASKSET_TX5MASK ( 0x00000020U )
+#define EMAC_TXINTMASKSET_TX5MASK_SHIFT ( 0x00000005U )
+
+#define EMAC_TXINTMASKSET_TX4MASK ( 0x00000010U )
+#define EMAC_TXINTMASKSET_TX4MASK_SHIFT ( 0x00000004U )
+
+#define EMAC_TXINTMASKSET_TX3MASK ( 0x00000008U )
+#define EMAC_TXINTMASKSET_TX3MASK_SHIFT ( 0x00000003U )
+
+#define EMAC_TXINTMASKSET_TX2MASK ( 0x00000004U )
+#define EMAC_TXINTMASKSET_TX2MASK_SHIFT ( 0x00000002U )
+
+#define EMAC_TXINTMASKSET_TX1MASK ( 0x00000002U )
+#define EMAC_TXINTMASKSET_TX1MASK_SHIFT ( 0x00000001U )
+
+#define EMAC_TXINTMASKSET_TX0MASK ( 0x00000001U )
+#define EMAC_TXINTMASKSET_TX0MASK_SHIFT ( 0x00000000U )
+
+/* TXINTMASKCLEAR */
+
+#define EMAC_TXINTMASKCLEAR_TX7MASK ( 0x00000080U )
+#define EMAC_TXINTMASKCLEAR_TX7MASK_SHIFT ( 0x00000007U )
+
+#define EMAC_TXINTMASKCLEAR_TX6MASK ( 0x00000040U )
+#define EMAC_TXINTMASKCLEAR_TX6MASK_SHIFT ( 0x00000006U )
+
+#define EMAC_TXINTMASKCLEAR_TX5MASK ( 0x00000020U )
+#define EMAC_TXINTMASKCLEAR_TX5MASK_SHIFT ( 0x00000005U )
+
+#define EMAC_TXINTMASKCLEAR_TX4MASK ( 0x00000010U )
+#define EMAC_TXINTMASKCLEAR_TX4MASK_SHIFT ( 0x00000004U )
+
+#define EMAC_TXINTMASKCLEAR_TX3MASK ( 0x00000008U )
+#define EMAC_TXINTMASKCLEAR_TX3MASK_SHIFT ( 0x00000003U )
+
+#define EMAC_TXINTMASKCLEAR_TX2MASK ( 0x00000004U )
+#define EMAC_TXINTMASKCLEAR_TX2MASK_SHIFT ( 0x00000002U )
+
+#define EMAC_TXINTMASKCLEAR_TX1MASK ( 0x00000002U )
+#define EMAC_TXINTMASKCLEAR_TX1MASK_SHIFT ( 0x00000001U )
+
+#define EMAC_TXINTMASKCLEAR_TX0MASK ( 0x00000001U )
+#define EMAC_TXINTMASKCLEAR_TX0MASK_SHIFT ( 0x00000000U )
+
+/* MACINVECTOR */
+
+#define EMAC_MACINVECTOR_STATPEND ( 0x08000000U )
+#define EMAC_MACINVECTOR_STATPEND_SHIFT ( 0x0000001BU )
+
+#define EMAC_MACINVECTOR_HOSTPEND ( 0x04000000U )
+#define EMAC_MACINVECTOR_HOSTPEND_SHIFT ( 0x0000001AU )
+
+#define EMAC_MACINVECTOR_LINKINT0 ( 0x02000000U )
+#define EMAC_MACINVECTOR_LINKINT0_SHIFT ( 0x00000019U )
+
+#define EMAC_MACINVECTOR_USERINT0 ( 0x01000000U )
+#define EMAC_MACINVECTOR_USERINT0_SHIFT ( 0x00000018U )
+
+#define EMAC_MACINVECTOR_TXPEND ( 0x00FF0000U )
+#define EMAC_MACINVECTOR_TXPEND_SHIFT ( 0x00000010U )
+
+#define EMAC_MACINVECTOR_RXTHRESHPEND ( 0x0000FF00U )
+#define EMAC_MACINVECTOR_RXTHRESHPEND_SHIFT ( 0x00000008U )
+
+#define EMAC_MACINVECTOR_RXPEND ( 0x000000FFU )
+#define EMAC_MACINVECTOR_RXPEND_SHIFT ( 0x00000000U )
+
+/* MACEOIVECTOR */
+
+#define EMAC_MACEOIVECTOR_INTVECT ( 0x0000001FU )
+#define EMAC_MACEOIVECTOR_INTVECT_SHIFT ( 0x00000000U )
+/*----INTVECT Tokens----*/
+#define EMAC_MACEOIVECTOR_INTVECT_C0RXTHRESH ( 0x00000000U )
+#define EMAC_MACEOIVECTOR_INTVECT_C0RX ( 0x00000001U )
+#define EMAC_MACEOIVECTOR_INTVECT_C0TX ( 0x00000002U )
+#define EMAC_MACEOIVECTOR_INTVECT_C0MISC ( 0x00000003U )
+#define EMAC_MACEOIVECTOR_INTVECT_C1RXTHRESH ( 0x00000004U )
+#define EMAC_MACEOIVECTOR_INTVECT_C1RX ( 0x00000005U )
+#define EMAC_MACEOIVECTOR_INTVECT_C1TX ( 0x00000006U )
+#define EMAC_MACEOIVECTOR_INTVECT_C1MISC ( 0x00000007U )
+
+/* RXINTSTATRAW */
+
+#define EMAC_RXINTSTATRAW_RX7THRESHPEND ( 0x00008000U )
+#define EMAC_RXINTSTATRAW_RX7THRESHPEND_SHIFT ( 0x0000000FU )
+
+#define EMAC_RXINTSTATRAW_RX6THRESHPEND ( 0x00004000U )
+#define EMAC_RXINTSTATRAW_RX6THRESHPEND_SHIFT ( 0x0000000EU )
+
+#define EMAC_RXINTSTATRAW_RX5THRESHPEND ( 0x00002000U )
+#define EMAC_RXINTSTATRAW_RX5THRESHPEND_SHIFT ( 0x0000000DU )
+
+#define EMAC_RXINTSTATRAW_RX4THRESHPEND ( 0x00001000U )
+#define EMAC_RXINTSTATRAW_RX4THRESHPEND_SHIFT ( 0x0000000CU )
+
+#define EMAC_RXINTSTATRAW_RX3THRESHPEND ( 0x00000800U )
+#define EMAC_RXINTSTATRAW_RX3THRESHPEND_SHIFT ( 0x0000000BU )
+
+#define EMAC_RXINTSTATRAW_RX2THRESHPEND ( 0x00000400U )
+#define EMAC_RXINTSTATRAW_RX2THRESHPEND_SHIFT ( 0x0000000AU )
+
+#define EMAC_RXINTSTATRAW_RX1THRESHPEND ( 0x00000200U )
+#define EMAC_RXINTSTATRAW_RX1THRESHPEND_SHIFT ( 0x00000009U )
+
+#define EMAC_RXINTSTATRAW_RX0THRESHPEND ( 0x00000100U )
+#define EMAC_RXINTSTATRAW_RX0THRESHPEND_SHIFT ( 0x00000008U )
+
+#define EMAC_RXINTSTATRAW_RX7PEND ( 0x00000080U )
+#define EMAC_RXINTSTATRAW_RX7PEND_SHIFT ( 0x00000007U )
+
+#define EMAC_RXINTSTATRAW_RX6PEND ( 0x00000040U )
+#define EMAC_RXINTSTATRAW_RX6PEND_SHIFT ( 0x00000006U )
+
+#define EMAC_RXINTSTATRAW_RX5PEND ( 0x00000020U )
+#define EMAC_RXINTSTATRAW_RX5PEND_SHIFT ( 0x00000005U )
+
+#define EMAC_RXINTSTATRAW_RX4PEND ( 0x00000010U )
+#define EMAC_RXINTSTATRAW_RX4PEND_SHIFT ( 0x00000004U )
+
+#define EMAC_RXINTSTATRAW_RX3PEND ( 0x00000008U )
+#define EMAC_RXINTSTATRAW_RX3PEND_SHIFT ( 0x00000003U )
+
+#define EMAC_RXINTSTATRAW_RX2PEND ( 0x00000004U )
+#define EMAC_RXINTSTATRAW_RX2PEND_SHIFT ( 0x00000002U )
+
+#define EMAC_RXINTSTATRAW_RX1PEND ( 0x00000002U )
+#define EMAC_RXINTSTATRAW_RX1PEND_SHIFT ( 0x00000001U )
+
+#define EMAC_RXINTSTATRAW_RX0PEND ( 0x00000001U )
+#define EMAC_RXINTSTATRAW_RX0PEND_SHIFT ( 0x00000000U )
+
+/* RXINTSTATMASKED */
+
+#define EMAC_RXINTSTATMASKED_RX7THRESHPEND ( 0x00008000U )
+#define EMAC_RXINTSTATMASKED_RX7THRESHPEND_SHIFT ( 0x0000000FU )
+
+#define EMAC_RXINTSTATMASKED_RX6THRESHPEND ( 0x00004000U )
+#define EMAC_RXINTSTATMASKED_RX6THRESHPEND_SHIFT ( 0x0000000EU )
+
+#define EMAC_RXINTSTATMASKED_RX5THRESHPEND ( 0x00002000U )
+#define EMAC_RXINTSTATMASKED_RX5THRESHPEND_SHIFT ( 0x0000000DU )
+
+#define EMAC_RXINTSTATMASKED_RX4THRESHPEND ( 0x00001000U )
+#define EMAC_RXINTSTATMASKED_RX4THRESHPEND_SHIFT ( 0x0000000CU )
+
+#define EMAC_RXINTSTATMASKED_RX3THRESHPEND ( 0x00000800U )
+#define EMAC_RXINTSTATMASKED_RX3THRESHPEND_SHIFT ( 0x0000000BU )
+
+#define EMAC_RXINTSTATMASKED_RX2THRESHPEND ( 0x00000400U )
+#define EMAC_RXINTSTATMASKED_RX2THRESHPEND_SHIFT ( 0x0000000AU )
+
+#define EMAC_RXINTSTATMASKED_RX1THRESHPEND ( 0x00000200U )
+#define EMAC_RXINTSTATMASKED_RX1THRESHPEND_SHIFT ( 0x00000009U )
+
+#define EMAC_RXINTSTATMASKED_RX0THRESHPEND ( 0x00000100U )
+#define EMAC_RXINTSTATMASKED_RX0THRESHPEND_SHIFT ( 0x00000008U )
+
+#define EMAC_RXINTSTATMASKED_RX7PEND ( 0x00000080U )
+#define EMAC_RXINTSTATMASKED_RX7PEND_SHIFT ( 0x00000007U )
+
+#define EMAC_RXINTSTATMASKED_RX6PEND ( 0x00000040U )
+#define EMAC_RXINTSTATMASKED_RX6PEND_SHIFT ( 0x00000006U )
+
+#define EMAC_RXINTSTATMASKED_RX5PEND ( 0x00000020U )
+#define EMAC_RXINTSTATMASKED_RX5PEND_SHIFT ( 0x00000005U )
+
+#define EMAC_RXINTSTATMASKED_RX4PEND ( 0x00000010U )
+#define EMAC_RXINTSTATMASKED_RX4PEND_SHIFT ( 0x00000004U )
+
+#define EMAC_RXINTSTATMASKED_RX3PEND ( 0x00000008U )
+#define EMAC_RXINTSTATMASKED_RX3PEND_SHIFT ( 0x00000003U )
+
+#define EMAC_RXINTSTATMASKED_RX2PEND ( 0x00000004U )
+#define EMAC_RXINTSTATMASKED_RX2PEND_SHIFT ( 0x00000002U )
+
+#define EMAC_RXINTSTATMASKED_RX1PEND ( 0x00000002U )
+#define EMAC_RXINTSTATMASKED_RX1PEND_SHIFT ( 0x00000001U )
+
+#define EMAC_RXINTSTATMASKED_RX0PEND ( 0x00000001U )
+#define EMAC_RXINTSTATMASKED_RX0PEND_SHIFT ( 0x00000000U )
+
+/* RXINTMASKSET */
+
+#define EMAC_RXINTMASKSET_RX7THRESHMASK ( 0x00008000U )
+#define EMAC_RXINTMASKSET_RX7THRESHMASK_SHIFT ( 0x0000000FU )
+
+#define EMAC_RXINTMASKSET_RX6THRESHMASK ( 0x00004000U )
+#define EMAC_RXINTMASKSET_RX6THRESHMASK_SHIFT ( 0x0000000EU )
+
+#define EMAC_RXINTMASKSET_RX5THRESHMASK ( 0x00002000U )
+#define EMAC_RXINTMASKSET_RX5THRESHMASK_SHIFT ( 0x0000000DU )
+
+#define EMAC_RXINTMASKSET_RX4THRESHMASK ( 0x00001000U )
+#define EMAC_RXINTMASKSET_RX4THRESHMASK_SHIFT ( 0x0000000CU )
+
+#define EMAC_RXINTMASKSET_RX3THRESHMASK ( 0x00000800U )
+#define EMAC_RXINTMASKSET_RX3THRESHMASK_SHIFT ( 0x0000000BU )
+
+#define EMAC_RXINTMASKSET_RX2THRESHMASK ( 0x00000400U )
+#define EMAC_RXINTMASKSET_RX2THRESHMASK_SHIFT ( 0x0000000AU )
+
+#define EMAC_RXINTMASKSET_RX1THRESHMASK ( 0x00000200U )
+#define EMAC_RXINTMASKSET_RX1THRESHMASK_SHIFT ( 0x00000009U )
+
+#define EMAC_RXINTMASKSET_RX0THRESHMASK ( 0x00000100U )
+#define EMAC_RXINTMASKSET_RX0THRESHMASK_SHIFT ( 0x00000008U )
+
+#define EMAC_RXINTMASKSET_RX7MASK ( 0x00000080U )
+#define EMAC_RXINTMASKSET_RX7MASK_SHIFT ( 0x00000007U )
+
+#define EMAC_RXINTMASKSET_RX6MASK ( 0x00000040U )
+#define EMAC_RXINTMASKSET_RX6MASK_SHIFT ( 0x00000006U )
+
+#define EMAC_RXINTMASKSET_RX5MASK ( 0x00000020U )
+#define EMAC_RXINTMASKSET_RX5MASK_SHIFT ( 0x00000005U )
+
+#define EMAC_RXINTMASKSET_RX4MASK ( 0x00000010U )
+#define EMAC_RXINTMASKSET_RX4MASK_SHIFT ( 0x00000004U )
+
+#define EMAC_RXINTMASKSET_RX3MASK ( 0x00000008U )
+#define EMAC_RXINTMASKSET_RX3MASK_SHIFT ( 0x00000003U )
+
+#define EMAC_RXINTMASKSET_RX2MASK ( 0x00000004U )
+#define EMAC_RXINTMASKSET_RX2MASK_SHIFT ( 0x00000002U )
+
+#define EMAC_RXINTMASKSET_RX1MASK ( 0x00000002U )
+#define EMAC_RXINTMASKSET_RX1MASK_SHIFT ( 0x00000001U )
+
+#define EMAC_RXINTMASKSET_RX0MASK ( 0x00000001U )
+#define EMAC_RXINTMASKSET_RX0MASK_SHIFT ( 0x00000000U )
+
+/* RXINTMASKCLEAR */
+
+#define EMAC_RXINTMASKCLEAR_RX7THRESHMASK ( 0x00008000U )
+#define EMAC_RXINTMASKCLEAR_RX7THRESHMASK_SHIFT ( 0x0000000FU )
+
+#define EMAC_RXINTMASKCLEAR_RX6THRESHMASK ( 0x00004000U )
+#define EMAC_RXINTMASKCLEAR_RX6THRESHMASK_SHIFT ( 0x0000000EU )
+
+#define EMAC_RXINTMASKCLEAR_RX5THRESHMASK ( 0x00002000U )
+#define EMAC_RXINTMASKCLEAR_RX5THRESHMASK_SHIFT ( 0x0000000DU )
+
+#define EMAC_RXINTMASKCLEAR_RX4THRESHMASK ( 0x00001000U )
+#define EMAC_RXINTMASKCLEAR_RX4THRESHMASK_SHIFT ( 0x0000000CU )
+
+#define EMAC_RXINTMASKCLEAR_RX3THRESHMASK ( 0x00000800U )
+#define EMAC_RXINTMASKCLEAR_RX3THRESHMASK_SHIFT ( 0x0000000BU )
+
+#define EMAC_RXINTMASKCLEAR_RX2THRESHMASK ( 0x00000400U )
+#define EMAC_RXINTMASKCLEAR_RX2THRESHMASK_SHIFT ( 0x0000000AU )
+
+#define EMAC_RXINTMASKCLEAR_RX1THRESHMASK ( 0x00000200U )
+#define EMAC_RXINTMASKCLEAR_RX1THRESHMASK_SHIFT ( 0x00000009U )
+
+#define EMAC_RXINTMASKCLEAR_RX0THRESHMASK ( 0x00000100U )
+#define EMAC_RXINTMASKCLEAR_RX0THRESHMASK_SHIFT ( 0x00000008U )
+
+#define EMAC_RXINTMASKCLEAR_RX7MASK ( 0x00000080U )
+#define EMAC_RXINTMASKCLEAR_RX7MASK_SHIFT ( 0x00000007U )
+
+#define EMAC_RXINTMASKCLEAR_RX6MASK ( 0x00000040U )
+#define EMAC_RXINTMASKCLEAR_RX6MASK_SHIFT ( 0x00000006U )
+
+#define EMAC_RXINTMASKCLEAR_RX5MASK ( 0x00000020U )
+#define EMAC_RXINTMASKCLEAR_RX5MASK_SHIFT ( 0x00000005U )
+
+#define EMAC_RXINTMASKCLEAR_RX4MASK ( 0x00000010U )
+#define EMAC_RXINTMASKCLEAR_RX4MASK_SHIFT ( 0x00000004U )
+
+#define EMAC_RXINTMASKCLEAR_RX3MASK ( 0x00000008U )
+#define EMAC_RXINTMASKCLEAR_RX3MASK_SHIFT ( 0x00000003U )
+
+#define EMAC_RXINTMASKCLEAR_RX2MASK ( 0x00000004U )
+#define EMAC_RXINTMASKCLEAR_RX2MASK_SHIFT ( 0x00000002U )
+
+#define EMAC_RXINTMASKCLEAR_RX1MASK ( 0x00000002U )
+#define EMAC_RXINTMASKCLEAR_RX1MASK_SHIFT ( 0x00000001U )
+
+#define EMAC_RXINTMASKCLEAR_RX0MASK ( 0x00000001U )
+#define EMAC_RXINTMASKCLEAR_RX0MASK_SHIFT ( 0x00000000U )
+
+/* MACINTSTATRAW */
+
+#define EMAC_MACINTSTATRAW_HOSTPEND ( 0x00000002U )
+#define EMAC_MACINTSTATRAW_HOSTPEND_SHIFT ( 0x00000001U )
+
+#define EMAC_MACINTSTATRAW_STATPEND ( 0x00000001U )
+#define EMAC_MACINTSTATRAW_STATPEND_SHIFT ( 0x00000000U )
+
+/* MACINTSTATMASKED */
+
+#define EMAC_MACINTSTATMASKED_HOSTPEND ( 0x00000002U )
+#define EMAC_MACINTSTATMASKED_HOSTPEND_SHIFT ( 0x00000001U )
+
+#define EMAC_MACINTSTATMASKED_STATPEND ( 0x00000001U )
+#define EMAC_MACINTSTATMASKED_STATPEND_SHIFT ( 0x00000000U )
+
+/* MACINTMASKSET */
+
+#define EMAC_MACINTMASKSET_HOSTMASK ( 0x00000002U )
+#define EMAC_MACINTMASKSET_HOSTMASK_SHIFT ( 0x00000001U )
+
+#define EMAC_MACINTMASKSET_STATMASK ( 0x00000001U )
+#define EMAC_MACINTMASKSET_STATMASK_SHIFT ( 0x00000000U )
+
+/* MACINTMASKCLEAR */
+
+#define EMAC_MACINTMASKCLEAR_HOSTMASK ( 0x00000002U )
+#define EMAC_MACINTMASKCLEAR_HOSTMASK_SHIFT ( 0x00000001U )
+
+#define EMAC_MACINTMASKCLEAR_STATMASK ( 0x00000001U )
+#define EMAC_MACINTMASKCLEAR_STATMASK_SHIFT ( 0x00000000U )
+
+/* RXMBPENABLE */
+
+#define EMAC_RXMBPENABLE_RXPASSCRC ( 0x40000000U )
+#define EMAC_RXMBPENABLE_RXPASSCRC_SHIFT ( 0x0000001EU )
+#define EMAC_RXMBPENABLE_RXQOSEN ( 0x20000000U )
+#define EMAC_RXMBPENABLE_RXQOSEN_SHIFT ( 0x0000001DU )
+#define EMAC_RXMBPENABLE_RXNOCHAIN ( 0x10000000U )
+#define EMAC_RXMBPENABLE_RXNOCHAIN_SHIFT ( 0x0000001CU )
+#define EMAC_RXMBPENABLE_RXCMFEN ( 0x01000000U )
+#define EMAC_RXMBPENABLE_RXCMFEN_SHIFT ( 0x00000018U )
+#define EMAC_RXMBPENABLE_RXCSFEN ( 0x00800000U )
+#define EMAC_RXMBPENABLE_RXCSFEN_SHIFT ( 0x00000017U )
+#define EMAC_RXMBPENABLE_RXCEFEN ( 0x00400000U )
+#define EMAC_RXMBPENABLE_RXCEFEN_SHIFT ( 0x00000016U )
+#define EMAC_RXMBPENABLE_RXCAFEN ( 0x00200000U )
+#define EMAC_RXMBPENABLE_RXCAFEN_SHIFT ( 0x00000015U )
+/*----RXCAFEN Tokens----*/
+#define EMAC_RXMBPENABLE_RXPROMCH ( 0x00070000U )
+#define EMAC_RXMBPENABLE_RXPROMCH_SHIFT ( 0x00000010U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA0 ( 0x00000000U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA1 ( 0x00000001U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA2 ( 0x00000002U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA3 ( 0x00000003U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA4 ( 0x00000004U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA5 ( 0x00000005U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA6 ( 0x00000006U )
+#define EMAC_RXMBPENABLE_RXPROMCH_CHA7 ( 0x00000007U )
+
+#define EMAC_RXMBPENABLE_RXBROADEN ( 0x00002000U )
+#define EMAC_RXMBPENABLE_RXBROADEN_SHIFT ( 0x0000000DU )
+#define EMAC_RXMBPENABLE_RXBROADCH ( 0x00000700U )
+#define EMAC_RXMBPENABLE_RXBROADCH_SHIFT ( 0x00000008U )
+/*----RXBROADCH Tokens----*/
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA0 ( 0x00000000U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA1 ( 0x00000001U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA2 ( 0x00000002U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA3 ( 0x00000003U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA4 ( 0x00000004U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA5 ( 0x00000005U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA6 ( 0x00000006U )
+#define EMAC_RXMBPENABLE_RXBROADCH_CHA7 ( 0x00000007U )
+
+#define EMAC_RXMBPENABLE_RXMULTEN ( 0x00000020U )
+#define EMAC_RXMBPENABLE_RXMULTEN_SHIFT ( 0x00000005U )
+#define EMAC_RXMBPENABLE_RXMULTCH ( 0x00000007U )
+#define EMAC_RXMBPENABLE_RXMULTCH_SHIFT ( 0x00000000U )
+/*----RXMULTCH Tokens----*/
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA0 ( 0x00000000U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA1 ( 0x00000001U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA2 ( 0x00000002U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA3 ( 0x00000003U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA4 ( 0x00000004U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA5 ( 0x00000005U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA6 ( 0x00000006U )
+#define EMAC_RXMBPENABLE_RXMULTCH_CHA7 ( 0x00000007U )
+
+/* RXUNICASTSET */
+
+#define EMAC_RXUNICASTSET_RXCH7EN ( 0x00000080U )
+#define EMAC_RXUNICASTSET_RXCH7EN_SHIFT ( 0x00000007U )
+#define EMAC_RXUNICASTSET_RXCH6EN ( 0x00000040U )
+#define EMAC_RXUNICASTSET_RXCH6EN_SHIFT ( 0x00000006U )
+#define EMAC_RXUNICASTSET_RXCH5EN ( 0x00000020U )
+#define EMAC_RXUNICASTSET_RXCH5EN_SHIFT ( 0x00000005U )
+#define EMAC_RXUNICASTSET_RXCH4EN ( 0x00000010U )
+#define EMAC_RXUNICASTSET_RXCH4EN_SHIFT ( 0x00000004U )
+#define EMAC_RXUNICASTSET_RXCH3EN ( 0x00000008U )
+#define EMAC_RXUNICASTSET_RXCH3EN_SHIFT ( 0x00000003U )
+#define EMAC_RXUNICASTSET_RXCH2EN ( 0x00000004U )
+#define EMAC_RXUNICASTSET_RXCH2EN_SHIFT ( 0x00000002U )
+#define EMAC_RXUNICASTSET_RXCH1EN ( 0x00000002U )
+#define EMAC_RXUNICASTSET_RXCH1EN_SHIFT ( 0x00000001U )
+#define EMAC_RXUNICASTSET_RXCH0EN ( 0x00000001U )
+#define EMAC_RXUNICASTSET_RXCH0EN_SHIFT ( 0x00000000U )
+
+/* RXUNICASTCLEAR */
+
+#define EMAC_RXUNICASTCLEAR_RXCH7EN ( 0x00000080U )
+#define EMAC_RXUNICASTCLEAR_RXCH7EN_SHIFT ( 0x00000007U )
+#define EMAC_RXUNICASTCLEAR_RXCH6EN ( 0x00000040U )
+#define EMAC_RXUNICASTCLEAR_RXCH6EN_SHIFT ( 0x00000006U )
+#define EMAC_RXUNICASTCLEAR_RXCH5EN ( 0x00000020U )
+#define EMAC_RXUNICASTCLEAR_RXCH5EN_SHIFT ( 0x00000005U )
+#define EMAC_RXUNICASTCLEAR_RXCH4EN ( 0x00000010U )
+#define EMAC_RXUNICASTCLEAR_RXCH4EN_SHIFT ( 0x00000004U )
+#define EMAC_RXUNICASTCLEAR_RXCH3EN ( 0x00000008U )
+#define EMAC_RXUNICASTCLEAR_RXCH3EN_SHIFT ( 0x00000003U )
+#define EMAC_RXUNICASTCLEAR_RXCH2EN ( 0x00000004U )
+#define EMAC_RXUNICASTCLEAR_RXCH2EN_SHIFT ( 0x00000002U )
+#define EMAC_RXUNICASTCLEAR_RXCH1EN ( 0x00000002U )
+#define EMAC_RXUNICASTCLEAR_RXCH1EN_SHIFT ( 0x00000001U )
+#define EMAC_RXUNICASTCLEAR_RXCH0EN ( 0x00000001U )
+#define EMAC_RXUNICASTCLEAR_RXCH0EN_SHIFT ( 0x00000000U )
+
+/* RXMAXLEN */
+
+#define EMAC_RXMAXLEN_RXMAXLEN ( 0x0000FFFFU )
+#define EMAC_RXMAXLEN_RXMAXLEN_SHIFT ( 0x00000000U )
+
+/* RXBUFFEROFFSET */
+
+#define EMAC_RXBUFFEROFFSET_RXBUFFEROFFSET ( 0x0000FFFFU )
+#define EMAC_RXBUFFEROFFSET_RXBUFFEROFFSET_SHIFT ( 0x00000000U )
+
+/* RXFILTERLOWTHRESH */
+
+#define EMAC_RXFILTERLOWTHRESH_RXFILTERTHRESH ( 0x000000FFU )
+#define EMAC_RXFILTERLOWTHRESH_RXFILTERTHRESH_SHIFT ( 0x00000000U )
+
+/* RX0FLOWTHRESH */
+
+#define EMAC_RX0FLOWTHRESH_RX0FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX0FLOWTHRESH_RX0FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX1FLOWTHRESH */
+
+#define EMAC_RX1FLOWTHRESH_RX1FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX1FLOWTHRESH_RX1FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX2FLOWTHRESH */
+
+#define EMAC_RX2FLOWTHRESH_RX2FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX2FLOWTHRESH_RX2FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX3FLOWTHRESH */
+
+#define EMAC_RX3FLOWTHRESH_RX3FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX3FLOWTHRESH_RX3FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX4FLOWTHRESH */
+
+#define EMAC_RX4FLOWTHRESH_RX4FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX4FLOWTHRESH_RX4FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX5FLOWTHRESH */
+
+#define EMAC_RX5FLOWTHRESH_RX5FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX5FLOWTHRESH_RX5FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX6FLOWTHRESH */
+
+#define EMAC_RX6FLOWTHRESH_RX6FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX6FLOWTHRESH_RX6FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX7FLOWTHRESH */
+
+#define EMAC_RX7FLOWTHRESH_RX7FLOWTHRESH ( 0x000000FFU )
+#define EMAC_RX7FLOWTHRESH_RX7FLOWTHRESH_SHIFT ( 0x00000000U )
+
+/* RX0FREEBUFFER */
+
+#define EMAC_RX0FREEBUFFER_RX0FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX0FREEBUFFER_RX0FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX1FREEBUFFER */
+
+#define EMAC_RX1FREEBUFFER_RX1FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX1FREEBUFFER_RX1FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX2FREEBUFFER */
+
+#define EMAC_RX2FREEBUFFER_RX2FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX2FREEBUFFER_RX2FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX3FREEBUFFER */
+
+#define EMAC_RX3FREEBUFFER_RX3FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX3FREEBUFFER_RX3FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX4FREEBUFFER */
+
+#define EMAC_RX4FREEBUFFER_RX4FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX4FREEBUFFER_RX4FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX5FREEBUFFER */
+
+#define EMAC_RX5FREEBUFFER_RX5FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX5FREEBUFFER_RX5FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX6FREEBUFFER */
+
+#define EMAC_RX6FREEBUFFER_RX6FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX6FREEBUFFER_RX6FREEBUF_SHIFT ( 0x00000000U )
+
+/* RX7FREEBUFFER */
+
+#define EMAC_RX7FREEBUFFER_RX7FREEBUF ( 0x0000FFFFU )
+#define EMAC_RX7FREEBUFFER_RX7FREEBUF_SHIFT ( 0x00000000U )
+
+/* MACCONTROL */
+
+#define EMAC_MACCONTROL_RMIISPEED ( 0x00008000U )
+#define EMAC_MACCONTROL_RMIISPEED_SHIFT ( 0x0000000FU )
+#define EMAC_MACCONTROL_RXOFFLENBLOCK ( 0x00004000U )
+#define EMAC_MACCONTROL_RXOFFLENBLOCK_SHIFT ( 0x0000000EU )
+#define EMAC_MACCONTROL_RXOWNERSHIP ( 0x00002000U )
+#define EMAC_MACCONTROL_RXOWNERSHIP_SHIFT ( 0x0000000DU )
+#define EMAC_MACCONTROL_CMDIDLE ( 0x00000800U )
+#define EMAC_MACCONTROL_CMDIDLE_SHIFT ( 0x0000000BU )
+#define EMAC_MACCONTROL_TXSHORTGAPEN ( 0x00000400U )
+#define EMAC_MACCONTROL_TXSHORTGAPEN_SHIFT ( 0x0000000AU )
+#define EMAC_MACCONTROL_TXPTYPE ( 0x00000200U )
+#define EMAC_MACCONTROL_TXPTYPE_SHIFT ( 0x00000009U )
+#define EMAC_MACCONTROL_TXPACE ( 0x00000040U )
+#define EMAC_MACCONTROL_TXPACE_SHIFT ( 0x00000006U )
+#define EMAC_MACCONTROL_GMIIEN ( 0x00000020U )
+#define EMAC_MACCONTROL_GMIIEN_SHIFT ( 0x00000005U )
+#define EMAC_MACCONTROL_TXFLOWEN ( 0x00000010U )
+#define EMAC_MACCONTROL_TXFLOWEN_SHIFT ( 0x00000004U )
+#define EMAC_MACCONTROL_RXBUFFERFLOWEN ( 0x00000008U )
+#define EMAC_MACCONTROL_RXBUFFERFLOWEN_SHIFT ( 0x00000003U )
+#define EMAC_MACCONTROL_LOOPBACK ( 0x00000002U )
+#define EMAC_MACCONTROL_LOOPBACK_SHIFT ( 0x00000001U )
+#define EMAC_MACCONTROL_FULLDUPLEX ( 0x00000001U )
+#define EMAC_MACCONTROL_FULLDUPLEX_SHIFT ( 0x00000000U )
+
+/* MACSTATUS */
+
+#define EMAC_MACSTATUS_IDLE ( 0x80000000U )
+#define EMAC_MACSTATUS_IDLE_SHIFT ( 0x0000001FU )
+#define EMAC_MACSTATUS_TXERRCODE ( 0x00F00000U )
+#define EMAC_MACSTATUS_TXERRCODE_SHIFT ( 0x00000014U )
+/*----TXERRCODE Tokens----*/
+#define EMAC_MACSTATUS_TXERRCODE_NOERROR ( 0x00000000U )
+#define EMAC_MACSTATUS_TXERRCODE_SOPERROR ( 0x00000001U )
+#define EMAC_MACSTATUS_TXERRCODE_OWNERSHIP ( 0x00000002U )
+#define EMAC_MACSTATUS_TXERRCODE_NOEOP ( 0x00000003U )
+#define EMAC_MACSTATUS_TXERRCODE_NULLPTR ( 0x00000004U )
+#define EMAC_MACSTATUS_TXERRCODE_NULLEN ( 0x00000005U )
+#define EMAC_MACSTATUS_TXERRCODE_LENERROR ( 0x00000006U )
+
+#define EMAC_MACSTATUS_TXERRCH ( 0x00070000U )
+#define EMAC_MACSTATUS_TXERRCH_SHIFT ( 0x00000010U )
+/*----TXERRCH Tokens----*/
+#define EMAC_MACSTATUS_TXERRCH_CHA0 ( 0x00000000U )
+#define EMAC_MACSTATUS_TXERRCH_CHA1 ( 0x00000001U )
+#define EMAC_MACSTATUS_TXERRCH_CHA2 ( 0x00000002U )
+#define EMAC_MACSTATUS_TXERRCH_CHA3 ( 0x00000003U )
+#define EMAC_MACSTATUS_TXERRCH_CHA4 ( 0x00000004U )
+#define EMAC_MACSTATUS_TXERRCH_CHA5 ( 0x00000005U )
+#define EMAC_MACSTATUS_TXERRCH_CHA6 ( 0x00000006U )
+#define EMAC_MACSTATUS_TXERRCH_CHA7 ( 0x00000007U )
+
+#define EMAC_MACSTATUS_RXERRCODE ( 0x0000F000U )
+#define EMAC_MACSTATUS_RXERRCODE_SHIFT ( 0x0000000CU )
+/*----RXERRCODE Tokens----*/
+#define EMAC_MACSTATUS_RXERRCODE_NOERROR ( 0x00000000U )
+#define EMAC_MACSTATUS_RXERRCODE_OWNERSHIP ( 0x00000002U )
+#define EMAC_MACSTATUS_RXERRCODE_NULLPTR ( 0x00000004U )
+
+#define EMAC_MACSTATUS_RXERRCH ( 0x00000700U )
+#define EMAC_MACSTATUS_RXERRCH_SHIFT ( 0x00000008U )
+/*----RXERRCH Tokens----*/
+#define EMAC_MACSTATUS_RXERRCH_CHA0 ( 0x00000000U )
+#define EMAC_MACSTATUS_RXERRCH_CHA1 ( 0x00000001U )
+#define EMAC_MACSTATUS_RXERRCH_CHA2 ( 0x00000002U )
+#define EMAC_MACSTATUS_RXERRCH_CHA3 ( 0x00000003U )
+#define EMAC_MACSTATUS_RXERRCH_CHA4 ( 0x00000004U )
+#define EMAC_MACSTATUS_RXERRCH_CHA5 ( 0x00000005U )
+#define EMAC_MACSTATUS_RXERRCH_CHA6 ( 0x00000006U )
+#define EMAC_MACSTATUS_RXERRCH_CHA7 ( 0x00000007U )
+
+#define EMAC_MACSTATUS_RXQOSACT ( 0x00000004U )
+#define EMAC_MACSTATUS_RXQOSACT_SHIFT ( 0x00000002U )
+#define EMAC_MACSTATUS_RXFLOWACT ( 0x00000002U )
+#define EMAC_MACSTATUS_RXFLOWACT_SHIFT ( 0x00000001U )
+#define EMAC_MACSTATUS_TXFLOWACT ( 0x00000001U )
+#define EMAC_MACSTATUS_TXFLOWACT_SHIFT ( 0x00000000U )
+
+/* EMCONTROL */
+
+#define EMAC_EMCONTROL_SOFT ( 0x00000002U )
+#define EMAC_EMCONTROL_SOFT_SHIFT ( 0x00000001U )
+
+#define EMAC_EMCONTROL_FREE ( 0x00000001U )
+#define EMAC_EMCONTROL_FREE_SHIFT ( 0x00000000U )
+
+/* FIFOCONTROL */
+
+#define EMAC_FIFOCONTROL_TXCELLTHRESH ( 0x00000003U )
+#define EMAC_FIFOCONTROL_TXCELLTHRESH_SHIFT ( 0x00000000U )
+
+/* MACCONFIG */
+
+#define EMAC_MACCONFIG_TXCELLDEPTH ( 0xFF000000U )
+#define EMAC_MACCONFIG_TXCELLDEPTH_SHIFT ( 0x00000018U )
+
+#define EMAC_MACCONFIG_RXCELLDEPTH ( 0x00FF0000U )
+#define EMAC_MACCONFIG_RXCELLDEPTH_SHIFT ( 0x00000010U )
+
+#define EMAC_MACCONFIG_ADDRESSTYPE ( 0x0000FF00U )
+#define EMAC_MACCONFIG_ADDRESSTYPE_SHIFT ( 0x00000008U )
+
+#define EMAC_MACCONFIG_MACCFIG ( 0x000000FFU )
+#define EMAC_MACCONFIG_MACCFIG_SHIFT ( 0x00000000U )
+
+/* SOFTRESET */
+
+#define EMAC_SOFTRESET_SOFTRESET ( 0x00000001U )
+#define EMAC_SOFTRESET_SOFTRESET_SHIFT ( 0x00000000U )
+
+/* MACSRCADDRLO */
+
+#define EMAC_MACSRCADDRLO_MACSRCADDR0 ( 0x0000FF00U )
+#define EMAC_MACSRCADDRLO_MACSRCADDR0_SHIFT ( 0x00000008U )
+#define EMAC_MACSRCADDRLO_MACSRCADDR1 ( 0x000000FFU )
+#define EMAC_MACSRCADDRLO_MACSRCADDR1_SHIFT ( 0x00000000U )
+
+/* MACSRCADDRHI */
+
+#define EMAC_MACSRCADDRHI_MACSRCADDR2 ( 0xFF000000U )
+#define EMAC_MACSRCADDRHI_MACSRCADDR2_SHIFT ( 0x00000018U )
+
+#define EMAC_MACSRCADDRHI_MACSRCADDR3 ( 0x00FF0000U )
+#define EMAC_MACSRCADDRHI_MACSRCADDR3_SHIFT ( 0x00000010U )
+
+#define EMAC_MACSRCADDRHI_MACSRCADDR4 ( 0x0000FF00U )
+#define EMAC_MACSRCADDRHI_MACSRCADDR4_SHIFT ( 0x00000008U )
+
+#define EMAC_MACSRCADDRHI_MACSRCADDR5 ( 0x000000FFU )
+#define EMAC_MACSRCADDRHI_MACSRCADDR5_SHIFT ( 0x00000000U )
+
+/* MACHASH1 */
+
+#define EMAC_MACHASH1_MACHASH1 ( 0xFFFFFFFFU )
+#define EMAC_MACHASH1_MACHASH1_SHIFT ( 0x00000000U )
+
+/* MACHASH2 */
+
+#define EMAC_MACHASH2_MACHASH2 ( 0xFFFFFFFFU )
+#define EMAC_MACHASH2_MACHASH2_SHIFT ( 0x00000000U )
+
+/* BOFFTEST */
+
+#define EMAC_BOFFTEST_RNDNUM ( 0x03FF0000U )
+#define EMAC_BOFFTEST_RNDNUM_SHIFT ( 0x00000010U )
+
+#define EMAC_BOFFTEST_COLLCOUNT ( 0x0000F000U )
+#define EMAC_BOFFTEST_COLLCOUNT_SHIFT ( 0x0000000CU )
+
+#define EMAC_BOFFTEST_TXBACKOFF ( 0x000003FFU )
+#define EMAC_BOFFTEST_TXBACKOFF_SHIFT ( 0x00000000U )
+
+/* TPACETEST */
+
+#define EMAC_TPACETEST_PACEVAL ( 0x0000001FU )
+#define EMAC_TPACETEST_PACEVAL_SHIFT ( 0x00000000U )
+
+/* RXPAUSE */
+
+#define EMAC_RXPAUSE_PAUSETIMER ( 0x0000FFFFU )
+#define EMAC_RXPAUSE_PAUSETIMER_SHIFT ( 0x00000000U )
+
+/* TXPAUSE */
+
+#define EMAC_TXPAUSE_PAUSETIMER ( 0x0000FFFFU )
+#define EMAC_TXPAUSE_PAUSETIMER_SHIFT ( 0x00000000U )
+
+/* RXGOODFRAMES */
+
+#define EMAC_RXGOODFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXGOODFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* RXBCASTFRAMES */
+
+#define EMAC_RXBCASTFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXBCASTFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* RXMCASTFRAMES */
+
+#define EMAC_RXMCASTFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXMCASTFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* RXPAUSEFRAMES */
+
+#define EMAC_RXPAUSEFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXPAUSEFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* RXCRCERRORS */
+
+#define EMAC_RXCRCERRORS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXCRCERRORS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXALIGNCODEERRORS */
+
+#define EMAC_RXALIGNCODEERRORS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXALIGNCODEERRORS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXOVERSIZED */
+
+#define EMAC_RXOVERSIZED_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXOVERSIZED_COUNT_SHIFT ( 0x00000000U )
+
+/* RXJABBER */
+
+#define EMAC_RXJABBER_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXJABBER_COUNT_SHIFT ( 0x00000000U )
+
+/* RXUNDERSIZED */
+
+#define EMAC_RXUNDERSIZED_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXUNDERSIZED_COUNT_SHIFT ( 0x00000000U )
+
+/* RXFRAGMENTS */
+
+#define EMAC_RXFRAGMENTS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXFRAGMENTS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXFILTERED */
+
+#define EMAC_RXFILTERED_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXFILTERED_COUNT_SHIFT ( 0x00000000U )
+
+/* RXQOSFILTERED */
+
+#define EMAC_RXQOSFILTERED_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXQOSFILTERED_COUNT_SHIFT ( 0x00000000U )
+
+/* RXOCTETS */
+
+#define EMAC_RXOCTETS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXOCTETS_COUNT_SHIFT ( 0x00000000U )
+
+/* TXGOODFRAMES */
+
+#define EMAC_TXGOODFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXGOODFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* TXBCASTFRAMES */
+
+#define EMAC_TXBCASTFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXBCASTFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* TXMCASTFRAMES */
+
+#define EMAC_TXMCASTFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXMCASTFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* TXPAUSEFRAMES */
+
+#define EMAC_TXPAUSEFRAMES_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXPAUSEFRAMES_COUNT_SHIFT ( 0x00000000U )
+
+/* TXDEFERRED */
+
+#define EMAC_TXDEFERRED_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXDEFERRED_COUNT_SHIFT ( 0x00000000U )
+
+/* TXCOLLISION */
+
+#define EMAC_TXCOLLISION_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXCOLLISION_COUNT_SHIFT ( 0x00000000U )
+
+/* TXSINGLECOLL */
+
+#define EMAC_TXSINGLECOLL_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXSINGLECOLL_COUNT_SHIFT ( 0x00000000U )
+
+/* TXMULTICOLL */
+
+#define EMAC_TXMULTICOLL_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXMULTICOLL_COUNT_SHIFT ( 0x00000000U )
+
+/* TXEXCESSIVECOLL */
+
+#define EMAC_TXEXCESSIVECOLL_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXEXCESSIVECOLL_COUNT_SHIFT ( 0x00000000U )
+
+/* TXLATECOLL */
+
+#define EMAC_TXLATECOLL_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXLATECOLL_COUNT_SHIFT ( 0x00000000U )
+
+/* TXUNDERRUN */
+
+#define EMAC_TXUNDERRUN_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXUNDERRUN_COUNT_SHIFT ( 0x00000000U )
+
+/* TXCARRIERSENSE */
+
+#define EMAC_TXCARRIERSENSE_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXCARRIERSENSE_COUNT_SHIFT ( 0x00000000U )
+
+/* TXOCTETS */
+
+#define EMAC_TXOCTETS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_TXOCTETS_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME64 */
+
+#define EMAC_FRAME64_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME64_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME65T127 */
+
+#define EMAC_FRAME65T127_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME65T127_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME128T255 */
+
+#define EMAC_FRAME128T255_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME128T255_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME256T511 */
+
+#define EMAC_FRAME256T511_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME256T511_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME512T1023 */
+
+#define EMAC_FRAME512T1023_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME512T1023_COUNT_SHIFT ( 0x00000000U )
+
+/* FRAME1024TUP */
+
+#define EMAC_FRAME1024TUP_COUNT ( 0xFFFFFFFFU )
+#define EMAC_FRAME1024TUP_COUNT_SHIFT ( 0x00000000U )
+
+/* NETOCTETS */
+
+#define EMAC_NETOCTETS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_NETOCTETS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXSOFOVERRUNS */
+
+#define EMAC_RXSOFOVERRUNS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXSOFOVERRUNS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXMOFOVERRUNS */
+
+#define EMAC_RXMOFOVERRUNS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXMOFOVERRUNS_COUNT_SHIFT ( 0x00000000U )
+
+/* RXDMAOVERRUNS */
+
+#define EMAC_RXDMAOVERRUNS_COUNT ( 0xFFFFFFFFU )
+#define EMAC_RXDMAOVERRUNS_COUNT_SHIFT ( 0x00000000U )
+
+/* MACADDRLO */
+
+#define EMAC_MACADDRLO_VALID ( 0x00100000U )
+#define EMAC_MACADDRLO_VALID_SHIFT ( 0x00000014U )
+#define EMAC_MACADDRLO_MATCHFILT ( 0x00080000U )
+#define EMAC_MACADDRLO_MATCHFILT_SHIFT ( 0x00000013U )
+#define EMAC_MACADDRLO_CHANNEL ( 0x00070000U )
+#define EMAC_MACADDRLO_CHANNEL_SHIFT ( 0x00000010U )
+#define EMAC_MACADDRLO_MACADDR0 ( 0x0000FF00U )
+#define EMAC_MACADDRLO_MACADDR0_SHIFT ( 0x00000008U )
+#define EMAC_MACADDRLO_MACADDR1 ( 0x000000FFU )
+#define EMAC_MACADDRLO_MACADDR1_SHIFT ( 0x00000000U )
+
+/* MACADDRHI */
+
+#define EMAC_MACADDRHI_MACADDR2 ( 0xFF000000U )
+#define EMAC_MACADDRHI_MACADDR2_SHIFT ( 0x00000018U )
+
+#define EMAC_MACADDRHI_MACADDR3 ( 0x00FF0000U )
+#define EMAC_MACADDRHI_MACADDR3_SHIFT ( 0x00000010U )
+
+#define EMAC_MACADDRHI_MACADDR4 ( 0x0000FF00U )
+#define EMAC_MACADDRHI_MACADDR4_SHIFT ( 0x00000008U )
+
+#define EMAC_MACADDRHI_MACADDR5 ( 0x000000FFU )
+#define EMAC_MACADDRHI_MACADDR5_SHIFT ( 0x00000000U )
+
+/* MACINDEX */
+
+#define EMAC_MACINDEX_MACINDEX ( 0x0000001FU )
+#define EMAC_MACINDEX_MACINDEX_SHIFT ( 0x00000000U )
+
+/* TX0HDP */
+
+#define EMAC_TX0HDP_TX0HDP ( 0xFFFFFFFFU )
+#define EMAC_TX0HDP_TX0HDP_SHIFT ( 0x00000000U )
+
+/* TX1HDP */
+
+#define EMAC_TX1HDP_TX1HDP ( 0xFFFFFFFFU )
+#define EMAC_TX1HDP_TX1HDP_SHIFT ( 0x00000000U )
+
+/* TX2HDP */
+
+#define EMAC_TX2HDP_TX2HDP ( 0xFFFFFFFFU )
+#define EMAC_TX2HDP_TX2HDP_SHIFT ( 0x00000000U )
+
+/* TX3HDP */
+
+#define EMAC_TX3HDP_TX3HDP ( 0xFFFFFFFFU )
+#define EMAC_TX3HDP_TX3HDP_SHIFT ( 0x00000000U )
+
+/* TX4HDP */
+
+#define EMAC_TX4HDP_TX4HDP ( 0xFFFFFFFFU )
+#define EMAC_TX4HDP_TX4HDP_SHIFT ( 0x00000000U )
+
+/* TX5HDP */
+
+#define EMAC_TX5HDP_TX5HDP ( 0xFFFFFFFFU )
+#define EMAC_TX5HDP_TX5HDP_SHIFT ( 0x00000000U )
+
+/* TX6HDP */
+
+#define EMAC_TX6HDP_TX6HDP ( 0xFFFFFFFFU )
+#define EMAC_TX6HDP_TX6HDP_SHIFT ( 0x00000000U )
+
+/* TX7HDP */
+
+#define EMAC_TX7HDP_TX7HDP ( 0xFFFFFFFFU )
+#define EMAC_TX7HDP_TX7HDP_SHIFT ( 0x00000000U )
+
+/* RX0HDP */
+
+#define EMAC_RX0HDP_RX0HDP ( 0xFFFFFFFFU )
+#define EMAC_RX0HDP_RX0HDP_SHIFT ( 0x00000000U )
+
+/* RX1HDP */
+
+#define EMAC_RX1HDP_RX1HDP ( 0xFFFFFFFFU )
+#define EMAC_RX1HDP_RX1HDP_SHIFT ( 0x00000000U )
+
+/* RX2HDP */
+
+#define EMAC_RX2HDP_RX2HDP ( 0xFFFFFFFFU )
+#define EMAC_RX2HDP_RX2HDP_SHIFT ( 0x00000000U )
+
+/* RX3HDP */
+
+#define EMAC_RX3HDP_RX3HDP ( 0xFFFFFFFFU )
+#define EMAC_RX3HDP_RX3HDP_SHIFT ( 0x00000000U )
+
+/* RX4HDP */
+
+#define EMAC_RX4HDP_RX4HDP ( 0xFFFFFFFFU )
+#define EMAC_RX4HDP_RX4HDP_SHIFT ( 0x00000000U )
+
+/* RX5HDP */
+
+#define EMAC_RX5HDP_RX5HDP ( 0xFFFFFFFFU )
+#define EMAC_RX5HDP_RX5HDP_SHIFT ( 0x00000000U )
+
+/* RX6HDP */
+
+#define EMAC_RX6HDP_RX6HDP ( 0xFFFFFFFFU )
+#define EMAC_RX6HDP_RX6HDP_SHIFT ( 0x00000000U )
+
+/* RX7HDP */
+
+#define EMAC_RX7HDP_RX7HDP ( 0xFFFFFFFFU )
+#define EMAC_RX7HDP_RX7HDP_SHIFT ( 0x00000000U )
+
+/* TX0CP */
+
+#define EMAC_TX0CP_TX0CP ( 0xFFFFFFFFU )
+#define EMAC_TX0CP_TX0CP_SHIFT ( 0x00000000U )
+
+/* TX1CP */
+
+#define EMAC_TX1CP_TX1CP ( 0xFFFFFFFFU )
+#define EMAC_TX1CP_TX1CP_SHIFT ( 0x00000000U )
+
+/* TX2CP */
+
+#define EMAC_TX2CP_TX2CP ( 0xFFFFFFFFU )
+#define EMAC_TX2CP_TX2CP_SHIFT ( 0x00000000U )
+
+/* TX3CP */
+
+#define EMAC_TX3CP_TX3CP ( 0xFFFFFFFFU )
+#define EMAC_TX3CP_TX3CP_SHIFT ( 0x00000000U )
+
+/* TX4CP */
+
+#define EMAC_TX4CP_TX4CP ( 0xFFFFFFFFU )
+#define EMAC_TX4CP_TX4CP_SHIFT ( 0x00000000U )
+
+/* TX5CP */
+
+#define EMAC_TX5CP_TX5CP ( 0xFFFFFFFFU )
+#define EMAC_TX5CP_TX5CP_SHIFT ( 0x00000000U )
+
+/* TX6CP */
+
+#define EMAC_TX6CP_TX6CP ( 0xFFFFFFFFU )
+#define EMAC_TX6CP_TX6CP_SHIFT ( 0x00000000U )
+
+/* TX7CP */
+
+#define EMAC_TX7CP_TX7CP ( 0xFFFFFFFFU )
+#define EMAC_TX7CP_TX7CP_SHIFT ( 0x00000000U )
+
+/* RX0CP */
+
+#define EMAC_RX0CP_RX0CP ( 0xFFFFFFFFU )
+#define EMAC_RX0CP_RX0CP_SHIFT ( 0x00000000U )
+
+/* RX1CP */
+
+#define EMAC_RX1CP_RX1CP ( 0xFFFFFFFFU )
+#define EMAC_RX1CP_RX1CP_SHIFT ( 0x00000000U )
+
+/* RX2CP */
+
+#define EMAC_RX2CP_RX2CP ( 0xFFFFFFFFU )
+#define EMAC_RX2CP_RX2CP_SHIFT ( 0x00000000U )
+
+/* RX3CP */
+
+#define EMAC_RX3CP_RX3CP ( 0xFFFFFFFFU )
+#define EMAC_RX3CP_RX3CP_SHIFT ( 0x00000000U )
+
+/* RX4CP */
+
+#define EMAC_RX4CP_RX4CP ( 0xFFFFFFFFU )
+#define EMAC_RX4CP_RX4CP_SHIFT ( 0x00000000U )
+
+/* RX5CP */
+
+#define EMAC_RX5CP_RX5CP ( 0xFFFFFFFFU )
+#define EMAC_RX5CP_RX5CP_SHIFT ( 0x00000000U )
+
+/* RX6CP */
+
+#define EMAC_RX6CP_RX6CP ( 0xFFFFFFFFU )
+#define EMAC_RX6CP_RX6CP_SHIFT ( 0x00000000U )
+
+/* RX7CP */
+
+#define EMAC_RX7CP_RX7CP ( 0xFFFFFFFFU )
+#define EMAC_RX7CP_RX7CP_SHIFT ( 0x00000000U )
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#endif /* ifndef _HW_EMAC_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac_ctrl.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac_ctrl.h
new file mode 100644
index 000000000..3733e60c8
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_emac_ctrl.h
@@ -0,0 +1,92 @@
+/*
+ * hw_emac1.h
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _HW_EMAC_CTRL_H_
+#define _HW_EMAC_CTRL_H_
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#define EMAC_CTRL_REVID ( 0x0U )
+#define EMAC_CTRL_SOFTRESET ( 0x4U )
+#define EMAC_CTRL_INTCONTROL ( 0xCU )
+#define EMAC_CTRL_C0RXTHRESHEN ( 0x10U )
+#define EMAC_CTRL_CnRXEN( n ) ( ( uint32 ) 0x14u + ( uint32 ) ( ( uint32 ) ( n ) << 4 ) )
+#define EMAC_CTRL_CnTXEN( n ) ( ( uint32 ) 0x18u + ( uint32 ) ( ( uint32 ) ( n ) << 4 ) )
+#define EMAC_CTRL_CnMISCEN( n ) \
+ ( ( uint32 ) 0x1Cu + ( uint32 ) ( ( uint32 ) ( n ) << 4 ) )
+#define EMAC_CTRL_CnRXTHRESHEN( n ) \
+ ( ( uint32 ) 0x20u + ( uint32 ) ( ( uint32 ) ( n ) << 4 ) )
+#define EMAC_CTRL_C0RXTHRESHSTAT ( 0x40U )
+#define EMAC_CTRL_C0RXSTAT ( 0x44U )
+#define EMAC_CTRL_C0TXSTAT ( 0x48U )
+#define EMAC_CTRL_C0MISCSTAT ( 0x4CU )
+#define EMAC_CTRL_C1RXTHRESHSTAT ( 0x50U )
+#define EMAC_CTRL_C1RXSTAT ( 0x54U )
+#define EMAC_CTRL_C1TXSTAT ( 0x58U )
+#define EMAC_CTRL_C1MISCSTAT ( 0x5CU )
+#define EMAC_CTRL_C2RXTHRESHSTAT ( 0x60U )
+#define EMAC_CTRL_C2RXSTAT ( 0x64U )
+#define EMAC_CTRL_C2TXSTAT ( 0x68U )
+#define EMAC_CTRL_C2MISCSTAT ( 0x6CU )
+#define EMAC_CTRL_C0RXIMAX ( 0x70U )
+#define EMAC_CTRL_C0TXIMAX ( 0x74U )
+#define EMAC_CTRL_C1RXIMAX ( 0x78U )
+#define EMAC_CTRL_C1TXIMAX ( 0x7CU )
+#define EMAC_CTRL_C2RXIMAX ( 0x80U )
+#define EMAC_CTRL_C2TXIMAX ( 0x84U )
+
+/**************************************************************************\
+* Field Definition Macros
+\**************************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#endif /* ifndef _HW_EMAC_CTRL_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_mdio.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_mdio.h
new file mode 100644
index 000000000..68694680a
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_mdio.h
@@ -0,0 +1,235 @@
+/*
+ * hw_mdio.h
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _HW_MDIO_H_
+#define _HW_MDIO_H_
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#define MDIO_BASE ( 0xFCF78900U )
+
+#define MDIO_REVID ( 0x0U )
+#define MDIO_CONTROL ( 0x4U )
+#define MDIO_ALIVE ( 0x8U )
+#define MDIO_LINK ( 0xCU )
+#define MDIO_LINKINTRAW ( 0x10U )
+#define MDIO_LINKINTMASKED ( 0x14U )
+#define MDIO_USERINTRAW ( 0x20U )
+#define MDIO_USERINTMASKED ( 0x24U )
+#define MDIO_USERINTMASKSET ( 0x28U )
+#define MDIO_USERINTMASKCLEAR ( 0x2CU )
+#define MDIO_USERACCESS0 ( 0x80U )
+#define MDIO_USERPHYSEL0 ( 0x84U )
+#define MDIO_USERACCESS1 ( 0x88U )
+#define MDIO_USERPHYSEL1 ( 0x8CU )
+
+/**************************************************************************\
+* Field Definition Macros
+\**************************************************************************/
+
+/* REVID */
+
+#define MDIO_REVID_REV ( 0xFFFFFFFFU )
+#define MDIO_REVID_REV_SHIFT ( 0x00000000U )
+
+/* CONTROL */
+
+#define MDIO_CONTROL_IDLE ( 0x80000000U )
+#define MDIO_CONTROL_IDLE_SHIFT ( 0x0000001FU )
+/*----IDLE Tokens----*/
+#define MDIO_CONTROL_IDLE_NO ( 0x00000000U )
+#define MDIO_CONTROL_IDLE_YES ( 0x00000001U )
+
+#define MDIO_CONTROL_ENABLE ( 0x40000000U )
+#define MDIO_CONTROL_ENABLE_SHIFT ( 0x0000001EU )
+
+#define MDIO_CONTROL_HIGHEST_USER_CHANNEL ( 0x1F000000U )
+#define MDIO_CONTROL_HIGHEST_USER_CHANNEL_SHIFT ( 0x00000018U )
+
+#define MDIO_CONTROL_PREAMBLE ( 0x00100000U )
+#define MDIO_CONTROL_PREAMBLE_SHIFT ( 0x00000014U )
+/*----PREAMBLE Tokens----*/
+
+#define MDIO_CONTROL_FAULT ( 0x00080000U )
+#define MDIO_CONTROL_FAULT_SHIFT ( 0x00000013U )
+
+#define MDIO_CONTROL_FAULTENB ( 0x00040000U )
+#define MDIO_CONTROL_FAULTENB_SHIFT ( 0x00000012U )
+/*----FAULTENB Tokens----*/
+
+#define MDIO_CONTROL_CLKDIV ( 0x0000FFFFU )
+#define MDIO_CONTROL_CLKDIV_SHIFT ( 0x00000000U )
+/*----CLKDIV Tokens----*/
+
+/* ALIVE */
+
+#define MDIO_ALIVE_REGVAL ( 0xFFFFFFFFU )
+#define MDIO_ALIVE_REGVAL_SHIFT ( 0x00000000U )
+
+/* LINK */
+
+#define MDIO_LINK_REGVAL ( 0xFFFFFFFFU )
+#define MDIO_LINK_REGVAL_SHIFT ( 0x00000000U )
+
+/* LINKINTRAW */
+
+#define MDIO_LINKINTRAW_USERPHY1 ( 0x00000002U )
+#define MDIO_LINKINTRAW_USERPHY1_SHIFT ( 0x00000001U )
+
+#define MDIO_LINKINTRAW_USERPHY0 ( 0x00000001U )
+#define MDIO_LINKINTRAW_USERPHY0_SHIFT ( 0x00000000U )
+
+/* LINKINTMASKED */
+
+#define MDIO_LINKINTMASKED_USERPHY1 ( 0x00000002U )
+#define MDIO_LINKINTMASKED_USERPHY1_SHIFT ( 0x00000001U )
+
+#define MDIO_LINKINTMASKED_USERPHY0 ( 0x00000001U )
+#define MDIO_LINKINTMASKED_USERPHY0_SHIFT ( 0x00000000U )
+
+/* USERINTRAW */
+
+#define MDIO_USERINTRAW_USERACCESS1 ( 0x00000002U )
+#define MDIO_USERINTRAW_USERACCESS1_SHIFT ( 0x00000001U )
+
+#define MDIO_USERINTRAW_USERACCESS0 ( 0x00000001U )
+#define MDIO_USERINTRAW_USERACCESS0_SHIFT ( 0x00000000U )
+
+/* USERINTMASKED */
+
+#define MDIO_USERINTMASKED_USERACCESS1 ( 0x00000002U )
+#define MDIO_USERINTMASKED_USERACCESS1_SHIFT ( 0x00000001U )
+
+#define MDIO_USERINTMASKED_USERACCESS0 ( 0x00000001U )
+#define MDIO_USERINTMASKED_USERACCESS0_SHIFT ( 0x00000000U )
+
+/* USERINTMASKSET */
+
+#define MDIO_USERINTMASKSET_USERACCESS1 ( 0x00000002U )
+#define MDIO_USERINTMASKSET_USERACCESS1_SHIFT ( 0x00000001U )
+
+#define MDIO_USERINTMASKSET_USERACCESS0 ( 0x00000001U )
+#define MDIO_USERINTMASKSET_USERACCESS0_SHIFT ( 0x00000000U )
+
+/* USERINTMASKCLEAR */
+
+#define MDIO_USERINTMASKCLEAR_USERACCESS1 ( 0x00000002U )
+#define MDIO_USERINTMASKCLEAR_USERACCESS1_SHIFT ( 0x00000001U )
+
+#define MDIO_USERINTMASKCLEAR_USERACCESS0 ( 0x00000001U )
+#define MDIO_USERINTMASKCLEAR_USERACCESS0_SHIFT ( 0x00000000U )
+
+/* USERACCESS0 */
+
+#define MDIO_USERACCESS0_GO ( 0x80000000U )
+#define MDIO_USERACCESS0_GO_SHIFT ( 0x0000001FU )
+
+#define MDIO_USERACCESS0_WRITE ( 0x40000000U )
+#define MDIO_USERACCESS0_READ ( 0x00000000U )
+#define MDIO_USERACCESS0_WRITE_SHIFT ( 0x0000001EU )
+
+#define MDIO_USERACCESS0_ACK ( 0x20000000U )
+#define MDIO_USERACCESS0_ACK_SHIFT ( 0x0000001DU )
+
+#define MDIO_USERACCESS0_REGADR ( 0x03E00000U )
+#define MDIO_USERACCESS0_REGADR_SHIFT ( 0x00000015U )
+
+#define MDIO_USERACCESS0_PHYADR ( 0x001F0000U )
+#define MDIO_USERACCESS0_PHYADR_SHIFT ( 0x00000010U )
+
+#define MDIO_USERACCESS0_DATA ( 0x0000FFFFU )
+#define MDIO_USERACCESS0_DATA_SHIFT ( 0x00000000U )
+
+/* USERPHYSEL0 */
+
+#define MDIO_USERPHYSEL0_LINKSEL ( 0x00000080U )
+#define MDIO_USERPHYSEL0_LINKSEL_SHIFT ( 0x00000007U )
+
+#define MDIO_USERPHYSEL0_LINKINTENB ( 0x00000040U )
+#define MDIO_USERPHYSEL0_LINKINTENB_SHIFT ( 0x00000006U )
+
+#define MDIO_USERPHYSEL0_PHYADRMON ( 0x0000001FU )
+#define MDIO_USERPHYSEL0_PHYADRMON_SHIFT ( 0x00000000U )
+
+/* USERACCESS1 */
+
+#define MDIO_USERACCESS1_GO ( 0x80000000U )
+#define MDIO_USERACCESS1_GO_SHIFT ( 0x0000001FU )
+
+#define MDIO_USERACCESS1_WRITE ( 0x40000000U )
+#define MDIO_USERACCESS1_WRITE_SHIFT ( 0x0000001EU )
+
+#define MDIO_USERACCESS1_ACK ( 0x20000000U )
+#define MDIO_USERACCESS1_ACK_SHIFT ( 0x0000001DU )
+
+#define MDIO_USERACCESS1_REGADR ( 0x03E00000U )
+#define MDIO_USERACCESS1_REGADR_SHIFT ( 0x00000015U )
+
+#define MDIO_USERACCESS1_PHYADR ( 0x001F0000U )
+#define MDIO_USERACCESS1_PHYADR_SHIFT ( 0x00000010U )
+
+#define MDIO_USERACCESS1_DATA ( 0x0000FFFFU )
+#define MDIO_USERACCESS1_DATA_SHIFT ( 0x00000000U )
+
+/* USERPHYSEL1 */
+
+#define MDIO_USERPHYSEL1_LINKSEL ( 0x00000080U )
+#define MDIO_USERPHYSEL1_LINKSEL_SHIFT ( 0x00000007U )
+
+#define MDIO_USERPHYSEL1_LINKINTENB ( 0x00000040U )
+#define MDIO_USERPHYSEL1_LINKINTENB_SHIFT ( 0x00000006U )
+
+#define MDIO_USERPHYSEL1_PHYADRMON ( 0x0000001FU )
+#define MDIO_USERPHYSEL1_PHYADRMON_SHIFT ( 0x00000000U )
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef _HW_MDIO_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_reg_access.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_reg_access.h
new file mode 100644
index 000000000..f14177681
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_reg_access.h
@@ -0,0 +1,80 @@
+/*
+ * hw_reg_access.h
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _HW_REG_ACCESS_H_
+#define _HW_REG_ACCESS_H_
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/*******************************************************************************
+ *
+ * Macros for hardware access, both direct and via the bit-band region.
+ *
+ *****************************************************************************/
+#define HWREG( x ) ( *( ( volatile uint32 * ) ( x ) ) )
+#define HWREGH( x ) ( *( ( volatile uint16 * ) ( x ) ) )
+#define HWREGB( x ) ( *( ( volatile uint8 * ) ( x ) ) )
+#define HWREGBITW( x, b ) \
+ ( HWREG( ( ( uint32 ) ( x ) & 0xF0000000U ) | ( uint32 ) 0x02000000U \
+ | ( ( ( uint32 ) ( x ) & 0x000FFFFFU ) << 5U ) \
+ | ( uint32 ) ( ( uint32 ) ( b ) << 2U ) ) )
+#define HWREGBITH( x, b ) \
+ ( HWREGH( ( ( uint32 ) ( x ) & 0xF0000000U ) | ( uint32 ) 0x02000000U \
+ | ( ( ( uint32 ) ( x ) & 0x000FFFFFU ) << 5U ) \
+ | ( uint32 ) ( ( uint32 ) ( b ) << 2U ) ) )
+#define HWREGBITB( x, b ) \
+ ( HWREGB( ( ( uint32 ) ( x ) & 0xF0000000U ) | ( uint32 ) 0x02000000U \
+ | ( ( ( uint32 ) ( x ) & 0x000FFFFFU ) << 5U ) \
+ | ( uint32 ) ( ( uint32 ) ( b ) << 2U ) ) )
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __HW_TYPES_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_usb.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_usb.h
new file mode 100644
index 000000000..80febfe5b
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/hw_usb.h
@@ -0,0 +1,275 @@
+/******************************************************************************
+ *
+ * hw_usb.h - Macros for use in accessing the USB registers.
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __HW_USB_H__
+#define __HW_USB_H__
+
+/** @brief Base address of memmory mapped Registers */
+#define USBD_0_BASE 0xFCF78A00u
+#define USB0_BASE USBD_0_BASE
+
+typedef volatile struct
+{
+ uint16 rev; /* Revision */
+
+ /** Endpoint registers ***************************************************/
+ uint16 epnum; /* Endpoint selection */
+ uint16 data; /* Data */
+ uint16 ctrl; /* Control */
+ uint16 stat_flag; /* Status */
+ uint16 rxf_stat; /* RX FIFO Status */
+ uint16 syscon1; /* System configuration 1 */
+ uint16 syscon2; /* System configuration 2 */
+ uint16 dev_stat; /* Device status */
+ uint16 sof; /* Start of frame */
+ uint16 irq_en; /* Interrupt enable */
+ uint16 dma_irqen; /* DMA Interrupt enable */
+ uint16 irqsrc; /* Interrupt source */
+ uint16 epn_stat; /* Non-ISO EP interrupt enable */
+ uint16 dman_stat; /* Non-ISO DMA interrupt enable */
+ uint16 _rsvd1[ 1 ]; /* Reserved for reg holes */
+
+ /** DMA Configuration ***************************************************/
+ uint16 rxdma_cfg; /* DMA Rx channels configuration */
+ uint16 txdma_cfg; /* DMA Tx channels configuration */
+ uint16 data_dma; /* DMA FIFO data */
+ uint16 txdma0; /* Transmit DMA control 0 */
+ uint16 txdma1; /* Transmit DMA control 1 */
+ uint16 txdma2; /* Transmit DMA control 2 */
+ uint16 _rsvd2[ 2 ]; /* Reserved for reg holes */
+
+ uint16 dman_rxdma0; /* Receive DMA control 0 */
+ uint16 dman_rxdma1; /* Receive DMA control 1 */
+ uint16 dman_rxdma2; /* Receive DMA control 2 */
+ uint16 _rsvd3[ 5 ]; /* Reserved */
+
+ /** Endpoint Configuration ***********************************************/
+ uint16 ep0; /* Endpoint 0 Configuration */
+
+ uint16 epn_rx[ 15 ]; /* RX EP configurations... */
+ uint16 _rsvd4[ 1 ]; /* Reserved for reg holes */
+
+ uint16 epn_tx[ 15 ]; /* TX EP configurations... */
+} usbdRegs;
+
+/******************************************************************************\
+* Register Bit Masks
+* (USBD___
+\******************************************************************************/
+
+/* Endpoint selection *********************************************************/
+#define USBD_EP_NUM_SETUP_SEL ( 0x0040u )
+#define USBD_EP_NUM_EP_SEL ( 0x0020u )
+#define USBD_EP_NUM_EP_DIR ( 0x0010u )
+#define USBD_EP_NUM_EP_NUM_MASK ( 0x000Fu )
+
+/* Data ***********************************************************************/
+#define USBD_DATA_DATA ( 0xFFFFu )
+
+/* Control ********************************************************************/
+#define USBD_CTRL_CLR_HALT ( 0x0080u )
+#define USBD_CTRL_SET_HALT ( 0x0040u )
+#define USBD_CTRL_SET_FIFO_EN ( 0x0004u )
+#define USBD_CTRL_CLR_EP ( 0x0002u )
+#define USBD_CTRL_RESET_EP ( 0x0001u )
+
+/* Status *********************************************************************/
+#define USBD_STAT_FLG_NO_RXPACKET ( 0x8000u )
+#define USBD_STAT_FLG_MISS_IN ( 0x4000u )
+#define USBD_STAT_FLG_DATA_FLUSH ( 0x2000u )
+#define USBD_STAT_FLG_ISO_ERR ( 0x1000u )
+#define USBD_STAT_FLG_ISO_FIFO_EMPTY ( 0x0200u )
+#define USBD_STAT_FLG_ISO_FIFO_FULL ( 0x0100u )
+#define USBD_STAT_FLG_EP_HALTED ( 0x0040u )
+#define USBD_STAT_FLG_STALL ( 0x0020u )
+#define USBD_STAT_FLG_NAK ( 0x0010u )
+#define USBD_STAT_FLG_ACK ( 0x0008u )
+#define USBD_STAT_FLG_FIFO_EN ( 0x0004u )
+#define USBD_STAT_FLG_NON_ISO_FIFO_EMPTY ( 0x0002u )
+#define USBD_STAT_FLG_NON_ISO_FIFO_FULL ( 0x0001u )
+
+/* RX FIFO Status */
+#define USBD_RXFSTAT_RXF_COUNT ( 0x03FFu )
+
+/* System configuration 1 *****************************************************/
+#define USBD_SYSCON1_CFG_LOCK ( 0x0100u )
+#define USBD_SYSCON1_DATA_ENDIAN ( 0x0080u )
+#define USBD_SYSCON1_DMA_ENDIAN ( 0x0040u )
+#define USBD_SYSCON1_NAK_EN ( 0x0010u )
+#define USBD_SYSCON1_AUTODEC_DIS ( 0x0008u )
+#define USBD_SYSCON1_SELF_PWR ( 0x0004u )
+#define USBD_SYSCON1_SOFF_DIS ( 0x0002u )
+#define USBD_SYSCON1_PULLUP_EN ( 0x0001u )
+
+/* System configuration 2 *****************************************************/
+#define USBD_SYSCON2_RMT_WKP ( 0x0040u )
+#define USBD_SYSCON2_STALL_CMD ( 0x0020u )
+#define USBD_SYSCON2_DEV_CFG ( 0x0008u )
+#define USBD_SYSCON2_CLR_CFG ( 0x0004u )
+
+/* Device status **************************************************************/
+#define USBD_DEVSTAT_B_HNP_ENABLE ( 0x0200u )
+#define USBD_DEVSTAT_A_HNP_SUPPORT ( 0x0100u )
+#define USBD_DEVSTAT_A_ALT_HNP_SUPPORT ( 0x0080u )
+#define USBD_DEVSTAT_R_WK_OK ( 0x0040u )
+#define USBD_DEVSTAT_USB_RESET ( 0x0020u )
+#define USBD_DEVSTAT_SUS ( 0x0010u )
+#define USBD_DEVSTAT_CFG ( 0x0008u )
+#define USBD_DEVSTAT_ADD ( 0x0004u )
+#define USBD_DEVSTAT_DEF ( 0x0002u )
+#define USBD_DEVSTAT_ATT ( 0x0001u )
+
+/* Start of frame *************************************************************/
+#define USBD_SOF_FT_LOCK ( 0x1000u )
+#define USBD_SOF_TS_OK ( 0x0800u )
+#define USBD_SOF_TS ( 0x07FFu )
+
+/* Interrupt enable ***********************************************************/
+#define USBD_IRQ_EN_SOF_IE ( 0x0080u )
+#define USBD_IRQ_EN_EPN_RX_IE ( 0x0020u )
+#define USBD_IRQ_EN_EPN_TX_IE ( 0x0010u )
+#define USBD_IRQ_EN_DS_CHG_IE ( 0x0008u )
+#define USBD_IRQ_EN_EP0_IE ( 0x0001u )
+
+/* DMA Interrupt enable *******************************************************/
+#define USBD_DMA_IRQ_EN_TX2_DONE_IE ( 0x0400u )
+#define USBD_DMA_IRQ_EN_RX2_CNT_IE ( 0x0200u )
+#define USBD_DMA_IRQ_EN_RX2_EOT_IE ( 0x0100u )
+#define USBD_DMA_IRQ_EN_TX1_DONE_IE ( 0x0040u )
+#define USBD_DMA_IRQ_EN_RX1_CNT_IE ( 0x0020u )
+#define USBD_DMA_IRQ_EN_RX1_EOT_IE ( 0x0010u )
+#define USBD_DMA_IRQ_EN_TX0_DONE_IE ( 0x0004u )
+#define USBD_DMA_IRQ_EN_RX0_CNT_IE ( 0x0002u )
+#define USBD_DMA_IRQ_EN_RX0_EOT_IE ( 0x0001u )
+
+/* Interrupt source ***********************************************************/
+#define USBD_IRQ_SRC_TXN_DONE ( 0x0400u )
+#define USBD_IRQ_SRC_RXN_CNT ( 0x0200u )
+#define USBD_IRQ_SRC_RXN_EOT ( 0x0100u )
+#define USBD_IRQ_SRC_SOF ( 0x0080u )
+#define USBD_IRQ_SRC_EPN_RX ( 0x0020u )
+#define USBD_IRQ_SRC_EPN_TX ( 0x0010u )
+#define USBD_IRQ_SRC_DS_CHG ( 0x0008u )
+#define USBD_IRQ_SRC_SETUP ( 0x0004u )
+#define USBD_IRQ_SRC_EP0_RX ( 0x0002u )
+#define USBD_IRQ_SRC_EP0_TX ( 0x0001u )
+
+/* Non-ISO endpoint interrupt enable ******************************************/
+#define USBD_EPN_STAT_RX_IT_SRC ( 0x0F00u )
+#define USBD_EPN_STAT_TX_IT_SRC ( 0x000Fu )
+
+/* Non-ISO DMA interrupt enable ***********************************************/
+#define USBD_DMAN_STAT_RX_SB ( 0x1000u )
+#define USBD_DMAN_STAT_RX_IT_SRC ( 0x0F00u )
+#define USBD_DMAN_STAT_TX_IT_SRC ( 0x000Fu )
+
+/* DMA Receive channels configuration *****************************************/
+#define USBD_RXDMA_CFG_RX_REQ ( 0x1000u )
+#define USBD_RXDMA_CFG_RXDMA2_EP ( 0x0F00u )
+#define USBD_RXDMA_CFG_RXDMA1_EP ( 0x00F0u )
+#define USBD_RXDMA_CFG_RXDMA0_EP ( 0x000Fu )
+
+/* DMA Transmit channels configuration ****************************************/
+#define USBD_TXDMA_CFG_TX_REQ ( 0x1000u )
+#define USBD_TXDMA_CFG_TXDMA2_EP ( 0x0F00u )
+#define USBD_TXDMA_CFG_TXDMA1_EP ( 0x00F0u )
+#define USBD_TXDMA_CFG_TXDMA0_EP ( 0x000Fu )
+
+/* DMA FIFO data **************************************************************/
+#define USBD_DATA_DMA_DATA_DMA ( 0xFFFFu )
+
+/* Transmit DMA control 0 *****************************************************/
+#define USBD_TXDMA0_TX0_EOT ( 0x8000u )
+#define USBD_TXDMA0_TX0_START ( 0x4000u )
+#define USBD_TXDMA0_TX0_TSC ( 0x03FFu )
+
+/* Transmit DMA control 1 *****************************************************/
+#define USBD_TXDMA1_TX1_EOT ( 0x8000u )
+#define USBD_TXDMA1_TX1_START ( 0x4000u )
+#define USBD_TXDMA1_TX1_TSC ( 0x03FFu )
+#define USBD_TXDMA1_TX1_TSC_SHIFT ( 0x0000u )
+
+/* Transmit DMA control 2 *****************************************************/
+#define USBD_TXDMA2_TX2_EOT ( 0x8000u )
+#define USBD_TXDMA2_TX2_START ( 0x4000u )
+#define USBD_TXDMA2_TX2_TSC ( 0x03FFu )
+
+/* Receive DMA control 0 ******************************************************/
+#define USBD_RXDMA0_RX0_STOP ( 0x8000u )
+#define USBD_RXDMA0_RX0_TC ( 0x00FFu )
+
+/* Receive DMA control 1 ******************************************************/
+#define USBD_RXDMA1_RX10_STOP ( 0x8000u )
+#define USBD_RXDMA1_RX1_TC ( 0x00FFu )
+
+/* Receive DMA control 2 ******************************************************/
+#define USBD_RXDMA2_RX2_STOP ( 0x8000u )
+#define USBD_RXDMA2_RX2_TC ( 0x00FFu )
+
+/* Endpoint 0 Configuration ***************************************************/
+#define USBD_EP0_SIZE ( 0x3000u )
+#define USBD_EP0_PTR ( 0x07FFu )
+
+/* Receive endpoint configurations... *****************************************/
+#define USBD_RX_EP_VALID ( 0x8000u )
+#define USBD_RX_EP_SIZEDB ( 0x4000u )
+#define USBD_RX_EP_SIZE ( 0x3000u )
+#define USBD_RX_EP_ISO ( 0x0800u )
+#define USBD_RX_EP_PTR ( 0x07FFu )
+
+/* Transmit endpoint configurations... ****************************************/
+#define USBD_TX_EP_VALID ( 0x8000u )
+#define USBD_TX_EP_SIZEDB ( 0x4000u )
+#define USBD_TX_EP_SIZE ( 0x3000u )
+#define USBD_TX_EP_ISO ( 0x0800u )
+#define USBD_TX_EP_PTR ( 0x07FFu )
+
+#define USBD_MAX_EP0_PTR ( 0xFFu )
+#define USBD_EP_RX_MAX ( 15u )
+#define USBD_EP_TX_MAX ( 15u )
+
+/** @brief Macro for setting a bit/s in a register (read, modify & write) */
+#define USBD_REG_BIT_SET( reg, bit ) reg |= ( ( uint16 ) ( bit ) )
+/** @brief Macro for clearing a bit/s in a register (read, modify & write) */
+#define USBD_REG_BIT_CLR( reg, bit ) reg &= ( ( uint16 ) ~( ( uint16 ) bit ) )
+/** @brief Macro for setting a bit/s in a register (write) */
+#define USBD_REG_SET_ONE( reg, value ) reg = ( ( uint16 ) value )
+
+#endif /* __HW_USB_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/i2c.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/i2c.h
new file mode 100644
index 000000000..6b987fc3b
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/i2c.h
@@ -0,0 +1,226 @@
+/** @file I2C.h
+ * @brief I2C Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __I2C_H__
+#define __I2C_H__
+
+#include "reg_i2c.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @enum i2cMode
+ * @brief Alias names for i2c modes
+ * This enumeration is used to provide alias names for I2C modes:
+ */
+
+enum i2cMode
+{
+ I2C_FD_FORMAT = 0x0008U, /* Free Data Format */
+ I2C_START_BYTE = 0x0010U,
+ I2C_RESET_OUT = 0x0020U,
+ I2C_RESET_IN = 0x0000U,
+ I2C_DLOOPBACK = 0x0040U,
+ I2C_REPEATMODE = 0x0080U, /* In Master Mode only */
+ I2C_10BIT_AMODE = 0x0100U,
+ I2C_7BIT_AMODE = 0x0000U,
+ I2C_TRANSMITTER = 0x0200U,
+ I2C_RECEIVER = 0x0000U,
+ I2C_MASTER = 0x0400U,
+ I2C_SLAVE = 0x0000U,
+ I2C_STOP_COND = 0x0800U, /* In Master Mode only */
+ I2C_START_COND = 0x2000U, /* In Master Mode only */
+ I2C_FREE_RUN = 0x4000U,
+ I2C_NACK_MODE = 0x8000U
+};
+
+/** @enum i2cBitCount
+ * @brief Alias names for i2c bit count
+ * This enumeration is used to provide alias names for I2C bit count:
+ */
+
+enum i2cBitCount
+{
+ I2C_2_BIT = 0x2U,
+ I2C_3_BIT = 0x3U,
+ I2C_4_BIT = 0x4U,
+ I2C_5_BIT = 0x5U,
+ I2C_6_BIT = 0x6U,
+ I2C_7_BIT = 0x7U,
+ I2C_8_BIT = 0x0U
+};
+
+/** @enum i2cIntFlags
+ * @brief Interrupt Flag Definitions
+ *
+ * Used with I2CEnableNotification, I2CDisableNotification
+ */
+enum i2cIntFlags
+{
+ I2C_AL_INT = 0x0001U, /* arbitration lost */
+ I2C_NACK_INT = 0x0002U, /* no acknowledgment */
+ I2C_ARDY_INT = 0x0004U, /* access ready */
+ I2C_RX_INT = 0x0008U, /* receive data ready */
+ I2C_TX_INT = 0x0010U, /* transmit data ready */
+ I2C_SCD_INT = 0x0020U, /* stop condition detect */
+ I2C_AAS_INT = 0x0040U /* address as slave */
+};
+
+/** @enum i2cStatFlags
+ * @brief Interrupt Status Definitions
+ *
+ */
+enum i2cStatFlags
+{
+ I2C_AL = 0x0001U, /* arbitration lost */
+ I2C_NACK = 0x0002U, /* no acknowledgement */
+ I2C_ARDY = 0x0004U, /* access ready */
+ I2C_RX = 0x0008U, /* receive data ready */
+ I2C_TX = 0x0010U, /* transmit data ready */
+ I2C_SCD = 0x0020U, /* stop condition detect */
+ I2C_AD0 = 0x0100U, /* address Zero Status */
+ I2C_AAS = 0x0200U, /* address as slave */
+ I2C_XSMT = 0x0400U, /* Transmit shift empty not */
+ I2C_RXFULL = 0x0800U, /* receive full */
+ I2C_BUSBUSY = 0x1000U, /* bus busy */
+ I2C_NACKSNT = 0x2000U, /* No Ack Sent */
+ I2C_SDIR = 0x4000U /* Slave Direction */
+};
+
+/** @enum i2cDMA
+ * @brief I2C DMA definitions
+ *
+ * Used before i2c transfer
+ */
+enum i2cDMA
+{
+ I2C_TXDMA = 0x20U,
+ I2C_RXDMA = 0x10U
+};
+
+/* Configuration registers */
+typedef struct i2c_config_reg
+{
+ uint32 CONFIG_OAR;
+ uint32 CONFIG_IMR;
+ uint32 CONFIG_CLKL;
+ uint32 CONFIG_CLKH;
+ uint32 CONFIG_CNT;
+ uint32 CONFIG_SAR;
+ uint32 CONFIG_MDR;
+ uint32 CONFIG_EMDR;
+ uint32 CONFIG_PSC;
+ uint32 CONFIG_DMAC;
+ uint32 CONFIG_FUN;
+ uint32 CONFIG_DIR;
+ uint32 CONFIG_ODR;
+ uint32 CONFIG_PD;
+ uint32 CONFIG_PSL;
+} i2c_config_reg_t;
+
+/**
+ * @defgroup I2C I2C
+ * @brief Inter-Integrated Circuit Module.
+ *
+ * The I2C is a multi-master communication module providing an interface between the
+ *Texas Instruments (TI) microcontroller and devices compliant with Philips Semiconductor
+ *I2C-bus specification version 2.1 and connected by an I2Cbus. This module will support
+ *any slave or master I2C compatible device.
+ *
+ * Related Files
+ * - reg_i2c.h
+ * - i2c.h
+ * - i2c.c
+ * @addtogroup I2C
+ * @{
+ */
+
+/* I2C Interface Functions */
+void i2cInit( void );
+void i2cSetOwnAdd( i2cBASE_t * i2c, uint32 oadd );
+void i2cSetSlaveAdd( i2cBASE_t * i2c, uint32 sadd );
+void i2cSetBaudrate( i2cBASE_t * i2c, uint32 baud );
+uint32 i2cIsTxReady( i2cBASE_t * i2c );
+void i2cSendByte( i2cBASE_t * i2c, uint8 byte );
+void i2cSend( i2cBASE_t * i2c, uint32 length, uint8 * data );
+uint32 i2cIsRxReady( i2cBASE_t * i2c );
+uint32 i2cIsStopDetected( i2cBASE_t * i2c );
+void i2cClearSCD( i2cBASE_t * i2c );
+uint32 i2cRxError( i2cBASE_t * i2c );
+uint8 i2cReceiveByte( i2cBASE_t * i2c );
+void i2cReceive( i2cBASE_t * i2c, uint32 length, uint8 * data );
+void i2cEnableNotification( i2cBASE_t * i2c, uint32 flags );
+void i2cDisableNotification( i2cBASE_t * i2c, uint32 flags );
+void i2cSetStart( i2cBASE_t * i2c );
+void i2cSetStop( i2cBASE_t * i2c );
+void i2cSetCount( i2cBASE_t * i2c, uint32 cnt );
+void i2cEnableLoopback( i2cBASE_t * i2c );
+void i2cDisableLoopback( i2cBASE_t * i2c );
+void i2cSetMode( i2cBASE_t * i2c, uint32 mode );
+void i2cGetConfigValue( i2c_config_reg_t * config_reg, config_value_type_t type );
+void i2cSetDirection( i2cBASE_t * i2c, uint32 dir );
+bool i2cIsMasterReady( i2cBASE_t * i2c );
+bool i2cIsBusBusy( i2cBASE_t * i2c );
+
+/** @fn void i2cNotification(i2cBASE_t *i2c, uint32 flags)
+ * @brief Interrupt callback
+ * @param[in] i2c - I2C module base address
+ * @param[in] flags - copy of error interrupt flags
+ *
+ * This is a callback that is provided by the application and is called apon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void i2cNotification( i2cBASE_t * i2c, uint32 flags );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __I2C_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/lin.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/lin.h
new file mode 100644
index 000000000..549b4c845
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/lin.h
@@ -0,0 +1,292 @@
+/** @file lin.h
+ * @brief LIN Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __LIN_H__
+#define __LIN_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "reg_lin.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @def LIN_BREAK_INT
+ * @brief Alias for break detect interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_BREAK_INT 0x00000001U
+
+/** @def LIN_WAKEUP_INT
+ * @brief Alias for wakeup interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_WAKEUP_INT 0x00000002U
+
+/** @def LIN_TO_INT
+ * @brief Alias for time out interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_TO_INT 0x00000010U
+
+/** @def LIN_TOAWUS_INT
+ * @brief Alias for time out after wakeup signal interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_TOAWUS_INT 0x00000040U
+
+/** @def LIN_TOA3WUS_INT
+ * @brief Alias for time out after 3 wakeup signals interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_TOA3WUS_INT 0x00000080U
+
+/** @def LIN_TX_READY
+ * @brief Alias for transmit buffer ready flag
+ *
+ * Used with linIsTxReady.
+ */
+#define LIN_TX_READY 0x00000100U
+
+/** @def LIN_RX_INT
+ * @brief Alias for receive buffer ready interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_RX_INT 0x00000200U
+
+/** @def LIN_ID_INT
+ * @brief Alias for received matching identifier interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_ID_INT 0x00002000U
+
+/** @def LIN_PE_INT
+ * @brief Alias for parity error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_PE_INT 0x01000000U
+
+/** @def LIN_OE_INT
+ * @brief Alias for overrun error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_OE_INT 0x02000000U
+
+/** @def LIN_FE_INT
+ * @brief Alias for framing error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_FE_INT 0x04000000U
+
+/** @def LIN_NRE_INT
+ * @brief Alias for no response error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_NRE_INT 0x08000000U
+
+/** @def LIN_ISFE_INT
+ * @brief Alias for inconsistent sync field error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_ISFE_INT 0x10000000U
+
+/** @def LIN_CE_INT
+ * @brief Alias for checksum error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_CE_INT 0x20000000U
+
+/** @def LIN_PBE_INT
+ * @brief Alias for physical bus error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_PBE_INT 0x40000000U
+
+/** @def LIN_BE_INT
+ * @brief Alias for bit error interrupt flag
+ *
+ * Used with linEnableNotification, linDisableNotification.
+ */
+#define LIN_BE_INT 0x80000000U
+
+/** @struct linBase
+ * @brief LIN Register Definition
+ *
+ * This structure is used to access the LIN module registers.
+ */
+
+/** @typedef linBASE_t
+ * @brief LIN Register Frame Type Definition
+ *
+ * This type is used to access the LIN Registers.
+ */
+
+enum linPinSelect
+{
+ PIN_LIN_TX = 4U,
+ PIN_LIN_RX = 2U
+};
+
+/* Configuration registers */
+typedef struct lin_config_reg
+{
+ uint32 CONFIG_GCR0;
+ uint32 CONFIG_GCR1;
+ uint32 CONFIG_GCR2;
+ uint32 CONFIG_SETINT;
+ uint32 CONFIG_SETINTLVL;
+ uint32 CONFIG_FORMAT;
+ uint32 CONFIG_BRSR;
+ uint32 CONFIG_FUN;
+ uint32 CONFIG_DIR;
+ uint32 CONFIG_ODR;
+ uint32 CONFIG_PD;
+ uint32 CONFIG_PSL;
+ uint32 CONFIG_COMP;
+ uint32 CONFIG_MASK;
+ uint32 CONFIG_MBRSR;
+} lin_config_reg_t;
+
+/* Configuration registers initial value for LIN*/
+#define LIN_GCR0_CONFIGVALUE 0x00000001U
+#define LIN_GCR1_CONFIGVALUE \
+ ( 0x03000CC0U | ( uint32 ) ( ( uint32 ) 1U << 12U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) )
+#define LIN_GCR2_CONFIGVALUE 0x00000000U
+#define LIN_SETINTLVL_CONFIGVALUE \
+ ( 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U )
+
+#define LIN_SETINT_CONFIGVALUE \
+ ( 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U )
+
+#define LIN_FORMAT_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) ( 8U - 1U ) << 16U ) )
+#define LIN_BRSR_CONFIGVALUE ( 343U )
+#define LIN_COMP_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 8U ) | ( 13U - 13U ) )
+#define LIN_MASK_CONFIGVALUE ( ( uint32 ) ( ( uint32 ) 0xFFU << 16U ) | 0xFFU )
+#define LIN_MBRSR_CONFIGVALUE ( 4954U )
+#define LIN_FUN_CONFIGVALUE ( 4U | 2U | 0U )
+#define LIN_DIR_CONFIGVALUE ( 0U | 0U | 0U )
+#define LIN_ODR_CONFIGVALUE ( 0U | 0U | 0U )
+#define LIN_PD_CONFIGVALUE ( 0U | 0U | 0U )
+#define LIN_PSL_CONFIGVALUE ( 4U | 2U | 1U )
+
+/**
+ * @defgroup LIN LIN
+ * @brief Local Interconnect Network Module.
+ *
+ * The LIN standard is based on the SCI (UART) serial data link format. The communication
+ *concept is single-master/multiple-slave with a message identification for multi-cast
+ *transmission between any network nodes.
+ *
+ * Related Files
+ * - reg_lin.h
+ * - lin.h
+ * - lin.c
+ * @addtogroup LIN
+ * @{
+ */
+
+/* LIN Interface Functions */
+void linInit( void );
+void linSetFunctional( linBASE_t * lin, uint32 port );
+void linSendHeader( linBASE_t * lin, uint8 identifier );
+void linSendWakupSignal( linBASE_t * lin );
+void linEnterSleep( linBASE_t * lin );
+void linSoftwareReset( linBASE_t * lin );
+uint32 linIsTxReady( linBASE_t * lin );
+void linSetLength( linBASE_t * lin, uint32 length );
+void linSend( linBASE_t * lin, uint8 * data );
+uint32 linIsRxReady( linBASE_t * lin );
+uint32 linTxRxError( linBASE_t * lin );
+uint32 linGetIdentifier( linBASE_t * lin );
+void linGetData( linBASE_t * lin, uint8 * const data );
+void linEnableNotification( linBASE_t * lin, uint32 flags );
+void linDisableNotification( linBASE_t * lin, uint32 flags );
+void linEnableLoopback( linBASE_t * lin, loopBackType_t Loopbacktype );
+void linDisableLoopback( linBASE_t * lin );
+void linGetConfigValue( lin_config_reg_t * config_reg, config_value_type_t type );
+uint32 linGetStatusFlag( linBASE_t * lin );
+void linClearStatusFlag( linBASE_t * lin, uint32 flags );
+
+/** @fn void linNotification(linBASE_t *lin, uint32 flags)
+ * @brief Interrupt callback
+ * @param[in] lin - lin module base address
+ * @param[in] flags - copy of error interrupt flags
+ *
+ * This is a callback that is provided by the application and is called upon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void linNotification( linBASE_t * lin, uint32 flags );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __LIN_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mdio.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mdio.h
new file mode 100644
index 000000000..09e0e7059
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mdio.h
@@ -0,0 +1,95 @@
+/**
+ * \file mdio.h
+ *
+ * \brief MDIO APIs and macros.
+ *
+ * This file contains the driver API prototypes and macro definitions.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __MDIO_H__
+#define __MDIO_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "sys_common.h"
+#include "system.h"
+#include "hw_mdio.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* MDIO input and output frequencies in Hz */
+#define MDIO_FREQ_INPUT ( ( uint32 ) ( VCLK3_FREQ * 1000000.00F ) )
+#define MDIO_FREQ_OUTPUT 1000000U
+/*****************************************************************************/
+
+/**
+ * @addtogroup EMACMDIO
+ * @{
+ */
+
+/*
+** Prototypes for the APIs
+*/
+extern uint32 MDIOPhyAliveStatusGet( uint32 baseAddr );
+extern uint32 MDIOPhyLinkStatusGet( uint32 baseAddr );
+extern void MDIOInit( uint32 baseAddr, uint32 mdioInputFreq, uint32 mdioOutputFreq );
+extern boolean MDIOPhyRegRead( uint32 baseAddr,
+ uint32 phyAddr,
+ uint32 regNum,
+ volatile uint16 * dataPtr );
+extern void MDIOPhyRegWrite( uint32 baseAddr,
+ uint32 phyAddr,
+ uint32 regNum,
+ uint16 RegVal );
+extern void MDIOEnable( uint32 baseAddr );
+extern void MDIODisable( uint32 baseAddr );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+/**@}*/
+#endif /* __MDIO_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mibspi.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mibspi.h
new file mode 100644
index 000000000..d2b24d99e
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/mibspi.h
@@ -0,0 +1,664 @@
+/** @file mibspi.h
+ * @brief MIBSPI Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __MIBSPI_H__
+#define __MIBSPI_H__
+
+#include "reg_mibspi.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @enum triggerEvent
+ * @brief Transfer Group Trigger Event
+ */
+enum triggerEvent
+{
+ TRG_NEVER = 0U,
+ TRG_RISING = 1U,
+ TRG_FALLING = 2U,
+ TRG_BOTH = 3U,
+ TRG_HIGH = 5U,
+ TRG_LOW = 6U,
+ TRG_ALWAYS = 7U
+};
+
+/** @enum triggerSource
+ * @brief Transfer Group Trigger Source
+ */
+enum triggerSource
+{
+ TRG_DISABLED,
+ TRG_GIOA0,
+ TRG_GIOA1,
+ TRG_GIOA2,
+ TRG_GIOA3,
+ TRG_GIOA4,
+ TRG_GIOA5,
+ TRG_GIOA6,
+ TRG_GIOA7,
+ TRG_HET1_8,
+ TRG_HET1_10,
+ TRG_HET1_12,
+ TRG_HET1_14,
+ TRG_HET1_16,
+ TRG_HET1_18,
+ TRG_TICK
+};
+
+/** @enum mibspiPinSelect
+ * @brief mibspi Pin Select
+ */
+enum mibspiPinSelect
+{
+ PIN_CS0 = 0U,
+ PIN_CS1 = 1U,
+ PIN_CS2 = 2U,
+ PIN_CS3 = 3U,
+ PIN_CS4 = 4U,
+ PIN_CS5 = 5U,
+ PIN_CS6 = 6U,
+ PIN_CS7 = 7U,
+ PIN_ENA = 8U,
+ PIN_CLK = 9U,
+ PIN_SIMO = 10U,
+ PIN_SOMI = 11U,
+ PIN_SIMO_1 = 17U,
+ PIN_SIMO_2 = 18U,
+ PIN_SIMO_3 = 19U,
+ PIN_SIMO_4 = 20U,
+ PIN_SIMO_5 = 21U,
+ PIN_SIMO_6 = 22U,
+ PIN_SIMO_7 = 23U,
+ PIN_SOMI_1 = 25U,
+ PIN_SOMI_2 = 26U,
+ PIN_SOMI_3 = 27U,
+ PIN_SOMI_4 = 28U,
+ PIN_SOMI_5 = 29U,
+ PIN_SOMI_6 = 30U,
+ PIN_SOMI_7 = 31U
+};
+
+/** @enum chipSelect
+ * @brief Transfer Group Chip Select
+ */
+enum chipSelect
+{
+ CS_NONE = 0xFFU,
+ CS_0 = 0xFEU,
+ CS_1 = 0xFDU,
+ CS_2 = 0xFBU,
+ CS_3 = 0xF7U,
+ CS_4 = 0xEFU,
+ CS_5 = 0xDFU,
+ CS_6 = 0xBFU,
+ CS_7 = 0x7FU
+};
+
+/** @typedef mibspiPmode_t
+ * @brief Mibspi Parellel mode Type Definition
+ *
+ * This type is used to represent Mibspi Parellel mode.
+ */
+typedef enum mibspiPmode
+{
+ PMODE_NORMAL = 0x0U,
+ PMODE_2_DATALINE = 0x1U,
+ PMODE_4_DATALINE = 0x2U,
+ PMODE_8_DATALINE = 0x3U
+} mibspiPmode_t;
+
+/** @typedef mibspiDFMT_t
+ * @brief Mibspi Data format selection Type Definition
+ *
+ * This type is used to represent Mibspi Data format selection.
+ */
+typedef enum mibspiDFMT
+{
+ DATA_FORMAT0 = 0x0U,
+ DATA_FORMAT1 = 0x1U,
+ DATA_FORMAT2 = 0x2U,
+ DATA_FORMAT3 = 0x3U
+} mibspiDFMT_t;
+
+typedef struct mibspi_config_reg
+{
+ uint32 CONFIG_GCR1;
+ uint32 CONFIG_INT0;
+ uint32 CONFIG_LVL;
+ uint32 CONFIG_PCFUN;
+ uint32 CONFIG_PCDIR;
+ uint32 CONFIG_PCPDR;
+ uint32 CONFIG_PCDIS;
+ uint32 CONFIG_PCPSL;
+ uint32 CONFIG_DELAY;
+ uint32 CONFIG_FMT0;
+ uint32 CONFIG_FMT1;
+ uint32 CONFIG_FMT2;
+ uint32 CONFIG_FMT3;
+ uint32 CONFIG_MIBSPIE;
+ uint32 CONFIG_LTGPEND;
+ uint32 CONFIG_TGCTRL[ 8U ];
+ uint32 CONFIG_UERRCTRL;
+} mibspi_config_reg_t;
+
+#define MIBSPI1_GCR1_CONFIGVALUE ( 0x01000000U | ( uint32 ) ( ( uint32 ) 1U << 1U ) | 1U )
+#define MIBSPI1_INT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 6U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+#define MIBSPI1_LVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI1_PCFUN_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 17U ) | ( uint32 ) ( ( uint32 ) 1U << 25U ) )
+#define MIBSPI1_PCDIR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) )
+#define MIBSPI1_PCPDR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) )
+#define MIBSPI1_PCDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) )
+#define MIBSPI1_PCPSL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 17U ) | ( uint32 ) ( ( uint32 ) 1U << 25U ) )
+
+#define MIBSPI1_DELAY_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI1_FMT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI1_FMT1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI1_FMT2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI1_FMT3_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+
+#define MIBSPI1_MIBSPIE_CONFIGVALUE 1U
+#define MIBSPI1_LTGPEND_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) ( ( 8U + 0U + 0U + 0U + 0U + 0U + 0U + 0U ) - 1U ) << 8U ) )
+
+#define MIBSPI1_TGCTRL0_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) ) )
+#define MIBSPI1_TGCTRL1_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 8U << 8U ) ) )
+#define MIBSPI1_TGCTRL2_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U ) << 8U ) ) )
+#define MIBSPI1_TGCTRL3_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI1_TGCTRL4_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI1_TGCTRL5_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI1_TGCTRL6_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI1_TGCTRL7_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+
+#define MIBSPI1_UERRCTRL_CONFIGVALUE ( 0x00000005U )
+
+#define MIBSPI3_GCR1_CONFIGVALUE ( 0x01000000U | ( uint32 ) ( ( uint32 ) 1U << 1U ) | 1U )
+#define MIBSPI3_INT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 6U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+#define MIBSPI3_LVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI3_PCFUN_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+#define MIBSPI3_PCDIR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define MIBSPI3_PCPDR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define MIBSPI3_PCDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define MIBSPI3_PCPSL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+
+#define MIBSPI3_DELAY_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI3_FMT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI3_FMT1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI3_FMT2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI3_FMT3_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+
+#define MIBSPI3_MIBSPIE_CONFIGVALUE 1U
+#define MIBSPI3_LTGPEND_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) ( ( 8U + 0U + 0U + 0U + 0U + 0U + 0U + 0U ) - 1U ) << 8U ) )
+
+#define MIBSPI3_TGCTRL0_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) ) )
+#define MIBSPI3_TGCTRL1_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 8U << 8U ) ) )
+#define MIBSPI3_TGCTRL2_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U ) << 8U ) ) )
+#define MIBSPI3_TGCTRL3_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI3_TGCTRL4_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI3_TGCTRL5_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI3_TGCTRL6_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI3_TGCTRL7_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+
+#define MIBSPI3_UERRCTRL_CONFIGVALUE ( 0x00000005U )
+
+#define MIBSPI5_GCR1_CONFIGVALUE ( 0x01000000U | ( uint32 ) ( ( uint32 ) 1U << 1U ) | 1U )
+#define MIBSPI5_INT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 6U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+#define MIBSPI5_LVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI5_PCFUN_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 17U ) | ( uint32 ) ( ( uint32 ) 1U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 19U ) | ( uint32 ) ( ( uint32 ) 1U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 26U ) | ( uint32 ) ( ( uint32 ) 1U << 27U ) )
+#define MIBSPI5_PCDIR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 19U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 27U ) )
+#define MIBSPI5_PCPDR_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 19U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 27U ) )
+#define MIBSPI5_PCDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 17U ) | ( uint32 ) ( ( uint32 ) 0U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 19U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 27U ) )
+#define MIBSPI5_PCPSL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 3U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 17U ) | ( uint32 ) ( ( uint32 ) 1U << 18U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 19U ) | ( uint32 ) ( ( uint32 ) 1U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 26U ) | ( uint32 ) ( ( uint32 ) 1U << 27U ) )
+
+#define MIBSPI5_DELAY_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define MIBSPI5_FMT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI5_FMT1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI5_FMT2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define MIBSPI5_FMT3_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+
+#define MIBSPI5_MIBSPIE_CONFIGVALUE 1U
+#define MIBSPI5_LTGPEND_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) ( ( 8U + 0U + 0U + 0U + 0U + 0U + 0U + 0U ) - 1U ) << 8U ) )
+
+#define MIBSPI5_TGCTRL0_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) ) )
+#define MIBSPI5_TGCTRL1_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 8U << 8U ) ) )
+#define MIBSPI5_TGCTRL2_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U ) << 8U ) ) )
+#define MIBSPI5_TGCTRL3_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI5_TGCTRL4_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI5_TGCTRL5_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI5_TGCTRL6_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+#define MIBSPI5_TGCTRL7_CONFIGVALUE \
+ ( 0xFFFF7FFFU \
+ & ( ( uint32 ) ( ( uint32 ) 1U << 30U ) | ( uint32 ) ( ( uint32 ) 0U << 29U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_ALWAYS << 20U ) \
+ | ( uint32 ) ( ( uint32 ) TRG_DISABLED << 16U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U + 0U + 0U + 0U + 0U + 0U + 0U ) << 8U ) ) )
+
+#define MIBSPI5_UERRCTRL_CONFIGVALUE ( 0x00000005U )
+
+/**
+ * @defgroup MIBSPI MIBSPI
+ * @brief Multi-Buffered Serial Peripheral Interface Module.
+ *
+ * The MibSPI/MibSPIP is a high-speed synchronous serial input/output port that allows a
+ * serial bit stream of programmed length (2 to 16 bits) to be shifted in and out of the
+ * device at a programmed bit-transfer rate. The MibSPI has a programmable buffer memory
+ * that enables programmed transmission to be completed without CPU intervention
+ *
+ * Related Files
+ * - reg_mibspi.h
+ * - mibspi.h
+ * - mibspi.c
+ * @addtogroup MIBSPI
+ * @{
+ */
+
+/* MIBSPI Interface Functions */
+void mibspiInit( void );
+void mibspiSetFunctional( mibspiBASE_t * mibspi, uint32 port );
+void mibspiSetData( mibspiBASE_t * mibspi, uint32 group, uint16 * data );
+uint32 mibspiGetData( mibspiBASE_t * mibspi, uint32 group, uint16 * data );
+void mibspiTransfer( mibspiBASE_t * mibspi, uint32 group );
+boolean mibspiIsTransferComplete( mibspiBASE_t * mibspi, uint32 group );
+void mibspiEnableGroupNotification( mibspiBASE_t * mibspi, uint32 group, uint32 level );
+void mibspiDisableGroupNotification( mibspiBASE_t * mibspi, uint32 group );
+void mibspiEnableLoopback( mibspiBASE_t * mibspi, loopBackType_t Loopbacktype );
+void mibspiDisableLoopback( mibspiBASE_t * mibspi );
+void mibspiPmodeSet( mibspiBASE_t * mibspi, mibspiPmode_t Pmode, mibspiDFMT_t DFMT );
+void mibspi1GetConfigValue( mibspi_config_reg_t * config_reg, config_value_type_t type );
+void mibspi3GetConfigValue( mibspi_config_reg_t * config_reg, config_value_type_t type );
+void mibspi5GetConfigValue( mibspi_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void mibspiNotification(mibspiBASE_t *mibspi, uint32 flags)
+ * @brief Error interrupt callback
+ * @param[in] mibspi - mibSpi module base address
+ * @param[in] flags - Copy of error interrupt flags
+ *
+ * This is a error callback that is provided by the application and is call upon
+ * an error interrupt. The paramer passed to the callback is a copy of the error
+ * interrupt flag register.
+ */
+void mibspiNotification( mibspiBASE_t * mibspi, uint32 flags );
+
+/** @fn void mibspiGroupNotification(mibspiBASE_t *mibspi, uint32 group)
+ * @brief Transfer complete notification callback
+ * @param[in] mibspi - mibSpi module base address
+ * @param[in] group - Transfer group
+ *
+ * This is a callback function provided by the application. It is call when
+ * a transfer is complete. The parameter is the transfer group that triggered
+ * the interrupt.
+ */
+void mibspiGroupNotification( mibspiBASE_t * mibspi, uint32 group );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __MIBSPI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/phy_dp83640.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/phy_dp83640.h
new file mode 100644
index 000000000..fca79c729
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/phy_dp83640.h
@@ -0,0 +1,139 @@
+/*
+ * DP83640.h
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef _PHY_DP83640_H_
+#define _PHY_DP83640_H_
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @enum PHY_timestamp
+ * @brief Alias names for transmit and receive timestamps
+ * This enumeration is used to provide alias names for getting the transmit and receive
+ * timestamps from the Dp83640GetTimeStamp API.
+ */
+typedef enum phyTimeStamp
+{
+ Txtimestamp = 1, /*Transmit Timestamp*/
+ Rxtimestamp = 2 /*Receive Timestamp */
+} phyTimeStamp_t;
+/* PHY register offset definitions */
+#define PHY_BCR ( 0u )
+#define PHY_BSR ( 1u )
+#define PHY_ID1 ( 2u )
+#define PHY_ID2 ( 3u )
+#define PHY_AUTONEG_ADV ( 4u )
+#define PHY_LINK_PARTNER_ABLTY ( 5u )
+#define PHY_LINK_PARTNER_SPD ( 16u )
+#define PHY_TXTS ( 28u )
+#define PHY_RXTS ( 29u )
+
+/* PHY status definitions */
+#define PHY_ID_SHIFT ( 16u )
+#define PHY_SOFTRESET ( 0x8000U )
+#define PHY_AUTONEG_ENABLE ( 0x1000u )
+#define PHY_AUTONEG_RESTART ( 0x0200u )
+#define PHY_AUTONEG_COMPLETE ( 0x0020u )
+#define PHY_AUTONEG_INCOMPLETE ( 0x0000u )
+#define PHY_AUTONEG_STATUS ( 0x0020u )
+#define PHY_AUTONEG_ABLE ( 0x0008u )
+#define PHY_LPBK_ENABLE ( 0x4000u )
+#define PHY_LINK_STATUS ( 0x0004u )
+#define PHY_INVALID_TYPE ( 0x0u )
+
+/* PHY ID. The LSB nibble will vary between different phy revisions */
+#define DP83640_PHY_ID ( 0x0007C0F0u )
+#define DP83640_PHY_ID_REV_MASK ( 0x0000000Fu )
+
+/* Pause operations */
+#define DP83640_PAUSE_NIL ( 0x0000u )
+#define DP83640_PAUSE_SYM ( 0x0400u )
+#define DP83640_PAUSE_ASYM ( 0x0800u )
+#define DP83640_PAUSE_BOTH_SYM_ASYM ( 0x0C00u )
+
+/* 100 Base TX Full Duplex capablity */
+#define DP83640_100BTX_HD ( 0x0000u )
+#define DP83640_100BTX_FD ( 0x0100u )
+
+/* 100 Base TX capability */
+#define DP83640_NO_100BTX ( 0x0000u )
+#define DP83640_100BTX ( 0x0080u )
+
+/* 10 BaseT duplex capabilities */
+#define DP83640_10BT_HD ( 0x0000u )
+#define DP83640_10BT_FD ( 0x0040u )
+
+/* 10 BaseT ability*/
+#define DP83640_NO_10BT ( 0x0000u )
+#define DP83640_10BT ( 0x0020u )
+
+/**************************************************************************
+ * API function Prototypes
+ ***************************************************************************/
+extern uint32 Dp83640IDGet( uint32 mdioBaseAddr, uint32 phyAddr );
+extern void Dp83640Reset( uint32 mdioBaseAddr, uint32 phyAddr );
+extern boolean Dp83640AutoNegotiate( uint32 mdioBaseAddr, uint32 phyAddr, uint16 advVal );
+extern boolean Dp83640PartnerAbilityGet( uint32 mdioBaseAddr,
+ uint32 phyAddr,
+ uint16 * ptnerAblty );
+extern boolean Dp83640LinkStatusGet( uint32 mdioBaseAddr,
+ uint32 phyAddr,
+ volatile uint32 retries );
+extern uint64 Dp83640GetTimeStamp( uint32 mdioBaseAddr,
+ uint32 phyAddr,
+ phyTimeStamp_t type );
+extern void Dp83640EnableLoopback( uint32 mdioBaseAddr, uint32 phyAddr );
+extern void Dp83640DisableLoopback( uint32 mdioBaseAddr, uint32 phyAddr );
+extern boolean Dp83640PartnerSpdGet( uint32 mdioBaseAddr,
+ uint32 phyAddr,
+ uint16 * ptnerAblty );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ifndef _PHY_DP83640_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pinmux.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pinmux.h
new file mode 100644
index 000000000..9f3f27cae
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pinmux.h
@@ -0,0 +1,746 @@
+/** @file pinmux.h
+ * @brief PINMUX Driver Implementation File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __PINMUX_H__
+#define __PINMUX_H__
+
+#include "reg_pinmux.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define PINMUX_BALL_A4_SHIFT 0U
+#define PINMUX_BALL_A5_SHIFT 8U
+#define PINMUX_BALL_A11_SHIFT 8U
+#define PINMUX_BALL_A14_SHIFT 0U
+#define PINMUX_BALL_B2_SHIFT 24U
+#define PINMUX_BALL_B3_SHIFT 8U
+#define PINMUX_BALL_B4_SHIFT 16U
+#define PINMUX_BALL_B5_SHIFT 24U
+#define PINMUX_BALL_B11_SHIFT 8U
+#define PINMUX_BALL_B12_SHIFT 0U
+#define PINMUX_BALL_C1_SHIFT 0U
+#define PINMUX_BALL_C2_SHIFT 0U
+#define PINMUX_BALL_C3_SHIFT 16U
+#define PINMUX_BALL_C4_SHIFT 16U
+#define PINMUX_BALL_C5_SHIFT 8U
+#define PINMUX_BALL_C6_SHIFT 0U
+#define PINMUX_BALL_D3_SHIFT 0U
+#define PINMUX_BALL_D4_SHIFT 0U
+#define PINMUX_BALL_D5_SHIFT 0U
+#define PINMUX_BALL_D16_SHIFT 24U
+#define PINMUX_BALL_D17_SHIFT 16U
+#define PINMUX_BALL_D19_SHIFT 0U
+#define PINMUX_BALL_E1_SHIFT 16U
+#define PINMUX_BALL_E3_SHIFT 8U
+#define PINMUX_BALL_E18_SHIFT 0U
+#define PINMUX_BALL_E19_SHIFT 0U
+#define PINMUX_BALL_F3_SHIFT 16U
+#define PINMUX_BALL_G3_SHIFT 8U
+#define PINMUX_BALL_G19_SHIFT 16U
+#define PINMUX_BALL_H3_SHIFT 16U
+#define PINMUX_BALL_H18_SHIFT 24U
+#define PINMUX_BALL_H19_SHIFT 16U
+#define PINMUX_BALL_J1_SHIFT 8U
+#define PINMUX_BALL_J3_SHIFT 24U
+#define PINMUX_BALL_J18_SHIFT 0U
+#define PINMUX_BALL_J19_SHIFT 8U
+#define PINMUX_BALL_K2_SHIFT 8U
+#define PINMUX_BALL_K17_SHIFT 0U
+#define PINMUX_BALL_K18_SHIFT 0U
+#define PINMUX_BALL_K19_SHIFT 8U
+#define PINMUX_BALL_M1_SHIFT 0U
+#define PINMUX_BALL_M2_SHIFT 24U
+#define PINMUX_BALL_N1_SHIFT 16U
+#define PINMUX_BALL_N2_SHIFT 0U
+#define PINMUX_BALL_N17_SHIFT 16U
+#define PINMUX_BALL_N19_SHIFT 0U
+#define PINMUX_BALL_P1_SHIFT 24U
+#define PINMUX_BALL_P2_SHIFT 16U
+#define PINMUX_BALL_R2_SHIFT 24U
+#define PINMUX_BALL_T1_SHIFT 0U
+#define PINMUX_BALL_U1_SHIFT 24U
+#define PINMUX_BALL_V2_SHIFT 16U
+#define PINMUX_BALL_V5_SHIFT 8U
+#define PINMUX_BALL_V6_SHIFT 16U
+#define PINMUX_BALL_V7_SHIFT 16U
+#define PINMUX_BALL_V8_SHIFT 8U
+#define PINMUX_BALL_V9_SHIFT 24U
+#define PINMUX_BALL_V10_SHIFT 16U
+#define PINMUX_BALL_W3_SHIFT 16U
+#define PINMUX_BALL_W5_SHIFT 8U
+#define PINMUX_BALL_W8_SHIFT 16U
+#define PINMUX_BALL_W9_SHIFT 8U
+#define PINMUX_BALL_W10_SHIFT 0U
+
+#define PINMUX_GATE_EMIF_CLK_SHIFT 8U
+#define PINMUX_GIOB_DISABLE_HET2_SHIFT 16U
+#define PINMUX_ALT_ADC_TRIGGER_SHIFT 0U
+#define PINMUX_ETHERNET_SHIFT 24U
+#define PINMUX_ETPWM1_SHIFT 0U
+#define PINMUX_ETPWM2_SHIFT 8U
+#define PINMUX_ETPWM3_SHIFT 16U
+#define PINMUX_ETPWM4_SHIFT 24U
+#define PINMUX_ETPWM5_SHIFT 0U
+#define PINMUX_ETPWM6_SHIFT 8U
+#define PINMUX_ETPWM7_SHIFT 16U
+#define PINMUX_ETPWM_TIME_BASE_SYNC_SHIFT 24U
+#define PINMUX_ETPWM_TBCLK_SYNC_SHIFT 0U
+#define PINMUX_TZ1_SHIFT 16U
+#define PINMUX_TZ2_SHIFT 24U
+#define PINMUX_TZ3_SHIFT 0U
+#define PINMUX_EPWM1SYNCI_SHIFT 8U
+
+#define PINMUX_BALL_A4_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_A4_SHIFT ) )
+#define PINMUX_BALL_A5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_A5_SHIFT ) )
+#define PINMUX_BALL_A11_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_A11_SHIFT ) )
+#define PINMUX_BALL_A14_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_A14_SHIFT ) )
+#define PINMUX_BALL_B2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B2_SHIFT ) )
+#define PINMUX_BALL_B3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B3_SHIFT ) )
+#define PINMUX_BALL_B4_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B4_SHIFT ) )
+#define PINMUX_BALL_B5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B5_SHIFT ) )
+#define PINMUX_BALL_B11_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B11_SHIFT ) )
+#define PINMUX_BALL_B12_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_B12_SHIFT ) )
+#define PINMUX_BALL_C1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C1_SHIFT ) )
+#define PINMUX_BALL_C2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C2_SHIFT ) )
+#define PINMUX_BALL_C3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C3_SHIFT ) )
+#define PINMUX_BALL_C4_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C4_SHIFT ) )
+#define PINMUX_BALL_C5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C5_SHIFT ) )
+#define PINMUX_BALL_C6_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_C6_SHIFT ) )
+#define PINMUX_BALL_D3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D3_SHIFT ) )
+#define PINMUX_BALL_D4_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D4_SHIFT ) )
+#define PINMUX_BALL_D5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D5_SHIFT ) )
+#define PINMUX_BALL_D16_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D16_SHIFT ) )
+#define PINMUX_BALL_D17_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D17_SHIFT ) )
+#define PINMUX_BALL_D19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_D19_SHIFT ) )
+#define PINMUX_BALL_E1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_E1_SHIFT ) )
+#define PINMUX_BALL_E3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E18_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_E18_SHIFT ) )
+#define PINMUX_BALL_E19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_E19_SHIFT ) )
+#define PINMUX_BALL_F3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_F3_SHIFT ) )
+#define PINMUX_BALL_G3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_G3_SHIFT ) )
+#define PINMUX_BALL_G19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_G19_SHIFT ) )
+#define PINMUX_BALL_H3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_H3_SHIFT ) )
+#define PINMUX_BALL_H18_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_H18_SHIFT ) )
+#define PINMUX_BALL_H19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_H19_SHIFT ) )
+#define PINMUX_BALL_J1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_J1_SHIFT ) )
+#define PINMUX_BALL_J3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_J3_SHIFT ) )
+#define PINMUX_BALL_J18_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_J18_SHIFT ) )
+#define PINMUX_BALL_J19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_J19_SHIFT ) )
+#define PINMUX_BALL_K2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_K2_SHIFT ) )
+#define PINMUX_BALL_K17_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_K17_SHIFT ) )
+#define PINMUX_BALL_K18_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_K18_SHIFT ) )
+#define PINMUX_BALL_K19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_K19_SHIFT ) )
+#define PINMUX_BALL_M1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_M1_SHIFT ) )
+#define PINMUX_BALL_M2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_M2_SHIFT ) )
+#define PINMUX_BALL_N1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_N1_SHIFT ) )
+#define PINMUX_BALL_N2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_N2_SHIFT ) )
+#define PINMUX_BALL_N17_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_N17_SHIFT ) )
+#define PINMUX_BALL_N19_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_N19_SHIFT ) )
+#define PINMUX_BALL_P1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_P1_SHIFT ) )
+#define PINMUX_BALL_P2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_P2_SHIFT ) )
+#define PINMUX_BALL_R2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_R2_SHIFT ) )
+#define PINMUX_BALL_T1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_T1_SHIFT ) )
+#define PINMUX_BALL_T12_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_T12_SHIFT ) )
+#define PINMUX_BALL_U1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_V2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V5_SHIFT ) )
+#define PINMUX_BALL_V6_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V6_SHIFT ) )
+#define PINMUX_BALL_V7_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V7_SHIFT ) )
+#define PINMUX_BALL_V8_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V8_SHIFT ) )
+#define PINMUX_BALL_V9_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V9_SHIFT ) )
+#define PINMUX_BALL_V10_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_V10_SHIFT ) )
+#define PINMUX_BALL_W3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_W3_SHIFT ) )
+#define PINMUX_BALL_W5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_W5_SHIFT ) )
+#define PINMUX_BALL_W8_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_W8_SHIFT ) )
+#define PINMUX_BALL_W9_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_W9_SHIFT ) )
+#define PINMUX_BALL_W10_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_BALL_W10_SHIFT ) )
+
+#define PINMUX_GATE_EMIF_CLK_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_GATE_EMIF_CLK_SHIFT ) )
+#define PINMUX_GIOB_DISABLE_HET2_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_GIOB_DISABLE_HET2_SHIFT ) )
+#define PINMUX_ALT_ADC_TRIGGER_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ALT_ADC_TRIGGER_SHIFT ) )
+#define PINMUX_ETHERNET_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETHERNET_SHIFT ) )
+
+#define PINMUX_ETPWM1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM1_SHIFT ) )
+#define PINMUX_ETPWM2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM2_SHIFT ) )
+#define PINMUX_ETPWM3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM3_SHIFT ) )
+#define PINMUX_ETPWM4_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM4_SHIFT ) )
+#define PINMUX_ETPWM5_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM5_SHIFT ) )
+#define PINMUX_ETPWM6_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM6_SHIFT ) )
+#define PINMUX_ETPWM7_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM7_SHIFT ) )
+#define PINMUX_ETPWM_TIME_BASE_SYNC_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM_TIME_BASE_SYNC_SHIFT ) )
+#define PINMUX_ETPWM_TBCLK_SYNC_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_ETPWM_TBCLK_SYNC_SHIFT ) )
+#define PINMUX_TZ1_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_TZ1_SHIFT ) )
+#define PINMUX_TZ2_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_TZ2_SHIFT ) )
+#define PINMUX_TZ3_MASK ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_TZ3_SHIFT ) )
+#define PINMUX_EPWM1SYNCI_MASK \
+ ( ~( uint32 ) ( ( uint32 ) 0xFFU << PINMUX_EPWM1SYNCI_SHIFT ) )
+
+#define PINMUX_BALL_A4_HET1_16 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_A4_SHIFT ) )
+#define PINMUX_BALL_A4_ETPWM1SYNCI \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_A4_SHIFT ) )
+#define PINMUX_BALL_A4_ETPWM1SYNCO \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_A4_SHIFT ) )
+
+#define PINMUX_BALL_A5_GIOA_0 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_A5_SHIFT ) )
+#define PINMUX_BALL_A5_OHCI_PRT_RcvDpls_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_A5_SHIFT ) )
+#define PINMUX_BALL_A5_W2FC_RXDPI \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_A5_SHIFT ) )
+
+#define PINMUX_BALL_A11_HET1_14 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_A11_SHIFT ) )
+#define PINMUX_BALL_A11_OHCI_RCFG_txSe0_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_A11_SHIFT ) )
+
+#define PINMUX_BALL_A14_HET1_26 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_A14_SHIFT ) )
+#define PINMUX_BALL_A14_MII_RXD_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_A14_SHIFT ) )
+#define PINMUX_BALL_A14_RMII_RXD_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_A14_SHIFT ) )
+
+#define PINMUX_BALL_B2_MIBSPI3NCS_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B2_SHIFT ) )
+#define PINMUX_BALL_B2_I2C_SDA ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B2_SHIFT ) )
+#define PINMUX_BALL_B2_HET1_27 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_B2_SHIFT ) )
+#define PINMUX_BALL_B2_nTZ2 ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_B2_SHIFT ) )
+
+#define PINMUX_BALL_B3_HET1_22 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B3_SHIFT ) )
+#define PINMUX_BALL_B3_OHCI_RCFG_txSe0_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B3_SHIFT ) )
+#define PINMUX_BALL_B3_W2FC_SE0O \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_B3_SHIFT ) )
+
+#define PINMUX_BALL_B4_HET1_12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B4_SHIFT ) )
+#define PINMUX_BALL_B4_MII_CRS ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B4_SHIFT ) )
+#define PINMUX_BALL_B4_RMII_CRS_DV \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_B4_SHIFT ) )
+
+#define PINMUX_BALL_B5_GIOA_5 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B5_SHIFT ) )
+#define PINMUX_BALL_B5_EXTCLKIN ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B5_SHIFT ) )
+#define PINMUX_BALL_B5_ETPWM1A ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_B5_SHIFT ) )
+
+#define PINMUX_BALL_B11_HET1_30 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B11_SHIFT ) )
+#define PINMUX_BALL_B11_MII_RX_DV \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B11_SHIFT ) )
+#define PINMUX_BALL_B11_OHCI_RCFG_speed_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_B11_SHIFT ) )
+#define PINMUX_BALL_B11_EQEP2S ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_B11_SHIFT ) )
+
+#define PINMUX_BALL_B12_HET1_04 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_B12_SHIFT ) )
+#define PINMUX_BALL_B12_ETPWM4B \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_B12_SHIFT ) )
+
+#define PINMUX_BALL_C1_GIOA_2 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C1_SHIFT ) )
+#define PINMUX_BALL_C1_OHCI_RCFG_txdPls_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_C1_SHIFT ) )
+#define PINMUX_BALL_C1_W2FC_TXDO \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C1_SHIFT ) )
+#define PINMUX_BALL_C1_HET2_0 ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_C1_SHIFT ) )
+#define PINMUX_BALL_C1_EQEP2I ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_C1_SHIFT ) )
+
+#define PINMUX_BALL_C2_GIOA_1 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C2_SHIFT ) )
+#define PINMUX_BALL_C2_OHCI_PRT_RcvDmns_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_C2_SHIFT ) )
+#define PINMUX_BALL_C2_W2FC_RXDMI \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C2_SHIFT ) )
+
+#define PINMUX_BALL_C3_MIBSPI3NCS_3 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C3_SHIFT ) )
+#define PINMUX_BALL_C3_I2C_SCL ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_C3_SHIFT ) )
+#define PINMUX_BALL_C3_HET1_29 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C3_SHIFT ) )
+#define PINMUX_BALL_C3_nTZ1 ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_C3_SHIFT ) )
+
+#define PINMUX_BALL_C4_EMIF_ADDR_6 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C4_SHIFT ) )
+#define PINMUX_BALL_C4_HET2_11 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C4_SHIFT ) )
+
+#define PINMUX_BALL_C5_EMIF_ADDR_7 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C5_SHIFT ) )
+#define PINMUX_BALL_C5_HET2_13 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C5_SHIFT ) )
+
+#define PINMUX_BALL_C6_EMIF_ADDR_8 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_C6_SHIFT ) )
+#define PINMUX_BALL_C6_HET2_15 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_C6_SHIFT ) )
+
+#define PINMUX_BALL_D3_SPI2NENA ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D3_SHIFT ) )
+#define PINMUX_BALL_D3_SPI2NCS_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D3_SHIFT ) )
+
+#define PINMUX_BALL_D4_EMIF_ADDR_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D4_SHIFT ) )
+#define PINMUX_BALL_D4_HET2_1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D4_SHIFT ) )
+
+#define PINMUX_BALL_D5_EMIF_ADDR_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D5_SHIFT ) )
+#define PINMUX_BALL_D5_HET2_3 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D5_SHIFT ) )
+
+#define PINMUX_BALL_D16_EMIF_BA_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D16_SHIFT ) )
+#define PINMUX_BALL_D16_HET2_5 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D16_SHIFT ) )
+
+#define PINMUX_BALL_D17_EMIF_nWE \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D17_SHIFT ) )
+#define PINMUX_BALL_D17_EMIF_RNW \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D17_SHIFT ) )
+
+#define PINMUX_BALL_D19_HET1_10 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_D19_SHIFT ) )
+#define PINMUX_BALL_D19_MII_TX_CLK \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_D19_SHIFT ) )
+#define PINMUX_BALL_D19_OHCI_RCFG_txEnL_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_D19_SHIFT ) )
+#define PINMUX_BALL_D19_MII_TX_AVCLK4 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_D19_SHIFT ) )
+#define PINMUX_BALL_D19_nTZ3 ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_D19_SHIFT ) )
+
+#define PINMUX_BALL_E1_GIOA_3 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_E1_SHIFT ) )
+#define PINMUX_BALL_E1_HET2_02 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_E1_SHIFT ) )
+
+#define PINMUX_BALL_E3_HET1_11 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E3_MIBSPI3NCS_4 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E3_HET2_18 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E3_OHCI_PRT_OvrCurrent_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E3_W2FC_VBUSI \
+ ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_E3_SHIFT ) )
+#define PINMUX_BALL_E3_ETPWM1SYNCO \
+ ( ( uint32 ) ( ( uint32 ) 0x20U << PINMUX_BALL_E3_SHIFT ) )
+
+#define PINMUX_BALL_E18_HET1_08 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_E18_SHIFT ) )
+#define PINMUX_BALL_E18_MIBSPI1SIMO_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_E18_SHIFT ) )
+#define PINMUX_BALL_E18_MII_TXD_3 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_E18_SHIFT ) )
+#define PINMUX_BALL_E18_OHCI_PRT_OvrCurrent_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_E18_SHIFT ) )
+
+#define PINMUX_BALL_E19_MIBSPI5NCS_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_E19_SHIFT ) )
+#define PINMUX_BALL_E19_ETPWM4A \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_E19_SHIFT ) )
+
+#define PINMUX_BALL_F3_MIBSPI1NCS_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_F3_SHIFT ) )
+#define PINMUX_BALL_F3_HET1_17 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_F3_SHIFT ) )
+#define PINMUX_BALL_F3_MII_COL ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_F3_SHIFT ) )
+#define PINMUX_BALL_F3_OHCI_RCFG_suspend_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_F3_SHIFT ) )
+#define PINMUX_BALL_F3_EQEP1S ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_F3_SHIFT ) )
+
+#define PINMUX_BALL_G3_MIBSPI1NCS_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_G3_SHIFT ) )
+#define PINMUX_BALL_G3_HET1_19 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_G3_SHIFT ) )
+#define PINMUX_BALL_G3_MDIO ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_G3_SHIFT ) )
+
+#define PINMUX_BALL_G19_MIBSPI1NENA \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_G19_SHIFT ) )
+#define PINMUX_BALL_G19_HET1_23 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_G19_SHIFT ) )
+#define PINMUX_BALL_G19_MII_RXD_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_G19_SHIFT ) )
+#define PINMUX_BALL_G19_OHCI_PRT_RcvDpls_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_G19_SHIFT ) )
+#define PINMUX_BALL_G19_ECAP4 ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_G19_SHIFT ) )
+
+#define PINMUX_BALL_H3_GIOA_6 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_H3_SHIFT ) )
+#define PINMUX_BALL_H3_HET2_04 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_H3_SHIFT ) )
+#define PINMUX_BALL_H3_ETPWM1B ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_H3_SHIFT ) )
+
+#define PINMUX_BALL_H18_MIBSPI5NENA \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_H18_SHIFT ) )
+#define PINMUX_BALL_H18_MII_RXD_3 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_H18_SHIFT ) )
+#define PINMUX_BALL_H18_OHCI_PRT_RcvDmns_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_H18_SHIFT ) )
+#define PINMUX_BALL_H18_MIBSPI5SOMI_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_H18_SHIFT ) )
+#define PINMUX_BALL_H18_ECAP5 ( ( uint32 ) ( ( uint32 ) 0x20U << PINMUX_BALL_H18_SHIFT ) )
+
+#define PINMUX_BALL_H19_MIBSPI5CLK \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_H19_SHIFT ) )
+#define PINMUX_BALL_H19_MII_TXEN \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_H19_SHIFT ) )
+#define PINMUX_BALL_H19_RMII_TXEN \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_H19_SHIFT ) )
+
+#define PINMUX_BALL_J1_HET1_18 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_J1_SHIFT ) )
+#define PINMUX_BALL_J1_ETPWM6A ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_J1_SHIFT ) )
+
+#define PINMUX_BALL_J3_MIBSPI1NCS_3 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_J3_SHIFT ) )
+#define PINMUX_BALL_J3_HET1_21 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_J3_SHIFT ) )
+
+#define PINMUX_BALL_J18_MIBSPI5SOMI_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_J18_SHIFT ) )
+#define PINMUX_BALL_J18_MII_TXD_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_J18_SHIFT ) )
+#define PINMUX_BALL_J18_RMII_TXD_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_J18_SHIFT ) )
+
+#define PINMUX_BALL_J19_MIBSPI5SIMO_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_J19_SHIFT ) )
+#define PINMUX_BALL_J19_MII_TXD_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_J19_SHIFT ) )
+#define PINMUX_BALL_J19_RMII_TXD_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_J19_SHIFT ) )
+#define PINMUX_BALL_J19_MIBSPI5SOMI_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_J19_SHIFT ) )
+
+#define PINMUX_BALL_K2_GIOB_1 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_K2_SHIFT ) )
+#define PINMUX_BALL_K2_OHCI_RCFG_PrtPower_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_K2_SHIFT ) )
+
+#define PINMUX_BALL_K17_EMIF_nCS_3 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_K17_SHIFT ) )
+#define PINMUX_BALL_K17_HET2_09 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_K17_SHIFT ) )
+
+#define PINMUX_BALL_K18_HET1_0 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_K18_SHIFT ) )
+#define PINMUX_BALL_K18_SPI4CLK \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_K18_SHIFT ) )
+#define PINMUX_BALL_K18_ETPWM2B \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_K18_SHIFT ) )
+
+#define PINMUX_BALL_K19_HET1_28 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_K19_SHIFT ) )
+#define PINMUX_BALL_K19_MII_RXCLK \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_K19_SHIFT ) )
+#define PINMUX_BALL_K19_RMII_REFCLK \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_K19_SHIFT ) )
+#define PINMUX_BALL_K19_MII_RX_AVCLK4 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_K19_SHIFT ) )
+
+#define PINMUX_BALL_M1_GIOA_7 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_M1_SHIFT ) )
+#define PINMUX_BALL_M1_HET2_06 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_M1_SHIFT ) )
+#define PINMUX_BALL_M1_ETPWM2A ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_M1_SHIFT ) )
+
+#define PINMUX_BALL_M2_GIOB_0 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_M2_SHIFT ) )
+#define PINMUX_BALL_M2_OHCI_RCFG_txDpls_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_M2_SHIFT ) )
+
+#define PINMUX_BALL_N1_HET1_15 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_N1_SHIFT ) )
+#define PINMUX_BALL_N1_MIBSPI1NCS_4 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_N1_SHIFT ) )
+#define PINMUX_BALL_N1_ECAP1 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_N1_SHIFT ) )
+
+#define PINMUX_BALL_N2_HET1_13 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_N2_SHIFT ) )
+#define PINMUX_BALL_N2_SCITX ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_N2_SHIFT ) )
+#define PINMUX_BALL_N2_ETPWM5B ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_N2_SHIFT ) )
+
+#define PINMUX_BALL_N17_EMIF_nCS_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_N17_SHIFT ) )
+#define PINMUX_BALL_N17_HET2_07 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_N17_SHIFT ) )
+
+#define PINMUX_BALL_N19_AD1EVT ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_N19_SHIFT ) )
+#define PINMUX_BALL_N19_MII_RX_ER \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_N19_SHIFT ) )
+#define PINMUX_BALL_N19_RMII_RX_ER \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_N19_SHIFT ) )
+
+#define PINMUX_BALL_P1_HET1_24 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_P1_SHIFT ) )
+#define PINMUX_BALL_P1_MIBSPI1NCS_5 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_P1_SHIFT ) )
+#define PINMUX_BALL_P1_MII_RXD_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_P1_SHIFT ) )
+#define PINMUX_BALL_P1_RMII_RXD_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_P1_SHIFT ) )
+
+#define PINMUX_BALL_P2_HET1_20 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_P2_SHIFT ) )
+#define PINMUX_BALL_P2_ETPWM6B ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_P2_SHIFT ) )
+
+#define PINMUX_BALL_R2_MIBSPI1NCS_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_R2_SHIFT ) )
+#define PINMUX_BALL_R2_MIBSPI1SOMI_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_R2_SHIFT ) )
+#define PINMUX_BALL_R2_MII_TXD_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_R2_SHIFT ) )
+#define PINMUX_BALL_R2_OHCI_PRT_RcvData_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_R2_SHIFT ) )
+#define PINMUX_BALL_R2_ECAP6 ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_R2_SHIFT ) )
+
+#define PINMUX_BALL_T1_HET1_07 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_T1_SHIFT ) )
+#define PINMUX_BALL_T1_OHCI_RCFG_PrtPower_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_T1_SHIFT ) )
+#define PINMUX_BALL_T1_W2FC_GZO ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_T1_SHIFT ) )
+#define PINMUX_BALL_T1_HET2_14 ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_T1_SHIFT ) )
+#define PINMUX_BALL_T1_ETPWM7B ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_T1_SHIFT ) )
+
+#define PINMUX_BALL_U1_HET1_03 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_U1_SPI4NCS_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_U1_OHCI_RCFG_speed_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_U1_W2FC_PUENON \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_U1_HET2_10 ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_U1_SHIFT ) )
+#define PINMUX_BALL_U1_EQEP2B ( ( uint32 ) ( ( uint32 ) 0x20U << PINMUX_BALL_U1_SHIFT ) )
+
+#define PINMUX_BALL_V2_HET1_01 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V2_SPI4NENA ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V2_OHCI_RCFG_txEnL_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V2_W2FC_PUENO \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V2_HET2_08 ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_V2_SHIFT ) )
+#define PINMUX_BALL_V2_EQEP2A ( ( uint32 ) ( ( uint32 ) 0x20U << PINMUX_BALL_V2_SHIFT ) )
+
+#define PINMUX_BALL_V5_MIBSPI3NCS_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V5_SHIFT ) )
+#define PINMUX_BALL_V5_HET1_25 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V5_SHIFT ) )
+#define PINMUX_BALL_V5_MDCLK ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V5_SHIFT ) )
+
+#define PINMUX_BALL_V6_HET1_05 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V6_SHIFT ) )
+#define PINMUX_BALL_V6_SPI4SOMI ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V6_SHIFT ) )
+#define PINMUX_BALL_V6_HET2_12 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V6_SHIFT ) )
+#define PINMUX_BALL_V6_ETPWM3B ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_V6_SHIFT ) )
+
+#define PINMUX_BALL_V7_HET1_09 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V7_SHIFT ) )
+#define PINMUX_BALL_V7_HET2_16 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V7_SHIFT ) )
+#define PINMUX_BALL_V7_OHCI_RCFG_suspend_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V7_SHIFT ) )
+#define PINMUX_BALL_V7_W2FC_SUSPENDO \
+ ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_V7_SHIFT ) )
+#define PINMUX_BALL_V7_ETPWM7A ( ( uint32 ) ( ( uint32 ) 0x10U << PINMUX_BALL_V7_SHIFT ) )
+
+#define PINMUX_BALL_V8_MIBSPI3SOMI \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V8_SHIFT ) )
+#define PINMUX_BALL_V8_AWM_EXT_ENA \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V8_SHIFT ) )
+#define PINMUX_BALL_V8_ECAP2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V8_SHIFT ) )
+
+#define PINMUX_BALL_V9_MIBSPI3CLK \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V9_SHIFT ) )
+#define PINMUX_BALL_V9_AWM_EXT_SEL_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V9_SHIFT ) )
+#define PINMUX_BALL_V9_EQEP1A ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V9_SHIFT ) )
+
+#define PINMUX_BALL_V10_MIBSPI3NCS_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_V10_SHIFT ) )
+#define PINMUX_BALL_V10_AD2EVT ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_V10_SHIFT ) )
+#define PINMUX_BALL_V10_GIOB_2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_V10_SHIFT ) )
+#define PINMUX_BALL_V10_EQEP1I ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_V10_SHIFT ) )
+
+#define PINMUX_BALL_W3_HET1_06 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_W3_SHIFT ) )
+#define PINMUX_BALL_W3_SCIRX ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_W3_SHIFT ) )
+#define PINMUX_BALL_W3_ETPWM5A ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_W3_SHIFT ) )
+
+#define PINMUX_BALL_W5_HET1_02 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_W5_SHIFT ) )
+#define PINMUX_BALL_W5_SPI4SIMO ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_W5_SHIFT ) )
+#define PINMUX_BALL_W5_ETPWM3A ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_W5_SHIFT ) )
+
+#define PINMUX_BALL_W8_MIBSPI3SIMO \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_W8_SHIFT ) )
+#define PINMUX_BALL_W8_AWM_EXT_SEL_0 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_W8_SHIFT ) )
+#define PINMUX_BALL_W8_ECAP3 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_W8_SHIFT ) )
+
+#define PINMUX_BALL_W9_MIBSPI3NENA \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_W9_SHIFT ) )
+#define PINMUX_BALL_W9_MIBSPI3NCS_5 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_W9_SHIFT ) )
+#define PINMUX_BALL_W9_HET1_31 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_W9_SHIFT ) )
+#define PINMUX_BALL_W9_EQEP1B ( ( uint32 ) ( ( uint32 ) 0x8U << PINMUX_BALL_W9_SHIFT ) )
+
+#define PINMUX_BALL_W10_GIOB_3 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_BALL_W10_SHIFT ) )
+#define PINMUX_BALL_W10_OHCI_PRT_RcvData_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_BALL_W10_SHIFT ) )
+#define PINMUX_BALL_W10_W2FC_RXDI \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_BALL_W10_SHIFT ) )
+
+#define PINMUX_GATE_EMIF_CLK_ON \
+ ( ( uint32 ) ( ( uint32 ) 0x0U << PINMUX_GATE_EMIF_CLK_SHIFT ) )
+#define PINMUX_GIOB_DISABLE_HET2_ON \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_GIOB_DISABLE_HET2_SHIFT ) )
+#define PINMUX_GATE_EMIF_CLK_OFF \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_GATE_EMIF_CLK_SHIFT ) )
+#define PINMUX_GIOB_DISABLE_HET2_OFF \
+ ( ( uint32 ) ( ( uint32 ) 0x0U << PINMUX_GIOB_DISABLE_HET2_SHIFT ) )
+#define PINMUX_ALT_ADC_TRIGGER_1 \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ALT_ADC_TRIGGER_SHIFT ) )
+#define PINMUX_ALT_ADC_TRIGGER_2 \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ALT_ADC_TRIGGER_SHIFT ) )
+#define PINMUX_ETHERNET_MII ( ( uint32 ) ( ( uint32 ) 0x0U << PINMUX_ETHERNET_SHIFT ) )
+#define PINMUX_ETHERNET_RMII ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETHERNET_SHIFT ) )
+
+#define PINMUX_ETPWM1_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM1_SHIFT ) )
+#define PINMUX_ETPWM1_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM1_SHIFT ) )
+#define PINMUX_ETPWM1_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM1_SHIFT ) )
+#define PINMUX_ETPWM2_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM2_SHIFT ) )
+#define PINMUX_ETPWM2_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM2_SHIFT ) )
+#define PINMUX_ETPWM2_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM2_SHIFT ) )
+#define PINMUX_ETPWM3_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM3_SHIFT ) )
+#define PINMUX_ETPWM3_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM3_SHIFT ) )
+#define PINMUX_ETPWM3_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM3_SHIFT ) )
+#define PINMUX_ETPWM4_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM4_SHIFT ) )
+#define PINMUX_ETPWM4_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM4_SHIFT ) )
+#define PINMUX_ETPWM4_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM4_SHIFT ) )
+#define PINMUX_ETPWM5_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM5_SHIFT ) )
+#define PINMUX_ETPWM5_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM5_SHIFT ) )
+#define PINMUX_ETPWM5_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM5_SHIFT ) )
+#define PINMUX_ETPWM6_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM6_SHIFT ) )
+#define PINMUX_ETPWM6_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM6_SHIFT ) )
+#define PINMUX_ETPWM6_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM6_SHIFT ) )
+#define PINMUX_ETPWM7_EQEPERR12 ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_ETPWM7_SHIFT ) )
+#define PINMUX_ETPWM7_EQEPERR1 ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM7_SHIFT ) )
+#define PINMUX_ETPWM7_EQEPERR2 ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_ETPWM7_SHIFT ) )
+#define PINMUX_ETPWM_TIME_BASE_SYNC_ON \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM_TIME_BASE_SYNC_SHIFT ) )
+#define PINMUX_ETPWM_TBCLK_SYNC_ON \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_ETPWM_TBCLK_SYNC_SHIFT ) )
+#define PINMUX_ETPWM_TIME_BASE_SYNC_OFF \
+ ( ( uint32 ) ( ( uint32 ) 0x0U << PINMUX_ETPWM_TIME_BASE_SYNC_SHIFT ) )
+#define PINMUX_ETPWM_TBCLK_SYNC_OFF \
+ ( ( uint32 ) ( ( uint32 ) 0x0U << PINMUX_ETPWM_TBCLK_SYNC_SHIFT ) )
+#define PINMUX_TZ1_ASYNC ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_TZ1_SHIFT ) )
+#define PINMUX_TZ1_SYNC ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_TZ1_SHIFT ) )
+#define PINMUX_TZ1_FILTERED ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_TZ1_SHIFT ) )
+#define PINMUX_TZ2_ASYNC ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_TZ2_SHIFT ) )
+#define PINMUX_TZ2_SYNC ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_TZ2_SHIFT ) )
+#define PINMUX_TZ2_FILTERED ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_TZ2_SHIFT ) )
+#define PINMUX_TZ3_ASYNC ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_TZ3_SHIFT ) )
+#define PINMUX_TZ3_SYNC ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_TZ3_SHIFT ) )
+#define PINMUX_TZ3_FILTERED ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_TZ3_SHIFT ) )
+#define PINMUX_EPWM1SYNCI_ASYNC \
+ ( ( uint32 ) ( ( uint32 ) 0x1U << PINMUX_EPWM1SYNCI_SHIFT ) )
+#define PINMUX_EPWM1SYNCI_SYNC \
+ ( ( uint32 ) ( ( uint32 ) 0x2U << PINMUX_EPWM1SYNCI_SHIFT ) )
+#define PINMUX_EPWM1SYNCI_FILTERED \
+ ( ( uint32 ) ( ( uint32 ) 0x4U << PINMUX_EPWM1SYNCI_SHIFT ) )
+
+typedef struct pinmux_config_reg
+{
+ uint32 CONFIG_PINMMR0;
+ uint32 CONFIG_PINMMR1;
+ uint32 CONFIG_PINMMR2;
+ uint32 CONFIG_PINMMR3;
+ uint32 CONFIG_PINMMR4;
+ uint32 CONFIG_PINMMR5;
+ uint32 CONFIG_PINMMR6;
+ uint32 CONFIG_PINMMR7;
+ uint32 CONFIG_PINMMR8;
+ uint32 CONFIG_PINMMR9;
+ uint32 CONFIG_PINMMR10;
+ uint32 CONFIG_PINMMR11;
+ uint32 CONFIG_PINMMR12;
+ uint32 CONFIG_PINMMR13;
+ uint32 CONFIG_PINMMR14;
+ uint32 CONFIG_PINMMR15;
+ uint32 CONFIG_PINMMR16;
+ uint32 CONFIG_PINMMR17;
+ uint32 CONFIG_PINMMR18;
+ uint32 CONFIG_PINMMR19;
+ uint32 CONFIG_PINMMR20;
+ uint32 CONFIG_PINMMR21;
+ uint32 CONFIG_PINMMR22;
+ uint32 CONFIG_PINMMR23;
+ uint32 CONFIG_PINMMR24;
+ uint32 CONFIG_PINMMR25;
+ uint32 CONFIG_PINMMR26;
+ uint32 CONFIG_PINMMR27;
+ uint32 CONFIG_PINMMR28;
+ uint32 CONFIG_PINMMR29;
+ uint32 CONFIG_PINMMR30;
+ uint32 CONFIG_PINMMR31;
+ uint32 CONFIG_PINMMR32;
+ uint32 CONFIG_PINMMR33;
+ uint32 CONFIG_PINMMR34;
+ uint32 CONFIG_PINMMR35;
+ uint32 CONFIG_PINMMR36;
+ uint32 CONFIG_PINMMR37;
+ uint32 CONFIG_PINMMR38;
+ uint32 CONFIG_PINMMR39;
+ uint32 CONFIG_PINMMR40;
+ uint32 CONFIG_PINMMR41;
+ uint32 CONFIG_PINMMR42;
+ uint32 CONFIG_PINMMR43;
+ uint32 CONFIG_PINMMR44;
+ uint32 CONFIG_PINMMR45;
+ uint32 CONFIG_PINMMR46;
+ uint32 CONFIG_PINMMR47;
+} pinmux_config_reg_t;
+
+/**
+ * @defgroup IOMM IOMM
+ * @brief I/O Multiplexing and Control Module.
+ *
+ * The IOMM contains memory-mapped registers (MMR) that control device-specific
+ * multiplexed functions. The safety and diagnostic features of the IOMM are:
+ * - Kicker mechanism to protect the MMRs from accidental writes
+ * - Master-id checker to only allow the CPU to write to the MMRs
+ * - Error indication for access violations
+ *
+ * Related Files
+ * - reg_pinmux.h
+ * - pinmux.h
+ * - pinmux.c
+ * @addtogroup IOMM
+ * @{
+ */
+
+/** @fn void muxInit(void)
+ * @brief Initializes the PINMUX Driver
+ *
+ * This function initializes the PINMUX module and configures the selected
+ * pinmux settings as per the user selection in the GUI
+ */
+void muxInit( void );
+void pinmuxGetConfigValue( pinmux_config_reg_t * config_reg, config_value_type_t type );
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+#endif /* ifndef __PINMUX_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pom.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pom.h
new file mode 100644
index 000000000..72adb4df8
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/pom.h
@@ -0,0 +1,238 @@
+/** @file pom.h
+ * @brief POM Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __POM_H__
+#define __POM_H__
+
+#include "reg_pom.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @enum pom_region_size
+ * @brief Alias names for pom region size
+ * This enumeration is used to provide alias names for POM region size:
+ */
+enum pom_region_size
+{
+ SIZE_32BYTES = 0U,
+ SIZE_64BYTES = 1U,
+ SIZE_128BYTES = 2U,
+ SIZE_256BYTES = 3U,
+ SIZE_512BYTES = 4U,
+ SIZE_1KB = 5U,
+ SIZE_2KB = 6U,
+ SIZE_4KB = 7U,
+ SIZE_8KB = 8U,
+ SIZE_16KB = 9U,
+ SIZE_32KB = 10U,
+ SIZE_64KB = 11U,
+ SIZE_128KB = 12U,
+ SIZE_256KB = 13U
+};
+
+/** @def INTERNAL_RAM
+ * @brief Alias name for Internal RAM
+ */
+#define INTERNAL_RAM 0x08000000U
+
+/** @def SDRAM
+ * @brief Alias name for SD RAM
+ */
+#define SDRAM 0x80000000U
+
+/** @def ASYNC_MEMORY
+ * @brief Alias name for Async RAM
+ */
+#define ASYNC_MEMORY 0x60000000U
+
+typedef uint32 REGION_t;
+
+/** @struct REGION_CONFIG_ST
+ * @brief POM region configuration
+ */
+typedef struct
+{
+ uint32 Prog_Reg_Sta_Addr;
+ uint32 Ovly_Reg_Sta_Addr;
+ uint32 Reg_Size;
+} REGION_CONFIG_t;
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Configuration registers */
+typedef struct pom_config_reg
+{
+ uint32 CONFIG_POMGLBCTRL;
+ uint32 CONFIG_POMPROGSTART0;
+ uint32 CONFIG_POMOVLSTART0;
+ uint32 CONFIG_POMREGSIZE0;
+ uint32 CONFIG_POMPROGSTART1;
+ uint32 CONFIG_POMOVLSTART1;
+ uint32 CONFIG_POMREGSIZE1;
+ uint32 CONFIG_POMPROGSTART2;
+ uint32 CONFIG_POMOVLSTART2;
+ uint32 CONFIG_POMREGSIZE2;
+ uint32 CONFIG_POMPROGSTART3;
+ uint32 CONFIG_POMOVLSTART3;
+ uint32 CONFIG_POMREGSIZE3;
+ uint32 CONFIG_POMPROGSTART4;
+ uint32 CONFIG_POMOVLSTART4;
+ uint32 CONFIG_POMREGSIZE4;
+ uint32 CONFIG_POMPROGSTART5;
+ uint32 CONFIG_POMOVLSTART5;
+ uint32 CONFIG_POMREGSIZE5;
+ uint32 CONFIG_POMPROGSTART6;
+ uint32 CONFIG_POMOVLSTART6;
+ uint32 CONFIG_POMREGSIZE6;
+ uint32 CONFIG_POMPROGSTART7;
+ uint32 CONFIG_POMOVLSTART7;
+ uint32 CONFIG_POMREGSIZE7;
+ uint32 CONFIG_POMPROGSTART8;
+ uint32 CONFIG_POMOVLSTART8;
+ uint32 CONFIG_POMREGSIZE8;
+ uint32 CONFIG_POMPROGSTART9;
+ uint32 CONFIG_POMOVLSTART9;
+ uint32 CONFIG_POMREGSIZE9;
+ uint32 CONFIG_POMPROGSTART10;
+ uint32 CONFIG_POMOVLSTART10;
+ uint32 CONFIG_POMREGSIZE10;
+ uint32 CONFIG_POMPROGSTART11;
+ uint32 CONFIG_POMOVLSTART11;
+ uint32 CONFIG_POMREGSIZE11;
+ uint32 CONFIG_POMPROGSTART12;
+ uint32 CONFIG_POMOVLSTART12;
+ uint32 CONFIG_POMREGSIZE12;
+ uint32 CONFIG_POMPROGSTART13;
+ uint32 CONFIG_POMOVLSTART13;
+ uint32 CONFIG_POMREGSIZE13;
+ uint32 CONFIG_POMPROGSTART14;
+ uint32 CONFIG_POMOVLSTART14;
+ uint32 CONFIG_POMREGSIZE14;
+ uint32 CONFIG_POMPROGSTART15;
+ uint32 CONFIG_POMOVLSTART15;
+ uint32 CONFIG_POMREGSIZE15;
+ uint32 CONFIG_POMPROGSTART16;
+ uint32 CONFIG_POMOVLSTART16;
+ uint32 CONFIG_POMREGSIZE16;
+ uint32 CONFIG_POMPROGSTART17;
+ uint32 CONFIG_POMOVLSTART17;
+ uint32 CONFIG_POMREGSIZE17;
+ uint32 CONFIG_POMPROGSTART18;
+ uint32 CONFIG_POMOVLSTART18;
+ uint32 CONFIG_POMREGSIZE18;
+ uint32 CONFIG_POMPROGSTART19;
+ uint32 CONFIG_POMOVLSTART19;
+ uint32 CONFIG_POMREGSIZE19;
+ uint32 CONFIG_POMPROGSTART20;
+ uint32 CONFIG_POMOVLSTART20;
+ uint32 CONFIG_POMREGSIZE20;
+ uint32 CONFIG_POMPROGSTART21;
+ uint32 CONFIG_POMOVLSTART21;
+ uint32 CONFIG_POMREGSIZE21;
+ uint32 CONFIG_POMPROGSTART22;
+ uint32 CONFIG_POMOVLSTART22;
+ uint32 CONFIG_POMREGSIZE22;
+ uint32 CONFIG_POMPROGSTART23;
+ uint32 CONFIG_POMOVLSTART23;
+ uint32 CONFIG_POMREGSIZE23;
+ uint32 CONFIG_POMPROGSTART24;
+ uint32 CONFIG_POMOVLSTART24;
+ uint32 CONFIG_POMREGSIZE24;
+ uint32 CONFIG_POMPROGSTART25;
+ uint32 CONFIG_POMOVLSTART25;
+ uint32 CONFIG_POMREGSIZE25;
+ uint32 CONFIG_POMPROGSTART26;
+ uint32 CONFIG_POMOVLSTART26;
+ uint32 CONFIG_POMREGSIZE26;
+ uint32 CONFIG_POMPROGSTART27;
+ uint32 CONFIG_POMOVLSTART27;
+ uint32 CONFIG_POMREGSIZE27;
+ uint32 CONFIG_POMPROGSTART28;
+ uint32 CONFIG_POMOVLSTART28;
+ uint32 CONFIG_POMREGSIZE28;
+ uint32 CONFIG_POMPROGSTART29;
+ uint32 CONFIG_POMOVLSTART29;
+ uint32 CONFIG_POMREGSIZE29;
+ uint32 CONFIG_POMPROGSTART30;
+ uint32 CONFIG_POMOVLSTART30;
+ uint32 CONFIG_POMREGSIZE30;
+ uint32 CONFIG_POMPROGSTART31;
+ uint32 CONFIG_POMOVLSTART31;
+ uint32 CONFIG_POMREGSIZE31;
+} pom_config_reg_t;
+
+/**
+ * @defgroup POM POM
+ * @brief Parameter Overlay Module.
+ *
+ * The POM provides a mechanism to redirect accesses to non-volatile memory into a
+ * volatile memory internal or external to the device. The data requested by the CPU will
+ * be fetched from the overlay memory instead of the main non-volatile memory.
+ *
+ * Related Files
+ * - reg_pom.h
+ * - pom.h
+ * - pom.c
+ * @addtogroup POM
+ * @{
+ */
+
+/* POM Interface Functions */
+void POM_Region_Config( REGION_CONFIG_t * Reg_Config_Ptr, REGION_t Region_Num );
+void POM_Reset( void );
+void POM_Init( void );
+void POM_Enable( void );
+void pomGetConfigValue( pom_config_reg_t * config_reg, config_value_type_t type );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+#endif /* __POM_H_*/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_adc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_adc.h
new file mode 100644
index 000000000..a42f6748f
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_adc.h
@@ -0,0 +1,263 @@
+/** @file reg_adc.h
+ * @brief ADC Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ADC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_ADC_H__
+#define __REG_ADC_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Adc Register Frame Definition */
+
+/** @struct adcBase
+ * @brief ADC Register Frame Definition
+ *
+ * This type is used to access the ADC Registers.
+ */
+
+/** @typedef adcBASE_t
+ * @brief ADC Register Frame Type Definition
+ *
+ * This type is used to access the ADC Registers.
+ */
+typedef volatile struct adcBase
+{
+ uint32 RSTCR; /**< 0x0000: Reset control register */
+ uint32 OPMODECR; /**< 0x0004: Operating mode control register */
+ uint32 CLOCKCR; /**< 0x0008: Clock control register */
+ uint32 CALCR; /**< 0x000C: Calibration control register */
+ uint32 GxMODECR[ 3U ]; /**< 0x0010,0x0014,0x0018: Group 0-2 mode control register */
+ uint32 EVSRC; /**< 0x001C: Group 0 trigger source control register */
+ uint32 G1SRC; /**< 0x0020: Group 1 trigger source control register */
+ uint32 G2SRC; /**< 0x0024: Group 2 trigger source control register */
+ uint32 GxINTENA[ 3U ]; /**< 0x0028,0x002C,0x0030: Group 0-2 interrupt enable register
+ */
+ uint32 GxINTFLG[ 3U ]; /**< 0x0034,0x0038,0x003C: Group 0-2 interrupt flag register */
+ uint32 GxINTCR[ 3U ]; /**< 0x0040-0x0048: Group 0-2 interrupt threshold register */
+ uint32 EVDMACR; /**< 0x004C: Group 0 DMA control register */
+ uint32 G1DMACR; /**< 0x0050: Group 1 DMA control register */
+ uint32 G2DMACR; /**< 0x0054: Group 2 DMA control register */
+ uint32 BNDCR; /**< 0x0058: Buffer boundary control register */
+ uint32 BNDEND; /**< 0x005C: Buffer boundary end register */
+ uint32 EVSAMP; /**< 0x0060: Group 0 sample window register */
+ uint32 G1SAMP; /**< 0x0064: Group 1 sample window register */
+ uint32 G2SAMP; /**< 0x0068: Group 2 sample window register */
+ uint32 EVSR; /**< 0x006C: Group 0 status register */
+ uint32 G1SR; /**< 0x0070: Group 1 status register */
+ uint32 G2SR; /**< 0x0074: Group 2 status register */
+ uint32 GxSEL[ 3U ]; /**< 0x0078-0x007C: Group 0-2 channel select register */
+ uint32 CALR; /**< 0x0084: Calibration register */
+ uint32 SMSTATE; /**< 0x0088: State machine state register */
+ uint32 LASTCONV; /**< 0x008C: Last conversion register */
+ struct
+ {
+ uint32 BUF0; /**< 0x0090,0x00B0,0x00D0: Group 0-2 result buffer 1 register */
+ uint32 BUF1; /**< 0x0094,0x00B4,0x00D4: Group 0-2 result buffer 1 register */
+ uint32 BUF2; /**< 0x0098,0x00B8,0x00D8: Group 0-2 result buffer 2 register */
+ uint32 BUF3; /**< 0x009C,0x00BC,0x00DC: Group 0-2 result buffer 3 register */
+ uint32 BUF4; /**< 0x00A0,0x00C0,0x00E0: Group 0-2 result buffer 4 register */
+ uint32 BUF5; /**< 0x00A4,0x00C4,0x00E4: Group 0-2 result buffer 5 register */
+ uint32 BUF6; /**< 0x00A8,0x00C8,0x00E8: Group 0-2 result buffer 6 register */
+ uint32 BUF7; /**< 0x00AC,0x00CC,0x00EC: Group 0-2 result buffer 7 register */
+ } GxBUF[ 3U ];
+ uint32 EVEMUBUFFER; /**< 0x00F0: Group 0 emulation result buffer */
+ uint32 G1EMUBUFFER; /**< 0x00F4: Group 1 emulation result buffer */
+ uint32 G2EMUBUFFER; /**< 0x00F8: Group 2 emulation result buffer */
+ uint32 EVTDIR; /**< 0x00FC: Event pin direction register */
+ uint32 EVTOUT; /**< 0x0100: Event pin digital output register */
+ uint32 EVTIN; /**< 0x0104: Event pin digital input register */
+ uint32 EVTSET; /**< 0x0108: Event pin set register */
+ uint32 EVTCLR; /**< 0x010C: Event pin clear register */
+ uint32 EVTPDR; /**< 0x0110: Event pin open drain register */
+ uint32 EVTDIS; /**< 0x0114: Event pin pull disable register */
+ uint32 EVTPSEL; /**< 0x0118: Event pin pull select register */
+ uint32 EVSAMPDISEN; /**< 0x011C: Group 0 sample discharge register */
+ uint32 G1SAMPDISEN; /**< 0x0120: Group 1 sample discharge register */
+ uint32 G2SAMPDISEN; /**< 0x0124: Group 2 sample discharge register */
+ uint32 MAGINTCR1; /**< 0x0128: Magnitude interrupt control register 1 */
+ uint32 MAGINT1MASK; /**< 0x012C: Magnitude interrupt mask register 1 */
+ uint32 MAGINTCR2; /**< 0x0130: Magnitude interrupt control register 2 */
+ uint32 MAGINT2MASK; /**< 0x0134: Magnitude interrupt mask register 2 */
+ uint32 MAGINTCR3; /**< 0x0138: Magnitude interrupt control register 3 */
+ uint32 MAGINT3MASK; /**< 0x013C: Magnitude interrupt mask register 3 */
+ uint32 rsvd1; /**< 0x0140: Reserved */
+ uint32 rsvd2; /**< 0x0144: Reserved */
+ uint32 rsvd3; /**< 0x0148: Reserved */
+ uint32 rsvd4; /**< 0x014C: Reserved */
+ uint32 rsvd5; /**< 0x0150: Reserved */
+ uint32 rsvd6; /**< 0x0154: Reserved */
+ uint32 MAGTHRINTENASET; /**< 0x0158: Magnitude interrupt set register */
+ uint32 MAGTHRINTENACLR; /**< 0x015C: Magnitude interrupt clear register */
+ uint32 MAGTHRINTFLG; /**< 0x0160: Magnitude interrupt flag register */
+ uint32 MAGTHRINTOFFSET; /**< 0x0164: Magnitude interrupt offset register */
+ uint32 GxFIFORESETCR[ 3U ]; /**< 0x0168,0x016C,0x0170: Group 0-2 fifo reset register
+ */
+ uint32 EVRAMADDR; /**< 0x0174: Group 0 RAM pointer register */
+ uint32 G1RAMADDR; /**< 0x0178: Group 1 RAM pointer register */
+ uint32 G2RAMADDR; /**< 0x017C: Group 2 RAM pointer register */
+ uint32 PARCR; /**< 0x0180: Parity control register */
+ uint32 PARADDR; /**< 0x0184: Parity error address register */
+ uint32 PWRUPDLYCTRL; /**< 0x0188: Power-Up delay control register */
+ uint32 rsvd7; /**< 0x018C: Reserved */
+ uint32 ADEVCHNSELMODECTRL; /**< 0x0190: Event Group Channel Selection Mode Control
+ Register */
+ uint32 ADG1CHNSELMODECTRL; /**< 0x0194: Group1 Channel Selection Mode Control Register
+ */
+ uint32 ADG2CHNSELMODECTRL; /**< 0x0198: Group2 Channel Selection Mode Control Register
+ */
+ uint32 ADEVCURRCOUNT; /**< 0x019C: Event Group Current Count Register */
+ uint32 ADEVMAXCOUNT; /**< 0x01A0: Event Group Max Count Register */
+ uint32 ADG1CURRCOUNT; /**< 0x01A4: Group1 Current Count Register */
+ uint32 ADG1MAXCOUNT; /**< 0x01A8: Group1 Max Count Register */
+ uint32 ADG2CURRCOUNT; /**< 0x01AC: Group2 Current Count Register */
+ uint32 ADG2MAXCOUNT; /**< 0x01B0: Group2 Max Count Register */
+} adcBASE_t;
+
+/** @struct adcLUTEntry
+ * @brief ADC Look-Up Table Entry
+ *
+ * This type is used to access ADC Look-Up Table Entry
+ */
+
+/** @typedef adcLUTEntry_t
+ * @brief ADC Look-Up Table Entry
+ *
+ * This type is used to access the Look-Up Table Entry.
+ */
+typedef struct adcLUTEntry
+{
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint8 EV_INT_CHN_MUX_SEL;
+ uint8 EV_EXT_CHN_MUX_SEL;
+ uint16 rsvd;
+#else
+ uint16 rsvd;
+ uint8 EV_EXT_CHN_MUX_SEL;
+ uint8 EV_INT_CHN_MUX_SEL;
+#endif
+} adcLUTEntry_t;
+
+/** @struct adcLUT
+ * @brief ADC Look-Up Table
+ *
+ * This type is used to access ADC Look-Up Table
+ */
+
+/** @typedef adcLUT_t
+ * @brief ADC Look-Up Table
+ *
+ * This type is used to access the ADC Look-Up Table.
+ */
+typedef volatile struct adcLUT
+{
+ adcLUTEntry_t eventGroup[ 32 ];
+ adcLUTEntry_t Group1[ 32 ];
+ adcLUTEntry_t Group2[ 32 ];
+} adcLUT_t;
+
+/** @def adcREG1
+ * @brief ADC1 Register Frame Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC1 registers.
+ */
+#define adcREG1 ( ( adcBASE_t * ) 0xFFF7C000U )
+
+/** @def adcREG2
+ * @brief ADC2 Register Frame Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC2 registers.
+ */
+#define adcREG2 ( ( adcBASE_t * ) 0xFFF7C200U )
+
+/** @def adcRAM1
+ * @brief ADC1 RAM Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC1 RAM.
+ */
+#define adcRAM1 ( *( volatile uint32 * ) 0xFF3E0000U )
+
+/** @def adcRAM2
+ * @brief ADC2 RAM Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC2 RAM.
+ */
+#define adcRAM2 ( *( volatile uint32 * ) 0xFF3A0000U )
+
+/** @def adcPARRAM1
+ * @brief ADC1 Parity RAM Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC1 Parity RAM.
+ */
+#define adcPARRAM1 ( *( volatile uint32 * ) ( 0xFF3E0000U + 0x1000U ) )
+
+/** @def adcPARRAM2
+ * @brief ADC2 Parity RAM Pointer
+ *
+ * This pointer is used by the ADC driver to access the ADC2 Parity RAM.
+ */
+#define adcPARRAM2 ( *( volatile uint32 * ) ( 0xFF3A0000U + 0x1000U ) )
+
+/** @def adcLUT1
+ * @brief ADC1 Look-Up Table
+ *
+ * This pointer is used by the ADC driver to access the ADC1 Look-Up Table.
+ */
+#define adcLUT1 ( ( adcLUT_t * ) 0xFF3E2000U )
+
+/** @def adcLUT2
+ * @brief ADC2 Look-Up Table
+ *
+ * This pointer is used by the ADC driver to access the ADC2 Look-Up Table.
+ */
+#define adcLUT2 ( ( adcLUT_t * ) 0xFF3A2000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_ADC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_can.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_can.h
new file mode 100644
index 000000000..2fcffcf10
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_can.h
@@ -0,0 +1,205 @@
+/** @file reg_can.h
+ * @brief CAN Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the CAN driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_CAN_H__
+#define __REG_CAN_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Can Register Frame Definition */
+
+/** @struct canBase
+ * @brief CAN Register Frame Definition
+ *
+ * This type is used to access the CAN Registers.
+ */
+
+/** @typedef canBASE_t
+ * @brief CAN Register Frame Type Definition
+ *
+ * This type is used to access the CAN Registers.
+ */
+typedef volatile struct canBase
+{
+ uint32 CTL; /**< 0x0000: Control Register */
+ uint32 ES; /**< 0x0004: Error and Status Register */
+ uint32 EERC; /**< 0x0008: Error Counter Register */
+ uint32 BTR; /**< 0x000C: Bit Timing Register */
+ uint32 INT; /**< 0x0010: Interrupt Register */
+ uint32 TEST; /**< 0x0014: Test Register */
+ uint32 rsvd1; /**< 0x0018: Reserved */
+ uint32 PERR; /**< 0x001C: Parity/SECDED Error Code Register */
+ uint32 rsvd2[ 24 ]; /**< 0x002C - 0x7C: Reserved */
+ uint32 ABOTR; /**< 0x0080: Auto Bus On Time Register */
+ uint32 TXRQX; /**< 0x0084: Transmission Request X Register */
+ uint32 TXRQx[ 4U ]; /**< 0x0088-0x0094: Transmission Request Registers */
+ uint32 NWDATX; /**< 0x0098: New Data X Register */
+ uint32 NWDATx[ 4U ]; /**< 0x009C-0x00A8: New Data Registers */
+ uint32 INTPNDX; /**< 0x00AC: Interrupt Pending X Register */
+ uint32 INTPNDx[ 4U ]; /**< 0x00B0-0x00BC: Interrupt Pending Registers */
+ uint32 MSGVALX; /**< 0x00C0: Message Valid X Register */
+ uint32 MSGVALx[ 4U ]; /**< 0x00C4-0x00D0: Message Valid Registers */
+ uint32 rsvd3; /**< 0x00D4: Reserved */
+ uint32 INTMUXx[ 4U ]; /**< 0x00D8-0x00E4: Interrupt Multiplexer Registers */
+ uint32 rsvd4[ 6 ]; /**< 0x00E8: Reserved */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint8 IF1NO; /**< 0x0100: IF1 Command Register, Msg Number */
+ uint8 IF1STAT; /**< 0x0100: IF1 Command Register, Status */
+ uint8 IF1CMD; /**< 0x0100: IF1 Command Register, Command */
+ uint8 rsvd9; /**< 0x0100: IF1 Command Register, Reserved */
+#else
+ uint8 rsvd9; /**< 0x0100: IF1 Command Register, Reserved */
+ uint8 IF1CMD; /**< 0x0100: IF1 Command Register, Command */
+ uint8 IF1STAT; /**< 0x0100: IF1 Command Register, Status */
+ uint8 IF1NO; /**< 0x0100: IF1 Command Register, Msg Number */
+#endif
+ uint32 IF1MSK; /**< 0x0104: IF1 Mask Register */
+ uint32 IF1ARB; /**< 0x0108: IF1 Arbitration Register */
+ uint32 IF1MCTL; /**< 0x010C: IF1 Message Control Register */
+ uint8 IF1DATx[ 8U ]; /**< 0x0110-0x0114: IF1 Data A and B Registers */
+ uint32 rsvd5[ 2 ]; /**< 0x0118: Reserved */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint8 IF2NO; /**< 0x0120: IF2 Command Register, Msg No */
+ uint8 IF2STAT; /**< 0x0120: IF2 Command Register, Status */
+ uint8 IF2CMD; /**< 0x0120: IF2 Command Register, Command */
+ uint8 rsvd10; /**< 0x0120: IF2 Command Register, Reserved */
+#else
+ uint8 rsvd10; /**< 0x0120: IF2 Command Register, Reserved */
+ uint8 IF2CMD; /**< 0x0120: IF2 Command Register, Command */
+ uint8 IF2STAT; /**< 0x0120: IF2 Command Register, Status */
+ uint8 IF2NO; /**< 0x0120: IF2 Command Register, Msg Number */
+#endif
+ uint32 IF2MSK; /**< 0x0124: IF2 Mask Register */
+ uint32 IF2ARB; /**< 0x0128: IF2 Arbitration Register */
+ uint32 IF2MCTL; /**< 0x012C: IF2 Message Control Register */
+ uint8 IF2DATx[ 8U ]; /**< 0x0130-0x0134: IF2 Data A and B Registers */
+ uint32 rsvd6[ 2 ]; /**< 0x0138: Reserved */
+ uint32 IF3OBS; /**< 0x0140: IF3 Observation Register */
+ uint32 IF3MSK; /**< 0x0144: IF3 Mask Register */
+ uint32 IF3ARB; /**< 0x0148: IF3 Arbitration Register */
+ uint32 IF3MCTL; /**< 0x014C: IF3 Message Control Register */
+ uint8 IF3DATx[ 8U ]; /**< 0x0150-0x0154: IF3 Data A and B Registers */
+ uint32 rsvd7[ 2 ]; /**< 0x0158: Reserved */
+ uint32 IF3UEy[ 4U ]; /**< 0x0160-0x016C: IF3 Update Enable Registers */
+ uint32 rsvd8[ 28 ]; /**< 0x0170: Reserved */
+ uint32 TIOC; /**< 0x01E0: TX IO Control Register */
+ uint32 RIOC; /**< 0x01E4: RX IO Control Register */
+} canBASE_t;
+
+/** @def canREG1
+ * @brief CAN1 Register Frame Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN1 registers.
+ */
+#define canREG1 ( ( canBASE_t * ) 0xFFF7DC00U )
+
+/** @def canREG2
+ * @brief CAN2 Register Frame Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN2 registers.
+ */
+#define canREG2 ( ( canBASE_t * ) 0xFFF7DE00U )
+
+/** @def canREG3
+ * @brief CAN3 Register Frame Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN3 registers.
+ */
+#define canREG3 ( ( canBASE_t * ) 0xFFF7E000U )
+
+/** @def canRAM1
+ * @brief CAN1 Mailbox RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN1 RAM.
+ */
+#define canRAM1 ( *( volatile uint32 * ) 0xFF1E0000U )
+
+/** @def canRAM2
+ * @brief CAN2 Mailbox RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN2 RAM.
+ */
+#define canRAM2 ( *( volatile uint32 * ) 0xFF1C0000U )
+
+/** @def canRAM3
+ * @brief CAN3 Mailbox RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN3 RAM.
+ */
+#define canRAM3 ( *( volatile uint32 * ) 0xFF1A0000U )
+
+/** @def canPARRAM1
+ * @brief CAN1 Mailbox Parity RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN1 Parity RAM
+ * for testing RAM parity error detect logic.
+ */
+#define canPARRAM1 ( *( volatile uint32 * ) ( 0xFF1E0000U + 0x10U ) )
+
+/** @def canPARRAM2
+ * @brief CAN2 Mailbox Parity RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN2 Parity RAM
+ * for testing RAM parity error detect logic.
+ */
+#define canPARRAM2 ( *( volatile uint32 * ) ( 0xFF1C0000U + 0x10U ) )
+
+/** @def canPARRAM3
+ * @brief CAN3 Mailbox Parity RAM Pointer
+ *
+ * This pointer is used by the CAN driver to access the CAN3 Parity RAM
+ * for testing RAM parity error detect logic.
+ */
+#define canPARRAM3 ( *( volatile uint32 * ) ( 0xFF1A0000U + 0x10U ) )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_CAN_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_crc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_crc.h
new file mode 100644
index 000000000..6dd20a2b2
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_crc.h
@@ -0,0 +1,127 @@
+/** @file reg_crc.h
+ * @brief CRC Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the CRC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_CRC_H__
+#define __REG_CRC_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Crc Register Frame Definition */
+
+/** @struct crcBase
+ * @brief CRC Register Frame Definition
+ *
+ * This type is used to access the CRC Registers.
+ */
+
+/** @typedef crcBASE_t
+ * @brief CRC Register Frame Type Definition
+ *
+ * This type is used to access the CRC Registers.
+ */
+typedef volatile struct crcBase
+{
+ uint32 CTRL0; /**< 0x0000: Global Control Register 0 >**/
+ uint32 rvd1; /**< 0x0004: reserved >**/
+ uint32 CTRL1; /**< 0x0008: Global Control Register 1 >**/
+ uint32 rvd2; /**< 0x000C: reserved >**/
+ uint32 CTRL2; /**< 0x0010: Global Control Register 2 >**/
+ uint32 rvd3; /**< 0x0014: reserved >**/
+ uint32 INTS; /**< 0x0018: Interrupt Enable Set Register >**/
+ uint32 rvd4; /**< 0x001C: reserved >**/
+ uint32 INTR; /**< 0x0020: Interrupt Enable Reset Register >**/
+ uint32 rvd5; /**< 0x0024: reserved >**/
+ uint32 STATUS; /**< 0x0028: Interrupt Status Register >**/
+ uint32 rvd6; /**< 0x002C: reserved >**/
+ uint32 INT_OFFSET_REG; /**< 0x0030: Interrupt Offset >**/
+ uint32 rvd7; /**< 0x0034: reserved >**/
+ uint32 BUSY; /**< 0x0038: CRC Busy Register >**/
+ uint32 rvd8; /**< 0x003C: reserved >**/
+ uint32 PCOUNT_REG1; /**< 0x0040: Pattern Counter Preload Register1 >**/
+ uint32 SCOUNT_REG1; /**< 0x0044: Sector Counter Preload Register1 >**/
+ uint32 CURSEC_REG1; /**< 0x0048: Current Sector Register 1 >**/
+ uint32 WDTOPLD1; /**< 0x004C: Channel 1 Watchdog Timeout Preload Register A >**/
+ uint32 BCTOPLD1; /**< 0x0050: Channel 1 Block Complete Timeout Preload Register B >**/
+ uint32 rvd9[ 3 ]; /**< 0x0054: reserved >**/
+ uint32 PSA_SIGREGL1; /**< 0x0060: Channel 1 PSA signature low register >**/
+ uint32 PSA_SIGREGH1; /**< 0x0064: Channel 1 PSA signature high register >**/
+ uint32 REGL1; /**< 0x0068: Channel 1 CRC value low register >**/
+ uint32 REGH1; /**< 0x006C: Channel 1 CRC value high register >**/
+ uint32 PSA_SECSIGREGL1; /**< 0x0070: Channel 1 PSA sector signature low register >**/
+ uint32 PSA_SECSIGREGH1; /**< 0x0074: Channel 1 PSA sector signature high register >**/
+ uint32 RAW_DATAREGL1; /**< 0x0078: Channel 1 Raw Data Low Register >**/
+ uint32 RAW_DATAREGH1; /**< 0x007C: Channel 1 Raw Data High Register >**/
+ uint32 PCOUNT_REG2; /**< 0x0080: CRC Pattern Counter Preload Register2 >**/
+ uint32 SCOUNT_REG2; /**< 0x0084: Sector Counter Preload Register2 >**/
+ uint32 CURSEC_REG2; /**< 0x0088: Current Sector Register 2>**/
+ uint32 WDTOPLD2; /**< 0x008C: Channel 2 Watchdog Timeout Preload Register A >**/
+ uint32 BCTOPLD2; /**< 0x0090: Channel 2 Block Complete Timeout Preload Register B >**/
+ uint32 rvd10[ 3 ]; /**< 0x0094: reserved >**/
+ uint32 PSA_SIGREGL2; /**< 0x00A0: Channel 2 PSA signature low register >**/
+ uint32 PSA_SIGREGH2; /**< 0x00A4: Channel 2 PSA signature high register >**/
+ uint32 REGL2; /**< 0x00A8: Channel 2 CRC value low register >**/
+ uint32 REGH2; /**< 0x00AC: Channel 2 CRC value high register >**/
+ uint32 PSA_SECSIGREGL2; /**< 0x00B0: Channel 2 PSA sector signature low register >**/
+ uint32 PSA_SECSIGREGH2; /**< 0x00B4: Channel 2 PSA sector signature high register >**/
+ uint32 RAW_DATAREGL2; /**< 0x00B8: Channel 2 Raw Data Low Register >**/
+ uint32 RAW_DATAREGH2; /**< 0x00BC: Channel 2 Raw Data High Register >**/
+} crcBASE_t;
+
+/** @def crcREG
+ * @brief CRC Register Frame Pointer
+ *
+ * This pointer is used by the CRC driver to access the CRC registers.
+ */
+#define crcREG ( ( crcBASE_t * ) 0xFE000000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_CRC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dcc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dcc.h
new file mode 100644
index 000000000..b7a8cc61f
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dcc.h
@@ -0,0 +1,101 @@
+/** @file reg_dcc.h
+ * @brief DCC Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the DCC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_DCC_H__
+#define __REG_DCC_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Dcc Register Frame Definition */
+
+/** @struct dccBase
+ * @brief DCC Base Register Definition
+ *
+ * This structure is used to access the DCC module registers.
+ */
+
+/** @typedef dccBASE_t
+ * @brief DCC Register Frame Type Definition
+ *
+ * This type is used to access the DCC Registers.
+ */
+typedef volatile struct dccBase
+{
+ uint32 GCTRL; /**< 0x0000: DCC Control Register */
+ uint32 REV; /**< 0x0004: DCC Revision Id Register */
+ uint32 CNT0SEED; /**< 0x0008: DCC Counter0 Seed Register */
+ uint32 VALID0SEED; /**< 0x000C: DCC Valid0 Seed Register */
+ uint32 CNT1SEED; /**< 0x0010: DCC Counter1 Seed Register */
+ uint32 STAT; /**< 0x0014: DCC Status Register */
+ uint32 CNT0; /**< 0x0018: DCC Counter0 Value Register */
+ uint32 VALID0; /**< 0x001C: DCC Valid0 Value Register */
+ uint32 CNT1; /**< 0x0020: DCC Counter1 Value Register */
+ uint32 CNT1CLKSRC; /**< 0x0024: DCC Counter1 Clock Source Selection Register */
+ uint32 CNT0CLKSRC; /**< 0x0028: DCC Counter0 Clock Source Selection Register */
+} dccBASE_t;
+
+/** @def dccREG1
+ * @brief DCC1 Register Frame Pointer
+ *
+ * This pointer is used by the DCC driver to access the dcc2 module registers.
+ */
+#define dccREG1 ( ( dccBASE_t * ) 0xFFFFEC00U )
+
+/** @def dccREG2
+ * @brief DCC2 Register Frame Pointer
+ *
+ * This pointer is used by the DCC driver to access the dcc2 module registers.
+ */
+#define dccREG2 ( ( dccBASE_t * ) 0xFFFFF400U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_DCC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dma.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dma.h
new file mode 100644
index 000000000..16f6861a5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_dma.h
@@ -0,0 +1,186 @@
+/** @file reg_dma.h
+ * @brief DMA Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the DMA driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_DMA_H__
+#define __REG_DMA_H__
+
+#include "sys_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* DMA Register Frame Definition */
+
+/** @struct dmaBase
+ * @brief DMA Register Frame Definition
+ *
+ * This type is used to access the DMA Registers.
+ */
+
+/** @struct dmaBASE_t
+ * @brief DMA Register Definition
+ *
+ * This structure is used to access the DMA module egisters.
+ */
+typedef volatile struct dmaBase
+{
+ uint32 GCTRL; /**< 0x0000: Global Control Register */
+ uint32 PEND; /**< 0x0004: Channel Pending Register */
+ uint32 FBREG; /**< 0x0008: Fall Back Register */
+ uint32 DMASTAT; /**< 0x000C: Status Register */
+ uint32 rsvd1; /**< 0x0010: Reserved */
+ uint32 HWCHENAS; /**< 0x0014: HW Channel Enable Set */
+ uint32 rsvd2; /**< 0x0018: Reserved */
+ uint32 HWCHENAR; /**< 0x001C: HW Channel Enable Reset */
+ uint32 rsvd3; /**< 0x0020: Reserved */
+ uint32 SWCHENAS; /**< 0x0024: SW Channel Enable Set */
+ uint32 rsvd4; /**< 0x0028: Reserved */
+ uint32 SWCHENAR; /**< 0x002C: SW Channel Enable Reset */
+ uint32 rsvd5; /**< 0x0030: Reserved */
+ uint32 CHPRIOS; /**< 0x0034: Channel Priority Set */
+ uint32 rsvd6; /**< 0x0038: Reserved */
+ uint32 CHPRIOR; /**< 0x003C: Channel Priority Reset */
+ uint32 rsvd7; /**< 0x0040: Reserved */
+ uint32 GCHIENAS; /**< 0x0044: Global Channel Interrupt Enable Set */
+ uint32 rsvd8; /**< 0x0048: Reserved */
+ uint32 GCHIENAR; /**< 0x004C: Global Channel Interrupt Enable Reset */
+ uint32 rsvd9; /**< 0x0050: Reserved */
+ uint32 DREQASI[ 8U ]; /**< 0x0054 - 0x70: DMA Request Assignment Register */
+ uint32 rsvd10[ 8U ]; /**< 0x0074 - 0x90: Reserved */
+ uint32 PAR[ 4U ]; /**< 0x0094 - 0xA0: Port Assignment Register */
+ uint32 rsvd11[ 4U ]; /**< 0x00A4 - 0xB0: Reserved */
+ uint32 FTCMAP; /**< 0x00B4: FTC Interrupt Mapping Register */
+ uint32 rsvd12; /**< 0x00B8: Reserved */
+ uint32 LFSMAP; /**< 0x00BC: LFS Interrupt Mapping Register */
+ uint32 rsvd13; /**< 0x00C0: Reserved */
+ uint32 HBCMAP; /**< 0x00C4: HBC Interrupt Mapping Register */
+ uint32 rsvd14; /**< 0x00C8: Reserved */
+ uint32 BTCMAP; /**< 0x00CC: BTC Interrupt Mapping Register */
+ uint32 rsvd15; /**< 0x00D0: Reserved */
+ uint32 BERMAP; /**< 0x00D4: BER Interrupt Mapping Register */
+ uint32 rsvd16; /**< 0x00D8: Reserved */
+ uint32 FTCINTENAS; /**< 0x00DC: FTC Interrupt Enable Set */
+ uint32 rsvd17; /**< 0x00E0: Reserved */
+ uint32 FTCINTENAR; /**< 0x00E4: FTC Interrupt Enable Reset */
+ uint32 rsvd18; /**< 0x00E8: Reserved */
+ uint32 LFSINTENAS; /**< 0x00EC: LFS Interrupt Enable Set */
+ uint32 rsvd19; /**< 0x00F0: Reserved */
+ uint32 LFSINTENAR; /**< 0x00F4: LFS Interrupt Enable Reset */
+ uint32 rsvd20; /**< 0x00F8: Reserved */
+ uint32 HBCINTENAS; /**< 0x00FC: HBC Interrupt Enable Set */
+ uint32 rsvd21; /**< 0x0100: Reserved */
+ uint32 HBCINTENAR; /**< 0x0104: HBC Interrupt Enable Reset */
+ uint32 rsvd22; /**< 0x0108: Reserved */
+ uint32 BTCINTENAS; /**< 0x010C: BTC Interrupt Enable Set */
+ uint32 rsvd23; /**< 0x0110: Reserved */
+ uint32 BTCINTENAR; /**< 0x0114: BTC Interrupt Enable Reset */
+ uint32 rsvd24; /**< 0x0118: Reserved */
+ uint32 GINTFLAG; /**< 0x011C: Global Interrupt Flag Register */
+ uint32 rsvd25; /**< 0x0120: Reserved */
+ uint32 FTCFLAG; /**< 0x0124: FTC Interrupt Flag Register */
+ uint32 rsvd26; /**< 0x0128: Reserved */
+ uint32 LFSFLAG; /**< 0x012C: LFS Interrupt Flag Register */
+ uint32 rsvd27; /**< 0x0130: Reserved */
+ uint32 HBCFLAG; /**< 0x0134: HBC Interrupt Flag Register */
+ uint32 rsvd28; /**< 0x0138: Reserved */
+ uint32 BTCFLAG; /**< 0x013C: BTC Interrupt Flag Register */
+ uint32 rsvd29; /**< 0x0140: Reserved */
+ uint32 BERFLAG; /**< 0x0144: BER Interrupt Flag Register */
+ uint32 rsvd30; /**< 0x0148: Reserved */
+ uint32 FTCAOFFSET; /**< 0x014C: FTCA Interrupt Channel Offset Register */
+ uint32 LFSAOFFSET; /**< 0x0150: LFSA Interrupt Channel Offset Register */
+ uint32 HBCAOFFSET; /**< 0x0154: HBCA Interrupt Channel Offset Register */
+ uint32 BTCAOFFSET; /**< 0x0158: BTCA Interrupt Channel Offset Register */
+ uint32 BERAOFFSET; /**< 0x015C: BERA Interrupt Channel Offset Register */
+ uint32 FTCBOFFSET; /**< 0x0160: FTCB Interrupt Channel Offset Register */
+ uint32 LFSBOFFSET; /**< 0x0164: LFSB Interrupt Channel Offset Register */
+ uint32 HBCBOFFSET; /**< 0x0168: HBCB Interrupt Channel Offset Register */
+ uint32 BTCBOFFSET; /**< 0x016C: BTCB Interrupt Channel Offset Register */
+ uint32 BERBOFFSET; /**< 0x0170: BERB Interrupt Channel Offset Register */
+ uint32 rsvd31; /**< 0x0174: Reserved */
+ uint32 PTCRL; /**< 0x0178: Port Control Register */
+ uint32 RTCTRL; /**< 0x017C: RAM Test Control Register */
+ uint32 DCTRL; /**< 0x0180: Debug Control */
+ uint32 WPR; /**< 0x0184: Watch Point Register */
+ uint32 WMR; /**< 0x0188: Watch Mask Register */
+ uint32 PAACSADDR; /**< 0x018C: */
+ uint32 PAACDADDR; /**< 0x0190: */
+ uint32 PAACTC; /**< 0x0194: */
+ uint32 PBACSADDR; /**< 0x0198: Port B Active Channel Source Address Register */
+ uint32 PBACDADDR; /**< 0x019C: Port B Active Channel Destination Address Register */
+ uint32 PBACTC; /**< 0x01A0: Port B Active Channel Transfer Count Register */
+ uint32 rsvd32; /**< 0x01A4: Reserved */
+ uint32 DMAPCR; /**< 0x01A8: Parity Control Register */
+ uint32 DMAPAR; /**< 0x01AC: DMA Parity Error Address Register */
+ uint32 DMAMPCTRL; /**< 0x01B0: DMA Memory Protection Control Register */
+ uint32 DMAMPST; /**< 0x01B4: DMA Memory Protection Status Register */
+ struct
+ {
+ uint32 STARTADD; /**< 0x01B8, 0x01C0, 0x01C8, 0x1D0: DMA Memory Protection Region
+ Start Address Register */
+ uint32 ENDADD; /**< 0x01B8, 0x01C0, 0x01C8, 0x1D0: DMA Memory Protection Region
+ Start Address Register */
+ } DMAMPR[ 4U ];
+} dmaBASE_t;
+
+/** @def dmaREG
+ * @brief DMA1 Register Frame Pointer
+ *
+ * This pointer is used by the DMA driver to access the DMA module registers.
+ */
+#define dmaREG ( ( dmaBASE_t * ) 0xFFFFF000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __REG_DMA_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_ecap.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_ecap.h
new file mode 100644
index 000000000..9a7e25eac
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_ecap.h
@@ -0,0 +1,156 @@
+/** @file reg_ecap.h
+ * @brief ECAP Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ECAP driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_ECAP_H__
+#define __REG_ECAP_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Ecap Register Frame Definition */
+
+/** @struct ecapBASE
+ * @brief ECAP Register Frame Definition
+ *
+ * This type is used to access the ECAP Registers.
+ */
+
+/** @typedef ecapBASE_t
+ * @brief ECAP Register Frame Type Definition
+ *
+ * This type is used to access the ECAP Registers.
+ */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+
+typedef volatile struct ecapBASE
+{
+ uint32 TSCTR; /**< 0x0000 Time stamp counter Register*/
+ uint32 CTRPHS; /**< 0x0004 Counter phase Register*/
+ uint32 CAP1; /**< 0x0008 Capture 1 Register*/
+ uint32 CAP2; /**< 0x000C Capture 2 Register*/
+ uint32 CAP3; /**< 0x0010 Capture 3 Register*/
+ uint32 CAP4; /**< 0x0014 Capture 4 Register*/
+ uint16 rsvd1[ 8U ]; /**< 0x0018 Reserved*/
+ uint16 ECCTL1; /**< 0x0028 Capture Control Reg 1 Register*/
+ uint16 ECCTL2; /**< 0x002A Capture Control Reg 2 Register*/
+ uint16 ECEINT; /**< 0x002C Interrupt enable Register*/
+ uint16 ECFLG; /**< 0x002E Interrupt flags Register*/
+ uint16 ECCLR; /**< 0x0030 Interrupt clear Register*/
+ uint16 ECFRC; /**< 0x0032 Interrupt force Register*/
+ uint16 rsvd2[ 6U ]; /**< 0x0034 Reserved*/
+} ecapBASE_t;
+
+#else /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+typedef volatile struct ecapBASE
+{
+ uint32 TSCTR; /**< 0x0000 Time stamp counter Register*/
+ uint32 CTRPHS; /**< 0x0004 Counter phase Register*/
+ uint32 CAP1; /**< 0x0008 Capture 1 Register*/
+ uint32 CAP2; /**< 0x000C Capture 2 Register*/
+ uint32 CAP3; /**< 0x0010 Capture 3 Register*/
+ uint32 CAP4; /**< 0x0014 Capture 4 Register*/
+ uint16 rsvd1[ 8U ]; /**< 0x0018 Reserved*/
+ uint16 ECCTL2; /**< 0x002A Capture Control Reg 2 Register*/
+ uint16 ECCTL1; /**< 0x0028 Capture Control Reg 1 Register*/
+ uint16 ECFLG; /**< 0x002E Interrupt flags Register*/
+ uint16 ECEINT; /**< 0x002C Interrupt enable Register*/
+ uint16 ECFRC; /**< 0x0032 Interrupt force Register*/
+ uint16 ECCLR; /**< 0x0030 Interrupt clear Register*/
+ uint16 rsvd2[ 6U ]; /**< 0x0034 Reserved*/
+} ecapBASE_t;
+
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+/** @def ecapREG1
+ * @brief ECAP1 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP1 registers.
+ */
+#define ecapREG1 ( ( ecapBASE_t * ) 0xFCF79300U )
+
+/** @def ecapREG2
+ * @brief ECAP2 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP2 registers.
+ */
+#define ecapREG2 ( ( ecapBASE_t * ) 0xFCF79400U )
+
+/** @def ecapREG3
+ * @brief ECAP3 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP3 registers.
+ */
+#define ecapREG3 ( ( ecapBASE_t * ) 0xFCF79500U )
+
+/** @def ecapREG4
+ * @brief ECAP4 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP4 registers.
+ */
+#define ecapREG4 ( ( ecapBASE_t * ) 0xFCF79600U )
+
+/** @def ecapREG5
+ * @brief ECAP5 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP5 registers.
+ */
+#define ecapREG5 ( ( ecapBASE_t * ) 0xFCF79700U )
+
+/** @def ecapREG6
+ * @brief ECAP6 Register Frame Pointer
+ *
+ * This pointer is used by the ECAP driver to access the ECAP6 registers.
+ */
+#define ecapREG6 ( ( ecapBASE_t * ) 0xFCF79800U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_ECAP_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_efc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_efc.h
new file mode 100644
index 000000000..22266ba06
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_efc.h
@@ -0,0 +1,96 @@
+/** @file reg_efc.h
+ * @brief EFC Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_EFC_H__
+#define __REG_EFC_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Efc Register Frame Definition */
+
+/** @struct efcBase
+ * @brief Efc Register Frame Definition
+ *
+ * This type is used to access the Efc Registers.
+ */
+
+/** @typedef efcBASE_t
+ * @brief Efc Register Frame Type Definition
+ *
+ * This type is used to access the Efc Registers.
+ */
+typedef volatile struct efcBase
+{
+ uint32 INSTRUCTION; /* 0x0 INSTRUCTION AN DUMPWORD REGISTER */
+ uint32 ADDRESS; /* 0x4 ADDRESS REGISTER */
+ uint32 DATA_UPPER; /* 0x8 DATA UPPER REGISTER */
+ uint32 DATA_LOWER; /* 0xc DATA LOWER REGISTER */
+ uint32 SYSTEM_CONFIG; /* 0x10 SYSTEM CONFIG REGISTER */
+ uint32 SYSTEM_STATUS; /* 0x14 SYSTEM STATUS REGISTER */
+ uint32 ACCUMULATOR; /* 0x18 ACCUMULATOR REGISTER */
+ uint32 BOUNDARY; /* 0x1C BOUNDARY REGISTER */
+ uint32 KEY_FLAG; /* 0x20 KEY FLAG REGISTER */
+ uint32 KEY; /* 0x24 KEY REGISTER */
+ uint32 rsvd1; /* 0x28 RESERVED */
+ uint32 PINS; /* 0x2C PINS REGISTER */
+ uint32 CRA; /* 0x30 CRA */
+ uint32 READ; /* 0x34 READ REGISTER */
+ uint32 PROGRAMME; /* 0x38 PROGRAMME REGISTER */
+ uint32 ERROR; /* 0x3C ERROR STATUS REGISTER */
+ uint32 SINGLE_BIT; /* 0x40 SINGLE BIT ERROR */
+ uint32 TWO_BIT_ERROR; /* 0x44 DOUBLE BIT ERROR */
+ uint32 SELF_TEST_CYCLES; /* 0x48 SELF TEST CYCLEX */
+ uint32 SELF_TEST_SIGN; /* 0x4C SELF TEST SIGNATURE */
+} efcBASE_t;
+
+#define efcREG ( ( efcBASE_t * ) 0xFFF8C000U )
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_EFC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_emif.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_emif.h
new file mode 100644
index 000000000..47f25b773
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_emif.h
@@ -0,0 +1,97 @@
+/** @file reg_emif.h
+ * @brief EMIF Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the EMIF driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_EMIF_H__
+#define __REG_EMIF_H__
+
+#include "sys_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Emif Register Frame Definition */
+
+/** @struct emifBASE_t
+ * @brief emifBASE Register Definition
+ *
+ * This structure is used to access the EMIF module registers.
+ */
+typedef volatile struct emifBase
+{
+ uint32 MIDR; /**< 0x0000 Module ID Register */
+ uint32 AWCC; /**< 0x0004 Asynchronous wait cycle register*/
+ uint32 SDCR; /**< 0x0008 SDRAM configuration register */
+ uint32 SDRCR; /**< 0x000C Set Interrupt Enable Register */
+ uint32 CE2CFG; /**< 0x0010 Asynchronous 1 Configuration Register */
+ uint32 CE3CFG; /**< 0x0014 Asynchronous 2 Configuration Register */
+ uint32 CE4CFG; /**< 0x0018 Asynchronous 3 Configuration Register */
+ uint32 CE5CFG; /**< 0x001C Asynchronous 4 Configuration Register */
+ uint32 SDTIMR; /**< 0x0020 SDRAM Timing Register */
+ uint32 dummy1[ 6 ]; /** reserved **/
+ uint32 SDSRETR; /**< 0x003c SDRAM Self Refresh Exit Timing Register */
+ uint32 INTRAW; /**< 0x0040 0x0020 Interrupt Vector Offset*/
+ uint32 INTMSK; /**< 0x0044 EMIF Interrupt Mask Register */
+ uint32 INTMSKSET; /**< 48 EMIF Interrupt Mask Set Register */
+ uint32 INTMSKCLR; /**< 0x004c EMIF Interrupt Mask Register */
+ uint32 dummy2[ 6 ]; /** reserved **/
+ uint32 PMCR; /**< 0x0068 Page Mode Control Register*/
+} emifBASE_t;
+
+#define emifREG ( ( emifBASE_t * ) 0xFCFFE800U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __REG_EMIF_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_eqep.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_eqep.h
new file mode 100644
index 000000000..e1a22d345
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_eqep.h
@@ -0,0 +1,150 @@
+/** @file reg_eqep.h
+ * @brief EQEP Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the EQEP driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_EQEP_H__
+#define __REG_EQEP_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Eqep Register Frame Definition */
+
+/** @struct eqepBASE
+ * @brief EQEP Register Frame Definition
+ *
+ * This type is used to access the EQEP Registers.
+ */
+
+/** @typedef eqepBASE_t
+ * @brief EQEP Register Frame Type Definition
+ *
+ * This type is used to access the EQEP Registers.
+ */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+
+typedef volatile struct eqepBASE
+{
+ uint32 QPOSCNT; /*< 0x0000 eQEP Position Counter*/
+ uint32 QPOSINIT; /*< 0x0004 eQEP Initialization Position Count*/
+ uint32 QPOSMAX; /*< 0x0008 eQEP Maximum Position Count*/
+ uint32 QPOSCMP; /*< 0x000C eQEP Position Compare*/
+ uint32 QPOSILAT; /*< 0x0010 eQEP Index Position Latch*/
+ uint32 QPOSSLAT; /*< 0x0014 eQEP Strobe Position Latch*/
+ uint32 QPOSLAT; /*< 0x0018 eQEP Position Latch*/
+ uint32 QUTMR; /*< 0x001C eQEP Unit Timer*/
+ uint32 QUPRD; /*< 0x0020 eQEP Unit Period*/
+ uint16 QWDTMR; /*< 0x0024 eQEP Watchdog Timer*/
+ uint16 QWDPRD; /*< 0x0026 eQEP Watchdog Period*/
+ uint16 QDECCTL; /*< 0x0028 eQEP Decoder Control*/
+ uint16 QEPCTL; /*< 0x002A eQEP Control*/
+ uint16 QCAPCTL; /*< 0x002C eQEP Capture Control*/
+ uint16 QPOSCTL; /*< 0x002E eQEP Position Compare Control*/
+ uint16 QEINT; /*< 0x0030 eQEP Interrupt Enable Register*/
+ uint16 QFLG; /*< 0x0032 eQEP Interrupt Flag Register*/
+ uint16 QCLR; /*< 0x0034 eQEP Interrupt Clear Register*/
+ uint16 QFRC; /*< 0x0036 eQEP Interrupt Force Register*/
+ uint16 QEPSTS; /*< 0x0038 eQEP Status Register*/
+ uint16 QCTMR; /*< 0x003A eQEP Capture Timer*/
+ uint16 QCPRD; /*< 0x003C eQEP Capture Period*/
+ uint16 QCTMRLAT; /*< 0x003E eQEP Capture Timer Latch*/
+ uint16 QCPRDLAT; /*< 0x0040 eQEP Capture Period Latch*/
+ uint16 rsvd_1; /*< 0x0042 Reserved*/
+} eqepBASE_t;
+
+#else /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+typedef volatile struct eqepBASE
+{
+ uint32 QPOSCNT; /*< 0x0000 eQEP Position Counter*/
+ uint32 QPOSINIT; /*< 0x0004 eQEP Initialization Position Count*/
+ uint32 QPOSMAX; /*< 0x0008 eQEP Maximum Position Count*/
+ uint32 QPOSCMP; /*< 0x000C eQEP Position Compare*/
+ uint32 QPOSILAT; /*< 0x0010 eQEP Index Position Latch*/
+ uint32 QPOSSLAT; /*< 0x0014 eQEP Strobe Position Latch*/
+ uint32 QPOSLAT; /*< 0x0018 eQEP Position Latch*/
+ uint32 QUTMR; /*< 0x001C eQEP Unit Timer*/
+ uint32 QUPRD; /*< 0x0020 eQEP Unit Period*/
+ uint16 QWDPRD; /*< 0x0026 eQEP Watchdog Period*/
+ uint16 QWDTMR; /*< 0x0024 eQEP Watchdog Timer*/
+ uint16 QEPCTL; /*< 0x002A eQEP Control*/
+ uint16 QDECCTL; /*< 0x0028 eQEP Decoder Control*/
+ uint16 QPOSCTL; /*< 0x002E eQEP Position Compare Control*/
+ uint16 QCAPCTL; /*< 0x002C eQEP Capture Control*/
+ uint16 QFLG; /*< 0x0032 eQEP Interrupt Flag Register*/
+ uint16 QEINT; /*< 0x0030 eQEP Interrupt Enable Register*/
+ uint16 QFRC; /*< 0x0036 eQEP Interrupt Force Register*/
+ uint16 QCLR; /*< 0x0034 eQEP Interrupt Clear Register*/
+ uint16 QCTMR; /*< 0x003A eQEP Capture Timer*/
+ uint16 QEPSTS; /*< 0x0038 eQEP Status Register*/
+ uint16 QCTMRLAT; /*< 0x003E eQEP Capture Timer Latch*/
+ uint16 QCPRD; /*< 0x003C eQEP Capture Period*/
+ uint16 rsvd_1; /*< 0x0042 Reserved*/
+ uint16 QCPRDLAT; /*< 0x0040 eQEP Capture Period Latch*/
+} eqepBASE_t;
+
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+/** @def eqepREG1
+ * @brief eQEP1 Register Frame Pointer
+ *
+ * This pointer is used by the eQEP driver to access the eQEP1 registers.
+ */
+#define eqepREG1 ( ( eqepBASE_t * ) 0xFCF79900U )
+
+/** @def eqepREG2
+ * @brief eQEP2 Register Frame Pointer
+ *
+ * This pointer is used by the eQEP driver to access the eQEP2 registers.
+ */
+#define eqepREG2 ( ( eqepBASE_t * ) 0xFCF79A00U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_EQEP_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_esm.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_esm.h
new file mode 100644
index 000000000..6235d1571
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_esm.h
@@ -0,0 +1,104 @@
+/** @file reg_esm.h
+ * @brief ESM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ESM driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_ESM_H__
+#define __REG_ESM_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Esm Register Frame Definition */
+
+/** @struct esmBase
+ * @brief Esm Register Frame Definition
+ *
+ * This type is used to access the Esm Registers.
+ */
+
+/** @typedef esmBASE_t
+ * @brief Esm Register Frame Type Definition
+ *
+ * This type is used to access the Esm Registers.
+ */
+typedef volatile struct esmBase
+{
+ uint32 EEPAPR1; /* 0x0000 */
+ uint32 DEPAPR1; /* 0x0004 */
+ uint32 IESR1; /* 0x0008 */
+ uint32 IECR1; /* 0x000C */
+ uint32 ILSR1; /* 0x0010 */
+ uint32 ILCR1; /* 0x0014 */
+ uint32 SR1[ 3U ]; /* 0x0018, 0x001C, 0x0020 */
+ uint32 EPSR; /* 0x0024 */
+ uint32 IOFFHR; /* 0x0028 */
+ uint32 IOFFLR; /* 0x002C */
+ uint32 LTCR; /* 0x0030 */
+ uint32 LTCPR; /* 0x0034 */
+ uint32 EKR; /* 0x0038 */
+ uint32 SSR2; /* 0x003C */
+ uint32 IEPSR4; /* 0x0040 */
+ uint32 IEPCR4; /* 0x0044 */
+ uint32 IESR4; /* 0x0048 */
+ uint32 IECR4; /* 0x004C */
+ uint32 ILSR4; /* 0x0050 */
+ uint32 ILCR4; /* 0x0054 */
+ uint32 SR4[ 3U ]; /* 0x0058, 0x005C, 0x0060 */
+} esmBASE_t;
+
+/** @def esmREG
+ * @brief Esm Register Frame Pointer
+ *
+ * This pointer is used by the Esm driver to access the Esm registers.
+ */
+#define esmREG ( ( esmBASE_t * ) 0xFFFFF500U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_ESM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_etpwm.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_etpwm.h
new file mode 100644
index 000000000..a437431f1
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_etpwm.h
@@ -0,0 +1,221 @@
+/** @file reg_etpwm.h
+ * @brief ETPWM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the ETPWM driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_ETPWM_H__
+#define __REG_ETPWM_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* ETPWM Register Frame Definition */
+
+/** @struct etpwmBASE
+ * @brief ETPWM Register Frame Definition
+ *
+ * This type is used to access the ETPWM Registers.
+ */
+
+/** @typedef etpwmBASE_t
+ * @brief ETPWM Register Frame Type Definition
+ *
+ * This type is used to access the ETPWM Registers.
+ */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+
+typedef volatile struct etpwmBASE
+{
+ uint16 TBCTL; /**< 0x0000 Time-Base Control Register*/
+ uint16 TBSTS; /**< 0x0002 Time-Base Status Register*/
+ uint16 rsvd1; /**< 0x0004 Reserved*/
+ uint16 TBPHS; /**< 0x0006 Time-Base Phase Register*/
+ uint16 TBCTR; /**< 0x0008 Time-Base Counter Register*/
+ uint16 TBPRD; /**< 0x000A Time-Base Period Register*/
+ uint16 rsvd2; /**< 0x000C Reserved*/
+ uint16 CMPCTL; /**< 0x000E Counter-Compare Control Register*/
+ uint16 rsvd3; /**< 0x0010 Reserved*/
+ uint16 CMPA; /**< 0x0012 Counter-Compare A Register*/
+ uint16 CMPB; /**< 0x0014 Counter-Compare B Register*/
+ uint16 AQCTLA; /**< 0x0016 Action-Qualifier Control Register for Output A (ETPWMxA)*/
+ uint16 AQCTLB; /**< 0x0018 Action-Qualifier Control Register for Output B (ETPWMxB)*/
+ uint16 AQSFRC; /**< 0x001A Action-Qualifier Software Force Register*/
+ uint16 AQCSFRC; /**< 0x001C Action-Qualifier Continuous S/W Force Register Set*/
+ uint16 DBCTL; /**< 0x001E Dead-Band Generator Control Register*/
+ uint16 DBRED; /**< 0x0020 Dead-Band Generator Rising Edge Delay Count Register*/
+ uint16 DBFED; /**< 0x0022 Dead-Band Generator Falling Edge Delay Count Register*/
+ uint16 TZSEL; /**< 0x0024 Trip-Zone Select Register*/
+ uint16 TZDCSEL; /**< 0x0026 Trip Zone Digital Compare Select Register*/
+ uint16 TZCTL; /**< 0x0028 Trip-Zone Control Register*/
+ uint16 TZEINT; /**< 0x002A Trip-Zone Enable Interrupt Register*/
+ uint16 TZFLG; /**< 0x002C Trip-Zone Flag Register*/
+ uint16 TZCLR; /**< 0x002E Trip-Zone Clear Register*/
+ uint16 TZFRC; /**< 0x0030 Trip-Zone Force Register*/
+ uint16 ETSEL; /**< 0x0032 Event-Trigger Selection Register*/
+ uint16 ETPS; /**< 0x0034 Event-Trigger Pre-Scale Register*/
+ uint16 ETFLG; /**< 0x0036 Event-Trigger Flag Register*/
+ uint16 ETCLR; /**< 0x0038 Event-Trigger Clear Register*/
+ uint16 ETFRC; /**< 0x003A Event-Trigger Force Register*/
+ uint16 PCCTL; /**< 0x003C PWM-Chopper Control Register*/
+ uint16 rsvd4; /**< 0x003E Reserved*/
+ uint16 rsvd5[ 16U ]; /**< 0x0040 Reserved*/
+ uint16 DCTRIPSEL; /**< 0x0060 Digital Compare Trip Select Register*/
+ uint16 DCACTL; /**< 0x0062 Digital Compare A Control Register*/
+ uint16 DCBCTL; /**< 0x0064 Digital Compare B Control Register*/
+ uint16 DCFCTL; /**< 0x0066 Digital Compare Filter Control Register*/
+ uint16 DCCAPCTL; /**< 0x0068 Digital Compare Capture Control Register*/
+ uint16 DCFOFFSET; /**< 0x006A Digital Compare Filter Offset Register*/
+ uint16 DCFOFFSETCNT; /**< 0x006C Digital Compare Filter Offset Counter Register*/
+ uint16 DCFWINDOW; /**< 0x006E Digital Compare Filter Window Register*/
+ uint16 DCFWINDOWCNT; /**< 0x0070 Digital Compare Filter Window Counter Register*/
+ uint16 DCCAP; /**< 0x0072 Digital Compare Counter Capture Register*/
+} etpwmBASE_t;
+
+#else /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+typedef volatile struct etpwmBASE
+{
+ uint16 TBSTS; /**< 0x0000 Time-Base Status Register*/
+ uint16 TBCTL; /**< 0x0002 Time-Base Control Register*/
+ uint16 TBPHS; /**< 0x0004 Time-Base Phase Register*/
+ uint16 rsvd1; /**< 0x0006 Reserved*/
+ uint16 TBPRD; /**< 0x0008 Time-Base Period Register*/
+ uint16 TBCTR; /**< 0x000A Time-Base Counter Register*/
+ uint16 CMPCTL; /**< 0x000C Counter-Compare Control Register*/
+ uint16 rsvd2; /**< 0x000E Reserved*/
+ uint16 CMPA; /**< 0x0010 Counter-Compare A Register*/
+ uint16 rsvd3; /**< 0x0012 Reserved*/
+ uint16 AQCTLA; /**< 0x0014 Action-Qualifier Control Register for Output A (ETPWMxA)*/
+ uint16 CMPB; /**< 0x0016 Counter-Compare B Register*/
+ uint16 AQSFRC; /**< 0x0018 Action-Qualifier Software Force Register*/
+ uint16 AQCTLB; /**< 0x001A Action-Qualifier Control Register for Output B (ETPWMxB)*/
+ uint16 DBCTL; /**< 0x001C Dead-Band Generator Control Register*/
+ uint16 AQCSFRC; /**< 0x001E Action-Qualifier Continuous S/W Force Register Set*/
+ uint16 DBFED; /**< 0x0020 Dead-Band Generator Falling Edge Delay Count Register*/
+ uint16 DBRED; /**< 0x0022 Dead-Band Generator Rising Edge Delay Count Register*/
+ uint16 TZDCSEL; /**< 0x0024 Trip Zone Digital Compare Select Register*/
+ uint16 TZSEL; /**< 0x0026 Trip-Zone Select Register*/
+ uint16 TZEINT; /**< 0x0028 Trip-Zone Enable Interrupt Register*/
+ uint16 TZCTL; /**< 0x002A Trip-Zone Control Register*/
+ uint16 TZCLR; /**< 0x002C Trip-Zone Clear Register*/
+ uint16 TZFLG; /**< 0x002E Trip-Zone Flag Register*/
+ uint16 ETSEL; /**< 0x0030 Event-Trigger Selection Register*/
+ uint16 TZFRC; /**< 0x0032 Trip-Zone Force Register*/
+ uint16 ETFLG; /**< 0x0034 Event-Trigger Flag Register*/
+ uint16 ETPS; /**< 0x0036 Event-Trigger Pre-Scale Register*/
+ uint16 ETFRC; /**< 0x0038 Event-Trigger Force Register*/
+ uint16 ETCLR; /**< 0x003A Event-Trigger Clear Register*/
+ uint16 rsvd4; /**< 0x003C Reserved*/
+ uint16 PCCTL; /**< 0x003E PWM-Chopper Control Register*/
+ uint16 rsvd5[ 16U ]; /**< 0x0040 Reserved*/
+ uint16 DCACTL; /**< 0x0060 Digital Compare A Control Register*/
+ uint16 DCTRIPSEL; /**< 0x0062 Digital Compare Trip Select Register*/
+ uint16 DCFCTL; /**< 0x0064 Digital Compare Filter Control Register*/
+ uint16 DCBCTL; /**< 0x0066 Digital Compare B Control Register*/
+ uint16 DCFOFFSET; /**< 0x0068 Digital Compare Filter Offset Register*/
+ uint16 DCCAPCTL; /**< 0x006A Digital Compare Capture Control Register*/
+ uint16 DCFWINDOW; /**< 0x006C Digital Compare Filter Window Register*/
+ uint16 DCFOFFSETCNT; /**< 0x006E Digital Compare Filter Offset Counter Register*/
+ uint16 DCCAP; /**< 0x0070 Digital Compare Counter Capture Register*/
+ uint16 DCFWINDOWCNT; /**< 0x0072 Digital Compare Filter Window Counter Register*/
+} etpwmBASE_t;
+
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+
+/** @def etpwmREG1
+ * @brief ETPWM1 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM1 registers.
+ */
+#define etpwmREG1 ( ( etpwmBASE_t * ) 0xFCF78C00U )
+
+/** @def etpwmREG2
+ * @brief ETPWM2 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM2 registers.
+ */
+#define etpwmREG2 ( ( etpwmBASE_t * ) 0xFCF78D00U )
+
+/** @def etpwmREG3
+ * @brief ETPWM3 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM3 registers.
+ */
+#define etpwmREG3 ( ( etpwmBASE_t * ) 0xFCF78E00U )
+
+/** @def etpwmREG4
+ * @brief ETPWM4 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM4 registers.
+ */
+#define etpwmREG4 ( ( etpwmBASE_t * ) 0xFCF78F00U )
+
+/** @def etpwmREG5
+ * @brief ETPWM5 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM5 registers.
+ */
+#define etpwmREG5 ( ( etpwmBASE_t * ) 0xFCF79000U )
+
+/** @def etpwmREG6
+ * @brief ETPWM6 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM6 registers.
+ */
+#define etpwmREG6 ( ( etpwmBASE_t * ) 0xFCF79100U )
+
+/** @def etpwmREG7
+ * @brief ETPWM7 Register Frame Pointer
+ *
+ * This pointer is used by the ETPWM driver to access the ETPWM7 registers.
+ */
+#define etpwmREG7 ( ( etpwmBASE_t * ) 0xFCF79200U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_ETPWM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_flash.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_flash.h
new file mode 100644
index 000000000..728431247
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_flash.h
@@ -0,0 +1,135 @@
+/** @file reg_flash.h
+ * @brief Flash Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_FLASH_H__
+#define __REG_FLASH_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Flash Register Frame Definition */
+
+/** @struct flashWBase
+ * @brief Flash Wrapper Register Frame Definition
+ *
+ * This type is used to access the Flash Wrapper Registers.
+ */
+
+/** @typedef flashWBASE_t
+ * @brief Flash Wrapper Register Frame Type Definition
+ *
+ * This type is used to access the Flash Wrapper Registers.
+ */
+typedef volatile struct flashWBase
+{
+ uint32 FRDCNTL; /* 0x0000 */
+ uint32 rsvd1; /* 0x0004 */
+ uint32 FEDACCTRL1; /* 0x0008 */
+ uint32 FEDACCTRL2; /* 0x000C */
+ uint32 FCORERRCNT; /* 0x0010 */
+ uint32 FCORERRADD; /* 0x0014 */
+ uint32 FCORERRPOS; /* 0x0018 */
+ uint32 FEDACSTATUS; /* 0x001C */
+ uint32 FUNCERRADD; /* 0x0020 */
+ uint32 FEDACSDIS; /* 0x0024 */
+ uint32 FPRIMADDTAG; /* 0x0028 */
+ uint32 FREDUADDTAG; /* 0x002C */
+ uint32 FBPROT; /* 0x0030 */
+ uint32 FBSE; /* 0x0034 */
+ uint32 FBBUSY; /* 0x0038 */
+ uint32 FBAC; /* 0x003C */
+ uint32 FBFALLBACK; /* 0x0040 */
+ uint32 FBPRDY; /* 0x0044 */
+ uint32 FPAC1; /* 0x0048 */
+ uint32 FPAC2; /* 0x004C */
+ uint32 FMAC; /* 0x0050 */
+ uint32 FMSTAT; /* 0x0054 */
+ uint32 FEMUDMSW; /* 0x0058 */
+ uint32 FEMUDLSW; /* 0x005C */
+ uint32 FEMUECC; /* 0x0060 */
+ uint32 FLOCK; /* 0x0064 */
+ uint32 FEMUADDR; /* 0x0068 */
+ uint32 FDIAGCTRL; /* 0x006C */
+ uint32 FRAWDATAH; /* 0x0070 */
+ uint32 FRAWDATAL; /* 0x0074 */
+ uint32 FRAWECC; /* 0x0078 */
+ uint32 FPAROVR; /* 0x007C */
+ uint32 rsvd2[ 16U ]; /* 0x009C */
+ uint32 FEDACSDIS2; /* 0x00C0 */
+ uint32 rsvd3[ 15U ]; /* 0x00C4 */
+ uint32 rsvd4[ 13U ]; /* 0x0100 */
+ uint32 rsvd5[ 85U ]; /* 0x0134 */
+ uint32 FSMWRENA; /* 0x0288 */
+ uint32 rsvd6[ 6U ]; /* 0x028C */
+ uint32 FSMSECTOR; /* 0x02A4 */
+ uint32 rsvd7[ 4U ]; /* 0x02A8 */
+ uint32 EEPROMCONFIG; /* 0x02B8 */
+ uint32 rsvd8[ 19U ]; /* 0x02BC */
+ uint32 EECTRL1; /* 0x0308 */
+ uint32 EECTRL2; /* 0x030C */
+ uint32 EECORRERRCNT; /* 0x0310 */
+ uint32 EECORRERRADD; /* 0x0314 */
+ uint32 EECORRERRPOS; /* 0x0318 */
+ uint32 EESTATUS; /* 0x031C */
+ uint32 EEUNCERRADD; /* 0x0320 */
+} flashWBASE_t;
+
+/** @def flashWREG
+ * @brief Flash Wrapper Register Frame Pointer
+ *
+ * This pointer is used by the system driver to access the flash wrapper registers.
+ */
+#define flashWREG ( ( flashWBASE_t * ) ( 0xFFF87000U ) )
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_FLASH_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_gio.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_gio.h
new file mode 100644
index 000000000..83d88153c
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_gio.h
@@ -0,0 +1,131 @@
+/** @file reg_gio.h
+ * @brief GIO Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the GIO driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_GIO_H__
+#define __REG_GIO_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Gio Register Frame Definition */
+
+/** @struct gioBase
+ * @brief GIO Base Register Definition
+ *
+ * This structure is used to access the GIO module registers.
+ */
+
+/** @typedef gioBASE_t
+ * @brief GIO Register Frame Type Definition
+ *
+ * This type is used to access the GIO Registers.
+ */
+typedef volatile struct gioBase
+{
+ uint32 GCR0; /**< 0x0000: Global Control Register */
+ uint32 rsvd; /**< 0x0004: Reserved*/
+ uint32 INTDET; /**< 0x0008: Interrupt Detect Register*/
+ uint32 POL; /**< 0x000C: Interrupt Polarity Register */
+ uint32 ENASET; /**< 0x0010: Interrupt Enable Set Register */
+ uint32 ENACLR; /**< 0x0014: Interrupt Enable Clear Register */
+ uint32 LVLSET; /**< 0x0018: Interrupt Priority Set Register */
+ uint32 LVLCLR; /**< 0x001C: Interrupt Priority Clear Register */
+ uint32 FLG; /**< 0x0020: Interrupt Flag Register */
+ uint32 OFF1; /**< 0x0024: Interrupt Offset A Register */
+ uint32 OFF2; /**< 0x0028: Interrupt Offset B Register */
+ uint32 EMU1; /**< 0x002C: Emulation 1 Register */
+ uint32 EMU2; /**< 0x0030: Emulation 2 Register */
+} gioBASE_t;
+
+/** @struct gioPort
+ * @brief GIO Port Register Definition
+ */
+
+/** @typedef gioPORT_t
+ * @brief GIO Port Register Type Definition
+ *
+ * This type is used to access the GIO Port Registers.
+ */
+typedef volatile struct gioPort
+{
+ uint32 DIR; /**< 0x0000: Data Direction Register */
+ uint32 DIN; /**< 0x0004: Data Input Register */
+ uint32 DOUT; /**< 0x0008: Data Output Register */
+ uint32 DSET; /**< 0x000C: Data Output Set Register */
+ uint32 DCLR; /**< 0x0010: Data Output Clear Register */
+ uint32 PDR; /**< 0x0014: Open Drain Register */
+ uint32 PULDIS; /**< 0x0018: Pullup Disable Register */
+ uint32 PSL; /**< 0x001C: Pull Up/Down Selection Register */
+} gioPORT_t;
+
+/** @def gioREG
+ * @brief GIO Register Frame Pointer
+ *
+ * This pointer is used by the GIO driver to access the gio module registers.
+ */
+#define gioREG ( ( gioBASE_t * ) 0xFFF7BC00U )
+
+/** @def gioPORTA
+ * @brief GIO Port (A) Register Pointer
+ *
+ * Pointer used by the GIO driver to access PORTA
+ */
+#define gioPORTA ( ( gioPORT_t * ) 0xFFF7BC34U )
+
+/** @def gioPORTB
+ * @brief GIO Port (B) Register Pointer
+ *
+ * Pointer used by the GIO driver to access PORTB
+ */
+#define gioPORTB ( ( gioPORT_t * ) 0xFFF7BC54U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_GIO_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_het.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_het.h
new file mode 100644
index 000000000..861275a12
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_het.h
@@ -0,0 +1,201 @@
+/** @file reg_het.h
+ * @brief HET Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the HET driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_HET_H__
+#define __REG_HET_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Het Register Frame Definition */
+
+/** @struct hetBase
+ * @brief HET Base Register Definition
+ *
+ * This structure is used to access the HET module registers.
+ */
+
+/** @typedef hetBASE_t
+ * @brief HET Register Frame Type Definition
+ *
+ * This type is used to access the HET Registers.
+ */
+
+typedef volatile struct hetBase
+{
+ uint32 GCR; /**< 0x0000: Global control register */
+ uint32 PFR; /**< 0x0004: Prescale factor register */
+ uint32 ADDR; /**< 0x0008: Current address register */
+ uint32 OFF1; /**< 0x000C: Interrupt offset register 1 */
+ uint32 OFF2; /**< 0x0010: Interrupt offset register 2 */
+ uint32 INTENAS; /**< 0x0014: Interrupt enable set register */
+ uint32 INTENAC; /**< 0x0018: Interrupt enable clear register */
+ uint32 EXC1; /**< 0x001C: Exception control register 1 */
+ uint32 EXC2; /**< 0x0020: Exception control register 2 */
+ uint32 PRY; /**< 0x0024: Interrupt priority register */
+ uint32 FLG; /**< 0x0028: Interrupt flag register */
+ uint32 AND; /**< 0x002C: AND share control register */
+ uint32 rsvd1; /**< 0x0030: Reserved */
+ uint32 HRSH; /**< 0x0034: High resolution share register */
+ uint32 XOR; /**< 0x0038: XOR share register */
+ uint32 REQENS; /**< 0x003C: Request enable set register */
+ uint32 REQENC; /**< 0x0040: Request enable clear register */
+ uint32 REQDS; /**< 0x0044: Request destination select register */
+ uint32 rsvd2; /**< 0x0048: Reserved */
+ uint32 DIR; /**< 0x004C: Direction register */
+ uint32 DIN; /**< 0x0050: Data input register */
+ uint32 DOUT; /**< 0x0054: Data output register */
+ uint32 DSET; /**< 0x0058: Data output set register */
+ uint32 DCLR; /**< 0x005C: Data output clear register */
+ uint32 PDR; /**< 0x0060: Open drain register */
+ uint32 PULDIS; /**< 0x0064: Pull disable register */
+ uint32 PSL; /**< 0x0068: Pull select register */
+ uint32 rsvd3; /**< 0x006C: Reserved */
+ uint32 rsvd4; /**< 0x0070: Reserved */
+ uint32 PCR; /**< 0x0074: Parity control register */
+ uint32 PAR; /**< 0x0078: Parity address register */
+ uint32 PPR; /**< 0x007C: Parity pin select register */
+ uint32 SFPRLD; /**< 0x0080: Suppression filter preload register */
+ uint32 SFENA; /**< 0x0084: Suppression filter enable register */
+ uint32 rsvd5; /**< 0x0088: Reserved */
+ uint32 LBPSEL; /**< 0x008C: Loop back pair select register */
+ uint32 LBPDIR; /**< 0x0090: Loop back pair direction register */
+ uint32 PINDIS; /**< 0x0094: Pin disable register */
+} hetBASE_t;
+
+/** @struct hetInstructionBase
+ * @brief HET Instruction Definition
+ *
+ * This structure is used to access the HET RAM.
+ */
+
+/** @typedef hetINSTRUCTION_t
+ * @brief HET Instruction Type Definition
+ *
+ * This type is used to access a HET Instruction.
+ */
+typedef volatile struct hetInstructionBase
+{
+ uint32 Program;
+ uint32 Control;
+ uint32 Data;
+ uint32 rsvd1;
+} hetINSTRUCTION_t;
+
+/** @struct hetRamBase
+ * @brief HET RAM Definition
+ *
+ * This structure is used to access the HET RAM.
+ */
+
+/** @typedef hetRAMBASE_t
+ * @brief HET RAM Type Definition
+ *
+ * This type is used to access the HET RAM.
+ */
+typedef volatile struct het1RamBase
+{
+ hetINSTRUCTION_t Instruction[ 160U ];
+} hetRAMBASE_t;
+
+/** @def hetREG1
+ * @brief HET Register Frame Pointer
+ *
+ * This pointer is used by the HET driver to access the het module registers.
+ */
+#define hetREG1 ( ( hetBASE_t * ) 0xFFF7B800U )
+
+/** @def hetPORT1
+ * @brief HET GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of HET1
+ * (use the GIO drivers to access the port pins).
+ */
+#define hetPORT1 ( ( gioPORT_t * ) 0xFFF7B84CU )
+
+/** @def hetRAM1
+ * @brief NHET1 RAM Pointer
+ *
+ * This pointer is used by the HET driver to access the NHET1 memory.
+ */
+#define hetRAM1 ( ( hetRAMBASE_t * ) 0xFF460000U )
+
+#define NHET1RAMPARLOC ( *( volatile uint32 * ) 0xFF462000U )
+#define NHET1RAMLOC ( *( volatile uint32 * ) 0xFF460000U )
+
+/** @def hetREG2
+ * @brief HET2 Register Frame Pointer
+ *
+ * This pointer is used by the HET driver to access the het module registers.
+ */
+#define hetREG2 ( ( hetBASE_t * ) 0xFFF7B900U )
+
+/** @def hetPORT2
+ * @brief HET2 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of HET2
+ * (use the GIO drivers to access the port pins).
+ */
+#define hetPORT2 ( ( gioPORT_t * ) 0xFFF7B94CU )
+
+/** @def hetRAM2
+ * @brief NHET1 RAM Pointer
+ *
+ * This pointer is used by the HET driver to access the NHET2 memory.
+ */
+#define hetRAM2 ( ( hetRAMBASE_t * ) 0xFF440000U )
+
+#define NHET2RAMPARLOC ( *( volatile uint32 * ) 0xFF442000U )
+#define NHET2RAMLOC ( *( volatile uint32 * ) 0xFF440000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_HET_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_htu.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_htu.h
new file mode 100644
index 000000000..a8e1396ae
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_htu.h
@@ -0,0 +1,137 @@
+/** @file reg_htu.h
+ * @brief HTU Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the HTU driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_HTU_H__
+#define __REG_HTU_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* htu Register Frame Definition */
+
+/** @struct htuBase
+ * @brief HTU Base Register Definition
+ *
+ * This structure is used to access the HTU module registers.
+ */
+
+/** @typedef htuBASE_t
+ * @brief HTU Register Frame Type Definition
+ *
+ * This type is used to access the HTU Registers.
+ */
+typedef volatile struct htuBase
+{
+ uint32 GC; /** 0x00 */
+ uint32 CPENA; /** 0x04 */
+ uint32 BUSY0; /** 0x08 */
+ uint32 BUSY1; /** 0x0C */
+ uint32 BUSY2; /** 0x10 */
+ uint32 BUSY3; /** 0x14 */
+ uint32 ACPE; /** 0x18 */
+ uint32 rsvd1; /** 0x1C */
+ uint32 RLBECTRL; /** 0x20 */
+ uint32 BFINTS; /** 0x24 */
+ uint32 BFINTC; /** 0x28 */
+ uint32 INTMAP; /** 0x2C */
+ uint32 rsvd2; /** 0x30 */
+ uint32 INTOFF0; /** 0x34 */
+ uint32 INTOFF1; /** 0x38 */
+ uint32 BIM; /** 0x3C */
+ uint32 RLOSTFL; /** 0x40 */
+ uint32 BFINTFL; /** 0x44 */
+ uint32 BERINTFL; /** 0x48 */
+ uint32 MP1S; /** 0x4C */
+ uint32 MP1E; /** 0x50 */
+ uint32 DCTRL; /** 0x54 */
+ uint32 WPR; /** 0x58 */
+ uint32 WMR; /** 0x5C */
+ uint32 ID; /** 0x60 */
+ uint32 PCR; /** 0x64 */
+ uint32 PAR; /** 0x68 */
+ uint32 rsvd3; /** 0x6C */
+ uint32 MPCS; /** 0x70 */
+ uint32 MP0S; /** 0x74 */
+ uint32 MP0E; /** 0x78 */
+} htuBASE_t;
+
+typedef volatile struct
+{
+ struct /* 0x00-0x7C */
+ {
+ uint32 IFADDRA;
+ uint32 IFADDRB;
+ uint32 IHADDRCT;
+ uint32 ITCOUNT;
+ } DCP[ 8U ];
+
+ struct /* 0x80-0xFC */
+ {
+ uint32 res[ 32U ];
+ } RESERVED;
+
+ struct /* 0x100-0x17C */
+ {
+ uint32 CFADDRA;
+ uint32 CFADDRB;
+ uint32 CFCOUNT;
+ uint32 rsvd4;
+ } CDCP[ 8U ];
+} htuRAMBASE_t;
+
+#define htuREG1 ( ( htuBASE_t * ) 0xFFF7A400U )
+#define htuREG2 ( ( htuBASE_t * ) 0xFFF7A500U )
+
+#define htuRAM1 ( ( htuRAMBASE_t * ) 0xFF4E0000U )
+#define htuRAM2 ( ( htuRAMBASE_t * ) 0xFF4C0000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_HTU_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_i2c.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_i2c.h
new file mode 100644
index 000000000..849da91a9
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_i2c.h
@@ -0,0 +1,143 @@
+/** @file reg_i2c.h
+ * @brief I2C Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the I2C driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_I2C_H__
+#define __REG_I2C_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* I2c Register Frame Definition */
+
+/** @struct i2cBase
+ * @brief I2C Base Register Definition
+ *
+ * This structure is used to access the I2C module registers.
+ */
+
+/** @typedef i2cBASE_t
+ * @brief I2C Register Frame Type Definition
+ *
+ * This type is used to access the I2C Registers.
+ */
+typedef volatile struct i2cBase
+{
+ uint32 OAR; /**< 0x0000 I2C Own Address register */
+ uint32 IMR; /**< 0x0004 I2C Interrupt Mask/Status register */
+ uint32 STR; /**< 0x0008 I2C Interrupt Status register */
+ uint32 CKL; /**< 0x000C I2C Clock Divider Low register */
+ uint32 CKH; /**< 0x0010 I2C Clock Divider High register */
+ uint32 CNT; /**< 0x0014 I2C Data Count register */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint8 DRR; /**< 0x0018: I2C Data Receive register, */
+ uint8 rsvd1; /**< 0x0018: I2C Data Receive register, Reserved */
+ uint8 rsvd2; /**< 0x0018: I2C Data Receive register, Reserved */
+ uint8 rsvd3; /**< 0x0018: I2C Data Receive register, Reserved */
+#else
+ uint8 rsvd3; /**< 0x0018: I2C Data Receive register, Reserved */
+ uint8 rsvd2; /**< 0x0018: I2C Data Receive register, Reserved */
+ uint8 rsvd1; /**< 0x0018: I2C Data Receive register, Reserved */
+ uint8 DRR; /**< 0x0018: I2C Data Receive register, */
+#endif
+ uint32 SAR; /**< 0x001C I2C Slave Address register */
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint8 DXR; /**< 0x0020: I2C Data Transmit register, */
+ uint8 rsvd4; /**< 0x0020: I2C Data Transmit register, Reserved */
+ uint8 rsvd5; /**< 0x0020: I2C Data Transmit register, Reserved */
+ uint8 rsvd6; /**< 0x0020: I2C Data Transmit register, Reserved */
+#else
+ uint8 rsvd6; /**< 0x0020: I2C Data Transmit register, Reserved */
+ uint8 rsvd5; /**< 0x0020: I2C Data Transmit register, Reserved */
+ uint8 rsvd4; /**< 0x0020: I2C Data Transmit register, Reserved */
+ uint8 DXR; /**< 0x0020: I2C Data Transmit register, */
+#endif
+ uint32 MDR; /**< 0x0024 I2C Mode register */
+ uint32 IVR; /**< 0x0028 I2C Interrupt Vector register */
+ uint32 EMDR; /**< 0x002C I2C Extended Mode register */
+ uint32 PSC; /**< 0x0030 I2C Prescaler register */
+ uint32 PID11; /**< 0x0034 I2C Peripheral ID register 1 */
+ uint32 PID12; /**< 0x0038 I2C Peripheral ID register 2 */
+ uint32 DMACR; /**< 0x003C I2C DMA Control Register */
+ uint32 rsvd7; /**< 0x0040 Reserved */
+ uint32 rsvd8; /**< 0x0044 Reserved */
+ uint32 PFNC; /**< 0x0048 Pin Function Register */
+ uint32 DIR; /**< 0x004C Pin Direction Register */
+ uint32 DIN; /**< 0x0050 Pin Data In Register */
+ uint32 DOUT; /**< 0x0054 Pin Data Out Register */
+ uint32 SET; /**< 0x0058 Pin Data Set Register */
+ uint32 CLR; /**< 0x005C Pin Data Clr Register */
+ uint32 PDR; /**< 0x0060 Pin Open Drain Output Enable Register */
+ uint32 PDIS; /**< 0x0064 Pin Pullup/Pulldown Disable Register */
+ uint32 PSEL; /**< 0x0068 Pin Pullup/Pulldown Selection Register */
+ uint32 PSRS; /**< 0x006C Pin Slew Rate Select Register */
+} i2cBASE_t;
+
+/** @def i2cREG1
+ * @brief I2C Register Frame Pointer
+ *
+ * This pointer is used by the I2C driver to access the I2C module registers.
+ */
+#define i2cREG1 ( ( i2cBASE_t * ) 0xFFF7D400U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @def i2cPORT1
+ * @brief I2C GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of I2C
+ * (use the GIO drivers to access the port pins).
+ */
+#define i2cPORT1 ( ( gioPORT_t * ) 0xFFF7D44CU )
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_I2C_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_lin.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_lin.h
new file mode 100644
index 000000000..bd845f5f5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_lin.h
@@ -0,0 +1,125 @@
+/** @file reg_lin.h
+ * @brief LIN Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the LIN driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_LIN_H__
+#define __REG_LIN_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Lin Register Frame Definition */
+
+/** @struct linBase
+ * @brief LIN Base Register Definition
+ *
+ * This structure is used to access the LIN module registers.
+ */
+
+/** @typedef linBASE_t
+ * @brief LIN Register Frame Type Definition
+ *
+ * This type is used to access the LIN Registers.
+ */
+
+typedef volatile struct linBase
+{
+ uint32 GCR0; /**< 0x0000: Global control register 0 */
+ uint32 GCR1; /**< 0x0004: Global control register 1 */
+ uint32 GCR2; /**< 0x0008: Global control register 2 */
+ uint32 SETINT; /**< 0x000C: Set interrupt enable register */
+ uint32 CLEARINT; /**< 0x0010: Clear interrupt enable register */
+ uint32 SETINTLVL; /**< 0x0014: Set interrupt level register */
+ uint32 CLEARINTLVL; /**< 0x0018: Set interrupt level register */
+ uint32 FLR; /**< 0x001C: interrupt flag register */
+ uint32 INTVECT0; /**< 0x0020: interrupt vector Offset 0 */
+ uint32 INTVECT1; /**< 0x0024: interrupt vector Offset 1 */
+ uint32 FORMAT; /**< 0x0028: Format Control Register */
+ uint32 BRS; /**< 0x002C: Baud rate selection register */
+ uint32 ED; /**< 0x0030: Emulation register */
+ uint32 RD; /**< 0x0034: Receive data register */
+ uint32 TD; /**< 0x0038: Transmit data register */
+ uint32 PIO0; /**< 0x003C: Pin function register */
+ uint32 PIO1; /**< 0x0040: Pin direction register */
+ uint32 PIO2; /**< 0x0044: Pin data in register */
+ uint32 PIO3; /**< 0x0048: Pin data out register */
+ uint32 PIO4; /**< 0x004C: Pin data set register */
+ uint32 PIO5; /**< 0x0050: Pin data clr register */
+ uint32 PIO6; /**< 0x0054: Pin open drain output enable register */
+ uint32 PIO7; /**< 0x0058: Pin pullup/pulldown disable register */
+ uint32 PIO8; /**< 0x005C: Pin pullup/pulldown selection register */
+ uint32 COMP; /**< 0x0060: Compare register */
+ uint8 RDx[ 8U ]; /**< 0x0064-0x0068: RX buffer register */
+ uint32 MASK; /**< 0x006C: Mask register */
+ uint32 ID; /**< 0x0070: Identification Register */
+ uint8 TDx[ 8U ]; /**< 0x0074-0x0078: TX buffer register */
+ uint32 MBRSR; /**< 0x007C: Maximum baud rate selection register */
+ uint32 rsvd1[ 4U ]; /**< 0x0080 - 0x8C: Reserved */
+ uint32 IODFTCTRL; /**< 0x0090: IODFT loopback register */
+} linBASE_t;
+
+/** @def linREG
+ * @brief LIN Register Frame Pointer
+ *
+ * This pointer is used by the LIN driver to access the lin module registers.
+ */
+#define linREG ( ( linBASE_t * ) 0xFFF7E400U )
+
+/** @def linPORT
+ * @brief LIN GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of LIN
+ * (use the GIO drivers to access the port pins).
+ */
+#define linPORT ( ( gioPORT_t * ) 0xFFF7E440U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_LIN_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_mibspi.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_mibspi.h
new file mode 100644
index 000000000..7481631fc
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_mibspi.h
@@ -0,0 +1,249 @@
+/** @file reg_mibspi.h
+ * @brief MIBSPI Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the MIBSPI driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_MIBSPI_H__
+#define __REG_MIBSPI_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Mibspi Register Frame Definition */
+
+/** @struct mibspiBase
+ * @brief MIBSPI Register Definition
+ *
+ * This structure is used to access the MIBSPI module registers.
+ */
+
+/** @typedef mibspiBASE_t
+ * @brief MIBSPI Register Frame Type Definition
+ *
+ * This type is used to access the MIBSPI Registers.
+ */
+typedef volatile struct mibspiBase
+{
+ uint32 GCR0; /**< 0x0000: Global Control 0 */
+ uint32 GCR1; /**< 0x0004: Global Control 1 */
+ uint32 INT0; /**< 0x0008: Interrupt Register */
+ uint32 LVL; /**< 0x000C: Interrupt Level */
+ uint32 FLG; /**< 0x0010: Interrupt flags */
+ uint32 PC0; /**< 0x0014: Function Pin Enable */
+ uint32 PC1; /**< 0x0018: Pin Direction */
+ uint32 PC2; /**< 0x001C: Pin Input Latch */
+ uint32 PC3; /**< 0x0020: Pin Output Latch */
+ uint32 PC4; /**< 0x0024: Output Pin Set */
+ uint32 PC5; /**< 0x0028: Output Pin Clr */
+ uint32 PC6; /**< 0x002C: Open Drain Output Enable */
+ uint32 PC7; /**< 0x0030: Pullup/Pulldown Disable */
+ uint32 PC8; /**< 0x0034: Pullup/Pulldown Selection */
+ uint32 DAT0; /**< 0x0038: Transmit Data */
+ uint32 DAT1; /**< 0x003C: Transmit Data with Format and Chip Select */
+ uint32 BUF; /**< 0x0040: Receive Buffer */
+ uint32 EMU; /**< 0x0044: Emulation Receive Buffer */
+ uint32 DELAY; /**< 0x0048: Delays */
+ uint32 DEF; /**< 0x004C: Default Chip Select */
+ uint32 FMT0; /**< 0x0050: Data Format 0 */
+ uint32 FMT1; /**< 0x0054: Data Format 1 */
+ uint32 FMT2; /**< 0x0058: Data Format 2 */
+ uint32 FMT3; /**< 0x005C: Data Format 3 */
+ uint32 INTVECT0; /**< 0x0060: Interrupt Vector 0 */
+ uint32 INTVECT1; /**< 0x0064: Interrupt Vector 1 */
+ uint32 SRSEL; /**< 0x0068: Slew Rate Select */
+ uint32 PMCTRL; /**< 0x006C: Parallel Mode Control */
+ uint32 MIBSPIE; /**< 0x0070: Multi-buffer Mode Enable */
+ uint32 TGITENST; /**< 0x0074: TG Interrupt Enable Set */
+ uint32 TGITENCR; /**< 0x0078: TG Interrupt Enable Clear */
+ uint32 TGITLVST; /**< 0x007C: Transfer Group Interrupt Level Set */
+ uint32 TGITLVCR; /**< 0x0080: Transfer Group Interrupt Level Clear */
+ uint32 TGINTFLG; /**< 0x0084: Transfer Group Interrupt Flag */
+ uint32 rsvd1[ 2U ]; /**< 0x0088: Reserved */
+ uint32 TICKCNT; /**< 0x0090: Tick Counter */
+ uint32 LTGPEND; /**< 0x0090: Last TG End Pointer */
+ uint32 TGCTRL[ 16U ]; /**< 0x0098 - 0x00D4: Transfer Group Control */
+ uint32 DMACTRL[ 8U ]; /**< 0x00D8 - 0x00F4: DMA Control */
+ uint32 DMACOUNT[ 8U ]; /**< 0x00F8 - 0x0114: DMA Count */
+ uint32 DMACNTLEN; /**< 0x0118 - 0x0114: DMA Control length */
+ uint32 rsvd2; /**< 0x011C: Reserved */
+ uint32 UERRCTRL; /**< 0x0120: Multi-buffer RAM Uncorrectable Parity Error Control */
+ uint32 UERRSTAT; /**< 0x0124: Multi-buffer RAM Uncorrectable Parity Error Status */
+ uint32 UERRADDRRX; /**< 0x0128: RXRAM Uncorrectable Parity Error Address */
+ uint32 UERRADDRTX; /**< 0x012C: TXRAM Uncorrectable Parity Error Address */
+ uint32 RXOVRN_BUF_ADDR; /**< 0x0130: RXRAM Overrun Buffer Address */
+ uint32 IOLPKTSTCR; /**< 0x0134: IO loopback */
+ uint32 EXT_PRESCALE1; /**< 0x0138: */
+ uint32 EXT_PRESCALE2; /**< 0x013C: */
+} mibspiBASE_t;
+
+/** @def mibspiREG1
+ * @brief MIBSPI1 Register Frame Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi module registers.
+ */
+#define mibspiREG1 ( ( mibspiBASE_t * ) 0xFFF7F400U )
+
+/** @def mibspiPORT1
+ * @brief MIBSPI1 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of MIBSPI1
+ * (use the GIO drivers to access the port pins).
+ */
+#define mibspiPORT1 ( ( gioPORT_t * ) 0xFFF7F418U )
+
+/** @def mibspiREG3
+ * @brief MIBSPI3 Register Frame Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi module registers.
+ */
+#define mibspiREG3 ( ( mibspiBASE_t * ) 0xFFF7F800U )
+
+/** @def mibspiPORT3
+ * @brief MIBSPI3 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of MIBSPI3
+ * (use the GIO drivers to access the port pins).
+ */
+#define mibspiPORT3 ( ( gioPORT_t * ) 0xFFF7F818U )
+
+/** @def mibspiREG5
+ * @brief MIBSPI5 Register Frame Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi module registers.
+ */
+#define mibspiREG5 ( ( mibspiBASE_t * ) 0xFFF7FC00U )
+
+/** @def mibspiPORT5
+ * @brief MIBSPI5 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of MIBSPI5
+ * (use the GIO drivers to access the port pins).
+ */
+#define mibspiPORT5 ( ( gioPORT_t * ) 0xFFF7FC18U )
+
+/** @struct mibspiRamBase
+ * @brief MIBSPI Buffer RAM Definition
+ *
+ * This structure is used to access the MIBSPI buffer memory.
+ */
+
+/** @typedef mibspiRAM_t
+ * @brief MIBSPI RAM Type Definition
+ *
+ * This type is used to access the MIBSPI RAM.
+ */
+typedef volatile struct mibspiRamBase
+{
+ struct
+ {
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint16 data; /**< tx buffer data */
+ uint16 control; /**< tx buffer control */
+#else
+ uint16 control; /**< tx buffer control */
+ uint16 data; /**< tx buffer data */
+#endif
+ } tx[ 128 ];
+ struct
+ {
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ uint16 data; /**< rx buffer data */
+ uint16 flags; /**< rx buffer flags */
+#else
+ uint16 flags; /**< rx buffer flags */
+ uint16 data; /**< rx buffer data */
+#endif
+ } rx[ 128 ];
+} mibspiRAM_t;
+
+/** @def mibspiRAM1
+ * @brief MIBSPI1 Buffer RAM Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiRAM1 ( ( mibspiRAM_t * ) 0xFF0E0000U )
+
+/** @def mibspiRAM3
+ * @brief MIBSPI3 Buffer RAM Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiRAM3 ( ( mibspiRAM_t * ) 0xFF0C0000U )
+
+/** @def mibspiRAM5
+ * @brief MIBSPI5 Buffer RAM Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiRAM5 ( ( mibspiRAM_t * ) 0xFF0A0000U )
+
+/** @def mibspiPARRAM1
+ * @brief MIBSPI1 Buffer RAM PARITY Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiPARRAM1 ( *( volatile uint32 * ) ( 0xFF0E0000U + 0x00000400U ) )
+
+/** @def mibspiPARRAM3
+ * @brief MIBSPI3 Buffer RAM PARITY Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiPARRAM3 ( *( volatile uint32 * ) ( 0xFF0C0000U + 0x00000400U ) )
+
+/** @def mibspiPARRAM5
+ * @brief MIBSPI5 Buffer RAM PARITY Pointer
+ *
+ * This pointer is used by the MIBSPI driver to access the mibspi buffer memory.
+ */
+#define mibspiPARRAM5 ( *( volatile uint32 * ) ( 0xFF0A0000U + 0x00000400U ) )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_MIBSPI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pbist.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pbist.h
new file mode 100644
index 000000000..0879a7ece
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pbist.h
@@ -0,0 +1,98 @@
+/** @file reg_pbist.h
+ * @brief PBIST Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_PBIST_H__
+#define __REG_PBIST_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* PBIST Register Frame Definition */
+
+/** @struct pbistBase
+ * @brief PBIST Base Register Definition
+ *
+ * This structure is used to access the PBIST module registers.
+ */
+
+/** @typedef pbistBASE_t
+ * @brief PBIST Register Frame Type Definition
+ *
+ * This type is used to access the PBIST Registers.
+ */
+typedef volatile struct pbistBase
+{
+ uint32 RAMT; /* 0x0160: RAM Configuration Register */
+ uint32 DLR; /* 0x0164: Datalogger Register */
+ uint32 rsvd1[ 6U ]; /* 0x0168 */
+ uint32 PACT; /* 0x0180: PBIST Activate Register */
+ uint32 PBISTID; /* 0x0184: PBIST ID Register */
+ uint32 OVER; /* 0x0188: Override Register */
+ uint32 rsvd2; /* 0x018C */
+ uint32 FSRF0; /* 0x0190: Fail Status Fail Register 0 */
+ uint32 rsvd5; /* 0x0194 */
+ uint32 FSRC0; /* 0x0198: Fail Status Count Register 0 */
+ uint32 FSRC1; /* 0x019C: Fail Status Count Register 1 */
+ uint32 FSRA0; /* 0x01A0: Fail Status Address 0 Register */
+ uint32 FSRA1; /* 0x01A4: Fail Status Address 1 Register */
+ uint32 FSRDL0; /* 0x01A8: Fail Status Data Register 0 */
+ uint32 rsvd3; /* 0x01AC */
+ uint32 FSRDL1; /* 0x01B0: Fail Status Data Register 1 */
+ uint32 rsvd4[ 3U ]; /* 0x01B4 */
+ uint32 ROM; /* 0x01C0: ROM Mask Register */
+ uint32 ALGO; /* 0x01C4: Algorithm Mask Register */
+ uint32 RINFOL; /* 0x01C8: RAM Info Mask Lower Register */
+ uint32 RINFOU; /* 0x01CC: RAM Info Mask Upper Register */
+} pbistBASE_t;
+
+#define pbistREG ( ( pbistBASE_t * ) 0xFFFFE560U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_PBIST_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pcr.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pcr.h
new file mode 100644
index 000000000..a8804c26e
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pcr.h
@@ -0,0 +1,113 @@
+/** @file reg_pcr.h
+ * @brief PCR Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_PCR_H__
+#define __REG_PCR_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Pcr Register Frame Definition */
+
+/** @struct pcrBase
+ * @brief Pcr Register Frame Definition
+ *
+ * This type is used to access the Pcr Registers.
+ */
+
+/** @typedef pcrBASE_t
+ * @brief PCR Register Frame Type Definition
+ *
+ * This type is used to access the PCR Registers.
+ */
+typedef volatile struct pcrBase
+{
+ uint32 PMPROTSET0; /* 0x0000 */
+ uint32 PMPROTSET1; /* 0x0004 */
+ uint32 rsvd1[ 2U ]; /* 0x0008 */
+ uint32 PMPROTCLR0; /* 0x0010 */
+ uint32 PMPROTCLR1; /* 0x0014 */
+ uint32 rsvd2[ 2U ]; /* 0x0018 */
+ uint32 PPROTSET0; /* 0x0020 */
+ uint32 PPROTSET1; /* 0x0024 */
+ uint32 PPROTSET2; /* 0x0028 */
+ uint32 PPROTSET3; /* 0x002C */
+ uint32 rsvd3[ 4U ]; /* 0x0030 */
+ uint32 PPROTCLR0; /* 0x0040 */
+ uint32 PPROTCLR1; /* 0x0044 */
+ uint32 PPROTCLR2; /* 0x0048 */
+ uint32 PPROTCLR3; /* 0x004C */
+ uint32 rsvd4[ 4U ]; /* 0x0050 */
+ uint32 PCSPWRDWNSET0; /* 0x0060 */
+ uint32 PCSPWRDWNSET1; /* 0x0064 */
+ uint32 rsvd5[ 2U ]; /* 0x0068 */
+ uint32 PCSPWRDWNCLR0; /* 0x0070 */
+ uint32 PCSPWRDWNCLR1; /* 0x0074 */
+ uint32 rsvd6[ 2U ]; /* 0x0078 */
+ uint32 PSPWRDWNSET0; /* 0x0080 */
+ uint32 PSPWRDWNSET1; /* 0x0084 */
+ uint32 PSPWRDWNSET2; /* 0x0088 */
+ uint32 PSPWRDWNSET3; /* 0x008C */
+ uint32 rsvd7[ 4U ]; /* 0x0090 */
+ uint32 PSPWRDWNCLR0; /* 0x00A0 */
+ uint32 PSPWRDWNCLR1; /* 0x00A4 */
+ uint32 PSPWRDWNCLR2; /* 0x00A8 */
+ uint32 PSPWRDWNCLR3; /* 0x00AC */
+} pcrBASE_t;
+
+/** @def pcrREG
+ * @brief Pcr Register Frame Pointer
+ *
+ * This pointer is used by the system driver to access the Pcr registers.
+ */
+#define pcrREG ( ( pcrBASE_t * ) 0xFFFFE000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_PCR_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pinmux.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pinmux.h
new file mode 100644
index 000000000..d819ea981
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pinmux.h
@@ -0,0 +1,178 @@
+/** @file reg_pinmux.h
+ * @brief PINMUX Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the PINMUX driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_PINMUX_H__
+#define __REG_PINMUX_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* IOMM Revision and Boot Register */
+#define REVISION_REG ( *( volatile uint32 * ) 0xFFFFEA00U )
+#define ENDIAN_REG ( *( volatile uint32 * ) 0xFFFFEA20U )
+
+/* IOMM Error and Fault Registers */
+
+/** @struct iommErrFault
+ * @brief IOMM Error and Fault Register Definition
+ *
+ * This structure is used to access the IOMM Error and Fault registers.
+ */
+typedef volatile struct iommErrFault
+{
+ uint32 ERR_RAW_STATUS_REG; /* Error Raw Status / Set Register */
+ uint32 ERR_ENABLED_STATUS_REG; /* Error Enabled Status / Clear Register */
+ uint32 ERR_ENABLE_REG; /* Error Signaling Enable Register */
+ uint32 ERR_ENABLE_CLR_REG; /* Error Signaling Enable Clear Register */
+ uint32 rsvd; /* Reserved */
+ uint32 FAULT_ADDRESS_REG; /* Fault Address Register */
+ uint32 FAULT_STATUS_REG; /* Fault Status Register */
+ uint32 FAULT_CLEAR_REG; /* Fault Clear Register */
+} iommErrFault_t;
+/* Pinmux Register Frame Definition */
+
+/** @struct pinMuxKicker
+ * @brief Pin Muxing Kicker Register Definition
+ *
+ * This structure is used to access the Pin Muxing Kicker registers.
+ */
+typedef volatile struct pinMuxKicker
+{
+ uint32 KICKER0; /* kicker 0 register */
+ uint32 KICKER1; /* kicker 1 register */
+} pinMuxKICKER_t;
+
+/** @struct pinMuxBase
+ * @brief PINMUX Register Definition
+ *
+ * This structure is used to access the PINMUX module registers.
+ */
+
+/** @typedef pinMuxBASE_t
+ * @brief PINMUX Register Frame Type Definition
+ *
+ * This type is used to access the PINMUX Registers.
+ */
+typedef volatile struct pinMuxBase
+{
+ uint32 PINMMR0; /**< 0xEB10 Pin Mux 0 register*/
+ uint32 PINMMR1; /**< 0xEB14 Pin Mux 1 register*/
+ uint32 PINMMR2; /**< 0xEB18 Pin Mux 2 register*/
+ uint32 PINMMR3; /**< 0xEB1C Pin Mux 3 register*/
+ uint32 PINMMR4; /**< 0xEB20 Pin Mux 4 register*/
+ uint32 PINMMR5; /**< 0xEB24 Pin Mux 5 register*/
+ uint32 PINMMR6; /**< 0xEB28 Pin Mux 6 register*/
+ uint32 PINMMR7; /**< 0xEB2C Pin Mux 7 register*/
+ uint32 PINMMR8; /**< 0xEB30 Pin Mux 8 register*/
+ uint32 PINMMR9; /**< 0xEB34 Pin Mux 9 register*/
+ uint32 PINMMR10; /**< 0xEB38 Pin Mux 10 register*/
+ uint32 PINMMR11; /**< 0xEB3C Pin Mux 11 register*/
+ uint32 PINMMR12; /**< 0xEB40 Pin Mux 12 register*/
+ uint32 PINMMR13; /**< 0xEB44 Pin Mux 13 register*/
+ uint32 PINMMR14; /**< 0xEB48 Pin Mux 14 register*/
+ uint32 PINMMR15; /**< 0xEB4C Pin Mux 15 register*/
+ uint32 PINMMR16; /**< 0xEB50 Pin Mux 16 register*/
+ uint32 PINMMR17; /**< 0xEB54 Pin Mux 17 register*/
+ uint32 PINMMR18; /**< 0xEB58 Pin Mux 18 register*/
+ uint32 PINMMR19; /**< 0xEB5C Pin Mux 19 register*/
+ uint32 PINMMR20; /**< 0xEB60 Pin Mux 20 register*/
+ uint32 PINMMR21; /**< 0xEB64 Pin Mux 21 register*/
+ uint32 PINMMR22; /**< 0xEB68 Pin Mux 22 register*/
+ uint32 PINMMR23; /**< 0xEB6C Pin Mux 23 register*/
+ uint32 PINMMR24; /**< 0xEB70 Pin Mux 24 register*/
+ uint32 PINMMR25; /**< 0xEB74 Pin Mux 25 register*/
+ uint32 PINMMR26; /**< 0xEB78 Pin Mux 26 register*/
+ uint32 PINMMR27; /**< 0xEB7C Pin Mux 27 register*/
+ uint32 PINMMR28; /**< 0xEB80 Pin Mux 28 register*/
+ uint32 PINMMR29; /**< 0xEB84 Pin Mux 29 register*/
+ uint32 PINMMR30; /**< 0xEB88 Pin Mux 30 register*/
+ uint32 PINMMR31; /**< 0xEB8C Pin Mux 31 register*/
+ uint32 PINMMR32; /**< 0xEB90 Pin Mux 32 register*/
+ uint32 PINMMR33; /**< 0xEB94 Pin Mux 33 register*/
+ uint32 PINMMR34; /**< 0xEB98 Pin Mux 34 register*/
+ uint32 PINMMR35; /**< 0xEB9C Pin Mux 35 register*/
+ uint32 PINMMR36; /**< 0xEBA0 Pin Mux 36 register*/
+ uint32 PINMMR37; /**< 0xEBA4 Pin Mux 37 register*/
+ uint32 PINMMR38; /**< 0xEBA8 Pin Mux 38 register*/
+ uint32 PINMMR39; /**< 0xEBAC Pin Mux 39 register*/
+ uint32 PINMMR40; /**< 0xEBB0 Pin Mux 40 register*/
+ uint32 PINMMR41; /**< 0xEBB4 Pin Mux 41 register*/
+ uint32 PINMMR42; /**< 0xEBB8 Pin Mux 42 register*/
+ uint32 PINMMR43; /**< 0xEBBC Pin Mux 43 register*/
+ uint32 PINMMR44; /**< 0xEBC0 Pin Mux 44 register*/
+ uint32 PINMMR45; /**< 0xEBC4 Pin Mux 45 register*/
+ uint32 PINMMR46; /**< 0xEBC8 Pin Mux 46 register*/
+ uint32 PINMMR47; /**< 0xEBCC Pin Mux 47 register*/
+} pinMuxBASE_t;
+
+/** @def iommErrFaultReg
+ * @brief IOMM Error Fault Register Frame Pointer
+ *
+ * This pointer is used to control IOMM Error and Fault across the device.
+ */
+#define iommErrFaultReg ( ( iommErrFault_t * ) 0xFFFFEAE0U )
+
+/** @def kickerReg
+ * @brief Pin Muxing Kicker Register Frame Pointer
+ *
+ * This pointer is used to enable and disable muxing accross the device.
+ */
+#define kickerReg ( ( pinMuxKICKER_t * ) 0xFFFFEA38U )
+
+/** @def pinMuxReg
+ * @brief Pin Muxing Control Register Frame Pointer
+ *
+ * This pointer is used to set the muxing registers accross the device.
+ */
+#define pinMuxReg ( ( pinMuxBASE_t * ) 0xFFFFEB10U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_PINMUX_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pmm.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pmm.h
new file mode 100644
index 000000000..47040a3c0
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pmm.h
@@ -0,0 +1,114 @@
+/** @file reg_pmm.h
+ * @brief PMM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the PMM driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_PMM_H__
+#define __REG_PMM_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Pmm Register Frame Definition */
+
+/** @struct pmmBase
+ * @brief Pmm Register Frame Definition
+ *
+ * This type is used to access the Pmm Registers.
+ */
+
+/** @typedef pmmBase_t
+ * @brief Pmm Register Frame Type Definition
+ *
+ * This type is used to access the Pmm Registers.
+ */
+typedef volatile struct pmmBase
+{
+ uint32 LOGICPDPWRCTRL0; /**< 0x0000: Logic Power Domain Control Register 0 */
+ uint32 rsvd1[ 3U ]; /**< 0x0004: Reserved*/
+ uint32 MEMPDPWRCTRL0; /**< 0x0010: Memory Power Domain Control Register 0 */
+ uint32 rsvd2[ 3U ]; /**< 0x0014: Reserved*/
+ uint32 PDCLKDISREG; /**< 0x0020: Power Domain Clock Disable Register */
+ uint32 PDCLKDISSETREG; /**< 0x0024: Power Domain Clock Disable Set Register */
+ uint32 PDCLKDISCLRREG; /**< 0x0028: Power Domain Clock Disable Clear Register */
+ uint32 rsvd3[ 5U ]; /**< 0x002C: Reserved */
+ uint32 LOGICPDPWRSTAT[ 4U ]; /**< 0x0040, 0x0044, 0x0048, 0x004C: Logic Power Domain
+ * Power Status Register
+ * - 0: PD2
+ * - 1: PD3
+ * - 2: PD4
+ * - 3: PD5 */
+ uint32 rsvd4[ 12U ]; /**< 0x0050: Reserved*/
+ uint32 MEMPDPWRSTAT[ 3U ]; /**< 0x0080, 0x0084, 0x0088: Memory Power Domain Power
+ * Status Register
+ * - 0: RAM_PD1
+ * - 1: RAM_PD2
+ * - 2: RAM_PD3 */
+ uint32 rsvd5[ 5U ]; /**< 0x008C: Reserved */
+ uint32 GLOBALCTRL1; /**< 0x00A0: Global Control Register 1 */
+ uint32 rsvd6; /**< 0x00A4: Reserved */
+ uint32 GLOBALSTAT; /**< 0x00A8: Global Status Register */
+ uint32 PRCKEYREG; /**< 0x00AC: PSCON Diagnostic Compare Key Register */
+ uint32 LPDDCSTAT1; /**< 0x00B0: LogicPD PSCON Diagnostic Compare Status Register 1 */
+ uint32 LPDDCSTAT2; /**< 0x00B4: LogicPD PSCON Diagnostic Compare Status Register 2 */
+ uint32 MPDDCSTAT1; /**< 0x00B8: Memory PD PSCON Diagnostic Compare Status Register 1
+ */
+ uint32 MPDDCSTAT2; /**< 0x00BC: Memory PD PSCON Diagnostic Compare Status Register 2
+ */
+ uint32 ISODIAGSTAT; /**< 0x00C0: Isolation Diagnostic Status Register */
+} pmmBase_t;
+
+/** @def pmmREG
+ * @brief Pmm Register Frame Pointer
+ *
+ * This pointer is used by the Pmm driver to access the Pmm registers.
+ */
+#define pmmREG ( ( pmmBase_t * ) 0xFFFF0000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_PMM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pom.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pom.h
new file mode 100644
index 000000000..0e6e4c2b5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_pom.h
@@ -0,0 +1,122 @@
+/** @file reg_pom.h
+ * @brief POM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the POM driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_POM_H__
+#define __REG_POM_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Pom Register Frame Definition */
+
+/** @struct POMBase
+ * @brief POM Register Frame Definition
+ *
+ * This structure is used to access the POM module registers(POM Register Map).
+ */
+typedef struct
+{
+ uint32 POMGLBCTRL; /* 0x00 */
+ uint32 POMREV; /* 0x04 */
+ uint32 POMCLKCTRL; /* 0x08 */
+ uint32 POMFLG; /* 0x0C */
+ struct
+ {
+ uint32 rsdv1;
+ } RESERVED_REG[ 124U ];
+ struct /* 0x200 ... */
+ {
+ uint32 POMPROGSTART;
+ uint32 POMOVLSTART;
+ uint32 POMREGSIZE;
+ uint32 rsdv2;
+ } POMRGNCONF_ST[ 32U ];
+} pomBASE_t;
+
+/** @struct POM_CORESIGHT_ST
+ * @brief POM_CORESIGHT_ST Register Definition
+ *
+ * This structure is used to access the POM module registers(POM CoreSight Registers ).
+ */
+typedef struct
+{
+ uint32 POMITCTRL; /* 0xF00 */
+ struct /* 0xF04 to 0xF9C */
+ {
+ uint32 Reserved_Reg;
+ } Reserved1_ST[ 39U ];
+ uint32 POMCLAIMSET; /* 0xFA0 */
+ uint32 POMCLAIMCLR; /* 0xFA4 */
+ uint32 rsvd1[ 2U ]; /* 0xFA8 */
+ uint32 POMLOCKACCESS; /* 0xFB0 */
+ uint32 POMLOCKSTATUS; /* 0xFB4 */
+ uint32 POMAUTHSTATUS; /* 0xFB8 */
+ uint32 rsvd2[ 3U ]; /* 0xFBC */
+ uint32 POMDEVID; /* 0xFC8 */
+ uint32 POMDEVTYPE; /* 0xFCC */
+ uint32 POMPERIPHERALID4; /* 0xFD0 */
+ uint32 POMPERIPHERALID5; /* 0xFD4 */
+ uint32 POMPERIPHERALID6; /* 0xFD8 */
+ uint32 POMPERIPHERALID7; /* 0xFDC */
+ uint32 POMPERIPHERALID0; /* 0xFE0 */
+ uint32 POMPERIPHERALID1; /* 0xFE4 */
+ uint32 POMPERIPHERALID2; /* 0xFE8 */
+ uint32 POMPERIPHERALID3; /* 0xFEC */
+ uint32 POMCOMPONENTID0; /* 0xFF0 */
+ uint32 POMCOMPONENTID1; /* 0xFF4 */
+ uint32 POMCOMPONENTID2; /* 0xFF8 */
+ uint32 POMCOMPONENTID3; /* 0xFFC */
+} POM_CORESIGHT_ST;
+
+#define pomREG ( ( pomBASE_t * ) 0xFFA04000U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_POM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_sci.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_sci.h
new file mode 100644
index 000000000..418d21086
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_sci.h
@@ -0,0 +1,134 @@
+/** @file reg_sci.h
+ * @brief SCI Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the SCI driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_SCI_H__
+#define __REG_SCI_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Sci Register Frame Definition */
+
+/** @struct sciBase
+ * @brief SCI Base Register Definition
+ *
+ * This structure is used to access the SCI module registers.
+ */
+
+/** @typedef sciBASE_t
+ * @brief SCI Register Frame Type Definition
+ *
+ * This type is used to access the SCI Registers.
+ */
+typedef volatile struct sciBase
+{
+ uint32 GCR0; /**< 0x0000 Global Control Register 0 */
+ uint32 GCR1; /**< 0x0004 Global Control Register 1 */
+ uint32 GCR2; /**< 0x0008 Global Control Register 2. Note: Applicable only to LIN – SCI
+ Compatibility Mode,Reserved for standalone SCI*/
+ uint32 SETINT; /**< 0x000C Set Interrupt Enable Register */
+ uint32 CLEARINT; /**< 0x0010 Clear Interrupt Enable Register */
+ uint32 SETINTLVL; /**< 0x0014 Set Interrupt Level Register */
+ uint32 CLEARINTLVL; /**< 0x0018 Set Interrupt Level Register */
+ uint32 FLR; /**< 0x001C Interrupt Flag Register */
+ uint32 INTVECT0; /**< 0x0020 Interrupt Vector Offset 0 */
+ uint32 INTVECT1; /**< 0x0024 Interrupt Vector Offset 1 */
+ uint32 FORMAT; /**< 0x0028 Format Control Register */
+ uint32 BRS; /**< 0x002C Baud Rate Selection Register */
+ uint32 ED; /**< 0x0030 Emulation Register */
+ uint32 RD; /**< 0x0034 Receive Data Buffer */
+ uint32 TD; /**< 0x0038 Transmit Data Buffer */
+ uint32 PIO0; /**< 0x003C Pin Function Register */
+ uint32 PIO1; /**< 0x0040 Pin Direction Register */
+ uint32 PIO2; /**< 0x0044 Pin Data In Register */
+ uint32 PIO3; /**< 0x0048 Pin Data Out Register */
+ uint32 PIO4; /**< 0x004C Pin Data Set Register */
+ uint32 PIO5; /**< 0x0050 Pin Data Clr Register */
+ uint32 PIO6; /**< 0x0054: Pin Open Drain Output Enable Register */
+ uint32 PIO7; /**< 0x0058: Pin Pullup/Pulldown Disable Register */
+ uint32 PIO8; /**< 0x005C: Pin Pullup/Pulldown Selection Register */
+ uint32 rsdv2[ 12U ]; /**< 0x0060: Reserved */
+ uint32 IODFTCTRL; /**< 0x0090: I/O Error Enable Register */
+} sciBASE_t;
+
+/** @def sciREG
+ * @brief Register Frame Pointer
+ *
+ * This pointer is used by the SCI driver to access the sci module registers.
+ */
+#define sciREG ( ( sciBASE_t * ) 0xFFF7E500U )
+
+/** @def sciPORT
+ * @brief SCI GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SCI
+ * (use the GIO drivers to access the port pins).
+ */
+#define sciPORT ( ( gioPORT_t * ) 0xFFF7E540U )
+
+/** @def scilinREG
+ * @brief SCILIN (LIN - Compatibility Mode) Register Frame Pointer
+ *
+ * This pointer is used by the SCI driver to access the sci module registers.
+ */
+#define scilinREG ( ( sciBASE_t * ) 0xFFF7E400U )
+
+/** @def scilinPORT
+ * @brief SCILIN (LIN - Compatibility Mode) Register Frame Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of LIN
+ * (use the GIO drivers to access the port pins).
+ */
+#define scilinPORT ( ( gioPORT_t * ) 0xFFF7E440U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_SCI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_spi.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_spi.h
new file mode 100644
index 000000000..ef7e8b2f6
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_spi.h
@@ -0,0 +1,180 @@
+/** @file reg_spi.h
+ * @brief SPI Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * - Interface Prototypes
+ * .
+ * which are relevant for the SPI driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_SPI_H__
+#define __REG_SPI_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Spi Register Frame Definition */
+
+/** @struct spiBase
+ * @brief SPI Register Definition
+ *
+ * This structure is used to access the SPI module registers.
+ */
+
+/** @typedef spiBASE_t
+ * @brief SPI Register Frame Type Definition
+ *
+ * This type is used to access the SPI Registers.
+ */
+typedef volatile struct spiBase
+{
+ uint32 GCR0; /**< 0x0000: Global Control 0 */
+ uint32 GCR1; /**< 0x0004: Global Control 1 */
+ uint32 INT0; /**< 0x0008: Interrupt Register */
+ uint32 LVL; /**< 0x000C: Interrupt Level */
+ uint32 FLG; /**< 0x0010: Interrupt flags */
+ uint32 PC0; /**< 0x0014: Function Pin Enable */
+ uint32 PC1; /**< 0x0018: Pin Direction */
+ uint32 PC2; /**< 0x001C: Pin Input Latch */
+ uint32 PC3; /**< 0x0020: Pin Output Latch */
+ uint32 PC4; /**< 0x0024: Output Pin Set */
+ uint32 PC5; /**< 0x0028: Output Pin Clr */
+ uint32 PC6; /**< 0x002C: Open Drain Output Enable */
+ uint32 PC7; /**< 0x0030: Pullup/Pulldown Disable */
+ uint32 PC8; /**< 0x0034: Pullup/Pulldown Selection */
+ uint32 DAT0; /**< 0x0038: Transmit Data */
+ uint32 DAT1; /**< 0x003C: Transmit Data with Format and Chip Select */
+ uint32 BUF; /**< 0x0040: Receive Buffer */
+ uint32 EMU; /**< 0x0044: Emulation Receive Buffer */
+ uint32 DELAY; /**< 0x0048: Delays */
+ uint32 DEF; /**< 0x004C: Default Chip Select */
+ uint32 FMT0; /**< 0x0050: Data Format 0 */
+ uint32 FMT1; /**< 0x0054: Data Format 1 */
+ uint32 FMT2; /**< 0x0058: Data Format 2 */
+ uint32 FMT3; /**< 0x005C: Data Format 3 */
+ uint32 INTVECT0; /**< 0x0060: Interrupt Vector 0 */
+ uint32 INTVECT1; /**< 0x0064: Interrupt Vector 1 */
+ uint32 RESERVED[ 51U ]; /**< 0x0068 to 0x0130: Reserved */
+ uint32 IOLPKTSTCR; /**< 0x0134: IO loopback */
+} spiBASE_t;
+
+/** @def spiREG1
+ * @brief SPI1 (MIBSPI - Compatibility Mode) Register Frame Pointer
+ *
+ * This pointer is used by the SPI driver to access the spi module registers.
+ */
+#define spiREG1 ( ( spiBASE_t * ) 0xFFF7F400U )
+
+/** @def spiPORT1
+ * @brief SPI1 (MIBSPI - Compatibility Mode) GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SPI1
+ * (use the GIO drivers to access the port pins).
+ */
+#define spiPORT1 ( ( gioPORT_t * ) 0xFFF7F418U )
+
+/** @def spiREG2
+ * @brief SPI2 Register Frame Pointer
+ *
+ * This pointer is used by the SPI driver to access the spi module registers.
+ */
+#define spiREG2 ( ( spiBASE_t * ) 0xFFF7F600U )
+
+/** @def spiPORT2
+ * @brief SPI2 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SPI2
+ * (use the GIO drivers to access the port pins).
+ */
+#define spiPORT2 ( ( gioPORT_t * ) 0xFFF7F618U )
+
+/** @def spiREG3
+ * @brief SPI3 (MIBSPI - Compatibility Mode) Register Frame Pointer
+ *
+ * This pointer is used by the SPI driver to access the spi module registers.
+ */
+#define spiREG3 ( ( spiBASE_t * ) 0xFFF7F800U )
+
+/** @def spiPORT3
+ * @brief SPI3 (MIBSPI - Compatibility Mode) GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SPI3
+ * (use the GIO drivers to access the port pins).
+ */
+#define spiPORT3 ( ( gioPORT_t * ) 0xFFF7F818U )
+
+/** @def spiREG4
+ * @brief SPI4 Register Frame Pointer
+ *
+ * This pointer is used by the SPI driver to access the spi module registers.
+ */
+#define spiREG4 ( ( spiBASE_t * ) 0xFFF7FA00U )
+
+/** @def spiPORT4
+ * @brief SPI4 GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SPI4
+ * (use the GIO drivers to access the port pins).
+ */
+#define spiPORT4 ( ( gioPORT_t * ) 0xFFF7FA18U )
+
+/** @def spiREG5
+ * @brief SPI5 (MIBSPI - Compatibility Mode) Register Frame Pointer
+ *
+ * This pointer is used by the SPI driver to access the spi module registers.
+ */
+#define spiREG5 ( ( spiBASE_t * ) 0xFFF7FC00U )
+
+/** @def spiPORT5
+ * @brief SPI5 (MIBSPI - Compatibility Mode) GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of SPI5
+ * (use the GIO drivers to access the port pins).
+ */
+#define spiPORT5 ( ( gioPORT_t * ) 0xFFF7FC18U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_SPI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_stc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_stc.h
new file mode 100644
index 000000000..f718f1ada
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_stc.h
@@ -0,0 +1,93 @@
+/** @file reg_stc.h
+ * @brief STC Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_STC_H__
+#define __REG_STC_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Stc Register Frame Definition */
+
+/** @struct stcBase
+ * @brief STC Base Register Definition
+ *
+ * This structure is used to access the STC module registers.
+ */
+
+/** @typedef stcBASE_t
+ * @brief STC Register Frame Type Definition
+ *
+ * This type is used to access the STC Registers.
+ */
+typedef volatile struct stcBase
+{
+ uint32 STCGCR0; /**< 0x0000: STC Control Register 0 */
+ uint32 STCGCR1; /**< 0x0004: STC Control Register 1 */
+ uint32 STCTPR; /**< 0x0008: STC Self-Test Run Timeout Counter Preload Register */
+ uint32 STCCADDR; /**< 0x000C: STC Self-Test Current ROM Address Register */
+ uint32 STCCICR; /**< 0x0010: STC Self-Test Current Interval Count Register */
+ uint32 STCGSTAT; /**< 0x0014: STC Self-Test Global Status Register */
+ uint32 STCFSTAT; /**< 0x0018: STC Self-Test Fail Status Register */
+ uint32 CPU1_CURMISR3; /**< 0x001C: STC CPU1 Current MISR Register */
+ uint32 CPU1_CURMISR2; /**< 0x0020: STC CPU1 Current MISR Register */
+ uint32 CPU1_CURMISR1; /**< 0x0024: STC CPU1 Current MISR Register */
+ uint32 CPU1_CURMISR0; /**< 0x0028: STC CPU1 Current MISR Register */
+ uint32 CPU2_CURMISR3; /**< 0x002C: STC CPU1 Current MISR Register */
+ uint32 CPU2_CURMISR2; /**< 0x0030: STC CPU1 Current MISR Register */
+ uint32 CPU2_CURMISR1; /**< 0x0034: STC CPU1 Current MISR Register */
+ uint32 CPU2_CURMISR0; /**< 0x0038: STC CPU1 Current MISR Register */
+ uint32 STCSCSCR; /**< 0x003C: STC Signature Compare Self-Check Register */
+} stcBASE_t;
+
+#define stcREG ( ( stcBASE_t * ) 0xFFFFE600U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_STC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_system.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_system.h
new file mode 100644
index 000000000..0f4a0ccc8
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_system.h
@@ -0,0 +1,191 @@
+/** @file reg_system.h
+ * @brief System Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_SYSTEM_H__
+#define __REG_SYSTEM_H__
+
+#include "sys_common.h"
+#include "reg_gio.h"
+
+/* System Register Frame 1 Definition */
+
+/** @struct systemBase1
+ * @brief System Register Frame 1 Definition
+ *
+ * This type is used to access the System 1 Registers.
+ */
+
+/** @typedef systemBASE1_t
+ * @brief System Register Frame 1 Type Definition
+ *
+ * This type is used to access the System 1 Registers.
+ */
+typedef volatile struct systemBase1
+{
+ uint32 SYSPC1; /* 0x0000 */
+ uint32 SYSPC2; /* 0x0004 */
+ uint32 SYSPC3; /* 0x0008 */
+ uint32 SYSPC4; /* 0x000C */
+ uint32 SYSPC5; /* 0x0010 */
+ uint32 SYSPC6; /* 0x0014 */
+ uint32 SYSPC7; /* 0x0018 */
+ uint32 SYSPC8; /* 0x001C */
+ uint32 SYSPC9; /* 0x0020 */
+ uint32 SSWPLL1; /* 0x0024 */
+ uint32 SSWPLL2; /* 0x0028 */
+ uint32 SSWPLL3; /* 0x002C */
+ uint32 CSDIS; /* 0x0030 */
+ uint32 CSDISSET; /* 0x0034 */
+ uint32 CSDISCLR; /* 0x0038 */
+ uint32 CDDIS; /* 0x003C */
+ uint32 CDDISSET; /* 0x0040 */
+ uint32 CDDISCLR; /* 0x0044 */
+ uint32 GHVSRC; /* 0x0048 */
+ uint32 VCLKASRC; /* 0x004C */
+ uint32 RCLKSRC; /* 0x0050 */
+ uint32 CSVSTAT; /* 0x0054 */
+ uint32 MSTGCR; /* 0x0058 */
+ uint32 MINITGCR; /* 0x005C */
+ uint32 MSINENA; /* 0x0060 */
+ uint32 MSTFAIL; /* 0x0064 */
+ uint32 MSTCGSTAT; /* 0x0068 */
+ uint32 MINISTAT; /* 0x006C */
+ uint32 PLLCTL1; /* 0x0070 */
+ uint32 PLLCTL2; /* 0x0074 */
+ uint32 SYSPC10; /* 0x0078 */
+ uint32 DIEIDL; /* 0x007C */
+ uint32 DIEIDH; /* 0x0080 */
+ uint32 VRCTL; /* 0x0084 */
+ uint32 LPOMONCTL; /* 0x0088 */
+ uint32 CLKTEST; /* 0x008C */
+ uint32 DFTCTRLREG1; /* 0x0090 */
+ uint32 DFTCTRLREG2; /* 0x0094 */
+ uint32 rsvd1; /* 0x0098 */
+ uint32 rsvd2; /* 0x009C */
+ uint32 GPREG1; /* 0x00A0 */
+ uint32 BTRMSEL; /* 0x00A4 */
+ uint32 IMPFASTS; /* 0x00A8 */
+ uint32 IMPFTADD; /* 0x00AC */
+ uint32 SSISR1; /* 0x00B0 */
+ uint32 SSISR2; /* 0x00B4 */
+ uint32 SSISR3; /* 0x00B8 */
+ uint32 SSISR4; /* 0x00BC */
+ uint32 RAMGCR; /* 0x00C0 */
+ uint32 BMMCR1; /* 0x00C4 */
+ uint32 BMMCR2; /* 0x00C8 */
+ uint32 CPURSTCR; /* 0x00CC */
+ uint32 CLKCNTL; /* 0x00D0 */
+ uint32 ECPCNTL; /* 0x00D4 */
+ uint32 DSPGCR; /* 0x00D8 */
+ uint32 DEVCR1; /* 0x00DC */
+ uint32 SYSECR; /* 0x00E0 */
+ uint32 SYSESR; /* 0x00E4 */
+ uint32 SYSTASR; /* 0x00E8 */
+ uint32 GBLSTAT; /* 0x00EC */
+ uint32 DEV; /* 0x00F0 */
+ uint32 SSIVEC; /* 0x00F4 */
+ uint32 SSIF; /* 0x00F8 */
+} systemBASE1_t;
+
+/** @def systemREG1
+ * @brief System Register Frame 1 Pointer
+ *
+ * This pointer is used by the system driver to access the system frame 1 registers.
+ */
+#define systemREG1 ( ( systemBASE1_t * ) 0xFFFFFF00U )
+
+/** @def systemPORT
+ * @brief ECLK GIO Port Register Pointer
+ *
+ * Pointer used by the GIO driver to access I/O PORT of System/Eclk
+ * (use the GIO drivers to access the port pins).
+ */
+#define systemPORT ( ( gioPORT_t * ) 0xFFFFFF04U )
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* System Register Frame 2 Definition */
+
+/** @struct systemBase2
+ * @brief System Register Frame 2 Definition
+ *
+ * This type is used to access the System 2 Registers.
+ */
+
+/** @typedef systemBASE2_t
+ * @brief System Register Frame 2 Type Definition
+ *
+ * This type is used to access the System 2 Registers.
+ */
+typedef volatile struct systemBase2
+{
+ uint32 PLLCTL3; /* 0x0000 */
+ uint32 rsvd1; /* 0x0004 */
+ uint32 STCCLKDIV; /* 0x0008 */
+ uint32 rsvd2[ 6U ]; /* 0x000C */
+ uint32 ECPCNTRL0; /* 0x0024 */
+ uint32 rsvd3[ 5U ]; /* 0x0028 */
+ uint32 CLK2CNTL; /* 0x003C */
+ uint32 VCLKACON1; /* 0x0040 */
+ uint32 rsvd4[ 11U ]; /* 0x0044 */
+ uint32 CLKSLIP; /* 0x0070 */
+ uint32 rsvd5[ 30U ]; /* 0x0074 */
+ uint32 EFC_CTLEN; /* 0x00EC */
+ uint32 DIEIDL_REG0; /* 0x00F0 */
+ uint32 DIEIDH_REG1; /* 0x00F4 */
+ uint32 DIEIDL_REG2; /* 0x00F8 */
+ uint32 DIEIDH_REG3; /* 0x00FC */
+} systemBASE2_t;
+
+/** @def systemREG2
+ * @brief System Register Frame 2 Pointer
+ *
+ * This pointer is used by the system driver to access the system frame 2 registers.
+ */
+#define systemREG2 ( ( systemBASE2_t * ) 0xFFFFE100U )
+
+#endif /* ifndef __REG_SYSTEM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_tcram.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_tcram.h
new file mode 100644
index 000000000..c1339e586
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_tcram.h
@@ -0,0 +1,95 @@
+/** @file reg_tcram.h
+ * @brief TCRAM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_TCRAM_H__
+#define __REG_TCRAM_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Tcram Register Frame Definition */
+
+/** @struct tcramBase
+ * @brief TCRAM Wrapper Register Frame Definition
+ *
+ * This type is used to access the TCRAM Wrapper Registers.
+ */
+
+/** @typedef tcramBASE_t
+ * @brief TCRAM Wrapper Register Frame Type Definition
+ *
+ * This type is used to access the TCRAM Wrapper Registers.
+ */
+
+typedef volatile struct tcramBase
+{
+ uint32 RAMCTRL; /* 0x0000 */
+ uint32 RAMTHRESHOLD; /* 0x0004 */
+ uint32 RAMOCCUR; /* 0x0008 */
+ uint32 RAMINTCTRL; /* 0x000C */
+ uint32 RAMERRSTATUS; /* 0x0010 */
+ uint32 RAMSERRADDR; /* 0x0014 */
+ uint32 rsvd1; /* 0x0018 */
+ uint32 RAMUERRADDR; /* 0x001C */
+ uint32 rsvd2[ 4U ]; /* 0x0020 */
+ uint32 RAMTEST; /* 0x0030 */
+ uint32 rsvd3; /* 0x0034 */
+ uint32 RAMADDRDECVECT; /* 0x0038 */
+ uint32 RAMPERADDR; /* 0x003C */
+} tcramBASE_t;
+
+#define tcram1REG ( ( tcramBASE_t * ) ( 0xFFFFF800U ) )
+#define tcram2REG ( ( tcramBASE_t * ) ( 0xFFFFF900U ) )
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_TCRAM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_vim.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_vim.h
new file mode 100644
index 000000000..6d030851e
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/reg_vim.h
@@ -0,0 +1,110 @@
+/** @file reg_vim.h
+ * @brief VIM Register Layer Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __REG_VIM_H__
+#define __REG_VIM_H__
+
+#include "sys_common.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Vim Register Frame Definition */
+
+/** @struct vimBase
+ * @brief Vim Register Frame Definition
+ *
+ * This type is used to access the Vim Registers.
+ */
+
+/** @typedef vimBASE_t
+ * @brief VIM Register Frame Type Definition
+ *
+ * This type is used to access the VIM Registers.
+ */
+typedef volatile struct vimBase
+{
+ uint32 IRQINDEX; /* 0x0000 */
+ uint32 FIQINDEX; /* 0x0004 */
+ uint32 rsvd1; /* 0x0008 */
+ uint32 rsvd2; /* 0x000C */
+ uint32 FIRQPR0; /* 0x0010 */
+ uint32 FIRQPR1; /* 0x0014 */
+ uint32 FIRQPR2; /* 0x0018 */
+ uint32 FIRQPR3; /* 0x001C */
+ uint32 INTREQ0; /* 0x0020 */
+ uint32 INTREQ1; /* 0x0024 */
+ uint32 INTREQ2; /* 0x0028 */
+ uint32 INTREQ3; /* 0x002C */
+ uint32 REQMASKSET0; /* 0x0030 */
+ uint32 REQMASKSET1; /* 0x0034 */
+ uint32 REQMASKSET2; /* 0x0038 */
+ uint32 REQMASKSET3; /* 0x003C */
+ uint32 REQMASKCLR0; /* 0x0040 */
+ uint32 REQMASKCLR1; /* 0x0044 */
+ uint32 REQMASKCLR2; /* 0x0048 */
+ uint32 REQMASKCLR3; /* 0x004C */
+ uint32 WAKEMASKSET0; /* 0x0050 */
+ uint32 WAKEMASKSET1; /* 0x0054 */
+ uint32 WAKEMASKSET2; /* 0x0058 */
+ uint32 WAKEMASKSET3; /* 0x005C */
+ uint32 WAKEMASKCLR0; /* 0x0060 */
+ uint32 WAKEMASKCLR1; /* 0x0064 */
+ uint32 WAKEMASKCLR2; /* 0x0068 */
+ uint32 WAKEMASKCLR3; /* 0x006C */
+ uint32 IRQVECREG; /* 0x0070 */
+ uint32 FIQVECREG; /* 0x0074 */
+ uint32 CAPEVT; /* 0x0078 */
+ uint32 rsvd3; /* 0x007C */
+ uint32 CHANCTRL[ 32U ]; /* 0x0080-0x0FC */
+} vimBASE_t;
+
+#define vimREG ( ( vimBASE_t * ) 0xFFFFFE00U )
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#endif /* ifndef __REG_VIM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sci.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sci.h
new file mode 100644
index 000000000..6f4c70c06
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sci.h
@@ -0,0 +1,254 @@
+/** @file sci.h
+ * @brief SCI Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SCI_H__
+#define __SCI_H__
+
+#include "reg_sci.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @enum sciIntFlags
+ * @brief Interrupt Flag Definitions
+ *
+ * Used with sciEnableNotification, sciDisableNotification
+ */
+enum sciIntFlags
+{
+ SCI_FE_INT = 0x04000000U, /* framing error */
+ SCI_OE_INT = 0x02000000U, /* overrun error */
+ SCI_PE_INT = 0x01000000U, /* parity error */
+ SCI_RX_INT = 0x00000200U, /* receive buffer ready */
+ SCI_TX_INT = 0x00000100U, /* transmit buffer ready */
+ SCI_WAKE_INT = 0x00000002U, /* wakeup */
+ SCI_BREAK_INT = 0x00000001U /* break detect */
+};
+
+/** @def SCI_IDLE
+ * @brief Alias name for the SCI IDLE Flag
+ *
+ * This is an alias name for the SCI IDLE Flag.
+ *
+ */
+#define SCI_IDLE 0x00000004U
+
+/** @struct sciBase
+ * @brief SCI Register Definition
+ *
+ * This structure is used to access the SCI module registers.
+ */
+
+/** @typedef sciBASE_t
+ * @brief SCI Register Frame Type Definition
+ *
+ * This type is used to access the SCI Registers.
+ */
+
+enum sciPinSelect
+{
+ PIN_SCI_TX = 4U,
+ PIN_SCI_RX = 2U
+};
+
+/* Configuration registers */
+typedef struct sci_config_reg
+{
+ uint32 CONFIG_GCR0;
+ uint32 CONFIG_GCR1;
+ uint32 CONFIG_SETINT;
+ uint32 CONFIG_SETINTLVL;
+ uint32 CONFIG_FORMAT;
+ uint32 CONFIG_BRS;
+ uint32 CONFIG_PIO0;
+ uint32 CONFIG_PIO1;
+ uint32 CONFIG_PIO6;
+ uint32 CONFIG_PIO7;
+ uint32 CONFIG_PIO8;
+} sci_config_reg_t;
+
+/* Configuration registers initial value for SCI*/
+#define SCI_GCR0_CONFIGVALUE 0x00000001U
+#define SCI_GCR1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 5U ) | ( uint32 ) ( ( uint32 ) ( 2U - 1U ) << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( 0x03000080U ) )
+
+#define SCI_SETINTLVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SCI_SETINT_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SCI_FORMAT_CONFIGVALUE ( 8U - 1U )
+#define SCI_BRS_CONFIGVALUE ( 59U )
+#define SCI_PIO0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+#define SCI_PIO1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCI_PIO6_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCI_PIO7_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCI_PIO8_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+
+/* Configuration registers initial value for SCI*/
+#define SCILIN_GCR0_CONFIGVALUE 0x00000001U
+#define SCILIN_GCR1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 5U ) | ( uint32 ) ( ( uint32 ) ( 2U - 1U ) << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( 0x03000080U ) )
+
+#define SCILIN_SETINTLVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U ) )
+
+#define SCILIN_SETINT_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 26U ) | ( uint32 ) ( ( uint32 ) 0U << 25U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SCILIN_FORMAT_CONFIGVALUE ( 8U - 1U )
+#define SCILIN_BRS_CONFIGVALUE ( 59U )
+#define SCILIN_PIO0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+#define SCILIN_PIO1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCILIN_PIO6_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCILIN_PIO7_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 2U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) )
+#define SCILIN_PIO8_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 2U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) )
+
+/**
+ * @defgroup SCI SCI
+ * @brief Serial Communication Interface Module.
+ *
+ * The SCI module is a universal asynchronous receiver-transmitter that implements the
+ *standard nonreturn to zero format. The SCI can be used to communicate, for example,
+ *through an RS-232 port or over a K-line.
+ *
+ * Related Files
+ * - reg_sci.h
+ * - sci.h
+ * - sci.c
+ * @addtogroup SCI
+ * @{
+ */
+
+/* SCI Interface Functions */
+void sciInit( void );
+void sciSetFunctional( sciBASE_t * sci, uint32 port );
+void sciSetBaudrate( sciBASE_t * sci, uint32 baud );
+uint32 sciIsTxReady( sciBASE_t * sci );
+void sciSendByte( sciBASE_t * sci, uint8 byte );
+void sciSend( sciBASE_t * sci, uint32 length, uint8 * data );
+uint32 sciIsRxReady( sciBASE_t * sci );
+uint32 sciIsIdleDetected( sciBASE_t * sci );
+uint32 sciRxError( sciBASE_t * sci );
+uint32 sciReceiveByte( sciBASE_t * sci );
+void sciReceive( sciBASE_t * sci, uint32 length, uint8 * data );
+void sciEnableNotification( sciBASE_t * sci, uint32 flags );
+void sciDisableNotification( sciBASE_t * sci, uint32 flags );
+void sciEnableLoopback( sciBASE_t * sci, loopBackType_t Loopbacktype );
+void sciDisableLoopback( sciBASE_t * sci );
+void sciEnterResetState( sciBASE_t * sci );
+void sciExitResetState( sciBASE_t * sci );
+void sciGetConfigValue( sci_config_reg_t * config_reg, config_value_type_t type );
+void scilinGetConfigValue( sci_config_reg_t * config_reg, config_value_type_t type );
+
+/** @brief Interrupt callback
+ * @fn void sciNotification(sciBASE_t *sci, uint32 flags)
+ * @param[in] sci - sci module base address
+ * @param[in] flags - copy of error interrupt flags
+ *
+ * This is a callback that is provided by the application and is called upon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void sciNotification( sciBASE_t * sci, uint32 flags );
+
+/* USER CODE BEGIN (1) */
+
+/** @brief Write data out to UART using the given SCI register
+ * @fn void sciDisplayData(sciBASE_t *sci, uint8 *text,uint32 length)
+ * @param[in] sci - SCI module base address
+ * @param[in] text - Pointer to the data that is going to be displayed on console
+ * @param[in] length - Number of bytes of data that are to be written
+ */
+void sciDisplayData( sciBASE_t * sci, uint8_t * text, uint32 length );
+
+/** @brief Write text out to UART using the given SCI register
+ * @fn void sciDisplayText(sciBASE_t *sci, uint8 *text,uint32 length)
+ * @param[in] sci - SCI module base address
+ * @param[in] text - Pointer to the string that is going to be displayed on console
+ * @param[in] length - Number of characters that are to be written
+ */
+void sciDisplayText( sciBASE_t * sci, char * text, uint32 length );
+
+/** @brief Simple print function that takes in a str and prints to SCI/UART
+ * @fn void sci_print(char * str)
+ * @param[in] str - String that is going to written out to UART
+ */
+void sci_print( char * str );
+
+/* USER CODE END */
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __SCI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/spi.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/spi.h
new file mode 100644
index 000000000..71ab34d6a
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/spi.h
@@ -0,0 +1,370 @@
+/** @file spi.h
+ * @brief SPI Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SPI_H__
+#define __SPI_H__
+
+#include "reg_spi.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @enum chipSelect
+ * @brief Transfer Group Chip Select
+ */
+enum spiChipSelect
+{
+ SPI_CS_NONE = 0xFFU,
+ SPI_CS_0 = 0xFEU,
+ SPI_CS_1 = 0xFDU,
+ SPI_CS_2 = 0xFBU,
+ SPI_CS_3 = 0xF7U,
+ SPI_CS_4 = 0xEFU,
+ SPI_CS_5 = 0xDFU,
+ SPI_CS_6 = 0xBFU,
+ SPI_CS_7 = 0x7FU
+};
+
+/** @enum spiPinSelect
+ * @brief spi Pin Select
+ */
+enum spiPinSelect
+{
+ SPI_PIN_CS0 = 0U,
+ SPI_PIN_CS1 = 1U,
+ SPI_PIN_CS2 = 2U,
+ SPI_PIN_CS3 = 3U,
+ SPI_PIN_CS4 = 4U,
+ SPI_PIN_CS5 = 5U,
+ SPI_PIN_CS6 = 6U,
+ SPI_PIN_CS7 = 7U,
+ SPI_PIN_ENA = 8U,
+ SPI_PIN_CLK = 9U,
+ SPI_PIN_SIMO = 10U,
+ SPI_PIN_SOMI = 11U,
+ SPI_PIN_SIMO_1 = 17U,
+ SPI_PIN_SIMO_2 = 18U,
+ SPI_PIN_SIMO_3 = 19U,
+ SPI_PIN_SIMO_4 = 20U,
+ SPI_PIN_SIMO_5 = 21U,
+ SPI_PIN_SIMO_6 = 22U,
+ SPI_PIN_SIMO_7 = 23U,
+ SPI_PIN_SOMI_1 = 25U,
+ SPI_PIN_SOMI_2 = 26U,
+ SPI_PIN_SOMI_3 = 27U,
+ SPI_PIN_SOMI_4 = 28U,
+ SPI_PIN_SOMI_5 = 29U,
+ SPI_PIN_SOMI_6 = 30U,
+ SPI_PIN_SOMI_7 = 31U
+};
+
+/** @enum dataformat
+ * @brief SPI dataformat register select
+ */
+typedef enum dataformat
+{
+ SPI_FMT_0 = 0U,
+ SPI_FMT_1 = 1U,
+ SPI_FMT_2 = 2U,
+ SPI_FMT_3 = 3U
+} SPIDATAFMT_t;
+
+/** @struct spiDAT1RegConfig
+ * @brief SPI data register configuration
+ */
+typedef struct spiDAT1RegConfig
+{
+ boolean CS_HOLD;
+ boolean WDEL;
+ SPIDATAFMT_t DFSEL;
+ uint8 CSNR;
+} spiDAT1_t;
+
+/** @enum SpiTxRxDataStatus
+ * @brief SPI Data Status
+ */
+typedef enum SpiTxRxDataStatus
+{
+ SPI_READY = 0U,
+ SPI_PENDING = 1U,
+ SPI_COMPLETED = 2U
+} SpiDataStatus_t;
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+typedef struct spi_config_reg
+{
+ uint32 CONFIG_GCR1;
+ uint32 CONFIG_INT0;
+ uint32 CONFIG_LVL;
+ uint32 CONFIG_PC0;
+ uint32 CONFIG_PC1;
+ uint32 CONFIG_PC6;
+ uint32 CONFIG_PC7;
+ uint32 CONFIG_PC8;
+ uint32 CONFIG_DELAY;
+ uint32 CONFIG_FMT0;
+ uint32 CONFIG_FMT1;
+ uint32 CONFIG_FMT2;
+ uint32 CONFIG_FMT3;
+} spi_config_reg_t;
+
+#define SPI2_GCR1_CONFIGVALUE ( 0x01000000U | ( uint32 ) ( ( uint32 ) 1U << 1U ) | 1U )
+
+#define SPI2_INT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+#define SPI2_LVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SPI2_PC0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+#define SPI2_PC1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI2_PC6_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI2_PC7_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 11U ) | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI2_PC8_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 1U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) 1U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 10U ) | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 11U ) | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+
+#define SPI2_DELAY_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SPI2_FMT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI2_FMT1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI2_FMT2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI2_FMT3_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+
+#define SPI4_GCR1_CONFIGVALUE ( 0x01000000U | ( uint32 ) ( ( uint32 ) 1U << 1U ) | 1U )
+
+#define SPI4_INT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+#define SPI4_LVL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 6U ) | ( uint32 ) ( ( uint32 ) 0U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 3U ) | ( uint32 ) ( ( uint32 ) 0U << 2U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 1U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SPI4_PC0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 9U ) | ( uint32 ) ( ( uint32 ) 1U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+#define SPI4_PC1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 9U ) | ( uint32 ) ( ( uint32 ) 1U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 16U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI4_PC6_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI4_PC7_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 0U ) | ( uint32 ) ( ( uint32 ) 0U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 9U ) | ( uint32 ) ( ( uint32 ) 0U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 24U ) )
+#define SPI4_PC8_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 0U ) | ( uint32 ) ( ( uint32 ) 1U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 9U ) | ( uint32 ) ( ( uint32 ) 1U << 10U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 11U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+
+#define SPI4_DELAY_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+#define SPI4_FMT0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI4_FMT1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI4_FMT2_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+#define SPI4_FMT3_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 22U ) | ( uint32 ) ( ( uint32 ) 0U << 21U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 20U ) | ( uint32 ) ( ( uint32 ) 0U << 17U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 16U ) | ( uint32 ) ( ( uint32 ) 109U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 16U << 0U ) )
+
+/**
+ * @defgroup SPI SPI
+ * @brief Serial Peripheral Interface Module.
+ *
+ * SPI is a high-speed synchronous serial input/output port that allows a serial bit
+ * stream of programmed length (2 to 16 bits) to be shifted in and out of the device at a
+ * programmed bit-transfer rate.
+ *
+ * Related Files
+ * - reg_spi.h
+ * - spi.h
+ * - spi.c
+ * @addtogroup SPI
+ * @{
+ */
+
+/* SPI Interface Functions */
+void spiInit( void );
+void spiSetFunctional( spiBASE_t * spi, uint32 port );
+void spiEnableNotification( spiBASE_t * spi, uint32 flags );
+void spiDisableNotification( spiBASE_t * spi, uint32 flags );
+uint32 spiTransmitData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * srcbuff );
+void spiSendData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * srcbuff );
+uint32 spiReceiveData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * destbuff );
+void spiGetData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * destbuff );
+uint32 spiTransmitAndReceiveData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * srcbuff,
+ uint16 * destbuff );
+void spiSendAndGetData( spiBASE_t * spi,
+ spiDAT1_t * dataconfig_t,
+ uint32 blocksize,
+ uint16 * srcbuff,
+ uint16 * destbuff );
+void spiEnableLoopback( spiBASE_t * spi, loopBackType_t Loopbacktype );
+void spiDisableLoopback( spiBASE_t * spi );
+SpiDataStatus_t SpiTxStatus( spiBASE_t * spi );
+SpiDataStatus_t SpiRxStatus( spiBASE_t * spi );
+void spi2GetConfigValue( spi_config_reg_t * config_reg, config_value_type_t type );
+void spi4GetConfigValue( spi_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void spiNotification(spiBASE_t *spi, uint32 flags)
+ * @brief Interrupt callback
+ * @param[in] spi - Spi module base address
+ * @param[in] flags - Copy of error interrupt flags
+ *
+ * This is a callback that is provided by the application and is called upon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void spiNotification( spiBASE_t * spi, uint32 flags );
+
+/** @fn void spiEndNotification(spiBASE_t *spi)
+ * @brief Interrupt callback for End of TX or RX data length.
+ * @param[in] spi - Spi module base address
+ *
+ * This is a callback that is provided by the application and is called upon
+ * an interrupt at the End of TX or RX data length.
+ */
+void spiEndNotification( spiBASE_t * spi );
+
+/**@}*/
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __SPI_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/std_nhet.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/std_nhet.h
new file mode 100644
index 000000000..58725acd2
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/std_nhet.h
@@ -0,0 +1,2288 @@
+/** @file std_nhet.h
+ * @brief NHET Instruction Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __STD_NHET_H__
+ #define __STD_NHET_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+ #include "sys_common.h"
+
+ #ifdef __cplusplus
+extern "C" {
+ #endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+ #ifndef HET_v2
+ #define HET_v2 0
+ #endif
+
+ #if( ( __little_endian__ == 0 ) || ( __LITTLE_ENDIAN__ == 0 ) \
+ || defined( _TMS470_BIG ) || defined( __big_endian__ ) )
+
+ #ifndef HETBYTE
+ #define HETBYTE uint8
+ #endif
+
+typedef struct memory_format
+{
+ uint32 program_word;
+ uint32 control_word;
+ uint32 data_word;
+ uint32 reserved_word;
+} HET_MEMORY;
+
+/*---------------------------------------------*/
+/* ACMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct acmp_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 coutprv : 1;
+ uint32 : 2;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 ext_reg : 1;
+ uint32 : 2;
+ uint32 pin_action : 1;
+ uint32 : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} ACMP_FIELDS;
+
+typedef union
+{
+ ACMP_FIELDS acmp;
+ HET_MEMORY memory;
+} ACMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ECMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ecmp_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 hr_lr : 1;
+ uint32 angle_compare : 1;
+ uint32 : 7;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 sub_opcode : 2;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} ECMP_FIELDS;
+
+typedef union
+{
+ ECMP_FIELDS ecmp;
+ HET_MEMORY memory;
+} ECMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SCMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct scmp_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 2;
+ uint32 : 2;
+ uint32 : 5;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 coutprv : 1;
+ uint32 : 2;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 compare_mode : 2;
+ uint32 pin_action : 1;
+ uint32 : 2;
+ uint32 restart_en : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} SCMP_FIELDS;
+
+typedef union
+{
+ SCMP_FIELDS scmp;
+ HET_MEMORY memory;
+} SCMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MCMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct mcmp_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 hr_lr : 1;
+ uint32 angle_compare : 1;
+ uint32 : 1;
+ uint32 save_subtract : 1;
+ uint32 : 5;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 sub_opcode : 1;
+ uint32 order : 1;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} MCMP_FIELDS;
+
+typedef union
+{
+ MCMP_FIELDS mcmp;
+ HET_MEMORY memory;
+} MCMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MOV64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct mov64_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 compare_mode : 2;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} MOV64_FIELDS;
+
+typedef union
+{
+ MOV64_FIELDS mov64;
+ HET_MEMORY memory;
+} MOV64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DADM64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct dadm64_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 compare_mode : 2;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} DADM64_FIELDS;
+
+typedef union
+{
+ DADM64_FIELDS dadm64;
+ HET_MEMORY memory;
+} DADM64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* RADM64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct RADM64_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 compare_mode : 2;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} RADM64_FIELDS;
+
+typedef union
+{
+ RADM64_FIELDS radm64;
+ HET_MEMORY memory;
+} RADM64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MOV32 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct MOV32_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 z_flag : 1;
+ uint32 : 15;
+ uint32 init_flag : 1;
+ uint32 sub_opcode : 1;
+ uint32 move_type : 2;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} MOV32_FIELDS;
+
+typedef union
+{
+ MOV32_FIELDS mov32;
+ HET_MEMORY memory;
+} MOV32_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ADM32 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ADM32_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 auto_read_clear : 1;
+ uint32 : 19;
+ uint32 init_flag : 1;
+ uint32 sub_opcode : 1;
+ uint32 move_type : 2;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} ADM32_FIELDS;
+
+typedef union
+{
+ ADM32_FIELDS adm32;
+ HET_MEMORY memory;
+} ADM32_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ADCNST INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ADCNST_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1; /* pk */
+ uint32 : 1;
+ uint32 constant : 25;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} ADCNST_FIELDS;
+
+typedef union
+{
+ ADCNST_FIELDS adcnst;
+ HET_MEMORY memory;
+} ADCNST_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* ADD INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct ADD_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} ADD_FIELDS;
+
+typedef union
+{
+ ADD_FIELDS add;
+ HET_MEMORY memory;
+} ADD_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* ADC INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct ADC_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} ADC_FIELDS;
+
+typedef union
+{
+ ADC_FIELDS adc;
+ HET_MEMORY memory;
+} ADC_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* SUB INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct SUB_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} SUB_FIELDS;
+
+typedef union
+{
+ SUB_FIELDS sub;
+ HET_MEMORY memory;
+} SUB_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* SBB INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct SBB_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} SBB_FIELDS;
+
+typedef union
+{
+ SBB_FIELDS sbb;
+ HET_MEMORY memory;
+} SBB_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* AND INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct AND_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} AND_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ AND_FIELDS and_cpp;
+ #else
+ AND_FIELDS and;
+ #endif
+ HET_MEMORY memory;
+} AND_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* OR INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct OR_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} OR_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ OR_FIELDS or_cpp;
+ #else
+ OR_FIELDS or ;
+ #endif
+ HET_MEMORY memory;
+} OR_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* XOR INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct XOR_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 remote_address : 9;
+
+ uint32 : 5;
+ uint32 control : 1;
+ uint32 sub_opcode3 : 3;
+ uint32 src_1 : 4;
+ uint32 src_2 : 3;
+ uint32 shft_mode : 3;
+ uint32 shft_cnt : 5;
+ uint32 reg_ext : 1;
+ uint32 init_flag : 1;
+ uint32 sub_opcode1 : 1;
+ uint32 rem_dest : 2;
+ uint32 reg : 2;
+ uint32 : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} XOR_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ XOR_FIELDS xor_cpp;
+ #else
+ XOR_FIELDS xor ;
+ #endif
+ HET_MEMORY memory;
+} XOR_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* CNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct CNT_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 angle_cnt : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 : 4;
+ uint32 interrupt_enable : 1;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 1;
+ uint32 max : 25;
+
+ uint32 data : 25;
+ uint32 : 7;
+} CNT_FIELDS;
+
+typedef union
+{
+ CNT_FIELDS cnt;
+ HET_MEMORY memory;
+} CNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* APCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct apcnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 interrupt_enable : 1;
+ uint32 edge_select : 2;
+ uint32 : 6;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 count : 25;
+
+ uint32 data : 25;
+ uint32 : 7;
+} APCNT_FIELDS;
+
+typedef union
+{
+ APCNT_FIELDS apcnt;
+ HET_MEMORY memory;
+} APCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* PCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct pcnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 interrupt_enable : 1;
+ uint32 period_pulse_select : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 count : 25;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} PCNT_FIELDS;
+
+typedef union
+{
+ PCNT_FIELDS pcnt;
+ HET_MEMORY memory;
+} PCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct scnt_format
+{
+ uint32 : 9;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 1;
+ uint32 count_mode : 2;
+ uint32 step_width : 2;
+ uint32 : 4;
+
+ uint32 : 5;
+ uint32 auto_read_clear : 1;
+ uint32 : 1;
+ uint32 gap_start : 25;
+
+ uint32 data : 25;
+ uint32 : 7;
+} SCNT_FIELDS;
+
+typedef union
+{
+ SCNT_FIELDS scnt;
+ HET_MEMORY memory;
+} SCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ACNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct acnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 edge_select : 1;
+ uint32 : 7;
+ uint32 interrupt_enable : 1;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 gap_end : 25;
+
+ uint32 data : 25;
+ uint32 : 7;
+} ACNT_FIELDS;
+
+typedef union
+{
+ ACNT_FIELDS acnt;
+ HET_MEMORY memory;
+} ACNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ECNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ecnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 1;
+ uint32 count_mode : 2;
+ uint32 : 6;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 : 3;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 count_cond : 3;
+ uint32 : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} ECNT_FIELDS;
+
+typedef union
+{
+ ECNT_FIELDS ecnt;
+ HET_MEMORY memory;
+} ECNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* RCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct rcnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 1;
+ uint32 count_mode : 2;
+ uint32 : 5;
+ uint32 count_mode1 : 1;
+
+ uint32 : 3;
+ uint32 : 2;
+ uint32 control : 1;
+ uint32 : 1;
+ uint32 divisor : 25;
+
+ uint32 data : 25;
+ uint32 : 7;
+} RCNT_FIELDS;
+
+typedef union
+{
+ RCNT_FIELDS rcnt;
+ HET_MEMORY memory;
+} RCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DJNZ INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct djnz_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 1;
+ uint32 sub_opcode : 2;
+ uint32 : 6;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 4;
+ uint32 cond_addr : 9;
+ uint32 : 10;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} DJNZ_FIELDS;
+
+typedef union
+{
+ DJNZ_FIELDS djnz;
+ HET_MEMORY memory;
+} DJNZ_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DJZ INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct djz_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 1;
+ uint32 sub_opcode : 2;
+ uint32 : 6;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 4;
+ uint32 cond_addr : 9;
+ uint32 : 10;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} DJZ_FIELDS;
+
+typedef union
+{
+ DJZ_FIELDS djz;
+ HET_MEMORY memory;
+} DJZ_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* PWCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct pwcnt_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 hr_lr : 1;
+ uint32 count_mode : 2;
+ uint32 : 6;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 : 3;
+ uint32 en_pin_action : 1;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 3;
+ uint32 pin_action : 1;
+ uint32 opposite_action : 1;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} PWCNT_FIELDS;
+
+typedef union
+{
+ PWCNT_FIELDS pwcnt;
+ HET_MEMORY memory;
+} PWCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* WCAP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct wcap_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 hr_lr : 1;
+ uint32 : 8;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 : 3;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 capture_condition : 2;
+ uint32 : 2;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} WCAP_FIELDS;
+
+typedef union
+{
+ WCAP_FIELDS wcap;
+ HET_MEMORY memory;
+} WCAP_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* WCAPE INSTRUCTION */
+/*----------------------------------------------*/
+typedef struct wcape_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 : 3;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 capture_condition : 2;
+ uint32 : 2;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 ts_data : 25;
+ uint32 ec_data : 7;
+} WCAPE_FIELDS;
+
+typedef union
+{
+ WCAPE_FIELDS wcape;
+ HET_MEMORY memory;
+} WCAPE_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* BR INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct br_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 9;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 : 3;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+
+ #if HET_v2
+ uint32 branch_condition : 5;
+ #else
+ uint32 branch_condition : 3;
+ uint32 : 1;
+ uint32 : 1;
+ #endif
+
+ uint32 : 2;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 hr_data : 7;
+} BR_FIELDS;
+
+typedef union
+{
+ BR_FIELDS br;
+ HET_MEMORY memory;
+} BR_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SHFT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct shft_format
+{
+ uint32 : 6;
+ uint32 reqnum : 3;
+ uint32 brk : 1;
+ uint32 next_program_address : 9;
+ uint32 op_code : 4;
+ uint32 : 5;
+ uint32 shift_mode : 4;
+
+ uint32 : 3;
+ uint32 request : 2;
+ uint32 auto_read_clear : 1;
+ uint32 previous_bit : 1;
+ uint32 : 3;
+ uint32 cond_addr : 9;
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 shift_condition : 2;
+ uint32 : 2;
+ uint32 t_register_select : 1;
+ uint32 ab_register_select : 1;
+ uint32 interrupt_enable : 1;
+
+ uint32 data : 25;
+ uint32 : 7;
+} SHFT_FIELDS;
+
+typedef union
+{
+ SHFT_FIELDS shft;
+ HET_MEMORY memory;
+} SHFT_INSTRUCTION;
+
+ /* ----------------------------------------------------------------------------------------------------
+ */
+
+ #else /* if ( ( __little_endian__ == 0 ) || ( __LITTLE_ENDIAN__ == 0 ) || defined( \
+ _TMS470_BIG ) || defined( __big_endian__ ) ) */
+
+ #ifndef HETBYTE
+ #define HETBYTE uint8
+ #endif
+
+typedef struct memory_format
+{
+ uint32 program_word;
+ uint32 control_word;
+ uint32 data_word;
+ uint32 reserved_word;
+} HET_MEMORY;
+
+/*---------------------------------------------*/
+/* ACMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct acmp_format
+{
+ uint32 : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 1;
+ uint32 pin_action : 1;
+ uint32 : 3;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 2;
+ uint32 coutprv : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} ACMP_FIELDS;
+
+typedef union
+{
+ ACMP_FIELDS acmp;
+ HET_MEMORY memory;
+} ACMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ECMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ecmp_format
+{
+ uint32 : 7;
+ uint32 angle_compare : 1;
+ uint32 hr_lr : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 sub_opcode : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} ECMP_FIELDS;
+
+typedef union
+{
+ ECMP_FIELDS ecmp;
+ HET_MEMORY memory;
+} ECMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SCMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct scmp_format
+{
+ uint32 : 5;
+ uint32 : 2;
+ uint32 : 2;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 restart_en : 1;
+ uint32 : 2;
+ uint32 pin_action : 1;
+ uint32 compare_mode : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 2;
+ uint32 coutprv : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} SCMP_FIELDS;
+
+typedef union
+{
+ SCMP_FIELDS scmp;
+ HET_MEMORY memory;
+} SCMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MCMP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct mcmp_format
+{
+ uint32 : 5;
+ uint32 save_subtract : 1;
+ uint32 : 1;
+ uint32 angle_compare : 1;
+ uint32 hr_lr : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 order : 1;
+ uint32 sub_opcode : 1;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} MCMP_FIELDS;
+
+typedef union
+{
+ MCMP_FIELDS mcmp;
+ HET_MEMORY memory;
+} MCMP_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MOV64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct mov64_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 compare_mode : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} MOV64_FIELDS;
+
+typedef union
+{
+ MOV64_FIELDS mov64;
+ HET_MEMORY memory;
+} MOV64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DADM64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct dadm64_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 compare_mode : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} DADM64_FIELDS;
+
+typedef union
+{
+ DADM64_FIELDS dadm64;
+ HET_MEMORY memory;
+} DADM64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* RADM64 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct RADM64_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 compare_mode : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} RADM64_FIELDS;
+
+typedef union
+{
+ RADM64_FIELDS radm64;
+ HET_MEMORY memory;
+} RADM64_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* MOV32 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct MOV32_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 move_type : 2;
+ uint32 sub_opcode : 1;
+ uint32 init_flag : 1;
+ uint32 : 15;
+ uint32 z_flag : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} MOV32_FIELDS;
+
+typedef union
+{
+ MOV32_FIELDS mov32;
+ HET_MEMORY memory;
+} MOV32_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ADM32 INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ADM32_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 move_type : 2;
+ uint32 sub_opcode : 1;
+ uint32 init_flag : 1;
+ uint32 : 19;
+ uint32 auto_read_clear : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} ADM32_FIELDS;
+
+typedef union
+{
+ ADM32_FIELDS adm32;
+ HET_MEMORY memory;
+} ADM32_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ADCNST INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ADCNST_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 constant : 25;
+ uint32 : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} ADCNST_FIELDS;
+
+typedef union
+{
+ ADCNST_FIELDS adcnst;
+ HET_MEMORY memory;
+} ADCNST_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* ADD INSTRUCTION */
+/*----------------------------------------------*/
+typedef struct ADD_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} ADD_FIELDS;
+
+typedef union
+{
+ ADD_FIELDS add;
+ HET_MEMORY memory;
+} ADD_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* ADC INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct ADC_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} ADC_FIELDS;
+
+typedef union
+{
+ ADC_FIELDS adc;
+ HET_MEMORY memory;
+} ADC_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* SUB INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct SUB_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} SUB_FIELDS;
+
+typedef union
+{
+ SUB_FIELDS sub;
+ HET_MEMORY memory;
+} SUB_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* SBB INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct SBB_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} SBB_FIELDS;
+
+typedef union
+{
+ SBB_FIELDS sbb;
+ HET_MEMORY memory;
+} SBB_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* AND INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct AND_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} AND_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ AND_FIELDS and_cpp;
+ #else
+ AND_FIELDS and;
+ #endif
+ HET_MEMORY memory;
+} AND_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* OR INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct OR_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} OR_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ OR_FIELDS or_cpp;
+ #else
+ OR_FIELDS or ;
+ #endif
+ HET_MEMORY memory;
+} OR_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* XOR INSTRUCTION */
+/*----------------------------------------------*/
+
+typedef struct XOR_format
+{
+ uint32 remote_address : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 : 1;
+ uint32 reg : 2;
+ uint32 rem_dest : 2;
+ uint32 sub_opcode1 : 1;
+ uint32 init_flag : 1;
+ uint32 reg_ext : 1;
+ uint32 shft_cnt : 5;
+ uint32 shft_mode : 3;
+ uint32 src_2 : 3;
+ uint32 src_1 : 4;
+ uint32 sub_opcode3 : 3;
+ uint32 control : 1;
+ uint32 : 5;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} XOR_FIELDS;
+
+typedef union
+{
+ #ifdef __cplusplus
+ XOR_FIELDS xor_cpp;
+ #else
+ XOR_FIELDS xor ;
+ #endif
+ HET_MEMORY memory;
+} XOR_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* CNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct CNT_format
+{
+ uint32 interrupt_enable : 1;
+ uint32 : 4;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 angle_cnt : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 max : 25;
+ uint32 : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} CNT_FIELDS;
+
+typedef union
+{
+ CNT_FIELDS cnt;
+ HET_MEMORY memory;
+} CNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* APCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct apcnt_format
+{
+ uint32 : 6;
+ uint32 edge_select : 2;
+ uint32 interrupt_enable : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 count : 25;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} APCNT_FIELDS;
+
+typedef union
+{
+ APCNT_FIELDS apcnt;
+ HET_MEMORY memory;
+} APCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* PCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct pcnt_format
+{
+ uint32 pin_select : 5;
+ uint32 : 1;
+ uint32 period_pulse_select : 2;
+ uint32 interrupt_enable : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 count : 25;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} PCNT_FIELDS;
+
+typedef union
+{
+ PCNT_FIELDS pcnt;
+ HET_MEMORY memory;
+} PCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct scnt_format
+{
+ uint32 : 4;
+ uint32 step_width : 2;
+ uint32 count_mode : 2;
+ uint32 : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 : 9;
+
+ uint32 gap_start : 25;
+ uint32 : 1;
+ uint32 auto_read_clear : 1;
+ uint32 : 5;
+
+ uint32 : 7;
+ uint32 data : 25;
+} SCNT_FIELDS;
+
+typedef union
+{
+ SCNT_FIELDS scnt;
+ HET_MEMORY memory;
+} SCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ACNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct acnt_format
+{
+ uint32 interrupt_enable : 1;
+ uint32 : 7;
+ uint32 edge_select : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 gap_end : 25;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} ACNT_FIELDS;
+
+typedef union
+{
+ ACNT_FIELDS acnt;
+ HET_MEMORY memory;
+} ACNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* ECNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct ecnt_format
+{
+ uint32 : 6;
+ uint32 count_mode : 2;
+ uint32 : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 1;
+ uint32 count_cond : 3;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 : 3;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} ECNT_FIELDS;
+
+typedef union
+{
+ ECNT_FIELDS ecnt;
+ HET_MEMORY memory;
+} ECNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* RCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct rcnt_format
+{
+ uint32 count_mode1 : 1;
+ uint32 : 5;
+ uint32 count_mode : 2;
+ uint32 : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 divisor : 25;
+ uint32 : 1;
+ uint32 control : 1;
+ uint32 : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} RCNT_FIELDS;
+
+typedef union
+{
+ RCNT_FIELDS rcnt;
+ HET_MEMORY memory;
+} RCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DJNZ INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct djnz_format
+{
+ uint32 : 6;
+ uint32 sub_opcode : 2;
+ uint32 : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 10;
+ uint32 cond_addr : 9;
+ uint32 : 4;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} DJNZ_FIELDS;
+
+typedef union
+{
+ DJNZ_FIELDS djnz;
+ HET_MEMORY memory;
+} DJNZ_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* DJZ INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct djz_format
+{
+ uint32 : 6;
+ uint32 sub_opcode : 2;
+ uint32 : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 10;
+ uint32 cond_addr : 9;
+ uint32 : 4;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} DJZ_FIELDS;
+
+typedef union
+{
+ DJZ_FIELDS djz;
+ HET_MEMORY memory;
+} DJZ_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* PWCNT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct pwcnt_format
+{
+ uint32 : 6;
+ uint32 count_mode : 2;
+ uint32 hr_lr : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 opposite_action : 1;
+ uint32 pin_action : 1;
+ uint32 : 3;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 en_pin_action : 1;
+ uint32 : 3;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} PWCNT_FIELDS;
+
+typedef union
+{
+ PWCNT_FIELDS pwcnt;
+ HET_MEMORY memory;
+} PWCNT_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* WCAP INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct wcap_format
+{
+ uint32 : 8;
+ uint32 hr_lr : 1;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 2;
+ uint32 capture_condition : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 : 3;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} WCAP_FIELDS;
+
+typedef union
+{
+ WCAP_FIELDS wcap;
+ HET_MEMORY memory;
+} WCAP_INSTRUCTION;
+
+/*----------------------------------------------*/
+/* WCAPE INSTRUCTION */
+/*----------------------------------------------*/
+typedef struct wcape_format
+{
+ uint32 : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 2;
+ uint32 capture_condition : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 ec_data : 7;
+ uint32 ts_data : 25;
+} WCAPE_FIELDS;
+
+typedef union
+{
+ WCAPE_FIELDS wcape;
+ HET_MEMORY memory;
+} WCAPE_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* BR INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct br_format
+{
+ uint32 : 9;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 : 2;
+ uint32 : 1;
+ uint32 : 1;
+ uint32 branch_condition : 3;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 : 3;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 hr_data : 7;
+ uint32 data : 25;
+} BR_FIELDS;
+
+typedef union
+{
+ BR_FIELDS br;
+ HET_MEMORY memory;
+} BR_INSTRUCTION;
+
+/*---------------------------------------------*/
+/* SHFT INSTRUCTION */
+/*---------------------------------------------*/
+typedef struct shft_format
+{
+ uint32 shift_mode : 4;
+ uint32 : 5;
+ uint32 op_code : 4;
+ uint32 next_program_address : 9;
+ uint32 brk : 1;
+ uint32 reqnum : 3;
+ uint32 : 6;
+
+ uint32 interrupt_enable : 1;
+ uint32 ab_register_select : 1;
+ uint32 t_register_select : 1;
+ uint32 : 2;
+ uint32 shift_condition : 2;
+ uint32 : 1;
+ uint32 pin_select : 5;
+ uint32 cond_addr : 9;
+ uint32 : 3;
+ uint32 previous_bit : 1;
+ uint32 auto_read_clear : 1;
+ uint32 request : 2;
+ uint32 : 3;
+
+ uint32 : 7;
+ uint32 data : 25;
+} SHFT_FIELDS;
+
+typedef union
+{
+ SHFT_FIELDS shft;
+ HET_MEMORY memory;
+} SHFT_INSTRUCTION;
+
+ #endif /* if ( ( __little_endian__ == 0 ) || ( __LITTLE_ENDIAN__ == 0 ) || defined( \
+ _TMS470_BIG ) || defined( __big_endian__ ) ) */
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+ #ifdef __cplusplus
+}
+ #endif /*extern "C" */
+
+#endif /* ifndef __STD_NHET_H__ */
+/*--------------------------- End Of File ----------------------------------*/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_common.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_common.h
new file mode 100644
index 000000000..4a9acb10e
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_common.h
@@ -0,0 +1,131 @@
+/** @file sys_common.h
+ * @brief Common Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - General Definitions
+ * .
+ * which are relevant for all drivers.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_COMMON_H__
+#define __SYS_COMMON_H__
+
+#include "hal_stdtypes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/************************************************************/
+/* Type Definitions */
+/************************************************************/
+
+#ifndef _TBOOLEAN_DECLARED
+typedef boolean tBoolean;
+ #define _TBOOLEAN_DECLARED
+#endif
+
+/** @enum loopBackType
+ * @brief Loopback type definition
+ */
+
+/** @typedef loopBackType_t
+ * @brief Loopback type Type Definition
+ *
+ * This type is used to select the module Loopback type Digital or Analog loopback.
+ */
+typedef enum loopBackType
+{
+ Digital_Lbk = 0U,
+ Analog_Lbk = 1U
+} loopBackType_t;
+
+/** @enum config_value_type
+ * @brief config type definition
+ */
+
+/** @typedef config_value_type_t
+ * @brief config type Type Definition
+ *
+ * This type is used to specify the Initial and Current value.
+ */
+typedef enum config_value_type
+{
+ InitialValue,
+ CurrentValue
+} config_value_type_t;
+
+#ifndef __little_endian__
+ #define __little_endian__ 1
+#endif
+#ifndef __LITTLE_ENDIAN__
+ #define __LITTLE_ENDIAN__ 1
+#endif
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/********************************************************************************/
+/* The ASSERT macro, which does the actual assertion checking. Typically, this */
+/* will be for procedure arguments. */
+/********************************************************************************/
+#ifdef DEBUG
+ #define ASSERT( expr ) \
+ { \
+ if( !( expr ) ) \
+ { \
+ __error__( __FILE__, __LINE__ ); \
+ } \
+ }
+#else
+ #define ASSERT( expr )
+#endif
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/* USER CODE BEGIN (3) */
+/* USER CODE END */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __SYS_COMMON_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_core.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_core.h
new file mode 100644
index 000000000..86cd11512
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_core.h
@@ -0,0 +1,362 @@
+/** @file sys_core.h
+ * @brief System Core Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Core Interface Functions
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_CORE_H__
+#define __SYS_CORE_H__
+
+#include "sys_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @def USER_STACK_LENGTH
+ * @brief USER Mode Stack length (in bytes)
+ *
+ * Alias for USER Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for USER Mode Stack length (in bytes)
+ */
+#define USER_STACK_LENGTH 0x00000300U
+
+/** @def SVC_STACK_LENGTH
+ * @brief SVC Mode Stack length (in bytes)
+ *
+ * Alias for SVC Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for SVC Mode Stack length (in bytes)
+ */
+#define SVC_STACK_LENGTH 0x00000100U
+
+/** @def FIQ_STACK_LENGTH
+ * @brief FIQ Mode Stack length (in bytes)
+ *
+ * Alias for FIQ Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for FIQ Mode Stack length (in bytes)
+ */
+#define FIQ_STACK_LENGTH 0x00000100U
+
+/** @def IRQ_STACK_LENGTH
+ * @brief IRQ Mode Stack length (in bytes)
+ *
+ * Alias for IRQ Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for IRQ Mode Stack length (in bytes)
+ */
+#define IRQ_STACK_LENGTH 0x00000100U
+
+/** @def ABORT_STACK_LENGTH
+ * @brief ABORT Mode Stack length (in bytes)
+ *
+ * Alias for ABORT Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for ABORT Mode Stack length (in bytes)
+ */
+#define ABORT_STACK_LENGTH 0x00000100U
+
+/** @def UNDEF_STACK_LENGTH
+ * @brief UNDEF Mode Stack length (in bytes)
+ *
+ * Alias for UNDEF Mode Stack length (in bytes)
+ *
+ * @note: Use this macro for UNDEF Mode Stack length (in bytes)
+ */
+#define UNDEF_STACK_LENGTH 0x00000100U
+
+/* System Core Interface Functions */
+
+/** @fn void _coreInitRegisters_(void)
+ * @brief Initialize Core register
+ */
+void _coreInitRegisters_( void );
+
+/** @fn void _coreInitStackPointer_(void)
+ * @brief Initialize Core stack pointer
+ */
+void _coreInitStackPointer_( void );
+
+/** @fn void _getCPSRValue_(void)
+ * @brief Get CPSR Value
+ */
+uint32 _getCPSRValue_( void );
+
+/** @fn void _gotoCPUIdle_(void)
+ * @brief Take CPU to Idle state
+ */
+void _gotoCPUIdle_( void );
+
+/** @fn void _coreEnableIrqVicOffset_(void)
+ * @brief Enable Irq offset propagation via Vic controller
+ */
+void _coreEnableIrqVicOffset_( void );
+
+/** @fn void _coreEnableVfp_(void)
+ * @brief Enable vector floating point unit
+ */
+void _coreEnableVfp_( void );
+
+/** @fn void _coreEnableEventBusExport_(void)
+ * @brief Enable event bus export for external monitoring modules
+ * @note It is required to enable event bus export to process ecc issues.
+ *
+ * This function enables event bus exports to external monitoring modules
+ * like tightly coupled RAM wrapper, Flash wrapper and error signaling module.
+ */
+void _coreEnableEventBusExport_( void );
+
+/** @fn void _coreDisableEventBusExport_(void)
+ * @brief Disable event bus export for external monitoring modules
+ *
+ * This function disables event bus exports to external monitoring modules
+ * like tightly coupled RAM wrapper, Flash wrapper and error signaling module.
+ */
+void _coreDisableEventBusExport_( void );
+
+/** @fn void _coreEnableRamEcc_(void)
+ * @brief Enable external ecc error for RAM odd and even bank
+ * @note It is required to enable event bus export to process ecc issues.
+ */
+void _coreEnableRamEcc_( void );
+
+/** @fn void _coreDisableRamEcc_(void)
+ * @brief Disable external ecc error for RAM odd and even bank
+ */
+void _coreDisableRamEcc_( void );
+
+/** @fn void _coreEnableFlashEcc_(void)
+ * @brief Enable external ecc error for the Flash
+ * @note It is required to enable event bus export to process ecc issues.
+ */
+void _coreEnableFlashEcc_( void );
+
+/** @fn void _coreDisableFlashEcc_(void)
+ * @brief Disable external ecc error for the Flash
+ */
+void _coreDisableFlashEcc_( void );
+
+/** @fn uint32 _coreGetDataFault_(void)
+ * @brief Get core data fault status register
+ * @return The function will return the data fault status register value:
+ * - bit [10,3..0]:
+ * - 0b00001: Alignment -> address is valid
+ * - 0b00000: Background -> address is valid
+ * - 0b01101: Permission -> address is valid
+ * - 0b01000: Precise External Abort -> address is valid
+ * - 0b10110: Imprecise External Abort -> address is
+ * unpredictable
+ * - 0b11001: Precise ECC Error -> address is valid
+ * - 0b11000: Imprecise ECC Error -> address is
+ * unpredictable
+ * - 0b00010: Debug -> address is unchanged
+ * - bit [11]:
+ * - 0: Read
+ * - 1: Write
+ * - bit [12]:
+ * - 0: AXI Decode Error (DECERR)
+ * - 1: AXI Slave Error (SLVERR)
+ */
+uint32 _coreGetDataFault_( void );
+
+/** @fn void _coreClearDataFault_(void)
+ * @brief Clear core data fault status register
+ */
+void _coreClearDataFault_( void );
+
+/** @fn uint32 _coreGetInstructionFault_(void)
+ * @brief Get core instruction fault status register
+ * @return The function will return the instruction fault status register value:
+ * - bit [10,3..0]:
+ * - 0b00001: Alignment -> address is valid
+ * - 0b00000: Background -> address is valid
+ * - 0b01101: Permission -> address is valid
+ * - 0b01000: Precise External Abort -> address is valid
+ * - 0b10110: Imprecise External Abort -> address is
+ * unpredictable
+ * - 0b11001: Precise ECC Error -> address is valid
+ * - 0b11000: Imprecise ECC Error -> address is
+ * unpredictable
+ * - 0b00010: Debug -> address is unchanged
+ * - bit [12]:
+ * - 0: AXI Decode Error (DECERR)
+ * - 1: AXI Slave Error (SLVERR)
+ */
+uint32 _coreGetInstructionFault_( void );
+
+/** @fn void _coreClearInstructionFault_(void)
+ * @brief Clear core instruction fault status register
+ */
+void _coreClearInstructionFault_( void );
+
+/** @fn uint32 _coreGetDataFaultAddress_(void)
+ * @brief Get core data fault address register
+ * @return The function will return the data fault address:
+ */
+uint32 _coreGetDataFaultAddress_( void );
+
+/** @fn void _coreClearDataFaultAddress_(void)
+ * @brief Clear core data fault address register
+ */
+void _coreClearDataFaultAddress_( void );
+
+/** @fn uint32 _coreGetInstructionFaultAddress_(void)
+ * @brief Get core instruction fault address register
+ * @return The function will return the instruction fault address:
+ */
+uint32 _coreGetInstructionFaultAddress_( void );
+
+/** @fn void _coreClearInstructionFaultAddress_(void)
+ * @brief Clear core instruction fault address register
+ */
+void _coreClearInstructionFaultAddress_( void );
+
+/** @fn uint32 _coreGetAuxiliaryDataFault_(void)
+ * @brief Get core auxiliary data fault status register
+ * @return The function will return the auxiliary data fault status register value:
+ * - bit [13..5]:
+ * - Index value for access giving error
+ * - bit [21]:
+ * - 0: Unrecoverable error
+ * - 1: Recoverable error
+ * - bit [23..22]:
+ * - 0: Side cache
+ * - 1: Side ATCM (Flash)
+ * - 2: Side BTCM (RAM)
+ * - 3: Reserved
+ * - bit [27..24]:
+ * - Cache way or way in which error occurred
+ */
+uint32 _coreGetAuxiliaryDataFault_( void );
+
+/** @fn void _coreClearAuxiliaryDataFault_(void)
+ * @brief Clear core auxiliary data fault status register
+ */
+void _coreClearAuxiliaryDataFault_( void );
+
+/** @fn uint32 _coreGetAuxiliaryInstructionFault_(void)
+ * @brief Get core auxiliary instruction fault status register
+ * @return The function will return the auxiliary instruction fault status register
+ * value:
+ * - bit [13..5]:
+ * - Index value for access giving error
+ * - bit [21]:
+ * - 0: Unrecoverable error
+ * - 1: Recoverable error
+ * - bit [23..22]:
+ * - 0: Side cache
+ * - 1: Side ATCM (Flash)
+ * - 2: Side BTCM (RAM)
+ * - 3: Reserved
+ * - bit [27..24]:
+ * - Cache way or way in which error occurred
+ */
+uint32 _coreGetAuxiliaryInstructionFault_( void );
+
+/** @fn void _coreClearAuxiliaryInstructionFault_(void)
+ * @brief Clear core auxiliary instruction fault status register
+ */
+void _coreClearAuxiliaryInstructionFault_( void );
+
+/** @fn void _disable_interrupt_(void)
+ * @brief Disable IRQ and FIQ Interrupt mode in CPSR register
+ *
+ * This function disables IRQ and FIQ Interrupt mode in CPSR register.
+ */
+void _disable_interrupt_( void );
+
+/** @fn void _disable_IRQ_interrupt_(void)
+ * @brief Disable IRQ Interrupt mode in CPSR register
+ *
+ * This function disables IRQ Interrupt mode in CPSR register.
+ */
+void _disable_IRQ_interrupt_( void );
+
+/** @fn void _disable_FIQ_interrupt_(void)
+ * @brief Disable FIQ Interrupt mode in CPSR register
+ *
+ * This function disables IRQ Interrupt mode in CPSR register.
+ */
+void _disable_FIQ_interrupt_( void );
+
+/** @fn void _enable_interrupt_(void)
+ * @brief Enable IRQ and FIQ Interrupt mode in CPSR register
+ *
+ * This function Enables IRQ and FIQ Interrupt mode in CPSR register.
+ * User must call this function to enable Interrupts in non-OS environments.
+ */
+void _enable_interrupt_( void );
+
+/** @fn void _esmCcmErrorsClear_(void)
+ * @brief Clears ESM Error caused due to CCM Errata in RevA Silicon
+ *
+ * This function Clears ESM Error caused due to CCM Errata
+ * in RevA Silicon immediately after powerup.
+ */
+void _esmCcmErrorsClear_( void );
+
+/** @fn void _errata_CORTEXR4_66_(void)
+ * @brief Work Around for Errata CORTEX-R4#66
+ *
+ * This function Disable out-of-order completion for divide
+ * instructions in Auxiliary Control register.
+ */
+void _errata_CORTEXR4_66_( void );
+
+/** @fn void _errata_CORTEXR4_57_(void)
+ * @brief Work Around for Errata CORTEX-R4#57
+ *
+ * Disable out-of-order single-precision floating point
+ * multiply-accumulate instruction completion.
+ */
+void _errata_CORTEXR4_57_( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __SYS_CORE_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_dma.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_dma.h
new file mode 100644
index 000000000..dd2d59a09
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_dma.h
@@ -0,0 +1,357 @@
+/** @file dma.h
+ * @brief DMA Driver Definition File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __DMA_H__
+#define __DMA_H__
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "reg_dma.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @def BLOCK_TRANSFER
+ * @brief Alias name for DMA Block transfer
+ * @note This value should be used while setting the DMA control packet
+ */
+#define BLOCK_TRANSFER 1U
+
+/** @def FRAME_TRANSFER
+ * @brief Alias name for DMA Frame transfer
+ * @note This value should be used while setting the DMA control packet
+ */
+#define FRAME_TRANSFER 0U
+
+/** @def AUTOINIT_ON
+ * @brief Alias name for Auto Initialization ON
+ * @note This value should be used while setting the DMA control packet
+ */
+#define AUTOINIT_ON 1U
+
+/** @def AUTOINIT_OFF
+ * @brief Alias name for Auto Initialization OFF
+ * @note This value should be used while setting the DMA control packet
+ */
+#define AUTOINIT_OFF 0U
+
+/** @def ADDR_FIXED
+ * @brief Alias name for Fixed Addressing mode
+ * @note This value should be used while setting the DMA control packet
+ */
+#define ADDR_FIXED 0U
+
+/** @def ADDR_INC1
+ * @brief Alias name for Post-increment Addressing mode
+ * @note This value should be used while setting the DMA control packet
+ */
+#define ADDR_INC1 1U
+
+/** @def ADDR_OFFSET
+ * @brief Alias name for Offset Addressing mode
+ * @note This value should be used while setting the DMA control packet
+ */
+#define ADDR_OFFSET 3U
+
+/** @def INTERRUPT_ENABLE
+ * @brief Alias name for Interrupt enable
+ * @note @note This value should be used for API argument @a intenable
+ */
+#define INTERRUPT_ENABLE 1U
+
+/** @def INTERRUPT_DISABLE
+ * @brief Alias name for Interrupt disable
+ * @note @note This value should be used for API argument @a intenable
+ */
+#define INTERRUPT_DISABLE 0U
+
+/** @def DMA_GCTRL_BUSBUSY
+ * @brief Bit mask for BUS BUSY in GCTRL Register
+ * @note @note This value should be used for API argument @a intenable
+ */
+#define DMA_GCTRL_BUSBUSY ( 0x00004000U )
+
+/** @enum dmaREQTYPE
+ * @brief DMA TRANSFER Type definitions
+ *
+ * Used to define DMA transfer type
+ */
+enum dmaREQTYPE
+{
+ DMA_HW = 0x0U, /**< Hardware trigger */
+ DMA_SW = 0x1U /**< Software trigger */
+};
+
+/** @enum dmaCHANNEL
+ * @brief DMA CHANNEL definitions
+ *
+ * Used to define DMA Channel Number
+ */
+enum dmaCHANNEL
+{
+ DMA_CH0 = 0x00U,
+ DMA_CH1 = 0x01U,
+ DMA_CH2 = 0x02U,
+ DMA_CH3 = 0x03U,
+ DMA_CH4 = 0x04U,
+ DMA_CH5 = 0x05U,
+ DMA_CH6 = 0x06U,
+ DMA_CH7 = 0x07U,
+ DMA_CH8 = 0x08U,
+ DMA_CH9 = 0x09U,
+ DMA_CH10 = 0x0AU,
+ DMA_CH11 = 0x0BU,
+ DMA_CH12 = 0x0CU,
+ DMA_CH13 = 0x0DU,
+ DMA_CH14 = 0x0EU,
+ DMA_CH15 = 0x0FU,
+ DMA_CH16 = 0x10U,
+ DMA_CH17 = 0x11U,
+ DMA_CH18 = 0x12U,
+ DMA_CH19 = 0x13U,
+ DMA_CH20 = 0x14U,
+ DMA_CH21 = 0x15U,
+ DMA_CH22 = 0x16U,
+ DMA_CH23 = 0x17U,
+ DMA_CH24 = 0x18U,
+ DMA_CH25 = 0x19U,
+ DMA_CH26 = 0x1AU,
+ DMA_CH27 = 0x1BU,
+ DMA_CH28 = 0x1CU,
+ DMA_CH29 = 0x1DU,
+ DMA_CH30 = 0x1EU,
+ DMA_CH31 = 0x1FU
+};
+
+/** @enum dmaACCESS
+ * @brief DMA ACESS WIDTH definitions
+ *
+ * Used to define DMA access width
+ */
+typedef enum dmaACCESS
+{
+ ACCESS_8_BIT = 0U,
+ ACCESS_16_BIT = 1U,
+ ACCESS_32_BIT = 2U,
+ ACCESS_64_BIT = 3U
+} dmaACCESS_t;
+
+/** @enum dmaPRIORITY
+ * @brief DMA Channel Priority
+ *
+ * Used to define to which priority queue a DMA channel is assigned to
+ */
+typedef enum dmaPRIORITY
+{
+ LOWPRIORITY = 0U,
+ HIGHPRIORITY = 1U
+} dmaPRIORITY_t;
+
+/** @enum dmaREGION
+ * @brief DMA Memory Protection Region
+ *
+ * Used to define DMA Memory Protection Region
+ */
+typedef enum dmaREGION
+{
+ DMA_REGION0 = 0U,
+ DMA_REGION1 = 1U,
+ DMA_REGION2 = 2U,
+ DMA_REGION3 = 3U
+} dmaREGION_t;
+
+/** @enum dmaRegionAccess
+ * @brief DMA Memory Protection Region Access
+ *
+ * Used to define access permission of DMA memory protection regions
+ */
+typedef enum dmaRegionAccess
+{
+ FULLACCESS = 0U,
+ READONLY = 1U,
+ WRITEONLY = 2U,
+ NOACCESS = 3U
+} dmaRegionAccess_t;
+
+/** @enum dmaInterrupt
+ * @brief DMA Interrupt
+ *
+ * Used to define DMA interrupts
+ */
+typedef enum dmaInterrupt
+{
+ FTC = 1U, /**< Frame transfer complete Interrupt */
+ LFS = 2U, /**< Last frame transfer started Interrupt */
+ HBC = 3U, /**< First half of block complete Interrupt */
+ BTC = 4U /**< Block transfer complete Interrupt */
+} dmaInterrupt_t;
+
+/** @struct g_dmaCTRL
+ * @brief Interrupt mode globals
+ *
+ */
+typedef struct dmaCTRLPKT
+{
+ uint32 SADD; /* initial source address */
+ uint32 DADD; /* initial destination address */
+ uint32 CHCTRL; /* next ctrl packet to be trigger + 1 */
+ uint32 FRCNT; /* frame count */
+ uint32 ELCNT; /* element count */
+ uint32 ELDOFFSET; /* element destination offset */
+ uint32 ELSOFFSET; /* element source offset */
+ uint32 FRDOFFSET; /* frame detination offset */
+ uint32 FRSOFFSET; /* frame source offset */
+ uint32 PORTASGN; /* dma port */
+ uint32 RDSIZE; /* read element size */
+ uint32 WRSIZE; /* write element size */
+ uint32 TTYPE; /* trigger type - frame/block */
+ uint32 ADDMODERD; /* addresssing mode for source */
+ uint32 ADDMODEWR; /* addresssing mode for destination */
+ uint32 AUTOINIT; /* auto-init mode */
+ uint32 COMBO; /* next ctrl packet trigger(Not used) */
+} g_dmaCTRL;
+
+typedef volatile struct
+{
+ struct /* 0x000-0x400 */
+ {
+ uint32 ISADDR;
+ uint32 IDADDR;
+ uint32 ITCOUNT;
+ uint32 rsvd1;
+ uint32 CHCTRL;
+ uint32 EIOFF;
+ uint32 FIOFF;
+ uint32 rsvd2;
+ } PCP[ 32U ];
+
+ struct /* 0x400-0x800 */
+ {
+ uint32 res[ 256U ];
+ } RESERVED;
+
+ struct /* 0x800-0xA00 */
+ {
+ uint32 CSADDR;
+ uint32 CDADDR;
+ uint32 CTCOUNT;
+ uint32 rsvd3;
+ } WCP[ 32U ];
+} dmaRAMBASE_t;
+
+#define dmaRAMREG ( ( dmaRAMBASE_t * ) 0xFFF80000U )
+
+typedef struct dma_config_reg
+{
+ uint32 CONFIG_CHPRIOS;
+ uint32 CONFIG_GCHIENAS;
+ uint32 CONFIG_DREQASI[ 8U ];
+ uint32 CONFIG_FTCINTENAS;
+ uint32 CONFIG_LFSINTENAS;
+ uint32 CONFIG_HBCINTENAS;
+ uint32 CONFIG_BTCINTENAS;
+ uint32 CONFIG_DMAPCR;
+ uint32 CONFIG_DMAMPCTRL;
+} dma_config_reg_t;
+
+/**
+ * @defgroup DMA DMA
+ * @brief Direct Memory Access Controller
+ *
+ * The DMA controller is used to transfer data between two locations in the memory map in
+ * the background of CPU operations. Typically, the DMA is used to:
+ * - Transfer blocks of data between external and internal data memories
+ * - Restructure portions of internal data memory
+ * - Continually service a peripheral
+ * - Page program sections to internal program memory
+ *
+ * Related files:
+ * - reg_dma.h
+ * - sys_dma.h
+ * - sys_dma.c
+ *
+ * @addtogroup DMA
+ * @{
+ */
+/* DMA Interface Functions */
+void dmaEnable( void );
+void dmaDisable( void );
+void dmaSetCtrlPacket( uint32 channel, g_dmaCTRL g_dmaCTRLPKT );
+void dmaSetChEnable( uint32 channel, uint32 type );
+void dmaReqAssign( uint32 channel, uint32 reqline );
+uint32 dmaGetReq( uint32 channel );
+void dmaSetPriority( uint32 channel, dmaPRIORITY_t priority );
+void dmaEnableInterrupt( uint32 channel, dmaInterrupt_t inttype );
+void dmaDisableInterrupt( uint32 channel, dmaInterrupt_t inttype );
+void dmaDefineRegion( dmaREGION_t region, uint32 start_add, uint32 end_add );
+void dmaEnableRegion( dmaREGION_t region, dmaRegionAccess_t access, boolean intenable );
+void dmaDisableRegion( dmaREGION_t region );
+void dmaEnableParityCheck( void );
+void dmaDisableParityCheck( void );
+void dmaGetConfigValue( dma_config_reg_t * config_reg, config_value_type_t type );
+
+/** @fn void dmaGroupANotification(dmaInterrupt_t inttype, uint32 channel)
+ * @brief Interrupt callback
+ * @param[in] inttype Interrupt type
+ * - FTC
+ * - LFS
+ * - HBC
+ * - BTC
+ * @param[in] channel channel number 0..15
+ * This is a callback that is provided by the application and is called apon
+ * an interrupt. The parameter passed to the callback is a copy of the
+ * interrupt flag register.
+ */
+void dmaGroupANotification( dmaInterrupt_t inttype, uint32 channel );
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/**@}*/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __DMA_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_mpu.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_mpu.h
new file mode 100644
index 000000000..047be46b2
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_mpu.h
@@ -0,0 +1,582 @@
+/** @file sys_mpu.h
+ * @brief System Mpu Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Mpu Interface Functions
+ * .
+ * which are relevant for the memory protection unit driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_MPU_H__
+#define __SYS_MPU_H__
+
+#include "sys_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @def mpuREGION1
+ * @brief Mpu region 1
+ *
+ * Alias for Mpu region 1
+ */
+#define mpuREGION1 0U
+
+/** @def mpuREGION2
+ * @brief Mpu region 2
+ *
+ * Alias for Mpu region 1
+ */
+#define mpuREGION2 1U
+
+/** @def mpuREGION3
+ * @brief Mpu region 3
+ *
+ * Alias for Mpu region 3
+ */
+#define mpuREGION3 2U
+
+/** @def mpuREGION4
+ * @brief Mpu region 4
+ *
+ * Alias for Mpu region 4
+ */
+#define mpuREGION4 3U
+
+/** @def mpuREGION5
+ * @brief Mpu region 5
+ *
+ * Alias for Mpu region 5
+ */
+#define mpuREGION5 4U
+
+/** @def mpuREGION6
+ * @brief Mpu region 6
+ *
+ * Alias for Mpu region 6
+ */
+#define mpuREGION6 5U
+
+/** @def mpuREGION7
+ * @brief Mpu region 7
+ *
+ * Alias for Mpu region 7
+ */
+#define mpuREGION7 6U
+
+/** @def mpuREGION8
+ * @brief Mpu region 8
+ *
+ * Alias for Mpu region 8
+ */
+#define mpuREGION8 7U
+
+/** @def mpuREGION9
+ * @brief Mpu region 9
+ *
+ * Alias for Mpu region 9
+ */
+#define mpuREGION9 8U
+
+/** @def mpuREGION10
+ * @brief Mpu region 10
+ *
+ * Alias for Mpu region 10
+ */
+#define mpuREGION10 9U
+
+/** @def mpuREGION11
+ * @brief Mpu region 11
+ *
+ * Alias for Mpu region 11
+ */
+#define mpuREGION11 10U
+
+/** @def mpuREGION12
+ * @brief Mpu region 12
+ *
+ * Alias for Mpu region 12
+ */
+#define mpuREGION12 11U
+
+/** @def mpuREGION_ENABLE
+ * @brief Enable MPU Region
+ *
+ * Alias for MPU region enable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuREGION_ENABLE 1U
+
+/** @def mpuREGION_DISABLE
+ * @brief Disable MPU Region
+ *
+ * Alias for MPU region disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuREGION_DISABLE 0U
+
+/** @def mpuSUBREGION0_DISABLE
+ * @brief Disable MPU Sub Region0
+ *
+ * Alias for MPU subregion0 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION0_DISABLE 0x100U
+
+/** @def mpuSUBREGION1_DISABLE
+ * @brief Disable MPU Sub Region1
+ *
+ * Alias for MPU subregion1 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION1_DISABLE 0x200U
+
+/** @def mpuSUBREGION2_DISABLE
+ * @brief Disable MPU Sub Region2
+ *
+ * Alias for MPU subregion2 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION2_DISABLE 0x400U
+
+/** @def mpuSUBREGION3_DISABLE
+ * @brief Disable MPU Sub Region3
+ *
+ * Alias for MPU subregion3 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION3_DISABLE 0x800U
+
+/** @def mpuSUBREGION4_DISABLE
+ * @brief Disable MPU Sub Region4
+ *
+ * Alias for MPU subregion4 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION4_DISABLE 0x1000U
+
+/** @def mpuSUBREGION5_DISABLE
+ * @brief Disable MPU Sub Region5
+ *
+ * Alias for MPU subregion5 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION5_DISABLE 0x2000U
+
+/** @def mpuSUBREGION6_DISABLE
+ * @brief Disable MPU Sub Region6
+ *
+ * Alias for MPU subregion6 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION6_DISABLE 0x4000U
+
+/** @def mpuSUBREGION7_DISABLE
+ * @brief Disable MPU Sub Region7
+ *
+ * Alias for MPU subregion7 disable.
+ *
+ * @note This should be used as the parameter of the API _mpuSetRegionSizeRegister_
+ */
+#define mpuSUBREGION7_DISABLE 0x8000U
+
+/** @enum mpuRegionAccessPermission
+ * @brief Alias names for mpu region access permissions
+ *
+ * This enumeration is used to provide alias names for the mpu region access permission:
+ * - MPU_PRIV_NA_USER_NA_EXEC no access in privileged mode, no access in user mode and
+ * execute
+ * - MPU_PRIV_RW_USER_NA_EXEC read/write in privileged mode, no access in user mode
+ * and execute
+ * - MPU_PRIV_RW_USER_RO_EXEC read/write in privileged mode, read only in user mode
+ * and execute
+ * - MPU_PRIV_RW_USER_RW_EXEC read/write in privileged mode, read/write in user mode
+ * and execute
+ * - MPU_PRIV_RO_USER_NA_EXEC read only in privileged mode, no access in user mode and
+ * execute
+ * - MPU_PRIV_RO_USER_RO_EXEC read only in privileged mode, read only in user mode and
+ * execute
+ * - MPU_PRIV_NA_USER_NA_NOEXEC no access in privileged mode, no access in user mode
+ * and no execution
+ * - MPU_PRIV_RW_USER_NA_NOEXEC read/write in privileged mode, no access in user mode
+ * and no execution
+ * - MPU_PRIV_RW_USER_RO_NOEXEC read/write in privileged mode, read only in user mode
+ * and no execution
+ * - MPU_PRIV_RW_USER_RW_NOEXEC read/write in privileged mode, read/write in user mode
+ * and no execution
+ * - MPU_PRIV_RO_USER_NA_NOEXEC read only in privileged mode, no access in user mode
+ * and no execution
+ * - MPU_PRIV_RO_USER_RO_NOEXEC read only in privileged mode, read only in user mode
+ * and no execution
+ *
+ */
+enum mpuRegionAccessPermission
+{
+ MPU_PRIV_NA_USER_NA_EXEC = 0x0000U, /**< Alias no access in privileged mode, no access
+ in user mode and execute */
+ MPU_PRIV_RW_USER_NA_EXEC = 0x0100U, /**< Alias no read/write in privileged mode, no
+ access in user mode and execute */
+ MPU_PRIV_RW_USER_RO_EXEC = 0x0200U, /**< Alias no read/write in privileged mode, read
+ only in user mode and execute */
+ MPU_PRIV_RW_USER_RW_EXEC = 0x0300U, /**< Alias no read/write in privileged mode,
+ read/write in user mode and execute */
+ MPU_PRIV_RO_USER_NA_EXEC = 0x0500U, /**< Alias no read only in privileged mode, no
+ access in user mode and execute */
+ MPU_PRIV_RO_USER_RO_EXEC = 0x0600U, /**< Alias no read only in privileged mode, read
+ only in user mode and execute */
+ MPU_PRIV_NA_USER_NA_NOEXEC = 0x1000U, /**< Alias no access in privileged mode, no
+ access in user mode and no execution */
+ MPU_PRIV_RW_USER_NA_NOEXEC = 0x1100U, /**< Alias no read/write in privileged mode, no
+ access in user mode and no execution */
+ MPU_PRIV_RW_USER_RO_NOEXEC = 0x1200U, /**< Alias no read/write in privileged mode,
+ read only in user mode and no execution */
+ MPU_PRIV_RW_USER_RW_NOEXEC = 0x1300U, /**< Alias no read/write in privileged mode,
+ read/write in user mode and no execution */
+ MPU_PRIV_RO_USER_NA_NOEXEC = 0x1500U, /**< Alias no read only in privileged mode, no
+ access in user mode and no execution */
+ MPU_PRIV_RO_USER_RO_NOEXEC = 0x1600U /**< Alias no read only in privileged mode, read
+ only in user mode and no execution */
+};
+
+/** @enum mpuRegionType
+ * @brief Alias names for mpu region type
+ *
+ * This enumeration is used to provide alias names for the mpu region type:
+ * - MPU_STRONGLYORDERED_SHAREABLE Memory type strongly ordered and sharable
+ * - MPU_DEVICE_SHAREABLE Memory type device and sharable
+ * - MPU_NORMAL_OIWTNOWA_NONSHARED Memory type normal outer and inner write-through,
+ * no write allocate and non shared
+ * - MPU_NORMAL_OIWTNOWA_SHARED Memory type normal outer and inner write-through,
+ * no write allocate and shared
+ * - MPU_NORMAL_OIWBNOWA_NONSHARED Memory type normal outer and inner write-back, no
+ * write allocate and non shared
+ * - MPU_NORMAL_OIWBNOWA_SHARED Memory type normal outer and inner write-back, no
+ * write allocate and shared
+ * - MPU_NORMAL_OINC_NONSHARED Memory type normal outer and inner non-cachable and
+ * non shared
+ * - MPU_NORMAL_OINC_SHARED Memory type normal outer and inner non-cachable and
+ * shared
+ * - MPU_NORMAL_OIWBWA_NONSHARED Memory type normal outer and inner write-back,
+ * write allocate and non shared
+ * - MPU_NORMAL_OIWBWA_SHARED Memory type normal outer and inner write-back,
+ * write allocate and shared
+ * - MPU_DEVICE_NONSHAREABLE Memory type device and non sharable
+ */
+enum mpuRegionType
+{
+ MPU_STRONGLYORDERED_SHAREABLE = 0x0000U, /**< Memory type strongly ordered and
+ sharable */
+ MPU_DEVICE_SHAREABLE = 0x0001U, /**< Memory type device and sharable */
+ MPU_NORMAL_OIWTNOWA_NONSHARED = 0x0002U, /**< Memory type normal outer and inner
+ write-through, no write allocate and non
+ shared */
+ MPU_NORMAL_OIWBNOWA_NONSHARED = 0x0003U, /**< Memory type normal outer and inner
+ write-back, no write allocate and non
+ shared */
+ MPU_NORMAL_OIWTNOWA_SHARED = 0x0006U, /**< Memory type normal outer and inner
+ write-through, no write allocate and shared
+ */
+ MPU_NORMAL_OIWBNOWA_SHARED = 0x0007U, /**< Memory type normal outer and inner
+ write-back, no write allocate and shared */
+ MPU_NORMAL_OINC_NONSHARED = 0x0008U, /**< Memory type normal outer and inner
+ non-cachable and non shared */
+ MPU_NORMAL_OIWBWA_NONSHARED = 0x000BU, /**< Memory type normal outer and inner
+ write-back, write allocate and non shared */
+ MPU_NORMAL_OINC_SHARED = 0x000CU, /**< Memory type normal outer and inner non-cachable
+ and shared */
+ MPU_NORMAL_OIWBWA_SHARED = 0x000FU, /**< Memory type normal outer and inner
+ write-back, write allocate and shared */
+ MPU_DEVICE_NONSHAREABLE = 0x0010U /**< Memory type device and non sharable */
+};
+
+/** @enum mpuRegionSize
+ * @brief Alias names for mpu region type
+ *
+ * This enumeration is used to provide alias names for the mpu region type:
+ * - MPU_STRONGLYORDERED_SHAREABLE Memory type strongly ordered and sharable
+ * - MPU_32_BYTES Memory size in bytes
+ * - MPU_64_BYTES Memory size in bytes
+ * - MPU_128_BYTES Memory size in bytes
+ * - MPU_256_BYTES Memory size in bytes
+ * - MPU_512_BYTES Memory size in bytes
+ * - MPU_1_KB Memory size in kB
+ * - MPU_2_KB Memory size in kB
+ * - MPU_4_KB Memory size in kB
+ * - MPU_8_KB Memory size in kB
+ * - MPU_16_KB Memory size in kB
+ * - MPU_32_KB Memory size in kB
+ * - MPU_64_KB Memory size in kB
+ * - MPU_128_KB Memory size in kB
+ * - MPU_256_KB Memory size in kB
+ * - MPU_512_KB Memory size in kB
+ * - MPU_1_MB Memory size in MB
+ * - MPU_2_MB Memory size in MB
+ * - MPU_4_MB Memory size in MB
+ * - MPU_8_MBv Memory size in MB
+ * - MPU_16_MB Memory size in MB
+ * - MPU_32_MB Memory size in MB
+ * - MPU_64_MB Memory size in MB
+ * - MPU_128_MB Memory size in MB
+ * - MPU_256_MB Memory size in MB
+ * - MPU_512_MB Memory size in MB
+ * - MPU_1_GB Memory size in GB
+ * - MPU_2_GB Memory size in GB
+ * - MPU_4_GB Memory size in GB
+ */
+enum mpuRegionSize
+{
+ MPU_32_BYTES = 0x04U << 1U, /**< Memory size in bytes */
+ MPU_64_BYTES = 0x05U << 1U, /**< Memory size in bytes */
+ MPU_128_BYTES = 0x06U << 1U, /**< Memory size in bytes */
+ MPU_256_BYTES = 0x07U << 1U, /**< Memory size in bytes */
+ MPU_512_BYTES = 0x08U << 1U, /**< Memory size in bytes */
+ MPU_1_KB = 0x09U << 1U, /**< Memory size in kB */
+ MPU_2_KB = 0x0AU << 1U, /**< Memory size in kB */
+ MPU_4_KB = 0x0BU << 1U, /**< Memory size in kB */
+ MPU_8_KB = 0x0CU << 1U, /**< Memory size in kB */
+ MPU_16_KB = 0x0DU << 1U, /**< Memory size in kB */
+ MPU_32_KB = 0x0EU << 1U, /**< Memory size in kB */
+ MPU_64_KB = 0x0FU << 1U, /**< Memory size in kB */
+ MPU_128_KB = 0x10U << 1U, /**< Memory size in kB */
+ MPU_256_KB = 0x11U << 1U, /**< Memory size in kB */
+ MPU_512_KB = 0x12U << 1U, /**< Memory size in kB */
+ MPU_1_MB = 0x13U << 1U, /**< Memory size in MB */
+ MPU_2_MB = 0x14U << 1U, /**< Memory size in MB */
+ MPU_4_MB = 0x15U << 1U, /**< Memory size in MB */
+ MPU_8_MB = 0x16U << 1U, /**< Memory size in MB */
+ MPU_16_MB = 0x17U << 1U, /**< Memory size in MB */
+ MPU_32_MB = 0x18U << 1U, /**< Memory size in MB */
+ MPU_64_MB = 0x19U << 1U, /**< Memory size in MB */
+ MPU_128_MB = 0x1AU << 1U, /**< Memory size in MB */
+ MPU_256_MB = 0x1BU << 1U, /**< Memory size in MB */
+ MPU_512_MB = 0x1CU << 1U, /**< Memory size in MB */
+ MPU_1_GB = 0x1DU << 1U, /**< Memory size in GB */
+ MPU_2_GB = 0x1EU << 1U, /**< Memory size in GB */
+ MPU_4_GB = 0x1FU << 1U /**< Memory size in GB */
+};
+
+/** @fn void _mpuInit_(void)
+ * @brief Initialize Mpu
+ *
+ * This function initializes memory protection unit.
+ */
+void _mpuInit_( void );
+
+/** @fn void _mpuEnable_(void)
+ * @brief Enable Mpu
+ *
+ * This function enables memory protection unit.
+ */
+void _mpuEnable_( void );
+
+/** @fn void _mpuDisable_(void)
+ * @brief Disable Mpu
+ *
+ * This function disables memory protection unit.
+ */
+void _mpuDisable_( void );
+
+/** @fn void _mpuEnableBackgroundRegion_(void)
+ * @brief Enable Mpu background region
+ *
+ * This function enables background region of the memory protection unit.
+ */
+void _mpuEnableBackgroundRegion_( void );
+
+/** @fn void _mpuDisableBackgroundRegion_(void)
+ * @brief Disable Mpu background region
+ *
+ * This function disables background region of the memory protection unit.
+ */
+void _mpuDisableBackgroundRegion_( void );
+
+/** @fn uint32 _mpuGetNumberOfRegions_(void)
+ * @brief Returns number of implemented Mpu regions
+ * @return Number of implemented mpu regions
+ *
+ * This function returns the number of implemented mpu regions.
+ */
+uint32 _mpuGetNumberOfRegions_( void );
+
+/** @fn uint32 _mpuAreRegionsSeparate_(void)
+ * @brief Returns the type of the implemented mpu regions
+ * @return Mpu type of regions
+ *
+ * This function returns 0 when mpu regions are of type unified otherwise regions are of
+ * type separate.
+ */
+uint32 _mpuAreRegionsSeparate_( void );
+
+/** @fn void _mpuSetRegion_(uint32 region)
+ * @brief Set mpu region number
+ * @param[in] region Region number: mpuREGION1..mpuREGION12
+ *
+ * This function selects one of the implemented mpu regions.
+ */
+void _mpuSetRegion_( uint32 region );
+
+/** @fn uint32 _mpuGetRegion_(void)
+ * @brief Returns the currently selected mpu region
+ * @return Mpu region number
+ *
+ * This function returns currently selected mpu region number.
+ */
+uint32 _mpuGetRegion_( void );
+
+/** @fn void _mpuSetRegionBaseAddress_(uint32 address)
+ * @brief Set base address of currently selected mpu region
+ * @param[in] address Base address of the MPU region
+ * @note The base address must always aligned with region size
+ *
+ * This function sets the base address of currently selected mpu region.
+ */
+void _mpuSetRegionBaseAddress_( uint32 address );
+
+/** @fn uint32 _mpuGetRegionBaseAddress_(void)
+ * @brief Returns base address of currently selected mpu region
+ * @return Current base address of selected mpu region
+ *
+ * This function returns the base address of currently selected mpu region.
+ */
+uint32 _mpuGetRegionBaseAddress_( void );
+
+/** @fn void _mpuSetRegionTypeAndPermission_(uint32 type, uint32 permission)
+ * @brief Set type of currently selected mpu region
+ * @param[in] type Region Type
+ * - MPU_STRONGLYORDERED_SHAREABLE : Memory type strongly ordered and
+ * sharable
+ * - MPU_DEVICE_SHAREABLE : Memory type device and sharable
+ * - MPU_NORMAL_OIWTNOWA_NONSHARED : Memory type normal outer and
+ * inner write-through, no write allocate and non shared
+ * - MPU_NORMAL_OIWBNOWA_NONSHARED : Memory type normal outer and
+ * inner write-back, no write allocate and non shared
+ * - MPU_NORMAL_OIWTNOWA_SHARED : Memory type normal outer and
+ * inner write-through, no write allocate and shared
+ * - MPU_NORMAL_OIWBNOWA_SHARED : Memory type normal outer and
+ * inner write-back, no write allocate and shared
+ * - MPU_NORMAL_OINC_NONSHARED : Memory type normal outer and
+ * inner non-cachable and non shared
+ * - MPU_NORMAL_OIWBWA_NONSHARED : Memory type normal outer and
+ * inner write-back, write allocate and non shared
+ * - MPU_NORMAL_OINC_SHARED : Memory type normal outer and
+ * inner non-cachable and shared
+ * - MPU_NORMAL_OIWBWA_SHARED : Memory type normal outer and
+ * inner write-back, write allocate and shared
+ * - MPU_DEVICE_NONSHAREABLE : Memory type device and non
+ * sharable
+ *
+ * @param[in] permission Region Access permission
+ * - MPU_PRIV_NA_USER_NA_EXEC : Alias no access in privileged
+ * mode, no access in user mode and execute
+ * - MPU_PRIV_RW_USER_NA_EXEC : Alias no read/write in
+ * privileged mode, no access in user mode and execute
+ * - MPU_PRIV_RW_USER_RO_EXEC : Alias no read/write in
+ * privileged mode, read only in user mode and execute
+ * - MPU_PRIV_RW_USER_RW_EXEC : Alias no read/write in
+ * privileged mode, read/write in user mode and execute
+ * - MPU_PRIV_RO_USER_NA_EXEC : Alias no read only in
+ * privileged mode, no access in user mode and execute
+ * - MPU_PRIV_RO_USER_RO_EXEC : Alias no read only in
+ * privileged mode, read only in user mode and execute
+ * - MPU_PRIV_NA_USER_NA_NOEXEC : Alias no access in privileged
+ * mode, no access in user mode and no execution
+ * - MPU_PRIV_RW_USER_NA_NOEXEC : Alias no read/write in
+ * privileged mode, no access in user mode and no execution
+ * - MPU_PRIV_RW_USER_RO_NOEXEC : Alias no read/write in
+ * privileged mode, read only in user mode and no execution
+ * - MPU_PRIV_RW_USER_RW_NOEXEC : Alias no read/write in
+ * privileged mode, read/write in user mode and no execution
+ * - MPU_PRIV_RO_USER_NA_NOEXEC : Alias no read only in
+ * privileged mode, no access in user mode and no execution
+ * - MPU_PRIV_RO_USER_RO_NOEXEC : Alias no read only in
+ * privileged mode, read only in user mode and no execution
+ *
+ * This function sets the type of currently selected mpu region.
+ */
+void _mpuSetRegionTypeAndPermission_( uint32 type, uint32 permission );
+
+/** @fn uint32 _mpuGetRegionType_(void)
+ * @brief Returns the type of currently selected mpu region
+ * @return Current type of selected mpu region
+ *
+ * This function returns the type of currently selected mpu region.
+ */
+uint32 _mpuGetRegionType_( void );
+
+/** @fn uint32 _mpuGetRegionPermission_(void)
+ * @brief Returns permission of currently selected mpu region
+ * @return Current type of selected mpu region
+ *
+ * This function returns permission of currently selected mpu region.
+ */
+uint32 _mpuGetRegionPermission_( void );
+
+/** @fn void _mpuSetRegionSizeRegister_(uint32 value)
+ * @brief Set mpu region size register value
+ * @param[in] value Value to be written in the MPU Region Size and Enable register
+ *
+ * This function sets mpu region size register value.
+ *
+ * Sample usuage:
+ * _mpuSetRegion_(mpuREGION5);
+ * _mpuSetRegionSizeRegister_(mpuREGION_ENABLE | MPU_16_KB | mpuSUBREGION3_DISABLE |
+ * mpuSUBREGION4_DISABLE);
+ */
+void _mpuSetRegionSizeRegister_( uint32 value );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __SYS_MPU_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pcr.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pcr.h
new file mode 100644
index 000000000..9e7ccf0aa
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pcr.h
@@ -0,0 +1,306 @@
+/** @file sys_pcr.h
+ * @brief PCR Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_PCR_H__
+#define __SYS_PCR_H__
+
+#include "reg_pcr.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* PCR General Definitions */
+
+typedef uint32 peripheralFrame_CS_t;
+
+#define PeripheralFrame_CS0 0U
+#define PeripheralFrame_CS1 1U
+#define PeripheralFrame_CS2 2U
+#define PeripheralFrame_CS3 3U
+#define PeripheralFrame_CS4 4U
+#define PeripheralFrame_CS5 5U
+#define PeripheralFrame_CS6 6U
+#define PeripheralFrame_CS7 7U
+#define PeripheralFrame_CS8 8U
+#define PeripheralFrame_CS9 9U
+#define PeripheralFrame_CS10 10U
+#define PeripheralFrame_CS11 11U
+#define PeripheralFrame_CS12 12U
+#define PeripheralFrame_CS13 13U
+#define PeripheralFrame_CS14 14U
+#define PeripheralFrame_CS15 15U
+#define PeripheralFrame_CS16 16U
+#define PeripheralFrame_CS17 17U
+#define PeripheralFrame_CS18 18U
+#define PeripheralFrame_CS19 19U
+#define PeripheralFrame_CS20 20U
+#define PeripheralFrame_CS21 21U
+#define PeripheralFrame_CS22 22U
+#define PeripheralFrame_CS23 23U
+#define PeripheralFrame_CS24 24U
+#define PeripheralFrame_CS25 25U
+#define PeripheralFrame_CS26 26U
+#define PeripheralFrame_CS27 27U
+#define PeripheralFrame_CS28 28U
+#define PeripheralFrame_CS29 29U
+#define PeripheralFrame_CS30 30U
+#define PeripheralFrame_CS31 31U
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+typedef uint32 quadrant_Select_t;
+#define Quadrant0 1U
+#define Quadrant1 2U
+#define Quadrant2 4U
+#define Quadrant3 8U
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/** @typedef peripheral_Frame_Select_t
+ * @brief PCR Peripheral Frame Type Definition
+ *
+ * This type is used to access the PCR peripheral Frame configuration register.
+ */
+typedef struct peripheral_Frame_Select
+{
+ peripheralFrame_CS_t Peripheral_CS;
+ quadrant_Select_t Peripheral_Quadrant;
+} peripheral_Frame_Select_t;
+
+/* USER CODE BEGIN (3) */
+/* USER CODE END */
+
+/** @typedef peripheral_Quad_ChipSelect_t
+ * @brief PCR Peripheral Frame registers Type Definition
+ *
+ * This type is used to access all the PCR peripheral Frame configuration registers.
+ */
+typedef struct peripheral_Quad_ChipSelect
+{
+ uint32 Peripheral_Quad0_3_CS0_7;
+ uint32 Peripheral_Quad4_7_CS8_15;
+ uint32 Peripheral_Quad8_11_CS16_23;
+ uint32 Peripheral_Quad12_15_CS24_31;
+} peripheral_Quad_ChipSelect_t;
+
+/* USER CODE BEGIN (4) */
+/* USER CODE END */
+
+/** @typedef peripheral_Memory_ChipSelect_t
+ * @brief PCR Peripheral Memory Frame registers Type Definition
+ *
+ * This type is used to access all the PCR peripheral Memory Frame configuration
+ * registers.
+ */
+typedef struct peripheral_Memory_ChipSelect
+{
+ uint32 Peripheral_Mem_CS0_31;
+ uint32 Peripheral_Mem_CS32_63;
+} peripheral_Memory_ChipSelect_t;
+
+/* USER CODE BEGIN (5) */
+/* USER CODE END */
+
+typedef uint32 peripheral_MemoryFrame_CS_t;
+
+#define PeripheralMemoryFrame_CS0 0U
+#define PeripheralMemoryFrame_CS1 1U
+#define PeripheralMemoryFrame_CS2 2U
+#define PeripheralMemoryFrame_CS3 3U
+#define PeripheralMemoryFrame_CS4 4U
+#define PeripheralMemoryFrame_CS5 5U
+#define PeripheralMemoryFrame_CS6 6U
+#define PeripheralMemoryFrame_CS7 7U
+#define PeripheralMemoryFrame_CS8 8U
+#define PeripheralMemoryFrame_CS9 9U
+#define PeripheralMemoryFrame_CS10 10U
+#define PeripheralMemoryFrame_CS11 11U
+#define PeripheralMemoryFrame_CS12 12U
+#define PeripheralMemoryFrame_CS13 13U
+#define PeripheralMemoryFrame_CS14 14U
+#define PeripheralMemoryFrame_CS15 15U
+#define PeripheralMemoryFrame_CS16 16U
+#define PeripheralMemoryFrame_CS17 17U
+#define PeripheralMemoryFrame_CS18 18U
+#define PeripheralMemoryFrame_CS19 19U
+#define PeripheralMemoryFrame_CS20 20U
+#define PeripheralMemoryFrame_CS21 21U
+#define PeripheralMemoryFrame_CS22 22U
+#define PeripheralMemoryFrame_CS23 23U
+#define PeripheralMemoryFrame_CS24 24U
+#define PeripheralMemoryFrame_CS25 25U
+#define PeripheralMemoryFrame_CS26 26U
+#define PeripheralMemoryFrame_CS27 27U
+#define PeripheralMemoryFrame_CS28 28U
+#define PeripheralMemoryFrame_CS29 29U
+#define PeripheralMemoryFrame_CS30 30U
+#define PeripheralMemoryFrame_CS31 31U
+#define PeripheralMemoryFrame_CS32 32U
+#define PeripheralMemoryFrame_CS33 33U
+#define PeripheralMemoryFrame_CS34 34U
+#define PeripheralMemoryFrame_CS35 35U
+#define PeripheralMemoryFrame_CS36 36U
+#define PeripheralMemoryFrame_CS37 37U
+#define PeripheralMemoryFrame_CS38 38U
+#define PeripheralMemoryFrame_CS39 39U
+#define PeripheralMemoryFrame_CS40 40U
+#define PeripheralMemoryFrame_CS41 41U
+#define PeripheralMemoryFrame_CS42 42U
+#define PeripheralMemoryFrame_CS43 43U
+#define PeripheralMemoryFrame_CS44 44U
+#define PeripheralMemoryFrame_CS45 45U
+#define PeripheralMemoryFrame_CS46 46U
+#define PeripheralMemoryFrame_CS47 47U
+#define PeripheralMemoryFrame_CS48 48U
+#define PeripheralMemoryFrame_CS49 49U
+#define PeripheralMemoryFrame_CS50 50U
+#define PeripheralMemoryFrame_CS51 51U
+#define PeripheralMemoryFrame_CS52 52U
+#define PeripheralMemoryFrame_CS53 53U
+#define PeripheralMemoryFrame_CS54 54U
+#define PeripheralMemoryFrame_CS55 55U
+#define PeripheralMemoryFrame_CS56 56U
+#define PeripheralMemoryFrame_CS57 57U
+#define PeripheralMemoryFrame_CS58 58U
+#define PeripheralMemoryFrame_CS59 59U
+#define PeripheralMemoryFrame_CS60 60U
+#define PeripheralMemoryFrame_CS61 61U
+#define PeripheralMemoryFrame_CS62 62U
+#define PeripheralMemoryFrame_CS63 63U
+
+/* USER CODE BEGIN (6) */
+/* USER CODE END */
+
+typedef struct pcr_config_reg
+{
+ uint32 CONFIG_PMPROTSET0;
+ uint32 CONFIG_PMPROTSET1;
+ uint32 CONFIG_PPROTSET0;
+ uint32 CONFIG_PPROTSET1;
+ uint32 CONFIG_PPROTSET2;
+ uint32 CONFIG_PPROTSET3;
+ uint32 CONFIG_PCSPWRDWNSET0;
+ uint32 CONFIG_PCSPWRDWNSET1;
+ uint32 CONFIG_PSPWRDWNSET0;
+ uint32 CONFIG_PSPWRDWNSET1;
+ uint32 CONFIG_PSPWRDWNSET2;
+ uint32 CONFIG_PSPWRDWNSET3;
+} pcr_config_reg_t;
+
+/**
+ * @defgroup PCR PCR
+ * @brief Peripheral Central Resource Controller
+ *
+ * The PCR manages the accesses to the peripheral registers and peripheral
+ * memories. It provides a global reset for all the peripherals. It also supports the
+ * capability to selectively enable or disable the clock for each peripheral
+ * individually. The PCR also manages the accesses to the system module
+ * registers required to configure the device’s clocks, interrupts, and so on. The
+ * system module registers also include status flags for indicating exception
+ * conditions – resets, aborts, errors, interrupts.
+ *
+ * Related files:
+ * - reg_pcr.h
+ * - sys_pcr.h
+ * - sys_pcr.c
+ *
+ * @addtogroup PCR
+ * @{
+ */
+
+/* PCR Interface Functions */
+
+void peripheral_Frame_Protection_Set( peripheral_Frame_Select_t peripheral_Frame );
+void peripheral_Frame_Protection_Clr( peripheral_Frame_Select_t peripheral_Frame );
+void peripheral_Frame_Powerdown_Set( peripheral_Frame_Select_t peripheral_Frame );
+void peripheral_Frame_Powerdown_Clr( peripheral_Frame_Select_t peripheral_Frame );
+
+void peripheral_Protection_Set( peripheral_Quad_ChipSelect_t peripheral_Quad_CS );
+void peripheral_Protection_Clr( peripheral_Quad_ChipSelect_t peripheral_Quad_CS );
+void peripheral_Protection_Status( peripheral_Quad_ChipSelect_t * peripheral_Quad_CS );
+void peripheral_Powerdown_Set( peripheral_Quad_ChipSelect_t peripheral_Quad_CS );
+void peripheral_Powerdown_Clr( peripheral_Quad_ChipSelect_t peripheral_Quad_CS );
+void peripheral_Powerdown_Status( peripheral_Quad_ChipSelect_t * peripheral_Quad_CS );
+
+void peripheral_Memory_Protection_Set(
+ peripheral_Memory_ChipSelect_t peripheral_Memory_CS );
+void peripheral_Memory_Protection_Clr(
+ peripheral_Memory_ChipSelect_t peripheral_Memory_CS );
+void peripheral_Memory_Protection_Status(
+ peripheral_Memory_ChipSelect_t * peripheral_Memory_CS );
+void peripheral_Memory_Powerdown_Set(
+ peripheral_Memory_ChipSelect_t peripheral_Memory_CS );
+void peripheral_Memory_Powerdown_Clr(
+ peripheral_Memory_ChipSelect_t peripheral_Memory_CS );
+void peripheral_Memory_Powerdown_Status(
+ peripheral_Memory_ChipSelect_t * peripheral_Memory_CS );
+
+void peripheral_Mem_Frame_Prot_Set(
+ peripheral_MemoryFrame_CS_t peripheral_Memory_Frame_CS );
+void peripheral_Mem_Frame_Prot_Clr(
+ peripheral_MemoryFrame_CS_t peripheral_Memory_Frame_CS );
+void peripheral_Mem_Frame_Pwrdwn_Set(
+ peripheral_MemoryFrame_CS_t peripheral_Memory_Frame_CS );
+void peripheral_Mem_Frame_Pwrdwn_Clr(
+ peripheral_MemoryFrame_CS_t peripheral_Memory_Frame_CS );
+
+void pcrGetConfigValue( pcr_config_reg_t * config_reg, config_value_type_t type );
+
+/**@}*/
+/* USER CODE BEGIN (7) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ifndef __SYS_PCR_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmm.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmm.h
new file mode 100644
index 000000000..823dd919c
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmm.h
@@ -0,0 +1,176 @@
+/** @file sys_pmm.h
+ * @brief PMM Driver Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Definitions
+ * - Types
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_PMM_H__
+#define __SYS_PMM_H__
+
+#include "reg_pmm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Bit Masks */
+#define PMM_LOGICPDPWRCTRL0_LOGICPDON0 0x0F000000U /*PD2*/
+#define PMM_LOGICPDPWRCTRL0_LOGICPDON1 0x000F0000U /*PD3*/
+#define PMM_LOGICPDPWRCTRL0_LOGICPDON2 0x00000F00U /*PD4*/
+#define PMM_LOGICPDPWRCTRL0_LOGICPDON3 0x0000000FU /*PD5*/
+
+#define PMM_MEMPDPWRCTRL0_MEMPDON0 0x0F000000U /*RAM_PD1*/
+#define PMM_MEMPDPWRCTRL0_MEMPDON1 0x000F0000U /*RAM_PD2*/
+#define PMM_MEMPDPWRCTRL0_MEMPDON2 0x00000F00U /*RAM_PD3*/
+
+#define PMM_LOGICPDPWRSTAT_DOMAINON 0x00000100U
+#define PMM_LOGICPDPWRSTAT_LOGICPDPWRSTAT 0x00000003U
+#define PMM_MEMPDPWRSTAT_DOMAINON 0x00000100U
+#define PMM_MEMPDPWRSTAT_MEMPDPWRSTAT 0x00000003U
+#define PMM_GLOBALCTRL1_AUTOCLKWAKEENA 0x00000001U
+
+/* Configuration registers initial value */
+#define PMM_LOGICPDPWRCTRL0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0x5U << 24U ) | ( uint32 ) ( ( uint32 ) 0x5U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 0xAU << 8U ) | ( uint32 ) ( ( uint32 ) 0x5U << 0U ) )
+#define PMM_MEMPDPWRCTRL0_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0x5U << 24U ) | ( uint32 ) ( ( uint32 ) 0x5U << 16U ) )
+
+#define PMM_PDCLKDISREG_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 0U ) \
+ | ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 1U ) \
+ | ( uint32 ) ( ( uint32 ) ( 1U - 0U ) << 2U ) \
+ | ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 3U ) )
+
+#define PMM_GLOBALCTRL1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 0U ) )
+
+/** @enum pmmLogicPDTag
+ * @brief PMM Logic Power Domain
+ *
+ * Used to define PMM Logic Power Domain
+ */
+typedef enum pmmLogicPDTag
+{
+ PMM_LOGICPD1 = 4U, /*-- NOT USED*/
+ PMM_LOGICPD2 = 0U,
+ PMM_LOGICPD3 = 1U,
+ PMM_LOGICPD4 = 2U,
+ PMM_LOGICPD5 = 3U
+} pmm_LogicPD_t;
+
+/** @enum pmmMemPDTag
+ * @brief PMM Memory-Only Power Domain
+ *
+ * Used to define PMM Memory-Only Power Domain
+ */
+typedef enum pmmMemPDTag
+{
+ PMM_MEMPD1 = 0U,
+ PMM_MEMPD2 = 1U,
+ PMM_MEMPD3 = 2U
+} pmm_MemPD_t;
+
+/** @enum pmmModeTag
+ * @brief PSCON operating mode
+ *
+ * Used to define the operating mode of PSCON Compare Block
+ */
+typedef enum pmmModeTag
+{
+ LockStep = 0x0U,
+ SelfTest = 0x6U,
+ ErrorForcing = 0x9U,
+ SelfTestErrorForcing = 0xFU
+} pmm_Mode_t;
+
+typedef struct pmm_config_reg
+{
+ uint32 CONFIG_LOGICPDPWRCTRL0;
+ uint32 CONFIG_MEMPDPWRCTRL0;
+ uint32 CONFIG_PDCLKDISREG;
+ uint32 CONFIG_GLOBALCTRL1;
+} pmm_config_reg_t;
+
+/**
+ * @defgroup PMM PMM
+ * @brief Power Management Module
+ *
+ * The PMM provides memory-mapped registers that control the states of the supported power
+ * domains. The PMM includes interfaces to the Power Mode Controller (PMC) and the Power
+ * State Controller (PSCON). The PMC and PSCON control the power up/down sequence of each
+ * power domain.
+ *
+ * Related files:
+ * - reg_pmm.h
+ * - sys_pmm.h
+ * - sys_pmm.c
+ *
+ * @addtogroup PMM
+ * @{
+ */
+
+/* Pmm Interface Functions */
+void pmmInit( void );
+void pmmTurnONLogicPowerDomain( pmm_LogicPD_t logicPD );
+void pmmTurnONMemPowerDomain( pmm_MemPD_t memPD );
+void pmmTurnOFFLogicPowerDomain( pmm_LogicPD_t logicPD );
+void pmmTurnOFFMemPowerDomain( pmm_MemPD_t memPD );
+boolean pmmIsLogicPowerDomainActive( pmm_LogicPD_t logicPD );
+boolean pmmIsMemPowerDomainActive( pmm_MemPD_t memPD );
+void pmmGetConfigValue( pmm_config_reg_t * config_reg, config_value_type_t type );
+void pmmSetMode( pmm_Mode_t mode );
+boolean pmmPerformSelfTest( void );
+
+/**@}*/
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+
+#endif /* ifndef __SYS_PMM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmu.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmu.h
new file mode 100644
index 000000000..93605e2e5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_pmu.h
@@ -0,0 +1,244 @@
+/** @file sys_pmu.h
+ * @brief System Pmu Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Pmu Interface Functions
+ * .
+ * which are relevant for the performance monitor unit driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __SYS_PMU_H__
+#define __SYS_PMU_H__
+
+#include "sys_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/** @def pmuCOUNTER0
+ * @brief pmu event counter 0 mask
+ *
+ * Alias for pmu event counter 0 mask
+ *
+ * @note: Use this macro as a parameter 'counters' in APIs _pmuStartCounters_ and
+ *_pmuStopCounters_
+ */
+#define pmuCOUNTER0 0x00000001U
+
+/** @def pmuCOUNTER1
+ * @brief pmu event counter 1 mask
+ *
+ * Alias for pmu event counter 1 mask
+ *
+ * @note: Use this macro as a parameter 'counters' in APIs _pmuStartCounters_ and
+ *_pmuStopCounters_
+ */
+#define pmuCOUNTER1 0x00000002U
+
+/** @def pmuCOUNTER2
+ * @brief pmu event counter 2 mask
+ *
+ * Alias for pmu event counter 2 mask
+ *
+ * @note: Use this macro as a parameter 'counters' in APIs _pmuStartCounters_ and
+ *_pmuStopCounters_
+ */
+#define pmuCOUNTER2 0x00000004U
+
+/** @def pmuCYCLE_COUNTER
+ * @brief pmu cycle counter mask
+ *
+ * Alias for pmu event counter mask
+ *
+ * @note: Use this macro as a parameter 'counters' in APIs _pmuStartCounters_ and
+ *_pmuStopCounters_
+ */
+#define pmuCYCLE_COUNTER 0x80000000U
+
+/** @enum pmuEvent
+ * @brief pmu event
+ *
+ * Alias for pmu event counter increment source
+ */
+enum pmuEvent
+{
+ PMU_INST_CACHE_MISS = 0x01U,
+ PMU_DATA_CACHE_MISS = 0x03U,
+ PMU_DATA_CACHE_ACCESS = 0x04U,
+ PMU_DATA_READ_ARCH_EXECUTED = 0x06U,
+ PMU_DATA_WRITE_ARCH_EXECUTED = 0x07U,
+ PMU_INST_ARCH_EXECUTED = 0x08U,
+ PMU_EXCEPTION_TAKEN = 0x09U,
+ PMU_EXCEPTION_RETURN_ARCH_EXECUTED = 0x0AU,
+ PMU_CHANGE_TO_CONTEXT_ID_EXECUTED = 0x0BU,
+ PMU_SW_CHANGE_OF_PC_ARCH_EXECUTED = 0x0CU,
+ PMU_BRANCH_IMM_INST_ARCH_EXECUTED = 0x0DU,
+ PMU_PROC_RETURN_ARCH_EXECUTED = 0x0EU,
+ PMU_UNALIGNED_ACCESS_ARCH_EXECUTED = 0x0FU,
+ PMU_BRANCH_MISSPREDICTED = 0x10U,
+ PMU_CYCLE_COUNT = 0x11U,
+ PMU_PREDICTABLE_BRANCHES = 0x12U,
+ PMU_INST_BUFFER_STALL = 0x40U,
+ PMU_DATA_DEPENDENCY_INST_STALL = 0x41U,
+ PMU_DATA_CACHE_WRITE_BACK = 0x42U,
+ PMU_EXT_MEMORY_REQUEST = 0x43U,
+ PMU_LSU_BUSY_STALL = 0x44U,
+ PMU_FORCED_DRAIN_OFSTORE_BUFFER = 0x45U,
+ PMU_FIQ_DISABLED_CYCLE_COUNT = 0x46U,
+ PMU_IRQ_DISABLED_CYCLE_COUNT = 0x47U,
+ PMU_ETMEXTOUT_0 = 0x48U,
+ PMU_ETMEXTOUT_1 = 0x49U,
+ PMU_INST_CACHE_TAG_ECC_ERROR = 0x4AU,
+ PMU_INST_CACHE_DATA_ECC_ERROR = 0x4BU,
+ PMU_DATA_CACHE_TAG_ECC_ERROR = 0x4CU,
+ PMU_DATA_CACHE_DATA_ECC_ERROR = 0x4DU,
+ PMU_TCM_FATAL_ECC_ERROR_PREFETCH = 0x4EU,
+ PMU_TCM_FATAL_ECC_ERROR_LOAD_STORE = 0x4FU,
+ PMU_STORE_BUFFER_MERGE = 0x50U,
+ PMU_LSU_STALL_STORE_BUFFER_FULL = 0x51U,
+ PMU_LSU_STALL_STORE_QUEUE_FULL = 0x52U,
+ PMU_INTEGER_DIV_EXECUTED = 0x53U,
+ PMU_STALL_INTEGER_DIV = 0x54U,
+ PMU_PLD_INST_LINE_FILL = 0x55U,
+ PMU_PLD_INST_NO_LINE_FILL = 0x56U,
+ PMU_NON_CACHEABLE_ACCESS_AXI_MASTER = 0x57U,
+ PMU_INST_CACHE_ACCESS = 0x58U,
+ PMU_DOUBLE_DATA_CACHE_ISSUE = 0x59U,
+ PMU_DUAL_ISSUE_CASE_A = 0x5AU,
+ PMU_DUAL_ISSUE_CASE_B1_B2_F2_F2D = 0x5BU,
+ PMU_DUAL_ISSUE_OTHER = 0x5CU,
+ PMU_DP_FLOAT_INST_EXCECUTED = 0x5DU,
+ PMU_DUAL_ISSUED_PAIR_INST_ARCH_EXECUTED = 0x5EU,
+ PMU_DATA_CACHE_DATA_FATAL_ECC_ERROR = 0x60U,
+ PMU_DATA_CACHE_TAG_FATAL_ECC_ERROR = 0x61U,
+ PMU_PROCESSOR_LIVE_LOCK = 0x62U,
+ PMU_ATCM_MULTI_BIT_ECC_ERROR = 0x64U,
+ PMU_B0TCM_MULTI_BIT_ECC_ERROR = 0x65U,
+ PMU_B1TCM_MULTI_BIT_ECC_ERROR = 0x66U,
+ PMU_ATCM_SINGLE_BIT_ECC_ERROR = 0x67U,
+ PMU_B0TCM_SINGLE_BIT_ECC_ERROR = 0x68U,
+ PMU_B1TCM_SINGLE_BIT_ECC_ERROR = 0x69U,
+ PMU_TCM_COR_ECC_ERROR_LOAD_STORE = 0x6AU,
+ PMU_TCM_COR_ECC_ERROR_PREFETCH = 0x6BU,
+ PMU_TCM_FATAL_ECC_ERROR_AXI_SLAVE = 0x6CU,
+ PMU_TCM_COR_ECC_ERROR_AXI_SLAVE = 0x6DU
+};
+
+/** @fn void _pmuInit_(void)
+ * @brief Initialize Performance Monitor Unit
+ */
+void _pmuInit_( void );
+
+/** @fn void _pmuEnableCountersGlobal_(void)
+ * @brief Enable and reset cycle counter and all 3 event counters
+ */
+void _pmuEnableCountersGlobal_( void );
+
+/** @fn void _pmuDisableCountersGlobal_(void)
+ * @brief Disable cycle counter and all 3 event counters
+ */
+void _pmuDisableCountersGlobal_( void );
+
+/** @fn void _pmuResetCycleCounter_(void)
+ * @brief Reset cycle counter
+ */
+void _pmuResetCycleCounter_( void );
+
+/** @fn void _pmuResetEventCounters_(void)
+ * @brief Reset event counters 0-2
+ */
+void _pmuResetEventCounters_( void );
+
+/** @fn void _pmuResetCounters_(void)
+ * @brief Reset cycle counter and event counters 0-2
+ */
+void _pmuResetCounters_( void );
+
+/** @fn void _pmuStartCounters_(uint32 counters)
+ * @brief Starts selected counters
+ * @param[in] counters - Counter mask
+ */
+void _pmuStartCounters_( uint32 counters );
+
+/** @fn void _pmuStopCounters_(uint32 counters)
+ * @brief Stops selected counters
+ * @param[in] counters - Counter mask
+ */
+void _pmuStopCounters_( uint32 counters );
+
+/** @fn void _pmuSetCountEvent_(uint32 counter, uint32 event)
+ * @brief Set event counter count event
+ * @param[in] counter - Counter select 0..2
+ * @param[in] event - Count event
+ */
+void _pmuSetCountEvent_( uint32 counter, uint32 event );
+
+/** @fn uint32 _pmuGetCycleCount_(void)
+ * @brief Returns current cycle counter value
+ *
+ * @return cycle count.
+ */
+uint32 _pmuGetCycleCount_( void );
+
+/** @fn uint32 _pmuGetEventCount_(uint32 counter)
+ * @brief Returns current event counter value
+ * @param[in] counter - Counter select 0..2
+ *
+ * @return event counter count.
+ */
+uint32 _pmuGetEventCount_( uint32 counter );
+
+/** @fn uint32 _pmuGetOverflow_(void)
+ * @brief Returns current overflow register and clear flags
+ *
+ * @return overflow flags.
+ */
+uint32 _pmuGetOverflow_( void );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+#endif /* ifndef __SYS_PMU_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_selftest.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_selftest.h
new file mode 100644
index 000000000..5463202ce
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/sys_selftest.h
@@ -0,0 +1,484 @@
+/** @file sys_selftest.h
+ * @brief System Memory Header File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - Efuse Self Test Functions
+ * .
+ * which are relevant for the System driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __sys_selftest_H__
+#define __sys_selftest_H__
+
+#include "reg_pbist.h"
+#include "reg_stc.h"
+#include "reg_efc.h"
+#include "sys_core.h"
+#include "system.h"
+#include "sys_vim.h"
+#include "adc.h"
+#include "can.h"
+#include "mibspi.h"
+#include "het.h"
+#include "htu.h"
+#include "esm.h"
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#define flash1bitError ( *( volatile uint32 * ) ( 0xF00803F0U ) )
+#define flash2bitError ( *( volatile uint32 * ) ( 0xF00803F8U ) )
+
+#define tcramA1bitError ( *( volatile uint32 * ) ( 0x08400000U ) )
+#define tcramA2bitError ( *( volatile uint32 * ) ( 0x08400010U ) )
+
+#define tcramB1bitError ( *( volatile uint32 * ) ( 0x08400008U ) )
+#define tcramB2bitError ( *( volatile uint32 * ) ( 0x08400018U ) )
+
+#define tcramA1bit ( *( volatile uint64 * ) ( 0x08000000U ) )
+#define tcramA2bit ( *( volatile uint64 * ) ( 0x08000010U ) )
+
+#define tcramB1bit ( *( volatile uint64 * ) ( 0x08000008U ) )
+#define tcramB2bit ( *( volatile uint64 * ) ( 0x08000018U ) )
+
+#define flashBadECC1 ( *( volatile uint32 * ) ( 0x20000000U ) )
+#define flashBadECC2 ( *( volatile uint32 * ) ( 0x20000010U ) )
+
+#define CCMSR ( *( volatile uint32 * ) ( 0xFFFFF600U ) )
+#define CCMKEYR ( *( volatile uint32 * ) ( 0xFFFFF604U ) )
+
+#define DMA_PARCR ( *( volatile uint32 * ) ( 0xFFFFF1A8U ) )
+#define DMA_PARADDR ( *( volatile uint32 * ) ( 0xFFFFF1ACU ) )
+#define DMARAMLOC ( *( volatile uint32 * ) ( 0xFFF80000U ) )
+#define DMARAMPARLOC ( *( volatile uint32 * ) ( 0xFFF80A00U ) )
+
+#define MIBSPI1RAMLOC ( *( volatile uint32 * ) ( 0xFF0E0000U ) )
+#define MIBSPI3RAMLOC ( *( volatile uint32 * ) ( 0xFF0C0000U ) )
+#define MIBSPI5RAMLOC ( *( volatile uint32 * ) ( 0xFF0A0000U ) )
+
+#ifndef __PBIST_H__
+ #define __PBIST_H__
+
+/** @enum pbistPort
+ * @brief Alias names for pbist Port number
+ *
+ * This enumeration is used to provide alias names for the pbist Port number
+ * - PBIST_PORT0
+ * - PBIST_PORT1
+ *
+ * @note Check the datasheet for the port avaiability
+ */
+enum pbistPort
+{
+ PBIST_PORT0 = 0U, /**< Alias for PBIST Port 0 */
+ PBIST_PORT1 = 1U /**< Alias for PBIST Port 1 < Check datasheet for Port 1 availability
+ > */
+};
+
+/** @enum pbistAlgo
+ * @brief Alias names for pbist Algorithm
+ *
+ * This enumeration is used to provide alias names for the pbist Algorithm
+ */
+enum pbistAlgo
+{
+ PBIST_TripleReadSlow = 0x00000001U, /**> 16U )
+#define SYS_EXCEPTION ( *( volatile uint32 * ) 0xFFFFFFE4U )
+
+#define POWERON_RESET 0x8000U
+#define OSC_FAILURE_RESET 0x4000U
+#define WATCHDOG_RESET 0x2000U
+#define ICEPICK_RESET 0x2000U
+#define CPU_RESET 0x0020U
+#define SW_RESET 0x0010U
+
+#define WATCHDOG_STATUS ( *( volatile uint32 * ) 0xFFFFFC98U )
+#define DEVICE_ID_REV ( *( volatile uint32 * ) 0xFFFFFFF0U )
+
+/** @def OSC_FREQ
+ * @brief Oscillator clock source exported from HALCoGen GUI
+ *
+ * Oscillator clock source exported from HALCoGen GUI
+ */
+#define OSC_FREQ 16.0F
+
+/** @def PLL1_FREQ
+ * @brief PLL 1 clock source exported from HALCoGen GUI
+ *
+ * PLL 1 clock source exported from HALCoGen GUI
+ */
+#define PLL1_FREQ 220.00F
+
+/** @def LPO_LF_FREQ
+ * @brief LPO Low Freq Oscillator source exported from HALCoGen GUI
+ *
+ * LPO Low Freq Oscillator source exported from HALCoGen GUI
+ */
+#define LPO_LF_FREQ 0.080F
+
+/** @def LPO_HF_FREQ
+ * @brief LPO High Freq Oscillator source exported from HALCoGen GUI
+ *
+ * LPO High Freq Oscillator source exported from HALCoGen GUI
+ */
+#define LPO_HF_FREQ 10.000F
+
+/** @def PLL1_FREQ
+ * @brief PLL 2 clock source exported from HALCoGen GUI
+ *
+ * PLL 2 clock source exported from HALCoGen GUI
+ */
+#define PLL2_FREQ 220.00F
+
+/** @def GCLK_FREQ
+ * @brief GCLK domain frequency exported from HALCoGen GUI
+ *
+ * GCLK domain frequency exported from HALCoGen GUI
+ */
+#define GCLK_FREQ 220.000F
+
+/** @def HCLK_FREQ
+ * @brief HCLK domain frequency exported from HALCoGen GUI
+ *
+ * HCLK domain frequency exported from HALCoGen GUI
+ */
+#define HCLK_FREQ 220.000F
+
+/** @def RTI_FREQ
+ * @brief RTI Clock frequency exported from HALCoGen GUI
+ *
+ * RTI Clock frequency exported from HALCoGen GUI
+ */
+#define RTI_FREQ 110.000F
+
+/** @def AVCLK1_FREQ
+ * @brief AVCLK1 Domain frequency exported from HALCoGen GUI
+ *
+ * AVCLK Domain frequency exported from HALCoGen GUI
+ */
+#define AVCLK1_FREQ 110.000F
+
+/** @def AVCLK2_FREQ
+ * @brief AVCLK2 Domain frequency exported from HALCoGen GUI
+ *
+ * AVCLK2 Domain frequency exported from HALCoGen GUI
+ */
+#define AVCLK2_FREQ 0.000F
+
+/** @def AVCLK3_FREQ
+ * @brief AVCLK3 Domain frequency exported from HALCoGen GUI
+ *
+ * AVCLK3 Domain frequency exported from HALCoGen GUI
+ */
+#define AVCLK3_FREQ 110.000F
+
+/** @def AVCLK4_FREQ
+ * @brief AVCLK4 Domain frequency exported from HALCoGen GUI
+ *
+ * AVCLK4 Domain frequency exported from HALCoGen GUI
+ */
+#define AVCLK4_FREQ 110.000F
+
+/** @def VCLK1_FREQ
+ * @brief VCLK1 Domain frequency exported from HALCoGen GUI
+ *
+ * VCLK1 Domain frequency exported from HALCoGen GUI
+ */
+#define VCLK1_FREQ 110.000F
+
+/** @def VCLK2_FREQ
+ * @brief VCLK2 Domain frequency exported from HALCoGen GUI
+ *
+ * VCLK2 Domain frequency exported from HALCoGen GUI
+ */
+#define VCLK2_FREQ 110.000F
+
+/** @def VCLK3_FREQ
+ * @brief VCLK3 Domain frequency exported from HALCoGen GUI
+ *
+ * VCLK3 Domain frequency exported from HALCoGen GUI
+ */
+#define VCLK3_FREQ 110.000F
+
+/** @def VCLK4_FREQ
+ * @brief VCLK4 Domain frequency exported from HALCoGen GUI
+ *
+ * VCLK4 Domain frequency exported from HALCoGen GUI
+ */
+#define VCLK4_FREQ 110.000F
+
+/** @def SYS_PRE1
+ * @brief Alias name for RTI1CLK PRE clock source
+ *
+ * This is an alias name for the RTI1CLK pre clock source.
+ * This can be either:
+ * - Oscillator
+ * - Pll
+ * - 32 kHz Oscillator
+ * - External
+ * - Low Power Oscillator Low
+ * - Low Power Oscillator High
+ * - Flexray Pll
+ */
+/*SAFETYMCUSW 79 S MR:19.4 " Value comes from GUI drop down option " */
+#define SYS_PRE1 ( SYS_PLL1 )
+
+/** @def SYS_PRE2
+ * @brief Alias name for RTI2CLK pre clock source
+ *
+ * This is an alias name for the RTI2CLK pre clock source.
+ * This can be either:
+ * - Oscillator
+ * - Pll
+ * - 32 kHz Oscillator
+ * - External
+ * - Low Power Oscillator Low
+ * - Low Power Oscillator High
+ * - Flexray Pll
+ */
+/*SAFETYMCUSW 79 S MR:19.4 " Value comes from GUI drop down option " */
+#define SYS_PRE2 ( SYS_PLL1 )
+
+/* Configuration registers */
+typedef struct system_config_reg
+{
+ uint32 CONFIG_SYSPC1;
+ uint32 CONFIG_SYSPC2;
+ uint32 CONFIG_SYSPC7;
+ uint32 CONFIG_SYSPC8;
+ uint32 CONFIG_SYSPC9;
+ uint32 CONFIG_CSDIS;
+ uint32 CONFIG_CDDIS;
+ uint32 CONFIG_GHVSRC;
+ uint32 CONFIG_VCLKASRC;
+ uint32 CONFIG_RCLKSRC;
+ uint32 CONFIG_MSTGCR;
+ uint32 CONFIG_MINITGCR;
+ uint32 CONFIG_MSINENA;
+ uint32 CONFIG_PLLCTL1;
+ uint32 CONFIG_PLLCTL2;
+ uint32 CONFIG_UERFLAG;
+ uint32 CONFIG_LPOMONCTL;
+ uint32 CONFIG_CLKTEST;
+ uint32 CONFIG_DFTCTRLREG1;
+ uint32 CONFIG_DFTCTRLREG2;
+ uint32 CONFIG_GPREG1;
+ uint32 CONFIG_RAMGCR;
+ uint32 CONFIG_BMMCR1;
+ uint32 CONFIG_MMUGCR;
+ uint32 CONFIG_CLKCNTL;
+ uint32 CONFIG_ECPCNTL;
+ uint32 CONFIG_DEVCR1;
+ uint32 CONFIG_SYSECR;
+ uint32 CONFIG_PLLCTL3;
+ uint32 CONFIG_STCCLKDIV;
+ uint32 CONFIG_CLK2CNTL;
+ uint32 CONFIG_VCLKACON1;
+ uint32 CONFIG_CLKSLIP;
+ uint32 CONFIG_EFC_CTLEN;
+} system_config_reg_t;
+
+/* Configuration registers initial value */
+#define SYS_SYSPC1_CONFIGVALUE 0U
+
+#define SYS_SYSPC2_CONFIGVALUE 1U
+
+#define SYS_SYSPC7_CONFIGVALUE 0U
+
+#define SYS_SYSPC8_CONFIGVALUE 0U
+
+#define SYS_SYSPC9_CONFIGVALUE 1U
+
+#define SYS_CSDIS_CONFIGVALUE \
+ ( 0x00000000U | 0x00000000U | 0x00000008U | 0x00000080U | 0x00000000U | 0x00000000U \
+ | 0x00000000U | 0x4U )
+
+#define SYS_CDDIS_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 4U ) | ( uint32 ) ( ( uint32 ) 1U << 5U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) ( ( uint32 ) 0U << 9U ) \
+ | ( uint32 ) ( ( uint32 ) 0U << 10U ) | ( uint32 ) ( ( uint32 ) 0U << 11U ) )
+
+#define SYS_GHVSRC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) SYS_OSC << 24U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_OSC << 16U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_PLL1 << 0U ) )
+
+#define SYS_VCLKASRC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) SYS_VCLK << 8U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_VCLK << 0U ) )
+
+#define SYS_RCLKSRC_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 24U ) | ( uint32 ) ( ( uint32 ) SYS_VCLK << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 8U ) | ( uint32 ) ( ( uint32 ) SYS_VCLK << 0U ) )
+
+#define SYS_MSTGCR_CONFIGVALUE 0x00000105U
+
+#define SYS_MINITGCR_CONFIGVALUE 0x5U
+
+#define SYS_MSINENA_CONFIGVALUE 0U
+
+#define SYS_PLLCTL1_CONFIGVALUE_1 \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) 0x20000000U \
+ | ( uint32 ) ( ( uint32 ) 0x1FU << 24U ) | ( uint32 ) 0x00000000U \
+ | ( uint32 ) ( ( uint32 ) ( 6U - 1U ) << 16U ) | ( uint32 ) ( 0xA400U ) )
+
+#define SYS_PLLCTL1_CONFIGVALUE_2 \
+ ( ( ( SYS_PLLCTL1_CONFIGVALUE_1 ) & 0xE0FFFFFFU ) \
+ | ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 24U ) )
+
+#define SYS_PLLCTL2_CONFIGVALUE \
+ ( ( uint32 ) 0x00000000U | ( uint32 ) ( ( uint32 ) 255U << 22U ) \
+ | ( uint32 ) ( ( uint32 ) 7U << 12U ) \
+ | ( uint32 ) ( ( uint32 ) ( 2U - 1U ) << 9U ) | ( uint32 ) 61U )
+
+#define SYS_UERFLAG_CONFIGVALUE 0U
+
+#define SYS_LPOMONCTL_CONFIGVALUE_1 \
+ ( ( uint32 ) ( ( uint32 ) 1U << 24U ) | LPO_TRIM_VALUE )
+#define SYS_LPOMONCTL_CONFIGVALUE_2 \
+ ( ( uint32 ) ( ( uint32 ) 1U << 24U ) | ( uint32 ) ( ( uint32 ) 16U << 8U ) | 16U )
+
+#define SYS_CLKTEST_CONFIGVALUE 0x000A0000U
+
+#define SYS_DFTCTRLREG1_CONFIGVALUE 0x00002205U
+
+#define SYS_DFTCTRLREG2_CONFIGVALUE 0x5U
+
+#define SYS_GPREG1_CONFIGVALUE 0x0005FFFFU
+
+#define SYS_RAMGCR_CONFIGVALUE 0x00050000U
+
+#define SYS_BMMCR1_CONFIGVALUE 0xAU
+
+#define SYS_MMUGCR_CONFIGVALUE 0U
+
+#define SYS_CLKCNTL_CONFIGVALUE \
+ ( 0x00000100U | ( uint32 ) ( ( uint32 ) 1U << 16U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 24U ) )
+
+#define SYS_ECPCNTL_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 0U << 24U ) | ( uint32 ) ( ( uint32 ) 0U << 23U ) \
+ | ( uint32 ) ( ( uint32 ) ( 8U - 1U ) & 0xFFFFU ) )
+
+#define SYS_DEVCR1_CONFIGVALUE 0xAU
+
+#define SYS_SYSECR_CONFIGVALUE 0x00004000U
+#define SYS2_PLLCTL3_CONFIGVALUE_1 \
+ ( ( uint32 ) ( ( uint32 ) ( 2U - 1U ) << 29U ) \
+ | ( uint32 ) ( ( uint32 ) 0x1FU << 24U ) \
+ | ( uint32 ) ( ( uint32 ) ( 6U - 1U ) << 16U ) | ( uint32 ) ( 0xA400U ) )
+
+#define SYS2_PLLCTL3_CONFIGVALUE_2 \
+ ( ( ( SYS2_PLLCTL3_CONFIGVALUE_1 ) & 0xE0FFFFFFU ) \
+ | ( uint32 ) ( ( uint32 ) ( 1U - 1U ) << 24U ) )
+#define SYS2_STCCLKDIV_CONFIGVALUE 0U
+#define SYS2_CLK2CNTL_CONFIGVALUE ( 1U | 0x00000100U )
+#define SYS2_VCLKACON1_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) 1U << 24U ) | ( uint32 ) ( ( uint32 ) 1U << 20U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_VCLK << 16U ) | ( uint32 ) ( ( uint32 ) 1U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | ( uint32 ) ( ( uint32 ) SYS_VCLK << 0U ) )
+#define SYS2_CLKSLIP_CONFIGVALUE 0x5U
+#define SYS2_EFC_CTLEN_CONFIGVALUE 0x5U
+
+void systemGetConfigValue( system_config_reg_t * config_reg, config_value_type_t type );
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* FlashW General Definitions */
+
+/** @enum flashWPowerModes
+ * @brief Alias names for flash bank power modes
+ *
+ * This enumeration is used to provide alias names for the flash bank power modes:
+ * - sleep
+ * - standby
+ * - active
+ */
+enum flashWPowerModes
+{
+ SYS_SLEEP = 0U, /**< Alias for flash bank power mode sleep */
+ SYS_STANDBY = 1U, /**< Alias for flash bank power mode standby */
+ SYS_ACTIVE = 3U /**< Alias for flash bank power mode active */
+};
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+#define FSM_WR_ENA_HL ( *( volatile uint32 * ) 0xFFF87288U )
+#define EEPROM_CONFIG_HL ( *( volatile uint32 * ) 0xFFF872B8U )
+
+/* Configuration registers */
+typedef struct tcmflash_config_reg
+{
+ uint32 CONFIG_FRDCNTL;
+ uint32 CONFIG_FEDACCTRL1;
+ uint32 CONFIG_FEDACCTRL2;
+ uint32 CONFIG_FEDACSDIS;
+ uint32 CONFIG_FBPROT;
+ uint32 CONFIG_FBSE;
+ uint32 CONFIG_FBAC;
+ uint32 CONFIG_FBFALLBACK;
+ uint32 CONFIG_FPAC1;
+ uint32 CONFIG_FPAC2;
+ uint32 CONFIG_FMAC;
+ uint32 CONFIG_FLOCK;
+ uint32 CONFIG_FDIAGCTRL;
+ uint32 CONFIG_FEDACSDIS2;
+} tcmflash_config_reg_t;
+
+/* Configuration registers initial value */
+#define TCMFLASH_FRDCNTL_CONFIGVALUE \
+ ( 0x00000000U | ( uint32 ) ( ( uint32 ) 3U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 1U << 4U ) | 1U )
+#define TCMFLASH_FEDACCTRL1_CONFIGVALUE 0x000A0005U
+#define TCMFLASH_FEDACCTRL2_CONFIGVALUE 0U
+#define TCMFLASH_FEDACSDIS_CONFIGVALUE 0U
+#define TCMFLASH_FBPROT_CONFIGVALUE 0U
+#define TCMFLASH_FBSE_CONFIGVALUE 0U
+#define TCMFLASH_FBAC_CONFIGVALUE 0xFU
+#define TCMFLASH_FBFALLBACK_CONFIGVALUE \
+ ( ( uint32 ) ( ( uint32 ) SYS_ACTIVE << 14U ) | ( uint32 ) ( ( uint32 ) 3U << 12U ) \
+ | ( uint32 ) ( ( uint32 ) 3U << 10U ) | ( uint32 ) ( ( uint32 ) 3U << 8U ) \
+ | ( uint32 ) ( ( uint32 ) 3U << 6U ) | ( uint32 ) ( ( uint32 ) 3U << 4U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_ACTIVE << 2U ) \
+ | ( uint32 ) ( ( uint32 ) SYS_ACTIVE << 0U ) )
+
+#define TCMFLASH_FPAC1_CONFIGVALUE 0x00C80001U
+#define TCMFLASH_FPAC2_CONFIGVALUE 0U
+#define TCMFLASH_FMAC_CONFIGVALUE 0U
+#define TCMFLASH_FLOCK_CONFIGVALUE 0x55AAU
+#define TCMFLASH_FDIAGCTRL_CONFIGVALUE 0x000A0000U
+#define TCMFLASH_FEDACSDIS2_CONFIGVALUE 0U
+
+void tcmflashGetConfigValue( tcmflash_config_reg_t * config_reg,
+ config_value_type_t type );
+
+/* USER CODE BEGIN (3) */
+/* USER CODE END */
+
+/* System Interface Functions */
+void setupPLL( void );
+void trimLPO( void );
+void customTrimLPO( void );
+void setupFlash( void );
+void periphInit( void );
+void mapClocks( void );
+void systemInit( void );
+void systemPowerDown( uint32 mode );
+
+/*Configuration registers
+ * index 0: Even RAM
+ * index 1: Odd RAM
+ */
+typedef struct sram_config_reg
+{
+ uint32 CONFIG_RAMCTRL[ 2U ];
+ uint32 CONFIG_RAMTHRESHOLD[ 2U ];
+ uint32 CONFIG_RAMINTCTRL[ 2U ];
+ uint32 CONFIG_RAMTEST[ 2U ];
+ uint32 CONFIG_RAMADDRDECVECT[ 2U ];
+} sram_config_reg_t;
+
+/* Configuration registers initial value */
+#define SRAM_RAMCTRL_CONFIGVALUE 0x0005000AU
+#define SRAM_RAMTHRESHOLD_CONFIGVALUE 1U
+#define SRAM_RAMINTCTRL_CONFIGVALUE 1U
+#define SRAM_RAMTEST_CONFIGVALUE 0x5U
+#define SRAM_RAMADDRDECVECT_CONFIGVALUE 0U
+
+void sramGetConfigValue( sram_config_reg_t * config_reg, config_value_type_t type );
+#ifdef __cplusplus
+}
+#endif /*extern "C" */
+#endif /* ifndef __SYS_SYSTEM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee.h
new file mode 100644
index 000000000..955c465d5
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee.h
@@ -0,0 +1,571 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: ti_fee.h
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: None
+ *
+ * Description: This file implements the TI FEE Api.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 00.01.00 31Aug2012 Vishwanath Reddy 0000000000000 Initial Version
+ * 00.01.01 29Oct2012 Vishwanath Reddy 0000000000000 Changes for
+ *implementing Error Recovery 00.01.02 30Nov2012 Vishwanath Reddy SDOCM00097786
+ *Misra Fixes, Memory segmentation changes. 00.01.03 14Jan2013 Vishwanath Reddy
+ *SDOCM00098510 Changes as requested by Vector. 00.01.04 12Feb2012 Vishwanath
+ *Reddy SDOCM00099152 Integration issues fix. 00.01.05 04Mar2013 Vishwanath
+ *Reddy SDOCM00099152 Added Deleting a block feature, bug fixes. 00.01.06
+ *11Mar2013 Vishwanath Reddy SDOCM00099152 Added feature : copying of
+ *unconfigured blocks. 00.01.07 15Mar2013 Vishwanath Reddy SDOCM00099152
+ *Added feature : Number of 8 bytes writes, fixed issue with copy blocks. 00.01.08
+ *05Apr2013 Vishwanath Reddy SDOCM00099152 Added feature : CRC check for
+ *unconfigured blocks, Main function modified to complete writes as fast as possible,
+ *Added Non polling mode support. 00.01.09 19Apr2013 Vishwanath Reddy
+ *SDOCM00099152 Warning removal, Added feature comparision of data during write.
+ * 00.01.10 11Jun2013 Vishwanath Reddy SDOCM00101845 Updated version
+ *information. 00.01.11 05Jul2013 Vishwanath Reddy SDOCM00101643 Updated
+ *version information. 01.12.00 13Dec2013 Vishwanath Reddy SDOCM00105412
+ *Traceability tags added. MISRA C fixes. Version info corrected. 01.13.00 30Dec2013
+ *Vishwanath Reddy 0000000000000 Undated version info for SDOCM00107976 and
+ *SDOCM00105795. 01.13.01 19May2014 Vishwanath Reddy 0000000000000
+ *Updated version info for SDOCM00107913 and SDOCM00107622. 01.13.02 12Jun2014
+ *Vishwanath Reddy 0000000000000 Updated version info for SDOCM00108238 01.14.00
+ *26Mar2014 Vishwanath Reddy Update version info for
+ *SDOCM00107161. 01.15.00 06Jun2014 Vishwanath Reddy Support for Conqueror.
+ * 01.16.00 15Jul2014 Vishwanath Reddy SDOCM00112141 Remove MISRA
+ *warnings. 01.16.01 12Sep2014 Vishwanath Reddy SDOCM00112930 Prototype
+ *for TI_Fee_SuspendResumeErase added. TI_Fee_EraseCommandType enum added. extern added
+ *for TI_Fee_bEraseSuspended. 01.17.00 15Oct2014 Vishwanath Reddy SDOCM00113379
+ *RAM Optimization changes. 01.17.01 30Oct2014 Vishwanath Reddy SDOCM00113536
+ *Support for TMS570LS07xx,TMS570LS09xx, TMS570LS05xx, RM44Lx. 01.17.02 26Dec2014
+ *Vishwanath Reddy SDOCM00114102 FLEE Errata Fix. SDOCM00114104 Change ALL 1's
+ *OK check condition. Updated version info. Added new macros. SDOCM00114423 Add new enum
+ *TI_Fee_DeviceType. Add new variable TI_Fee_MaxSectors and prototype
+ *TI_FeeInternal_PopulateStructures. 01.18.00 12Oct2015 Vishwanath Reddy
+ *SDOCM00119455 Update version history. Update ti_fee_util.c file for the bugfix "If
+ *morethan one data set is config- ured, then a valid block may get invalidated if
+ * multiple valid blocks
+ *are present in FEE memory. 01.18.01 17Nov2015 Vishwanath Reddy SDOCM00120161
+ *Update version history. In TI_FeeInternal_FeeManager, do not change the state to
+ *IDLE,after completing the copy operation. 01.18.02 05Feb2016 Vishwanath
+ *Reddy SDOCM00121158 Update version history. Add a call of
+ *TI_FeeInternal_PollFlashStatus() before reading data from FEE bank in
+ * TI_FeeInternal_UpdateBlockOffsetArray(),
+ * TI_Fee_WriteAsync(),TI_Fee_WriteSync(),
+ * TI_Fee_ReadSync(),
+ *TI_Fee_Read() 01.18.03 30June2016 Vishwanath Reddy SDOCM00122388 Update
+ *patch version TI_FEE_SW_PATCH_VERSION. TI_FEE_FLASH_CRC_ENABLE is renamed to
+ * TI_FEE_FLASH_CHECKSUM_ENABLE.
+ * SDOCM00122429 In ti_fee_types.h,
+ *add error when endianess is not defined. 01.19.00 08Augu2016 Vishwanath Reddy
+ *SDOCM00122592 Update patch version TI_FEE_MINOR_VERSION. Code for using partially
+ *ersed sector is now removed. Bugfix for FEE reading from unimplemented memory space.
+ * 01.19.01 12Augu2016 Vishwanath Reddy SDOCM00122543 Update patch version
+ *TI_FEE_MINOR_VERSION. Synchronous write API modified to avoid copy of already copied
+ *block. 01.19.02 25Janu2017 Vishwanath Reddy SDOCM00122832 Update patch
+ *version TI_FEE_MINOR_VERSION. Format API modified to erase all configured VS.
+ * SDOCM00122833 In API
+ *TI_Fee_ErrorRecovery, added polling for flash status before calling TI_Fee_Init.
+ * 01.19.03 15May2017 Prathap Srinivasan SDOCM00122917 Added
+ *TI_Fee_bIsMainFunctionCalled Global Variable. 01.19.04 05Dec2017 Prathap
+ *Srinivasan HERCULES_SW-5082 Update version history.
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef TI_FEE_H
+ #define TI_FEE_H
+
+ /**********************************************************************************************************************
+ * INCLUDES
+ *********************************************************************************************************************/
+ #include "hal_stdtypes.h"
+ #include "fee_interface.h"
+ #include "ti_fee_types.h"
+ #include "ti_fee_cfg.h"
+
+ /**********************************************************************************************************************
+ * GLOBAL CONSTANT MACROS
+ *********************************************************************************************************************/
+ /* Fee Published Information */
+ #define TI_FEE_MAJOR_VERSION 3U
+ #define TI_FEE_MINOR_VERSION 0U
+ #define TI_FEE_PATCH_VERSION 2U
+ #define TI_FEE_SW_MAJOR_VERSION 1U
+ #define TI_FEE_SW_MINOR_VERSION 19U
+ #define TI_FEE_SW_PATCH_VERSION 4U
+
+ #define TI_FEE_VIRTUAL_SECTOR_VERSION 1U
+
+ /* Virtual sector states */
+ #define ActiveVSHi 0x0000FFFFU
+ #define ActiveVSLo 0x00000000U
+ #define CopyVSHi 0xFFFFFFFFU
+ #define CopyVSLo 0x00000000U
+ #define EmptyVSHi 0xFFFFFFFFU
+ #define EmptyVSLo 0x0000FFFFU
+ #define InvalidVSHi 0xFFFFFFFFU
+ #define InvalidVSLo 0xFFFFFFFFU
+ #define ReadyforEraseVSHi 0x00000000U
+ #define ReadyforEraseVSLo 0x00000000U
+
+ /* Data Block states*/
+ #define EmptyBlockHi 0xFFFFFFFFU
+ #define EmptyBlockLo 0xFFFFFFFFU
+ #define StartProgramBlockHi 0xFFFF0000U
+ #define StartProgramBlockLo 0xFFFFFFFFU
+ #define ValidBlockHi 0x00000000U
+ #define ValidBlockLo 0xFFFFFFFFU
+ #define InvalidBlockHi 0x00000000U
+ #define InvalidBlockLo 0xFFFF0000U
+ #define CorruptBlockHi 0x00000000U
+ #define CorruptBlockLo 0x00000000U
+
+ #define FEE_BANK 0U
+
+ /* Enable/Disable FEE sectors */
+ #define FEE_DISABLE_SECTORS_31_00 0x00000000U
+ #define FEE_DISABLE_SECTORS_63_32 0x00000000U
+ #define FEE_ENABLE_SECTORS_31_00 0xFFFFFFFFU
+ #define FEE_ENABLE_SECTORS_63_32 0xFFFFFFFFU
+
+/**********************************************************************************************************************
+ * GLOBAL DATA TYPES AND STRUCTURES
+ *********************************************************************************************************************/
+/* Structures used */
+/* Enum to describe the Fee Status types */
+typedef enum
+{
+ TI_FEE_OK = 0U, /* Function returned no error */
+ TI_FEE_ERROR = 1U /* Function returned an error */
+} TI_Fee_StatusType;
+
+/* Enum to describe the Virtual Sector State */
+typedef enum
+{
+ VsState_Invalid = 1U,
+ VsState_Empty = 2U,
+ VsState_Copy = 3U,
+ VsState_Active = 4U,
+ VsState_ReadyForErase = 5U
+} VirtualSectorStatesType;
+
+/* Enum to describe the Block State */
+typedef enum
+{
+ Block_StartProg = 1U,
+ Block_Valid = 2U,
+ Block_Invalid = 3U
+} BlockStatesType;
+
+/* Enum for error trpes */
+typedef enum
+{
+ Error_Nil = 0U,
+ Error_TwoActiveVS = 1U,
+ Error_TwoCopyVS = 2U,
+ Error_SetupStateMachine = 3U,
+ Error_CopyButNoActiveVS = 4U,
+ Error_NoActiveVS = 5U,
+ Error_BlockInvalid = 6U,
+ Error_NullDataPtr = 7U,
+ Error_NoFreeVS = 8U,
+ Error_InvalidVirtualSectorParameter = 9U,
+ Error_ExceedSectorOnBank = 10U,
+ Error_EraseVS = 11U,
+ Error_BlockOffsetGtBlockSize = 12U,
+ Error_LengthParam = 13U,
+ Error_FeeUninit = 14U,
+ Error_Suspend = 15U,
+ Error_InvalidBlockIndex = 16U,
+ Error_NoErase = 17U,
+ Error_CurrentAddress = 18U,
+ Error_Exceed_No_Of_DataSets = 19U
+} TI_Fee_ErrorCodeType;
+
+typedef enum
+{
+ Suspend_Erase = 0U,
+ Resume_Erase
+} TI_Fee_EraseCommandType;
+
+/* Enum to describe the Device types */
+typedef enum
+{
+ CHAMPION = 0U, /* Function returned no error */
+ ARCHER = 1U /* Function returned an error */
+} TI_Fee_DeviceType;
+
+typedef uint32 TI_Fee_AddressType; /* Used for defining variables to indicate number of
+ * bytes for address offset */
+typedef uint32 TI_Fee_LengthType; /* Used for defining variables to indicate number of
+ * bytes per read/write/erase */
+typedef TI_Fee_ErrorCodeType Fee_ErrorCodeType;
+
+/* Structure used when defining virtual sectors */
+/* The following error checks need to be performed: */
+/* Virtual Sector definitions are not allowed to overlap */
+/* Virtual Sector definition is at least twice the size in bytes of the total size of all
+ * defined blocks */
+/* We will need to define a formula to indicate if the number of write cycles indicated in
+ * the block definitions */
+/* is possible in the defined Virtual Sector. */
+/* Ending sector cannot be less than Starting sector */
+typedef struct
+{
+ uint16 FeeVirtualSectorNumber; /* Virtual Sector's Number - 0 and 0xFFFF values are
+ not allowed*/
+ /* Minimum 1, Maximum 4 */
+ uint16 FeeFlashBank; /* Flash Bank to use for virtual sector. */
+
+ /* As we do not allow Flash EEPROM Emulation in Bank 0,
+ * 0 is not a valid option */
+ /* Defaultvalue 1, Minimum 1, Maxiumum 7 */
+ Fapi_FlashSectorType FeeStartSector; /* Defines the Starting Sector inthe Bank for
+ this VirtualSector*/
+ Fapi_FlashSectorType FeeEndSector; /* Defines the Ending Sector inthe Bank for this
+ Virtual Sector */
+
+ /* Start and End sectors can be the same, which indicates only
+ * one sector */
+ /* is the entire virtual sector. */
+ /* Values are based on the FLASH_SECT enum */
+
+ /* Defaultvalue and Min is the same sector defined as the starting
+ * sector */
+ /* Max values are based onthe device definition file being used.*/
+} Fee_VirtualSectorConfigType;
+
+/* Structure used when defining blocks */
+typedef struct
+{
+ uint16 FeeBlockNumber; /* Block's Number - 0 and 0xFFFF values are not allowed */
+ /* Start 1, Next: Number of Blocks + 1, Min 1, Max 0xFFFE */
+ uint16 FeeBlockSize; /* Block's Size - Actual number of bits used is reduced */
+ /* by number of bits used for dataset. */
+ /* Default 8, Min 1, Max (2^(16-# of Dataset Bits))-1 */
+ boolean FeeImmediateData; /* Indicates if the block is used for immediate data */
+ /* Default: False */
+ uint32 FeeNumberOfWriteCycles; /* Number of write cycles this block requires */
+
+ /* Default: 0, but this will not be a valid number.
+ * Force customer to select a value */
+ /* Min 1, Max (2^32)-1 */
+ uint8 FeeDeviceIndex; /* Device Index - This will always be 0 */
+ /* Fixed value: 0 */
+ uint8 FeeNumberOfDataSets; /* Number of DataSets for the Block */
+ /* Default value: 1 */
+ uint8 FeeEEPNumber;
+} Fee_BlockConfigType;
+
+/* Structure used for Global variables */
+typedef struct
+{
+ TI_Fee_AddressType Fee_oFlashNextAddress; /* The next Flash Address to write to */
+ TI_Fee_AddressType Fee_oCopyCurrentAddress; /* Indicates the Address within the Active
+ * VS which will be copied to Copy VS */
+ TI_Fee_AddressType Fee_oCopyNextAddress; /* Indicates the Address within the Copy VS
+ * to which the data from Active VS will be
+ * copied to */
+ TI_Fee_AddressType Fee_u32nextwriteaddress; /* Indicates the next free Address within
+ * the curent VS to which the data will be
+ * written */
+ TI_Fee_AddressType Fee_oVirtualSectorStartAddress; /* Start Address of the current
+ Virtual Sector */
+ TI_Fee_AddressType Fee_oVirtualSectorEndAddress; /* End Address of the current Virtual
+ Sector */
+ TI_Fee_AddressType Fee_oCopyVirtualSectorAddress; /* Start Address of the Copy Virtual
+ Address */
+ TI_Fee_AddressType Fee_oCurrentStartAddress; /* Start Address of the Previous Block */
+ TI_Fee_AddressType Fee_oCurrentBlockHeader; /* Start Address of the Block which is
+ * being currently written*/
+ TI_Fee_AddressType Fee_oWriteAddress; /* Address within the VS where data is to be
+ written */
+ TI_Fee_AddressType Fee_oCopyWriteAddress; /* Address within the VS where data is to be
+ copied */
+ TI_Fee_AddressType Fee_oActiveVirtualSectorAddress; /* Start Address of the Active VS
+ */
+ TI_Fee_AddressType Fee_oBlankFailAddress; /* Address of first non-blank location */
+ TI_Fee_AddressType Fee_oActiveVirtualSectorStartAddress; /* Start Address of the
+ active VS */
+ TI_Fee_AddressType Fee_oActiveVirtualSectorEndAddress; /* End Address of the active VS
+ */
+ TI_Fee_AddressType Fee_oCopyVirtualSectorStartAddress; /* Start Address of the Copy VS
+ */
+ TI_Fee_AddressType Fee_oCopyVirtualSectorEndAddress; /* End Address of the Copy VS */
+ TI_Fee_AddressType Fee_u32nextActiveVSwriteaddress; /* Next write address in Active VS
+ */
+ TI_Fee_AddressType Fee_u32nextCopyVSwriteaddress; /* Next write address in Copy VS */
+ uint16 Fee_u16CopyBlockSize; /* Indicates the size of current block in bytes which is
+ * been copied from Active to Copy VS */
+ uint8 Fee_u8VirtualSectorStart; /* Index of the Start Sector of the VS */
+ uint8 Fee_u8VirtualSectorEnd; /* Index of the End Sector of the VS */
+ uint32 Fee_au32VirtualSectorStateValue[ TI_FEE_VIRTUAL_SECTOR_OVERHEAD
+ >> 2U ]; /* Array to store the Virtual
+ * Sector Header and
+ * Information record */
+ uint8 Fee_au8VirtualSectorState[ TI_FEE_NUMBER_OF_VIRTUAL_SECTORS ]; /* Stores the
+ * state of each
+ * Virtual sector
+ */
+ uint32 Fee_au32VirtualSectorEraseCount[ TI_FEE_NUMBER_OF_VIRTUAL_SECTORS ]; /* Array
+ * to
+ * store
+ * the
+ * erase
+ * count
+ * of each
+ * Virtual
+ * Sector*/
+ uint16 Fee_au16BlockOffset[ TI_FEE_TOTAL_BLOCKS_DATASETS ]; /* Array to store within
+ the VS */
+ uint32 Fee_au32BlockHeader[ TI_FEE_BLOCK_OVERHEAD >> 2U ]; /* Array to store the Block
+ Header value */
+ uint8 Fee_au8BlockCopyStatus[ TI_FEE_TOTAL_BLOCKS_DATASETS ]; /* Array to storeblock
+ copy status */
+ uint8 Fee_u8InternalVirtualSectorStart; /* Indicates internal VS start index */
+ uint8 Fee_u8InternalVirtualSectorEnd; /* Indicates internal VS end index */
+ TI_FeeModuleStatusType Fee_ModuleState; /* Indicates the state of the FEE module */
+ TI_FeeJobResultType Fee_u16JobResult; /* Stores the Job Result of the current command
+ */
+ TI_Fee_StatusType Fee_oStatus; /* Indicates the status of FEE */
+ TI_Fee_ErrorCodeType Fee_Error; /* Indicates the Error code */
+ uint16 Fee_u16CopyBlockNumber; /* Block number which is currently being copied */
+ uint16 Fee_u16BlockIndex; /* Index of the Current Block */
+ uint16 Fee_u16BlockCopyIndex; /* Index of the Block being copied from Copy to Active
+ VS */
+ uint16 Fee_u16DataSetIndex; /* Index of the Current DataSet */
+ uint16 Fee_u16ArrayIndex; /* Index of the Current DataSet */
+ uint16 Fee_u16BlockSize; /* Size of the current block in bytes */
+ uint16 Fee_u16BlockSizeinBlockHeader; /* Size of the current block. Used to write into
+ Block Header */
+ uint16 Fee_u16BlockNumberinBlockHeader; /* Number of the current block. Used to write
+ into Block Header */
+ uint8 Fee_u8ActiveVirtualSector; /* Indicates the FeeVirtualSectorNumber for the
+ Active VS */
+ uint8 Fee_u8CopyVirtualSector; /* Indicates the FeeVirtualSectorNumber for the Copy VS
+ */
+ uint32 Fee_u32InternalEraseQueue; /* Indicates which VS can be erased when the FEE is
+ * in BusyInternal State*/
+ uint8 Fee_u8WriteCopyVSHeader; /* Indicates the number of bytes of the Copy VS Header
+ * being written */
+ uint8 Fee_u8WriteCount; /* Indicates the number of bytes of the Block Header being
+ * written */
+ uint8 * Fee_pu8ReadDataBuffer; /* Pointer to read data */
+ uint8 * Fee_pu8ReadAddress; /* Pointer to read address */
+ uint8 * Fee_pu8Data; /* Pointer to the next data to be written to the VS */
+ uint8 * Fee_pu8CopyData; /* Pointer to the next data to be copied to the VS */
+ uint8 * Fee_pu8DataStart; /* Pointer to the first data to be written to the VS */
+ boolean Fee_bInvalidWriteBit; /* Indicates whether the block is
+ * written/invalidated/erased for the first time */
+ boolean Fee_bWriteData; /* Indicates that there is data which is pending to be written
+ * to the Block */
+ boolean Fee_bWriteBlockHeader; /* Indicates whether the Block Header has been written
+ or not */
+ boolean bWriteFirstTime; /* Indicates if the block is being written first time */
+ boolean Fee_bFindNextVirtualSector; /* Indicates if there is aneed to find next free
+ VS */
+ boolean Fee_bWriteVSHeader; /* Indicates if block header needs to be written */
+ boolean Fee_bWriteStartProgram; /* Indicates if start program block header needs to be
+ written */
+ boolean Fee_bWritePartialBlockHeader; /* Indicates if start program block header needs
+ to be written */
+ #if( TI_FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY != 0U )
+ uint16 Fee_au16UnConfiguredBlockAddress
+ [ TI_FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY ]; /* Indicates
+ * number of unconfigured blocks to
+ * copy */
+ uint8 Fee_au8UnConfiguredBlockCopyStatus
+ [ TI_FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY ]; /* Array to store block
+ * copy status */
+ #endif
+} TI_Fee_GlobalVarsType;
+
+/**********************************************************************************************************************
+ * EXTERN Declarations
+ *********************************************************************************************************************/
+/* Fee Global Variables */
+extern const Fee_BlockConfigType Fee_BlockConfiguration[ TI_FEE_NUMBER_OF_BLOCKS ];
+ #if( TI_FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC == STD_OFF )
+extern const Fee_VirtualSectorConfigType
+ Fee_VirtualSectorConfiguration[ TI_FEE_NUMBER_OF_VIRTUAL_SECTORS ];
+extern const Device_FlashType Device_FlashDevice;
+ #endif
+ #if( TI_FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC == STD_ON )
+extern Fee_VirtualSectorConfigType
+ Fee_VirtualSectorConfiguration[ TI_FEE_NUMBER_OF_VIRTUAL_SECTORS ];
+extern Device_FlashType Device_FlashDevice;
+extern uint8 TI_Fee_MaxSectors;
+ #endif
+extern TI_Fee_GlobalVarsType TI_Fee_GlobalVariables[ TI_FEE_NUMBER_OF_EEPS ];
+extern TI_Fee_StatusWordType_UN TI_Fee_oStatusWord[ TI_FEE_NUMBER_OF_EEPS ];
+ #if( TI_FEE_FLASH_CHECKSUM_ENABLE == STD_ON )
+extern uint32 TI_Fee_u32FletcherChecksum;
+ #endif
+extern uint32 TI_Fee_u32BlockEraseCount;
+extern uint8 TI_Fee_u8DataSets;
+extern uint8 TI_Fee_u8DeviceIndex;
+extern uint32 TI_Fee_u32ActCpyVS;
+extern uint8 TI_Fee_u8ErrEraseVS;
+ #if( TI_FEE_NUMBER_OF_UNCONFIGUREDBLOCKSTOCOPY != 0U )
+extern uint16 TI_Fee_u16NumberOfUnconfiguredBlocks[ TI_FEE_NUMBER_OF_EEPS ];
+ #endif
+ #if( TI_FEE_FLASH_ERROR_CORRECTION_HANDLING == TI_Fee_Fix )
+extern boolean Fee_bDoubleBitError;
+extern boolean Fee_bSingleBitError;
+ #endif
+ #if( TI_FEE_NUMBER_OF_EEPS == 2U )
+extern TI_Fee_StatusWordType_UN TI_Fee_oStatusWord_Global;
+ #endif
+extern boolean TI_Fee_FapiInitCalled;
+extern boolean TI_Fee_bEraseSuspended;
+extern boolean TI_Fee_bIsMainFunctionCalled;
+
+/**********************************************************************************************************************
+ * GLOBAL FUNCTION PROTOTYPES
+ *********************************************************************************************************************/
+/* Interface Functions */
+extern void TI_Fee_Cancel( uint8 u8EEPIndex );
+extern Std_ReturnType TI_Fee_EraseImmediateBlock( uint16 BlockNumber );
+extern TI_FeeModuleStatusType TI_Fee_GetStatus( uint8 u8EEPIndex );
+extern void TI_Fee_GetVersionInfo( Std_VersionInfoType * VersionInfoPtr );
+extern void TI_Fee_Init( void );
+extern Std_ReturnType TI_Fee_InvalidateBlock( uint16 BlockNumber );
+extern Std_ReturnType TI_Fee_Read( uint16 BlockNumber,
+ uint16 BlockOffset,
+ uint8 * DataBufferPtr,
+ uint16 Length );
+extern Std_ReturnType TI_Fee_WriteAsync( uint16 BlockNumber, uint8 * DataBufferPtr );
+extern void TI_Fee_MainFunction( void );
+extern TI_Fee_ErrorCodeType TI_FeeErrorCode( uint8 u8EEPIndex );
+extern void TI_Fee_ErrorRecovery( TI_Fee_ErrorCodeType ErrorCode, uint8 u8VirtualSector );
+extern TI_FeeJobResultType TI_Fee_GetJobResult( uint8 u8EEPIndex );
+extern void TI_Fee_SuspendResumeErase( TI_Fee_EraseCommandType Command );
+
+ #if( TI_FEE_FLASH_ERROR_CORRECTION_HANDLING == TI_Fee_Fix )
+extern void TI_Fee_ErrorHookSingleBitError( void );
+extern void TI_Fee_ErrorHookDoubleBitError( void );
+ #endif
+
+ #if( TI_FEE_DRIVER == 1U )
+extern Std_ReturnType TI_Fee_WriteSync( uint16 BlockNumber, uint8 * DataBufferPtr );
+extern Std_ReturnType TI_Fee_Shutdown( void );
+extern boolean TI_Fee_Format( uint32 u32FormatKey );
+extern Std_ReturnType TI_Fee_ReadSync( uint16 BlockNumber,
+ uint16 BlockOffset,
+ uint8 * DataBufferPtr,
+ uint16 Length );
+ #endif
+
+/* TI Fee Internal Functions */
+TI_Fee_AddressType TI_FeeInternal_GetNextFlashAddress( uint8 u8EEPIndex );
+TI_Fee_AddressType TI_FeeInternal_AlignAddressForECC( TI_Fee_AddressType oAddress );
+TI_Fee_AddressType TI_FeeInternal_GetCurrentBlockAddress( uint16 BlockNumber,
+ uint16 DataSetNumber,
+ uint8 u8EEPIndex );
+/*SAFETYMCUSW 61 X MR:1.4,5.1 "Reason -
+ * TI_FeeInternal_GetVirtualSectorParameter name is required here."*/
+uint32 TI_FeeInternal_GetVirtualSectorParameter( Fapi_FlashSectorType oSector,
+ uint16 u16Bank,
+ boolean VirtualSectorInfo,
+ uint8 u8EEPIndex );
+uint32 TI_FeeInternal_PollFlashStatus( void );
+uint16 TI_FeeInternal_GetBlockSize( uint16 BlockIndex );
+uint16 TI_FeeInternal_GetBlockIndex( uint16 BlockNumber );
+uint16 TI_FeeInternal_GetDataSetIndex( uint16 BlockNumber );
+uint16 TI_FeeInternal_GetBlockNumber( uint16 BlockNumber );
+uint8 TI_FeeInternal_FindNextVirtualSector( uint8 u8EEPIndex );
+uint8 TI_FeeInternal_WriteDataF021( boolean bCopy,
+ uint16 u16WriteSize,
+ uint8 u8EEPIndex );
+boolean TI_FeeInternal_BlankCheck( uint32 u32StartAddress,
+ uint32 u32EndAddress,
+ uint16 u16Bank,
+ uint8 u8EEPIndex );
+Std_ReturnType TI_FeeInternal_CheckReadParameters( uint32 u32BlockSize,
+ uint16 BlockOffset,
+ const uint8 * DataBufferPtr,
+ uint16 Length,
+ uint8 u8EEPIndex );
+Std_ReturnType TI_FeeInternal_CheckModuleState( uint8 u8EEPIndex );
+Std_ReturnType TI_FeeInternal_InvalidateErase( uint16 BlockNumber );
+TI_Fee_StatusType TI_FeeInternal_FeeManager( uint8 u8EEPIndex );
+void TI_FeeInternal_WriteVirtualSectorHeader( uint8 FeeVirtualSectorNumber,
+ VirtualSectorStatesType VsState,
+ uint8 u8EEPIndex );
+/*SAFETYMCUSW 61 X MR:1.4,5.1 "Reason - TI_FeeInternal_GetVirtualSectorIndex
+ * name is required here."*/
+void TI_FeeInternal_GetVirtualSectorIndex( Fapi_FlashSectorType oSectorStart,
+ Fapi_FlashSectorType oSectorEnd,
+ uint16 u16Bank,
+ boolean bOperation,
+ uint8 u8EEPIndex );
+void TI_FeeInternal_WritePreviousBlockHeader( boolean bWrite, uint8 u8EEPIndex );
+void TI_FeeInternal_WriteBlockHeader( boolean bWrite,
+ uint8 u8EEPIndex,
+ uint16 Fee_BlockSize_u16,
+ uint16 u16BlockNumber );
+void TI_FeeInternal_SetClearCopyBlockState( uint8 u8EEPIndex, boolean bSetClear );
+void TI_FeeInternal_SanityCheck( uint16 BlockSize, uint8 u8EEPIndex );
+void TI_FeeInternal_StartProgramBlock( uint8 u8EEPIndex );
+void TI_FeeInternal_UpdateBlockOffsetArray( uint8 u8EEPIndex,
+ boolean bActCpyVS,
+ uint8 u8VirtualSector );
+void TI_FeeInternal_WriteInitialize( TI_Fee_AddressType oFlashNextAddress,
+ uint8 * DataBufferPtr,
+ uint8 u8EEPIndex );
+void TI_FeeInternal_CheckForError( uint8 u8EEPIndex );
+void TI_FeeInternal_EnableRequiredFlashSector( uint32 u32VirtualSectorStartAddress );
+uint16 TI_FeeInternal_GetArrayIndex( uint16 BlockNumber,
+ uint16 DataSetNumber,
+ uint8 u8EEPIndex,
+ boolean bCallContext );
+ #if( TI_FEE_FLASH_CHECKSUM_ENABLE == STD_ON )
+uint32 TI_FeeInternal_Fletcher16( uint8 const * pu8data, uint16 u16Length );
+ #endif
+ #if( TI_FEE_GENERATE_DEVICEANDVIRTUALSECTORSTRUC == STD_ON )
+void TI_FeeInternal_PopulateStructures( TI_Fee_DeviceType DeviceType );
+ #endif
+#endif /* TI_FEE_H */
+
+/**********************************************************************************************************************
+ * END OF FILE: ti_fee.h
+ *********************************************************************************************************************/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_cfg.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_cfg.h
new file mode 100644
index 000000000..60e8117e6
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_cfg.h
@@ -0,0 +1,55 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: ti_fee_cfg.h
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: HALCoGen
+ *
+ * Description: This file implements the TI FEE Api.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 00.00.01 31Aug2012 Vishwanath Reddy 0000000000000 Initial Version
+ * 01.19.04 05Dec2017 Prathap Srinivasan HERCULES_SW-5082 Update version
+ *history.
+ *
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_types.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_types.h
new file mode 100644
index 000000000..ca8cf2dd9
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/ti_fee_types.h
@@ -0,0 +1,259 @@
+/**********************************************************************************************************************
+ * FILE DESCRIPTION
+ * -------------------------------------------------------------------------------------------------------------------
+ * File: ti_fee_types.h
+ * Project: Tms570_TIFEEDriver
+ * Module: TIFEEDriver
+ * Generator: None
+ *
+ * Description: This file implements the TI FEE Api.
+ *---------------------------------------------------------------------------------------------------------------------
+ * Author: Vishwanath Reddy
+ *---------------------------------------------------------------------------------------------------------------------
+ * Revision History
+ *---------------------------------------------------------------------------------------------------------------------
+ * Version Date Author Change ID Description
+ *---------------------------------------------------------------------------------------------------------------------
+ * 03.00.00 31Aug2012 Vishwanath Reddy 0000000000000 Initial Version
+ * 00.01.00 31Aug2012 Vishwanath Reddy 0000000000000 Initial Version
+ * 00.01.02 30Nov2012 Vishwanath Reddy SDOCM00097786 Misra Fixes, Memory
+ *segmentation changes. 01.12.00 13Dec2013 Vishwanath Reddy SDOCM00105412
+ *MISRA C fixes. 01.15.00 06Jun2014 Vishwanath Reddy Support for LC Varients.
+ * 01.16.00 15Jul2014 Vishwanath Reddy SDOCM00112141 Remove MISRA
+ *warnings. 01.18.00 12Oct2015 Vishwanath Reddy SDOCM00119455 Update
+ *version history.
+ * 01.18.01 17Nov2015 Vishwanath Reddy SDOCM00120161 Update version
+ *history.
+ * 01.18.02 05Feb2016 Vishwanath Reddy SDOCM00121158 Update version
+ *history. 01.18.03 30June2016 Vishwanath Reddy SDOCM00122388 Update
+ *version history. SDOCM00122429 Added error when endianess is not defined. 01.19.00
+ *08Augu2016 Vishwanath Reddy SDOCM00122592 Update version history. 01.19.01
+ *12Augu2016 Vishwanath Reddy SDOCM00122543 Update version history. 01.19.03
+ *15May2017 Prathap Srinivasan SDOCM00122917 Update version history. 01.19.04
+ *05Dec2017 Prathap Srinivasan HERCULES_SW-5082 Update version history.
+ *********************************************************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef TI_FEE_TYPES_H
+ #define TI_FEE_TYPES_H
+
+ /**********************************************************************************************************************
+ * INCLUDES
+ *********************************************************************************************************************/
+ #include "Device_header.h"
+
+ #ifndef TI_Fee_None
+ #define TI_Fee_None \
+ 0x00U /*Take no action on single bit errors, (respond with corrected data), \
+ */
+ /*return error for uncorrectable error reads (multibit errors for ECC or parity
+ * failures)*/
+ /*For devices with no ECC (they may have parity or not) the only valid option is none.
+ */
+ #endif
+
+ #ifndef TI_Fee_Fix
+ #define TI_Fee_Fix 0x01U /* single bit error will be fixed by reprogramming */
+
+ /* return previous valid data for uncorrectable error reads (multi bit errors for ECC
+ * or parity failures). */
+ #endif
+
+ #if !defined( _LITTLE_ENDIAN ) && !defined( _BIG_ENDIAN )
+ #error "Target Endianess is not defined. Include F021 header files and library."
+ #endif
+
+/*SAFETYMCUSW 74 S MR:18.4 "Reason - union declaration is necessary here."*/
+typedef union
+{
+ uint16 Fee_u16StatusWord;
+ #ifdef _BIG_ENDIAN
+ struct
+ {
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Reserved : 5U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Erase : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 ReadSync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 ProgramFailed : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Read : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 WriteSync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 WriteAsync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 EraseImmediate : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 InvalidateBlock : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Copy : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Initialized : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 SingleBitError : 1U;
+ } Fee_StatusWordType_ST;
+ #endif /* ifdef _BIG_ENDIAN */
+ #ifdef _LITTLE_ENDIAN
+ struct
+ {
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 SingleBitError : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Initialized : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Copy : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 InvalidateBlock : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 EraseImmediate : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 WriteAsync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 WriteSync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Read : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 ProgramFailed : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 ReadSync : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Erase : 1U;
+ /*SAFETYMCUSW 42 S MR:3.5 "Reason - Bit field declaration is necessary
+ * here."*/
+ /*SAFETYMCUSW 73 S MR:6.4 "Reason - Bit field is declared as
+ * unsigned."*/
+ uint16 Reserved : 5U;
+ } Fee_StatusWordType_ST;
+ #endif /* ifdef _LITTLE_ENDIAN */
+} TI_Fee_StatusWordType_UN;
+
+typedef enum
+{
+ UNINIT,
+ IDLE,
+ /*SAFETYMCUSW 91 S MR:5.2,5.6,5.7 "Reason - BUSY in F021 is a member of
+ * structure."*/
+ BUSY,
+ BUSY_INTERNAL
+} TI_FeeModuleStatusType;
+
+typedef enum
+{
+ JOB_OK,
+ JOB_FAILED,
+ JOB_PENDING,
+ JOB_CANCELLED,
+ BLOCK_INCONSISTENT,
+ BLOCK_INVALID
+} TI_FeeJobResultType;
+
+#endif /* TI_FEE_TYPES_H */
+
+/**********************************************************************************************************************
+ * END OF FILE: ti_fee_types.h
+ *********************************************************************************************************************/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb-ids.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb-ids.h
new file mode 100644
index 000000000..6309eae62
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb-ids.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/**
+ * @file usb-ids.h
+ *
+ * @brief Definitions of VIDs and PIDs used by Stellaris USB examples.
+ *
+ */
+
+#ifndef __USBIDS_H__
+#define __USBIDS_H__
+
+/** ***************************************************************************
+ *
+ * TI Vendor ID.
+ *
+ *****************************************************************************/
+#define USB_VID_TI 0x0000
+
+/** ***************************************************************************
+ *
+ * Product IDs.
+ *
+ *****************************************************************************/
+#define USB_PID_MOUSE 0x0000
+#define USB_PID_KEYBOARD 0x0001
+#define USB_PID_SERIAL 0x0000
+#define USB_PID_BULK 0x0003
+#define USB_PID_SCOPE 0x0004
+#define USB_PID_MSC 0x0005
+#define USB_PID_AUDIO 0x0006
+#define USB_PID_COMP_SERIAL 0x0007
+#define USB_PID_COMP_AUDIO_HID 0x0008
+#define USB_PID_COMP_HID_SER 0x0009
+#define USB_PID_DFU 0x00FF
+
+#endif /* __USBIDS_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb.h
new file mode 100644
index 000000000..8a1a237b4
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb.h
@@ -0,0 +1,667 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef USB_H_
+#define USB_H_
+
+/******************************************************************************
+ *
+ * These macros allow conversion between 0-based endpoint indices and the
+ * USB_EP_x values required when calling various USB APIs.
+ *
+ *****************************************************************************/
+#define INDEX_TO_USB_EP( x ) ( ( x ) << 4u )
+#define USB_EP_TO_INDEX( x ) ( ( x ) >> 4u )
+
+/******************************************************************************
+ *
+ * The following are values that can be passed to USBFIFOConfigSet() as the
+ * uFIFOSize parameter.
+ *
+ *****************************************************************************/
+#define USB_FIFO_SZ_8 0x00U /* 8 byte FIFO */
+#define USB_FIFO_SZ_16 0x01U /* 16 byte FIFO */
+#define USB_FIFO_SZ_32 0x02U /* 32 byte FIFO */
+#define USB_FIFO_SZ_64 0x03U /* 64 byte FIFO */
+#define USB_FIFO_SZ_128 0x04U /* 128 byte FIFO */
+#define USB_FIFO_SZ_256 0x05U /* 256 byte FIFO */
+#define USB_FIFO_SZ_512 0x06U /* 512 byte FIFO */
+#define USB_FIFO_SZ_1024 0x07U /* 1024 byte FIFO */
+
+/******************************************************************************
+ *
+ * This macro allow conversion from a FIFO size label as defined above to
+ * a number of bytes
+ *
+ *****************************************************************************/
+#define USB_FIFO_SIZE_DB_FLAG 0x10U
+#define USB_FIFO_SZ_TO_BYTES( x ) \
+ ( uint16_t )( \
+ ( uint8_t ) 8U \
+ << ( ( ( uint8_t ) ( x ) & ( uint8_t ) ( ~( uint8_t ) USB_FIFO_SIZE_DB_FLAG ) ) \
+ + ( uint8_t ) ( ( ( uint8_t ) ( x ) & ( uint8_t ) USB_FIFO_SIZE_DB_FLAG ) \
+ >> 4U ) ) )
+
+/******************************************************************************
+ *
+ * The maximum number of independent interfaces that any single device
+ * implementation can support. Independent interfaces means interface
+ * descriptors with different bInterfaceNumber values - several interface
+ * descriptors offering different alternative settings but the same interface
+ * number count as a single interface.
+ *
+ *****************************************************************************/
+#define USB_MAX_INTERFACES_PER_DEVICE 8u
+
+/******************************************************************************
+ *
+ * Following macro directives can be used for the configuring the USB device.
+ * Note that these directives map directly to the hardware bit definitions and
+ * cannot be modified to any other value.
+ *
+ *****************************************************************************/
+#define USBD_PWR_BUS_PWR ( 0x0000u ) /* Device is bus powered */
+#define USBD_PWR_SELF_PWR ( 0x0004u ) /* Device is self powered */
+#define USBD_DATA_ENDIAN_LITTLE ( 0x0000u ) /* Little Endian Data (RM48x) */
+#define USBD_DATA_ENDIAN_BIG ( 0x0080u ) /* Bit Endian Data */
+#define USBD_DMA_ENDIAN_LITTLE ( 0x0000u ) /* DMA is Little Endian */
+#define USBD_DMA_ENDIAN_BIG ( 0x0040u ) /* DMA is Big Endian */
+
+/******************************************************************************
+ *
+ * Following macro directives can be used for the configuring the Endpoints
+ * Note that these directives map directly to the hardware bit definitions and
+ * cannot be modified to any other value.
+ *
+ *****************************************************************************/
+
+#define USBD_EP_DIR_IN ( 0x0010u ) /* IN Endpoint */
+#define USBD_EP_DIR_OUT ( 0x0000u ) /* OUT Endpoint */
+#define USB_EP_DEV_IN ( USBD_EP_DIR_IN ) /* IN Endpoint */
+#define USB_EP_DEV_OUT ( USBD_EP_DIR_OUT ) /* OUT Endpoint */
+#define USB_TRANS_IN ( USBD_EP_DIR_IN ) /* IN Endpoint */
+#define USB_TRANS_OUT ( USBD_EP_DIR_OUT ) /* OUT Endpoint */
+#define USB_EP_DIR_IN ( USBD_EP_DIR_IN )
+#define USB_EP_DIR_OUT ( USBD_EP_DIR_OUT )
+#define USB_TRANS_IN_LAST \
+ 0u /* Used to indicate the last transaction \
+ * (NOT USED in this port of USB) */
+
+#define USBD_TXRX_EP_VALID_VALID ( 0x8000u ) /* EP is valid & configured */
+#define USBD_TXRX_EP_VALID_NOTVALID ( 0x0000u ) /* EP is not valid & not configured */
+#define USBD_TXRX_EP_ISO_ISO ( 0x0800u ) /* EP is of ISO type */
+#define USBD_TXRX_EP_ISO_NONISO ( 0x0000u ) /* EP is either Bulk/Interrup/Control */
+#define USBD_TXRX_EP_DB_ENABLED ( 0x4000u ) /* EP has double buffering enabled */
+/* For IN EPs DB should be enabled only in DMA mode */
+#define USBD_TXRX_EP_DB_DISABLED ( 0x0000u ) /* EP has double buffering disabled */
+
+/******************************************************************************
+ *
+ * Following macro directives are to be used for enabling/disabling interrupts
+ * Note that these directives map directly to the hardware bit definitions and
+ * cannot be modified to any other value.
+ *
+ *****************************************************************************/
+#define USBD_INT_EN_SOF_IE ( 0x0080u ) /* Start-of-Frame Interrupt */
+#define USBD_INT_EN_EPN_RX_IE ( 0x0020u ) /* Non-EP0 RX Interrupt */
+#define USBD_INT_EN_EPN_TX_IE ( 0x0010u ) /* Non-EP0 TX Interrupt */
+#define USBD_INT_EN_DS_CHG_IE ( 0x0008u ) /* Device State change interrupt */
+#define USBD_INT_EN_EP0_IE ( 0x0001u ) /* EP0 Interrupt */
+#define USBD_INT_EN_ALL \
+ ( USBD_IRQ_EN_SOF_IE | USBD_IRQ_EN_EPN_RX_IE | USBD_IRQ_EN_EPN_TX_IE \
+ | USBD_IRQ_EN_DS_CHG_IE | USBD_IRQ_EN_EP0_IE )
+
+/******************************************************************************
+ *
+ * Following macro directives are to be used for decoding the interrupt source
+ * Note that these directives map directly to the hardware bit definitions and
+ * cannot be modified to any other value.
+ *
+ *****************************************************************************/
+#define USBD_INT_SRC_TXN_DONE ( 0x0400u ) /* non-EP0 TX done interrupt */
+#define USBD_INT_SRC_RXN_CNT ( 0x0200u ) /* non-EP0 RX Count */
+#define USBD_INT_SRC_RXN_EOT ( 0x0100u ) /* non-EP0 RX end of transfer */
+#define USBD_INT_SRC_SOF ( 0x0080u ) /* Start-of-frame interrupt */
+#define USBD_INT_SRC_EPN_RX ( 0x0020u ) /* non-EP0 RX interrupt */
+#define USBD_INT_SRC_EPN_TX ( 0x0010u ) /* non-EP0 TX interrupt */
+#define USBD_INT_SRC_DS_CHG ( 0x0008u ) /* Device State change interrupt */
+#define USBD_INT_SRC_SETUP ( 0x0004u ) /* Setup interrupt */
+#define USBD_INT_SRC_EP0_RX ( 0x0002u ) /* EP0 RX Interrupt */
+#define USBD_INT_SRC_EP0_TX ( 0x0001u ) /* EP0 TX Interrupt */
+
+/******************************************************************************
+ *
+ * These values are used to indicate which endpoint to access.
+ *
+ *****************************************************************************/
+#define USB_EP_0 0x00000000u /* Endpoint 0 */
+#define USB_EP_1 0x00000010u /* Endpoint 1 */
+#define USB_EP_2 0x00000020u /* Endpoint 2 */
+#define USB_EP_3 0x00000030u /* Endpoint 3 */
+#define USB_EP_4 0x00000040u /* Endpoint 4 */
+#define USB_EP_5 0x00000050u /* Endpoint 5 */
+#define USB_EP_6 0x00000060u /* Endpoint 6 */
+#define USB_EP_7 0x00000070u /* Endpoint 7 */
+#define USB_EP_8 0x00000080u /* Endpoint 8 */
+#define USB_EP_9 0x00000090u /* Endpoint 9 */
+#define USB_EP_10 0x000000A0u /* Endpoint 10 */
+#define USB_EP_11 0x000000B0u /* Endpoint 11 */
+#define USB_EP_12 0x000000C0u /* Endpoint 12 */
+#define USB_EP_13 0x000000D0u /* Endpoint 13 */
+#define USB_EP_14 0x000000E0u /* Endpoint 14 */
+#define USB_EP_15 0x000000F0u /* Endpoint 15 */
+#define NUM_USB_EP 16u /* Number of supported endpoints */
+
+/******************************************************************************
+ *
+ * The following are values that can be passed to USBHostEndpointConfig() and
+ * USBDevEndpointConfigSet() as the ulFlags parameter.
+ *
+ *****************************************************************************/
+#define USB_EP_AUTO_SET 0x00000001u /* Auto set feature enabled */
+#define USB_EP_AUTO_REQUEST 0x00000002u /* Auto request feature enabled */
+#define USB_EP_AUTO_CLEAR 0x00000004u /* Auto clear feature enabled */
+#define USB_EP_DMA_MODE_0 0x00000008u /* Enable DMA access using mode 0 */
+#define USB_EP_DMA_MODE_1 0x00000010u /* Enable DMA access using mode 1 */
+#define USB_EP_MODE_ISOC 0x00000000u /* Isochronous endpoint */
+#define USB_EP_MODE_BULK 0x00000100u /* Bulk endpoint */
+#define USB_EP_MODE_INT 0x00000200u /* Interrupt endpoint */
+#define USB_EP_MODE_CTRL 0x00000300u /* Control endpoint */
+#define USB_EP_MODE_MASK 0x00000300u /* Mode Mask */
+#define USB_EP_SPEED_LOW 0x00000000u /* Low Speed */
+#define USB_EP_SPEED_FULL 0x00001000u /* Full Speed */
+
+/******************************************************************************
+ *
+ * The following are values that are returned from USBEndpointStatus(). The
+ * USB_HOST_* values are used when the USB controller is in host mode and the
+ * USB_DEV_* values are used when the USB controller is in device mode.
+ *
+ *****************************************************************************/
+#define USB_DEV_EP0_OUT_PKTRDY 0x00000001u /* Receive data packet ready */
+#define USB_DEV_RX_PKT_RDY 0x00010000u /* Data packet ready */
+#define USB_DEV_TX_TXPKTRDY 0x00000001u
+#define USB_DEV_TX_FIFO_NE 0x00000002u
+
+/******************************************************************************
+ *
+ * This value specifies the maximum size of transfers on endpoint 0 as 64
+ * bytes. This value is fixed in hardware as the FIFO size for endpoint 0.
+ *
+ *****************************************************************************/
+#define MAX_PACKET_SIZE_EP0 64u
+
+/******************************************************************************
+ *
+ * Macros for hardware access, both direct and via the bit-band region.
+ *
+ *****************************************************************************/
+#define HWREG( x ) ( *( ( volatile uint32_t * ) ( x ) ) )
+
+/******************************************************************************
+ *
+ * Initialize the USB Device
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usFlags specifies the bus/self powered and endianness for data & dma.
+ * Should be a combination of the following flags
+ * USBD_PWR_BUS_PWR or USBD_PWR_SELF_PWR
+ * USBD_DATA_ENDIAN_LITTLE or USBD_DATA_ENDIAN_BIG
+ * USBD_DMA_ENDIAN_LITTLE or USBD_DMA_ENDIAN_BIG
+ * \param usFifoPtr specifies the start of the EP0 FIFO.
+ *
+ * This function will initialize the USB Device controller specified by the
+ * \e ulBase parameter.
+ *
+ * \return None
+ *
+ * Note This function does not intiate a device connect (pull ups are
+ * not enabled). Also the EP0 is intialized with FIFO size of 64Bytes.
+ *
+ *
+ *****************************************************************************/
+void USBDevInit( uint32 ulBase, uint16 usFlags, uint16 usFifoPtr );
+
+/******************************************************************************
+ *
+ * Initialize the USB Device's EP0
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usSize FIFO size. Supported values are USB_FIFO_SZ_8/USB_FIFO_SZ_16/
+ * USB_FIFO_SZ_32/USB_FIFO_SZ_64.
+ * \param usFifoPtr specifies the start of the EP0 FIFO.
+ *
+ * This function will initialize the USB Device controller specified by the
+ * \e ulBase parameter. The \e uFlags parameter is not used by this
+ * implementation.
+ *
+ * \return None
+ *
+ *
+ *****************************************************************************/
+void USBDevEp0Config( uint32 ulBase, uint16 usSize, uint16 usFifoPtr );
+
+/******************************************************************************
+ *
+ * Disable control interrupts on a given USB device controller.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usFlags specifies which control interrupts to disable.
+ *
+ * This function will disable the interrupts for the USB device controller
+ * specified by the \e ulBase parameter. The \e usFlags parameter specifies
+ * which control interrupts to disable. The flags passed in the \e usFlags
+ * parameters should be the definitions that start with \b USBD_INT_EN_*
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBIntDisable( uint32 ulBase, uint16 usFlags );
+
+/******************************************************************************
+ *
+ * Enable control interrupts on a given USB device controller.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usFlags specifies which control interrupts to enable.
+ *
+ * This function will enable the control interrupts for the USB device controller
+ * specified by the \e ulBase parameter. The \e usFlags parameter specifies
+ * which control interrupts to enable. The flags passed in the \e usFlags
+ * parameters should be the definitions that start with \b USBD_INT_EN_* and
+ * not any other \b USB_INT flags.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBIntEnable( uint32 ulBase, uint16 usFlags );
+
+/******************************************************************************
+ *
+ * Returns the control interrupt status on a given USB device controller.
+ *
+ * \param ulBase specifies the USB module base address.
+ *
+ * This function will read interrupt status for a USB device controller.
+ * The bit values returned should be compared against the \b USBD_INT_SRC_*
+ * values.
+ *
+ * \return Returns the status of the control interrupts for a USB device controller.
+ *
+ *****************************************************************************/
+uint16 USBIntStatus( uint32 ulBase );
+
+/******************************************************************************
+ *
+ * Stalls the specified endpoint in device mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint specifies the endpoint to stall.
+ * \param usFlags specifies whether to stall the IN or OUT endpoint.
+ *
+ * This function will cause to endpoint number passed in to go into a stall
+ * condition. If the \e usFlags parameter is \b USB_EP_DEV_IN then the stall
+ * will be issued on the IN portion of this endpoint. If the \e usFlags
+ * parameter is \b USB_EP_DEV_OUT then the stall will be issued on the OUT
+ * portion of this endpoint.
+ *
+ * \note This function should only be called in device mode.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevEndpointStall( uint32 ulBase, uint16 usEndpoint, uint16 usFlags );
+
+/******************************************************************************
+ *
+ * Clears the stall condition on the specified endpoint in device mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint specifies which endpoint to remove the stall condition.
+ * \param usFlags specifies whether to remove the stall condition from the IN
+ * or the OUT portion of this endpoint.
+ *
+ * This function will cause the endpoint number passed in to exit the stall
+ * condition. If the \e usFlags parameter is \b USB_EP_DEV_IN then the stall
+ * will be cleared on the IN portion of this endpoint. If the \e usFlags
+ * parameter is \b USB_EP_DEV_OUT then the stall will be cleared on the OUT
+ * portion of this endpoint.
+ *
+ * \note This function should only be called in device mode.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevEndpointStallClear( uint32 ulBase, uint16 usEndpoint, uint16 usFlags );
+
+/******************************************************************************
+ *
+ * Connects the USB device controller to the bus in device mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ *
+ * This function will cause the soft connect feature of the USB device controller to
+ * be enabled. Call USBDisconnect() to remove the USB device from the bus.
+ *
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevConnect( uint32 ulBase );
+
+/******************************************************************************
+ *
+ * Removes the USB device controller from the bus in device mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ *
+ * This function will cause the soft disconnect feature of the USB device controller to
+ * remove the device from the USB bus. A call to USBDevConnect() is needed to
+ * reconnect to the bus.
+ *
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevDisconnect( uint32 ulBase );
+
+/******************************************************************************
+ *
+ * Sets the address in device mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param ulAddress is the address to use for a device.
+ *
+ * This function will set the device address on the USB bus. This address was
+ * likely received via a SET ADDRESS command from the host controller.
+ *
+ * \note This function is not available on this controller. This is maintained
+ * for compatibility.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevAddrSet( uint32 ulBase, uint32 ulAddress );
+
+/******************************************************************************
+ *
+ * Determine the number of bytes of data available in a given endpoint's FIFO.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ *
+ * This function will return the number of bytes of data currently available
+ * in the FIFO for the given receive (OUT) endpoint. It may be used prior to
+ * calling USBEndpointDataGet() to determine the size of buffer required to
+ * hold the newly-received packet.
+ *
+ * \return This call will return the number of bytes available in a given
+ * endpoint FIFO.
+ *
+ *****************************************************************************/
+uint16 USBEndpointDataAvail( uint32 ulBase, uint16 usEndpoint );
+
+/******************************************************************************
+ *
+ * Retrieves data from the given endpoint's FIFO.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param pucData is a pointer to the data area used to return the data from
+ * the FIFO.
+ * \param pulSize is initially the size of the buffer passed into this call
+ * via the \e pucData parameter. It will be set to the amount of data
+ * returned in the buffer.
+ *
+ * This function will return the data from the FIFO for the given endpoint.
+ * The \e pulSize parameter should indicate the size of the buffer passed in
+ * the \e pulData parameter. The data in the \e pulSize parameter will be
+ * changed to match the amount of data returned in the \e pucData parameter.
+ * If a zero byte packet was received this call will not return a error but
+ * will instead just return a zero in the \e pulSize parameter. The only
+ * error case occurs when there is no data packet available.
+ *
+ * \return This call will return 0, or -1 if no packet was received.
+ *
+ *****************************************************************************/
+sint32 USBEndpointDataGet( uint32 ulBase,
+ uint16 usEndpoint,
+ uint8 * pucData,
+ uint32 * pulSize );
+
+/******************************************************************************
+ *
+ * Retrieves the setup packet from EP0 Setup FIFO
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param sPkt Pointer to the data area for storing the setup packet.
+ * Atleast 8 bytes should be available.
+ * \param pusPktSize On return this contains the size of the setup packet (8Bytes)
+ *
+ * This function will retrieves the 8Byte long setup packet from the EP0 setup
+ * FIFO.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevGetSetupPacket( uint32 ulBase, uint8 * sPkt, uint16 * pusPktSize );
+
+/******************************************************************************
+ *
+ * Acknowledge that data was read from the given endpoint's FIFO in device
+ * mode.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param bIsLastPacket This parameter is not used.
+ *
+ * This function acknowledges that the data was read from the endpoint's FIFO.
+ * The \e bIsLastPacket parameter is set to a \b true value if this is the
+ * last in a series of data packets on endpoint zero. The \e bIsLastPacket
+ * parameter is not used for endpoints other than endpoint zero. This call
+ * can be used if processing is required between reading the data and
+ * acknowledging that the data has been read.
+ *
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevEndpointDataAck( uint32 ulBase, uint16 usEndpoint, tBoolean bIsLastPacket );
+
+/******************************************************************************
+ *
+ * Puts data into the given endpoint's FIFO.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param pucData is a pointer to the data area used as the source for the
+ * data to put into the FIFO.
+ * \param ulSize is the amount of data to put into the FIFO.
+ *
+ * This function will put the data from the \e pucData parameter into the FIFO
+ * for this endpoint. If a packet is already pending for transmission then
+ * this call will not put any of the data into the FIFO and will return -1.
+ * Care should be taken to not write more data than can fit into the FIFO
+ * allocated by the call to USBFIFOConfig().
+ *
+ * \return This call will return 0 on success, or -1 to indicate that the FIFO
+ * is in use and cannot be written.
+ *
+ *****************************************************************************/
+uint32 USBEndpointDataPut( uint32 ulBase,
+ uint16 usEndpoint,
+ uint8 * pucData,
+ uint32 ulSize );
+
+/******************************************************************************
+ *
+ * Starts the transfer of data from an endpoint's FIFO.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param ulTransType Not used.
+ *
+ * This function will start the transfer of data from the FIFO for a given
+ * endpoint.
+ *
+ * \return This call will return 0 on success, or -1 if a transmission is
+ * already in progress.
+ *
+ *****************************************************************************/
+uint32 USBEndpointDataSend( uint32 ulBase, uint16 usEndpoint, uint32 ulTransType );
+
+/******************************************************************************
+ *
+ * Resets the USB Device Controller
+ *
+ * \param void
+ *
+ * \return None.
+ *
+ * \note Since the USB Device reset is handled by the host, this is a dummy
+ * function & maintained for compatibility purpose.
+ *
+ *****************************************************************************/
+void USBReset( void );
+
+/******************************************************************************
+ *
+ * Sets the FIFO configuration for an endpoint.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param uFIFOAddress is the starting address for the FIFO.
+ * \param uFIFOSize is the size of the FIFO in bytes.
+ * \param uFlags specifies what information to set in the FIFO configuration.
+ *
+ * This function will set the starting FIFO RAM address and size of the FIFO
+ * for a given endpoint. Endpoint zero does not have a dynamically
+ * configurable FIFO so this function should not be called for endpoint zero.
+ * The \e uFIFOSize parameter should be one of the values in the
+ * \b USB_FIFO_SZ_ values. If the endpoint is going to use double buffering
+ * it should use the values with the \b _DB at the end of the value. For
+ * example, use \b USB_FIFO_SZ_16_DB to configure an endpoint to have a 16
+ * byte double buffered FIFO. If a double buffered FIFO is used, then the
+ * actual size of the FIFO will be twice the size indicated by the
+ * \e uFIFOSize parameter. This means that the \b USB_FIFO_SZ_16_DB value
+ * will use 32 bytes of the USB controller's FIFO memory.
+ *
+ * The \e uFIFOAddress value should be a multiple of 8 bytes and directly
+ * indicates the starting address in the USB controller's FIFO RAM. For
+ * example, a value of 64 indicates that the FIFO should start 64 bytes into
+ * the USB controller's FIFO memory. The \e uFlags value specifies whether
+ * the endpoint's OUT or IN FIFO should be configured. If in host mode, use
+ * \b USB_EP_HOST_OUT or \b USB_EP_HOST_IN, and if in device mode use
+ * \b USB_EP_DEV_OUT or \b USB_EP_DEV_IN.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBFIFOConfigSet( uint32 ulBase,
+ uint32 usEndpoint,
+ uint32 uFIFOAddress,
+ uint32 uFIFOSize,
+ uint16 uFlags );
+
+/******************************************************************************
+ *
+ * Gets the current configuration for an endpoint.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param pulMaxPacketSize is a pointer which will be written with the
+ * maximum packet size for this endpoint.
+ * \param puFlags is a pointer which will be written with the current
+ * endpoint settings. On entry to the function, this pointer must contain
+ * either \b USB_EP_DEV_IN or \b USB_EP_DEV_OUT to indicate whether the IN or
+ * OUT endpoint is to be queried.
+ *
+ * This function will return the basic configuration for an endpoint in device
+ * mode. The values returned in \e *pulMaxPacketSize and \e *puFlags are
+ * equivalent to the \e ulMaxPacketSize and \e uFlags previously passed to
+ * USBDevEndpointConfigSet() for this endpoint.
+ *
+ * \note This function should only be called in device mode.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevEndpointConfigGet( uint32 ulBase,
+ uint16 usEndpoint,
+ uint32 * pulMaxPacketSize,
+ uint32 * puFlags );
+
+/******************************************************************************
+ *
+ * Sets the configuration for an endpoint.
+ *
+ * \param ulBase specifies the USB module base address.
+ * \param usEndpoint is the endpoint to access.
+ * \param ulMaxPacketSize is the maximum packet size for this endpoint.
+ * \param uFlags are used to configure other endpoint settings.
+ *
+ * This function will set the basic configuration for an endpoint in device
+ * mode. Endpoint zero does not have a dynamic configuration, so this
+ * function should not be called for endpoint zero. The \e uFlags parameter
+ * determines some of the configuration while the other parameters provide the
+ * rest.
+ *
+ * The \b USB_EP_MODE_ flags define what the type is for the given endpoint.
+ *
+ * - \b USB_EP_MODE_CTRL is a control endpoint.
+ * - \b USB_EP_MODE_ISOC is an isochronous endpoint.
+ * - \b USB_EP_MODE_BULK is a bulk endpoint.
+ * - \b USB_EP_MODE_INT is an interrupt endpoint.
+ *
+ *
+ * \note This function should only be called in device mode.
+ *
+ * \return None.
+ *
+ *****************************************************************************/
+void USBDevEndpointConfigSet( uint32 ulBase,
+ uint16 usEndpoint,
+ uint32 ulMaxPacketSize,
+ uint32 uFlags );
+
+void USBDevSetDevCfg( uint32 ulBase );
+void USBDevClearDevCfg( uint32 ulBase );
+uint16 USBDevGetEPnStat( uint32 ulBase );
+void USBDevPullEnableDisable( uint32 ulBase, uint32 ulSet );
+void USBIntStatusClear( uint16 uFlag );
+uint16 USBDevGetDevStat( uint32 ulBase );
+void USBDevCfgUnlock( uint32 ulBase );
+void USBDevCfgLock( uint32 ulBase );
+
+#endif /*USB_H_*/
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb_serial_structs.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb_serial_structs.h
new file mode 100644
index 000000000..a0e3ffa2b
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usb_serial_structs.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/**
+ * @file usb_serial_structs.h
+ *
+ * @brief Data structures defining this USB CDC device.
+ *
+ */
+
+#ifndef _USB_SERIAL_STRUCTS_H_
+#define _USB_SERIAL_STRUCTS_H_
+
+/******************************************************************************
+ *
+ * The size of the transmit and receive buffers used for the redirected UART.
+ * This number should be a power of 2 for best performance. 256 is chosen
+ * pretty much at random though the buffer should be at least twice the size of
+ * a maxmum-sized USB packet.
+ *
+ *****************************************************************************/
+#define UART_BUFFER_SIZE 0x0001
+
+/** ***************************************************************************
+ *
+ * CDC device callback function prototypes.
+ *
+ *****************************************************************************/
+uint32 RxHandler( void * pvCBData, uint32 ulEvent, uint32 ulMsgValue, void * pvMsgData );
+uint32 TxHandler( void * pvCBData, uint32 ulEvent, uint32 ulMsgValue, void * pvMsgData );
+uint32 ControlHandler( void * pvCBData,
+ uint32 ulEvent,
+ uint32 ulMsgValue,
+ void * pvMsgData );
+
+extern const tUSBBuffer g_sTxBuffer;
+extern const tUSBBuffer g_sRxBuffer;
+extern const tUSBDCDCDevice g_sCDCDevice;
+extern uint8 g_pucUSBTxBuffer[];
+extern uint8 g_pucUSBRxBuffer[];
+
+#endif /* ifndef _USB_SERIAL_STRUCTS_H_ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbcdc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbcdc.h
new file mode 100644
index 000000000..25329e292
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbcdc.h
@@ -0,0 +1,756 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/******************************************************************************
+ *
+ * Note: This header contains definitions related to the USB Communication
+ * Device Class specification. The header is complete for ACM model
+ * devices but request and notification definitions specific to other
+ * modem types, ISDN, ATM and Ethernet are currently incomplete or
+ * omitted.
+ *
+ *****************************************************************************/
+
+#ifndef __USBCDC_H__
+#define __USBCDC_H__
+
+/******************************************************************************
+ *
+ * If building with a C++ compiler, make all of the definitions in this header
+ * have a C binding.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/******************************************************************************
+ *
+ * \ingroup cdc_device_class_api
+ * @{
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Generic macros to read a byte, word or long from a character pointer.
+ *
+ *****************************************************************************/
+
+/* #define BYTE(pucData) (*(uint8 *)(pucData))
+ #define SHORT(pucData) (*(uint16 *)(pucData))
+ #define LONG(pucData) (*(uint32 *)(pucData)) */
+
+/******************************************************************************
+ *
+ * USB CDC subclass codes. Used in interface descriptor, bInterfaceClass
+ *
+ *****************************************************************************/
+#define USB_CDC_SUBCLASS_DIRECT_LINE_MODEL 0x01
+#define USB_CDC_SUBCLASS_ABSTRACT_MODEL 0x02
+#define USB_CDC_SUBCLASS_TELEPHONE_MODEL 0x03
+#define USB_CDC_SUBCLASS_MULTI_CHANNEL_MODEL 0x04
+#define USB_CDC_SUBCLASS_CAPI_MODEL 0x05
+#define USB_CDC_SUBCLASS_ETHERNET_MODEL 0x06
+#define USB_CDC_SUBCLASS_ATM_MODEL 0x07
+
+/******************************************************************************
+ *
+ * USB CDC control interface protocols. Used in control interface descriptor,
+ * bInterfaceProtocol
+ *
+ *****************************************************************************/
+#define USB_CDC_PROTOCOL_NONE 0x00
+#define USB_CDC_PROTOCOL_V25TER 0x01
+#define USB_CDC_PROTOCOL_VENDOR 0xFF
+
+/******************************************************************************
+ *
+ * USB CDC data interface protocols. Used in data interface descriptor,
+ * bInterfaceProtocol
+ *
+ *****************************************************************************/
+/* USB_CDC_PROTOCOL_NONE 0x00 */
+#define USB_CDC_PROTOCOL_I420 0x30
+#define USB_CDC_PROTOCOL_TRANSPARENT 0x32
+#define USB_CDC_PROTOCOL_Q921M 0x50
+#define USB_CDC_PROTOCOL_Q921 0x51
+#define USB_CDC_PROTOCOL_Q921TM 0x52
+#define USB_CDC_PROTOCOL_V42BIS 0x90
+#define USB_CDC_PROTOCOL_Q921EURO 0x91
+#define USB_CDC_PROTOCOL_V120 0x92
+#define USB_CDC_PROTOCOL_CAPI20 0x93
+#define USB_CDC_PROTOCOL_HOST_DRIVER 0xFD
+#define USB_CDC_PROTOCOL_CDC_SPEC 0xFE
+/* USB_CDC_PROTOCOL_VENDOR 0xFF */
+
+/******************************************************************************
+ *
+ * Functional descriptor definitions
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Functional descriptor types
+ *
+ *****************************************************************************/
+#define USB_CDC_CS_INTERFACE 0x24
+#define USB_CDC_CS_ENDPOINT 0x25
+
+/******************************************************************************
+ *
+ * Functional descriptor subtypes
+ *
+ *****************************************************************************/
+#define USB_CDC_FD_SUBTYPE_HEADER 0x00
+#define USB_CDC_FD_SUBTYPE_CALL_MGMT 0x01
+#define USB_CDC_FD_SUBTYPE_ABSTRACT_CTL_MGMT 0x02
+#define USB_CDC_FD_SUBTYPE_DIRECT_LINE_MGMT 0x03
+#define USB_CDC_FD_SUBTYPE_TELEPHONE_RINGER 0x04
+#define USB_CDC_FD_SUBTYPE_LINE_STATE_CAPS 0x05
+#define USB_CDC_FD_SUBTYPE_UNION 0x06
+#define USB_CDC_FD_SUBTYPE_COUNTRY 0x07
+#define USB_CDC_FD_SUBTYPE_TELEPHONE_MODES 0x08
+#define USB_CDC_FD_SUBTYPE_USB_TERMINAL 0x09
+#define USB_CDC_FD_SUBTYPE_NETWORK_TERMINAL 0x0A
+#define USB_CDC_FD_SUBTYPE_PROTOCOL_UNIT 0x0B
+#define USB_CDC_FD_SUBTYPE_EXTENSION_UNIT 0x0C
+#define USB_CDC_FD_SUBTYPE_MULTI_CHANNEL_MGMT 0x0D
+#define USB_CDC_FD_SUBTYPE_CAPI_MGMT 0x0E
+#define USB_CDC_FD_SUBTYPE_ETHERNET 0x0F
+#define USB_CDC_FD_SUBTYPE_ATM 0x10
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_CALL_MGMT, Header functional descriptor, bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_CALL_MGMT_VIA_DATA 0x02
+#define USB_CDC_CALL_MGMT_HANDLED 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_ABSTRACT_CTL_MGMT, Abstract Control Management functional
+ * descriptor, bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_ACM_SUPPORTS_NETWORK_CONNECTION 0x08
+#define USB_CDC_ACM_SUPPORTS_SEND_BREAK 0x04
+#define USB_CDC_ACM_SUPPORTS_LINE_PARAMS 0x02
+#define USB_CDC_ACM_SUPPORTS_COMM_FEATURE 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_DIRECT_LINE_MGMT, Direct Line Management functional
+ * descriptor, bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_DLM_NEEDS_EXTRA_PULSE_SETUP 0x04
+#define USB_CDC_DLM_SUPPORTS_AUX 0x02
+#define USB_CDC_DLM_SUPPORTS_PULSE 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_TELEPHONE_MODES, Telephone Operational Modes functional
+ * descriptor, bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_TELEPHONE_SUPPORTS_COMPUTER 0x04
+#define USB_CDC_TELEPHONE_SUPPORTS_STANDALONE 0x02
+#define USB_CDC_TELEPHONE_SUPPORTS_SIMPLE 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_LINE_STATE_CAPS, Telephone Call and Line State Reporting
+ * Capabilities descriptor
+ *
+ *****************************************************************************/
+#define USB_CDC_LINE_STATE_CHANGES_NOTIFIED 0x20
+#define USB_CDC_LINE_STATE_REPORTS_DTMF 0x10
+#define USB_CDC_LINE_STATE_REPORTS_DIST_RING 0x08
+#define USB_CDC_LINE_STATE_REPORTS_CALLERID 0x04
+#define USB_CDC_LINE_STATE_REPORTS_BUSY 0x02
+#define USB_CDC_LINE_STATE_REPORTS_INT_DIALTONE 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_USB_TERMINAL, USB Terminal functional descriptor,
+ * bmOptions
+ *
+ *****************************************************************************/
+#define USB_CDC_TERMINAL_NO_WRAPPER_USED 0x00
+#define USB_CDC_TERMINAL_WRAPPER_USED 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_MULTI_CHANNEL_MGMT, Multi-Channel Management functional
+ * descriptor, bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_MCM_SUPPORTS_SET_UNIT_PARAM 0x04
+#define USB_CDC_MCM_SUPPORTS_CLEAR_UNIT_PARAM 0x02
+#define USB_CDC_MCM_UNIT_PARAMS_NON_VOLATILE 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_CAPI_MGMT, CAPI Control Management functional descriptor,
+ * bmCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_CAPI_INTELLIGENT 0x01
+#define USB_CDC_CAPI_SIMPLE 0x00
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_ETHERNET, Ethernet Networking functional descriptor,
+ * bmEthernetStatistics
+ *
+ *****************************************************************************/
+#define USB_CDC_ENET_XMIT_OK 0x01000000U
+#define USB_CDC_ENET_RCV_OK 0x02000000U
+#define USB_CDC_ENET_XMIT_ERROR 0x04000000U
+#define USB_CDC_ENET_RCV_ERROR 0x08000000U
+#define USB_CDC_ENET_RCV_NO_BUFFER 0x10000000U
+#define USB_CDC_ENET_DIRECTED_BYTES_XMIT 0x20000000U
+#define USB_CDC_ENET_DIRECTED_FRAMES_XMIT 0x40000000U
+#define USB_CDC_ENET_MULTICAST_BYTES_XMIT 0x80000000U
+#define USB_CDC_ENET_MULTICAST_FRAMES_XMIT 0x00010000U
+#define USB_CDC_ENET_BROADCAST_BYTES_XMIT 0x00020000U
+#define USB_CDC_ENET_BROADCAST_FRAMES_XMIT 0x00040000U
+#define USB_CDC_ENET_DIRECTED_BYTES_RCV 0x00080000U
+#define USB_CDC_ENET_DIRECTED_FRAMES_RCV 0x00100000U
+#define USB_CDC_ENET_MULTICAST_BYTES_RCV 0x00200000U
+#define USB_CDC_ENET_MULTICAST_FRAMES_RCV 0x00400000U
+#define USB_CDC_ENET_BROADCAST_BYTES_RCV 0x00800000U
+#define USB_CDC_ENET_BROADCAST_FRAMES_RCV 0x00000100U
+#define USB_CDC_ENET_RCV_CRC_ERROR 0x00000200U
+#define USB_CDC_ENET_TRANSMIT_QUEUE_LENGTH 0x00000400U
+#define USB_CDC_ENET_RCV_ERROR_ALIGNMENT 0x00000800U
+#define USB_CDC_ENET_XMIT_ONE_COLLISION 0x00001000U
+#define USB_CDC_ENET_XMIT_MORE_COLLISIONS 0x00002000U
+#define USB_CDC_ENET_XMIT_DEFERRED 0x00004000U
+#define USB_CDC_ENET_XMIT_MAX_COLLISIONS 0x00008000U
+#define USB_CDC_ENET_RCV_OVERRUN 0x00000001U
+#define USB_CDC_ENET_XMIT_UNDERRUN 0x00000002U
+#define USB_CDC_ENET_XMIT_HEARTBEAT_FAILURE 0x00000004U
+#define USB_CDC_ENET_XMIT_TIMES_CRS_LOST 0x00000008U
+#define USB_CDC_ENET_XMIT_LATE_COLLISIONS 0x00000010U
+
+/******************************************************************************
+ *
+ * USB_CDC_FD_SUBTYPE_ATM, ATM Networking functional descriptor,
+ * bmDataCapabilities
+ *
+ *****************************************************************************/
+#define USB_CDC_ATM_TYPE_3 0x08
+#define USB_CDC_ATM_TYPE_2 0x04
+#define USB_CDC_ATM_TYPE_1 0x02
+
+/******************************************************************************
+ *
+ * bmATMDeviceStatistics
+ *
+ *****************************************************************************/
+#define USB_CDC_ATM_VC_US_CELLS_SENT 0x10
+#define USB_CDC_ATM_VC_US_CELLS_RECEIVED 0x08
+#define USB_CDC_ATM_DS_CELLS_HEC_ERR_CORRECTED 0x04
+#define USB_CDC_ATM_US_CELLS_SENT 0x02
+#define USB_CDC_ATM_US_CELLS_RECEIVED 0x01
+
+/******************************************************************************
+ *
+ * Management Element Requests (provided in tUSBRequest.ucRequest)
+ *
+ *****************************************************************************/
+#define USB_CDC_SEND_ENCAPSULATED_COMMAND 0x00u
+#define USB_CDC_GET_ENCAPSULATED_RESPONSE 0x01u
+#define USB_CDC_SET_COMM_FEATURE 0x02u
+#define USB_CDC_GET_COMM_FEATURE 0x03u
+#define USB_CDC_CLEAR_COMM_FEATURE 0x04u
+#define USB_CDC_SET_AUX_LINE_STATE 0x10u
+#define USB_CDC_SET_HOOK_STATE 0x11u
+#define USB_CDC_PULSE_SETUP 0x12u
+#define USB_CDC_SEND_PULSE 0x13u
+#define USB_CDC_SET_PULSE_TIME 0x14u
+#define USB_CDC_RING_AUX_JACK 0x15u
+#define USB_CDC_SET_LINE_CODING 0x20u
+#define USB_CDC_GET_LINE_CODING 0x21u
+#define USB_CDC_SET_CONTROL_LINE_STATE 0x22u
+#define USB_CDC_SEND_BREAK 0x23u
+#define USB_CDC_SET_RINGER_PARMS 0x30u
+#define USB_CDC_GET_RINGER_PARMS 0x31u
+#define USB_CDC_SET_OPERATION_PARMS 0x32u
+#define USB_CDC_GET_OPERATION_PARMS 0x33u
+#define USB_CDC_SET_LINE_PARMS 0x34u
+#define USB_CDC_GET_LINE_PARMS 0x35u
+#define USB_CDC_DIAL_DIGITS 0x36u
+#define USB_CDC_SET_UNIT_PARAMETER 0x37u
+#define USB_CDC_GET_UNIT_PARAMETER 0x38u
+#define USB_CDC_CLEAR_UNIT_PARAMETER 0x39u
+#define USB_CDC_GET_PROFILE 0x3Au
+#define USB_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40u
+#define USB_CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x41u
+#define USB_CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 0x42u
+#define USB_CDC_SET_ETHERNET_PACKET_FILTER 0x43u
+#define USB_CDC_GET_ETHERNET_STATISTIC 0x44u
+#define USB_CDC_SET_ATM_DATA_FORMAT 0x50u
+#define USB_CDC_GET_ATM_DEVICE_STATISTICS 0x51u
+#define USB_CDC_SET_ATM_DEFAULT_VC 0x52u
+#define USB_CDC_GET_ATM_VC_STATISTICS 0x53u
+
+/******************************************************************************
+ *
+ * In cases where a request defined above results in the return of a fixed size
+ * data block, the following group of labels define the size of that block. In
+ * each of these cases, an access macro is also provided to write the response
+ * data into an appropriately-sized array of uint8acters.
+ *
+ *****************************************************************************/
+#define USB_CDC_SIZE_COMM_FEATURE 2
+#define USB_CDC_SIZE_LINE_CODING 7
+#define USB_CDC_SIZE_RINGER_PARMS 4
+#define USB_CDC_SIZE_OPERATION_PARMS 2
+#define USB_CDC_SIZE_UNIT_PARAMETER 2
+#define USB_CDC_SIZE_PROFILE 64
+#define USB_CDC_SIZE_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER 2
+#define USB_CDC_SIZE_ETHERNET_STATISTIC 4
+#define USB_CDC_SIZE_ATM_DEVICE_STATISTICS 4
+#define USB_CDC_SIZE_ATM_VC_STATISTICS 4
+#define USB_CDC_SIZE_LINE_PARMS 10
+
+/******************************************************************************
+ *
+ * NB: USB_CDC_SIZE_LINE_PARAMS assumes only a single call. For multiple
+ * calls, add 4 bytes per additional call.
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * USB_CDC_GET_COMM_FEATURE & USB_CDC_SET_COMM_FEATURE
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * wValue (Feature Selector)
+ *
+ *****************************************************************************/
+#define USB_CDC_ABSTRACT_STATE 0x0001
+#define USB_CDC_COUNTRY_SETTING 0x0002
+
+/******************************************************************************
+ *
+ * Data when feature selector is USB_DCD_ABSTRACT_STATE
+ *
+ *****************************************************************************/
+#define USB_CDC_ABSTRACT_CALL_DATA_MULTIPLEXED 0x0002
+#define USB_CDC_ABSTRACT_ENDPOINTS_IDLE 0x0001
+
+/******************************************************************************
+ *
+ * Macros to populate the response data buffer (whose size in bytes is defined
+ * by USB_CDC_SIZE_COMM_FEATURE).
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseCommFeature.
+ */
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_AUX_LINE_STATE, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_AUX_DISCONNECT 0x0000
+#define USB_CDC_AUX_CONNECT 0x0001
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_HOOK_STATE, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_ON_HOOK 0x0000
+#define USB_CDC_OFF_HOOK 0x0001
+#define USB_CDC_SNOOPING 0x0002
+
+/******************************************************************************
+ *
+ * USB_CDC_GET_LINE_CODING
+ *
+ *****************************************************************************/
+#define USB_CDC_STOP_BITS_1 0x00
+#define USB_CDC_STOP_BITS_1_5 0x01
+#define USB_CDC_STOP_BITS_2 0x02
+
+#define USB_CDC_PARITY_NONE 0x00
+#define USB_CDC_PARITY_ODD 0x01
+#define USB_CDC_PARITY_EVEN 0x02
+#define USB_CDC_PARITY_MARK 0x03
+#define USB_CDC_PARITY_SPACE 0x04
+
+/******************************************************************************
+ *
+ * Macro to populate the response data buffer (whose size in bytes is defined
+ * by USB_CDC_SIZE_LINE_CODING).
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseLineCoding.
+ */
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_CONTROL_LINE_STATE, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_DEACTIVATE_CARRIER 0x00
+#define USB_CDC_ACTIVATE_CARRIER 0x02
+#define USB_CDC_DTE_NOT_PRESENT 0x00
+#define USB_CDC_DTE_PRESENT 0x01
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_RINGER_PARMS, USB_CDC_GET_RINGER_PARMS and
+ * USB_CDC_GET_LINE_PARMS (ulRingerBmp)
+ *
+ *****************************************************************************/
+#define USB_CDC_RINGER_EXISTS 0x80000000U
+#define USB_CDC_RINGER_DOES_NOT_EXIST 0x00000000
+
+/******************************************************************************
+ *
+ * Macro to populate the response data buffer to USB_CDC_GET_RINGER_PARMS.
+ * Parameter buf points to a buffer of size USB_CDC_SIZE_RINGER_PARMS bytes.
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseRingerParms.
+ */
+
+/******************************************************************************
+ *
+ * Macros to extract fields from the USB_CDC_SET_RINGER_PARMS data
+ *
+ *****************************************************************************/
+/* #define GetRingerVolume(pcData) (BYTE((pcData)+1)) */
+/* #define GetRingerPattern(pcData) (BYTE(pcData)) */
+/* #define GetRingerExists(pcData) ((LONG(pcData)) & USB_CDC_RINGER_EXISTS) */
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_OPERATION_PARMS, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_SIMPLE_MODE 0x0000
+#define USB_CDC_STANDALONE_MODE 0x0001
+#define USB_CDC_HOST_CENTRIC_MODE 0x0002
+
+/******************************************************************************
+ *
+ * Macro to populate the response data buffer to USB_CDC_GET_OPERATION_PARMS.
+ * Parameter buf points to a buffer of size USB_CDC_SIZE_OPERATION_PARMS
+ * bytes.
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseOperationParms.
+ */
+
+/******************************************************************************
+ *
+ * USB_CDC_SET_LINE_PARMS, wParam - Line State Change
+ *
+ *****************************************************************************/
+#define USB_CDC_DROP_ACTIVE_CALL 0x0000
+#define USB_CDC_START_NEW_CALL 0x0001
+#define USB_CDC_APPLY_RINGING 0x0002
+#define USB_CDC_REMOVE_RINGING 0x0003
+#define USB_CDC_SWITCH_CALL 0x0004
+
+/******************************************************************************
+ *
+ * Line state bitmap in USB_CDC_GET_LINE_PARMS response
+ *
+ *****************************************************************************/
+#define USB_CDC_LINE_IS_ACTIVE 0x80000000U
+#define USB_CDC_LINE_IS_IDLE 0x00000000U
+#define USB_CDC_LINE_NO_ACTIVE_CALL 0x000000FFU
+
+#define USB_CDC_CALL_ACTIVE 0x80000000U
+
+/******************************************************************************
+ *
+ * Call state value definitions
+ *
+ *****************************************************************************/
+#define USB_CDC_CALL_IDLE 0x00000000
+#define USB_CDC_CALL_TYPICAL_DIALTONE 0x00000001
+#define USB_CDC_CALL_INTERRUPTED_DIALTONE 0x00000002
+#define USB_CDC_CALL_DIALING 0x00000003
+#define USB_CDC_CALL_RINGBACK 0x00000004
+#define USB_CDC_CALL_CONNECTED 0x00000005
+#define USB_CDC_CALL_INCOMING 0x00000006
+
+/******************************************************************************
+ *
+ * Call state change value definitions
+ *
+ *****************************************************************************/
+#define USB_CDC_CALL_STATE_IDLE 0x01
+#define USB_CDC_CALL_STATE_DIALING 0x02
+#define USB_CDC_CALL_STATE_RINGBACK 0x03
+#define USB_CDC_CALL_STATE_CONNECTED 0x04
+#define USB_CDC_CALL_STATE_INCOMING 0x05
+
+/******************************************************************************
+ *
+ * Extra byte of data describing the connection type for
+ * USB_CDC_CALL_STATE_CONNECTED.
+ *
+ *****************************************************************************/
+#define USB_CDC_VOICE 0x00
+#define USB_CDC_ANSWERING_MACHINE 0x01
+#define USB_CDC_FAX 0x02
+#define USB_CDC_MODEM 0x03
+#define USB_CDC_UNKNOWN 0xFF
+
+/******************************************************************************
+ *
+ * Macro to extract call index from request in cases where wParam is
+ * USB_CDC_SWITCH_CALL.
+ *
+ *****************************************************************************/
+/* #define GetCallIndex(pcData) (BYTE(pcData)) */
+
+/******************************************************************************
+ *
+ * Macro to populate the CallState entries in response to request
+ * USB_CDC_GET_LINE_PARMS. The ucIndex parameter is a zero based index
+ * indicating which call entry in the pcBuf response buffer to fill in. Note
+ * that pcBuf points to the first byte of the buffer (the wLength field).
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseCallState.
+ */
+
+/******************************************************************************
+ *
+ * Macro to populate the response data buffer (whose size in bytes is defined
+ * by USB_CDC_SIZE_LINE_PARMS). Note that this macro only populates fields for
+ * a single call. If multiple calls are being managed, additional 4 byte
+ * fields must be appended to provide call state for each call after the first.
+ * This may be done using the SetResponseCallState macro with the appropriate
+ * call index supplied.
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetResponseLineParms.
+ */
+
+/******************************************************************************
+ *
+ * Notification Element definitions
+ *
+ *****************************************************************************/
+#define USB_CDC_NOTIFY_NETWORK_CONNECTION 0x00
+#define USB_CDC_NOTIFY_RESPONSE_AVAILABLE 0x01
+#define USB_CDC_NOTIFY_AUX_JACK_HOOK_STATE 0x08
+#define USB_CDC_NOTIFY_RING_DETECT 0x09
+#define USB_CDC_NOTIFY_SERIAL_STATE 0x20
+#define USB_CDC_NOTIFY_CALL_STATE_CHANGE 0x28
+#define USB_CDC_NOTIFY_LINE_STATE_CHANGE 0x29
+#define USB_CDC_NOTIFY_CONNECTION_SPEED_CHANGE 0x2A
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_NETWORK_CONNECTION, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_NETWORK_DISCONNECTED 0x0000
+#define USB_CDC_NETWORK_CONNECTED 0x0001
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_AUX_JACK_HOOK_STATE, wValue
+ *
+ *****************************************************************************/
+#define USB_CDC_AUX_JACK_ON_HOOK 0x0000
+#define USB_CDC_AUX_JACK_OFF_HOOK 0x0001
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_SERIAL_STATE, Data
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Number of bytes of data returned alongside this notification.
+ *
+ *****************************************************************************/
+#define USB_CDC_NOTIFY_SERIAL_STATE_SIZE 2u
+
+#define USB_CDC_SERIAL_STATE_OVERRUN 0x0040U
+#define USB_CDC_SERIAL_STATE_PARITY 0x0020U
+#define USB_CDC_SERIAL_STATE_FRAMING 0x0010U
+#define USB_CDC_SERIAL_STATE_RING_SIGNAL 0x0008U
+#define USB_CDC_SERIAL_STATE_BREAK 0x0004U
+#define USB_CDC_SERIAL_STATE_TXCARRIER 0x0002U
+#define USB_CDC_SERIAL_STATE_RXCARRIER 0x0001U
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_CALL_STATE_CHANGE, wValue
+ *
+ * Call state values are defined above in the group beginning
+ * USB_CDC_CALL_STATE_IDLE. Note that the data returned alongside this
+ * notification are heavily dependent upon the call state being reported so no
+ * specific lengths or access macros are provided here.
+ *
+ * Macro to construct the correct wValue for this notification given a state
+ * and call index.
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetNotifyCallStatewValue.
+ */
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_LINE_STATE_CHANGE, wValue
+ *
+ * Note that the data returned alongside this notification are heavily
+ * dependent upon the call state being reported so no specific lengths or
+ * access macros are provided here.
+ *
+ *****************************************************************************/
+#define USB_CDC_LINE_STATE_IDLE 0x0000
+#define USB_CDC_LINE_STATE_HOLD 0x0001
+#define USB_CDC_LINE_STATE_OFF_HOOK 0x0002
+#define USB_CDC_LINE_STATE_ON_HOOK 0x0003
+
+/******************************************************************************
+ *
+ * USB_CDC_NOTIFY_CONNECTION_SPEED_CHANGE, Data
+ *
+ * Macro to populate the 8 byte data structure returned alongside this
+ * notification.
+ *
+ *****************************************************************************/
+
+/*
+ * Add code for macro SetNotifyConnectionSpeedChange.
+ */
+
+/******************************************************************************
+ *
+ * Packed structure definitions for request/response data blocks
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * All structures defined in this section of the header require byte packing of
+ * fields. This is usually accomplished using the PACKED macro but, for IAR
+ * Embedded Workbench, this requires a pragma.
+ *
+ *****************************************************************************/
+#if defined( ewarm ) || defined( __IAR_SYSTEMS_ICC__ )
+ #pragma pack( 1 )
+#endif
+
+/**
+ * @brief USB_CDC_GET/SET_LINE_CODING request-specific data.
+ */
+typedef struct
+{
+ /**
+ * @brief The data terminal rate in bits per second.
+ */
+ uint32 ulRate;
+
+ /**
+ * @brief The number of stop bits. Valid values are USB_CDC_STOP_BITS_1,
+ * USB_CDC_STOP_BITS_1_5 or USB_CDC_STOP_BITS_2
+ */
+ uint8 ucStop;
+
+ /**
+ * @brief The parity setting. Valid values are USB_CDC_PARITY_NONE,
+ * USB_CDC_PARITY_ODD, USB_CDC_PARITY_EVEN, USB_CDC_PARITY_MARK
+ * and USB_CDC_PARITY_SPACE.
+ */
+ uint8 ucParity;
+
+ /**
+ * @brief The number of data bits per character. Valid values are
+ * 5, 6, 7 and 8 in this implementation.
+ */
+ uint8 ucDatabits;
+} PACKED tLineCoding;
+
+/******************************************************************************
+ *
+ * Return to default packing when using the IAR Embedded Workbench compiler.
+ *
+ *****************************************************************************/
+#if defined( ewarm ) || defined( __IAR_SYSTEMS_ICC__ )
+ #pragma pack()
+#endif
+
+/**
+ * Close the Doxygen group.
+ * @}
+ */
+
+/******************************************************************************
+ *
+ * Mark the end of the C bindings section for C++ compilers.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBCDC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdcdc.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdcdc.h
new file mode 100644
index 000000000..06342c8d4
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdcdc.h
@@ -0,0 +1,375 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/**
+ * @file usbdcdc.h
+ *
+ * @brief USBLib support for generic CDC ACM (serial) device.
+ *
+ */
+
+#ifndef __USBDCDC_H__
+#define __USBDCDC_H__
+
+/******************************************************************************
+ *
+ * If building with a C++ compiler, make all of the definitions in this header
+ * have a C binding.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** ***************************************************************************
+ *
+ * \ingroup cdc_device_class_api
+ * @{
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * PRIVATE
+ *
+ * The first few sections of this header are private defines that are used by
+ * the USB CDC Serial code and are here only to help with the application
+ * allocating the correct amount of memory for the CDC Serial device code.
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * PRIVATE
+ *
+ * This enumeration holds the various states that the device can be in during
+ * normal operation.
+ *
+ *****************************************************************************/
+typedef enum
+{
+ /**
+ * @brief Unconfigured.
+ */
+ CDC_STATE_UNCONFIGURED,
+
+ /**
+ * @brief No outstanding transaction remains to be completed.
+ */
+ CDC_STATE_IDLE,
+
+ /**
+ * @brief Waiting on completion of a send or receive transaction.
+ */
+ CDC_STATE_WAIT_DATA,
+
+ /**
+ * @brief Waiting for client to process data.
+ */
+ CDC_STATE_WAIT_CLIENT
+} tCDCState;
+
+/******************************************************************************
+ *
+ * PRIVATE
+ *
+ * This structure defines the private instance data and state variables for the
+ * CDC Serial device. The memory for this structure is pointed to by the
+ * psPrivateCDCSerData field in the tUSBDCDCDevice structure passed on
+ * USBDCDCInit().
+ *
+ *****************************************************************************/
+typedef struct
+{
+ uint32 ulUSBBase;
+ tDeviceInfo * psDevInfo;
+ tConfigDescriptor * psConfDescriptor;
+ volatile tCDCState eCDCRxState;
+ volatile tCDCState eCDCTxState;
+ volatile tCDCState eCDCRequestState;
+ volatile tCDCState eCDCInterruptState;
+ volatile uint8 ucPendingRequest;
+ uint16 usBreakDuration;
+ uint16 usControlLineState;
+ uint16 usSerialState;
+ volatile uint32 usDeferredOpFlags;
+ uint16 usLastTxSize;
+ tLineCoding sLineCoding;
+ volatile tBoolean bRxBlocked;
+ volatile tBoolean bControlBlocked;
+ volatile tBoolean bConnected;
+ uint8 ucControlEndpoint;
+ uint8 ucBulkINEndpoint;
+ uint8 ucBulkOUTEndpoint;
+ uint8 ucInterfaceControl;
+ uint8 ucInterfaceData;
+} tCDCSerInstance;
+
+#ifndef DEPRECATED
+
+ /** ***************************************************************************
+ *
+ * @brief The number of bytes of workspace required by the CDC device class
+ * driver. The client must provide a block of RAM of at least this
+ * size in the psPrivateCDCSerData field of the tUSBCDCDevice
+ * structure passed on USBDCDCInit().
+ *
+ * This value is deprecated and should not be used, any new code
+ * should just pass in a tUSBCDCDevice structure in the
+ * psPrivateCDCSerData field.
+ *
+ *****************************************************************************/
+ #define USB_CDCSER_WORKSPACE_SIZE ( sizeof( tCDCSerInstance ) )
+#endif
+
+/** ***************************************************************************
+ *
+ * The following defines are used when working with composite devices.
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The size of the memory that should be allocated to create a
+ * configuration descriptor for a single instance of the USB Serial
+ * CDC Device. This does not include the configuration descriptor
+ * which is automatically ignored by the composite device class.
+ *
+ * For reference this is sizeof(g_pIADSerDescriptor) +
+ * sizeof(g_pCDCSerCommInterface) + sizeof(g_pCDCSerDataInterface)
+ *
+ *****************************************************************************/
+#define COMPOSITE_DCDC_SIZE ( 8u + 35u + 23u )
+
+/** ***************************************************************************
+ *
+ * CDC-specific events These events are provided to the application in the
+ * \e ulMsg parameter of the tUSBCallback function.
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The host requests that the device send a BREAK condition on its
+ * serial communication channel. The BREAK should remain active until
+ * a USBD_CDC_EVENT_CLEAR_BREAK event is received.
+ */
+#define USBD_CDC_EVENT_SEND_BREAK ( USBD_CDC_EVENT_BASE + 0u )
+
+/** ***************************************************************************
+ *
+ * @brief The host requests that the device stop sending a BREAK condition on
+ * its serial communication channel.
+ */
+#define USBD_CDC_EVENT_CLEAR_BREAK ( USBD_CDC_EVENT_BASE + 1u )
+
+/** ***************************************************************************
+ *
+ * @brief The host requests that the device set the RS232 signaling lines to
+ * a particular state. The ulMsgValue parameter contains the RTS and
+ * DTR control line states as defined in table 51 of the USB CDC class
+ * definition and is a combination of the following values:
+ *
+ * (RTS) USB_CDC_DEACTIVATE_CARRIER or USB_CDC_ACTIVATE_CARRIER
+ * (DTR) USB_CDC_DTE_NOT_PRESENT or USB_CDC_DTE_PRESENT
+ */
+#define USBD_CDC_EVENT_SET_CONTROL_LINE_STATE ( USBD_CDC_EVENT_BASE + 2u )
+
+/** ***************************************************************************
+ *
+ * @brief The host requests that the device set the RS232 communication
+ * parameters. The pvMsgData parameter points to a tLineCoding
+ * structure defining the required number of bits per character,
+ * parity mode, number of stop bits and the baud rate.
+ */
+#define USBD_CDC_EVENT_SET_LINE_CODING ( USBD_CDC_EVENT_BASE + 3u )
+
+/** ***************************************************************************
+ *
+ * @brief The host is querying the current RS232 communication parameters.
+ * The pvMsgData parameter points to a tLineCoding structure that the
+ * application must fill with the current settings prior to returning
+ * from the callback.
+ */
+#define USBD_CDC_EVENT_GET_LINE_CODING ( USBD_CDC_EVENT_BASE + 4u )
+
+/** ***************************************************************************
+ *
+ * @brief The structure used by the application to define operating
+ * parameters for the CDC device.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The vendor ID that this device is to present in the device
+ * descriptor.
+ */
+ uint16 usVID;
+
+ /**
+ * @brief The product ID that this device is to present in the device
+ * descriptor.
+ */
+ uint16 usPID;
+
+ /**
+ * @brief The maximum power consumption of the device, expressed in
+ * milliamps.
+ */
+ uint16 usMaxPowermA;
+
+ /**
+ * @brief Indicates whether the device is self- or bus-powered and
+ * whether or not it supports remote wakeup. Valid values are
+ * USB_CONF_ATTR_SELF_PWR or USB_CONF_ATTR_BUS_PWR, optionally
+ * ORed with USB_CONF_ATTR_RWAKE.
+ */
+ uint8 ucPwrAttributes;
+
+ /**
+ * @brief A pointer to the callback function which will be called to
+ * notify the application of all asynchronous control events
+ * related to the operation of the device.
+ */
+ tUSBCallback pfnControlCallback;
+
+ /**
+ * @brief A client-supplied pointer which will be sent as the first
+ * parameter in all calls made to the control channel callback,
+ * pfnControlCallback.
+ */
+ void * pvControlCBData;
+
+ /**
+ * @brief A pointer to the callback function which will be called to
+ * notify the application of events related to the device's data
+ * receive channel.
+ */
+ tUSBCallback pfnRxCallback;
+
+ /**
+ * @brief A client-supplied pointer which will be sent as the first
+ * parameter in all calls made to the receive channel callback,
+ * pfnRxCallback.
+ */
+ void * pvRxCBData;
+
+ /**
+ * @brief A pointer to the callback function which will be called to
+ * notify the application of events related to the device's data
+ * transmit channel.
+ */
+ tUSBCallback pfnTxCallback;
+
+ /**
+ * @brief A client-supplied pointer which will be sent as the first
+ * parameter in all calls made to the transmit channel callback,
+ * pfnTxCallback.
+ */
+ void * pvTxCBData;
+
+ /**
+ * @brief A pointer to the string descriptor array for this device. This
+ * array must contain the following string descriptor pointers in
+ * this order. Language descriptor, Manufacturer name string
+ * (language 1), Product name string (language 1), Serial number
+ * Control interface description string (language 1),
+ * Configuration description string (language 1).
+ *
+ * If supporting more than 1 language, the strings for indices
+ * 1 through 5 must be repeated for each of the other languages
+ * defined in the language descriptor.
+ */
+ const uint8 * const * ppStringDescriptors;
+
+ /**
+ * @brief The number of descriptors provided in the ppStringDescriptors
+ * array. This must be 1 + (5 * number of supported languages).
+ */
+ uint32 ulNumStringDescriptors;
+
+ /**
+ * @brief A pointer to the private instance data for this device. This
+ * memory must remain accessible for as long as the CDC device is
+ * in use and must not be modified by any code outside the CDC
+ * class driver.
+ */
+ tCDCSerInstance * psPrivateCDCSerData;
+} tUSBDCDCDevice;
+
+extern tDeviceInfo g_sCDCSerDeviceInfo;
+
+/** ***************************************************************************
+ *
+ * API Function Prototypes
+ *
+ *****************************************************************************/
+extern void * USBDCDCCompositeInit( uint32 ulIndex, const tUSBDCDCDevice * psCDCDevice );
+extern void * USBDCDCInit( uint32 ulIndex, const tUSBDCDCDevice * psCDCDevice );
+extern void USBDCDCTerm( void * pvInstance );
+extern void * USBDCDCSetControlCBData( tUSBDCDCDevice * pvInstance, void * pvCBData );
+extern void * USBDCDCSetRxCBData( void * pvInstance, void * pvCBData );
+extern void * USBDCDCSetTxCBData( void * pvInstance, void * pvCBData );
+extern uint32 USBDCDCPacketWrite( void * pvInstance,
+ uint8 * pcData,
+ uint32 ulLength,
+ tBoolean bLast );
+extern uint32 USBDCDCPacketRead( void * pvInstance,
+ uint8 * pcData,
+ uint32 ulLength,
+ tBoolean bLast );
+extern uint32 USBDCDCTxPacketAvailable( void * pvInstance );
+extern uint32 USBDCDCRxPacketAvailable( void * pvInstance );
+extern void USBDCDCSerialStateChange( void * pvInstance, uint16 usState );
+extern void USBDCDCPowerStatusSet( void * pvInstance, uint8 ucPower );
+extern tBoolean USBDCDCRemoteWakeupRequest( void * pvInstance );
+
+/** ***************************************************************************
+ *
+ * Close the Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Mark the end of the C bindings section for C++ compilers.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBDCDC_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevice.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevice.h
new file mode 100644
index 000000000..4a220077a
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevice.h
@@ -0,0 +1,146 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/**
+ * @file usbdevice.h
+ *
+ * @brief Types and definitions used during USB enumeration.
+ *
+ */
+
+#ifndef __USBDEVICE_H__
+#define __USBDEVICE_H__
+
+/******************************************************************************
+ *
+ * If building with a C++ compiler, make all of the definitions in this header
+ * have a C binding.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** ***************************************************************************
+ *
+ * \ingroup device_api
+ * @{
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The maximum number of independent interfaces that any single device
+ * implementation can support. Independent interfaces means interface
+ * descriptors with different bInterfaceNumber values - several
+ * interface descriptors offering different alternative settings but
+ * the same interface number count as a single interface.
+ *
+ *****************************************************************************/
+/*#define USB_MAX_INTERFACES_PER_DEVICE 8u*/
+
+/** ***************************************************************************
+ *
+ * Close the Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The default USB endpoint FIFO configuration structure. This
+ * structure contains definitions to set all USB FIFOs into single
+ * buffered mode with no DMA use. Each endpoint's FIFO is sized to
+ * hold the largest maximum packet size for any interface alternate
+ * setting in the current config descriptor. A pointer to this
+ * structure may be passed in the psFIFOConfig field of the
+ * tDeviceInfo structure passed to USBCDCInit if the application does
+ * not require any special handling of the USB controller FIFO.
+ *
+ *****************************************************************************/
+extern const tFIFOConfig g_sUSBDefaultFIFOConfig;
+
+/** ***************************************************************************
+ *
+ * Public APIs offered by the USB library device control driver.
+ *
+ *****************************************************************************/
+extern void USBDCDInit( uint32 ulIndex, tDeviceInfo * psDevice );
+extern void USBDCDTerm( uint32 ulIndex );
+extern void USBDCDStallEP0( uint32 ulIndex );
+extern void USBDCDRequestDataEP0( uint32 ulIndex, uint8 * pucData, uint32 ulSize );
+extern void USBDCDSendDataEP0( uint32 ulIndex, uint8 * pucData, uint32 ulSize );
+extern void USBDCDSetDefaultConfiguration( uint32 ulIndex, uint32 ulDefaultConfig );
+extern uint32 USBDCDConfigDescGetSize( const tConfigHeader * psConfig );
+extern uint32 USBDCDConfigDescGetNum( const tConfigHeader * psConfig, uint32 ulType );
+extern tDescriptorHeader * USBDCDConfigDescGet( const tConfigHeader * psConfig,
+ uint32 ulType,
+ uint32 ulIndex,
+ uint32 * pulSection );
+extern uint32 USBDCDConfigGetNumAlternateInterfaces( const tConfigHeader * psConfig,
+ uint8 ucInterfaceNumber );
+extern tInterfaceDescriptor * USBDCDConfigGetInterface( const tConfigHeader * psConfig,
+ uint32 ulIndex,
+ uint32 ulAltCfg,
+ uint32 * pulSection );
+extern tEndpointDescriptor * USBDCDConfigGetInterfaceEndpoint(
+ const tConfigHeader * psConfig,
+ uint32 ulInterfaceNumber,
+ uint32 ulAltCfg,
+ uint32 ulIndex );
+extern void USBDCDPowerStatusSet( uint32 ulIndex, uint8 ucPower );
+extern tBoolean USBDCDRemoteWakeupRequest( uint32 ulIndex );
+
+/** ***************************************************************************
+ *
+ * Early releases of the USB library had the following function named
+ * incorrectly. This macro ensures that any code which used the previous name
+ * will still operate as expected.
+ *
+ *****************************************************************************/
+#ifndef DEPRECATED
+ #define USBCDCConfigGetInterfaceEndpoint( a, b, c, d ) \
+ USBDCDConfigGetInterfaceEndpoint( ( a ), ( b ), ( c ), ( d ) )
+#endif
+
+/** ***************************************************************************
+ *
+ * Mark the end of the C bindings section for C++ compilers.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBENUM_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevicepriv.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevicepriv.h
new file mode 100644
index 000000000..35dfb91de
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usbdevicepriv.h
@@ -0,0 +1,88 @@
+/******************************************************************************
+ * FILE DESCRIPTION
+ * ---------------------------------------------------------------------------
+ * File: usbdevicepriv.h
+ * Component:
+ * Module: usb
+ * Generator: -
+ *
+ * Description: Private header file used to share internal variables and
+ * function prototypes between the various device-related
+ * modules in the USB library. This header MUST NOT be
+ * used by application code.
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+#ifndef __USBDEVICEPRIV_H__
+#define __USBDEVICEPRIV_H__
+
+/******************************************************************************
+ *
+ * If building with a C++ compiler, make all of the definitions in this header
+ * have a C binding.
+ *
+ *****************************************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/******************************************************************************
+ *
+ * Device enumeration functions provided by device/usbenum.c and called from
+ * the interrupt handler in device/usbhandler.c
+ *
+ *****************************************************************************/
+extern tBoolean USBDeviceConfig( uint32 ulIndex,
+ const tConfigHeader * psConfig,
+ const tFIFOConfig * psFIFOConfig );
+extern tBoolean USBDeviceConfigAlternate( uint32 ulIndex,
+ const tConfigHeader * psConfig,
+ uint8 ucInterfaceNum,
+ uint8 ucAlternateSetting );
+extern void USBDeviceResumeTickHandler( uint32 ulIndex );
+
+/******************************************************************************
+ *
+ * Mark the end of the C bindings section for C++ compilers.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBDEVICEPRIV_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usblib.h b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usblib.h
new file mode 100644
index 000000000..0aa0595ea
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/include/usblib.h
@@ -0,0 +1,1875 @@
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/**
+ * @file usblib.h
+ *
+ * @brief Main header file for the USB Library.
+ *
+ */
+
+#ifndef __USBLIB_H__
+#define __USBLIB_H__
+
+/******************************************************************************
+ *
+ * If building with a C++ compiler, make all of the definitions in this header
+ * have a C binding.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* standard device requests -- USB_SetupDataPacket::bRequest */
+#define USB_REQUEST_GETSTATUS ( 0u )
+#define USB_REQUEST_CLEARFEATURE ( 1u )
+#define USB_REQUEST_SETFEATURE ( 3u )
+#define USB_REQUEST_SETADDRESS ( 5u )
+#define USB_REQUEST_GETDESCRIPTOR ( 6u )
+#define USB_REQUEST_SETDESCRIPTOR ( 7u )
+#define USB_REQUEST_GETCONFIGURATION ( 8u )
+#define USB_REQUEST_SETCONFIGURATION ( 9u )
+#define USB_REQUEST_GETINTERFACE ( 10u )
+#define USB_REQUEST_SETINTERFACE ( 11u )
+#define USB_REQUEST_SYNCHFRAME ( 12u )
+
+/** ***************************************************************************
+ *
+ * This is the maximum number of endpoints supported by the usblib.
+ *
+ *****************************************************************************/
+#define USBLIB_NUM_EP 16u /* Number of supported endpoints. */
+
+/******************************************************************************
+ *
+ * The following macro allows compiler-independent syntax to be used to
+ * define packed structures. A typical structure definition using these
+ * macros will look similar to the following example:
+ *
+ * #ifdef ewarm
+ * #pragma pack(1)
+ * #endif
+ *
+ * typedef struct _PackedStructName
+ * {
+ * uint32 ulFirstField;
+ * char cCharMember;
+ * uint16 usShort;
+ * }
+ * PACKED tPackedStructName;
+ *
+ * #ifdef ewarm
+ * #pragma pack()
+ * #endif
+ *
+ * The conditional blocks related to ewarm include the #pragma pack() lines
+ * only if the IAR Embedded Workbench compiler is being used. Unfortunately,
+ * it is not possible to emit a #pragma from within a macro definition so this
+ * must be done explicitly.
+ *
+ *****************************************************************************/
+#if defined( ccs ) || defined( codered ) || defined( gcc ) || defined( rvmdk ) \
+ || defined( __ARMCC_VERSION ) || defined( sourcerygxx )
+ #define PACKED __attribute__( ( packed ) )
+#elif defined( ewarm ) || defined( __IAR_SYSTEMS_ICC__ )
+ #define PACKED
+#elif( __TMS470__ )
+ #define PACKED __attribute__( ( packed ) )
+#else /* if defined( ccs ) || defined( codered ) || defined( gcc ) || defined( rvmdk ) \
+ || defined( __ARMCC_VERSION ) || defined( sourcerygxx ) */
+ #error Unrecognized COMPILER!
+#endif /* if defined( ccs ) || defined( codered ) || defined( gcc ) || defined( rvmdk ) \
+ || defined( __ARMCC_VERSION ) || defined( sourcerygxx ) */
+
+/******************************************************************************
+ *
+ * Assorted language IDs from the document "USB_LANGIDs.pdf" provided by the
+ * USB Implementers' Forum (Version 1.0).
+ *
+ *****************************************************************************/
+#define USB_LANG_CHINESE_PRC 0x0804u /**< Chinese (PRC) */
+#define USB_LANG_CHINESE_TAIWAN 0x0404u /**< Chinese (Taiwan) */
+#define USB_LANG_EN_US 0x0409u /**< English (United States) */
+#define USB_LANG_EN_UK 0x0809u /**< English (United Kingdom) */
+#define USB_LANG_EN_AUS 0x0C09u /**< English (Australia) */
+#define USB_LANG_EN_CA 0x1009u /**< English (Canada) */
+#define USB_LANG_EN_NZ 0x1409u /**< English (New Zealand) */
+#define USB_LANG_FRENCH 0x040Cu /**< French (Standard) */
+#define USB_LANG_GERMAN 0x0407u /**< German (Standard) */
+#define USB_LANG_HINDI 0x0439u /**< Hindi */
+#define USB_LANG_ITALIAN 0x0410u /**< Italian (Standard) */
+#define USB_LANG_JAPANESE 0x0411u /**< Japanese */
+#define USB_LANG_KOREAN 0x0412u /**< Korean */
+#define USB_LANG_ES_TRAD 0x040Au /**< Spanish (Traditional) */
+#define USB_LANG_ES_MODERN 0x0C0Au /**< Spanish (Modern) */
+#define USB_LANG_SWAHILI 0x0441u /**< Swahili (Kenya) */
+#define USB_LANG_URDU_IN 0x0820u /**< Urdu (India) */
+#define USB_LANG_URDU_PK 0x0420u /**< Urdu (Pakistan) */
+
+/** ***************************************************************************
+ *
+ * @ingroup usbchap9_src
+ * @{
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Note:
+ *
+ * Structure definitions which are derived directly from the USB specification
+ * use field names from the specification. Since a somewhat different version
+ * of Hungarian prefix notation is used from the Stellaris standard, beware of
+ * making assumptions about field sizes based on the field prefix when using
+ * these structures. Of particular note is the difference in the meaning of
+ * the 'i' prefix. In USB structures, this indicates a single byte index
+ * whereas in Stellaris code, this is a 32 bit integer.
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * All structures defined in this section of the header require byte packing of
+ * fields. This is usually accomplished using the PACKED macro but, for IAR
+ * Embedded Workbench, this requires a pragma.
+ *
+ *****************************************************************************/
+#if defined( ewarm ) || defined( __IAR_SYSTEMS_ICC__ )
+ #pragma pack( 1 )
+#endif
+
+/******************************************************************************
+ *
+ * Definitions related to standard USB device requests (sections 9.3 & 9.4)
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The standard USB request header as defined in section 9.3 of the
+ * USB 2.0 specification.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief Determines the type and direction of the request.
+ */
+ uint8 bmRequestType;
+
+ /**
+ * @brief Identifies the specific request being made.
+ */
+ uint8 bRequest;
+
+ /**
+ * @brief Word-sized field that varies according to the request.
+ */
+ uint16 wValue;
+
+ /**
+ * @brief Word-sized field that varies according to the request; typically used
+ * to pass an index or offset.
+ */
+ uint16 wIndex;
+
+ /**
+ * @brief The number of bytes to transfer if there is a data stage to the
+ * request.
+ */
+ uint16 wLength;
+} PACKED tUSBRequest;
+
+/******************************************************************************
+ *
+ * The following defines are used with the bmRequestType member of tUSBRequest.
+ *
+ * Request types have 3 bit fields:
+ * 4:0 - Is the recipient type.
+ * 6:5 - Is the request type.
+ * 7 - Is the direction of the request.
+ *
+ *****************************************************************************/
+#define USB_RTYPE_DIR_IN 0x80u
+#define USB_RTYPE_DIR_OUT 0x00u
+
+#define USB_RTYPE_TYPE_M 0x60u
+#define USB_RTYPE_VENDOR 0x40u
+#define USB_RTYPE_CLASS 0x20u
+#define USB_RTYPE_STANDARD 0x00u
+
+#define USB_RTYPE_RECIPIENT_M 0x1fu
+#define USB_RTYPE_OTHER 0x03u
+#define USB_RTYPE_ENDPOINT 0x02u
+#define USB_RTYPE_INTERFACE 0x01u
+#define USB_RTYPE_DEVICE 0x00u
+
+/******************************************************************************
+ *
+ * Standard USB requests IDs used in the bRequest field of tUSBRequest.
+ *
+ *****************************************************************************/
+#define USBREQ_GET_STATUS 0x00u
+#define USBREQ_CLEAR_FEATURE 0x01u
+#define USBREQ_SET_FEATURE 0x03u
+#define USBREQ_SET_ADDRESS 0x05u
+#define USBREQ_GET_DESCRIPTOR 0x06u
+#define USBREQ_SET_DESCRIPTOR 0x07u
+#define USBREQ_GET_CONFIG 0x08u
+#define USBREQ_SET_CONFIG 0x09u
+#define USBREQ_GET_INTERFACE 0x0au
+#define USBREQ_SET_INTERFACE 0x0bu
+#define USBREQ_SYNC_FRAME 0x0cu
+
+#define USBREQ_COUNT ( USBREQ_SYNC_FRAME + 1u )
+
+/******************************************************************************
+ *
+ * Data returned from a USBREQ_GET_STATUS request to a device.
+ *
+ *****************************************************************************/
+#define USB_STATUS_SELF_PWR 0x0001u /**< Currently self powered. */
+#define USB_STATUS_BUS_PWR 0x0000u /**< Currently bus-powered. */
+#define USB_STATUS_PWR_M 0x0001u /**< Mask for power mode. */
+#define USB_STATUS_REMOTE_WAKE \
+ 0x0002u /**< Remote wake-up is currently \
+ * enabled. */
+
+/******************************************************************************
+ *
+ * Feature Selectors (tUSBRequest.wValue) passed on USBREQ_CLEAR_FEATURE and
+ * USBREQ_SET_FEATURE.
+ *
+ *****************************************************************************/
+#define USB_FEATURE_EP_HALT 0x0000u /**< Endpoint halt feature. */
+#define USB_FEATURE_REMOTE_WAKE 0x0001u /**< Remote wake feature, device only. */
+#define USB_FEATURE_TEST_MODE 0x0002u /**< Test mode */
+
+/******************************************************************************
+ *
+ * Endpoint Selectors (tUSBRequest.wIndex) passed on USBREQ_CLEAR_FEATURE,
+ * USBREQ_SET_FEATURE and USBREQ_GET_STATUS.
+ *
+ *****************************************************************************/
+#define USB_REQ_EP_NUM_M 0x007Fu
+#define USB_REQ_EP_DIR_M 0x0080u
+#define USB_REQ_EP_DIR_IN 0x0080u
+#define USB_REQ_EP_DIR_OUT 0x0000u
+
+/******************************************************************************
+ *
+ * Standard USB descriptor types. These values are passed in the upper bytes
+ * of tUSBRequest.wValue on USBREQ_GET_DESCRIPTOR and also appear in the
+ * bDescriptorType field of standard USB descriptors.
+ *
+ *****************************************************************************/
+#define USB_DTYPE_DEVICE 1u
+#define USB_DTYPE_CONFIGURATION 2u
+#define USB_DTYPE_STRING 3u
+#define USB_DTYPE_INTERFACE 4u
+#define USB_DTYPE_ENDPOINT 5u
+#define USB_DTYPE_DEVICE_QUAL 6u
+#define USB_DTYPE_OSPEED_CONF 7u
+#define USB_DTYPE_INTERFACE_PWR 8u
+#define USB_DTYPE_OTG 9u
+#define USB_DTYPE_INTERFACE_ASC 11u
+#define USB_DTYPE_CS_INTERFACE 36u
+
+/******************************************************************************
+ *
+ * Definitions related to USB descriptors (sections 9.5 & 9.6)
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief This structure describes a generic descriptor header. These
+ * fields are to be found at the beginning of all valid USB
+ * descriptors.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor (including this length byte) expressed
+ * in bytes.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type identifier of the descriptor whose information follows.
+ * For standard descriptors, this field could contain, for example,
+ * USB_DTYPE_DEVICE to identify a device descriptor or
+ * USB_DTYPE_ENDPOINT to identify an endpoint descriptor.
+ */
+ uint8 bDescriptorType;
+} PACKED tDescriptorHeader;
+
+/** ***************************************************************************
+ *
+ * @brief This structure describes the USB device descriptor as defined in USB
+ * 2.0 specification section 9.6.1.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. All device descriptors
+ * are 18 bytes long.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For a device descriptor, this will
+ * be USB_DTYPE_DEVICE (1).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The USB Specification Release Number in BCD format.
+ * For USB 2.0, this will be 0x0200.
+ */
+ uint16 bcdUSB;
+
+ /**
+ * @brief The device class code.
+ */
+ uint8 bDeviceClass;
+
+ /**
+ * @brief The device subclass code. This value qualifies the value
+ * found in the bDeviceClass field.
+ */
+ uint8 bDeviceSubClass;
+
+ /**
+ * @brief The device protocol code. This value is qualified by the
+ * values of bDeviceClass and bDeviceSubClass.
+ */
+ uint8 bDeviceProtocol;
+
+ /**
+ * @brief The maximum packet size for endpoint zero. Valid values
+ * are 8, 16, 32 and 64.
+ */
+ uint8 bMaxPacketSize0;
+
+ /**
+ * @brief The device Vendor ID (VID) as assigned by the USB-IF.
+ */
+ uint16 idVendor;
+
+ /**
+ * @brief The device Product ID (PID) as assigned by the manufacturer.
+ */
+ uint16 idProduct;
+
+ /**
+ * @brief The device release number in BCD format.
+ */
+ uint16 bcdDevice;
+
+ /**
+ * @brief The index of a string descriptor describing the manufacturer.
+ */
+ uint8 iManufacturer;
+
+ /**
+ * @brief The index of a string descriptor describing the product.
+ */
+ uint8 iProduct;
+
+ /**
+ * @brief The index of a string descriptor describing the device's serial
+ * number.
+ */
+ uint8 iSerialNumber;
+
+ /**
+ * @brief The number of possible configurations offered by the device.
+ * This field indicates the number of distinct configuration
+ * descriptors that the device offers.
+ */
+ uint8 bNumConfigurations;
+} PACKED tDeviceDescriptor;
+
+/******************************************************************************
+ *
+ * USB Device Class codes used in the tDeviceDescriptor.bDeviceClass field.
+ * Definitions for the bDeviceSubClass and bDeviceProtocol fields are device
+ * specific and can be found in the appropriate device class header files.
+ *
+ *****************************************************************************/
+#define USB_CLASS_DEVICE 0x00u
+#define USB_CLASS_AUDIO 0x01u
+#define USB_CLASS_CDC 0x02u
+#define USB_CLASS_HID 0x03u
+#define USB_CLASS_PHYSICAL 0x05u
+#define USB_CLASS_IMAGE 0x06u
+#define USB_CLASS_PRINTER 0x07u
+#define USB_CLASS_MASS_STORAGE 0x08u
+#define USB_CLASS_HUB 0x09u
+#define USB_CLASS_CDC_DATA 0x0au
+#define USB_CLASS_SMART_CARD 0x0bu
+#define USB_CLASS_SECURITY 0x0du
+#define USB_CLASS_VIDEO 0x0eu
+#define USB_CLASS_HEALTHCARE 0x0fu
+#define USB_CLASS_DIAG_DEVICE 0xdcu
+#define USB_CLASS_WIRELESS 0xe0u
+#define USB_CLASS_MISC 0xefu
+#define USB_CLASS_APP_SPECIFIC 0xfeu
+#define USB_CLASS_VEND_SPECIFIC 0xffu
+#define USB_CLASS_EVENTS 0xffffffffU
+
+/******************************************************************************
+ *
+ * Generic values for undefined subclass and protocol.
+ *
+ *****************************************************************************/
+#define USB_SUBCLASS_UNDEFINED 0x00u
+#define USB_PROTOCOL_UNDEFINED 0x00u
+
+/******************************************************************************
+ *
+ * The following are the miscellaneous subclass values.
+ *
+ *****************************************************************************/
+#define USB_MISC_SUBCLASS_SYNC 0x01u
+#define USB_MISC_SUBCLASS_COMMON 0x02u
+
+/******************************************************************************
+ *
+ * These following are miscellaneous protocol values.
+ *
+ *****************************************************************************/
+#define USB_MISC_PROTOCOL_IAD 0x01u
+
+/** ***************************************************************************
+ *
+ * @brief This structure describes the USB device qualifier descriptor as
+ * defined in the USB 2.0 specification, section 9.6.2.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. All device qualifier
+ * descriptors are 10 bytes long.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For a device descriptor, this will
+ * be USB_DTYPE_DEVICE_QUAL (6).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The USB Specification Release Number in BCD format.
+ * For USB 2.0, this will be 0x0200.
+ */
+ uint16 bcdUSB;
+
+ /**
+ * @brief The device class code.
+ */
+ uint8 bDeviceClass;
+
+ /**
+ * @brief The device subclass code. This value qualifies the value
+ * found in the bDeviceClass field.
+ */
+ uint8 bDeviceSubClass;
+
+ /**
+ * @brief The device protocol code. This value is qualified by the
+ * values of bDeviceClass and bDeviceSubClass.
+ */
+ uint8 bDeviceProtocol;
+
+ /**
+ * @brief The maximum packet size for endpoint zero when operating at
+ * a speed other than high speed.
+ */
+ uint8 bMaxPacketSize0;
+
+ /**
+ * @brief The number of other-speed configurations supported.
+ */
+ uint8 bNumConfigurations;
+
+ /**
+ * @brief Reserved for future use. Must be set to zero.
+ */
+ uint8 bReserved;
+} PACKED tDeviceQualifierDescriptor;
+
+/** ***************************************************************************
+ *
+ * This structure describes the USB configuration descriptor as defined in
+ * USB 2.0 specification section 9.6.3. This structure also applies to the
+ * USB other speed configuration descriptor defined in section 9.6.4.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. All configuration
+ * descriptors are 9 bytes long.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For a configuration descriptor,
+ * this will be USB_DTYPE_CONFIGURATION (2).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The total length of data returned for this configuration.
+ * This includes the combined length of all descriptors
+ * (configuration, interface, endpoint and class- or
+ * vendor-specific) returned for this configuration.
+ */
+ uint16 wTotalLength;
+
+ /**
+ * @brief The number of interface supported by this configuration.
+ */
+ uint8 bNumInterfaces;
+
+ /**
+ * @brief The value used as an argument to the SetConfiguration standard
+ * request to select this configuration.
+ */
+ uint8 bConfigurationValue;
+
+ /**
+ * @brief The index of a string descriptor describing this configuration.
+ */
+ uint8 iConfiguration;
+
+ /**
+ * @brief Attributes of this configuration.
+ */
+ uint8 bmAttributes;
+
+ /**
+ * @brief The maximum power consumption of the USB device from the bus
+ * in this configuration when the device is fully operational.
+ * This is expressed in units of 2mA so, for example,
+ * 100 represents 200mA.
+ */
+ uint8 bMaxPower;
+} PACKED tConfigDescriptor;
+
+/******************************************************************************
+ *
+ * Flags used in constructing the value assigned to the field
+ * tConfigDescriptor.bmAttributes. Note that bit 7 is reserved and must be set
+ * to 1.
+ *
+ *****************************************************************************/
+#define USB_CONF_ATTR_PWR_M 0xC0u
+
+#define USB_CONF_ATTR_SELF_PWR 0xC0u
+#define USB_CONF_ATTR_BUS_PWR 0x80u
+#define USB_CONF_ATTR_RWAKE 0xA0u
+
+/** ***************************************************************************
+ *
+ * This structure describes the USB interface descriptor as defined in USB
+ * 2.0 specification section 9.6.5.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. All interface
+ * descriptors are 9 bytes long.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For an interface descriptor, this
+ * will be USB_DTYPE_INTERFACE (4).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The number of this interface. This is a zero based index into
+ * the array of concurrent interfaces supported by this
+ * configuration.
+ */
+ uint8 bInterfaceNumber;
+
+ /**
+ * @brief The value used to select this alternate setting for the
+ * interface defined in bInterfaceNumber.
+ */
+ uint8 bAlternateSetting;
+
+ /**
+ * @brief The number of endpoints used by this interface (excluding
+ * endpoint zero).
+ */
+ uint8 bNumEndpoints;
+
+ /**
+ * @brief The interface class code as assigned by the USB-IF.
+ */
+ uint8 bInterfaceClass;
+
+ /**
+ * @brief The interface subclass code as assigned by the USB-IF.
+ */
+ uint8 bInterfaceSubClass;
+
+ /**
+ * @brief The interface protocol code as assigned by the USB-IF.
+ */
+ uint8 bInterfaceProtocol;
+
+ /**
+ * @brief The index of a string descriptor describing this interface.
+ */
+ uint8 iInterface;
+} PACKED tInterfaceDescriptor;
+
+/** ***************************************************************************
+ *
+ * This structure describes the USB endpoint descriptor as defined in USB
+ * 2.0 specification section 9.6.6.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. All endpoint
+ * descriptors are 7 bytes long.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For an endpoint descriptor, this
+ * will be USB_DTYPE_ENDPOINT (5).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The address of the endpoint. This field contains the endpoint
+ * number ORed with flag USB_EP_DESC_OUT or USB_EP_DESC_IN to
+ * indicate the endpoint direction.
+ */
+ uint8 bEndpointAddress;
+
+ /**
+ * @brief The endpoint transfer type, USB_EP_ATTR_CONTROL,
+ * USB_EP_ATTR_ISOC, USB_EP_ATTR_BULK or USB_EP_ATTR_INT and,
+ * if isochronous, additional flags indicating usage type and
+ * synchronization method.
+ */
+ uint8 bmAttributes;
+
+ /**
+ * @brief The maximum packet size this endpoint is capable of sending or
+ * receiving when this configuration is selected. For high speed
+ * isochronous or interrupt endpoints, bits 11 and 12 are used to
+ * pass additional information.
+ */
+ uint16 wMaxPacketSize;
+
+ /**
+ * @brief The polling interval for data transfers expressed in frames or
+ * micro frames depending upon the operating speed.
+ */
+ uint8 bInterval;
+} PACKED tEndpointDescriptor;
+
+/******************************************************************************
+ *
+ * Flags used in constructing the value assigned to the field
+ * tEndpointDescriptor.bEndpointAddress.
+ *
+ *****************************************************************************/
+#define USB_EP_DESC_OUT 0x00u
+#define USB_EP_DESC_IN 0x80u
+#define USB_EP_DESC_NUM_M 0x0fu
+
+/******************************************************************************
+ *
+ * Mask used to extract the maximum packet size (in bytes) from the
+ * wMaxPacketSize field of the endpoint descriptor.
+ *
+ *****************************************************************************/
+#define USB_EP_MAX_PACKET_COUNT_M 0x07FFu
+
+/******************************************************************************
+ *
+ * Endpoint attributes used in tEndpointDescriptor.bmAttributes.
+ *
+ *****************************************************************************/
+#define USB_EP_ATTR_CONTROL 0x00u
+#define USB_EP_ATTR_ISOC 0x01u
+#define USB_EP_ATTR_BULK 0x02u
+#define USB_EP_ATTR_INT 0x03u
+#define USB_EP_ATTR_TYPE_M 0x03u
+
+#define USB_EP_ATTR_ISOC_M 0x0cu
+#define USB_EP_ATTR_ISOC_NOSYNC 0x00u
+#define USB_EP_ATTR_ISOC_ASYNC 0x04u
+#define USB_EP_ATTR_ISOC_ADAPT 0x08u
+#define USB_EP_ATTR_ISOC_SYNC 0x0cu
+#define USB_EP_ATTR_USAGE_M 0x30u
+#define USB_EP_ATTR_USAGE_DATA 0x00u
+#define USB_EP_ATTR_USAGE_FEEDBACK 0x10u
+#define USB_EP_ATTR_USAGE_IMPFEEDBACK 0x20u
+
+/** ***************************************************************************
+ *
+ * @brief This structure describes the USB string descriptor for index 0 as
+ * defined in USB 2.0 specification section 9.6.7. Note that the
+ * number of language IDs is variable and can be determined by
+ * examining bLength. The number of language IDs present in the
+ * descriptor is given by ((bLength - 2) / 2).
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. This value will vary
+ * depending upon the number of language codes provided in the
+ * descriptor.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For a string descriptor, this will
+ * be USB_DTYPE_STRING (3).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The language code (LANGID) for the first supported language.
+ * Note that this descriptor may support multiple languages, in
+ * which case, the number of elements in the wLANGID array will
+ * increase and bLength will be updated accordingly.
+ */
+ uint16 wLANGID[ 1 ];
+} PACKED tString0Descriptor;
+
+/** ***************************************************************************
+ *
+ * @brief This structure describes the USB string descriptor for all string
+ * indexes other than 0 as defined in USB 2.0 specification
+ * section 9.6.7.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The length of this descriptor in bytes. This value will be
+ * 2 greater than the number of bytes comprising the UNICODE
+ * string that the descriptor contains.
+ */
+ uint8 bLength;
+
+ /**
+ * @brief The type of the descriptor. For a string descriptor, this will
+ * be USB_DTYPE_STRING (3).
+ */
+ uint8 bDescriptorType;
+
+ /**
+ * @brief The first byte of the UNICODE string. This string is not NULL
+ * terminated. Its length (in bytes) can be computed by
+ * subtracting 2 from the value in the bLength field.
+ */
+ uint8 bString;
+} PACKED tStringDescriptor;
+
+/** ***************************************************************************
+ *
+ * Write a 2 byte uint16 value to a USB descriptor block.
+ *
+ * @param usValue is the two byte uint16 that is to be written to
+ * the descriptor.
+ *
+ * This helper macro is used in descriptor definitions to write two-byte
+ * values. Since the configuration descriptor contains all interface and
+ * endpoint descriptors in a contiguous block of memory, these descriptors are
+ * typically defined using an array of bytes rather than as packed structures.
+ *
+ * @return Not a function.
+ *
+ *****************************************************************************/
+#define USBShort( usValue ) \
+ ( uint8_t )( ( uint16_t ) ( usValue ) & ( uint16_t ) 0x00ffU ), \
+ ( uint8_t ) ( ( uint16_t ) ( usValue ) >> 8U )
+
+/** ***************************************************************************
+ *
+ * Write a 3 byte uint32 value to a USB descriptor block.
+ *
+ * @param ulValue is the three byte unsigned value that is to be written to the
+ * descriptor.
+ *
+ * This helper macro is used in descriptor definitions to write three-byte
+ * values. Since the configuration descriptor contains all interface and
+ * endpoint descriptors in a contiguous block of memory, these descriptors are
+ * typically defined using an array of bytes rather than as packed structures.
+ *
+ * @return Not a function.
+ *
+ *****************************************************************************/
+#define USB3Byte( ulValue ) \
+ ( ulValue & 0xff ), ( ( ulValue >> 8 ) & 0xff ), ( ( ulValue >> 16 ) & 0xff )
+
+/** ***************************************************************************
+ *
+ * Write a 4 byte uint32 value to a USB descriptor block.
+ *
+ * @param ulValue is the four byte uint32 that is to be written to the
+ * descriptor.
+ *
+ * This helper macro is used in descriptor definitions to write four-byte
+ * values. Since the configuration descriptor contains all interface and
+ * endpoint descriptors in a contiguous block of memory, these descriptors are
+ * typically defined using an array of bytes rather than as packed structures.
+ *
+ * @return Not a function.
+ *
+ *****************************************************************************/
+#define USBLong( ulValue ) \
+ ( ulValue & 0xff ), ( ( ulValue >> 8 ) & 0xff ), ( ( ulValue >> 16 ) & 0xff ), \
+ ( ( ulValue >> 24 ) & 0xff )
+
+/** ***************************************************************************
+ *
+ * Traverse to the next USB descriptor in a block.
+ *
+ * @param ptr points to the first byte of a descriptor in a block of
+ * USB descriptors.
+ *
+ * This macro aids in traversing lists of descriptors by returning a pointer
+ * to the next descriptor in the list given a pointer to the current one.
+ *
+ * @return Returns a pointer to the next descriptor in the block following
+ * @e ptr.
+ *
+ *****************************************************************************/
+#define NEXT_USB_DESCRIPTOR( ptr ) \
+ ( tDescriptorHeader * ) ( ( ( uint8 * ) ( ptr ) ) + ( ptr )->bLength )
+
+/******************************************************************************
+ *
+ * Return to default packing when using the IAR Embedded Workbench compiler.
+ *
+ *****************************************************************************/
+#if defined( ewarm ) || defined( __IAR_SYSTEMS_ICC__ )
+ #pragma pack()
+#endif
+
+/** ***************************************************************************
+ *
+ * Close the usbchap9_src Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @ingroup device_api
+ * @{
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief Function prototype for any standard USB request.
+ *
+ *****************************************************************************/
+typedef void ( *tStdRequest )( void * pvInstance, tUSBRequest * pUSBRequest );
+
+/** ***************************************************************************
+ *
+ * @brief Data callback for receiving data from an endpoint.
+ *
+ *****************************************************************************/
+typedef void ( *tInfoCallback )( void * pvInstance, uint32 ulInfo );
+
+/** ***************************************************************************
+ *
+ * @brief Callback made to indicate that an interface alternate setting
+ * change has occurred.
+ *
+ *****************************************************************************/
+typedef void ( *tInterfaceCallback )( void * pvInstance,
+ uint8 ucInterfaceNum,
+ uint8 ucAlternateSetting );
+
+/** ***************************************************************************
+ *
+ * @brief Generic interrupt handler callbacks.
+ *
+ *****************************************************************************/
+typedef void ( *tUSBIntHandler )( void * pvInstance );
+
+/** ***************************************************************************
+ *
+ * @brief Interrupt handler callbacks that have status information.
+ *
+ *****************************************************************************/
+typedef void ( *tUSBEPIntHandler )( void * pvInstance, uint32 ulStatus );
+
+/** ***************************************************************************
+ *
+ * @brief Generic handler callbacks that are used when the callers needs to
+ * call into an instance of class.
+ *
+ *****************************************************************************/
+typedef void ( *tUSBDeviceHandler )( void * pvInstance,
+ uint32 ulRequest,
+ void * pvRequestData );
+
+/** ***************************************************************************
+ *
+ * @brief USB event handler functions used during enumeration and operation
+ * of the device stack.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief This callback is made whenever the USB host requests a
+ * non-standard descriptor from the device.
+ */
+ tStdRequest pfnGetDescriptor;
+
+ /**
+ * @brief This callback is made whenever the USB host makes a
+ * non-standard request.
+ */
+ tStdRequest pfnRequestHandler;
+
+ /**
+ * @brief This callback is made in response to a SetInterface request
+ * from the host.
+ */
+ tInterfaceCallback pfnInterfaceChange;
+
+ /**
+ * @brief This callback is made in response to a SetConfiguration
+ * request from the host.
+ */
+ tInfoCallback pfnConfigChange;
+
+ /**
+ * @brief This callback is made when data has been received following
+ * to a call to USBDCDRequestDataEP0.
+ */
+ tInfoCallback pfnDataReceived;
+
+ /**
+ * @brief This callback is made when data has been transmitted following
+ * a call to USBDCDSendDataEP0.
+ */
+ tInfoCallback pfnDataSent;
+
+ /**
+ * @brief This callback is made when a USB reset is detected.
+ */
+ tUSBIntHandler pfnResetHandler;
+
+ /**
+ * @brief This callback is made when the bus has been inactive long
+ * enough to trigger a suspend condition.
+ */
+ tUSBIntHandler pfnSuspendHandler;
+
+ /**
+ * @brief This is called when resume signaling is detected.
+ */
+ tUSBIntHandler pfnResumeHandler;
+
+ /**
+ * @brief This callback is made when the device is disconnected from
+ * the USB bus.
+ */
+ tUSBIntHandler pfnDisconnectHandler;
+
+ /**
+ * @brief This callback is made to inform the device of activity on
+ * all endpoints other than endpoint zero.
+ */
+ tUSBEPIntHandler pfnEndpointHandler;
+
+ /**
+ * @brief This generic handler is provided to allow requests based on
+ * a given instance to be passed into a device. This is commonly
+ * used by a top level composite device that is using multiple
+ * instances of a class.
+ */
+ tUSBDeviceHandler pfnDeviceHandler;
+} tCustomHandlers;
+
+/** ***************************************************************************
+ *
+ * @brief This structure defines how a given endpoint's FIFO is configured in
+ * relation to the maximum packet size for the endpoint as specified
+ * in the endpoint descriptor.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The multiplier to apply to an endpoint's maximum packet size
+ * when configuring the FIFO for that endpoint. For example,
+ * setting this value to 2 will result in a 128 byte FIFO being
+ * configured if bDoubleBuffer is FALSE and the associated
+ * endpoint is set to use a 64 byte maximum packet size.
+ */
+ uint8 cMultiplier;
+
+ /**
+ * @brief This field indicates whether to configure an endpoint's FIFO
+ * to be double- or single-buffered. If TRUE, a double-buffered
+ * FIFO is created and the amount of required FIFO storage is
+ * multiplied by two.
+ */
+ tBoolean bDoubleBuffer;
+
+ /**
+ * @brief This field defines endpoint mode flags which cannot be deduced
+ * from the configuration descriptor, namely any in the set
+ * USB_EP_AUTO_xxx or USB_EP_DMA_MODE_x. USBDCDConfig adds these
+ * flags to the endpoint mode and direction determined from the
+ * config descriptor before it configures the endpoint using a
+ * call to USBDevEndpointConfigSet().
+ */
+ uint16 usEPFlags;
+} tFIFOEntry;
+
+/** ***************************************************************************
+ *
+ * @brief This structure defines endpoint and FIFO configuration information
+ * for all endpoints that the device wishes to use. This information
+ * cannot be determined by examining the USB configuration descriptor
+ * and is provided to USBDCDConfig by the application to allow the USB
+ * controller endpoints to be correctly configured.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief An array containing one FIFO entry for each of the IN
+ * endpoints. Note that endpoint 0 is configured and managed by
+ * the USB device stack so is excluded from this array. The
+ * index 0 entry of the array corresponds to endpoint 1,
+ * index 1 to endpoint 2, etc.
+ */
+ tFIFOEntry sIn[ USBLIB_NUM_EP - 1 ];
+
+ /**
+ * @brief An array containing one FIFO entry for each of the OUT
+ * endpoints. Note that endpoint 0 is configured and managed by
+ * the USB device stack so is excluded from this array.
+ * The index 0 entry of the array corresponds to endpoint 1,
+ * index 1 to endpoint 2, etc.
+ */
+ tFIFOEntry sOut[ USBLIB_NUM_EP - 1 ];
+} tFIFOConfig;
+
+/** ***************************************************************************
+ *
+ * @brief This structure defines a contiguous block of data which contains a
+ * group of descriptors that form part of a configuration descriptor
+ * for a device. It is assumed that a config section contains only
+ * whole descriptors. It is not valid to split a single descriptor
+ * across multiple sections.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The number of bytes of descriptor data pointed to by pucData.
+ */
+ uint8 ucSize;
+
+ /**
+ * @brief A pointer to a block of data containing an integral number of
+ * SB descriptors which form part of a larger configuration
+ * descriptor.
+ */
+ const uint8 * pucData;
+} tConfigSection;
+
+/** ***************************************************************************
+ *
+ * @brief This is the top level structure defining a USB device configuration
+ * descriptor. A configuration descriptor contains a collection of
+ * device-specific descriptors in addition to the basic config,
+ * interface and endpoint descriptors. To allow flexibility in
+ * constructing the configuration, the descriptor is described in
+ * terms of a list of data blocks. The first block must contain the
+ * configuration descriptor itself and the following blocks are
+ * appended to this in order to produce the full descriptor sent to
+ * the host in response to a GetDescriptor request for the
+ * configuration descriptor.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The number of sections comprising the full descriptor for this
+ * configuration.
+ */
+ uint8 ucNumSections;
+
+ /**
+ * @brief A pointer to an array of ucNumSections section pointers which
+ * must be concatenated to form the configuration descriptor.
+ */
+ const tConfigSection * const * psSections;
+} tConfigHeader;
+
+/** ***************************************************************************
+ *
+ * @brief This structure is passed to the USB library on a call to USBDCDInit
+ * and provides the library with information about the device that the
+ * application is implementing. It contains functions pointers for
+ * the various USB event handlers and pointers to each of the standard
+ * device descriptors.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief A pointer to a structure containing pointers to event handler
+ * functions provided by the client to support the operation of
+ * this device.
+ */
+ tCustomHandlers sCallbacks;
+
+ /**
+ * @brief A pointer to the device descriptor for this device.
+ */
+ const uint8 * pDeviceDescriptor;
+
+ /**
+ * @brief A pointer to an array of configuration descriptor pointers.
+ * Each entry in the array corresponds to one configuration that
+ * the device may be set to use by the USB host. The number of
+ * entries in the array must match the bNumConfigurations value
+ * in the device descriptor array, pDeviceDescriptor.
+ */
+ const tConfigHeader * const * ppConfigDescriptors;
+
+ /**
+ * @brief A pointer to the string descriptor array for this device.
+ * This array must be arranged as follows:
+ *
+ * - [0] - Standard descriptor containing supported language codes.
+ * - [1] - String 1 for the first language listed in descriptor 0.
+ * - [2] - String 2 for the first language listed in descriptor 0.
+ * - ...
+ * - [n] - String n for the first language listed in descriptor 0.
+ * - [n+1] - String 1 for the second language listed in descriptor 0.
+ * - ...
+ * - [2n] - String n for the second language listed in descriptor 0.
+ * - [2n+1]- String 1 for the third language listed in descriptor 0.
+ * - ...
+ * - [3n] - String n for the third language listed in descriptor 0.
+ *
+ * and so on.
+ */
+ const uint8 * const * ppStringDescriptors;
+
+ /**
+ * @brief The total number of descriptors provided in the ppStringDescriptors
+ * array.
+ */
+ uint32 ulNumStringDescriptors;
+
+ /**
+ * @brief A structure defining how the USB controller FIFO is to be
+ * partitioned between the various endpoints. This member can be
+ * set to point to g_sUSBDefaultFIFOConfig if the default FIFO
+ * configuration is acceptable. This configuration sets each
+ * endpoint FIFO to be single buffered and sized to hold the
+ * maximum packet size for the endpoint.
+ */
+ const tFIFOConfig * psFIFOConfig;
+
+ /**
+ * @brief This value will be passed back to all call back functions so
+ * that they have access to individual instance data based on the
+ * this pointer.
+ */
+ void * pvInstance;
+} tDeviceInfo;
+
+/** ***************************************************************************
+ *
+ * Close the Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @ingroup general_usblib_api
+ * @{
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * USB descriptor parsing functions found in usbdesc.c
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief The USB_DESC_ANY label is used as a wild card in several of the
+ * descriptor parsing APIs to determine whether or not particular
+ * search criteria should be ignored.
+ *
+ *****************************************************************************/
+#define USB_DESC_ANY 0xFFFFFFFFu
+
+extern uint32 USBDescGetNum( tDescriptorHeader * psDesc, uint32 ulSize, uint32 ulType );
+extern tDescriptorHeader * USBDescGet( tDescriptorHeader * psDesc,
+ uint32 ulSize,
+ uint32 ulType,
+ uint32 ulIndex );
+extern uint32 USBDescGetNumAlternateInterfaces( tConfigDescriptor * psConfig,
+ uint8 ucInterfaceNumber );
+extern tInterfaceDescriptor * USBDescGetInterface( tConfigDescriptor * psConfig,
+ uint32 ulIndex,
+ uint32 ulAltCfg );
+extern tEndpointDescriptor * USBDescGetInterfaceEndpoint(
+ tInterfaceDescriptor * psInterface,
+ uint32 ulIndex,
+ uint32 ulSize );
+
+/** ***************************************************************************
+ *
+ * The operating mode required by the USB library client. This type is used
+ * by applications which wish to be able to switch between host and device
+ * modes by calling the USBStackModeSet() API.
+ *
+ *****************************************************************************/
+typedef enum
+{
+ /**
+ * @brief The application wishes to operate as a USB device.
+ */
+ USB_MODE_DEVICE = 0,
+
+ /**
+ * @brief The application wishes to operate as a USB host.
+ */
+ USB_MODE_HOST,
+
+ /**
+ * @brief The application wishes to operate as both a host and device
+ * using On-The-Go protocols to negotiate.
+ */
+ USB_MODE_OTG,
+
+ /**
+ * @brief A marker indicating that no USB mode has yet been set by the
+ * application.
+ */
+ USB_MODE_NONE
+} tUSBMode;
+
+/** ***************************************************************************
+ *
+ * A pointer to a USB mode callback function. This function is called by the
+ * USB library to indicate to the application which operating mode it should
+ * use, host or device.
+ *
+ *****************************************************************************/
+typedef void ( *tUSBModeCallback )( uint32 ulIndex, tUSBMode eMode );
+
+/** ***************************************************************************
+ *
+ * Mode selection and dual mode interrupt steering functions.
+ *
+ *****************************************************************************/
+extern void USBStackModeSet( uint32 ulIndex,
+ tUSBMode eUSBMode,
+ tUSBModeCallback pfnCallback );
+extern void USBDualModeInit( uint32 ulIndex );
+extern void USBDualModeTerm( uint32 ulIndex );
+extern void USBOTGMain( uint32 ulMsTicks );
+extern void USBOTGPollRate( uint32 ulIndex, uint32 ulPollRate );
+extern void USBOTGModeInit( uint32 ulIndex,
+ uint32 ulPollRate,
+ void * pHostData,
+ uint32 ulHostDataSize );
+extern void USBOTGModeTerm( uint32 ulIndex );
+extern void USB0OTGModeIntHandler( void );
+extern void USB0DualModeIntHandler( void );
+
+/** ***************************************************************************
+ *
+ * USB callback function.
+ *
+ * @param pvCBData is the callback pointer associated with the instance
+ * generating the callback. This is a value provided by the client during
+ * initialization of the instance making the callback.
+ * @param ulEvent is the identifier of the asynchronous event which is being
+ * notified to the client.
+ * @param ulMsgParam is an event-specific parameter.
+ * @param pvMsgData is an event-specific data pointer.
+ *
+ * A function pointer provided to the USB layer by the application
+ * which will be called to notify it of all asynchronous events relating to
+ * data transmission or reception. This callback is used by device class
+ * drivers and host pipe functions.
+ *
+ * @return Returns an event-dependent value.
+ *
+ *****************************************************************************/
+typedef uint32 ( *tUSBCallback )( void * pvCBData,
+ uint32 ulEvent,
+ uint32 ulMsgParam,
+ void * pvMsgData );
+
+/** ***************************************************************************
+ *
+ * Base identifiers for groups of USB events. These are used by both the
+ * device class drivers and host layer.
+ *
+ * USB_CLASS_EVENT_BASE is the lowest identifier that should be used for
+ * a class-specific event. Individual event bases are defined for each
+ * of the supported device class drivers. Events with IDs between
+ * USB_EVENT_BASE and USB_CLASS_EVENT_BASE are reserved for stack use.
+ *
+ *****************************************************************************/
+#define USB_EVENT_BASE 0x0000u
+#define USB_CLASS_EVENT_BASE 0x8000u
+
+/** ***************************************************************************
+ *
+ * Event base identifiers for the various device classes supported in host
+ * and device modes.
+ * The first 0x800 values of a range are reserved for the device specific
+ * messages and the second 0x800 values of a range are used for the host
+ * specific messages for a given class.
+ *
+ *****************************************************************************/
+#define USBD_CDC_EVENT_BASE ( USB_CLASS_EVENT_BASE + 0u )
+#define USBD_HID_EVENT_BASE ( USB_CLASS_EVENT_BASE + 0x1000u )
+#define USBD_HID_KEYB_EVENT_BASE ( USBD_HID_EVENT_BASE + 0x100u )
+#define USBD_BULK_EVENT_BASE ( USB_CLASS_EVENT_BASE + 0x2000u )
+#define USBD_MSC_EVENT_BASE ( USB_CLASS_EVENT_BASE + 0x3000u )
+#define USBD_AUDIO_EVENT_BASE ( USB_CLASS_EVENT_BASE + 0x4000u )
+
+#define USBH_CDC_EVENT_BASE ( USBD_CDC_EVENT_BASE + 0x800u )
+#define USBH_HID_EVENT_BASE ( USBD_HID_EVENT_BASE + 0x800u )
+#define USBH_BULK_EVENT_BASE ( USBD_BULK_EVENT_BASE + 0x800u )
+#define USBH_MSC_EVENT_BASE ( USBD_MSC_EVENT_BASE + 0x800u )
+#define USBH_AUDIO_EVENT_BASE ( USBD_AUDIO_EVENT_BASE + 0x800u )
+
+/** ***************************************************************************
+ *
+ * General events supported by device classes and host pipes.
+ *
+ *****************************************************************************/
+
+/**
+ * @brief The device is now attached to a USB host and ready to begin sending
+ * and receiving data (used by device classes only).
+ */
+#define USB_EVENT_CONNECTED ( USB_EVENT_BASE + 0u )
+
+/**
+ * @brief The device has been disconnected from the USB host (used by device
+ * classes only).
+ *
+ * Note: Due to a hardware erratum in revision A of LM3S3748, this
+ * event is not posted to self-powered USB devices when they are disconnected
+ * from the USB host.
+ */
+#define USB_EVENT_DISCONNECTED ( USB_EVENT_BASE + 1u )
+
+/**
+ * @brief Data has been received and is in the buffer provided.
+ */
+#define USB_EVENT_RX_AVAILABLE ( USB_EVENT_BASE + 2u )
+
+/**
+ * @brief This event is sent by a lower layer to inquire about the amount of
+ * unprocessed data buffered in the layers above. It is used in
+ * cases where a low level driver needs to ensure that all preceding
+ * data has been processed prior to performing some action or making
+ * some notification. Clients receiving this event should return the
+ * number of bytes of data that are unprocessed or 0 if no outstanding
+ * data remains.
+ */
+#define USB_EVENT_DATA_REMAINING ( USB_EVENT_BASE + 3u )
+
+/**
+ * @brief This event is sent by a lower layer supporting DMA to request a
+ * buffer in which the next received packet may be stored.
+ * The \e ulMsgValue parameter indicates the maximum size of packet
+ * that can be received in this channel and \e pvMsgData points to
+ * storage which should be written with the returned buffer pointer.
+ * The return value from the callback should be the size of the buffer
+ * allocated (which may be less than the maximum size passed in
+ * \e ulMsgValue if the client knows that fewer bytes are expected
+ * to be received) or 0 if no buffer is being returned.
+ */
+#define USB_EVENT_REQUEST_BUFFER ( USB_EVENT_BASE + 4u )
+
+/**
+ * @brief Data has been sent and acknowledged. If this event is received via
+ * the USB buffer callback, the \e ulMsgValue parameter indicates the
+ * number of bytes from the transmit buffer that have been successfully
+ * transmitted and acknowledged.
+ */
+#define USB_EVENT_TX_COMPLETE ( USB_EVENT_BASE + 5u )
+
+/**
+ * @brief An error has been reported on the channel or pipe. The
+ * \e ulMsgValue parameter indicates the source(s) of the error and
+ * is the logical OR combination of "USBERR_" flags defined below.
+ */
+#define USB_EVENT_ERROR ( USB_EVENT_BASE + 6u )
+
+/**
+ * @brief The bus has entered suspend state.
+ */
+#define USB_EVENT_SUSPEND ( USB_EVENT_BASE + 7u )
+
+/**
+ * @brief The bus has left suspend state.
+ */
+#define USB_EVENT_RESUME ( USB_EVENT_BASE + 8u )
+
+/**
+ * @brief A scheduler event has occurred.
+ */
+#define USB_EVENT_SCHEDULER ( USB_EVENT_BASE + 9u )
+
+/**
+ * @brief A device or host has detected a stall condition.
+ */
+#define USB_EVENT_STALL ( USB_EVENT_BASE + 10u )
+
+/**
+ * @brief The host detected a power fault condition.
+ */
+#define USB_EVENT_POWER_FAULT ( USB_EVENT_BASE + 11u )
+
+/**
+ * @brief The controller has detected a A-Side cable and needs power applied.
+ * This is only generated on OTG parts if automatic power control is
+ * disabled.
+ */
+#define USB_EVENT_POWER_ENABLE ( USB_EVENT_BASE + 12u )
+
+/**
+ * @brief The controller needs power removed, This is only generated on OTG
+ * parts if automatic power control is disabled.
+ */
+#define USB_EVENT_POWER_DISABLE ( USB_EVENT_BASE + 13u )
+
+/**
+ * @brief Used with pfnDeviceHandler handler function is classes to indicate
+ * changes in the interface number by a class outside the class being
+ * accessed. Typically this is when composite device class is in use.
+ *
+ * The \e pvInstance value should point to an instance of the device being
+ * accessed.
+ *
+ * The \e ulRequest should be USB_EVENT_COMP_IFACE_CHANGE.
+ *
+ * The \e pvRequestData should point to a two byte array where the first value
+ * is the old interface number and the second is the new interface number.
+ */
+#define USB_EVENT_COMP_IFACE_CHANGE ( USB_EVENT_BASE + 14u )
+
+/**
+ * @brief Used with pfnDeviceHandler handler function is classes to indicate
+ * changes in endpoint number by a class outside the class being
+ * accessed. Typically this is when composite device class is in use.
+ *
+ * The \e pvInstance value should point to an instance of the device being
+ * accessed.
+ *
+ * The \e ulRequest should be USB_EVENT_COMP_EP_CHANGE.
+ *
+ * The \e pvRequestData should point to a two byte array where the first value
+ * is the old endpoint number and the second is the new endpoint number. The
+ * endpoint numbers should be exactly as USB specification defines them and
+ * bit 7 set indicates an IN endpoint and bit 7 clear indicates an OUT
+ * endpoint.
+ */
+#define USB_EVENT_COMP_EP_CHANGE ( USB_EVENT_BASE + 15u )
+
+/**
+ * @brief Used with pfnDeviceHandler handler function is classes to indicate
+ * changes in string index number by a class outside the class being
+ * accessed. Typically this is when composite device class is in use.
+ *
+ * The \e pvInstance value should point to an instance of the device being
+ * accessed.
+ *
+ * The \e ulRequest should be USB_EVENT_COMP_STR_CHANGE.
+ *
+ * The \e pvRequestData should point to a two byte array where the first value
+ * is the old string index and the second is the new string index.
+ */
+#define USB_EVENT_COMP_STR_CHANGE ( USB_EVENT_BASE + 16u )
+
+/**
+ * @brief Used with pfnDeviceHandler handler function is classes to allow the
+ * device class to make final adjustments to the configuration
+ * descriptor. This is only used when a device class is used in a
+ * composite device class is in use.
+ *
+ * The \e pvInstance value should point to an instance of the device being
+ * accessed.
+ *
+ * The \e ulRequest should be USB_EVENT_COMP_CONFIG.
+ *
+ * The \e pvRequestData should point to the beginning of the configuration
+ * descriptor for the device instance.
+ */
+#define USB_EVENT_COMP_CONFIG ( USB_EVENT_BASE + 17u )
+
+/** ***************************************************************************
+ *
+ * Error sources reported via USB_EVENT_ERROR.
+ *
+ *****************************************************************************/
+
+/**
+ * @brief The host received an invalid PID in a transaction.
+ */
+#define USBERR_HOST_IN_PID_ERROR 0x01000000u
+
+/**
+ * @brief The host did not receive a response from a device.
+ */
+#define USBERR_HOST_IN_NOT_COMP 0x00100000u
+
+/**
+ * @brief The host received a stall on an IN endpoint.
+ */
+#define USBERR_HOST_IN_STALL 0x00400000u
+
+/**
+ * @brief The host detected a CRC or bit-stuffing error (isochronous mode).
+ */
+#define USBERR_HOST_IN_DATA_ERROR 0x00080000u
+
+/**
+ * @brief The host received NAK on an IN endpoint for longer than the
+ * specified timeout period (interrupt, bulk and control modes).
+ */
+#define USBERR_HOST_IN_NAK_TO 0x00080000u
+
+/**
+ * @brief The host failed to communicate with a device via an IN endpoint.
+ */
+#define USBERR_HOST_IN_ERROR 0x00040000u
+
+/**
+ * @brief The host receive FIFO is full.
+ */
+#define USBERR_HOST_IN_FIFO_FULL 0x00020000u /* RX FIFO full */
+
+/**
+ * @brief The host received NAK on an OUT endpoint for longer than the
+ * specified timeout period (bulk, interrupt and control modes).
+ */
+#define USBERR_HOST_OUT_NAK_TO 0x00000080u
+
+/**
+ * @brief The host did not receive a response from a device (isochronous mode).
+ */
+#define USBERR_HOST_OUT_NOT_COMP 0x00000080u
+
+/**
+ * @brief The host received a stall on an OUT endpoint.
+ */
+#define USBERR_HOST_OUT_STALL 0x00000020u
+
+/**
+ * @brief The host failed to communicate with a device via an OUT endpoint.
+ */
+#define USBERR_HOST_OUT_ERROR 0x00000004u
+
+/**
+ * @brief The host received NAK on endpoint 0 for longer than the configured
+ * timeout.
+ */
+#define USBERR_HOST_EP0_NAK_TO 0x00000080u
+
+/**
+ * @brief The host failed to communicate with a device via an endpoint zero.
+ */
+#define USBERR_HOST_EP0_ERROR 0x00000010u
+
+/**
+ * @brief The device detected a CRC error in received data.
+ */
+#define USBERR_DEV_RX_DATA_ERROR 0x00080000u
+
+/**
+ * @brief The device was unable to receive a packet from the host since the
+ * receive FIFO is full.
+ */
+#define USBERR_DEV_RX_OVERRUN 0x00040000u
+
+/**
+ * @brief The device receive FIFO is full.
+ */
+#define USBERR_DEV_RX_FIFO_FULL 0x00020000u /* RX FIFO full */
+
+/** ***************************************************************************
+ *
+ * Close the general_usblib_api Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @ingroup usblib_buffer_api
+ * @{
+ *
+ *****************************************************************************/
+
+/** ***************************************************************************
+ *
+ * @brief A function pointer type which describes either a class driver
+ * packet read or packet write function (both have the same prototype)
+ * to the USB buffer object.
+ *
+ *****************************************************************************/
+typedef uint32 ( *tUSBPacketTransfer )( void * pvHandle,
+ uint8 * pcData,
+ uint32 ulLength,
+ tBoolean bLast );
+
+/** ***************************************************************************
+ *
+ * @brief A function pointer type which describes either a class driver
+ * transmit or receive packet available function (both have the same
+ * prototype) to the USB buffer object.
+ *
+ *****************************************************************************/
+typedef uint32 ( *tUSBPacketAvailable )( void * pvHandle );
+
+/** ***************************************************************************
+ *
+ * @brief The number of bytes of workspace that each USB buffer object
+ * requires. This workspace memory is provided to the buffer on
+ * USBBufferInit() in the \e pvWorkspace field of the \e tUSBBuffer
+ * structure.
+ *
+ *****************************************************************************/
+#define USB_BUFFER_WORKSPACE_SIZE 16
+
+/** ***************************************************************************
+ *
+ * @brief The structure used by the application to initialize a buffer object
+ * that will provide buffered access to either a transmit or receive
+ * channel.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief This field sets the mode of the buffer. If TRUE, the buffer
+ * operates as a transmit buffer and supports calls to
+ * USBBufferWrite by the client. If FALSE, the buffer operates
+ * as a receive buffer and supports calls to USBBufferRead.
+ */
+ tBoolean bTransmitBuffer;
+
+ /**
+ * @brief A pointer to the callback function which will be called to
+ * notify the application of all asynchronous events related to
+ * the operation of the buffer.
+ */
+ tUSBCallback pfnCBack;
+
+ /**
+ * @brief A pointer that the buffer will pass back to the client in the
+ * first parameter of all callbacks related to this instance.
+ */
+ void * pvCBData;
+
+ /**
+ * @brief The function which should be called to transmit a packet of
+ * data in transmit mode or receive a packet in receive mode.
+ */
+ tUSBPacketTransfer pfnTransfer;
+
+ /**
+ * @brief The function which should be called to determine if the
+ * endpoint is ready to accept a new packet for transmission in
+ * transmit mode or to determine the size of the buffer required
+ * to read a packet in receive mode.
+ */
+ tUSBPacketAvailable pfnAvailable;
+
+ /**
+ * @brief The handle to pass to the low level function pointers provided
+ * in the pfnTransfer and pfnAvailable members. For USB device
+ * use, this is the psDevice parameter required by the relevant
+ * device class driver APIs. For USB host use, this is the pipe
+ * identifier returned by USBHCDPipeAlloc.
+ */
+ void * pvHandle;
+
+ /**
+ * @brief A pointer to memory to be used as the ring buffer for this
+ * instance.
+ */
+ uint8 * pcBuffer;
+
+ /**
+ * @brief The size, in bytes, of the buffer pointed to by pcBuffer.
+ */
+ uint32 ulBufferSize;
+
+ /**
+ * @brief A pointer to USB_BUFFER_WORKSPACE_SIZE bytes of RAM that the
+ * buffer object can use for workspace.
+ */
+ void * pvWorkspace;
+} tUSBBuffer;
+
+/** ***************************************************************************
+ *
+ * @brief The structure used for encapsulating all the items associated with
+ * a ring buffer.
+ *
+ *****************************************************************************/
+typedef struct
+{
+ /**
+ * @brief The ring buffer size.
+ */
+ uint32 ulSize;
+
+ /**
+ * @brief The ring buffer write index.
+ */
+ volatile uint32 ulWriteIndex;
+
+ /**
+ * @brief The ring buffer read index.
+ */
+ volatile uint32 ulReadIndex;
+
+ /**
+ * @brief The ring buffer.
+ */
+ uint8 * pucBuf;
+} tUSBRingBufObject;
+
+/** ***************************************************************************
+ *
+ * USB buffer API function prototypes.
+ *
+ *****************************************************************************/
+extern const tUSBBuffer * USBBufferInit( const tUSBBuffer * psBuffer );
+extern void USBBufferInfoGet( const tUSBBuffer * psBuffer,
+ tUSBRingBufObject * psRingBuf );
+extern void * USBBufferCallbackDataSet( tUSBBuffer * psBuffer, void * pvCBData );
+extern uint32 USBBufferWrite( const tUSBBuffer * psBuffer,
+ const uint8 * pucData,
+ uint32 ulLength );
+extern void USBBufferDataWritten( const tUSBBuffer * psBuffer, uint32 ulLength );
+extern void USBBufferDataRemoved( const tUSBBuffer * psBuffer, uint32 ulLength );
+extern void USBBufferFlush( const tUSBBuffer * psBuffer );
+extern uint32 USBBufferRead( const tUSBBuffer * psBuffer,
+ uint8 * pucData,
+ uint32 ulLength );
+extern uint32 USBBufferDataAvailable( const tUSBBuffer * psBuffer );
+extern uint32 USBBufferSpaceAvailable( const tUSBBuffer * psBuffer );
+extern uint32 USBBufferEventCallback( void * pvCBData,
+ uint32 ulEvent,
+ uint32 ulMsgValue,
+ void * pvMsgData );
+extern tBoolean USBRingBufFull( tUSBRingBufObject * ptUSBRingBuf );
+extern tBoolean USBRingBufEmpty( tUSBRingBufObject * ptUSBRingBuf );
+extern void USBRingBufFlush( tUSBRingBufObject * ptUSBRingBuf );
+extern uint32 USBRingBufUsed( tUSBRingBufObject * ptUSBRingBuf );
+extern uint32 USBRingBufFree( tUSBRingBufObject * ptUSBRingBuf );
+extern uint32 USBRingBufContigUsed( tUSBRingBufObject * ptUSBRingBuf );
+extern uint32 USBRingBufContigFree( tUSBRingBufObject * ptUSBRingBuf );
+extern uint32 USBRingBufSize( tUSBRingBufObject * ptUSBRingBuf );
+extern uint8 USBRingBufReadOne( tUSBRingBufObject * ptUSBRingBuf );
+extern void USBRingBufRead( tUSBRingBufObject * ptUSBRingBuf,
+ uint8 * pucData,
+ uint32 ulLength );
+extern void USBRingBufWriteOne( tUSBRingBufObject * ptUSBRingBuf, uint8 ucData );
+extern void USBRingBufWrite( tUSBRingBufObject * ptUSBRingBuf,
+ const uint8 pucData[],
+ uint32 ulLength );
+extern void USBRingBufAdvanceWrite( tUSBRingBufObject * ptUSBRingBuf, uint32 ulNumBytes );
+extern void USBRingBufAdvanceRead( tUSBRingBufObject * ptUSBRingBuf, uint32 ulNumBytes );
+extern void USBRingBufInit( tUSBRingBufObject * ptUSBRingBuf,
+ uint8 * pucBuf,
+ uint32 ulSize );
+
+/** ***************************************************************************
+ *
+ * Close the Doxygen group.
+ * @}
+ *
+ *****************************************************************************/
+
+/******************************************************************************
+ *
+ * Mark the end of the C bindings section for C++ compilers.
+ *
+ *****************************************************************************/
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __USBLIB_H__ */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/adc.c b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/adc.c
new file mode 100644
index 000000000..10dcc0adf
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/adc.c
@@ -0,0 +1,1039 @@
+/** @file adc.c
+ * @brief ADC Driver Source File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - API Functions
+ * - Interrupt Handlers
+ * .
+ * which are relevant for the ADC driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Include Files */
+
+#include "adc.h"
+#include "sys_vim.h"
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/** @fn void adcInit(void)
+ * @brief Initializes ADC Driver
+ *
+ * This function initializes the ADC driver.
+ *
+ */
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+/* SourceId : ADC_SourceId_001 */
+/* DesignId : ADC_DesignId_001 */
+/* Requirements : HL_SR185 */
+void adcInit( void )
+{
+ /* USER CODE BEGIN (3) */
+ /* USER CODE END */
+
+ /** @b Initialize @b ADC1: */
+
+ /** - Reset ADC module */
+ adcREG1->RSTCR = 1U;
+ adcREG1->RSTCR = 0U;
+
+ /** - Enable 12-BIT ADC */
+ adcREG1->OPMODECR |= 0x80000000U;
+
+ /** - Setup prescaler */
+ adcREG1->CLOCKCR = 10U;
+
+ /** - Setup memory boundaries */
+ adcREG1->BNDCR = ( uint32 ) ( ( uint32 ) 8U << 16U ) | ( 8U + 8U );
+ adcREG1->BNDEND = ( adcREG1->BNDEND & 0xFFFF0000U ) | ( 2U );
+
+ /** - Setup event group conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG1->GxMODECR[ 0U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U;
+
+ /** - Setup event group hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG1->EVSRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT;
+
+ /** - Setup event group sample window */
+ adcREG1->EVSAMP = 1U;
+
+ /** - Setup event group sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG1->EVSAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 1 conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG1->GxMODECR[ 1U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 1 hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG1->G1SRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT;
+
+ /** - Setup group 1 sample window */
+ adcREG1->G1SAMP = 1U;
+
+ /** - Setup group 1 sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG1->G1SAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 2 conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG1->GxMODECR[ 2U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 2 hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG1->G2SRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC1_EVENT;
+
+ /** - Setup group 2 sample window */
+ adcREG1->G2SAMP = 1U;
+
+ /** - Setup group 2 sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG1->G2SAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - ADC1 EVT pin output value */
+ adcREG1->EVTOUT = 0U;
+
+ /** - ADC1 EVT pin direction */
+ adcREG1->EVTDIR = 0U;
+
+ /** - ADC1 EVT pin open drain enable */
+ adcREG1->EVTPDR = 0U;
+
+ /** - ADC1 EVT pin pullup / pulldown selection */
+ adcREG1->EVTPSEL = 1U;
+
+ /** - ADC1 EVT pin pullup / pulldown enable*/
+ adcREG1->EVTDIS = 0U;
+
+ /** - Enable ADC module */
+ adcREG1->OPMODECR |= 0x80140001U;
+
+ /** - Wait for buffer initialization complete */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( ( adcREG1->BNDEND & 0xFFFF0000U ) >> 16U ) != 0U )
+ {
+ } /* Wait */
+
+ /** - Setup parity */
+ adcREG1->PARCR = 0x00000005U;
+
+ /** @b Initialize @b ADC2: */
+
+ /** - Reset ADC module */
+ adcREG2->RSTCR = 1U;
+ adcREG2->RSTCR = 0U;
+
+ /** - Enable 12-BIT ADC */
+ adcREG2->OPMODECR |= 0x80000000U;
+
+ /** - Setup prescaler */
+ adcREG2->CLOCKCR = 10U;
+
+ /** - Setup memory boundaries */
+ adcREG2->BNDCR = ( uint32 ) ( ( uint32 ) 8U << 16U ) | ( 8U + 8U );
+ adcREG2->BNDEND = ( adcREG2->BNDEND & 0xFFFF0000U ) | ( 2U );
+
+ /** - Setup event group conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG2->GxMODECR[ 0U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U;
+
+ /** - Setup event group hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG2->EVSRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT;
+
+ /** - Setup event group sample window */
+ adcREG2->EVSAMP = 1U;
+
+ /** - Setup event group sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG2->EVSAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 1 conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG2->GxMODECR[ 1U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 1 hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG2->G1SRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT;
+
+ /** - Setup group 1 sample window */
+ adcREG2->G1SAMP = 1U;
+
+ /** - Setup group 1 sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG2->G1SAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 2 conversion mode
+ * - Setup data format
+ * - Enable/Disable channel id in conversion result
+ * - Enable/Disable continuous conversion
+ */
+ adcREG2->GxMODECR[ 2U ] = ( uint32 ) ADC_12_BIT | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup group 2 hardware trigger
+ * - Setup hardware trigger edge
+ * - Setup hardware trigger source
+ */
+ adcREG2->G2SRC = ( uint32 ) 0x00000000U | ( uint32 ) ADC2_EVENT;
+
+ /** - Setup group 2 sample window */
+ adcREG2->G2SAMP = 1U;
+
+ /** - Setup group 2 sample discharge
+ * - Setup discharge prescaler
+ * - Enable/Disable discharge
+ */
+ adcREG2->G2SAMPDISEN = ( uint32 ) ( ( uint32 ) 0U << 8U ) | ( uint32 ) 0x00000000U;
+
+ /** - ADC2 EVT pin output value */
+ adcREG2->EVTOUT = 0U;
+
+ /** - ADC2 EVT pin direction */
+ adcREG2->EVTDIR = 0U;
+
+ /** - ADC2 EVT pin open drain enable */
+ adcREG2->EVTPDR = 0U;
+
+ /** - ADC2 EVT pin pullup / pulldown selection */
+ adcREG2->EVTPSEL = 1U;
+
+ /** - ADC2 EVT pin pullup / pulldown enable*/
+ adcREG2->EVTDIS = 0U;
+
+ /** - Enable ADC module */
+ adcREG2->OPMODECR |= 0x80140001U;
+
+ /** - Wait for buffer initialization complete */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( ( adcREG2->BNDEND & 0xFFFF0000U ) >> 16U ) != 0U )
+ {
+ } /* Wait */
+
+ /** - Setup parity */
+ adcREG2->PARCR = 0x00000005U;
+
+ /** @note This function has to be called before the driver can be used.\n
+ * This function has to be executed in privileged mode.\n
+ */
+ /* USER CODE BEGIN (4) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (5) */
+/* USER CODE END */
+
+/** - s_adcSelect is used as constant table for channel selection */
+static const uint32 s_adcSelect[ 2U ][ 3U ] = {
+ { 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U,
+ 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U,
+ 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U },
+ { 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U,
+ 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U,
+ 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U
+ | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U | 0x00000000U }
+};
+
+/** - s_adcFiFoSize is used as constant table for channel selection */
+static const uint32 s_adcFiFoSize[ 2U ][ 3U ] = { { 16U, 16U, 16U }, { 16U, 16U, 16U } };
+
+/* USER CODE BEGIN (6) */
+/* USER CODE END */
+
+/** @fn void adcStartConversion(adcBASE_t *adc, uint32 group)
+ * @brief Starts an ADC conversion
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * This function starts a conversion of the ADC hardware group.
+ *
+ */
+/* SourceId : ADC_SourceId_002 */
+/* DesignId : ADC_DesignId_002 */
+/* Requirements : HL_SR186 */
+void adcStartConversion( adcBASE_t * adc, uint32 group )
+{
+ uint32 index = ( adc == adcREG1 ) ? 0U : 1U;
+
+ /* USER CODE BEGIN (7) */
+ /* USER CODE END */
+
+ /** - Setup FiFo size */
+ adc->GxINTCR[ group ] = s_adcFiFoSize[ index ][ group ];
+
+ /** - Start Conversion */
+ adc->GxSEL[ group ] = s_adcSelect[ index ][ group ];
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (8) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (9) */
+/* USER CODE END */
+
+/** @fn void adcStopConversion(adcBASE_t *adc, uint32 group)
+ * @brief Stops an ADC conversion
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * This function stops a conversion of the ADC hardware group.
+ *
+ */
+/* SourceId : ADC_SourceId_003 */
+/* DesignId : ADC_DesignId_003 */
+/* Requirements : HL_SR187 */
+void adcStopConversion( adcBASE_t * adc, uint32 group )
+{
+ /* USER CODE BEGIN (10) */
+ /* USER CODE END */
+
+ /** - Stop Conversion */
+ adc->GxSEL[ group ] = 0U;
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (11) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (12) */
+/* USER CODE END */
+
+/** @fn void adcResetFiFo(adcBASE_t *adc, uint32 group)
+ * @brief Resets FiFo read and write pointer.
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * This function resets the FiFo read and write pointers.
+ *
+ */
+/* SourceId : ADC_SourceId_004 */
+/* DesignId : ADC_DesignId_004*/
+/* Requirements : HL_SR188 */
+void adcResetFiFo( adcBASE_t * adc, uint32 group )
+{
+ /* USER CODE BEGIN (13) */
+ /* USER CODE END */
+
+ /** - Reset FiFo */
+ adc->GxFIFORESETCR[ group ] = 1U;
+
+ /** @note The function adcInit has to be called before this function can be used.\n
+ * the conversion should be stopped before calling this function.
+ */
+
+ /* USER CODE BEGIN (14) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (15) */
+/* USER CODE END */
+
+/** @fn uint32 adcGetData(adcBASE_t *adc, uint32 group, adcData_t * data)
+ * @brief Gets converted a ADC values
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ * @param[out] data Pointer to store ADC converted data
+ * @return The function will return the number of converted values copied into data
+ * buffer:
+ *
+ * This function writes a ADC message into a ADC message box.
+ *
+ */
+/* SourceId : ADC_SourceId_005 */
+/* DesignId : ADC_DesignId_005 */
+/* Requirements : HL_SR189 */
+uint32 adcGetData( adcBASE_t * adc, uint32 group, adcData_t * data )
+{
+ uint32 i;
+ uint32 buf;
+ uint32 mode;
+ uint32 index = ( adc == adcREG1 ) ? 0U : 1U;
+
+ uint32 intcr_reg = adc->GxINTCR[ group ];
+ uint32 count = ( intcr_reg >= 256U ) ? s_adcFiFoSize[ index ][ group ]
+ : ( s_adcFiFoSize[ index ][ group ]
+ - ( uint32 ) ( intcr_reg & 0xFFU ) );
+ adcData_t * ptr = data;
+
+ /* USER CODE BEGIN (16) */
+ /* USER CODE END */
+
+ mode = ( adc->OPMODECR & ADC_12_BIT_MODE );
+
+ if( mode == ADC_12_BIT_MODE )
+ {
+ /** - Get conversion data and channel/pin id */
+ for( i = 0U; i < count; i++ )
+ {
+ buf = adc->GxBUF[ group ].BUF0;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ ptr->value = ( uint16 ) ( buf & 0xFFFU );
+ ptr->id = ( uint32 ) ( ( buf >> 16U ) & 0x1FU );
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ ptr++;
+ }
+ }
+ else
+ {
+ /** - Get conversion data and channel/pin id */
+ for( i = 0U; i < count; i++ )
+ {
+ buf = adc->GxBUF[ group ].BUF0;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ ptr->value = ( uint16 ) ( buf & 0x3FFU );
+ ptr->id = ( uint32 ) ( ( buf >> 10U ) & 0x1FU );
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ ptr++;
+ }
+ }
+
+ adc->GxINTFLG[ group ] = 9U;
+
+ /** @note The function adcInit has to be called before this function can be used.\n
+ * The user is responsible to initialize the message box.
+ */
+
+ /* USER CODE BEGIN (17) */
+ /* USER CODE END */
+
+ return count;
+}
+
+/* USER CODE BEGIN (18) */
+/* USER CODE END */
+
+/** @fn uint32 adcIsFifoFull(adcBASE_t *adc, uint32 group)
+ * @brief Checks if FiFo buffer is full
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ * @return The function will return:
+ * - 0: When FiFo buffer is not full
+ * - 1: When FiFo buffer is full
+ * - 3: When FiFo buffer overflow occurred
+ *
+ * This function checks FiFo buffer status.
+ *
+ */
+/* SourceId : ADC_SourceId_006 */
+/* DesignId : ADC_DesignId_006 */
+/* Requirements : HL_SR190 */
+uint32 adcIsFifoFull( adcBASE_t * adc, uint32 group )
+{
+ uint32 flags;
+
+ /* USER CODE BEGIN (19) */
+ /* USER CODE END */
+
+ /** - Read FiFo flags */
+ flags = adc->GxINTFLG[ group ] & 3U;
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (20) */
+ /* USER CODE END */
+
+ return flags;
+}
+
+/* USER CODE BEGIN (21) */
+/* USER CODE END */
+
+/** @fn uint32 adcIsConversionComplete(adcBASE_t *adc, uint32 group)
+ * @brief Checks if Conversion is complete
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ * @return The function will return:
+ * - 0: When is not finished
+ * - 8: When conversion is complete
+ *
+ * This function checks if conversion is complete.
+ *
+ */
+/* SourceId : ADC_SourceId_007 */
+/* DesignId : ADC_DesignId_007 */
+/* Requirements : HL_SR191 */
+uint32 adcIsConversionComplete( adcBASE_t * adc, uint32 group )
+{
+ uint32 flags;
+
+ /* USER CODE BEGIN (22) */
+ /* USER CODE END */
+
+ /** - Read conversion flags */
+ flags = adc->GxINTFLG[ group ] & 8U;
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (23) */
+ /* USER CODE END */
+
+ return flags;
+}
+
+/* USER CODE BEGIN (24) */
+/* USER CODE END */
+
+/** @fn void adcCalibration(adcBASE_t *adc)
+ * @brief Computes offset error using Calibration mode
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * This function computes offset error using Calibration mode
+ *
+ */
+/* SourceId : ADC_SourceId_008 */
+/* DesignId : ADC_DesignId_010 */
+/* Requirements : HL_SR194 */
+void adcCalibration( adcBASE_t * adc )
+{
+ /* USER CODE BEGIN (25) */
+ /* USER CODE END */
+
+ uint32 conv_val[ 5U ] = { 0U, 0U, 0U, 0U, 0U };
+ uint32 loop_index = 0U;
+ uint32 offset_error = 0U;
+ uint32 backup_mode;
+
+ /** - Backup Mode before Calibration */
+ backup_mode = adc->OPMODECR;
+
+ /** - Enable 12-BIT ADC */
+ adc->OPMODECR |= 0x80000000U;
+
+ /* Disable all channels for conversion */
+ adc->GxSEL[ 0U ] = 0x00U;
+ adc->GxSEL[ 1U ] = 0x00U;
+ adc->GxSEL[ 2U ] = 0x00U;
+
+ for( loop_index = 0U; loop_index < 4U; loop_index++ )
+ {
+ /* Disable Self Test and Calibration mode */
+ adc->CALCR = 0x0U;
+
+ switch( loop_index )
+ {
+ case 0U: /* Test 1 : Bride En = 0 , HiLo =0 */
+ adc->CALCR = 0x0U;
+ break;
+
+ case 1U: /* Test 1 : Bride En = 0 , HiLo =1 */
+ adc->CALCR = 0x0100U;
+ break;
+
+ case 2U: /* Test 1 : Bride En = 1 , HiLo =0 */
+ adc->CALCR = 0x0200U;
+ break;
+
+ case 3U: /* Test 1 : Bride En = 1 , HiLo =1 */
+ adc->CALCR = 0x0300U;
+ break;
+
+ default:
+ break;
+ }
+
+ /* Enable Calibration mode */
+ adc->CALCR |= 0x1U;
+
+ /* Start calibration conversion */
+ adc->CALCR |= 0x00010000U;
+
+ /* Wait for calibration conversion to complete */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( adc->CALCR & 0x00010000U ) == 0x00010000U )
+ {
+ } /* Wait */
+
+ /* Read converted value */
+ conv_val[ loop_index ] = adc->CALR;
+ }
+
+ /* Disable Self Test and Calibration mode */
+ adc->CALCR = 0x0U;
+
+ /* Compute the Offset error correction value */
+ conv_val[ 4U ] = conv_val[ 0U ] + conv_val[ 1U ] + conv_val[ 2U ] + conv_val[ 3U ];
+
+ conv_val[ 4U ] = ( conv_val[ 4U ] / 4U );
+
+ offset_error = conv_val[ 4U ] - 0x7FFU;
+
+ /*Write the offset error to the Calibration register */
+ /* Load 2;s complement of the computed value to ADCALR register */
+ offset_error = ~offset_error;
+ offset_error = offset_error & 0xFFFU;
+ offset_error = offset_error + 1U;
+
+ adc->CALR = offset_error;
+
+ /** - Restore Mode after Calibration */
+ adc->OPMODECR = backup_mode;
+
+ /** @note The function adcInit has to be called before using this function. */
+
+ /* USER CODE BEGIN (26) */
+ /* USER CODE END */
+}
+
+/** @fn void adcMidPointCalibration(adcBASE_t *adc)
+ * @brief Computes offset error using Mid Point Calibration mode
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @return This function will return offset error using Mid Point Calibration mode
+ *
+ * This function computes offset error using Mid Point Calibration mode
+ *
+ */
+/* SourceId : ADC_SourceId_009 */
+/* DesignId : ADC_DesignId_011 */
+/* Requirements : HL_SR195 */
+uint32 adcMidPointCalibration( adcBASE_t * adc )
+{
+ /* USER CODE BEGIN (27) */
+ /* USER CODE END */
+
+ uint32 conv_val[ 3U ] = { 0U, 0U, 0U };
+ uint32 loop_index = 0U;
+ uint32 offset_error = 0U;
+ uint32 backup_mode;
+
+ /** - Backup Mode before Calibration */
+ backup_mode = adc->OPMODECR;
+
+ /** - Enable 12-BIT ADC */
+ adc->OPMODECR |= 0x80000000U;
+
+ /* Disable all channels for conversion */
+ adc->GxSEL[ 0U ] = 0x00U;
+ adc->GxSEL[ 1U ] = 0x00U;
+ adc->GxSEL[ 2U ] = 0x00U;
+
+ for( loop_index = 0U; loop_index < 2U; loop_index++ )
+ {
+ /* Disable Self Test and Calibration mode */
+ adc->CALCR = 0x0U;
+
+ switch( loop_index )
+ {
+ case 0U: /* Test 1 : Bride En = 0 , HiLo =0 */
+ adc->CALCR = 0x0U;
+ break;
+
+ case 1U: /* Test 1 : Bride En = 0 , HiLo =1 */
+ adc->CALCR = 0x0100U;
+ break;
+
+ default:
+ break;
+ }
+
+ /* Enable Calibration mode */
+ adc->CALCR |= 0x1U;
+
+ /* Start calibration conversion */
+ adc->CALCR |= 0x00010000U;
+
+ /* Wait for calibration conversion to complete */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( adc->CALCR & 0x00010000U ) == 0x00010000U )
+ {
+ } /* Wait */
+
+ /* Read converted value */
+ conv_val[ loop_index ] = adc->CALR;
+ }
+
+ /* Disable Self Test and Calibration mode */
+ adc->CALCR = 0x0U;
+
+ /* Compute the Offset error correction value */
+ conv_val[ 2U ] = ( conv_val[ 0U ] ) + ( conv_val[ 1U ] );
+
+ conv_val[ 2U ] = ( conv_val[ 2U ] / 2U );
+
+ offset_error = conv_val[ 2U ] - 0x7FFU;
+
+ /* Write the offset error to the Calibration register */
+ /* Load 2's complement of the computed value to ADCALR register */
+ offset_error = ~offset_error;
+ offset_error = offset_error + 1U;
+ offset_error = offset_error & 0xFFFU;
+
+ adc->CALR = offset_error;
+
+ /** - Restore Mode after Calibration */
+ adc->OPMODECR = backup_mode;
+
+ return ( offset_error );
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (28) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (29) */
+/* USER CODE END */
+
+/** @fn void adcEnableNotification(adcBASE_t *adc, uint32 group)
+ * @brief Enable notification
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * This function will enable the notification of a conversion.
+ * In single conversion mode for conversion complete and
+ * in continuous conversion mode when the FiFo buffer is full.
+ *
+ */
+/* SourceId : ADC_SourceId_010 */
+/* DesignId : ADC_DesignId_008 */
+/* Requirements : HL_SR192 */
+void adcEnableNotification( adcBASE_t * adc, uint32 group )
+{
+ uint32 notif = ( ( ( uint32 ) ( adc->GxMODECR[ group ] ) & 2U ) == 2U ) ? 1U : 8U;
+
+ /* USER CODE BEGIN (30) */
+ /* USER CODE END */
+
+ adc->GxINTENA[ group ] = notif;
+
+ /** @note The function adcInit has to be called before this function can be used.\n
+ * This function should be called before the conversion is started
+ */
+
+ /* USER CODE BEGIN (31) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (32) */
+/* USER CODE END */
+
+/** @fn void adcDisableNotification(adcBASE_t *adc, uint32 group)
+ * @brief Disable notification
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * - adcREG2: ADC2 module pointer
+ * @param[in] group Hardware group of ADC module:
+ * - adcGROUP0: ADC event group
+ * - adcGROUP1: ADC group 1
+ * - adcGROUP2: ADC group 2
+ *
+ * This function will disable the notification of a conversion.
+ */
+/* SourceId : ADC_SourceId_011 */
+/* DesignId : ADC_DesignId_009 */
+/* Requirements : HL_SR193 */
+void adcDisableNotification( adcBASE_t * adc, uint32 group )
+{
+ /* USER CODE BEGIN (33) */
+ /* USER CODE END */
+
+ adc->GxINTENA[ group ] = 0U;
+
+ /** @note The function adcInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (34) */
+ /* USER CODE END */
+}
+
+/** @fn void adcSetEVTPin(adcBASE_t *adc, uint32 value)
+ * @brief Set ADCEVT pin
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * @param[in] value Value to be set: 0 or 1
+ *
+ * This function will set the ADC EVT pin if configured as an output pin.
+ */
+/* SourceId : ADC_SourceId_020 */
+/* DesignId : ADC_DesignId_014 */
+/* Requirements : HL_SR529 */
+void adcSetEVTPin( adcBASE_t * adc, uint32 value )
+{
+ adc->EVTOUT = value;
+}
+
+/** @fn uint32 adcGetEVTPin(adcBASE_t *adc)
+ * @brief Set ADCEVT pin
+ * @param[in] adc Pointer to ADC module:
+ * - adcREG1: ADC1 module pointer
+ * @return Value of the ADC EVT pin: 0 or 1
+ *
+ * This function will return the value of ADC EVT pin.
+ */
+/* SourceId : ADC_SourceId_021 */
+/* DesignId : ADC_DesignId_015 */
+/* Requirements : HL_SR529 */
+uint32 adcGetEVTPin( adcBASE_t * adc )
+{
+ return adc->EVTIN;
+}
+
+/** @fn void adc1GetConfigValue(adc_config_reg_t *config_reg, config_value_type_t type)
+ * @brief Get the initial or current values of the configuration registers
+ *
+ * @param[in] *config_reg: pointer to the struct to which the initial or current
+ * value of the configuration registers need to be stored
+ * @param[in] type: whether initial or current value of the configuration registers
+ *need to be stored
+ * - InitialValue: initial value of the configuration registers will
+ *be stored in the struct pointed by config_reg
+ * - CurrentValue: initial value of the configuration registers will
+ *be stored in the struct pointed by config_reg
+ *
+ * This function will copy the initial or current value (depending on the parameter
+ *'type') of the configuration registers to the struct pointed by config_reg
+ *
+ */
+/* SourceId : ADC_SourceId_012 */
+/* DesignId : ADC_DesignId_012 */
+/* Requirements : HL_SR203 */
+void adc1GetConfigValue( adc_config_reg_t * config_reg, config_value_type_t type )
+{
+ if( type == InitialValue )
+ {
+ config_reg->CONFIG_OPMODECR = ADC1_OPMODECR_CONFIGVALUE;
+ config_reg->CONFIG_CLOCKCR = ADC1_CLOCKCR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 0U ] = ADC1_G0MODECR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 1U ] = ADC1_G1MODECR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 2U ] = ADC1_G2MODECR_CONFIGVALUE;
+ config_reg->CONFIG_G0SRC = ADC1_G0SRC_CONFIGVALUE;
+ config_reg->CONFIG_G1SRC = ADC1_G1SRC_CONFIGVALUE;
+ config_reg->CONFIG_G2SRC = ADC1_G2SRC_CONFIGVALUE;
+ config_reg->CONFIG_BNDCR = ADC1_BNDCR_CONFIGVALUE;
+ config_reg->CONFIG_BNDEND = ADC1_BNDEND_CONFIGVALUE;
+ config_reg->CONFIG_G0SAMP = ADC1_G0SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G1SAMP = ADC1_G1SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G2SAMP = ADC1_G2SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G0SAMPDISEN = ADC1_G0SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_G1SAMPDISEN = ADC1_G1SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_G2SAMPDISEN = ADC1_G2SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_PARCR = ADC1_PARCR_CONFIGVALUE;
+ }
+ else
+ {
+ config_reg->CONFIG_OPMODECR = adcREG1->OPMODECR;
+ config_reg->CONFIG_CLOCKCR = adcREG1->CLOCKCR;
+ config_reg->CONFIG_GxMODECR[ 0U ] = adcREG1->GxMODECR[ 0U ];
+ config_reg->CONFIG_GxMODECR[ 1U ] = adcREG1->GxMODECR[ 1U ];
+ config_reg->CONFIG_GxMODECR[ 2U ] = adcREG1->GxMODECR[ 2U ];
+ config_reg->CONFIG_G0SRC = adcREG1->EVSRC;
+ config_reg->CONFIG_G1SRC = adcREG1->G1SRC;
+ config_reg->CONFIG_G2SRC = adcREG1->G2SRC;
+ config_reg->CONFIG_BNDCR = adcREG1->BNDCR;
+ config_reg->CONFIG_BNDEND = adcREG1->BNDEND;
+ config_reg->CONFIG_G0SAMP = adcREG1->EVSAMP;
+ config_reg->CONFIG_G1SAMP = adcREG1->G1SAMP;
+ config_reg->CONFIG_G2SAMP = adcREG1->G2SAMP;
+ config_reg->CONFIG_G0SAMPDISEN = adcREG1->EVSAMPDISEN;
+ config_reg->CONFIG_G1SAMPDISEN = adcREG1->G1SAMPDISEN;
+ config_reg->CONFIG_G2SAMPDISEN = adcREG1->G2SAMPDISEN;
+ config_reg->CONFIG_PARCR = adcREG1->PARCR;
+ }
+}
+
+/** @fn void adc2GetConfigValue(adc_config_reg_t *config_reg, config_value_type_t type)
+ * @brief Get the initial or current values of the configuration registers
+ *
+ * @param[in] *config_reg: pointer to the struct to which the initial or current
+ * value of the configuration registers need to be stored
+ * @param[in] type: whether initial or current value of the configuration registers
+ *need to be stored
+ * - InitialValue: initial value of the configuration registers will
+ *be stored in the struct pointed by config_reg
+ * - CurrentValue: initial value of the configuration registers will
+ *be stored in the struct pointed by config_reg
+ *
+ * This function will copy the initial or current value (depending on the parameter
+ *'type') of the configuration registers to the struct pointed by config_reg
+ *
+ */
+/* SourceId : ADC_SourceId_013 */
+/* DesignId : ADC_DesignId_012 */
+/* Requirements : HL_SR203 */
+void adc2GetConfigValue( adc_config_reg_t * config_reg, config_value_type_t type )
+{
+ if( type == InitialValue )
+ {
+ config_reg->CONFIG_OPMODECR = ADC2_OPMODECR_CONFIGVALUE;
+ config_reg->CONFIG_CLOCKCR = ADC2_CLOCKCR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 0U ] = ADC2_G0MODECR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 1U ] = ADC2_G1MODECR_CONFIGVALUE;
+ config_reg->CONFIG_GxMODECR[ 2U ] = ADC2_G2MODECR_CONFIGVALUE;
+ config_reg->CONFIG_G0SRC = ADC2_G0SRC_CONFIGVALUE;
+ config_reg->CONFIG_G1SRC = ADC2_G1SRC_CONFIGVALUE;
+ config_reg->CONFIG_G2SRC = ADC2_G2SRC_CONFIGVALUE;
+ config_reg->CONFIG_BNDCR = ADC2_BNDCR_CONFIGVALUE;
+ config_reg->CONFIG_BNDEND = ADC2_BNDEND_CONFIGVALUE;
+ config_reg->CONFIG_G0SAMP = ADC2_G0SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G1SAMP = ADC2_G1SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G2SAMP = ADC2_G2SAMP_CONFIGVALUE;
+ config_reg->CONFIG_G0SAMPDISEN = ADC2_G0SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_G1SAMPDISEN = ADC2_G1SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_G2SAMPDISEN = ADC2_G2SAMPDISEN_CONFIGVALUE;
+ config_reg->CONFIG_PARCR = ADC2_PARCR_CONFIGVALUE;
+ }
+ else
+ {
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ config_reg->CONFIG_OPMODECR = adcREG2->OPMODECR;
+ config_reg->CONFIG_CLOCKCR = adcREG2->CLOCKCR;
+ config_reg->CONFIG_GxMODECR[ 0U ] = adcREG2->GxMODECR[ 0U ];
+ config_reg->CONFIG_GxMODECR[ 1U ] = adcREG2->GxMODECR[ 1U ];
+ config_reg->CONFIG_GxMODECR[ 2U ] = adcREG2->GxMODECR[ 2U ];
+ config_reg->CONFIG_G0SRC = adcREG2->EVSRC;
+ config_reg->CONFIG_G1SRC = adcREG2->G1SRC;
+ config_reg->CONFIG_G2SRC = adcREG2->G2SRC;
+ config_reg->CONFIG_BNDCR = adcREG2->BNDCR;
+ config_reg->CONFIG_BNDEND = adcREG2->BNDEND;
+ config_reg->CONFIG_G0SAMP = adcREG2->EVSAMP;
+ config_reg->CONFIG_G1SAMP = adcREG2->G1SAMP;
+ config_reg->CONFIG_G2SAMP = adcREG2->G2SAMP;
+ config_reg->CONFIG_G0SAMPDISEN = adcREG2->EVSAMPDISEN;
+ config_reg->CONFIG_G1SAMPDISEN = adcREG2->G1SAMPDISEN;
+ config_reg->CONFIG_G2SAMPDISEN = adcREG2->G2SAMPDISEN;
+ config_reg->CONFIG_PARCR = adcREG2->PARCR;
+ }
+}
+
+/* USER CODE BEGIN (35) */
+/* USER CODE END */
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/can.c b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/can.c
new file mode 100644
index 000000000..1fe140076
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/can.c
@@ -0,0 +1,1519 @@
+/** @file can.c
+ * @brief CAN Driver Source File
+ * @date 11-Dec-2018
+ * @version 04.07.01
+ *
+ * This file contains:
+ * - API Functions
+ * - Interrupt Handlers
+ * .
+ * which are relevant for the CAN driver.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+/* Include Files */
+
+#include "can.h"
+#include "sys_vim.h"
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Global and Static Variables */
+
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+#else
+static const uint32 s_canByteOrder[ 8U ] = { 3U, 2U, 1U, 0U, 7U, 6U, 5U, 4U };
+#endif
+
+/* USER CODE BEGIN (2) */
+/* USER CODE END */
+
+/** @fn void canInit(void)
+ * @brief Initializes CAN Driver
+ *
+ * This function initializes the CAN driver.
+ *
+ */
+/* USER CODE BEGIN (3) */
+/* USER CODE END */
+/* SourceId : CAN_SourceId_001 */
+/* DesignId : CAN_DesignId_001 */
+/* Requirements : HL_SR207 */
+void canInit( void )
+{
+ /* USER CODE BEGIN (4) */
+ /* USER CODE END */
+ /** @b Initialize @b CAN1: */
+
+ /** - Setup control register
+ * - Disable automatic wakeup on bus activity
+ * - Local power down mode disabled
+ * - Disable DMA request lines
+ * - Enable global Interrupt Line 0 and 1
+ * - Disable debug mode
+ * - Release from software reset
+ * - Enable/Disable parity or ECC
+ * - Enable/Disable auto bus on timer
+ * - Setup message completion before entering debug state
+ * - Setup normal operation mode
+ * - Request write access to the configuration registers
+ * - Setup automatic retransmission of messages
+ * - Disable error interrupts
+ * - Disable status interrupts
+ * - Enter initialization mode
+ */
+ canREG1->CTL = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | ( uint32 ) 0x00020043U;
+
+ /** - Clear all pending error flags and reset current status */
+ canREG1->ES |= 0xFFFFFFFFU;
+
+ /** - Assign interrupt level for messages */
+ canREG1->INTMUXx[ 0U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ canREG1->INTMUXx[ 1U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup auto bus on timer period */
+ canREG1->ABOTR = ( uint32 ) 0U;
+
+ /** - Setup IF1 for data transmission
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG1->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG1->IF1CMD = 0x87U;
+
+ /** - Setup IF2 for reading data
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG1->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG1->IF2CMD = 0x17U;
+
+ /** - Setup bit timing
+ * - Setup baud rate prescaler extension
+ * - Setup TSeg2
+ * - Setup TSeg1
+ * - Setup sample jump width
+ * - Setup baud rate prescaler
+ */
+ canREG1->BTR = ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U )
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U ) | ( uint32 ) 19U;
+
+ /** - CAN1 Port output values */
+ canREG1->TIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 1U << 2U )
+ | ( uint32 ) ( ( uint32 ) 1U << 1U );
+
+ canREG1->RIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 0U << 2U )
+ | ( uint32 ) ( ( uint32 ) 0U << 1U );
+
+ /** - Leave configuration and initialization mode */
+ canREG1->CTL &= ~( uint32 ) ( 0x00000041U );
+
+ /** @b Initialize @b CAN2: */
+
+ /** - Setup control register
+ * - Disable automatic wakeup on bus activity
+ * - Local power down mode disabled
+ * - Disable DMA request lines
+ * - Enable global Interrupt Line 0 and 1
+ * - Disable debug mode
+ * - Release from software reset
+ * - Enable/Disable parity or ECC
+ * - Enable/Disable auto bus on timer
+ * - Setup message completion before entering debug state
+ * - Setup normal operation mode
+ * - Request write access to the configuration registers
+ * - Setup automatic retransmission of messages
+ * - Disable error interrupts
+ * - Disable status interrupts
+ * - Enter initialization mode
+ */
+ canREG2->CTL = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | 0x00020043U;
+
+ /** - Clear all pending error flags and reset current status */
+ canREG2->ES |= 0xFFFFFFFFU;
+
+ /** - Assign interrupt level for messages */
+ canREG2->INTMUXx[ 0U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ canREG2->INTMUXx[ 1U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup auto bus on timer period */
+ canREG2->ABOTR = ( uint32 ) 0U;
+
+ /** - Setup IF1 for data transmission
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG2->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG2->IF1CMD = 0x87U;
+
+ /** - Setup IF2 for reading data
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG2->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG2->IF2CMD = 0x17U;
+
+ /** - Setup bit timing
+ * - Setup baud rate prescaler extension
+ * - Setup TSeg2
+ * - Setup TSeg1
+ * - Setup sample jump width
+ * - Setup baud rate prescaler
+ */
+ canREG2->BTR = ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U )
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U ) | ( uint32 ) 19U;
+
+ /** - CAN2 Port output values */
+ canREG2->TIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 1U << 2U )
+ | ( uint32 ) ( ( uint32 ) 1U << 1U );
+
+ canREG2->RIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 0U << 2U )
+ | ( uint32 ) ( ( uint32 ) 0U << 1U );
+
+ /** - Leave configuration and initialization mode */
+ canREG2->CTL &= ~( uint32 ) ( 0x00000041U );
+
+ /** @b Initialize @b CAN3: */
+
+ /** - Setup control register
+ * - Disable automatic wakeup on bus activity
+ * - Local power down mode disabled
+ * - Disable DMA request lines
+ * - Enable global Interrupt Line 0 and 1
+ * - Disable debug mode
+ * - Release from software reset
+ * - Enable/Disable parity or ECC
+ * - Enable/Disable auto bus on timer
+ * - Setup message completion before entering debug state
+ * - Setup normal operation mode
+ * - Request write access to the configuration registers
+ * - Setup automatic retransmission of messages
+ * - Disable error interrupts
+ * - Disable status interrupts
+ * - Enter initialization mode
+ */
+ canREG3->CTL = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) ( ( uint32 ) 0x00000005U << 10U ) | 0x00020043U;
+
+ /** - Clear all pending error flags and reset current status */
+ canREG3->ES |= 0xFFFFFFFFU;
+
+ /** - Assign interrupt level for messages */
+ canREG3->INTMUXx[ 0U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ canREG3->INTMUXx[ 1U ] = ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U
+ | ( uint32 ) 0x00000000U | ( uint32 ) 0x00000000U;
+
+ /** - Setup auto bus on timer period */
+ canREG3->ABOTR = ( uint32 ) 0U;
+
+ /** - Setup IF1 for data transmission
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG3->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG3->IF1CMD = 0x87U;
+
+ /** - Setup IF2 for reading data
+ * - Wait until IF1 is ready for use
+ * - Set IF1 control byte
+ */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status
+ * check for execution sequence" */
+ while( ( canREG3->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ canREG3->IF2CMD = 0x17U;
+
+ /** - Setup bit timing
+ * - Setup baud rate prescaler extension
+ * - Setup TSeg2
+ * - Setup TSeg1
+ * - Setup sample jump width
+ * - Setup baud rate prescaler
+ */
+ canREG3->BTR = ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 12U )
+ | ( uint32 ) ( ( uint32 ) ( ( 4U + 3U ) - 1U ) << 8U )
+ | ( uint32 ) ( ( uint32 ) ( 3U - 1U ) << 6U )
+ | ( uint32 ) ( uint32 ) 19U;
+
+ /** - CAN3 Port output values */
+ canREG3->TIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 1U << 2U )
+ | ( uint32 ) ( ( uint32 ) 1U << 1U );
+
+ canREG3->RIOC = ( uint32 ) ( ( uint32 ) 1U << 18U )
+ | ( uint32 ) ( ( uint32 ) 0U << 17U )
+ | ( uint32 ) ( ( uint32 ) 0U << 16U )
+ | ( uint32 ) ( ( uint32 ) 1U << 3U )
+ | ( uint32 ) ( ( uint32 ) 0U << 2U )
+ | ( uint32 ) ( ( uint32 ) 0U << 1U );
+
+ /** - Leave configuration and initialization mode */
+ canREG3->CTL &= ~( uint32 ) ( 0x00000041U );
+
+ /** @note This function has to be called before the driver can be used.\n
+ * This function has to be executed in privileged mode.\n
+ */
+
+ /* USER CODE BEGIN (5) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (6) */
+/* USER CODE END */
+
+/** @fn uint32 canTransmit(canBASE_t *node, uint32 messageBox, const uint8 * data)
+ * @brief Transmits a CAN message
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @param[in] data Pointer to CAN TX data
+ * @return The function will return:
+ * - 0: When the setup of the TX message box wasn't successful
+ * - 1: When the setup of the TX message box was successful
+ *
+ * This function writes a CAN message into a CAN message box.
+ * This function is not reentrant. However, if a CAN interrupt occurs, the values of
+ * the IF registers are backup up and restored at the end of the ISR, since these are a
+ *shared resource.
+ *
+ */
+/* SourceId : CAN_SourceId_002 */
+/* DesignId : CAN_DesignId_002 */
+/* Requirements : HL_SR208 */
+uint32 canTransmit( canBASE_t * node, uint32 messageBox, const uint8 * data )
+{
+ uint32 i;
+ uint32 success = 0U;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /* USER CODE BEGIN (7) */
+ /* USER CODE END */
+
+ /** - Check for pending message:
+ * - pending message, return 0
+ * - no pending message, start new transmission
+ */
+ if( ( node->TXRQx[ regIndex ] & bitIndex ) != 0U )
+ {
+ success = 0U;
+ }
+
+ else
+ {
+ /** - Wait until IF1 is ready for use */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware
+ * Status check for execution sequence" */
+ while( ( node->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Configure IF1 for
+ * - Message direction - Write
+ * - Data Update
+ * - Start Transmission
+ */
+ node->IF1CMD = 0x87U;
+
+ /** - Copy TX data into IF1 */
+ for( i = 0U; i < 8U; i++ )
+ {
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ node->IF1DATx[ i ] = *data;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ data++;
+#else
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ node->IF1DATx[ s_canByteOrder[ i ] ] = *data;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ data++;
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+ }
+
+ /** - Copy TX data into message box */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF1NO = ( uint8 ) messageBox;
+
+ success = 1U;
+ }
+
+ /** @note The function canInit has to be called before this function can be used.\n
+ * The user is responsible to initialize the message box.
+ */
+
+ /* USER CODE BEGIN (8) */
+ /* USER CODE END */
+
+ return success;
+}
+
+/* USER CODE BEGIN (9) */
+/* USER CODE END */
+
+/** @fn uint32 canGetData(canBASE_t *node, uint32 messageBox, uint8 * const data)
+ * @brief Gets received a CAN message
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @param[out] data Pointer to store CAN RX data
+ * @return The function will return:
+ * - 0: When RX message box hasn't received new data
+ * - 1: When RX data are stored in the data buffer
+ * - 3: When RX data are stored in the data buffer and a message was lost
+ *
+ * This function writes a CAN message into a CAN message box.
+ *
+ */
+/* SourceId : CAN_SourceId_003 */
+/* DesignId : CAN_DesignId_003 */
+/* Requirements : HL_SR209 */
+uint32 canGetData( canBASE_t * node, uint32 messageBox, uint8 * const data )
+{
+ uint32 i;
+ uint32 size;
+ uint8 * pData = data;
+ uint32 success = 0U;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /* USER CODE BEGIN (10) */
+ /* USER CODE END */
+
+ /** - Check if new data have been arrived:
+ * - no new data, return 0
+ * - new data, get received message
+ */
+ if( ( node->NWDATx[ regIndex ] & bitIndex ) == 0U )
+ {
+ success = 0U;
+ }
+
+ else
+ {
+ /** - Wait until IF2 is ready for use */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware
+ * Status check for execution sequence" */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Configure IF2 for
+ * - Message direction - Read
+ * - Data Read
+ * - Clears NewDat bit in the message object.
+ */
+ node->IF2CMD = 0x17U;
+
+ /** - Copy data into IF2 */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF2NO = ( uint8 ) messageBox;
+
+ /** - Wait until data are copied into IF2 */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware
+ * Status check for execution sequence" */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Get number of received bytes
+ * - Value from 0x8 to 0xF equals length 8.
+ */
+ size = node->IF2MCTL & 0xFU;
+
+ if( size > 0x8U )
+ {
+ size = 0x8U;
+ }
+
+ /** - Copy RX data into destination buffer */
+ for( i = 0U; i < size; i++ )
+ {
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ *pData = node->IF2DATx[ i ];
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ pData++;
+#else
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ *pData = node->IF2DATx[ s_canByteOrder[ i ] ];
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ pData++;
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+ }
+
+ success = 1U;
+ }
+
+ /** - Check if data have been lost:
+ * - no data lost, return 1
+ * - data lost, return 3
+ */
+ if( ( node->IF2MCTL & 0x4000U ) == 0x4000U )
+ {
+ success = 3U;
+ }
+
+ /** @note The function canInit has to be called before this function can be used.\n
+ * The user is responsible to initialize the message box.
+ */
+
+ /* USER CODE BEGIN (11) */
+ /* USER CODE END */
+
+ return success;
+}
+
+/** @fn uint32 canGetID(canBASE_t *node, uint32 messageBox)
+ * @brief Gets the Message Box's ID
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @param[out] data Pointer to store CAN RX data
+ * @return The function will return the ID of the message box.
+ *
+ * This function gets the identifier of a CAN message box.
+ *
+ */
+/* SourceId : CAN_SourceId_026 */
+/* DesignId : CAN_DesignId_020 */
+/* Requirements : HL_SR537 */
+uint32 canGetID( canBASE_t * node, uint32 messageBox )
+{
+ uint32 msgBoxID = 0U;
+
+ /** - Wait until IF2 is ready for use */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Configure IF2 for
+ * - Message direction - Read
+ * - Data Read
+ * - Clears NewDat bit in the message object.
+ */
+ node->IF2CMD = 0x20U;
+
+ /** - Copy message box number into IF2 */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF2NO = ( uint8 ) messageBox;
+
+ /** - Wait until data are copied into IF2 */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /* Read Message Box ID from Arbitration register. */
+ msgBoxID = ( node->IF2ARB & 0x1FFFFFFFU );
+
+ return msgBoxID;
+}
+
+/** @fn uint32 canUpdateID(canBASE_t *node, uint32 messageBox, uint32 msgBoxArbitVal)
+ * @brief Change CAN Message Box ID.
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @param[in] msgBoxArbitVal (32 bit value):
+ * Bit 31 - Not used.
+ * Bit 30 - 0 - The 11-bit ("standard") identifier is used for this message
+ *object. 1 - The 29-bit ("extended") identifier is used for this message object. Bit 29 -
+ *0 - Direction = Receive 1 - Direction = Transmit Bit 28:0 - Message Identifier.
+ * @return
+ *
+ *
+ * This function changes the Identifier and other arbitration parameters of a CAN
+ *Message Box.
+ *
+ */
+/* SourceId : CAN_SourceId_027 */
+/* DesignId : CAN_DesignId_021 */
+/* Requirements : HL_SR538 */
+void canUpdateID( canBASE_t * node, uint32 messageBox, uint32 msgBoxArbitVal )
+{
+ /** - Wait until IF2 is ready for use */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Configure IF2 for
+ * - Message direction - Read
+ * - Data Read
+ * - Clears NewDat bit in the message object.
+ */
+ node->IF2CMD = 0xA0U;
+ /* Copy passed value into the arbitration register. */
+ node->IF2ARB &= 0x80000000U;
+ node->IF2ARB |= ( msgBoxArbitVal & 0x7FFFFFFFU );
+
+ /** - Update message box number. */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF2NO = ( uint8 ) messageBox;
+
+ /** - Wait until data are copied into IF2 */
+ while( ( node->IF2STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+}
+
+/* USER CODE BEGIN (12) */
+/* USER CODE END */
+
+/** @fn uint32 canSendRemoteFrame(canBASE_t *node, uint32 messageBox)
+ * @brief Transmits a CAN Remote Frame.
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @param[in] data Pointer to CAN TX data
+ * @return The function will return:
+ * - 0: When the setup of Send Remote Frame from message box wasn't successful
+ * - 1: When the setup of Send Remote Frame from message box was successful
+ *
+ * This function triggers Remote Frame Transmission from CAN message box.
+ * Note : Enable RTR must be set in the Message x Configuration in the GUI( x: 1 - 64)
+ *
+ */
+/* SourceId : CAN_SourceId_028 */
+/* DesignId : CAN_DesignId_022 */
+/* Requirements : HL_SR531 */
+uint32 canSendRemoteFrame( canBASE_t * node, uint32 messageBox )
+{
+ uint32 success = 0U;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /** - Check for pending message:
+ * - pending message, return 0
+ * - no pending message, start new transmission
+ */
+ if( ( node->TXRQx[ regIndex ] & bitIndex ) != 0U )
+ {
+ success = 0U;
+ }
+
+ else
+ {
+ /** - Wait until IF1 is ready for use */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware
+ * Status check for execution sequence" */
+ while( ( node->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Request Transmission by setting TxRqst in message box */
+ node->IF1CMD = ( uint8 ) 0x84U;
+
+ /** - Trigger Remote Frame Transmit from message box */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF1NO = ( uint8 ) messageBox;
+
+ success = 1U;
+ }
+
+ /** @note The function canInit has to be called before this function can be used.\n
+ * The user is responsible to initialize the message box.
+ */
+ return success;
+}
+
+/** @fn uint32 canFillMessageObjectData(canBASE_t *node, uint32 messageBox, const uint8 *
+ * data)
+ * @brief Fills the Message Object with the data but does not initiate transmission.
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @return The function will return:
+ * - 0: When the Fill up of the TX message box wasn't successful
+ * - 1: When the Fill up of the TX message box was successful
+ *
+ * This function fills the Message Object with the data but does not initiate
+ * transmission.
+ *
+ */
+/* SourceId : CAN_SourceId_029 */
+/* DesignId : CAN_DesignId_023 */
+/* Requirements : HL_SR532 */
+uint32 canFillMessageObjectData( canBASE_t * node, uint32 messageBox, const uint8 * data )
+{
+ uint32 i;
+ uint32 success = 0U;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /** - Check for pending message:
+ * - pending message, return 0
+ * - no pending message, start new transmission
+ */
+ if( ( node->TXRQx[ regIndex ] & bitIndex ) != 0U )
+ {
+ success = 0U;
+ }
+ else
+ {
+ /** - Wait until IF1 is ready for use */
+ /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware
+ * Status check for execution sequence" */
+ while( ( node->IF1STAT & 0x80U ) == 0x80U )
+ {
+ } /* Wait */
+
+ /** - Configure IF1 for
+ * - Message direction - Write
+ * - Data Update
+ */
+ node->IF1CMD = 0x83U;
+
+ /** - Copy TX data into IF1 */
+ for( i = 0U; i < 8U; i++ )
+ {
+#if( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) )
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ node->IF1DATx[ i ] = *data;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ data++;
+#else
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ node->IF1DATx[ s_canByteOrder[ i ] ] = *data;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * only allowed in this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Pointer increment needed" */
+ data++;
+#endif /* if ( ( __little_endian__ == 1 ) || ( __LITTLE_ENDIAN__ == 1 ) ) */
+ }
+
+ /** - Copy TX data into message box */
+ /*SAFETYMCUSW 93 S MR: 6.1,6.2,10.1,10.2,10.3,10.4 "LDRA Tool issue" */
+ node->IF1NO = ( uint8 ) messageBox;
+
+ success = 1U;
+ }
+
+ return success;
+}
+
+/** @fn uint32 canIsTxMessagePending(canBASE_t *node, uint32 messageBox)
+ * @brief Gets Tx message box transmission status
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @return The function will return the tx request flag
+ *
+ * Checks to see if the Tx message box has a pending Tx request, returns
+ * 0 is flag not set otherwise will return the Tx request flag itself.
+ */
+/* SourceId : CAN_SourceId_004 */
+/* DesignId : CAN_DesignId_004 */
+/* Requirements : HL_SR210 */
+uint32 canIsTxMessagePending( canBASE_t * node, uint32 messageBox )
+{
+ uint32 flag;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /* USER CODE BEGIN (13) */
+ /* USER CODE END */
+
+ /** - Read Tx request register */
+ flag = node->TXRQx[ regIndex ] & bitIndex;
+
+ /* USER CODE BEGIN (14) */
+ /* USER CODE END */
+
+ return flag;
+}
+
+/* USER CODE BEGIN (15) */
+/* USER CODE END */
+
+/** @fn uint32 canIsRxMessageArrived(canBASE_t *node, uint32 messageBox)
+ * @brief Gets Rx message box reception status
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @return The function will return the new data flag
+ *
+ * Checks to see if the Rx message box has pending Rx data, returns
+ * 0 is flag not set otherwise will return the Tx request flag itself.
+ */
+/* SourceId : CAN_SourceId_005 */
+/* DesignId : CAN_DesignId_005 */
+/* Requirements : HL_SR211 */
+uint32 canIsRxMessageArrived( canBASE_t * node, uint32 messageBox )
+{
+ uint32 flag;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /* USER CODE BEGIN (16) */
+ /* USER CODE END */
+
+ /** - Read Tx request register */
+ flag = node->NWDATx[ regIndex ] & bitIndex;
+
+ /* USER CODE BEGIN (17) */
+ /* USER CODE END */
+
+ return flag;
+}
+
+/* USER CODE BEGIN (18) */
+/* USER CODE END */
+
+/** @fn uint32 canIsMessageBoxValid(canBASE_t *node, uint32 messageBox)
+ * @brief Checks if message box is valid
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] messageBox Message box number of CAN node:
+ * - canMESSAGE_BOX1: CAN message box 1
+ * - canMESSAGE_BOXn: CAN message box n [n: 1-64]
+ * - canMESSAGE_BOX64: CAN message box 64
+ * @return The function will return the new data flag
+ *
+ * Checks to see if the message box is valid for operation, returns
+ * 0 is flag not set otherwise will return the validation flag itself.
+ */
+/* SourceId : CAN_SourceId_006 */
+/* DesignId : CAN_DesignId_006 */
+/* Requirements : HL_SR212 */
+uint32 canIsMessageBoxValid( canBASE_t * node, uint32 messageBox )
+{
+ uint32 flag;
+ uint32 regIndex = ( messageBox - 1U ) >> 5U;
+ uint32 bitIndex = 1U << ( ( messageBox - 1U ) & 0x1FU );
+
+ /* USER CODE BEGIN (19) */
+ /* USER CODE END */
+
+ /** - Read Tx request register */
+ flag = node->MSGVALx[ regIndex ] & bitIndex;
+
+ /* USER CODE BEGIN (20) */
+ /* USER CODE END */
+
+ return flag;
+}
+
+/* USER CODE BEGIN (21) */
+/* USER CODE END */
+
+/** @fn uint32 canGetLastError(canBASE_t *node)
+ * @brief Gets last RX/TX-Error of CAN message traffic
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @return The function will return:
+ * - canERROR_OK (0): When no CAN error occurred
+ * - canERROR_STUFF (1): When a stuff error occurred on RX message
+ * - canERROR_FORMAT (2): When a form/format error occurred on RX message
+ * - canERROR_ACKNOWLEDGE (3): When a TX message wasn't acknowledged
+ * - canERROR_BIT1 (4): When a TX message monitored dominant level where
+ * recessive is expected
+ * - canERROR_BIT0 (5): When a TX message monitored recessive level where
+ * dominant is expected
+ * - canERROR_CRC (6): When a RX message has wrong CRC value
+ * - canERROR_NO (7): When no error occurred since last call of this function
+ *
+ * This function returns the last occurred error code of an RX or TX message,
+ * since the last call of this function.
+ *
+ */
+/* SourceId : CAN_SourceId_007 */
+/* DesignId : CAN_DesignId_007 */
+/* Requirements : HL_SR213 */
+uint32 canGetLastError( canBASE_t * node )
+{
+ uint32 errorCode;
+
+ /* USER CODE BEGIN (22) */
+ /* USER CODE END */
+
+ /** - Get last error code */
+ errorCode = node->ES & 7U;
+
+ /** @note The function canInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (23) */
+ /* USER CODE END */
+
+ return errorCode;
+}
+
+/* USER CODE BEGIN (24) */
+/* USER CODE END */
+
+/** @fn uint32 canGetErrorLevel(canBASE_t *node)
+ * @brief Gets error level of a CAN node
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @return The function will return:
+ * - canLEVEL_ACTIVE (0x00): When RX- and TX error counters are below 96
+ * - canLEVEL_WARNING (0x40): When RX- or TX error counter are between 96 and
+ * 127
+ * - canLEVEL_PASSIVE (0x20): When RX- or TX error counter are between 128 and
+ * 255
+ * - canLEVEL_BUS_OFF (0x80): When RX- or TX error counter are above 255
+ *
+ * This function returns the current error level of a CAN node.
+ *
+ */
+/* SourceId : CAN_SourceId_008 */
+/* DesignId : CAN_DesignId_008 */
+/* Requirements : HL_SR214 */
+uint32 canGetErrorLevel( canBASE_t * node )
+{
+ uint32 errorLevel;
+
+ /* USER CODE BEGIN (25) */
+ /* USER CODE END */
+
+ /** - Get error level */
+ errorLevel = node->ES & 0xE0U;
+
+ /** @note The function canInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (26) */
+ /* USER CODE END */
+
+ return errorLevel;
+}
+
+/* USER CODE BEGIN (27) */
+/* USER CODE END */
+
+/** @fn void canEnableErrorNotification(canBASE_t *node)
+ * @brief Enable error notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * This function will enable the notification for the reaching the error levels warning,
+ * passive and bus off.
+ */
+/* SourceId : CAN_SourceId_009 */
+/* DesignId : CAN_DesignId_009 */
+/* Requirements : HL_SR215 */
+void canEnableErrorNotification( canBASE_t * node )
+{
+ /* USER CODE BEGIN (28) */
+ /* USER CODE END */
+
+ node->CTL |= 8U;
+
+ /** @note The function canInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (29) */
+ /* USER CODE END */
+}
+
+/* USER CODE BEGIN (30) */
+/* USER CODE END */
+
+/** @fn void canEnableStatusChangeNotification(canBASE_t *node)
+ * @brief Enable Status Change notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * This function will enable the notification for the status change RxOK, TxOK, PDA,
+ * WakeupPnd Interrupt.
+ */
+/* SourceId : CAN_SourceId_030 */
+/* DesignId : CAN_DesignId_024 */
+/* Requirements : HL_SR533 */
+void canEnableStatusChangeNotification( canBASE_t * node )
+{
+ node->CTL |= 4U;
+
+ /** @note The function canInit has to be called before this function can be used. */
+}
+
+/** @fn void canDisableStatusChangeNotification(canBASE_t *node)
+ * @brief Disable Status Change notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * This function will disable the notification for the status change RxOK, TxOK, PDA,
+ * WakeupPnd Interrupt.
+ */
+/* SourceId : CAN_SourceId_031 */
+/* DesignId : CAN_DesignId_025 */
+/* Requirements : HL_SR534 */
+void canDisableStatusChangeNotification( canBASE_t * node )
+{
+ node->CTL &= ~( uint32 ) ( 4U );
+
+ /** @note The function canInit has to be called before this function can be used. */
+}
+
+/* USER CODE BEGIN (31) */
+/* USER CODE END */
+
+/** @fn void canDisableErrorNotification(canBASE_t *node)
+ * @brief Disable error notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * This function will disable the notification for the reaching the error levels
+ * warning, passive and bus off.
+ */
+/* SourceId : CAN_SourceId_010 */
+/* DesignId : CAN_DesignId_010 */
+/* Requirements : HL_SR216 */
+void canDisableErrorNotification( canBASE_t * node )
+{
+ /* USER CODE BEGIN (32) */
+ /* USER CODE END */
+
+ node->CTL &= ~( uint32 ) ( 8U );
+
+ /** @note The function canInit has to be called before this function can be used. */
+
+ /* USER CODE BEGIN (33) */
+ /* USER CODE END */
+}
+
+/** @fn void canEnableloopback(canBASE_t *node, canloopBackType_t Loopbacktype)
+ * @brief Disable error notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] Loopbacktype Type of Loopback:
+ * - Internal_Lbk: Internal Loop Back
+ * - External_Lbk: External Loop Back
+ * - Internal_Silent_Lbk: Internal Loop Back with Silent mode.
+ *
+ * This function will enable can loopback mode
+ */
+/* SourceId : CAN_SourceId_011 */
+/* DesignId : CAN_DesignId_011 */
+/* Requirements : HL_SR521 */
+void canEnableloopback( canBASE_t * node, canloopBackType_t Loopbacktype )
+{
+ /* Enter Test Mode */
+ node->CTL |= ( uint32 ) ( ( uint32 ) 1U << 7U );
+
+ /* Configure Loopback */
+ node->TEST |= ( uint32 ) Loopbacktype;
+
+ /** @note The function canInit has to be called before this function can be used. */
+}
+
+/** @fn void canDisableloopback(canBASE_t *node)
+ * @brief Disable error notification
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * This function will disable can loopback mode
+ */
+/* SourceId : CAN_SourceId_012 */
+/* DesignId : CAN_DesignId_012 */
+/* Requirements : HL_SR522 */
+void canDisableloopback( canBASE_t * node )
+{
+ node->TEST &= ~( uint32 ) ( 0x00000118U );
+
+ /* Exit Test Mode */
+ node->CTL &= ~( uint32 ) ( ( uint32 ) 1U << 7U );
+
+ /** @note The function canInit has to be called before this function can be used. */
+}
+
+/** @fn void canIoSetDirection(canBASE_t *node,uint32 TxDir,uint32 RxDir)
+ * @brief Set Port Direction
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] TxDir - TX Pin direction
+ * @param[in] RxDir - RX Pin direction
+ *
+ * Set the direction of CAN pins at runtime when configured as IO pins.
+ */
+/* SourceId : CAN_SourceId_013 */
+/* DesignId : CAN_DesignId_013 */
+/* Requirements : HL_SR217 */
+void canIoSetDirection( canBASE_t * node, uint32 TxDir, uint32 RxDir )
+{
+ /* USER CODE BEGIN (34) */
+ /* USER CODE END */
+
+ node->TIOC = ( ( node->TIOC & 0xFFFFFFFBU ) | ( TxDir << 2U ) );
+ node->RIOC = ( ( node->RIOC & 0xFFFFFFFBU ) | ( RxDir << 2U ) );
+
+ /* USER CODE BEGIN (35) */
+ /* USER CODE END */
+}
+
+/** @fn void canIoSetPort(canBASE_t *node, uint32 TxValue, uint32 RxValue)
+ * @brief Write Port Value
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ * @param[in] TxValue - TX Pin value 0 or 1
+ * @param[in] RxValue - RX Pin value 0 or 1
+ *
+ * Writes a value to TX and RX pin of a given CAN module when configured as IO pins.
+ */
+/* SourceId : CAN_SourceId_014 */
+/* DesignId : CAN_DesignId_014 */
+/* Requirements : HL_SR218 */
+void canIoSetPort( canBASE_t * node, uint32 TxValue, uint32 RxValue )
+{
+ /* USER CODE BEGIN (36) */
+ /* USER CODE END */
+
+ node->TIOC = ( ( node->TIOC & 0xFFFFFFFDU ) | ( TxValue << 1U ) );
+ node->RIOC = ( ( node->RIOC & 0xFFFFFFFDU ) | ( RxValue << 1U ) );
+
+ /* USER CODE BEGIN (37) */
+ /* USER CODE END */
+}
+
+/** @fn uint32 canIoTxGetBit(canBASE_t *node)
+ * @brief Read TX Bit
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * Reads a the current value from the TX pin of the given CAN port
+ */
+/* SourceId : CAN_SourceId_015 */
+/* DesignId : CAN_DesignId_015 */
+/* Requirements : HL_SR219 */
+uint32 canIoTxGetBit( canBASE_t * node )
+{
+ /* USER CODE BEGIN (38) */
+ /* USER CODE END */
+
+ return ( node->TIOC & 1U );
+}
+
+/** @fn uint32 canIoRxGetBit(canBASE_t *node)
+ * @brief Read RX Bit
+ * @param[in] node Pointer to CAN node:
+ * - canREG1: CAN1 node pointer
+ * - canREG2: CAN2 node pointer
+ * - canREG3: CAN3 node pointer
+ *
+ * Reads a the current value from the RX pin of the given CAN port
+ */
+/* SourceId : CAN_SourceId_016 */
+/* DesignId : CAN_DesignId_016 */
+/* Requirements : HL_SR220 */
+uint32 canIoRxGetBit( canBASE_t * node )
+{
+ /* USER CODE BEGIN (39) */
+ /* USER CODE END */
+
+ return ( node->RIOC & 1U );
+}
+
+/** @fn void can1GetConfigValue(can_config_reg_t *config_reg, config_value_type_t type)
+ * @brief Get the initial or current values of the CAN1 configuration registers
+ *
+ * @param[in] *config_reg: pointer to the struct to which the initial or current
+ * value of the configuration registers need to be stored
+ * @param[in] type: whether initial or current value of the configuration registers
+ * need to be stored
+ * - InitialValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ * - CurrentValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ *
+ * This function will copy the initial or current value (depending on the parameter
+ * 'type') of the configuration registers to the struct pointed by config_reg
+ *
+ */
+/* SourceId : CAN_SourceId_017 */
+/* DesignId : CAN_DesignId_017 */
+/* Requirements : HL_SR224 */
+void can1GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type )
+{
+ if( type == InitialValue )
+ {
+ config_reg->CONFIG_CTL = CAN1_CTL_CONFIGVALUE;
+ config_reg->CONFIG_ES = CAN1_ES_CONFIGVALUE;
+ config_reg->CONFIG_BTR = CAN1_BTR_CONFIGVALUE;
+ config_reg->CONFIG_TEST = CAN1_TEST_CONFIGVALUE;
+ config_reg->CONFIG_ABOTR = CAN1_ABOTR_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX0 = CAN1_INTMUX0_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX1 = CAN1_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX2 = CAN1_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX3 = CAN1_INTMUX3_CONFIGVALUE;
+ config_reg->CONFIG_TIOC = CAN1_TIOC_CONFIGVALUE;
+ config_reg->CONFIG_RIOC = CAN1_RIOC_CONFIGVALUE;
+ }
+ else
+ {
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ config_reg->CONFIG_CTL = canREG1->CTL;
+ config_reg->CONFIG_ES = canREG1->ES;
+ config_reg->CONFIG_BTR = canREG1->BTR;
+ config_reg->CONFIG_TEST = canREG1->TEST;
+ config_reg->CONFIG_ABOTR = canREG1->ABOTR;
+ config_reg->CONFIG_INTMUX0 = canREG1->INTMUXx[ 0 ];
+ config_reg->CONFIG_INTMUX1 = canREG1->INTMUXx[ 1 ];
+ config_reg->CONFIG_INTMUX2 = canREG1->INTMUXx[ 2 ];
+ config_reg->CONFIG_INTMUX3 = canREG1->INTMUXx[ 3 ];
+ config_reg->CONFIG_TIOC = canREG1->TIOC;
+ config_reg->CONFIG_RIOC = canREG1->RIOC;
+ }
+}
+
+/** @fn void can2GetConfigValue(can_config_reg_t *config_reg, config_value_type_t type)
+ * @brief Get the initial or current values of the CAN2 configuration registers
+ *
+ * @param[in] *config_reg: pointer to the struct to which the initial or current
+ * value of the configuration registers need to be stored
+ * @param[in] type: whether initial or current value of the configuration registers
+ * need to be stored
+ * - InitialValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ * - CurrentValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ *
+ * This function will copy the initial or current value (depending on the parameter
+ * 'type') of the configuration registers to the struct pointed by config_reg
+ *
+ */
+/* SourceId : CAN_SourceId_018 */
+/* DesignId : CAN_DesignId_017 */
+/* Requirements : HL_SR224 */
+void can2GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type )
+{
+ if( type == InitialValue )
+ {
+ config_reg->CONFIG_CTL = CAN2_CTL_CONFIGVALUE;
+ config_reg->CONFIG_ES = CAN2_ES_CONFIGVALUE;
+ config_reg->CONFIG_BTR = CAN2_BTR_CONFIGVALUE;
+ config_reg->CONFIG_TEST = CAN2_TEST_CONFIGVALUE;
+ config_reg->CONFIG_ABOTR = CAN2_ABOTR_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX0 = CAN2_INTMUX0_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX1 = CAN2_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX2 = CAN2_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX3 = CAN2_INTMUX3_CONFIGVALUE;
+ config_reg->CONFIG_TIOC = CAN2_TIOC_CONFIGVALUE;
+ config_reg->CONFIG_RIOC = CAN2_RIOC_CONFIGVALUE;
+ }
+ else
+ {
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ config_reg->CONFIG_CTL = canREG2->CTL;
+ config_reg->CONFIG_ES = canREG2->ES;
+ config_reg->CONFIG_BTR = canREG2->BTR;
+ config_reg->CONFIG_TEST = canREG2->TEST;
+ config_reg->CONFIG_ABOTR = canREG2->ABOTR;
+ config_reg->CONFIG_INTMUX0 = canREG2->INTMUXx[ 0 ];
+ config_reg->CONFIG_INTMUX1 = canREG2->INTMUXx[ 1 ];
+ config_reg->CONFIG_INTMUX2 = canREG2->INTMUXx[ 2 ];
+ config_reg->CONFIG_INTMUX3 = canREG2->INTMUXx[ 3 ];
+ config_reg->CONFIG_TIOC = canREG2->TIOC;
+ config_reg->CONFIG_RIOC = canREG2->RIOC;
+ }
+}
+
+/** @fn void can3GetConfigValue(can_config_reg_t *config_reg, config_value_type_t type)
+ * @brief Get the initial or current values of the CAN3 configuration registers
+ *
+ * @param[in] *config_reg: pointer to the struct to which the initial or current
+ * value of the configuration registers need to be stored
+ * @param[in] type: whether initial or current value of the configuration registers
+ * need to be stored
+ * - InitialValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ * - CurrentValue: initial value of the configuration registers
+ * will be stored in the struct pointed by config_reg
+ *
+ * This function will copy the initial or current value (depending on the parameter
+ * 'type') of the configuration registers to the struct pointed by config_reg
+ *
+ */
+/* SourceId : CAN_SourceId_019 */
+/* DesignId : CAN_DesignId_017 */
+/* Requirements : HL_SR224 */
+void can3GetConfigValue( can_config_reg_t * config_reg, config_value_type_t type )
+{
+ if( type == InitialValue )
+ {
+ config_reg->CONFIG_CTL = CAN3_CTL_CONFIGVALUE;
+ config_reg->CONFIG_ES = CAN3_ES_CONFIGVALUE;
+ config_reg->CONFIG_BTR = CAN3_BTR_CONFIGVALUE;
+ config_reg->CONFIG_TEST = CAN3_TEST_CONFIGVALUE;
+ config_reg->CONFIG_ABOTR = CAN3_ABOTR_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX0 = CAN3_INTMUX0_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX1 = CAN3_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX2 = CAN3_INTMUX2_CONFIGVALUE;
+ config_reg->CONFIG_INTMUX3 = CAN3_INTMUX3_CONFIGVALUE;
+ config_reg->CONFIG_TIOC = CAN3_TIOC_CONFIGVALUE;
+ config_reg->CONFIG_RIOC = CAN3_RIOC_CONFIGVALUE;
+ }
+ else
+ {
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ config_reg->CONFIG_CTL = canREG3->CTL;
+ config_reg->CONFIG_ES = canREG3->ES;
+ config_reg->CONFIG_BTR = canREG3->BTR;
+ config_reg->CONFIG_TEST = canREG3->TEST;
+ config_reg->CONFIG_ABOTR = canREG3->ABOTR;
+ config_reg->CONFIG_INTMUX0 = canREG3->INTMUXx[ 0 ];
+ config_reg->CONFIG_INTMUX1 = canREG3->INTMUXx[ 1 ];
+ config_reg->CONFIG_INTMUX2 = canREG3->INTMUXx[ 2 ];
+ config_reg->CONFIG_INTMUX3 = canREG3->INTMUXx[ 3 ];
+ config_reg->CONFIG_TIOC = canREG3->TIOC;
+ config_reg->CONFIG_RIOC = canREG3->RIOC;
+ }
+}
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/dabort.S b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/dabort.S
new file mode 100644
index 000000000..2721421d6
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/dabort.S
@@ -0,0 +1,167 @@
+/*--------------------------------------------------------------------------
+ dabort.s
+
+ Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+
+--------------------------------------------------------------------------*/
+
+
+ .section .text
+ .syntax unified
+ .cpu cortex-r4
+ .arm
+
+
+/*-------------------------------------------------------------------------------*/
+@ Run Memory Test
+
+ .extern custom_dabort
+ .extern vHandleMemoryFault
+ .weak _dabort
+ .type _dabort, %function
+
+_dabort:
+ stmfd r13!, {r0 - r12, lr}@ push registers and link register on to stack
+ ldr r12, esmsr3 @ ESM Group3 status register
+ ldr r0, [r12]
+ tst r0, #0x8 @ check if bit 3 is set, this indicates uncorrectable ECC error on B0TCM
+ bne ramErrorFound
+ tst r0, #0x20 @ check if bit 5 is set, this indicates uncorrectable ECC error on B1TCM
+ bne ramErrorFound2
+
+noRAMerror:
+ tst r0, #0x80 @ check if bit 7 is set, this indicates uncorrectable ECC error on ATCM
+ bne flashErrorFound
+
+/* Create a Exception Fault Stack similiar to the way it is created by the ARMvM
+ * architecture. The auto-pushed exception stack will contain:
+ * +-------+-----+----------+----------+------+
+ * | R0-R3 | R12 | LR (R14) | PC (R15) | CPSR |
+ * +-------+-----+----------+----------+------+
+ *
+ * <-------><----><---------><---------><----->
+ * 4 1 1 1 1
+*/
+MemManage_Handler:
+ /* Pop the pushed values so we can re-do the stack the way we need it to be */
+ LDMFD R13!, {R0 - R12, LR}
+ /* Abort exceptions increment the LR 0x8 after the fault-inducing instruction */
+ SUB LR, #0x8
+
+ SRSDB SP!, #0x17 /* Save the pre-exception PC and CPSR */
+ STMDB SP, { R0-R3, R12, LR }^ /* Save the user R0-R3, R12, and LR */
+ SUB SP, SP, #0x18 /* Can't auto-increment SP with ^ operator */
+ /* Need the SP in R0 */
+ MOV R0, SP
+
+ /* Call vHandleMemoryFault - This will modify the return state if necessary */
+ BLX vHandleMemoryFault
+
+ POP { R0-R3, R12, LR } /* Pop the original values off the stack */
+ /* Return to the next instruction after the fault was generated */
+ RFEIA SP!
+
+ramErrorFound:
+ ldr r1, ramctrl @ RAM control register for B0TCM TCRAMW
+ ldr r2, [r1]
+ tst r2, #0x100 @ check if bit 8 is set in RAMCTRL, this indicates ECC memory write is enabled
+ beq ramErrorReal
+ mov r2, #0x20
+ str r2, [r1, #0x10] @ clear RAM error status register
+
+ mov r2, #0x08
+ str r2, [r12] @ clear ESM group3 channel3 flag for uncorrectable RAM ECC errors
+ mov r2, #5
+ str r2, [r12, #0x18] @ The nERROR pin will become inactive once the LTC counter expires
+
+ ldmfd r13!, {r0 - r12, lr}
+ subs pc, lr, #4 @ branch to instruction after the one that caused the abort
+ @ this is the case because the data abort was caused intentionally
+ @ and we do not want to cause the same data abort again.
+
+ramErrorFound2:
+ ldr r1, ram2ctrl @ RAM control register for B1TCM TCRAMW
+ ldr r2, [r1]
+ tst r2, #0x100 @ check if bit 8 is set in RAMCTRL, this indicates ECC memory write is enabled
+ beq ramErrorReal
+ mov r2, #0x20
+ str r2, [r1, #0x10] @ clear RAM error status register
+
+ mov r2, #0x20
+ str r2, [r12] @ clear ESM group3 flags channel5 flag for uncorrectable RAM ECC errors
+ mov r2, #5
+ str r2, [r12, #0x18] @ The nERROR pin will become inactive once the LTC counter expires
+
+ ldmfd r13!, {r0 - r12, lr}
+ subs pc, lr, #4 @ branch to instruction after the one that caused the abort
+ @ this is the case because the data abort was caused intentionally
+ @ and we do not want to cause the same data abort again.
+
+
+ramErrorReal:
+ b ramErrorReal @ branch here forever as continuing operation is not recommended
+
+flashErrorFound:
+ ldr r1, flashbase
+ ldr r2, [r1, #0x6C] @ read FDIAGCTRL register
+
+ mov r2, r2, lsr #16
+ tst r2, #5 @ check if bits 19:16 are 5, this indicates diagnostic mode is enabled
+ beq flashErrorReal
+ mov r2, #1
+ mov r2, r2, lsl #8
+
+ str r2, [r1, #0x1C] @ clear FEDACSTATUS error flag
+
+ mov r2, #0x80
+ str r2, [r12] @ clear ESM group3 flag for uncorrectable flash ECC error
+ mov r2, #5
+ str r2, [r12, #0x18] @ The nERROR pin will become inactive once the LTC counter expires
+
+ ldmfd r13!, {r0 - r12, lr}
+ subs pc, lr, #4 @ branch to instruction after the one that caused the abort
+ @ this is the case because the data abort was caused intentionally
+ @ and we do not want to cause the same data abort again.
+
+
+flashErrorReal:
+ b flashErrorReal @ branch here forever as continuing operation is not recommended
+
+esmsr3: .word 0xFFFFF520
+ramctrl: .word 0xFFFFF800
+ram2ctrl: .word 0xFFFFF900
+ram1errstat: .word 0xFFFFF810
+ram2errstat: .word 0xFFFFF910
+flashbase: .word 0xFFF87000
+
+
+
diff --git a/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/emac.c b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/emac.c
new file mode 100644
index 000000000..0a88081db
--- /dev/null
+++ b/FreeRTOS/Demo/CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC/BoardFiles/source/emac.c
@@ -0,0 +1,1947 @@
+/**
+ * \file emac.c
+ *
+ * \brief EMAC APIs.
+ *
+ * This file contains the device abstraction layer APIs for EMAC.
+ */
+
+/*
+ * Copyright (C) 2009-2018 Texas Instruments Incorporated - 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.
+ *
+ */
+
+/* USER CODE BEGIN (0) */
+/* USER CODE END */
+
+#include "emac.h"
+#include "sys_vim.h"
+
+/* USER CODE BEGIN (1) */
+/* USER CODE END */
+
+/* Defining interface for all the emac instances */
+hdkif_t hdkif_data[ MAX_EMAC_INSTANCE ];
+/*SAFETYMCUSW 25 D MR:8.7 "Statically allocated memory needs to be available to
+ * entire application." */
+static uint8_t pbuf_array[ MAX_RX_PBUF_ALLOC ][ MAX_TRANSFER_UNIT ];
+
+/*******************************************************************************
+ * INTERNAL MACRO DEFINITIONS
+ *******************************************************************************/
+#define EMAC_CONTROL_RESET ( 0x01U )
+#define EMAC_SOFT_RESET ( 0x01U )
+#define EMAC_MAX_HEADER_DESC ( 8U )
+#define EMAC_UNICAST_DISABLE ( 0xFFU )
+
+/*******************************************************************************
+ * API FUNCTION DEFINITIONS
+ *******************************************************************************/
+
+/**
+ * \brief Enables the TXPULSE Interrupt Generation.
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param emacCtrlBase Base address of the EMAC CONTROL module registers
+ * \param ctrlCore Channel number for which the interrupt to be enabled in EMAC
+ *Control module \param channel Channel number for which interrupt to be enabled
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_001 */
+/* DesignId : ETH_DesignId_001*/
+/* Requirements : HL_ETH_SR15 */
+void EMACTxIntPulseEnable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel )
+{
+ HWREG( emacBase + EMAC_TXINTMASKSET ) |= ( ( uint32 ) 1U << channel );
+
+ HWREG( emacCtrlBase + EMAC_CTRL_CnTXEN( ctrlCore ) ) |= ( ( uint32 ) 1U << channel );
+}
+
+/**
+ * \brief Disables the TXPULSE Interrupt Generation.
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param emacCtrlBase Base address of the EMAC CONTROL module registers
+ * \param ctrlCore Channel number for which the interrupt to be enabled in EMAC
+ *Control module \param channel Channel number for which interrupt to be disabled
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_002 */
+/* DesignId : ETH_DesignId_002*/
+/* Requirements : HL_ETH_SR15 */
+void EMACTxIntPulseDisable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_TXINTMASKCLEAR ) |= ( ( uint32 ) 1U << channel );
+
+ HWREG( emacCtrlBase
+ + EMAC_CTRL_CnTXEN( ctrlCore ) ) &= ( ~( ( uint32 ) 1U << channel ) );
+}
+
+/**
+ * \brief Enables the RXPULSE Interrupt Generation.
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param emacCtrlBase Base address of the EMAC CONTROL module registers
+ * \param ctrlCore Control core for which the interrupt to be enabled.
+ * \param channel Channel number for which interrupt to be enabled
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_003 */
+/* DesignId : ETH_DesignId_003*/
+/* Requirements : HL_ETH_SR15 */
+void EMACRxIntPulseEnable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_RXINTMASKSET ) |= ( ( uint32 ) 1U << channel );
+
+ HWREG( emacCtrlBase + EMAC_CTRL_CnRXEN( ctrlCore ) ) |= ( ( uint32 ) 1U << channel );
+}
+
+/**
+ * \brief Disables the RXPULSE Interrupt Generation.
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param emacCtrlBase Base address of the EMAC CONTROL module registers
+ * \param ctrlCore Control core for which the interrupt to be disabled.
+ * \param channel Channel number for which interrupt to be disabled
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_004 */
+/* DesignId : ETH_DesignId_004*/
+/* Requirements : HL_ETH_SR15 */
+void EMACRxIntPulseDisable( uint32 emacBase,
+ uint32 emacCtrlBase,
+ uint32 ctrlCore,
+ uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXINTMASKCLEAR ) |= ( ( uint32 ) 1U << channel );
+
+ HWREG( emacCtrlBase
+ + EMAC_CTRL_CnRXEN( ctrlCore ) ) &= ( ~( ( uint32 ) 1U << channel ) );
+}
+
+/**
+ * \brief This API sets the RMII speed. The RMII Speed can be 10 Mbps or
+ * 100 Mbps
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param speed speed for setting.
+ * speed can take the following values. \n
+ * EMAC_RMIISPEED_10MBPS - 10 Mbps \n
+ * EMAC_RMIISPEED_100MBPS - 100 Mbps.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_005 */
+/* DesignId : ETH_DesignId_005*/
+/* Requirements : HL_ETH_SR19 */
+void EMACRMIISpeedSet( uint32 emacBase, uint32 speed )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_RMIISPEED );
+
+ HWREG( emacBase + EMAC_MACCONTROL ) |= speed;
+}
+/* SourceId : ETH_SourceId_006 */
+/* DesignId : ETH_DesignId_006*/
+/* Requirements : HL_ETH_SR18 */
+
+/**
+ * \brief This API set the GMII bit, RX and TX are enabled for receive and transmit.
+ * Note: This is not the API to enable MII.
+ * \param emacBase Base address of the EMAC Module registers.
+ *
+ * \return None
+ *
+ **/
+void EMACMIIEnable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_GMIIEN;
+}
+
+/**
+ * \brief This API clears the GMII bit, Rx and Tx are held in reset.
+ * Note: This is not the API to disable MII.
+ * \param emacBase Base address of the EMAC Module registers.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_007 */
+/* DesignId : ETH_DesignId_007*/
+/* Requirements : HL_ETH_SR18 */
+void EMACMIIDisable( uint32 emacBase )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_GMIIEN );
+}
+
+/**
+ * \brief This API sets the duplex mode of operation(full/half) for MAC.
+ *
+ * \param emacBase Base address of the EMAC Module registers.
+ * \param duplexMode duplex mode of operation.
+ * duplexMode can take the following values. \n
+ * EMAC_DUPLEX_FULL - Full Duplex \n
+ * EMAC_DUPLEX_HALF - Half Duplex.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_008 */
+/* DesignId : ETH_DesignId_008*/
+/* Requirements : HL_ETH_SR21 */
+void EMACDuplexSet( uint32 emacBase, uint32 duplexMode )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_FULLDUPLEX );
+
+ HWREG( emacBase + EMAC_MACCONTROL ) |= duplexMode;
+}
+
+/**
+ * \brief API to enable the transmit in the TX Control Register
+ * After the transmit is enabled, any write to TXHDP of
+ * a channel will start transmission
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_009 */
+/* DesignId : ETH_DesignId_009*/
+/* Requirements : HL_ETH_SR21 */
+void EMACTxEnable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_TXCONTROL ) = EMAC_TXCONTROL_TXEN;
+}
+
+/**
+ * \brief API to disable the transmit in the TX Control Register
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_010 */
+/* DesignId : ETH_DesignId_010*/
+/* Requirements : HL_ETH_SR21 */
+void EMACTxDisable( uint32 emacBase )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_TXCONTROL ) = EMAC_TXCONTROL_TXDIS;
+}
+
+/**
+ * \brief API to enable the receive in the RX Control Register
+ * After the receive is enabled, and write to RXHDP of
+ * a channel, the data can be received in the destination
+ * specified by the corresponding RX buffer descriptor.
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_011*/
+/* DesignId : ETH_DesignId_011*/
+/* Requirements : HL_ETH_SR21 */
+void EMACRxEnable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_RXCONTROL ) = EMAC_RXCONTROL_RXEN;
+}
+
+/**
+ * \brief API to disable the receive in the RX Control Register
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_012*/
+/* DesignId : ETH_DesignId_012*/
+/* Requirements : HL_ETH_SR21 */
+void EMACRxDisable( uint32 emacBase )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_RXCONTROL ) = EMAC_RXCONTROL_RXDIS;
+}
+
+/**
+ * \brief API to write the TX HDP register. If transmit is enabled,
+ * write to the TX HDP will immediately start transmission.
+ * The data will be taken from the buffer pointer of the TX buffer
+ * descriptor written to the TX HDP
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.\n
+ * \param descHdr Address of the TX buffer descriptor
+ * \param channel Channel Number
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_013*/
+/* DesignId : ETH_DesignId_013*/
+/* Requirements : HL_ETH_SR16 */
+void EMACTxHdrDescPtrWrite( uint32 emacBase, uint32 descHdr, uint32 channel )
+{
+ HWREG( emacBase + EMAC_TXHDP( channel ) ) = descHdr;
+}
+
+/**
+ * \brief API to write the RX HDP register. If receive is enabled,
+ * write to the RX HDP will enable data reception to point to
+ * the corresponding RX buffer descriptor's buffer pointer.
+ *
+ * \param emacBase Base Address of the EMAC Module Registers.\n
+ * \param descHdr Address of the RX buffer descriptor
+ * \param channel Channel Number
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_014 */
+/* DesignId : ETH_DesignId_014*/
+/* Requirements : HL_ETH_SR16 */
+void EMACRxHdrDescPtrWrite( uint32 emacBase, uint32 descHdr, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXHDP( channel ) ) = descHdr;
+}
+
+/**
+ * \brief This API Initializes the EMAC and EMAC Control modules. The
+ * EMAC Control module is reset, the CPPI RAM is cleared. also,
+ * all the interrupts are disabled. This API does not enable any
+ * interrupt or operation of the EMAC.
+ *
+ * \param emacCtrlBase Base Address of the EMAC Control module
+ * registers.\n
+ * \param emacBase Base address of the EMAC module registers
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_015 */
+/* DesignId : ETH_DesignId_015*/
+/* Requirements : HL_ETH_SR6 */
+void EMACInit( uint32 emacCtrlBase, uint32 emacBase )
+{
+ uint32 cnt;
+
+ /* Reset the EMAC Control Module. This clears the CPPI RAM also */
+ HWREG( emacCtrlBase + EMAC_CTRL_SOFTRESET ) = EMAC_CONTROL_RESET;
+
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( HWREG( emacCtrlBase + EMAC_CTRL_SOFTRESET ) & EMAC_CONTROL_RESET )
+ == EMAC_CONTROL_RESET )
+ {
+ } /* Wait */
+
+ /* Reset the EMAC Module. This clears the CPPI RAM also */
+ HWREG( emacBase + EMAC_SOFTRESET ) = EMAC_SOFT_RESET;
+
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( HWREG( emacBase + EMAC_SOFTRESET ) & EMAC_SOFT_RESET ) == EMAC_SOFT_RESET )
+ {
+ } /* Wait */
+
+ HWREG( emacBase + EMAC_MACCONTROL ) = 0U;
+ HWREG( emacBase + EMAC_RXCONTROL ) = 0U;
+ HWREG( emacBase + EMAC_TXCONTROL ) = 0U;
+
+ /* Initialize all the header descriptor pointer registers */
+ for( cnt = 0U; cnt < EMAC_MAX_HEADER_DESC; cnt++ )
+ {
+ HWREG( emacBase + EMAC_RXHDP( cnt ) ) = 0U;
+ HWREG( emacBase + EMAC_TXHDP( cnt ) ) = 0U;
+ HWREG( emacBase + EMAC_RXCP( cnt ) ) = 0U;
+ HWREG( emacBase + EMAC_TXCP( cnt ) ) = 0U;
+ HWREG( emacBase + EMAC_RXFREEBUFFER( cnt ) ) = 0xFFU;
+ }
+
+ /* Clear the interrupt enable for all the channels */
+ HWREG( emacBase + EMAC_TXINTMASKCLEAR ) = 0xFFU;
+ HWREG( emacBase + EMAC_RXINTMASKCLEAR ) = 0xFFU;
+
+ HWREG( emacBase + EMAC_MACHASH1 ) = 0U;
+ HWREG( emacBase + EMAC_MACHASH2 ) = 0U;
+
+ HWREG( emacBase + EMAC_RXBUFFEROFFSET ) = 0U;
+}
+
+/**
+ * \brief Sets the MAC Address in MACSRCADDR registers.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param macAddr Start address of a MAC address array.
+ * The array[0] shall be the LSB of the MAC address
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_016 */
+/* DesignId : ETH_DesignId_016*/
+/* Requirements : HL_ETH_SR7 */
+void EMACMACSrcAddrSet( uint32 emacBase, uint8 macAddr[ 6 ] )
+{
+ HWREG( emacBase + EMAC_MACSRCADDRHI ) = ( ( uint32 ) macAddr[ 5U ]
+ | ( ( uint32 ) macAddr[ 4U ] << 8U )
+ | ( ( uint32 ) macAddr[ 3U ] << 16U )
+ | ( ( uint32 ) macAddr[ 2U ] << 24U ) );
+ HWREG( emacBase + EMAC_MACSRCADDRLO ) = ( ( uint32 ) macAddr[ 1U ]
+ | ( ( uint32 ) macAddr[ 0U ] << 8U ) );
+}
+
+/**
+ * \brief Sets the MAC Address in MACADDR registers.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number
+ * \param matchFilt Match or Filter
+ * \param macAddr Start address of a MAC address array.
+ * The array[0] shall be the LSB of the MAC address
+ * matchFilt can take the following values \n
+ * EMAC_MACADDR_NO_MATCH_NO_FILTER - Address is not used to match
+ * or filter incoming packet. \n
+ * EMAC_MACADDR_FILTER - Address is used to filter incoming packets \n
+ * EMAC_MACADDR_MATCH - Address is used to match incoming packets \n
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_017 */
+/* DesignId : ETH_DesignId_017*/
+/* Requirements : HL_ETH_SR7 */
+void EMACMACAddrSet( uint32 emacBase,
+ uint32 channel,
+ uint8 macAddr[ 6 ],
+ uint32 matchFilt )
+{
+ HWREG( emacBase + EMAC_MACINDEX ) = channel;
+
+ HWREG( emacBase + EMAC_MACADDRHI ) = ( ( uint32 ) macAddr[ 5U ]
+ | ( ( uint32 ) macAddr[ 4U ] << 8U )
+ | ( ( uint32 ) macAddr[ 3U ] << 16U )
+ | ( ( uint32 ) macAddr[ 2U ] << 24U ) );
+ HWREG( emacBase + EMAC_MACADDRLO ) = ( ( uint32 ) macAddr[ 1U ]
+ | ( ( uint32 ) macAddr[ 0U ] << 8U )
+ | matchFilt | ( channel << 16U ) );
+}
+
+/**
+ * \brief Acknowledges an interrupt processed to the EMAC Control Core.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param eoiFlag Type of interrupt to acknowledge to the EMAC Control
+ * module.
+ * eoiFlag can take the following values \n
+ * EMAC_INT_CORE0_TX - Core 0 TX Interrupt
+ * EMAC_INT_CORE1_TX - Core 1 TX Interrupt
+ * EMAC_INT_CORE2_TX - Core 2 TX Interrupt
+ * EMAC_INT_CORE0_RX - Core 0 RX Interrupt
+ * EMAC_INT_CORE1_RX - Core 1 RX Interrupt
+ * EMAC_INT_CORE2_RX - Core 2 RX Interrupt
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_018 */
+/* DesignId : ETH_DesignId_018*/
+/* Requirements : HL_ETH_SR15 */
+void EMACCoreIntAck( uint32 emacBase, uint32 eoiFlag )
+{
+ /* Acknowledge the EMAC Control Core */
+ HWREG( emacBase + EMAC_MACEOIVECTOR ) = eoiFlag;
+}
+
+/**
+ * \brief Writes the the TX Completion Pointer for a specific channel
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ * \param comPtr Completion Pointer Value to be written
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_019 */
+/* DesignId : ETH_DesignId_019*/
+/* Requirements : HL_ETH_SR27 */
+void EMACTxCPWrite( uint32 emacBase, uint32 channel, uint32 comPtr )
+{
+ HWREG( emacBase + EMAC_TXCP( channel ) ) = comPtr;
+}
+
+/**
+ * \brief Writes the the RX Completion Pointer for a specific channel
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ * \param comPtr Completion Pointer Value to be written
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_020 */
+/* DesignId : ETH_DesignId_020*/
+/* Requirements : HL_ETH_SR27 */
+void EMACRxCPWrite( uint32 emacBase, uint32 channel, uint32 comPtr )
+{
+ HWREG( emacBase + EMAC_RXCP( channel ) ) = comPtr;
+}
+
+/**
+ * \brief Enables a specific channel to receive broadcast frames
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_021 */
+/* DesignId : ETH_DesignId_021*/
+/* Requirements : HL_ETH_SR28 */
+void EMACRxBroadCastEnable( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXBROADCH );
+
+ HWREG(
+ emacBase
+ + EMAC_RXMBPENABLE ) |= ( ( uint32 ) EMAC_RXMBPENABLE_RXBROADEN
+ | ( ( uint32 ) channel
+ << ( uint32 ) EMAC_RXMBPENABLE_RXBROADCH_SHIFT ) );
+}
+
+/**
+ * \brief Disables a specific channel to receive broadcast frames
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_022 */
+/* DesignId : ETH_DesignId_022*/
+/* Requirements : HL_ETH_SR28 */
+void EMACRxBroadCastDisable( uint32 emacBase, uint32 channel )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXBROADCH );
+ /* Broadcast Frames are filtered. */
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXBROADEN );
+}
+
+/**
+ * \brief Enables a specific channel to receive multicast frames
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_023 */
+/* DesignId : ETH_DesignId_023*/
+/* Requirements : HL_ETH_SR28 */
+void EMACRxMultiCastEnable( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXMULTCH );
+
+ HWREG( emacBase + EMAC_RXMBPENABLE ) |= ( ( uint32 ) EMAC_RXMBPENABLE_RXMULTEN
+ | ( channel ) );
+}
+
+/**
+ * \brief Disables a specific channel to receive multicast frames
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_024 */
+/* DesignId : ETH_DesignId_024*/
+/* Requirements : HL_ETH_SR28 */
+void EMACRxMultiCastDisable( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXMULTCH );
+
+ HWREG( emacBase + EMAC_RXMBPENABLE ) &= ( ~( uint32 ) EMAC_RXMBPENABLE_RXMULTEN );
+}
+
+/**
+ * \brief Enables unicast for a specific channel
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_025 */
+/* DesignId : ETH_DesignId_025*/
+/* Requirements : HL_ETH_SR14 */
+void EMACRxUnicastSet( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXUNICASTSET ) |= ( ( uint32 ) 1U << channel );
+}
+
+/**
+ * \brief Disables unicast for a specific channel
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_026 */
+/* DesignId : ETH_DesignId_026*/
+/* Requirements : HL_ETH_SR14 */
+void EMACRxUnicastClear( uint32 emacBase, uint32 channel )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ HWREG( emacBase + EMAC_RXUNICASTCLEAR ) |= ( ( uint32 ) 1U << channel );
+}
+
+/**
+ * \brief Set the free buffers for a specific channel
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ * \param nBuf Number of free buffers
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_027 */
+/* DesignId : ETH_DesignId_027*/
+/* Requirements : HL_ETH_SR20 */
+void EMACNumFreeBufSet( uint32 emacBase, uint32 channel, uint32 nBuf )
+{
+ HWREG( emacBase + EMAC_RXFREEBUFFER( channel ) ) = nBuf;
+}
+
+/**
+ * \brief Gets the interrupt vectors of EMAC, which are pending
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ *
+ * \return Vectors
+ *
+ **/
+/* SourceId : ETH_SourceId_028 */
+/* DesignId : ETH_DesignId_028*/
+/* Requirements : HL_ETH_SR15 */
+uint32 EMACIntVectorGet( uint32 emacBase )
+{
+ return ( HWREG( emacBase + EMAC_MACINVECTOR ) );
+}
+
+/**
+ * Function to setup the instance parameters inside the interface
+ * @param hdkif Network interface structure
+ * @return none.
+ */
+/* SourceId : ETH_SourceId_029 */
+/* DesignId : ETH_DesignId_029*/
+/* Requirements : HL_ETH_SR6 */
+void EMACInstConfig( hdkif_t * hdkif )
+{
+ hdkif->emac_base = EMAC_0_BASE;
+ hdkif->emac_ctrl_base = EMAC_CTRL_0_BASE;
+ hdkif->emac_ctrl_ram = EMAC_CTRL_RAM_0_BASE;
+ hdkif->mdio_base = MDIO_BASE;
+ hdkif->phy_addr = 1U;
+ /* (MISRA-C:2004 10.1/R) MISRA error reported with Code Composer Studio MISRA checker.
+ */
+ hdkif->phy_autoneg = &Dp83640AutoNegotiate;
+ hdkif->phy_partnerability = &Dp83640PartnerAbilityGet;
+}
+
+/**
+ * Function to setup the link. AutoNegotiates with the phy for link
+ * setup and set the EMAC with the result of autonegotiation.
+ * @param hdkif Network interface structure.
+ * @return ERR_OK if everything passed
+ * others if not passed
+ */
+/* SourceId : ETH_SourceId_030 */
+/* DesignId : ETH_DesignId_030*/
+/* Requirements : HL_ETH_SR6 */
+uint32 EMACLinkSetup( hdkif_t * hdkif )
+{
+ uint32 linkstat = EMAC_ERR_CONNECT;
+ uint16 partnr_ablty = 0U;
+ uint32 phyduplex = EMAC_DUPLEX_HALF;
+ volatile uint32 delay = 0xFFFFFU;
+
+ if( Dp83640AutoNegotiate( ( uint32 ) hdkif->mdio_base,
+ ( uint32 ) hdkif->phy_addr,
+ ( uint16 ) ( ( uint16 ) DP83640_100BTX
+ | ( uint16 ) DP83640_100BTX_FD
+ | ( uint16 ) DP83640_10BT
+ | ( uint16 ) DP83640_10BT_FD ) )
+ == TRUE )
+ {
+ linkstat = EMAC_ERR_OK;
+ /* (MISRA-C:2004 10.1/R) MISRA error reported with Code Composer Studio MISRA
+ * checker (due to use of & ?) */
+ ( void ) Dp83640PartnerAbilityGet( hdkif->mdio_base,
+ hdkif->phy_addr,
+ &partnr_ablty );
+
+ /* Check for 100 Mbps and duplex capability */
+ if( ( partnr_ablty & DP83640_100BTX_FD ) != 0U )
+ {
+ phyduplex = EMAC_DUPLEX_FULL;
+ }
+ }
+
+ else
+ {
+ linkstat = EMAC_ERR_CONNECT;
+ }
+
+ /* Set the EMAC with the negotiation results if it is successful */
+ if( linkstat == EMAC_ERR_OK )
+ {
+ EMACDuplexSet( hdkif->emac_base, phyduplex );
+ }
+
+ /* Wait for the MII to settle down */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ while( delay != 0U )
+ {
+ delay--;
+ }
+
+ return linkstat;
+}
+
+/**
+ * \brief Perform a transmit queue teardown, that is, transmission is aborted.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_031 */
+/* DesignId : ETH_DesignId_031*/
+/* Requirements : HL_ETH_SR22 */
+void EMACTxTeardown( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_TXTEARDOWN ) &= ( channel );
+}
+
+/**
+ * \brief Perform a receive queue teardown, that is, reception is aborted.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_032 */
+/* DesignId : ETH_DesignId_032*/
+/* Requirements : HL_ETH_SR22 */
+void EMACRxTeardown( uint32 emacBase, uint32 channel )
+{
+ HWREG( emacBase + EMAC_RXTEARDOWN ) &= ( channel );
+}
+
+/**
+ * \brief Perform multicast frame filtering using the MAC Hash Registers.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param hashTable The hash table which specifies which bits are to be accepted.
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_033 */
+/* DesignId : ETH_DesignId_033*/
+/* Requirements : HL_ETH_SR24 */
+void EMACFrameSelect( uint32 emacBase, uint64 hashTable )
+{
+ HWREG( emacBase + EMAC_MACHASH1 ) = ( uint32 ) ( hashTable & 0xFFFFFFFFU );
+ HWREG( emacBase + EMAC_MACHASH2 ) = ( uint32 ) ( hashTable >> 32U );
+}
+
+/**
+ * \brief Sets the Transmit Queue Priority type in the MACCONTROL Register
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param txPType The Transmit Queue Priority Type.
+ * 0 results in a round-robin scheme being used to select the next
+ *channel, while 1 results in a fixed-priority scheme( channel 7 highest priority).
+ *
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_034 */
+/* DesignId : ETH_DesignId_034*/
+/* Requirements : HL_ETH_SR25 */
+void EMACTxPrioritySelect( uint32 emacBase, uint32 txPType )
+{
+ /* 1- The queue uses a fixed-priority (channel 7 highest priority) scheme */
+ if( txPType == 1U )
+ {
+ HWREG( emacBase
+ + EMAC_MACCONTROL ) &= ( ~( uint32 ) ( EMAC_MACCONTROL_TXPTYPE ) );
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_TXPTYPE;
+ }
+ else
+ {
+ HWREG( emacBase
+ + EMAC_MACCONTROL ) &= ( ~( uint32 ) ( EMAC_MACCONTROL_TXPTYPE ) );
+ }
+}
+
+/**
+ * \brief Performs a soft reset of the EMAC and EMAC Control Modules.
+ *
+ * \param emacCtrlBase Base address of the EMAC CONTROL module registers
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_035 */
+/* DesignId : ETH_DesignId_035*/
+/* Requirements : HL_ETH_SR26 */
+void EMACSoftReset( uint32 emacCtrlBase, uint32 emacBase )
+{
+ /* Reset the EMAC Control Module. This clears the CPPI RAM also */
+ HWREG( emacCtrlBase + EMAC_CTRL_SOFTRESET ) = EMAC_CONTROL_RESET;
+
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( HWREG( emacCtrlBase + EMAC_CTRL_SOFTRESET ) & EMAC_CONTROL_RESET )
+ == EMAC_CONTROL_RESET )
+ {
+ /* Wait for the reset to complete */
+ }
+
+ /* Reset the EMAC Module. */
+ HWREG( emacBase + EMAC_SOFTRESET ) = EMAC_SOFT_RESET;
+
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ while( ( HWREG( emacBase + EMAC_SOFTRESET ) & EMAC_SOFT_RESET ) == EMAC_SOFT_RESET )
+ {
+ /* Wait for the Reset to complete */
+ }
+}
+
+/**
+ * \brief Enable Idle State of the EMAC Module.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_036 */
+/* DesignId : ETH_DesignId_036*/
+/* Requirements : HL_ETH_SR32 */
+void EMACEnableIdleState( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_CMDIDLE;
+}
+
+/**
+ * \brief Disable Idle State of the EMAC Module.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_037 */
+/* DesignId : ETH_DesignId_037*/
+/* Requirements : HL_ETH_SR32 */
+void EMACDisableIdleState( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) ( EMAC_MACCONTROL_CMDIDLE ) );
+}
+
+/**
+ * \brief Enables Loopback Mode.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_038 */
+/* DesignId : ETH_DesignId_038*/
+/* Requirements : HL_ETH_SR50 */
+void EMACEnableLoopback( uint32 emacBase )
+/*SAFETYMCUSW 1 J MR:14.1 "LDRA Tool issue." */
+{
+ uint32 GMIIENval = 0U;
+
+ /*Store the value of GMIIEN bit before deasserting it */
+ GMIIENval = HWREG( emacBase + EMAC_MACCONTROL ) & EMAC_MACCONTROL_GMIIEN;
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_GMIIEN );
+
+ /*Enable Loopback */
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_LOOPBACK;
+
+ /*Restore the value of GMIIEN bit */
+ HWREG( emacBase + EMAC_MACCONTROL ) |= GMIIENval;
+}
+
+/**
+ * \brief Disables Loopback Mode.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_039 */
+/* DesignId : ETH_DesignId_039*/
+/* Requirements : HL_ETH_SR50 */
+void EMACDisableLoopback( uint32 emacBase )
+{
+ uint32 GMIIENval = 0U;
+
+ /*Store the value of GMIIEN bit before deasserting it */
+ GMIIENval = HWREG( emacBase + EMAC_MACCONTROL ) & EMAC_MACCONTROL_GMIIEN;
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_GMIIEN );
+
+ /*Disable Loopback */
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_LOOPBACK );
+
+ /*Restore the value of GMIIEN bit */
+ HWREG( emacBase + EMAC_MACCONTROL ) |= GMIIENval;
+}
+
+/**
+ * \brief Enable Transmit Flow Control.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_040 */
+/* DesignId : ETH_DesignId_040*/
+/* Requirements : HL_ETH_SR20 */
+void EMACTxFlowControlEnable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_TXFLOWEN;
+}
+
+/**
+ * \brief Disable Transmit Flow Control.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_041 */
+/* DesignId : ETH_DesignId_041*/
+/* Requirements : HL_ETH_SR20 */
+void EMACTxFlowControlDisable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_TXFLOWEN );
+}
+
+/**
+ * \brief Enable Receive Flow Control.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_042 */
+/* DesignId : ETH_DesignId_042*/
+/* Requirements : HL_ETH_SR20 */
+void EMACRxFlowControlEnable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) |= EMAC_MACCONTROL_RXBUFFERFLOWEN;
+}
+
+/**
+ * \brief Disable Receive Flow Control.
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_043 */
+/* DesignId : ETH_DesignId_043*/
+/* Requirements : HL_ETH_SR20 */
+void EMACRxFlowControlDisable( uint32 emacBase )
+{
+ HWREG( emacBase + EMAC_MACCONTROL ) &= ( ~( uint32 ) EMAC_MACCONTROL_RXBUFFERFLOWEN );
+}
+
+/**
+ * \brief Receive flow threshold. These bits contain the threshold value for issuing
+ *flow control on incoming frames for channel n (when enabled).
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number
+ * \param threshold threshold value for issuing flow control on incoming frames for
+ *the given channel \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_044 */
+/* DesignId : ETH_DesignId_044*/
+/* Requirements : HL_ETH_SR20 */
+void EMACRxSetFlowThreshold( uint32 emacBase, uint32 channel, uint32 threshold )
+{
+ HWREG( emacBase + EMAC_RXFLOWTHRESH( channel ) ) &= ( 0x0U );
+ HWREG( emacBase + EMAC_RXFLOWTHRESH( channel ) ) |= threshold;
+}
+
+/**
+ * \brief This function reads the contents of the 36 network statistics
+ *registers that are present in the module. \param emacBase Base Address of the EMAC
+ *module registers. \param statRegNo The number of the register with RXGOODFRAMES
+ *(Offset= 0x200) being 0. Refer the Technical Reference Manual for the list of registers
+ *and their contents. \return uint32
+ **/
+/* SourceId : ETH_SourceId_045 */
+/* DesignId : ETH_DesignId_045*/
+/* Requirements : HL_ETH_SR29 */
+uint32 EMACReadNetStatRegisters( uint32 emacBase, uint32 statRegNo )
+{
+ return HWREG( emacBase + EMAC_NETSTATREGS( statRegNo ) );
+}
+
+/**
+ * \brief Function to read values of Transmit Interrupt Status registers
+ *(TXINTSTATMASKED and TXINTSTATRAW)
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number
+ * \param txintstat pointer to the emac_tx_int_status Structure that will store the
+ *register values that have been read \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_046 */
+/* DesignId : ETH_DesignId_046*/
+/* Requirements : HL_ETH_SR23 */
+void EMACTxIntStat( uint32 emacBase, uint32 channel, emac_tx_int_status_t * txintstat )
+{
+ txintstat->intstatmasked = ( HWREG( emacBase + EMAC_TXINTSTATMASKED )
+ & ( ( uint32 ) 1U << channel ) );
+ txintstat->intstatraw = ( HWREG( emacBase + EMAC_TXINTSTATRAW )
+ & ( ( uint32 ) 1U << channel ) );
+}
+
+/**
+ * \brief Function to read values of Receive Interrupt Status registers
+ *(RXINTSTATMASKED, RXINTSTATRAW)
+ *
+ * \param emacBase Base Address of the EMAC module registers.
+ * \param channel Channel Number
+ * \param rxintstat pointer to the emac_rx_int_status Structure that will store the
+ *register values that have been read. \return None
+ **/
+/* SourceId : ETH_SourceId_047 */
+/* DesignId : ETH_DesignId_047*/
+/* Requirements : HL_ETH_SR23 */
+void EMACRxIntStat( uint32 emacBase, uint32 channel, emac_rx_int_status_t * rxintstat )
+{
+ rxintstat->intstatmasked_pend = ( HWREG( emacBase + EMAC_RXINTSTATMASKED )
+ & ( ( uint32 ) 0x1U << ( uint32 ) ( channel ) ) );
+ rxintstat->intstatmasked_threshpend = ( HWREG( emacBase + EMAC_RXINTSTATMASKED )
+ & ( ( uint32 ) 0x1U
+ << ( ( uint32 ) 0x8U
+ + ( uint32 ) ( channel ) ) ) );
+
+ rxintstat->intstatraw_pend = ( HWREG( emacBase + EMAC_RXINTSTATRAW )
+ & ( ( uint32 ) 0x1U << ( uint32 ) ( channel ) ) );
+ rxintstat->intstatraw_threshpend = ( HWREG( emacBase + EMAC_RXINTSTATRAW )
+ & ( ( uint32 ) 0x1U
+ << ( ( uint32 ) 0x8U
+ + ( uint32 ) ( channel ) ) ) );
+}
+
+/**
+ * \brief Tx and Rx Buffer Descriptors are initialized. Buffer pointers are allocated to
+ *the Rx Descriptors.
+ *
+ * \param hdkif network interface structure
+ * \return None
+ *
+ **/
+/* SourceId : ETH_SourceId_048 */
+/* DesignId : ETH_DesignId_048*/
+/* Requirements : HL_ETH_SR17,HL_ETH_SR30 */
+void EMACDMAInit( hdkif_t * hdkif )
+{
+ uint32 num_bd, pbuf_cnt = 0U;
+ volatile emac_tx_bd_t *curr_txbd, *last_txbd;
+ volatile emac_rx_bd_t *curr_bd, *last_bd;
+ txch_t * txch_dma;
+ rxch_t * rxch_dma;
+ uint8_t * p;
+
+ txch_dma = &( hdkif->txchptr );
+
+ /**
+ * Initialize the Descriptor Memory For TX and RX
+ * Only single channel is supported for both TX and RX
+ */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ txch_dma->free_head = ( volatile emac_tx_bd_t * ) ( hdkif->emac_ctrl_ram );
+ txch_dma->next_bd_to_process = txch_dma->free_head;
+ txch_dma->active_tail = NULL;
+
+ /* Set the number of descriptors for the channel */
+ num_bd = ( SIZE_EMAC_CTRL_RAM >> 1U ) / sizeof( emac_tx_bd_t );
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ curr_txbd = txch_dma->free_head;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ last_txbd = curr_txbd;
+
+ /* Initialize all the TX buffer Descriptors */
+ while( num_bd != 0U )
+ {
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Struct pointer used for linked list
+ * is incremented." */
+ curr_txbd->next = curr_txbd + 1U;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_txbd->flags_pktlen = 0U;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ last_txbd = curr_txbd;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_txbd = curr_txbd->next;
+ num_bd--;
+ }
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ last_txbd->next = txch_dma->free_head;
+
+ /* Initialize the descriptors for the RX channel */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ rxch_dma = &( hdkif->rxchptr );
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Struct pointer used for linked list is
+ * incremented." */
+ curr_txbd++;
+ /*SAFETYMCUSW 94 S MR:11.1,11.2,11.4 "Linked List pointer needs to be
+ * assigned." */
+ /*SAFETYMCUSW 95 S MR:11.1,11.4 "Linked List pointer needs to be assigned."
+ */
+ /*SAFETYMCUSW 344 S MR:11.5 "Linked List pointer needs to be assigned to a
+ * different structure." */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ rxch_dma->active_head = ( volatile emac_rx_bd_t * ) curr_txbd;
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ rxch_dma->free_head = NULL;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ curr_bd = rxch_dma->active_head;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ last_bd = curr_bd;
+
+ /*
+ ** Static allocation of a specific number of packet buffers as specified by
+ *MAX_RX_PBUF_ALLOC, whose value is entered by the user in HALCoGen GUI.
+ */
+
+ /*Commented part of allocation of pbufs need to check whether its true*/
+
+ for( pbuf_cnt = 0U; pbuf_cnt < MAX_RX_PBUF_ALLOC; pbuf_cnt++ )
+ {
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ p = pbuf_array[ pbuf_cnt ];
+ /*SAFETYMCUSW 439 S MR:11.3 "RHS is a pointer value required to be
+ * stored. - Advisory as per MISRA" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->bufptr = ( uint32 ) p;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->bufoff_len = MAX_TRANSFER_UNIT;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->flags_pktlen = EMAC_BUF_DESC_OWNER;
+
+ if( pbuf_cnt == ( MAX_RX_PBUF_ALLOC - 1U ) )
+ {
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->next = NULL;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ last_bd = curr_bd;
+ }
+ else
+ {
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Struct pointer used for linked
+ * list is incremented." */
+ curr_bd->next = ( curr_bd + 1U );
+ /*SAFETYMCUSW 567 S MR:17.1,17.4 "Struct pointer used for linked
+ * list is incremented." */
+ curr_bd++;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ last_bd = curr_bd;
+ }
+ }
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ last_bd->next = NULL;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ rxch_dma->active_tail = last_bd;
+}
+
+/**
+ * \brief Initializes the EMAC module for transmission and reception.
+ *
+ * \param macaddr MAC Address of the Module.
+ * \param channel Channel Number.
+ *
+ * \return EMAC_ERR_OK if everything gets initialized
+ * EMAC_ERR_CONN in case of an error in connecting.
+ *
+ **/
+/* SourceId : ETH_SourceId_049 */
+/* DesignId : ETH_DesignId_049*/
+/* Requirements : HL_ETH_SR6 */
+uint32 EMACHWInit( uint8_t macaddr[ 6U ] )
+{
+ uint32 temp, channel;
+ volatile uint32 phyID = 0U;
+ volatile uint32 delay = 0xFFFU;
+ uint32 phyIdReadCount = 0xFFFFU;
+ volatile uint32 phyLinkRetries = 0xFFFFU;
+ hdkif_t * hdkif;
+ rxch_t * rxch;
+ uint32 retVal = EMAC_ERR_OK;
+ uint32 emacBase = 0U;
+
+#if( EMAC_MII_ENABLE == 0U )
+ uint16 partnr_spd;
+#endif
+
+ hdkif = &hdkif_data[ 0U ];
+ EMACInstConfig( hdkif );
+
+ /* set MAC hardware address */
+ for( temp = 0U; temp < EMAC_HWADDR_LEN; temp++ )
+ {
+ hdkif->mac_addr[ temp ] = macaddr[ ( EMAC_HWADDR_LEN - 1U ) - temp ];
+ }
+
+ /*Initialize the EMAC, EMAC Control and MDIO modules. */
+ EMACInit( hdkif->emac_ctrl_base, hdkif->emac_base );
+ MDIOInit( hdkif->mdio_base, MDIO_FREQ_INPUT, MDIO_FREQ_OUTPUT );
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ while( delay != 0U )
+ {
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ delay--;
+ }
+
+ /* Set the MAC Addresses in EMAC hardware */
+ emacBase = hdkif->emac_base; /* MISRA Code Fix (12.2) */
+ EMACMACSrcAddrSet( emacBase, hdkif->mac_addr );
+
+ for( channel = 0U; channel < 8U; channel++ )
+ {
+ emacBase = hdkif->emac_base;
+ EMACMACAddrSet( emacBase, channel, hdkif->mac_addr, EMAC_MACADDR_MATCH );
+ }
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ while( ( phyID == 0U ) && ( phyIdReadCount > 0U ) )
+ {
+ phyID = Dp83640IDGet( hdkif->mdio_base, hdkif->phy_addr );
+ phyIdReadCount--;
+ }
+
+ if( 0U == phyID )
+ {
+ retVal = EMAC_ERR_CONNECT;
+ }
+ else
+ {
+ }
+
+ if( ( uint32 ) 0U
+ == ( ( MDIOPhyAliveStatusGet( hdkif->mdio_base ) >> hdkif->phy_addr )
+ & ( uint32 ) 0x01U ) )
+ {
+ retVal = EMAC_ERR_CONNECT;
+ }
+ else
+ {
+ }
+
+#if( EMAC_MII_ENABLE == 0U )
+ Dp83640PartnerSpdGet( hdkif->mdio_base, hdkif->phy_addr, &partnr_spd );
+
+ if( ( partnr_spd & 2U ) == 0U )
+ {
+ EMACRMIISpeedSet( hdkif->emac_base, EMAC_MACCONTROL_RMIISPEED );
+ }
+#endif
+
+ if( !Dp83640LinkStatusGet( hdkif->mdio_base,
+ ( uint32 ) EMAC_PHYADDRESS,
+ ( uint32 ) phyLinkRetries ) )
+ {
+ retVal = EMAC_ERR_CONNECT;
+ }
+ else
+ {
+ }
+
+ if( EMACLinkSetup( hdkif ) != EMAC_ERR_OK )
+ {
+ retVal = EMAC_ERR_CONNECT;
+ }
+ else
+ {
+ }
+
+ /* The transmit and receive buffer descriptors are initialized here.
+ * Also, packet buffers are allocated to the receive buffer descriptors.
+ */
+
+ EMACDMAInit( hdkif );
+
+ /* Acknowledge receive and transmit interrupts for proper interrupt pulsing*/
+ EMACCoreIntAck( hdkif->emac_base, ( uint32 ) EMAC_INT_CORE0_RX );
+ EMACCoreIntAck( hdkif->emac_base, ( uint32 ) EMAC_INT_CORE0_TX );
+
+ /* Enable GMII bit in the MACCONTROL Rgister*/
+ /*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+ EMACMIIEnable( hdkif->emac_base );
+
+/* Enable Broadcast if enabled in the GUI. */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_BROADCAST_ENABLE )
+ EMACRxBroadCastEnable( hdkif->emac_base, ( uint32 ) EMAC_CHANNELNUMBER );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ EMACRxBroadCastDisable( hdkif->emac_base, ( uint32 ) EMAC_CHANNELNUMBER );
+#endif
+
+/* Enable Broadcast if enabled in the GUI. */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_UNICAST_ENABLE )
+ EMACRxUnicastSet( hdkif->emac_base, ( uint32 ) EMAC_CHANNELNUMBER );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ EMACRxUnicastClear( hdkif->emac_base, ( uint32 ) EMAC_CHANNELNUMBER );
+#endif
+
+/*Enable Full Duplex or Half-Duplex mode based on GUI Input. */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_FULL_DUPLEX_ENABLE )
+ EMACDuplexSet( EMAC_0_BASE, ( uint32 ) EMAC_DUPLEX_FULL );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition arameter is taken as input from
+ * GUI." */
+ EMACDuplexSet( EMAC_0_BASE, ( uint32 ) EMAC_DUPLEX_HALF );
+#endif
+
+/* Enable Loopback based on GUI Input */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_LOOPBACK_ENABLE )
+ EMACEnableLoopback( hdkif->emac_base );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ EMACDisableLoopback( hdkif->emac_base );
+#endif
+
+/* Enable Transmit and Transmit Interrupt */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_TX_ENABLE )
+ EMACTxEnable( hdkif->emac_base );
+ EMACTxIntPulseEnable( hdkif->emac_base,
+ hdkif->emac_ctrl_base,
+ ( uint32 ) EMAC_CHANNELNUMBER,
+ ( uint32 ) EMAC_CHANNELNUMBER );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ EMACTxDisable( hdkif->emac_base );
+ EMACTxIntPulseDisable( hdkif->emac_base,
+ hdkif->emac_ctrl_base,
+ ( uint32 ) EMAC_CHANNELNUMBER,
+ ( uint32 ) EMAC_CHANNELNUMBER );
+#endif
+
+/* Enable Receive and Receive Interrupt. Then start receiving by writing to the HDP
+ * register. */
+/*SAFETYMCUSW 139 S MR:13.7 "Parameter is taken as input from GUI." */
+#if( EMAC_RX_ENABLE )
+ EMACNumFreeBufSet( hdkif->emac_base,
+ ( uint32 ) EMAC_CHANNELNUMBER,
+ ( uint32 ) MAX_RX_PBUF_ALLOC );
+ EMACRxEnable( hdkif->emac_base );
+ EMACRxIntPulseEnable( hdkif->emac_base,
+ hdkif->emac_ctrl_base,
+ ( uint32 ) EMAC_CHANNELNUMBER,
+ ( uint32 ) EMAC_CHANNELNUMBER );
+ rxch = &( hdkif->rxchptr );
+ /* Write to the RX HDP for channel 0 */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ EMACRxHdrDescPtrWrite( hdkif->emac_base,
+ ( uint32 ) rxch->active_head,
+ ( uint32 ) EMAC_CHANNELNUMBER );
+#else
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ /*SAFETYMCUSW 1 J MR:14.1 "If condition parameter is taken as input from
+ * GUI." */
+ EMACRxDisable( hdkif->emac_base );
+ EMACRxIntPulseDisable( hdkif->emac_base,
+ hdkif->emac_ctrl_base,
+ ( uint32 ) EMAC_CHANNELNUMBER,
+ ( uint32 ) EMAC_CHANNELNUMBER );
+#endif /* if ( EMAC_RX_ENABLE ) */
+
+ return retVal;
+}
+
+/**
+ * This function should do the actual transmission of the packet. The packet is
+ * contained in the pbuf that is passed to the function. This pbuf might be
+ * chained. That is, one pbuf can span more than one tx buffer descriptors
+ *
+ * @param hdkif network interface structure
+ * @param pbuf the pbuf structure which contains the data to be sent using EMAC
+ * @return boolean.
+ * -Returns FALSE if a Null pointer was passed for transmission
+ * -Returns TRUE if valid data is sent and is transmitted.
+ */
+/* SourceId : ETH_SourceId_050 */
+/* DesignId : ETH_DesignId_050*/
+/* Requirements : HL_ETH_SR31 */
+boolean EMACTransmit( hdkif_t * hdkif, pbuf_t * pbuf )
+{
+ txch_t * txch;
+ pbuf_t * q;
+ uint16 totLen;
+ uint16 qLen;
+ volatile emac_tx_bd_t *curr_bd, *active_head, *bd_end;
+ boolean retValue = FALSE;
+
+ if( ( pbuf != NULL ) && ( hdkif != NULL ) )
+ {
+ txch = &( hdkif->txchptr );
+
+ /* Get the buffer descriptor which is free to transmit */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd = txch->free_head;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ bd_end = curr_bd;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ active_head = curr_bd;
+
+ /* Update the total packet length */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->flags_pktlen &= ( ~( ( uint32 ) 0xFFFFU ) );
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ totLen = pbuf->tot_len;
+ curr_bd->flags_pktlen |= ( uint32 ) ( totLen );
+
+ /* Indicate the start of the packet */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->flags_pktlen |= ( EMAC_BUF_DESC_SOP | EMAC_BUF_DESC_OWNER );
+
+ /* Copy pbuf information into TX buffer descriptors */
+ q = pbuf;
+
+ while( q != NULL )
+ {
+ /* Initialize the buffer pointer and length */
+ /*SAFETYMCUSW 439 S MR:11.3 "RHS is a pointer value required to be
+ * stored. - Advisory as per MISRA" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->bufptr = ( uint32 ) ( q->payload );
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ qLen = q->len;
+ curr_bd->bufoff_len = ( ( uint32 ) ( qLen ) & 0xFFFFU );
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ bd_end = curr_bd;
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd = curr_bd->next;
+ q = q->next;
+ }
+
+ /* Indicate the start and end of the packet */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ bd_end->next = NULL;
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ bd_end->flags_pktlen |= EMAC_BUF_DESC_EOP;
+
+ /*SAFETYMCUSW 71 S MR:17.6 "Assigned pointer value has required scope."
+ */
+ txch->free_head = curr_bd;
+
+ /* For the first time, write the HDP with the filled bd */
+ if( txch->active_tail == NULL )
+ {
+ /*SAFETYMCUSW 439 S MR:11.3 "Address stored in pointer is passed as
+ * as an int parameter. - Advisory as per MISRA" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ EMACTxHdrDescPtrWrite( hdkif->emac_base,
+ ( uint32 ) ( active_head ),
+ ( uint32 ) EMAC_CHANNELNUMBER );
+ }
+
+ /*
+ * Chain the bd's. If the DMA engine, already reached the end of the chain,
+ * the EOQ will be set. In that case, the HDP shall be written again.
+ */
+ else
+ {
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd = txch->active_tail;
+
+ /* Wait for the EOQ bit is set */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ while( EMAC_BUF_DESC_EOQ != ( curr_bd->flags_pktlen & EMAC_BUF_DESC_EOQ ) )
+ {
+ }
+
+ /* Don't write to TXHDP0 until it turns to zero */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ while( ( ( uint32 ) 0U != *( ( uint32 * ) 0xFCF78600U ) ) )
+ {
+ }
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->next = active_head;
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ if( EMAC_BUF_DESC_EOQ == ( curr_bd->flags_pktlen & EMAC_BUF_DESC_EOQ ) )
+ {
+ /* Write the Header Descriptor Pointer and start DMA */
+ /*SAFETYMCUSW 439 S MR:11.3 "Address stored in pointer is
+ * passed as as an int parameter. - Advisory as per MISRA" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ EMACTxHdrDescPtrWrite( hdkif->emac_base,
+ ( uint32 ) ( active_head ),
+ ( uint32 ) EMAC_CHANNELNUMBER );
+ }
+ }
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ txch->active_tail = bd_end;
+ retValue = TRUE;
+ }
+ else
+ {
+ retValue = FALSE;
+ }
+
+ return retValue;
+}
+
+/**
+ * Function for processing Tx buffer descriptors.
+ *
+ * @param hdkif interface structure
+ * @return none
+ */
+/* SourceId : ETH_SourceId_051 */
+/* DesignId : ETH_DesignId_051*/
+/* Requirements : HL_ETH_SR15 */
+void EMACTxIntHandler( hdkif_t * hdkif )
+{
+ txch_t * txch_int;
+ volatile emac_tx_bd_t *curr_bd, *next_bd_to_process;
+
+ txch_int = &( hdkif->txchptr );
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ next_bd_to_process = txch_int->next_bd_to_process;
+
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ curr_bd = next_bd_to_process;
+
+ /* Check for correct start of packet */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are assigned in
+ * this driver" */
+ while( ( ( curr_bd->flags_pktlen ) & EMAC_BUF_DESC_SOP ) == EMAC_BUF_DESC_SOP )
+ {
+ /* Make sure that the transmission is over */
+ /*SAFETYMCUSW 28 D MR:NA "Hardware status bit read check" */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ while( ( ( curr_bd->flags_pktlen ) & EMAC_BUF_DESC_OWNER )
+ == EMAC_BUF_DESC_OWNER )
+ {
+ }
+
+ /* Traverse till the end of packet is reached */
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ while( ( ( curr_bd->flags_pktlen ) & EMAC_BUF_DESC_EOP ) != EMAC_BUF_DESC_EOP )
+ {
+ curr_bd = curr_bd->next;
+ }
+
+ /*SAFETYMCUSW 134 S MR:12.2 "LDRA Tool issue" */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ next_bd_to_process->flags_pktlen &= ~( EMAC_BUF_DESC_SOP );
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ curr_bd->flags_pktlen &= ~( EMAC_BUF_DESC_EOP );
+
+ /**
+ * If there are no more data transmitted, the next interrupt
+ * shall happen with the pbuf associated with the free_head
+ */
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ if( curr_bd->next == NULL )
+ {
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ txch_int->next_bd_to_process = txch_int->free_head;
+ }
+
+ else
+ {
+ /*SAFETYMCUSW 45 D MR:21.1 "Valid non NULL input parameters are
+ * assigned in this driver" */
+ txch_int->next_bd_to_process = curr_bd->next;
+ }
+
+ /* Acknowledge the EMAC and free the corresponding pbuf */
+ /*SAFETYMCUSW 439 S MR:11.3