diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_16.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_16.FLM
new file mode 100644
index 0000000..5adc69f
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_16.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_32.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_32.FLM
new file mode 100644
index 0000000..30d3275
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_32.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_64.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_64.FLM
new file mode 100644
index 0000000..cd2287d
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_64.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_BOOTMEM_AP.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_BOOTMEM_AP.FLM
new file mode 100644
index 0000000..eabe1a9
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_BOOTMEM_AP.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_USD.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_USD.FLM
new file mode 100644
index 0000000..920122f
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F421_USD.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_128.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_128.FLM
new file mode 100644
index 0000000..6806306
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_128.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_256.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_256.FLM
new file mode 100644
index 0000000..bc1b9b3
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_256.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_64.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_64.FLM
new file mode 100644
index 0000000..0c23805
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_64.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_BOOTMEM_AP.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_BOOTMEM_AP.FLM
new file mode 100644
index 0000000..1115a7b
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_BOOTMEM_AP.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_USD.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_USD.FLM
new file mode 100644
index 0000000..60e30c3
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F423_USD.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_16.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_16.FLM
new file mode 100644
index 0000000..0497ad2
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_16.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_32.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_32.FLM
new file mode 100644
index 0000000..15cd09b
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_32.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_64.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_64.FLM
new file mode 100644
index 0000000..8f21866
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_64.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_BOOTMEM_AP.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_BOOTMEM_AP.FLM
new file mode 100644
index 0000000..bc1d4c8
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_BOOTMEM_AP.FLM differ
diff --git a/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_USD.FLM b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_USD.FLM
new file mode 100644
index 0000000..4ca4664
Binary files /dev/null and b/.platformio/packages/tool-jlink/Devices/AT/AT32F4xx/AT32F425_USD.FLM differ
diff --git a/.platformio/packages/tool-ldscripts-at32/.piopm b/.platformio/packages/tool-ldscripts-at32/.piopm
deleted file mode 100644
index e4cfeb7..0000000
--- a/.platformio/packages/tool-ldscripts-at32/.piopm
+++ /dev/null
@@ -1 +0,0 @@
-{"type": "tool", "name": "tool-ldscripts-at32", "version": "0.1.1", "spec": {"owner": "platformio", "id": 8167, "name": "tool-ldscripts-at32", "requirements": null, "url": null}}
\ No newline at end of file
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AAG_DEFAULT.ld b/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AAG_DEFAULT.ld
deleted file mode 100644
index 1fd0c47..0000000
--- a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AAG_DEFAULT.ld
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- ******************************************************************************
- * @file LinkerScript.ld
- * @author Auto-generated by STM32CubeIDE
- * @brief Linker script for STM32F030C6Tx Device from STM32F0 series
- * 32Kbytes FLASH
- * 4Kbytes RAM
- *
- * Set heap size, stack size and stack location according
- * to application requirements.
- *
- * Set memory bank area and size if external memory is used
- ******************************************************************************
- * @attention
- *
- *
© Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
-
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Memories definition */
-MEMORY
-{
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 224K
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 256K
-}
-
-/* Sections */
-SECTIONS
-{
- /* The startup code into "FLASH" Rom type memory */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data into "FLASH" Rom type memory */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data into "FLASH" Rom type memory */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : {
- . = ALIGN(4);
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- . = ALIGN(4);
- } >FLASH
-
- .ARM : {
- . = ALIGN(4);
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- . = ALIGN(4);
- } >FLASH
-
- .preinit_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- .init_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- .fini_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- /* Used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections into "RAM" Ram type memory */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
-
- } >RAM AT> FLASH
-
- /* Uninitialized data section into "RAM" Ram type memory */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss section */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
- ._user_heap_stack :
- {
- . = ALIGN(8);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(8);
- } >RAM
-
- /* Remove information from the compiler libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
\ No newline at end of file
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403ACG_DEFAULT.ld b/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403ACG_DEFAULT.ld
deleted file mode 100644
index 1fd0c47..0000000
--- a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403ACG_DEFAULT.ld
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- ******************************************************************************
- * @file LinkerScript.ld
- * @author Auto-generated by STM32CubeIDE
- * @brief Linker script for STM32F030C6Tx Device from STM32F0 series
- * 32Kbytes FLASH
- * 4Kbytes RAM
- *
- * Set heap size, stack size and stack location according
- * to application requirements.
- *
- * Set memory bank area and size if external memory is used
- ******************************************************************************
- * @attention
- *
- * © Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = ORIGIN(RAM) + LENGTH(RAM); /* end of "RAM" Ram type memory */
-
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Memories definition */
-MEMORY
-{
- RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 224K
- FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 256K
-}
-
-/* Sections */
-SECTIONS
-{
- /* The startup code into "FLASH" Rom type memory */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data into "FLASH" Rom type memory */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data into "FLASH" Rom type memory */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : {
- . = ALIGN(4);
- *(.ARM.extab* .gnu.linkonce.armextab.*)
- . = ALIGN(4);
- } >FLASH
-
- .ARM : {
- . = ALIGN(4);
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- . = ALIGN(4);
- } >FLASH
-
- .preinit_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- .init_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- .fini_array :
- {
- . = ALIGN(4);
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- . = ALIGN(4);
- } >FLASH
-
- /* Used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections into "RAM" Ram type memory */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
-
- } >RAM AT> FLASH
-
- /* Uninitialized data section into "RAM" Ram type memory */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss section */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough "RAM" Ram type memory left */
- ._user_heap_stack :
- {
- . = ALIGN(8);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(8);
- } >RAM
-
- /* Remove information from the compiler libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
\ No newline at end of file
diff --git a/.platformio/packages/tool-ldscripts-at32/package.json b/.platformio/packages/tool-ldscripts-at32/package.json
deleted file mode 100644
index e93ffc7..0000000
--- a/.platformio/packages/tool-ldscripts-at32/package.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "tool-ldscripts-at32",
- "version": "0.1.1",
- "description": "Linker scripts pack for Artery AT32 platform",
- "keywords": [
- "linker scripts",
- "artery",
- "at32"
- ],
- "homepage": "https://www.arterychip.com/en/product/AT32F403A.jsp",
- "license": "Apache-2.0"
-}
\ No newline at end of file
diff --git a/.platformio/platforms/at32/ldscripts/AT32F403AxE_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F403AxE_FLASH.ld
deleted file mode 100644
index c68b2bd..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F403AxE_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F403AxE_FLASH.ld
-**
-** Abstract : Linker script for AT32F403AxE Device with
-** 512KByte FLASH, 96KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 224K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/platforms/at32/ldscripts/AT32F403AxG_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F403AxG_FLASH.ld
deleted file mode 100644
index 9640684..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F403AxG_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F403AxG_FLASH.ld
-**
-** Abstract : Linker script for AT32F403xG Device with
-** 1000KByte FLASH, 96KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1000K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 224K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/platforms/at32/ldscripts/AT32F435xG_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F435xG_FLASH.ld
deleted file mode 100644
index 1ecd8f0..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F435xG_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F435xG_FLASH.ld
-**
-** Abstract : Linker script for AT32F435xG Device with
-** 1000KByte FLASH, 384KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1000K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/platforms/at32/ldscripts/AT32F435xM_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F435xM_FLASH.ld
deleted file mode 100644
index 53bcdca..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F435xM_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F435xM_FLASH.ld
-**
-** Abstract : Linker script for AT32F435xM Device with
-** 4096KByte FLASH, 384KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 4032K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/platforms/at32/ldscripts/AT32F437xG_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F437xG_FLASH.ld
deleted file mode 100644
index c0984f3..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F437xG_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F437xG_FLASH.ld
-**
-** Abstract : Linker script for AT32F437xG Device with
-** 1000KByte FLASH, 384KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 1000K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/platforms/at32/ldscripts/AT32F437xM_FLASH.ld b/.platformio/platforms/at32/ldscripts/AT32F437xM_FLASH.ld
deleted file mode 100644
index 850480c..0000000
--- a/.platformio/platforms/at32/ldscripts/AT32F437xM_FLASH.ld
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-*****************************************************************************
-**
-** File : AT32F437xM_FLASH.ld
-**
-** Abstract : Linker script for AT32F437xM Device with
-** 4096KByte FLASH, 384KByte RAM
-**
-** Set heap size, stack size and stack location according
-** to application requirements.
-**
-** Set memory bank area and size if external memory is used.
-**
-** Target : Artery Tek AT32
-**
-** Environment : Arm gcc toolchain
-**
-*****************************************************************************
-*/
-
-/* Entry Point */
-ENTRY(Reset_Handler)
-
-/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
-
-/* Generate a link error if heap and stack don't fit into RAM */
-_Min_Heap_Size = 0x200; /* required amount of heap */
-_Min_Stack_Size = 0x400; /* required amount of stack */
-
-/* Specify the memory areas */
-MEMORY
-{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 4032K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
-}
-
-/* Define output sections */
-SECTIONS
-{
- /* The startup code goes first into FLASH */
- .isr_vector :
- {
- . = ALIGN(4);
- KEEP(*(.isr_vector)) /* Startup code */
- . = ALIGN(4);
- } >FLASH
-
- /* The program code and other data goes into FLASH */
- .text :
- {
- . = ALIGN(4);
- *(.text) /* .text sections (code) */
- *(.text*) /* .text* sections (code) */
- *(.glue_7) /* glue arm to thumb code */
- *(.glue_7t) /* glue thumb to arm code */
- *(.eh_frame)
-
- KEEP (*(.init))
- KEEP (*(.fini))
-
- . = ALIGN(4);
- _etext = .; /* define a global symbols at end of code */
- } >FLASH
-
- /* Constant data goes into FLASH */
- .rodata :
- {
- . = ALIGN(4);
- *(.rodata) /* .rodata sections (constants, strings, etc.) */
- *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
- . = ALIGN(4);
- } >FLASH
-
- .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
- .ARM : {
- __exidx_start = .;
- *(.ARM.exidx*)
- __exidx_end = .;
- } >FLASH
-
- .preinit_array :
- {
- PROVIDE_HIDDEN (__preinit_array_start = .);
- KEEP (*(.preinit_array*))
- PROVIDE_HIDDEN (__preinit_array_end = .);
- } >FLASH
- .init_array :
- {
- PROVIDE_HIDDEN (__init_array_start = .);
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array*))
- PROVIDE_HIDDEN (__init_array_end = .);
- } >FLASH
- .fini_array :
- {
- PROVIDE_HIDDEN (__fini_array_start = .);
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array*))
- PROVIDE_HIDDEN (__fini_array_end = .);
- } >FLASH
-
- /* used by the startup to initialize data */
- _sidata = LOADADDR(.data);
-
- /* Initialized data sections goes into RAM, load LMA copy after code */
- .data :
- {
- . = ALIGN(4);
- _sdata = .; /* create a global symbol at data start */
- *(.data) /* .data sections */
- *(.data*) /* .data* sections */
-
- . = ALIGN(4);
- _edata = .; /* define a global symbol at data end */
- } >RAM AT> FLASH
-
- /* Uninitialized data section */
- . = ALIGN(4);
- .bss :
- {
- /* This is used by the startup in order to initialize the .bss secion */
- _sbss = .; /* define a global symbol at bss start */
- __bss_start__ = _sbss;
- *(.bss)
- *(.bss*)
- *(COMMON)
-
- . = ALIGN(4);
- _ebss = .; /* define a global symbol at bss end */
- __bss_end__ = _ebss;
- } >RAM
-
- /* User_heap_stack section, used to check that there is enough RAM left */
- ._user_heap_stack :
- {
- . = ALIGN(4);
- PROVIDE ( end = . );
- PROVIDE ( _end = . );
- . = . + _Min_Heap_Size;
- . = . + _Min_Stack_Size;
- . = ALIGN(4);
- } >RAM
-
- /* Remove information from the standard libraries */
- /DISCARD/ :
- {
- libc.a ( * )
- libm.a ( * )
- libgcc.a ( * )
- }
-
- .ARM.attributes 0 : { *(.ARM.attributes) }
-}
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f40/AT32F403AxC_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f40/AT32F403AxC_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxE_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f40/AT32F403AxE_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxE_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f40/AT32F403AxE_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxG_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f40/AT32F403AxG_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f40/AT32F403AxG_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f40/AT32F403AxG_FLASH.ld
diff --git a/.platformio/platforms/at32/ldscripts/AT32F403AxC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x4_FLASH.ld
similarity index 91%
rename from .platformio/platforms/at32/ldscripts/AT32F403AxC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f42/AT32F425x4_FLASH.ld
index f409fe5..5897ff9 100644
--- a/.platformio/platforms/at32/ldscripts/AT32F403AxC_FLASH.ld
+++ b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x4_FLASH.ld
@@ -1,17 +1,16 @@
/*
*****************************************************************************
**
-** File : AT32F403AxC_FLASH.ld
+** File : AT32F425x4_FLASH.ld
**
-** Abstract : Linker script for AT32F403xC Device with
-** 256KByte FLASH, 96KByte RAM
+** Abstract : Linker script for AT32F425x4 Device with
+** 16KByte FLASH, 8KByte RAM
**
** Set heap size, stack size and stack location according
** to application requirements.
**
** Set memory bank area and size if external memory is used.
**
-** Target : Artery Tek AT32
**
** Environment : Arm gcc toolchain
**
@@ -22,7 +21,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20001FFF; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -31,8 +30,8 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
/* Specify the memory areas */
MEMORY
{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 256K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 224K
+FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 16K
+RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 8K
}
/* Define output sections */
diff --git a/.platformio/platforms/at32/ldscripts/AT32F437xC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x6_FLASH.ld
similarity index 91%
rename from .platformio/platforms/at32/ldscripts/AT32F437xC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f42/AT32F425x6_FLASH.ld
index d9d0ecf..84c60cc 100644
--- a/.platformio/platforms/at32/ldscripts/AT32F437xC_FLASH.ld
+++ b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x6_FLASH.ld
@@ -1,17 +1,16 @@
/*
*****************************************************************************
**
-** File : AT32F437xC_FLASH.ld
+** File : AT32F425x6_FLASH.ld
**
-** Abstract : Linker script for AT32F437xC Device with
-** 256KByte FLASH, 384KByte RAM
+** Abstract : Linker script for AT32F425x6 Device with
+** 32KByte FLASH, 20KByte RAM
**
** Set heap size, stack size and stack location according
** to application requirements.
**
** Set memory bank area and size if external memory is used.
**
-** Target : Artery Tek AT32
**
** Environment : Arm gcc toolchain
**
@@ -22,7 +21,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20004FFF; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -31,8 +30,8 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
/* Specify the memory areas */
MEMORY
{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 256K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
+FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 32K
+RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Define output sections */
diff --git a/.platformio/platforms/at32/ldscripts/AT32F435xC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x8_FLASH.ld
similarity index 91%
rename from .platformio/platforms/at32/ldscripts/AT32F435xC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f42/AT32F425x8_FLASH.ld
index d5c2b4b..62e51e2 100644
--- a/.platformio/platforms/at32/ldscripts/AT32F435xC_FLASH.ld
+++ b/.platformio/platforms/at32/ldscripts/at32f42/AT32F425x8_FLASH.ld
@@ -1,17 +1,16 @@
/*
*****************************************************************************
**
-** File : AT32F435xC_FLASH.ld
+** File : AT32F425x8_FLASH.ld
**
-** Abstract : Linker script for AT32F435xC Device with
-** 256KByte FLASH, 384KByte RAM
+** Abstract : Linker script for AT32F425x8 Device with
+** 64KByte FLASH, 16KByte RAM
**
** Set heap size, stack size and stack location according
** to application requirements.
**
** Set memory bank area and size if external memory is used.
**
-** Target : Artery Tek AT32
**
** Environment : Arm gcc toolchain
**
@@ -22,7 +21,7 @@
ENTRY(Reset_Handler)
/* Highest address of the user mode stack */
-_estack = 0x20017FFF; /* end of RAM */
+_estack = 0x20004FFF; /* end of RAM */
/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0x200; /* required amount of heap */
@@ -31,8 +30,8 @@ _Min_Stack_Size = 0x400; /* required amount of stack */
/* Specify the memory areas */
MEMORY
{
-FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 256K
-RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 512K
+FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 64K
+RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
}
/* Define output sections */
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F435xC_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F435xC_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xG_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F435xG_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xG_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F435xG_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xM_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F435xM_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F435xM_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F435xM_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xC_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F437xC_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xC_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F437xC_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xG_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F437xG_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xG_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F437xG_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xM_FLASH.ld b/.platformio/platforms/at32/ldscripts/at32f43/AT32F437xM_FLASH.ld
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/at32f43/AT32F437xM_FLASH.ld
rename to .platformio/platforms/at32/ldscripts/at32f43/AT32F437xM_FLASH.ld
diff --git a/.platformio/packages/tool-ldscripts-at32/tpl/linker.tpl b/.platformio/platforms/at32/ldscripts/tpl/linker.tpl
similarity index 100%
rename from .platformio/packages/tool-ldscripts-at32/tpl/linker.tpl
rename to .platformio/platforms/at32/ldscripts/tpl/linker.tpl
diff --git a/JLINK.md b/JLINK.md
index 00b2b0d..c80cdf4 100644
--- a/JLINK.md
+++ b/JLINK.md
@@ -7,12 +7,10 @@ Copy the `.platformio\packages\tool-jlink\Devices\AT\AT32F4xx` folder from Githu
Add the following lines to the `JLinkDevices.xml` file under `.platformio/packages/tool-jlink/`
```
+
+
-
-
-
-
-
+
@@ -25,6 +23,7 @@ Add the following lines to the `JLinkDevices.xml` file under `.platformio/packag
+
@@ -36,7 +35,16 @@ Add the following lines to the `JLinkDevices.xml` file under `.platformio/packag
-
+
+
+
+
+
+
+
+
+
+
```
## 3. Use JLINK upload in the Project