<p>Kévin Redon <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12808">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">switch from dev board to prototype<br><br>the SAM E54 Xplained Pro development board uses a SAM E54P20N<br>micro-controller.<br>the sysmocom sysmoOCTSIM prototype uses a SAM E54N19A<br>micro-controller.<br>the system LED and UART debug GPIO are different, else the code<br>is the same.<br>the Atmel START definitions have been updated accordingly.<br><br>Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc<br>---<br>M sysmoOCTSIM/AtmelStart.env_conf<br>M sysmoOCTSIM/AtmelStart.gpdsc<br>M sysmoOCTSIM/atmel_start_config.atstart<br>M sysmoOCTSIM/atmel_start_pins.h<br>M sysmoOCTSIM/config/hpl_gclk_config.h<br>M sysmoOCTSIM/config/hpl_port_config.h<br>M sysmoOCTSIM/config/hpl_sercom_config.h<br>M sysmoOCTSIM/config/hpl_usb_config.h<br>M sysmoOCTSIM/config/peripheral_clk_config.h<br>M sysmoOCTSIM/driver_init.c<br>M sysmoOCTSIM/gcc/Makefile<br>A sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld<br>A sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld<br>M sysmoOCTSIM/hpl/port/hpl_gpio_base.h<br>M sysmoOCTSIM/hpl/sercom/hpl_sercom.c<br>M sysmoOCTSIM/hpl/usb/hpl_usb.c<br>16 files changed, 544 insertions(+), 355 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/sysmoOCTSIM/AtmelStart.env_conf b/sysmoOCTSIM/AtmelStart.env_conf</span><br><span>index dfb4608..cad5b65 100644</span><br><span>--- a/sysmoOCTSIM/AtmelStart.env_conf</span><br><span>+++ b/sysmoOCTSIM/AtmelStart.env_conf</span><br><span>@@ -1,6 +1,6 @@</span><br><span> <environment></span><br><span>   <configurations/></span><br><span>   <device-packs></span><br><span style="color: hsl(0, 100%, 40%);">-    <device-pack device="ATSAME54P20A" name="SAME54_DFP" vendor="Atmel" version="1.0.87"/></span><br><span style="color: hsl(120, 100%, 40%);">+    <device-pack device="ATSAME54N19A" name="SAME54_DFP" vendor="Atmel" version="1.0.87"/></span><br><span>   </device-packs></span><br><span> </environment></span><br><span>diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc</span><br><span>index ebb4d1e..51851db 100644</span><br><span>--- a/sysmoOCTSIM/AtmelStart.gpdsc</span><br><span>+++ b/sysmoOCTSIM/AtmelStart.gpdsc</span><br><span>@@ -12,7 +12,7 @@</span><br><span>   <generators></span><br><span>     <generator id="AtmelStart"></span><br><span>       <description>Atmel Start</description></span><br><span style="color: hsl(0, 100%, 40%);">-      <select Dname="ATSAME54P20A" Dvendor="Atmel:3"/></span><br><span style="color: hsl(120, 100%, 40%);">+      <select Dname="ATSAME54N19A" Dvendor="Atmel:3"/></span><br><span>       <command>http://start.atmel.com/</command></span><br><span>       <files></span><br><span>         <file category="generator" name="atmel_start_config.atstart"/></span><br><span>@@ -27,13 +27,13 @@</span><br><span>       <require Cclass="Device" Cgroup="Startup" Cversion="1.0.0"/></span><br><span>     </condition></span><br><span>     <condition id="ARMCC, GCC, IAR"></span><br><span style="color: hsl(0, 100%, 40%);">-      <require Dname="ATSAME54P20A"/></span><br><span style="color: hsl(120, 100%, 40%);">+      <require Dname="ATSAME54N19A"/></span><br><span>       <accept Tcompiler="ARMCC"/></span><br><span>       <accept Tcompiler="GCC"/></span><br><span>       <accept Tcompiler="IAR"/></span><br><span>     </condition></span><br><span>     <condition id="GCC"></span><br><span style="color: hsl(0, 100%, 40%);">-      <require Dname="ATSAME54P20A"/></span><br><span style="color: hsl(120, 100%, 40%);">+      <require Dname="ATSAME54N19A"/></span><br><span>       <accept Tcompiler="GCC"/></span><br><span>     </condition></span><br><span>   </conditions></span><br><span>@@ -160,8 +160,7 @@</span><br><span>         <file category="header" condition="ARMCC, GCC, IAR" name="usb/usb_includes.h"/></span><br><span>         <file category="source" condition="ARMCC, GCC, IAR" name="usb/usb_protocol.c"/></span><br><span>         <file category="header" condition="ARMCC, GCC, IAR" name="usb/usb_protocol.h"/></span><br><span style="color: hsl(0, 100%, 40%);">-        <file category="source" condition="ARMCC, GCC, IAR" name="usb_cdc_echo_main.c"/></span><br><span style="color: hsl(0, 100%, 40%);">-        <file category="doc" condition="ARMCC, GCC, IAR" name="documentation/usb_cdc_echo.rst"/></span><br><span style="color: hsl(120, 100%, 40%);">+        <file category="source" condition="ARMCC, GCC, IAR" name="main.c"/></span><br><span>         <file category="source" condition="ARMCC, GCC, IAR" name="driver_init.c"/></span><br><span>         <file category="header" condition="ARMCC, GCC, IAR" name="driver_init.h"/></span><br><span>         <file category="header" condition="ARMCC, GCC, IAR" name="atmel_start_pins.h"/></span><br><span>diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>index 7492bf6..09c0b2d 100644</span><br><span>--- a/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>+++ b/sysmoOCTSIM/atmel_start_config.atstart</span><br><span>@@ -9,12 +9,10 @@</span><br><span>   format: '2'</span><br><span>   frontend: 1.4.1810</span><br><span> board:</span><br><span style="color: hsl(0, 100%, 40%);">-  identifier: SAME54XplainedPro</span><br><span style="color: hsl(0, 100%, 40%);">-  device: SAME54P20A-AU</span><br><span style="color: hsl(120, 100%, 40%);">+  identifier: CustomBoard</span><br><span style="color: hsl(120, 100%, 40%);">+  device: SAME54N19A-AF</span><br><span> details: null</span><br><span style="color: hsl(0, 100%, 40%);">-application:</span><br><span style="color: hsl(0, 100%, 40%);">-  definition: 'Atmel:Application_Examples:0.0.1::Application:USB_CDC_Echo:'</span><br><span style="color: hsl(0, 100%, 40%);">-  configuration: {}</span><br><span style="color: hsl(120, 100%, 40%);">+application: null</span><br><span> middlewares:</span><br><span>   USB_CHAPTER_9:</span><br><span>     user_label: USB_CHAPTER_9</span><br><span>@@ -31,8 +29,8 @@</span><br><span>     api: USB:Protocol:CDC</span><br><span>     dependencies:</span><br><span>       USB Chapter 9: USB_CHAPTER_9</span><br><span style="color: hsl(0, 100%, 40%);">-  USB_DEVICE_CORE:</span><br><span style="color: hsl(0, 100%, 40%);">-    user_label: USB_DEVICE_CORE</span><br><span style="color: hsl(120, 100%, 40%);">+  USB_DEVICE_STACK_CORE_INSTANCE:</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: USB_DEVICE_STACK_CORE_INSTANCE</span><br><span>     configuration:</span><br><span>       usbd_hs_sp: false</span><br><span>     definition: Atmel:USB:0.0.1::USB_Device_Core</span><br><span>@@ -82,12 +80,12 @@</span><br><span>     functionality: USB_Device_CDC_ACM</span><br><span>     api: USB:Device:CDC_ACM</span><br><span>     dependencies:</span><br><span style="color: hsl(0, 100%, 40%);">-      USB Device Stack Core Instance: USB_DEVICE_CORE</span><br><span style="color: hsl(120, 100%, 40%);">+      USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE</span><br><span>       USB Class CDC: USB_CLASS_CDC</span><br><span> drivers:</span><br><span>   CMCC:</span><br><span>     user_label: CMCC</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:CMCC</span><br><span>     configuration:</span><br><span>@@ -103,7 +101,7 @@</span><br><span>       domain_group: null</span><br><span>   DMAC:</span><br><span>     user_label: DMAC</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:DMAC</span><br><span>     configuration:</span><br><span>@@ -639,7 +637,7 @@</span><br><span>       domain_group: null</span><br><span>   GCLK:</span><br><span>     user_label: GCLK</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:GCLK</span><br><span>     configuration:</span><br><span>@@ -720,7 +718,7 @@</span><br><span>       gclk_gen_0_oscillator: Digital Phase Locked Loop (DPLL0)</span><br><span>       gclk_gen_10_div: 1</span><br><span>       gclk_gen_10_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_11_div: 6</span><br><span>       gclk_gen_11_div_sel: false</span><br><span>       gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>@@ -735,29 +733,29 @@</span><br><span>       gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K)</span><br><span>       gclk_gen_4_div: 1</span><br><span>       gclk_gen_4_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_5_div: 1</span><br><span>       gclk_gen_5_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_6_div: 1</span><br><span>       gclk_gen_6_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_7_div: 1</span><br><span>       gclk_gen_7_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_8_div: 1</span><br><span>       gclk_gen_8_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>       gclk_gen_9_div: 1</span><br><span>       gclk_gen_9_div_sel: false</span><br><span style="color: hsl(0, 100%, 40%);">-      gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC0)</span><br><span style="color: hsl(120, 100%, 40%);">+      gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC1)</span><br><span>     optional_signals: []</span><br><span>     variant: null</span><br><span>     clocks:</span><br><span>       domain_group: null</span><br><span>   MCLK:</span><br><span>     user_label: MCLK</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:MCLK</span><br><span>     configuration:</span><br><span>@@ -778,7 +776,7 @@</span><br><span>         configuration: {}</span><br><span>   OSC32KCTRL:</span><br><span>     user_label: OSC32KCTRL</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:OSC32KCTRL</span><br><span>     configuration:</span><br><span>@@ -806,7 +804,7 @@</span><br><span>       domain_group: null</span><br><span>   OSCCTRL:</span><br><span>     user_label: OSCCTRL</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:OSCCTRL</span><br><span>     configuration:</span><br><span>@@ -843,7 +841,7 @@</span><br><span>       fdpll0_arch_runstdby: false</span><br><span>       fdpll0_arch_wuf: false</span><br><span>       fdpll0_clock_dcofilter: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      fdpll0_clock_div: 6</span><br><span style="color: hsl(120, 100%, 40%);">+      fdpll0_clock_div: 2</span><br><span>       fdpll0_ldr: 59</span><br><span>       fdpll0_ldrfrac: 0</span><br><span>       fdpll0_ref_clock: Generic clock generator 11</span><br><span>@@ -857,7 +855,7 @@</span><br><span>       fdpll1_arch_runstdby: false</span><br><span>       fdpll1_arch_wuf: false</span><br><span>       fdpll1_clock_dcofilter: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      fdpll1_clock_div: 6</span><br><span style="color: hsl(120, 100%, 40%);">+      fdpll1_clock_div: 2</span><br><span>       fdpll1_ldr: 49</span><br><span>       fdpll1_ldrfrac: 0</span><br><span>       fdpll1_ref_clock: Generic clock generator 11</span><br><span>@@ -887,7 +885,7 @@</span><br><span>       domain_group: null</span><br><span>   PORT:</span><br><span>     user_label: PORT</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::PORT::driver_config_definition::PORT::HAL:HPL:PORT</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::PORT::driver_config_definition::PORT::HAL:HPL:PORT</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:PORT</span><br><span>     configuration:</span><br><span>@@ -931,25 +929,13 @@</span><br><span>       portc_input_event_enable_1: false</span><br><span>       portc_input_event_enable_2: false</span><br><span>       portc_input_event_enable_3: false</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_action_0: Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_action_1: Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_action_2: Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_action_3: Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_pin_identifier_0: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_pin_identifier_1: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_pin_identifier_2: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_event_pin_identifier_3: 0</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_input_event_enable_0: false</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_input_event_enable_1: false</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_input_event_enable_2: false</span><br><span style="color: hsl(0, 100%, 40%);">-      portd_input_event_enable_3: false</span><br><span>     optional_signals: []</span><br><span>     variant: null</span><br><span>     clocks:</span><br><span>       domain_group: null</span><br><span>   RAMECC:</span><br><span>     user_label: RAMECC</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC</span><br><span>     functionality: System</span><br><span>     api: HAL:HPL:RAMECC</span><br><span>     configuration: {}</span><br><span>@@ -959,7 +945,7 @@</span><br><span>       domain_group: null</span><br><span>   UART_debug:</span><br><span>     user_label: UART_debug</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Async</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async</span><br><span>     functionality: USART</span><br><span>     api: HAL:Driver:USART_Async</span><br><span>     configuration:</span><br><span>@@ -986,11 +972,11 @@</span><br><span>     variant:</span><br><span>       specification: TXPO=0, RXPO=1, CMODE=0</span><br><span>       required_signals:</span><br><span style="color: hsl(0, 100%, 40%);">-      - name: SERCOM2/PAD/0</span><br><span style="color: hsl(0, 100%, 40%);">-        pad: PB25</span><br><span style="color: hsl(120, 100%, 40%);">+      - name: SERCOM7/PAD/0</span><br><span style="color: hsl(120, 100%, 40%);">+        pad: PB30</span><br><span>         label: TX</span><br><span style="color: hsl(0, 100%, 40%);">-      - name: SERCOM2/PAD/1</span><br><span style="color: hsl(0, 100%, 40%);">-        pad: PB24</span><br><span style="color: hsl(120, 100%, 40%);">+      - name: SERCOM7/PAD/1</span><br><span style="color: hsl(120, 100%, 40%);">+        pad: PB31</span><br><span>         label: RX</span><br><span>     clocks:</span><br><span>       domain_group:</span><br><span>@@ -1004,7 +990,7 @@</span><br><span>           slow_gclk_selection: Generic clock generator 3</span><br><span>   USB_DEVICE_INSTANCE:</span><br><span>     user_label: USB_DEVICE_INSTANCE</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device</span><br><span>     functionality: USB</span><br><span>     api: HAL:Driver:USB_Device</span><br><span>     configuration:</span><br><span>@@ -1025,7 +1011,7 @@</span><br><span>       usb_ep7_I_CACHE: No cache</span><br><span>       usbd_arch_max_ep_n: 2 (EP 0x82 or 0x02)</span><br><span>       usbd_arch_speed: Full speed</span><br><span style="color: hsl(0, 100%, 40%);">-      usbd_num_ep_sp: Max possible (by "Max Endpoint Number" config)</span><br><span style="color: hsl(120, 100%, 40%);">+      usbd_num_ep_sp: 4 (EP0 + 3 endpoints)</span><br><span>     optional_signals: []</span><br><span>     variant:</span><br><span>       specification: default</span><br><span>@@ -1044,35 +1030,34 @@</span><br><span>         configuration:</span><br><span>           usb_gclk_selection: Generic clock generator 1</span><br><span> pads:</span><br><span style="color: hsl(120, 100%, 40%);">+  USBUP_D_N:</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PA24</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA24</span><br><span style="color: hsl(120, 100%, 40%);">+    mode: Advanced</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: USBUP_D_N</span><br><span style="color: hsl(120, 100%, 40%);">+    configuration: null</span><br><span style="color: hsl(120, 100%, 40%);">+  USBUP_D_P:</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PA25</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA25</span><br><span style="color: hsl(120, 100%, 40%);">+    mode: Advanced</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: USBUP_D_P</span><br><span style="color: hsl(120, 100%, 40%);">+    configuration: null</span><br><span>   LED_system:</span><br><span style="color: hsl(0, 100%, 40%);">-    name: PC18</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PC18</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PC26</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC26</span><br><span>     mode: Digital output</span><br><span>     user_label: LED_system</span><br><span style="color: hsl(0, 100%, 40%);">-    configuration:</span><br><span style="color: hsl(0, 100%, 40%);">-      pad_initial_level: High</span><br><span style="color: hsl(0, 100%, 40%);">-  PA24:</span><br><span style="color: hsl(0, 100%, 40%);">-    name: PA24</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA24</span><br><span style="color: hsl(0, 100%, 40%);">-    mode: Advanced</span><br><span style="color: hsl(0, 100%, 40%);">-    user_label: PA24</span><br><span style="color: hsl(0, 100%, 40%);">-    configuration: {}</span><br><span style="color: hsl(0, 100%, 40%);">-  PA25:</span><br><span style="color: hsl(0, 100%, 40%);">-    name: PA25</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA25</span><br><span style="color: hsl(0, 100%, 40%);">-    mode: Advanced</span><br><span style="color: hsl(0, 100%, 40%);">-    user_label: PA25</span><br><span style="color: hsl(0, 100%, 40%);">-    configuration: {}</span><br><span style="color: hsl(0, 100%, 40%);">-  PB24:</span><br><span style="color: hsl(0, 100%, 40%);">-    name: PB24</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB24</span><br><span style="color: hsl(0, 100%, 40%);">-    mode: Peripheral IO</span><br><span style="color: hsl(0, 100%, 40%);">-    user_label: PB24</span><br><span>     configuration: null</span><br><span style="color: hsl(0, 100%, 40%);">-  PB25:</span><br><span style="color: hsl(0, 100%, 40%);">-    name: PB25</span><br><span style="color: hsl(0, 100%, 40%);">-    definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB25</span><br><span style="color: hsl(120, 100%, 40%);">+  UART_TX:</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PB30</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30</span><br><span>     mode: Peripheral IO</span><br><span style="color: hsl(0, 100%, 40%);">-    user_label: PB25</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: UART_TX</span><br><span style="color: hsl(120, 100%, 40%);">+    configuration: null</span><br><span style="color: hsl(120, 100%, 40%);">+  UART_RX:</span><br><span style="color: hsl(120, 100%, 40%);">+    name: PB31</span><br><span style="color: hsl(120, 100%, 40%);">+    definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB31</span><br><span style="color: hsl(120, 100%, 40%);">+    mode: Peripheral IO</span><br><span style="color: hsl(120, 100%, 40%);">+    user_label: UART_RX</span><br><span>     configuration: null</span><br><span> toolchain_options: []</span><br><span>diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h</span><br><span>index 7c774ed..884a562 100644</span><br><span>--- a/sysmoOCTSIM/atmel_start_pins.h</span><br><span>+++ b/sysmoOCTSIM/atmel_start_pins.h</span><br><span>@@ -27,10 +27,10 @@</span><br><span> #define GPIO_PIN_FUNCTION_M 12</span><br><span> #define GPIO_PIN_FUNCTION_N 13</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define PA24 GPIO(GPIO_PORTA, 24)</span><br><span style="color: hsl(0, 100%, 40%);">-#define PA25 GPIO(GPIO_PORTA, 25)</span><br><span style="color: hsl(0, 100%, 40%);">-#define PB24 GPIO(GPIO_PORTB, 24)</span><br><span style="color: hsl(0, 100%, 40%);">-#define PB25 GPIO(GPIO_PORTB, 25)</span><br><span style="color: hsl(0, 100%, 40%);">-#define LED_system GPIO(GPIO_PORTC, 18)</span><br><span style="color: hsl(120, 100%, 40%);">+#define USBUP_D_N GPIO(GPIO_PORTA, 24)</span><br><span style="color: hsl(120, 100%, 40%);">+#define USBUP_D_P GPIO(GPIO_PORTA, 25)</span><br><span style="color: hsl(120, 100%, 40%);">+#define UART_TX GPIO(GPIO_PORTB, 30)</span><br><span style="color: hsl(120, 100%, 40%);">+#define UART_RX GPIO(GPIO_PORTB, 31)</span><br><span style="color: hsl(120, 100%, 40%);">+#define LED_system GPIO(GPIO_PORTC, 26)</span><br><span> </span><br><span> #endif // ATMEL_START_PINS_H_INCLUDED</span><br><span>diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>index 12c1539..d16af6f 100644</span><br><span>--- a/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>+++ b/sysmoOCTSIM/config/hpl_gclk_config.h</span><br><span>@@ -328,7 +328,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 4</span><br><span> // <id> gclk_gen_4_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_4_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -404,7 +404,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 5</span><br><span> // <id> gclk_gen_5_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_5_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -480,7 +480,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 6</span><br><span> // <id> gclk_gen_6_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_6_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -556,7 +556,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 7</span><br><span> // <id> gclk_gen_7_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_7_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -632,7 +632,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 8</span><br><span> // <id> gclk_gen_8_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_8_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -708,7 +708,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 9</span><br><span> // <id> gclk_gen_9_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_9_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>@@ -784,7 +784,7 @@</span><br><span> // <i> This defines the clock source for generic clock generator 10</span><br><span> // <id> gclk_gen_10_oscillator</span><br><span> #ifndef CONF_GCLK_GEN_10_SOURCE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in Standby</span><br><span>diff --git a/sysmoOCTSIM/config/hpl_port_config.h b/sysmoOCTSIM/config/hpl_port_config.h</span><br><span>index b5315f0..a7bd379 100644</span><br><span>--- a/sysmoOCTSIM/config/hpl_port_config.h</span><br><span>+++ b/sysmoOCTSIM/config/hpl_port_config.h</span><br><span>@@ -94,34 +94,6 @@</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span style="color: hsl(0, 100%, 40%);">-// <h> PORT Input Event 0 configuration on PORT D</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <q> PORTD Input Event 0 Enable</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> The event action will be triggered on any incoming event if PORT D Input Event 0 configuration is enabled</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_input_event_enable_0</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PORTEI_0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PORTEI_0 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 0 Pin Identifier <0x00-0x1F></span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the I/O pin from port D on which the event action will be performed</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_pin_identifier_0</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PID_0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PID_0 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 0 Action</span><br><span style="color: hsl(0, 100%, 40%);">-// <0=> Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-// <1=> Set output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <2=> Clear output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <3=> Toggle output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the event action the PORT D will perform on event input 0</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_action_0</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_EVACT_0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_EVACT_0 0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// </h></span><br><span> </span><br><span> // </e></span><br><span> </span><br><span>@@ -215,34 +187,6 @@</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span style="color: hsl(0, 100%, 40%);">-// <h> PORT Input Event 1 configuration on PORT D</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <q> PORTD Input Event 1 Enable</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> The event action will be triggered on any incoming event if PORT D Input Event 1 configuration is enabled</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_input_event_enable_1</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PORTEI_1</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PORTEI_1 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 1 Pin Identifier <0x00-0x1F></span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the I/O pin from port D on which the event action will be performed</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_pin_identifier_1</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PID_1</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PID_1 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 1 Action</span><br><span style="color: hsl(0, 100%, 40%);">-// <0=> Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-// <1=> Set output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <2=> Clear output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <3=> Toggle output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the event action the PORT D will perform on event input 1</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_action_1</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_EVACT_1</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_EVACT_1 0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// </h></span><br><span> </span><br><span> // </e></span><br><span> </span><br><span>@@ -336,34 +280,6 @@</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span style="color: hsl(0, 100%, 40%);">-// <h> PORT Input Event 2 configuration on PORT D</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <q> PORTD Input Event 2 Enable</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> The event action will be triggered on any incoming event if PORT D Input Event 2 configuration is enabled</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_input_event_enable_2</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PORTEI_2</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PORTEI_2 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 2 Pin Identifier <0x00-0x1F></span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the I/O pin from port D on which the event action will be performed</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_pin_identifier_2</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PID_2</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PID_2 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 2 Action</span><br><span style="color: hsl(0, 100%, 40%);">-// <0=> Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-// <1=> Set output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <2=> Clear output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <3=> Toggle output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the event action the PORT D will perform on event input 2</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_action_2</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_EVACT_2</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_EVACT_2 0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// </h></span><br><span> </span><br><span> // </e></span><br><span> </span><br><span>@@ -457,34 +373,6 @@</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span style="color: hsl(0, 100%, 40%);">-// <h> PORT Input Event 3 configuration on PORT D</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <q> PORTD Input Event 3 Enable</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> The event action will be triggered on any incoming event if PORT D Input Event 3 configuration is enabled</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_input_event_enable_3</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PORTEI_3</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PORTEI_3 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 3 Pin Identifier <0x00-0x1F></span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the I/O pin from port D on which the event action will be performed</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_pin_identifier_3</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_PID_3</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_PID_3 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// <o> PORTD Event 3 Action</span><br><span style="color: hsl(0, 100%, 40%);">-// <0=> Output register of pin will be set to level of event</span><br><span style="color: hsl(0, 100%, 40%);">-// <1=> Set output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <2=> Clear output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <3=> Toggle output register of pin on event</span><br><span style="color: hsl(0, 100%, 40%);">-// <i> These bits define the event action the PORT D will perform on event input 3</span><br><span style="color: hsl(0, 100%, 40%);">-// <id> portd_event_action_3</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_PORTD_EVCTRL_EVACT_3</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL_EVACT_3 0</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-// </h></span><br><span> </span><br><span> // </e></span><br><span> </span><br><span>@@ -509,13 +397,6 @@</span><br><span>          | PORT_EVCTRL_EVACT2(CONF_PORTC_EVCTRL_EVACT_2) | CONF_PORTC_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos           \</span><br><span>    | PORT_EVCTRL_PID2(CONF_PORTC_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTC_EVCTRL_EVACT_3)                       \</span><br><span>          | CONF_PORTC_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTC_EVCTRL_PID_3))</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_PORTD_EVCTRL                                                                                              \</span><br><span style="color: hsl(0, 100%, 40%);">-     (0 | PORT_EVCTRL_EVACT0(CONF_PORTD_EVCTRL_EVACT_0) | CONF_PORTD_EVCTRL_PORTEI_0 << PORT_EVCTRL_PORTEI0_Pos         \</span><br><span style="color: hsl(0, 100%, 40%);">-       | PORT_EVCTRL_PID0(CONF_PORTD_EVCTRL_PID_0) | PORT_EVCTRL_EVACT1(CONF_PORTD_EVCTRL_EVACT_1)                       \</span><br><span style="color: hsl(0, 100%, 40%);">-     | CONF_PORTD_EVCTRL_PORTEI_1 << PORT_EVCTRL_PORTEI1_Pos | PORT_EVCTRL_PID1(CONF_PORTD_EVCTRL_PID_1)               \</span><br><span style="color: hsl(0, 100%, 40%);">-       | PORT_EVCTRL_EVACT2(CONF_PORTD_EVCTRL_EVACT_2) | CONF_PORTD_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos           \</span><br><span style="color: hsl(0, 100%, 40%);">-       | PORT_EVCTRL_PID2(CONF_PORTD_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTD_EVCTRL_EVACT_3)                       \</span><br><span style="color: hsl(0, 100%, 40%);">-     | CONF_PORTD_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTD_EVCTRL_PID_3))</span><br><span> </span><br><span> // <<< end of configuration section >>></span><br><span> </span><br><span>diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h</span><br><span>index e154ce2..2a8c023 100644</span><br><span>--- a/sysmoOCTSIM/config/hpl_sercom_config.h</span><br><span>+++ b/sysmoOCTSIM/config/hpl_sercom_config.h</span><br><span>@@ -6,8 +6,8 @@</span><br><span> </span><br><span> #include <peripheral_clk_config.h></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_ENABLE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_ENABLE 1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_ENABLE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_ENABLE 1</span><br><span> #endif</span><br><span> </span><br><span> // <h> Basic Configuration</span><br><span>@@ -15,15 +15,15 @@</span><br><span> // <q> Receive buffer enable</span><br><span> // <i> Enable input buffer in SERCOM module</span><br><span> // <id> usart_rx_enable</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RXEN</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RXEN 1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RXEN</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RXEN 1</span><br><span> #endif</span><br><span> </span><br><span> // <q> Transmitt buffer enable</span><br><span> // <i> Enable output buffer in SERCOM module</span><br><span> // <id> usart_tx_enable</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_TXEN</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_TXEN 1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_TXEN</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_TXEN 1</span><br><span> #endif</span><br><span> </span><br><span> // <o> Frame parity</span><br><span>@@ -32,8 +32,8 @@</span><br><span> // <0x2=>Odd parity</span><br><span> // <i> Parity bit mode for USART frame</span><br><span> // <id> usart_parity</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_PARITY</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_PARITY 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_PARITY</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_PARITY 0x0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Character Size</span><br><span>@@ -44,8 +44,8 @@</span><br><span> // <0x7=>7 bits</span><br><span> // <i> Data character size in USART frame</span><br><span> // <id> usart_character_size</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_CHSIZE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_CHSIZE 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_CHSIZE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_CHSIZE 0x0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Stop Bit</span><br><span>@@ -53,51 +53,51 @@</span><br><span> // <1=>Two stop bits</span><br><span> // <i> Number of stop bits in USART frame</span><br><span> // <id> usart_stop_bit</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_SBMODE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_SBMODE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_SBMODE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_SBMODE 0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Baud rate <1-6250000></span><br><span> // <i> USART baud rate setting</span><br><span> // <id> usart_baud_rate</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD 921600</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD 921600</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span> </span><br><span> // <e> Advanced configuration</span><br><span> // <id> usart_advanced</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_ADVANCED_CONFIG</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_ADVANCED_CONFIG 0</span><br><span> #endif</span><br><span> </span><br><span> // <q> Run in stand-by</span><br><span> // <i> Keep the module running in standby sleep mode</span><br><span> // <id> usart_arch_runstdby</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RUNSTDBY</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RUNSTDBY 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RUNSTDBY</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RUNSTDBY 0</span><br><span> #endif</span><br><span> </span><br><span> // <q> Immediate Buffer Overflow Notification</span><br><span> // <i> Controls when the BUFOVF status bit is asserted</span><br><span> // <id> usart_arch_ibon</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_IBON</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_IBON 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_IBON</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_IBON 0</span><br><span> #endif</span><br><span> </span><br><span> // <q> Start of Frame Detection Enable</span><br><span> // <i> Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled)</span><br><span> // <id> usart_arch_sfde</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_SFDE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_SFDE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_SFDE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_SFDE 0</span><br><span> #endif</span><br><span> </span><br><span> // <q> Collision Detection Enable</span><br><span> // <i> Collision detection enable</span><br><span> // <id> usart_arch_cloden</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_CLODEN</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_CLODEN 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_CLODEN</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_CLODEN 0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Operating Mode</span><br><span>@@ -105,8 +105,8 @@</span><br><span> // <0x1=>USART with internal clock</span><br><span> // <i> Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin.</span><br><span> // <id> usart_arch_clock_mode</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_MODE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_MODE 0x1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_MODE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_MODE 0x1</span><br><span> #endif</span><br><span> </span><br><span> // <o> Sample Rate</span><br><span>@@ -117,8 +117,8 @@</span><br><span> // <0x4=>3x arithmetic</span><br><span> // <i> How many over-sampling bits used when sampling data state</span><br><span> // <id> usart_arch_sampr</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_SAMPR</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_SAMPR 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_SAMPR</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_SAMPR 0x0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Sample Adjustment</span><br><span>@@ -128,15 +128,15 @@</span><br><span> // <0x3=>13-14-15 (6-7-8 8-bit over-sampling)</span><br><span> // <i> Adjust which samples to use for data sampling in asynchronous mode</span><br><span> // <id> usart_arch_sampa</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_SAMPA</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_SAMPA 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_SAMPA</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_SAMPA 0x0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Fractional Part <0-7></span><br><span> // <i> Fractional part of the baud rate if baud rate generator is in fractional mode</span><br><span> // <id> usart_arch_fractional</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_FRACTIONAL</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_FRACTIONAL 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_FRACTIONAL</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_FRACTIONAL 0x0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Data Order</span><br><span>@@ -144,19 +144,19 @@</span><br><span> // <1=>LSB is transmitted first</span><br><span> // <i> Data order of the data bits in the frame</span><br><span> // <id> usart_arch_dord</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_DORD</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_DORD 1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_DORD</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_DORD 1</span><br><span> #endif</span><br><span> </span><br><span> // Does not do anything in UART mode</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_CPOL 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_CPOL 0</span><br><span> </span><br><span> // <o> Encoding Format</span><br><span> // <0=>No encoding</span><br><span> // <1=>IrDA encoded</span><br><span> // <id> usart_arch_enc</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_ENC</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_ENC 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_ENC</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_ENC 0</span><br><span> #endif</span><br><span> </span><br><span> // <o> LIN Slave Enable</span><br><span>@@ -165,8 +165,8 @@</span><br><span> // <0=>Disable</span><br><span> // <1=>Enable</span><br><span> // <id> usart_arch_lin_slave_enable</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE 0</span><br><span> #endif</span><br><span> </span><br><span> // <o> Debug Stop Mode</span><br><span>@@ -174,102 +174,102 @@</span><br><span> // <0=>Keep running</span><br><span> // <1=>Halt</span><br><span> // <id> usart_arch_dbgstop</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_DEBUG_STOP_MODE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_DEBUG_STOP_MODE 0</span><br><span> #endif</span><br><span> </span><br><span> // </e></span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_INACK</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_INACK 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_INACK</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_INACK 0x0</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_DSNACK</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_DSNACK 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_DSNACK</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_DSNACK 0x0</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_MAXITER</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_MAXITER 0x7</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_MAXITER</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_MAXITER 0x7</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_GTIME</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_GTIME 0x2</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_GTIME</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_GTIME 0x2</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RXINV 0x0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_TXINV 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RXINV 0x0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_TXINV 0x0</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_CMODE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_CMODE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_CMODE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_CMODE 0</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RXPO</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RXPO 1 /* RX is on PIN_PB24 */</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RXPO</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RXPO 1 /* RX is on PIN_PB31 */</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_TXPO</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_TXPO 0 /* TX is on PIN_PB25 */</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_TXPO</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_TXPO 0 /* TX is on PIN_PB30 */</span><br><span> #endif</span><br><span> </span><br><span> /* Set correct parity settings in register interface based on PARITY setting */</span><br><span style="color: hsl(0, 100%, 40%);">-#if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 1</span><br><span style="color: hsl(0, 100%, 40%);">-#if CONF_SERCOM_2_USART_PARITY == 0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_PMODE 0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_FORM 4</span><br><span style="color: hsl(120, 100%, 40%);">+#if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 1</span><br><span style="color: hsl(120, 100%, 40%);">+#if CONF_SERCOM_7_USART_PARITY == 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_PMODE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_FORM 4</span><br><span> #else</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_FORM 5</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_FORM 5</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#else /* #if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 0 */</span><br><span style="color: hsl(0, 100%, 40%);">-#if CONF_SERCOM_2_USART_PARITY == 0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_PMODE 0</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_FORM 0</span><br><span style="color: hsl(120, 100%, 40%);">+#else /* #if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 0 */</span><br><span style="color: hsl(120, 100%, 40%);">+#if CONF_SERCOM_7_USART_PARITY == 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_PMODE 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_FORM 0</span><br><span> #else</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_FORM 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_FORM 1</span><br><span> #endif</span><br><span> #endif</span><br><span> </span><br><span> // Calculate BAUD register value in UART mode</span><br><span style="color: hsl(0, 100%, 40%);">-#if CONF_SERCOM_2_USART_SAMPR == 0</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD_RATE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(0, 100%, 40%);">-        65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)</span><br><span style="color: hsl(120, 100%, 40%);">+#if CONF_SERCOM_7_USART_SAMPR == 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD_RATE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(120, 100%, 40%);">+  65536 - ((65536 * 16.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#elif CONF_SERCOM_2_USART_SAMPR == 1</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD_RATE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(0, 100%, 40%);">-    ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)</span><br><span style="color: hsl(120, 100%, 40%);">+#elif CONF_SERCOM_7_USART_SAMPR == 1</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD_RATE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(120, 100%, 40%);">+  ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 16)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8)</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#elif CONF_SERCOM_2_USART_SAMPR == 2</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD_RATE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(0, 100%, 40%);">-      65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)</span><br><span style="color: hsl(120, 100%, 40%);">+#elif CONF_SERCOM_7_USART_SAMPR == 2</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD_RATE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(120, 100%, 40%);">+ 65536 - ((65536 * 8.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#elif CONF_SERCOM_2_USART_SAMPR == 3</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD_RATE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(0, 100%, 40%);">-     ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8)</span><br><span style="color: hsl(120, 100%, 40%);">+#elif CONF_SERCOM_7_USART_SAMPR == 3</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD_RATE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(120, 100%, 40%);">+   ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 8)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8)</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#elif CONF_SERCOM_2_USART_SAMPR == 4</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_BAUD_RATE</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(0, 100%, 40%);">-       65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY)</span><br><span style="color: hsl(120, 100%, 40%);">+#elif CONF_SERCOM_7_USART_SAMPR == 4</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_BAUD_RATE</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_BAUD_RATE                                                                                  \</span><br><span style="color: hsl(120, 100%, 40%);">+ 65536 - ((65536 * 3.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY)</span><br><span> #endif</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0</span><br><span> #endif</span><br><span> #endif</span><br><span> </span><br><span>diff --git a/sysmoOCTSIM/config/hpl_usb_config.h b/sysmoOCTSIM/config/hpl_usb_config.h</span><br><span>index 02439a3..73a9fea 100644</span><br><span>--- a/sysmoOCTSIM/config/hpl_usb_config.h</span><br><span>+++ b/sysmoOCTSIM/config/hpl_usb_config.h</span><br><span>@@ -39,7 +39,7 @@</span><br><span> // <CONF_USB_D_N_EP_MAX"> Max possible (by "Max Endpoint Number" config)</span><br><span> // <id> usbd_num_ep_sp</span><br><span> #ifndef CONF_USB_D_NUM_EP_SP</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_USB_D_NUM_EP_SP CONF_USB_D_N_EP_MAX</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_USB_D_NUM_EP_SP CONF_USB_N_4</span><br><span> #endif</span><br><span> </span><br><span> // </h></span><br><span>diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>index c9852b6..ce68abd 100644</span><br><span>--- a/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>+++ b/sysmoOCTSIM/config/peripheral_clk_config.h</span><br><span>@@ -40,8 +40,8 @@</span><br><span> // <GCLK_PCHCTRL_GEN_GCLK11_Val"> Generic clock generator 11</span><br><span> </span><br><span> // <i> Select the clock source for CORE.</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_GCLK_SERCOM2_CORE_SRC</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_SERCOM2_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_GCLK_SERCOM7_CORE_SRC</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_SERCOM7_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val</span><br><span> #endif</span><br><span> </span><br><span> // <y> Slow Clock Source</span><br><span>@@ -72,24 +72,24 @@</span><br><span> // <GCLK_PCHCTRL_GEN_GCLK11_Val"> Generic clock generator 11</span><br><span> </span><br><span> // <i> Select the slow clock source.</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_GCLK_SERCOM2_SLOW_SRC</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_SERCOM2_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_GCLK_SERCOM7_SLOW_SRC</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_SERCOM7_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val</span><br><span> #endif</span><br><span> </span><br><span> /**</span><br><span style="color: hsl(0, 100%, 40%);">- * \def CONF_GCLK_SERCOM2_CORE_FREQUENCY</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief SERCOM2's Core Clock frequency</span><br><span style="color: hsl(120, 100%, 40%);">+ * \def CONF_GCLK_SERCOM7_CORE_FREQUENCY</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief SERCOM7's Core Clock frequency</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 100000000</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 100000000</span><br><span> #endif</span><br><span> </span><br><span> /**</span><br><span style="color: hsl(0, 100%, 40%);">- * \def CONF_GCLK_SERCOM2_SLOW_FREQUENCY</span><br><span style="color: hsl(0, 100%, 40%);">- * \brief SERCOM2's Slow Clock frequency</span><br><span style="color: hsl(120, 100%, 40%);">+ * \def CONF_GCLK_SERCOM7_SLOW_FREQUENCY</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief SERCOM7's Slow Clock frequency</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-#ifndef CONF_GCLK_SERCOM2_SLOW_FREQUENCY</span><br><span style="color: hsl(0, 100%, 40%);">-#define CONF_GCLK_SERCOM2_SLOW_FREQUENCY 32768</span><br><span style="color: hsl(120, 100%, 40%);">+#ifndef CONF_GCLK_SERCOM7_SLOW_FREQUENCY</span><br><span style="color: hsl(120, 100%, 40%);">+#define CONF_GCLK_SERCOM7_SLOW_FREQUENCY 32768</span><br><span> #endif</span><br><span> </span><br><span> // <y> USB Clock Source</span><br><span>diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c</span><br><span>index 9fbc7ed..dea4ebc 100644</span><br><span>--- a/sysmoOCTSIM/driver_init.c</span><br><span>+++ b/sysmoOCTSIM/driver_init.c</span><br><span>@@ -26,10 +26,10 @@</span><br><span> void UART_debug_CLOCK_init()</span><br><span> {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));</span><br><span style="color: hsl(0, 100%, 40%);">-        hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));</span><br><span style="color: hsl(120, 100%, 40%);">+      hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));</span><br><span style="color: hsl(120, 100%, 40%);">+      hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK);</span><br><span style="color: hsl(120, 100%, 40%);">+      hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK);</span><br><span> }</span><br><span> </span><br><span> /**</span><br><span>@@ -40,9 +40,9 @@</span><br><span> void UART_debug_PORT_init()</span><br><span> {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    gpio_set_pin_function(PB25, PINMUX_PB25D_SERCOM2_PAD0);</span><br><span style="color: hsl(120, 100%, 40%);">+       gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  gpio_set_pin_function(PB24, PINMUX_PB24D_SERCOM2_PAD1);</span><br><span style="color: hsl(120, 100%, 40%);">+       gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1);</span><br><span> }</span><br><span> </span><br><span> /**</span><br><span>@@ -53,14 +53,14 @@</span><br><span> void UART_debug_init(void)</span><br><span> {</span><br><span>  UART_debug_CLOCK_init();</span><br><span style="color: hsl(0, 100%, 40%);">-        usart_async_init(&UART_debug, SERCOM2, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+  usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL);</span><br><span>         UART_debug_PORT_init();</span><br><span> }</span><br><span> </span><br><span> void USB_DEVICE_INSTANCE_PORT_init(void)</span><br><span> {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   gpio_set_pin_direction(PA24,</span><br><span style="color: hsl(120, 100%, 40%);">+  gpio_set_pin_direction(USBUP_D_N,</span><br><span>                           // <y> Pin direction</span><br><span>                           // <id> pad_direction</span><br><span>                          // <GPIO_DIRECTION_OFF"> Off</span><br><span>@@ -68,14 +68,14 @@</span><br><span>                                // <GPIO_DIRECTION_OUT"> Out</span><br><span>                              GPIO_DIRECTION_OUT);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- gpio_set_pin_level(PA24,</span><br><span style="color: hsl(120, 100%, 40%);">+      gpio_set_pin_level(USBUP_D_N,</span><br><span>                           // <y> Initial level</span><br><span>                           // <id> pad_initial_level</span><br><span>                      // <false"> Low</span><br><span>                           // <true"> High</span><br><span>                           false);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  gpio_set_pin_pull_mode(PA24,</span><br><span style="color: hsl(120, 100%, 40%);">+  gpio_set_pin_pull_mode(USBUP_D_N,</span><br><span>                           // <y> Pull configuration</span><br><span>                              // <id> pad_pull_config</span><br><span>                                // <GPIO_PULL_OFF"> Off</span><br><span>@@ -83,7 +83,7 @@</span><br><span>                               // <GPIO_PULL_DOWN"> Pull-down</span><br><span>                            GPIO_PULL_OFF);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      gpio_set_pin_function(PA24,</span><br><span style="color: hsl(120, 100%, 40%);">+   gpio_set_pin_function(USBUP_D_N,</span><br><span>                           // <y> Pin function</span><br><span>                            // <id> pad_function</span><br><span>                           // <i> Auto : use driver pinmux if signal is imported by driver, else turn off function</span><br><span>@@ -105,7 +105,7 @@</span><br><span>                          // <GPIO_PIN_FUNCTION_N"> N</span><br><span>                               PINMUX_PA24H_USB_DM);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- gpio_set_pin_direction(PA25,</span><br><span style="color: hsl(120, 100%, 40%);">+  gpio_set_pin_direction(USBUP_D_P,</span><br><span>                           // <y> Pin direction</span><br><span>                           // <id> pad_direction</span><br><span>                          // <GPIO_DIRECTION_OFF"> Off</span><br><span>@@ -113,14 +113,14 @@</span><br><span>                              // <GPIO_DIRECTION_OUT"> Out</span><br><span>                              GPIO_DIRECTION_OUT);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- gpio_set_pin_level(PA25,</span><br><span style="color: hsl(120, 100%, 40%);">+      gpio_set_pin_level(USBUP_D_P,</span><br><span>                           // <y> Initial level</span><br><span>                           // <id> pad_initial_level</span><br><span>                      // <false"> Low</span><br><span>                           // <true"> High</span><br><span>                           false);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  gpio_set_pin_pull_mode(PA25,</span><br><span style="color: hsl(120, 100%, 40%);">+  gpio_set_pin_pull_mode(USBUP_D_P,</span><br><span>                           // <y> Pull configuration</span><br><span>                              // <id> pad_pull_config</span><br><span>                                // <GPIO_PULL_OFF"> Off</span><br><span>@@ -128,7 +128,7 @@</span><br><span>                             // <GPIO_PULL_DOWN"> Pull-down</span><br><span>                            GPIO_PULL_OFF);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      gpio_set_pin_function(PA25,</span><br><span style="color: hsl(120, 100%, 40%);">+   gpio_set_pin_function(USBUP_D_P,</span><br><span>                           // <y> Pin function</span><br><span>                            // <id> pad_function</span><br><span>                           // <i> Auto : use driver pinmux if signal is imported by driver, else turn off function</span><br><span>@@ -176,14 +176,14 @@</span><br><span> {</span><br><span>     init_mcu();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- // GPIO on PC18</span><br><span style="color: hsl(120, 100%, 40%);">+       // GPIO on PC26</span><br><span> </span><br><span>  gpio_set_pin_level(LED_system,</span><br><span>                          // <y> Initial level</span><br><span>                           // <id> pad_initial_level</span><br><span>                      // <false"> Low</span><br><span>                           // <true"> High</span><br><span style="color: hsl(0, 100%, 40%);">-                      true);</span><br><span style="color: hsl(120, 100%, 40%);">+                        false);</span><br><span> </span><br><span>       // Set pin direction to output</span><br><span>       gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT);</span><br><span>diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile</span><br><span>index ff11dd9..7bc5fd3 100644</span><br><span>--- a/sysmoOCTSIM/gcc/Makefile</span><br><span>+++ b/sysmoOCTSIM/gcc/Makefile</span><br><span>@@ -69,6 +69,7 @@</span><br><span> hal/src/hal_init.o \</span><br><span> gcc/gcc/startup_same54.o \</span><br><span> hal/src/hal_usb_device.o \</span><br><span style="color: hsl(120, 100%, 40%);">+main.o \</span><br><span> hpl/osc32kctrl/hpl_osc32kctrl.o \</span><br><span> examples/driver_examples.o \</span><br><span> driver_init.o \</span><br><span>@@ -81,7 +82,6 @@</span><br><span> hal/src/hal_cache.o \</span><br><span> hpl/cmcc/hpl_cmcc.o \</span><br><span> atmel_start.o \</span><br><span style="color: hsl(0, 100%, 40%);">-main.o \</span><br><span> usb/device/usbdc.o \</span><br><span> hal/src/hal_atomic.o</span><br><span> </span><br><span>@@ -107,6 +107,7 @@</span><br><span> "hal/src/hal_init.o" \</span><br><span> "gcc/gcc/startup_same54.o" \</span><br><span> "hal/src/hal_usb_device.o" \</span><br><span style="color: hsl(120, 100%, 40%);">+"main.o" \</span><br><span> "hpl/osc32kctrl/hpl_osc32kctrl.o" \</span><br><span> "examples/driver_examples.o" \</span><br><span> "driver_init.o" \</span><br><span>@@ -119,7 +120,6 @@</span><br><span> "hal/src/hal_cache.o" \</span><br><span> "hpl/cmcc/hpl_cmcc.o" \</span><br><span> "atmel_start.o" \</span><br><span style="color: hsl(0, 100%, 40%);">-"main.o" \</span><br><span> "usb/device/usbdc.o" \</span><br><span> "hal/src/hal_atomic.o"</span><br><span> </span><br><span>@@ -147,11 +147,11 @@</span><br><span> "hal/src/hal_usb_device.d" \</span><br><span> "usb_start.d" \</span><br><span> "hal/src/hal_init.d" \</span><br><span style="color: hsl(0, 100%, 40%);">-"main.d" \</span><br><span> "hpl/mclk/hpl_mclk.d" \</span><br><span> "driver_init.d" \</span><br><span> "hal/src/hal_usart_async.d" \</span><br><span> "hpl/osc32kctrl/hpl_osc32kctrl.d" \</span><br><span style="color: hsl(120, 100%, 40%);">+"main.d" \</span><br><span> "examples/driver_examples.d" \</span><br><span> "hal/src/hal_cache.d" \</span><br><span> "hal/src/hal_sleep.d" \</span><br><span>@@ -184,7 +184,7 @@</span><br><span>  $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \</span><br><span> -Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \</span><br><span>  \</span><br><span style="color: hsl(0, 100%, 40%);">--T"../gcc/gcc/same54p20a_flash.ld" \</span><br><span style="color: hsl(120, 100%, 40%);">+-T"../gcc/gcc/same54n19a_flash.ld" \</span><br><span> -L"../gcc/gcc"</span><br><span>  @echo Finished building target: $@</span><br><span> </span><br><span>@@ -208,7 +208,7 @@</span><br><span>         @echo Building file: $<</span><br><span>   @echo ARM/GNU C Compiler</span><br><span>     $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \</span><br><span style="color: hsl(0, 100%, 40%);">--D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span style="color: hsl(120, 100%, 40%);">+-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span> -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include"  \</span><br><span> -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"</span><br><span>        @echo Finished building: $<</span><br><span>@@ -217,7 +217,7 @@</span><br><span>         @echo Building file: $<</span><br><span>   @echo ARM/GNU Assembler</span><br><span>      $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \</span><br><span style="color: hsl(0, 100%, 40%);">--D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span style="color: hsl(120, 100%, 40%);">+-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span> -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include"  \</span><br><span> -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"</span><br><span>         @echo Finished building: $<</span><br><span>@@ -226,7 +226,7 @@</span><br><span>         @echo Building file: $<</span><br><span>   @echo ARM/GNU Preprocessing Assembler</span><br><span>        $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \</span><br><span style="color: hsl(0, 100%, 40%);">--D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span style="color: hsl(120, 100%, 40%);">+-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \</span><br><span> -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include"  \</span><br><span> -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"  -o "$@" "$<"</span><br><span>        @echo Finished building: $<</span><br><span>@@ -247,4 +247,4 @@</span><br><span>         rm -f $(DEPS_AS_ARGS)</span><br><span>        rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \</span><br><span>         $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \</span><br><span style="color: hsl(0, 100%, 40%);">-        $(OUTPUT_FILE_NAME).srec</span><br><span style="color: hsl(120, 100%, 40%);">+        $(OUTPUT_FILE_NAME).srec</span><br><span>\ No newline at end of file</span><br><span>diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld</span><br><span>new file mode 100644</span><br><span>index 0000000..eaa6ed6</span><br><span>--- /dev/null</span><br><span>+++ b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld</span><br><span>@@ -0,0 +1,163 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span style="color: hsl(120, 100%, 40%);">+ * \file</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief Linker script for running in internal FLASH on the SAME54N19A</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (c) 2018 Microchip Technology Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \asf_license_start</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \page License</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * SPDX-License-Identifier: Apache-2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Licensed under the Apache License, Version 2.0 (the "License"); you may</span><br><span style="color: hsl(120, 100%, 40%);">+ * not use this file except in compliance with the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ * You may obtain a copy of the Licence at</span><br><span style="color: hsl(120, 100%, 40%);">+ * </span><br><span style="color: hsl(120, 100%, 40%);">+ * http://www.apache.org/licenses/LICENSE-2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ * </span><br><span style="color: hsl(120, 100%, 40%);">+ * Unless required by applicable law or agreed to in writing, software</span><br><span style="color: hsl(120, 100%, 40%);">+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT</span><br><span style="color: hsl(120, 100%, 40%);">+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><br><span style="color: hsl(120, 100%, 40%);">+ * See the License for the specific language governing permissions and</span><br><span style="color: hsl(120, 100%, 40%);">+ * limitations under the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \asf_license_stop</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")</span><br><span style="color: hsl(120, 100%, 40%);">+OUTPUT_ARCH(arm)</span><br><span style="color: hsl(120, 100%, 40%);">+SEARCH_DIR(.)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Memory Spaces Definitions */</span><br><span style="color: hsl(120, 100%, 40%);">+MEMORY</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  rom      (rx)  : ORIGIN = 0x00000000, LENGTH = 0x00080000</span><br><span style="color: hsl(120, 100%, 40%);">+  ram      (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000</span><br><span style="color: hsl(120, 100%, 40%);">+  bkupram  (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000</span><br><span style="color: hsl(120, 100%, 40%);">+  qspi     (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The stack size used by the application. NOTE: you need to adjust according to your application. */</span><br><span style="color: hsl(120, 100%, 40%);">+STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Section Definitions */</span><br><span style="color: hsl(120, 100%, 40%);">+SECTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    .text :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sfixed = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.vectors .vectors.*))</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.text .text.* .gnu.linkonce.t.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.glue_7t) *(.glue_7)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.rodata .rodata* .gnu.linkonce.r.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.ARM.extab* .gnu.linkonce.armextab.*)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Support C constructors, and C destructors in both user code</span><br><span style="color: hsl(120, 100%, 40%);">+           and the C library. This also provides support for C++ code. */</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.init))</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __preinit_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.preinit_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        __preinit_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __init_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.init_array.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.init_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        __init_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtbegin.o(.ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.ctors.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtend.o(.ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.fini))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __fini_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.fini_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.fini_array.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        __fini_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtbegin.o(.dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.dtors.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtend.o(.dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _efixed = .;            /* End of text section */</span><br><span style="color: hsl(120, 100%, 40%);">+    } > rom</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* .ARM.exidx is sorted, so has to go in its own output section.  */</span><br><span style="color: hsl(120, 100%, 40%);">+    PROVIDE_HIDDEN (__exidx_start = .);</span><br><span style="color: hsl(120, 100%, 40%);">+    .ARM.exidx :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+      *(.ARM.exidx* .gnu.linkonce.armexidx.*)</span><br><span style="color: hsl(120, 100%, 40%);">+    } > rom</span><br><span style="color: hsl(120, 100%, 40%);">+    PROVIDE_HIDDEN (__exidx_end = .);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+    _etext = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .relocate : AT (_etext)</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _srelocate = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.ramfunc .ramfunc.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.data .data.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _erelocate = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .bkupram (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sbkupram = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.bkupram .bkupram.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _ebkupram = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > bkupram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .qspi (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sqspi = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.qspi .qspi.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _eqspi = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > qspi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* .bss section which is used for uninitialized data */</span><br><span style="color: hsl(120, 100%, 40%);">+    .bss (NOLOAD) :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sbss = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+        _szero = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.bss .bss.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(COMMON)</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _ebss = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+        _ezero = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* stack section */</span><br><span style="color: hsl(120, 100%, 40%);">+    .stack (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sstack = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        . = . + STACK_SIZE;</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _estack = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+    _end = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld</span><br><span>new file mode 100644</span><br><span>index 0000000..fa2c47c</span><br><span>--- /dev/null</span><br><span>+++ b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld</span><br><span>@@ -0,0 +1,162 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/**</span><br><span style="color: hsl(120, 100%, 40%);">+ * \file</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \brief Linker script for running in internal SRAM on the SAME54N19A</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Copyright (c) 2018 Microchip Technology Inc.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \asf_license_start</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \page License</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * SPDX-License-Identifier: Apache-2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Licensed under the Apache License, Version 2.0 (the "License"); you may</span><br><span style="color: hsl(120, 100%, 40%);">+ * not use this file except in compliance with the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ * You may obtain a copy of the Licence at</span><br><span style="color: hsl(120, 100%, 40%);">+ * </span><br><span style="color: hsl(120, 100%, 40%);">+ * http://www.apache.org/licenses/LICENSE-2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ * </span><br><span style="color: hsl(120, 100%, 40%);">+ * Unless required by applicable law or agreed to in writing, software</span><br><span style="color: hsl(120, 100%, 40%);">+ * distributed under the License is distributed on an AS IS BASIS, WITHOUT</span><br><span style="color: hsl(120, 100%, 40%);">+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><br><span style="color: hsl(120, 100%, 40%);">+ * See the License for the specific language governing permissions and</span><br><span style="color: hsl(120, 100%, 40%);">+ * limitations under the License.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * \asf_license_stop</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")</span><br><span style="color: hsl(120, 100%, 40%);">+OUTPUT_ARCH(arm)</span><br><span style="color: hsl(120, 100%, 40%);">+SEARCH_DIR(.)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Memory Spaces Definitions */</span><br><span style="color: hsl(120, 100%, 40%);">+MEMORY</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  ram      (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000</span><br><span style="color: hsl(120, 100%, 40%);">+  bkupram  (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000</span><br><span style="color: hsl(120, 100%, 40%);">+  qspi     (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* The stack size used by the application. NOTE: you need to adjust according to your application. */</span><br><span style="color: hsl(120, 100%, 40%);">+STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* Section Definitions */</span><br><span style="color: hsl(120, 100%, 40%);">+SECTIONS</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+    .text :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sfixed = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.vectors .vectors.*))</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.text .text.* .gnu.linkonce.t.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.glue_7t) *(.glue_7)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.rodata .rodata* .gnu.linkonce.r.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.ARM.extab* .gnu.linkonce.armextab.*)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Support C constructors, and C destructors in both user code</span><br><span style="color: hsl(120, 100%, 40%);">+           and the C library. This also provides support for C++ code. */</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.init))</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __preinit_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.preinit_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        __preinit_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __init_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.init_array.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.init_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        __init_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtbegin.o(.ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.ctors.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtend.o(.ctors))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP(*(.fini))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        __fini_array_start = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(.fini_array))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.fini_array.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        __fini_array_end = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtbegin.o(.dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*(SORT(.dtors.*)))</span><br><span style="color: hsl(120, 100%, 40%);">+        KEEP (*crtend.o(.dtors))</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _efixed = .;            /* End of text section */</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* .ARM.exidx is sorted, so has to go in its own output section.  */</span><br><span style="color: hsl(120, 100%, 40%);">+    PROVIDE_HIDDEN (__exidx_start = .);</span><br><span style="color: hsl(120, 100%, 40%);">+    .ARM.exidx :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+      *(.ARM.exidx* .gnu.linkonce.armexidx.*)</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+    PROVIDE_HIDDEN (__exidx_end = .);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+    _etext = .;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .relocate : AT (_etext)</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _srelocate = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.ramfunc .ramfunc.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.data .data.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _erelocate = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .bkupram (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sbkupram = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.bkupram .bkupram.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _ebkupram = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > bkupram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    .qspi (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sqspi = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.qspi .qspi.*);</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _eqspi = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > qspi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* .bss section which is used for uninitialized data */</span><br><span style="color: hsl(120, 100%, 40%);">+    .bss (NOLOAD) :</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sbss = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+        _szero = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        *(.bss .bss.*)</span><br><span style="color: hsl(120, 100%, 40%);">+        *(COMMON)</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+        _ebss = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+        _ezero = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* stack section */</span><br><span style="color: hsl(120, 100%, 40%);">+    .stack (NOLOAD):</span><br><span style="color: hsl(120, 100%, 40%);">+    {</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sstack = .;</span><br><span style="color: hsl(120, 100%, 40%);">+        . = . + STACK_SIZE;</span><br><span style="color: hsl(120, 100%, 40%);">+        . = ALIGN(8);</span><br><span style="color: hsl(120, 100%, 40%);">+        _estack = .;</span><br><span style="color: hsl(120, 100%, 40%);">+    } > ram</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    . = ALIGN(4);</span><br><span style="color: hsl(120, 100%, 40%);">+    _end = . ;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h</span><br><span>index f32c40f..12ff6f7 100644</span><br><span>--- a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h</span><br><span>+++ b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h</span><br><span>@@ -168,5 +168,4 @@</span><br><span>         hri_port_set_EVCTRL_reg(PORT, 0, CONF_PORTA_EVCTRL);</span><br><span>         hri_port_set_EVCTRL_reg(PORT, 1, CONF_PORTB_EVCTRL);</span><br><span>         hri_port_set_EVCTRL_reg(PORT, 2, CONF_PORTC_EVCTRL);</span><br><span style="color: hsl(0, 100%, 40%);">-    hri_port_set_EVCTRL_reg(PORT, 3, CONF_PORTD_EVCTRL);</span><br><span> }</span><br><span>diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c</span><br><span>index 11192d0..535ebc6 100644</span><br><span>--- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c</span><br><span>+++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c</span><br><span>@@ -163,7 +163,7 @@</span><br><span> };</span><br><span> #endif</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static struct _usart_async_device *_sercom2_dev = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+static struct _usart_async_device *_sercom7_dev = NULL;</span><br><span> </span><br><span> static uint8_t _get_sercom_index(const void *const hw);</span><br><span> static uint8_t _sercom_get_irq_num(const void *const hw);</span><br><span>@@ -626,8 +626,8 @@</span><br><span> static void _sercom_init_irq_param(const void *const hw, void *dev)</span><br><span> {</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (hw == SERCOM2) {</span><br><span style="color: hsl(0, 100%, 40%);">-            _sercom2_dev = (struct _usart_async_device *)dev;</span><br><span style="color: hsl(120, 100%, 40%);">+     if (hw == SERCOM7) {</span><br><span style="color: hsl(120, 100%, 40%);">+          _sercom7_dev = (struct _usart_async_device *)dev;</span><br><span>    }</span><br><span> }</span><br><span> </span><br><span>@@ -2392,30 +2392,30 @@</span><br><span> /**</span><br><span>  * \internal Sercom interrupt handler</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-void SERCOM2_0_Handler(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void SERCOM7_0_Handler(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      _sercom_usart_interrupt_handler(_sercom2_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sercom_usart_interrupt_handler(_sercom7_dev);</span><br><span> }</span><br><span> /**</span><br><span>  * \internal Sercom interrupt handler</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-void SERCOM2_1_Handler(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void SERCOM7_1_Handler(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       _sercom_usart_interrupt_handler(_sercom2_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sercom_usart_interrupt_handler(_sercom7_dev);</span><br><span> }</span><br><span> /**</span><br><span>  * \internal Sercom interrupt handler</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-void SERCOM2_2_Handler(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void SERCOM7_2_Handler(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       _sercom_usart_interrupt_handler(_sercom2_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sercom_usart_interrupt_handler(_sercom7_dev);</span><br><span> }</span><br><span> /**</span><br><span>  * \internal Sercom interrupt handler</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-void SERCOM2_3_Handler(void)</span><br><span style="color: hsl(120, 100%, 40%);">+void SERCOM7_3_Handler(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       _sercom_usart_interrupt_handler(_sercom2_dev);</span><br><span style="color: hsl(120, 100%, 40%);">+        _sercom_usart_interrupt_handler(_sercom7_dev);</span><br><span> }</span><br><span> </span><br><span> int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw)</span><br><span>diff --git a/sysmoOCTSIM/hpl/usb/hpl_usb.c b/sysmoOCTSIM/hpl/usb/hpl_usb.c</span><br><span>index 6bf09ab..b5efe6c 100644</span><br><span>--- a/sysmoOCTSIM/hpl/usb/hpl_usb.c</span><br><span>+++ b/sysmoOCTSIM/hpl/usb/hpl_usb.c</span><br><span>@@ -154,7 +154,7 @@</span><br><span>  *  \param[in] s Buffer size, in number of bytes.</span><br><span>  *  \return \c true If the buffer is in RAM.</span><br><span>  */</span><br><span style="color: hsl(0, 100%, 40%);">-#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00042000)))</span><br><span style="color: hsl(120, 100%, 40%);">+#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00032000)))</span><br><span> </span><br><span> /** Check if the address should be placed in RAM. */</span><br><span> #define _usb_is_addr4dma(addr, size) _IN_RAM((addr), (size))</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12808">change 12808</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12808"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ccid-firmware </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc </div>
<div style="display:none"> Gerrit-Change-Number: 12808 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Kévin Redon <kredon@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Kévin Redon <kredon@sysmocom.de> </div>