Browse Source

fix the startup files of apm32f1 (#5725)

* fix the startup files of apm32f1

* delete ARM folder for apm32f1
stevetong459 3 years ago
parent
commit
84e18bb2d5

+ 37 - 40
bsp/apm32/apm32f103xe-minibroard/project.ewp

@@ -353,20 +353,20 @@
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
           <state>$PROJ_DIR$\..\libraries\Drivers</state>
           <state>$PROJ_DIR$\..\libraries\Drivers</state>
           <state>$PROJ_DIR$\..\libraries\Drivers\config</state>
           <state>$PROJ_DIR$\..\libraries\Drivers\config</state>
           <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
           <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
-          <state>$PROJ_DIR$\..\..\..\examples\utest\testcases\kernel</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include</state>
           <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc</state>
-          <state>$PROJ_DIR$\board</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\CMSIS\Include</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\CMSIS\Include</state>
           <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\nogcc</state>
+          <state>$PROJ_DIR$\board</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -1430,20 +1430,20 @@
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
           <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\stdio</state>
           <state>$PROJ_DIR$\..\libraries\Drivers</state>
           <state>$PROJ_DIR$\..\libraries\Drivers</state>
           <state>$PROJ_DIR$\..\libraries\Drivers\config</state>
           <state>$PROJ_DIR$\..\libraries\Drivers\config</state>
           <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
           <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
-          <state>$PROJ_DIR$\..\..\..\examples\utest\testcases\kernel</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include</state>
           <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\applications</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc</state>
-          <state>$PROJ_DIR$\board</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\CMSIS\Include</state>
           <state>$PROJ_DIR$\..\libraries\APM32F10x_Library\CMSIS\Include</state>
           <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\nogcc</state>
+          <state>$PROJ_DIR$\board</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -2169,44 +2169,44 @@
       <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
       <name>$PROJ_DIR$\..\..\..\components\libc\compilers\common\stdlib.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
       <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
     <name>CPU</name>
     <name>CPU</name>
-    <file>
-      <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
-    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c</name>
     </file>
     </file>
+    <file>
+      <name>$PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c</name>
+    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3\cpuport.c</name>
       <name>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3\cpuport.c</name>
     </file>
     </file>
@@ -2217,31 +2217,31 @@
   <group>
   <group>
     <name>DeviceDrivers</name>
     <name>DeviceDrivers</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\serial\serial.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\completion.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\pipe.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\completion.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\misc\pin.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\serial\serial.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
@@ -2277,43 +2277,43 @@
   <group>
   <group>
     <name>Kernel</name>
     <name>Kernel</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
       <name>$PROJ_DIR$\..\..\..\src\mem.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\components.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\components.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\clock.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\object.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\timer.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\object.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\idle.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\src\device.c</name>
       <name>$PROJ_DIR$\..\..\..\src\device.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\thread.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\irq.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
@@ -2340,7 +2340,4 @@
   <group>
   <group>
     <name>POSIX</name>
     <name>POSIX</name>
   </group>
   </group>
-  <group>
-    <name>utestcases</name>
-  </group>
 </project>
 </project>

+ 3 - 623
bsp/apm32/apm32f103xe-minibroard/project.uvoptx

@@ -73,11 +73,11 @@
         <LExpSel>0</LExpSel>
         <LExpSel>0</LExpSel>
       </OPTXL>
       </OPTXL>
       <OPTFL>
       <OPTFL>
-        <tvExp>1</tvExp>
+        <tvExp>0</tvExp>
         <tvExpOptDlg>0</tvExpOptDlg>
         <tvExpOptDlg>0</tvExpOptDlg>
         <IsCurrentTarget>1</IsCurrentTarget>
         <IsCurrentTarget>1</IsCurrentTarget>
       </OPTFL>
       </OPTFL>
-      <CpuCode>255</CpuCode>
+      <CpuCode>0</CpuCode>
       <DebugOpt>
       <DebugOpt>
         <uSim>0</uSim>
         <uSim>0</uSim>
         <uTrg>1</uTrg>
         <uTrg>1</uTrg>
@@ -175,631 +175,11 @@
   </Target>
   </Target>
 
 
   <Group>
   <Group>
-    <GroupName>Applications</GroupName>
+    <GroupName>Source Group 1</GroupName>
     <tvExp>0</tvExp>
     <tvExp>0</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>1</GroupNumber>
-      <FileNumber>1</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>applications\main.c</PathWithFileName>
-      <FilenameWithoutPath>main.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Compiler</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>2</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\libc\compilers\armlibc\libc_syms.c</PathWithFileName>
-      <FilenameWithoutPath>libc_syms.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>3</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\libc\compilers\armlibc\syscalls.c</PathWithFileName>
-      <FilenameWithoutPath>syscalls.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>4</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</PathWithFileName>
-      <FilenameWithoutPath>syscall_mem.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>5</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\libc\compilers\common\time.c</PathWithFileName>
-      <FilenameWithoutPath>time.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>2</GroupNumber>
-      <FileNumber>6</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\libc\compilers\common\stdlib.c</PathWithFileName>
-      <FilenameWithoutPath>stdlib.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>CPU</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>7</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\libcpu\arm\common\backtrace.c</PathWithFileName>
-      <FilenameWithoutPath>backtrace.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>8</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\libcpu\arm\common\showmem.c</PathWithFileName>
-      <FilenameWithoutPath>showmem.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>9</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\libcpu\arm\common\div0.c</PathWithFileName>
-      <FilenameWithoutPath>div0.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>10</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\libcpu\arm\cortex-m3\cpuport.c</PathWithFileName>
-      <FilenameWithoutPath>cpuport.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>3</GroupNumber>
-      <FileNumber>11</FileNumber>
-      <FileType>2</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\libcpu\arm\cortex-m3\context_rvds.S</PathWithFileName>
-      <FilenameWithoutPath>context_rvds.S</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>DeviceDrivers</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>12</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\misc\pin.c</PathWithFileName>
-      <FilenameWithoutPath>pin.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>13</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\serial\serial.c</PathWithFileName>
-      <FilenameWithoutPath>serial.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>14</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\ringbuffer.c</PathWithFileName>
-      <FilenameWithoutPath>ringbuffer.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>15</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\waitqueue.c</PathWithFileName>
-      <FilenameWithoutPath>waitqueue.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>16</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\workqueue.c</PathWithFileName>
-      <FilenameWithoutPath>workqueue.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>17</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\pipe.c</PathWithFileName>
-      <FilenameWithoutPath>pipe.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>18</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\completion.c</PathWithFileName>
-      <FilenameWithoutPath>completion.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>19</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\ringblk_buf.c</PathWithFileName>
-      <FilenameWithoutPath>ringblk_buf.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>4</GroupNumber>
-      <FileNumber>20</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\drivers\src\dataqueue.c</PathWithFileName>
-      <FilenameWithoutPath>dataqueue.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Drivers</GroupName>
-    <tvExp>1</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>21</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>board\board.c</PathWithFileName>
-      <FilenameWithoutPath>board.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>22</FileNumber>
-      <FileType>2</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Source\ARM\startup_apm32f10x_hd.s</PathWithFileName>
-      <FilenameWithoutPath>startup_apm32f10x_hd.s</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>23</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\Drivers\drv_gpio.c</PathWithFileName>
-      <FilenameWithoutPath>drv_gpio.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>24</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\Drivers\drv_usart.c</PathWithFileName>
-      <FilenameWithoutPath>drv_usart.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>5</GroupNumber>
-      <FileNumber>25</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>1</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\Drivers\drv_common.c</PathWithFileName>
-      <FilenameWithoutPath>drv_common.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Finsh</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>6</GroupNumber>
-      <FileNumber>26</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\finsh\shell.c</PathWithFileName>
-      <FilenameWithoutPath>shell.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>6</GroupNumber>
-      <FileNumber>27</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\finsh\msh.c</PathWithFileName>
-      <FilenameWithoutPath>msh.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>6</GroupNumber>
-      <FileNumber>28</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\components\finsh\cmd.c</PathWithFileName>
-      <FilenameWithoutPath>cmd.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Kernel</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>29</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\object.c</PathWithFileName>
-      <FilenameWithoutPath>object.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>30</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\irq.c</PathWithFileName>
-      <FilenameWithoutPath>irq.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>31</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\thread.c</PathWithFileName>
-      <FilenameWithoutPath>thread.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>32</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\mempool.c</PathWithFileName>
-      <FilenameWithoutPath>mempool.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>33</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\timer.c</PathWithFileName>
-      <FilenameWithoutPath>timer.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>34</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\kservice.c</PathWithFileName>
-      <FilenameWithoutPath>kservice.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>35</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\device.c</PathWithFileName>
-      <FilenameWithoutPath>device.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>36</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\clock.c</PathWithFileName>
-      <FilenameWithoutPath>clock.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>37</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\scheduler.c</PathWithFileName>
-      <FilenameWithoutPath>scheduler.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>38</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\mem.c</PathWithFileName>
-      <FilenameWithoutPath>mem.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>39</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\components.c</PathWithFileName>
-      <FilenameWithoutPath>components.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>40</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\ipc.c</PathWithFileName>
-      <FilenameWithoutPath>ipc.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>7</GroupNumber>
-      <FileNumber>41</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\..\..\src\idle.c</PathWithFileName>
-      <FilenameWithoutPath>idle.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-  </Group>
-
-  <Group>
-    <GroupName>Libraries</GroupName>
-    <tvExp>0</tvExp>
-    <tvExpOptDlg>0</tvExpOptDlg>
-    <cbSel>0</cbSel>
-    <RteFlg>0</RteFlg>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>42</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Source\system_apm32f10x.c</PathWithFileName>
-      <FilenameWithoutPath>system_apm32f10x.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>43</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\src\apm32f10x_rcm.c</PathWithFileName>
-      <FilenameWithoutPath>apm32f10x_rcm.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>44</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\src\apm32f10x_misc.c</PathWithFileName>
-      <FilenameWithoutPath>apm32f10x_misc.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>45</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\src\apm32f10x_usart.c</PathWithFileName>
-      <FilenameWithoutPath>apm32f10x_usart.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>46</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\src\apm32f10x_eint.c</PathWithFileName>
-      <FilenameWithoutPath>apm32f10x_eint.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
-    <File>
-      <GroupNumber>8</GroupNumber>
-      <FileNumber>47</FileNumber>
-      <FileType>1</FileType>
-      <tvExp>0</tvExp>
-      <tvExpOptDlg>0</tvExpOptDlg>
-      <bDave2>0</bDave2>
-      <PathWithFileName>..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\src\apm32f10x_gpio.c</PathWithFileName>
-      <FilenameWithoutPath>apm32f10x_gpio.c</FilenameWithoutPath>
-      <RteFlg>0</RteFlg>
-      <bShared>0</bShared>
-    </File>
   </Group>
   </Group>
 
 
 </ProjectOpt>
 </ProjectOpt>

+ 57 - 64
bsp/apm32/apm32f103xe-minibroard/project.uvprojx

@@ -335,7 +335,7 @@
               <MiscControls />
               <MiscControls />
               <Define>USE_STDPERIPH_DRIVER, APM32F10X_HD, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
               <Define>USE_STDPERIPH_DRIVER, APM32F10X_HD, __RTTHREAD__, RT_USING_ARM_LIBC, __CLK_TCK=RT_TICK_PER_SECOND</Define>
               <Undefine />
               <Undefine />
-              <IncludePath>applications;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\nogcc;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\Drivers;..\libraries\Drivers\config;..\..\..\components\finsh;.;..\..\..\include;..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include;..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc;..\libraries\APM32F10x_Library\CMSIS\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\ipc;..\..\..\examples\utest\testcases\kernel</IncludePath>
+              <IncludePath>applications;..\..\..\components\libc\compilers\common;..\..\..\components\libc\compilers\common\extension;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;board;..\libraries\Drivers;..\libraries\Drivers\config;..\..\..\components\finsh;.;..\..\..\include;..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Include;..\libraries\APM32F10x_Library\APM32F10x_StdPeriphDriver\inc;..\libraries\APM32F10x_Library\CMSIS\Include;..\..\..\components\libc\posix\io\poll;..\..\..\components\libc\posix\io\stdio;..\..\..\components\libc\posix\ipc</IncludePath>
             </VariousControls>
             </VariousControls>
           </Cads>
           </Cads>
           <Aads>
           <Aads>
@@ -390,9 +390,9 @@
           <GroupName>Compiler</GroupName>
           <GroupName>Compiler</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>libc_syms.c</FileName>
+              <FileName>syscalls.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\libc\compilers\armlibc\libc_syms.c</FilePath>
+              <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -402,13 +402,6 @@
               <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
               <FilePath>..\..\..\components\libc\compilers\armlibc\syscall_mem.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
-          <Files>
-            <File>
-              <FileName>syscalls.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\..\components\libc\compilers\armlibc\syscalls.c</FilePath>
-            </File>
-          </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>time.c</FileName>
               <FileName>time.c</FileName>
@@ -428,23 +421,23 @@
           <GroupName>CPU</GroupName>
           <GroupName>CPU</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>showmem.c</FileName>
+              <FileName>backtrace.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
+              <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>backtrace.c</FileName>
+              <FileName>div0.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\libcpu\arm\common\backtrace.c</FilePath>
+              <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>div0.c</FileName>
+              <FileName>showmem.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\libcpu\arm\common\div0.c</FilePath>
+              <FilePath>..\..\..\libcpu\arm\common\showmem.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -466,77 +459,70 @@
           <GroupName>DeviceDrivers</GroupName>
           <GroupName>DeviceDrivers</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>pin.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
-            </File>
-          </Files>
-          <Files>
-            <File>
-              <FileName>serial.c</FileName>
+              <FileName>waitqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\waitqueue.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>ringbuffer.c</FileName>
               <FileName>ringbuffer.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\ringbuffer.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\ringbuffer.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>pipe.c</FileName>
               <FileName>pipe.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\pipe.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\pipe.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>ringblk_buf.c</FileName>
+              <FileName>completion.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\ringblk_buf.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\completion.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>workqueue.c</FileName>
               <FileName>workqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\workqueue.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\workqueue.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>dataqueue.c</FileName>
               <FileName>dataqueue.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\dataqueue.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\dataqueue.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>waitqueue.c</FileName>
+              <FileName>ringblk_buf.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\waitqueue.c</FilePath>
+              <FilePath>..\..\..\components\drivers\ipc\ringblk_buf.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>completion.c</FileName>
+              <FileName>pin.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\drivers\src\completion.c</FilePath>
+              <FilePath>..\..\..\components\drivers\misc\pin.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
-        </Group>
-        <Group>
-          <GroupName>Drivers</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>board.c</FileName>
+              <FileName>serial.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>board\board.c</FilePath>
+              <FilePath>..\..\..\components\drivers\serial\serial.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
+        </Group>
+        <Group>
+          <GroupName>Drivers</GroupName>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>startup_apm32f10x_hd.s</FileName>
               <FileName>startup_apm32f10x_hd.s</FileName>
@@ -544,6 +530,13 @@
               <FilePath>..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Source\arm\startup_apm32f10x_hd.s</FilePath>
               <FilePath>..\libraries\APM32F10x_Library\Device\Geehy\APM32F10x\Source\arm\startup_apm32f10x_hd.s</FilePath>
             </File>
             </File>
           </Files>
           </Files>
+          <Files>
+            <File>
+              <FileName>board.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>board\board.c</FilePath>
+            </File>
+          </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>drv_gpio.c</FileName>
               <FileName>drv_gpio.c</FileName>
@@ -594,65 +587,65 @@
           <GroupName>Kernel</GroupName>
           <GroupName>Kernel</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>thread.c</FileName>
+              <FileName>components.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\thread.c</FilePath>
+              <FilePath>..\..\..\src\components.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>mempool.c</FileName>
+              <FileName>timer.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\mempool.c</FilePath>
+              <FilePath>..\..\..\src\timer.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>timer.c</FileName>
+              <FileName>mempool.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\timer.c</FilePath>
+              <FilePath>..\..\..\src\mempool.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>object.c</FileName>
+              <FileName>device.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\object.c</FilePath>
+              <FilePath>..\..\..\src\device.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>clock.c</FileName>
+              <FileName>idle.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\clock.c</FilePath>
+              <FilePath>..\..\..\src\idle.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>scheduler.c</FileName>
+              <FileName>irq.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\scheduler.c</FilePath>
+              <FilePath>..\..\..\src\irq.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>ipc.c</FileName>
+              <FileName>mem.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\ipc.c</FilePath>
+              <FilePath>..\..\..\src\mem.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>mem.c</FileName>
+              <FileName>scheduler.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\mem.c</FilePath>
+              <FilePath>..\..\..\src\scheduler.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>device.c</FileName>
+              <FileName>clock.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\device.c</FilePath>
+              <FilePath>..\..\..\src\clock.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -664,23 +657,23 @@
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>irq.c</FileName>
+              <FileName>thread.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\irq.c</FilePath>
+              <FilePath>..\..\..\src\thread.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>components.c</FileName>
+              <FileName>ipc.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\components.c</FilePath>
+              <FilePath>..\..\..\src\ipc.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>idle.c</FileName>
+              <FileName>object.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\idle.c</FilePath>
+              <FilePath>..\..\..\src\object.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>

+ 0 - 465
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/ARM/startup_apm32f10x_hd.s

@@ -1,465 +0,0 @@
-;/*!
-; * @file        startup_apm32f10x_hd.s
-; *
-; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device startup_apm32f10x_hd
-; *
-; * @version     V1.0.2
-; *
-; * @date        2022-01-05
-; *
-; * @attention
-; *
-; *  Copyright (C) 2020-2022 Geehy Semiconductor
-; *
-; *  You may not use this file except in compliance with the
-; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
-; *
-; *  The program is only for reference, which is distributed in the hope
-; *  that it will be usefull and instructional for customers to develop
-; *  their software. Unless required by applicable law or agreed to in
-; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
-; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
-; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
-; *  and limitations under the License.
-; */
-
-;
-<h> Stack Configuration
-;
-<o> Stack Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
-;
-< / h >
-
-Stack_Size      EQU     0x00000400
-
-AREA    STACK, NOINIT, READWRITE, ALIGN = 3
-        Stack_Mem       SPACE   Stack_Size
-        __initial_sp
-
-
-        ;
-<h> Heap Configuration
-;
-<o>  Heap Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
-;
-< / h >
-
-Heap_Size       EQU     0x00000200
-
-AREA    HEAP, NOINIT, READWRITE, ALIGN = 3
-        __heap_base
-        Heap_Mem        SPACE   Heap_Size
-        __heap_limit
-
-        PRESERVE8
-        THUMB
-
-
-        ;
-Vector Table Mapped to Address 0 at Reset
-AREA    RESET, DATA, READONLY
-EXPORT  __Vectors
-EXPORT  __Vectors_End
-EXPORT  __Vectors_Size
-
-__Vectors       DCD     __initial_sp                 ;
-Top of Stack
-DCD     Reset_Handler                ;
-Reset Handler
-DCD     NMI_Handler                  ;
-NMI Handler
-DCD     HardFault_Handler            ;
-Hard Fault Handler
-DCD     MemManage_Handler            ;
-MPU Fault Handler
-DCD     BusFault_Handler             ;
-Bus Fault Handler
-DCD     UsageFault_Handler           ;
-Usage Fault Handler
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     SVC_Handler                  ;
-SVCall Handler
-DCD     DebugMon_Handler             ;
-Debug Monitor Handler
-DCD     0                            ;
-Reserved
-DCD     PendSV_Handler               ;
-PendSV Handler
-DCD     SysTick_Handler              ;
-SysTick Handler
-
-;
-External Interrupts
-DCD     WWDT_IRQHandler              ;
-Window Watchdog
-DCD     PVD_IRQHandler               ;
-PVD through EINT Line detect
-DCD     TAMPER_IRQHandler            ;
-Tamper
-DCD     RTC_IRQHandler               ;
-RTC
-DCD     FLASH_IRQHandler             ;
-Flash
-DCD     RCM_IRQHandler               ;
-RCM
-DCD     EINT0_IRQHandler             ;
-EINT Line 0
-DCD     EINT1_IRQHandler             ;
-EINT Line 1
-DCD     EINT2_IRQHandler             ;
-EINT Line 2
-DCD     EINT3_IRQHandler             ;
-EINT Line 3
-DCD     EINT4_IRQHandler             ;
-EINT Line 4
-DCD     DMA1_Channel1_IRQHandler     ;
-DMA1 Channel 1
-DCD     DMA1_Channel2_IRQHandler     ;
-DMA1 Channel 2
-DCD     DMA1_Channel3_IRQHandler     ;
-DMA1 Channel 3
-DCD     DMA1_Channel4_IRQHandler     ;
-DMA1 Channel 4
-DCD     DMA1_Channel5_IRQHandler     ;
-DMA1 Channel 5
-DCD     DMA1_Channel6_IRQHandler     ;
-DMA1 Channel 6
-DCD     DMA1_Channel7_IRQHandler     ;
-DMA1 Channel 7
-DCD     ADC1_2_IRQHandler            ;
-ADC1 &ADC2
-DCD     USBD1_HP_CAN1_TX_IRQHandler  ;
-USBD1 High Priority or CAN1 TX
-DCD     USBD1_LP_CAN1_RX0_IRQHandler ;
-USBD1 Low  Priority or CAN1 RX0
-DCD     CAN1_RX1_IRQHandler          ;
-CAN1 RX1
-DCD     CAN1_SCE_IRQHandler          ;
-CAN1 SCE
-DCD     EINT9_5_IRQHandler           ;
-EINT Line 9..5
-DCD     TMR1_BRK_IRQHandler          ;
-TMR1 Break
-DCD     TMR1_UP_IRQHandler           ;
-TMR1 Update
-DCD     TMR1_TRG_COM_IRQHandler      ;
-TMR1 Trigger and Commutation
-DCD     TMR1_CC_IRQHandler           ;
-TMR1 Capture Compare
-DCD     TMR2_IRQHandler              ;
-TMR2
-DCD     TMR3_IRQHandler              ;
-TMR3
-DCD     TMR4_IRQHandler              ;
-TMR4
-DCD     I2C1_EV_IRQHandler           ;
-I2C1 Event
-DCD     I2C1_ER_IRQHandler           ;
-I2C1 Error
-DCD     I2C2_EV_IRQHandler           ;
-I2C2 Event
-DCD     I2C2_ER_IRQHandler           ;
-I2C2 Error
-DCD     SPI1_IRQHandler              ;
-SPI1
-DCD     SPI2_IRQHandler              ;
-SPI2
-DCD     USART1_IRQHandler            ;
-USART1
-DCD     USART2_IRQHandler            ;
-USART2
-DCD     USART3_IRQHandler            ;
-USART3
-DCD     EINT15_10_IRQHandler         ;
-EINT Line 15..10
-DCD     RTCAlarm_IRQHandler          ;
-RTC Alarm through EINT Line
-DCD     USBDWakeUp_IRQHandler        ;
-USBD Wakeup from suspend
-DCD     TMR8_BRK_IRQHandler          ;
-TMR8 Break
-DCD     TMR8_UP_IRQHandler           ;
-TMR8 Update
-DCD     TMR8_TRG_COM_IRQHandler      ;
-TMR8 Trigger and Commutation
-DCD     TMR8_CC_IRQHandler           ;
-TMR8 Capture Compare
-DCD     ADC3_IRQHandler              ;
-ADC3
-DCD     EMMC_IRQHandler              ;
-EMMC
-DCD     SDIO_IRQHandler              ;
-SDIO
-DCD     TMR5_IRQHandler              ;
-TMR5
-DCD     SPI3_IRQHandler              ;
-SPI3
-DCD     UART4_IRQHandler             ;
-UART4
-DCD     UART5_IRQHandler             ;
-UART5
-DCD     TMR6_IRQHandler              ;
-TMR6
-DCD     TMR7_IRQHandler              ;
-TMR7
-DCD     DMA2_Channel1_IRQHandler     ;
-DMA2 Channel1
-DCD     DMA2_Channel2_IRQHandler     ;
-DMA2 Channel2
-DCD     DMA2_Channel3_IRQHandler     ;
-DMA2 Channel3
-DCD     DMA2_Channel4_5_IRQHandler   ;
-DMA2 Channel4 &Channel5
-DCD     0                            ;
-Reserved
-DCD     USBD2_HP_CAN2_TX_IRQHandler  ;
-USBD2 High Priority or CAN2 TX
-DCD     USBD2_LP_CAN2_RX0_IRQHandler ;
-USBD2 Low  Priority or CAN2 RX0
-DCD     CAN2_RX1_IRQHandler          ;
-CAN2 RX1
-DCD     CAN2_SCE_IRQHandler          ;
-CAN2 SCE
-__Vectors_End
-
-__Vectors_Size  EQU  __Vectors_End - __Vectors
-
-AREA    | .text |, CODE, READONLY
-
-;
-Reset handler
-Reset_Handler   PROC
-EXPORT  Reset_Handler                [WEAK]
-IMPORT  __main
-IMPORT  SystemInit
-LDR     R0, = SystemInit
-              BLX     R0
-              LDR     R0, = __main
-                            BX      R0
-                            ENDP
-
-                            ;
-Dummy Exception Handlers(infinite loops which can be modified)
-
-NMI_Handler     PROC
-EXPORT  NMI_Handler                  [WEAK]
-B       .
-ENDP
-HardFault_Handler\
-PROC
-EXPORT  HardFault_Handler            [WEAK]
-B       .
-ENDP
-MemManage_Handler\
-PROC
-EXPORT  MemManage_Handler            [WEAK]
-B       .
-ENDP
-BusFault_Handler\
-PROC
-EXPORT  BusFault_Handler             [WEAK]
-B       .
-ENDP
-UsageFault_Handler\
-PROC
-EXPORT  UsageFault_Handler           [WEAK]
-B       .
-ENDP
-SVC_Handler     PROC
-EXPORT  SVC_Handler                  [WEAK]
-B       .
-ENDP
-DebugMon_Handler\
-PROC
-EXPORT  DebugMon_Handler             [WEAK]
-B       .
-ENDP
-PendSV_Handler  PROC
-EXPORT  PendSV_Handler               [WEAK]
-B       .
-ENDP
-SysTick_Handler PROC
-EXPORT  SysTick_Handler              [WEAK]
-B       .
-ENDP
-
-Default_Handler PROC
-
-EXPORT  WWDT_IRQHandler              [WEAK]
-EXPORT  PVD_IRQHandler               [WEAK]
-EXPORT  TAMPER_IRQHandler            [WEAK]
-EXPORT  RTC_IRQHandler               [WEAK]
-EXPORT  FLASH_IRQHandler             [WEAK]
-EXPORT  RCM_IRQHandler               [WEAK]
-EXPORT  EINT0_IRQHandler             [WEAK]
-EXPORT  EINT1_IRQHandler             [WEAK]
-EXPORT  EINT2_IRQHandler             [WEAK]
-EXPORT  EINT3_IRQHandler             [WEAK]
-EXPORT  EINT4_IRQHandler             [WEAK]
-EXPORT  DMA1_Channel1_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel2_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel3_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel4_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel5_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel6_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel7_IRQHandler     [WEAK]
-EXPORT  ADC1_2_IRQHandler            [WEAK]
-EXPORT  USBD1_HP_CAN1_TX_IRQHandler  [WEAK]
-EXPORT  USBD1_LP_CAN1_RX0_IRQHandler [WEAK]
-EXPORT  CAN1_RX1_IRQHandler          [WEAK]
-EXPORT  CAN1_SCE_IRQHandler          [WEAK]
-EXPORT  EINT9_5_IRQHandler           [WEAK]
-EXPORT  TMR1_BRK_IRQHandler          [WEAK]
-EXPORT  TMR1_UP_IRQHandler           [WEAK]
-EXPORT  TMR1_TRG_COM_IRQHandler      [WEAK]
-EXPORT  TMR1_CC_IRQHandler           [WEAK]
-EXPORT  TMR2_IRQHandler              [WEAK]
-EXPORT  TMR3_IRQHandler              [WEAK]
-EXPORT  TMR4_IRQHandler              [WEAK]
-EXPORT  I2C1_EV_IRQHandler           [WEAK]
-EXPORT  I2C1_ER_IRQHandler           [WEAK]
-EXPORT  I2C2_EV_IRQHandler           [WEAK]
-EXPORT  I2C2_ER_IRQHandler           [WEAK]
-EXPORT  SPI1_IRQHandler              [WEAK]
-EXPORT  SPI2_IRQHandler              [WEAK]
-EXPORT  USART1_IRQHandler            [WEAK]
-EXPORT  USART2_IRQHandler            [WEAK]
-EXPORT  USART3_IRQHandler            [WEAK]
-EXPORT  EINT15_10_IRQHandler         [WEAK]
-EXPORT  RTCAlarm_IRQHandler          [WEAK]
-EXPORT  USBDWakeUp_IRQHandler        [WEAK]
-EXPORT  TMR8_BRK_IRQHandler          [WEAK]
-EXPORT  TMR8_UP_IRQHandler           [WEAK]
-EXPORT  TMR8_TRG_COM_IRQHandler      [WEAK]
-EXPORT  TMR8_CC_IRQHandler           [WEAK]
-EXPORT  ADC3_IRQHandler              [WEAK]
-EXPORT  EMMC_IRQHandler              [WEAK]
-EXPORT  SDIO_IRQHandler              [WEAK]
-EXPORT  TMR5_IRQHandler              [WEAK]
-EXPORT  SPI3_IRQHandler              [WEAK]
-EXPORT  UART4_IRQHandler             [WEAK]
-EXPORT  UART5_IRQHandler             [WEAK]
-EXPORT  TMR6_IRQHandler              [WEAK]
-EXPORT  TMR7_IRQHandler              [WEAK]
-EXPORT  DMA2_Channel1_IRQHandler     [WEAK]
-EXPORT  DMA2_Channel2_IRQHandler     [WEAK]
-EXPORT  DMA2_Channel3_IRQHandler     [WEAK]
-EXPORT  DMA2_Channel4_5_IRQHandler   [WEAK]
-EXPORT  USBD2_HP_CAN2_TX_IRQHandler  [WEAK]
-EXPORT  USBD2_LP_CAN2_RX0_IRQHandler [WEAK]
-EXPORT  CAN2_RX1_IRQHandler          [WEAK]
-EXPORT  CAN2_SCE_IRQHandler          [WEAK]
-
-WWDT_IRQHandler
-PVD_IRQHandler
-TAMPER_IRQHandler
-RTC_IRQHandler
-FLASH_IRQHandler
-RCM_IRQHandler
-EINT0_IRQHandler
-EINT1_IRQHandler
-EINT2_IRQHandler
-EINT3_IRQHandler
-EINT4_IRQHandler
-DMA1_Channel1_IRQHandler
-DMA1_Channel2_IRQHandler
-DMA1_Channel3_IRQHandler
-DMA1_Channel4_IRQHandler
-DMA1_Channel5_IRQHandler
-DMA1_Channel6_IRQHandler
-DMA1_Channel7_IRQHandler
-ADC1_2_IRQHandler
-USBD1_HP_CAN1_TX_IRQHandler
-USBD1_LP_CAN1_RX0_IRQHandler
-CAN1_RX1_IRQHandler
-CAN1_SCE_IRQHandler
-EINT9_5_IRQHandler
-TMR1_BRK_IRQHandler
-TMR1_UP_IRQHandler
-TMR1_TRG_COM_IRQHandler
-TMR1_CC_IRQHandler
-TMR2_IRQHandler
-TMR3_IRQHandler
-TMR4_IRQHandler
-I2C1_EV_IRQHandler
-I2C1_ER_IRQHandler
-I2C2_EV_IRQHandler
-I2C2_ER_IRQHandler
-SPI1_IRQHandler
-SPI2_IRQHandler
-USART1_IRQHandler
-USART2_IRQHandler
-USART3_IRQHandler
-EINT15_10_IRQHandler
-RTCAlarm_IRQHandler
-USBDWakeUp_IRQHandler
-TMR8_BRK_IRQHandler
-TMR8_UP_IRQHandler
-TMR8_TRG_COM_IRQHandler
-TMR8_CC_IRQHandler
-ADC3_IRQHandler
-EMMC_IRQHandler
-SDIO_IRQHandler
-TMR5_IRQHandler
-SPI3_IRQHandler
-UART4_IRQHandler
-UART5_IRQHandler
-TMR6_IRQHandler
-TMR7_IRQHandler
-DMA2_Channel1_IRQHandler
-DMA2_Channel2_IRQHandler
-DMA2_Channel3_IRQHandler
-DMA2_Channel4_5_IRQHandler
-USBD2_HP_CAN2_TX_IRQHandler
-USBD2_LP_CAN2_RX0_IRQHandler
-CAN2_RX1_IRQHandler
-CAN2_SCE_IRQHandler
-B       .
-
-ENDP
-
-ALIGN
-
-;
-*******************************************************************************
-;
-User Stack and Heap initialization
-;
-*******************************************************************************
-IF      :
-DEF:
-__MICROLIB
-
-EXPORT  __initial_sp
-EXPORT  __heap_base
-EXPORT  __heap_limit
-
-ELSE
-
-IMPORT  __use_two_region_memory
-EXPORT  __user_initial_stackheap
-
-__user_initial_stackheap
-
-LDR     R0, = Heap_Mem
-              LDR     R1, = (Stack_Mem + Stack_Size)
-                            LDR     R2, = (Heap_Mem  + Heap_Size)
-                                    LDR     R3, = Stack_Mem
-                                            BX      LR
-
-                                            ALIGN
-
-                                            ENDIF
-
-                                            END
-
-                                            ;
-*******************************END OF FILE ************************************
-

+ 0 - 394
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/ARM/startup_apm32f10x_md.s

@@ -1,394 +0,0 @@
-;/*!
-; * @file        startup_apm32f10x_md.s
-; *
-; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device startup_apm32f10x_md
-; *
-; * @version     V1.0.2
-; *
-; * @date        2022-01-05
-; *
-; * @attention
-; *
-; *  Copyright (C) 2020-2022 Geehy Semiconductor
-; *
-; *  You may not use this file except in compliance with the
-; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
-; *
-; *  The program is only for reference, which is distributed in the hope
-; *  that it will be usefull and instructional for customers to develop
-; *  their software. Unless required by applicable law or agreed to in
-; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
-; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
-; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
-; *  and limitations under the License.
-; */
-
-;
-<h> Stack Configuration
-;
-<o> Stack Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
-;
-< / h >
-
-Stack_Size      EQU     0x00000400
-
-AREA    STACK, NOINIT, READWRITE, ALIGN = 3
-        Stack_Mem       SPACE   Stack_Size
-        __initial_sp
-
-
-        ;
-<h> Heap Configuration
-;
-<o>  Heap Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
-;
-< / h >
-
-Heap_Size       EQU     0x00000200
-
-AREA    HEAP, NOINIT, READWRITE, ALIGN = 3
-        __heap_base
-        Heap_Mem        SPACE   Heap_Size
-        __heap_limit
-
-        PRESERVE8
-        THUMB
-
-
-        ;
-Vector Table Mapped to Address 0 at Reset
-AREA    RESET, DATA, READONLY
-EXPORT  __Vectors
-EXPORT  __Vectors_End
-EXPORT  __Vectors_Size
-
-__Vectors       DCD     __initial_sp                 ;
-Top of Stack
-DCD     Reset_Handler                ;
-Reset Handler
-DCD     NMI_Handler                  ;
-NMI Handler
-DCD     HardFault_Handler            ;
-Hard Fault Handler
-DCD     MemManage_Handler            ;
-MPU Fault Handler
-DCD     BusFault_Handler             ;
-Bus Fault Handler
-DCD     UsageFault_Handler           ;
-Usage Fault Handler
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     SVC_Handler                  ;
-SVCall Handler
-DCD     DebugMon_Handler             ;
-Debug Monitor Handler
-DCD     0                            ;
-Reserved
-DCD     PendSV_Handler               ;
-PendSV Handler
-DCD     SysTick_Handler              ;
-SysTick Handler
-
-;
-External Interrupts
-DCD     WWDT_IRQHandler              ;
-Window Watchdog
-DCD     PVD_IRQHandler               ;
-PVD through EINT Line detect
-DCD     TAMPER_IRQHandler            ;
-Tamper
-DCD     RTC_IRQHandler               ;
-RTC
-DCD     FLASH_IRQHandler             ;
-Flash
-DCD     RCM_IRQHandler               ;
-RCM
-DCD     EINT0_IRQHandler             ;
-EINT Line 0
-DCD     EINT1_IRQHandler             ;
-EINT Line 1
-DCD     EINT2_IRQHandler             ;
-EINT Line 2
-DCD     EINT3_IRQHandler             ;
-EINT Line 3
-DCD     EINT4_IRQHandler             ;
-EINT Line 4
-DCD     DMA1_Channel1_IRQHandler     ;
-DMA1 Channel 1
-DCD     DMA1_Channel2_IRQHandler     ;
-DMA1 Channel 2
-DCD     DMA1_Channel3_IRQHandler     ;
-DMA1 Channel 3
-DCD     DMA1_Channel4_IRQHandler     ;
-DMA1 Channel 4
-DCD     DMA1_Channel5_IRQHandler     ;
-DMA1 Channel 5
-DCD     DMA1_Channel6_IRQHandler     ;
-DMA1 Channel 6
-DCD     DMA1_Channel7_IRQHandler     ;
-DMA1 Channel 7
-DCD     ADC1_2_IRQHandler            ;
-ADC1_2
-DCD     USBD1_HP_CAN1_TX_IRQHandler  ;
-USBD1 High Priority or CAN1 TX
-DCD     USBD1_LP_CAN1_RX0_IRQHandler ;
-USBD1 Low  Priority or CAN1 RX0
-DCD     CAN1_RX1_IRQHandler          ;
-CAN1 RX1
-DCD     CAN1_SCE_IRQHandler          ;
-CAN1 SCE
-DCD     EINT9_5_IRQHandler           ;
-EINT Line 9..5
-DCD     TMR1_BRK_IRQHandler          ;
-TMR1 Break
-DCD     TMR1_UP_IRQHandler           ;
-TMR1 Update
-DCD     TMR1_TRG_COM_IRQHandler      ;
-TMR1 Trigger and Commutation
-DCD     TMR1_CC_IRQHandler           ;
-TMR1 Capture Compare
-DCD     TMR2_IRQHandler              ;
-TMR2
-DCD     TMR3_IRQHandler              ;
-TMR3
-DCD     TMR4_IRQHandler              ;
-TMR4
-DCD     I2C1_EV_IRQHandler           ;
-I2C1 Event
-DCD     I2C1_ER_IRQHandler           ;
-I2C1 Error
-DCD     I2C2_EV_IRQHandler           ;
-I2C2 Event
-DCD     I2C2_ER_IRQHandler           ;
-I2C2 Error
-DCD     SPI1_IRQHandler              ;
-SPI1
-DCD     SPI2_IRQHandler              ;
-SPI2
-DCD     USART1_IRQHandler            ;
-USART1
-DCD     USART2_IRQHandler            ;
-USART2
-DCD     USART3_IRQHandler            ;
-USART3
-DCD     EINT15_10_IRQHandler         ;
-EINT Line 15..10
-DCD     RTCAlarm_IRQHandler          ;
-RTC Alarm through EINT Line
-DCD     USBDWakeUp_IRQHandler        ;
-USBD Wakeup from suspend
-DCD     FPU_IRQHandler               ;
-FPU
-DCD     QSPI_IRQHandler              ;
-QSPI
-DCD     USBD2_HP_IRQHandler          ;
-USBD2 High Priority
-DCD     USBD2_LP_IRQHandler          ;
-USBD2 Low Priority
-__Vectors_End
-
-__Vectors_Size  EQU  __Vectors_End - __Vectors
-
-AREA    | .text |, CODE, READONLY
-
-;
-Reset handler
-Reset_Handler    PROC
-EXPORT  Reset_Handler               [WEAK]
-IMPORT  __main
-IMPORT  SystemInit
-LDR     R0, = SystemInit
-              BLX     R0
-              LDR     R0, = __main
-                            BX      R0
-                            ENDP
-
-                            ;
-Dummy Exception Handlers(infinite loops which can be modified)
-
-NMI_Handler     PROC
-EXPORT  NMI_Handler                  [WEAK]
-B       .
-ENDP
-HardFault_Handler\
-PROC
-EXPORT  HardFault_Handler            [WEAK]
-B       .
-ENDP
-MemManage_Handler\
-PROC
-EXPORT  MemManage_Handler            [WEAK]
-B       .
-ENDP
-BusFault_Handler\
-PROC
-EXPORT  BusFault_Handler             [WEAK]
-B       .
-ENDP
-UsageFault_Handler\
-PROC
-EXPORT  UsageFault_Handler           [WEAK]
-B       .
-ENDP
-SVC_Handler     PROC
-EXPORT  SVC_Handler                  [WEAK]
-B       .
-ENDP
-DebugMon_Handler\
-PROC
-EXPORT  DebugMon_Handler             [WEAK]
-B       .
-ENDP
-PendSV_Handler  PROC
-EXPORT  PendSV_Handler               [WEAK]
-B       .
-ENDP
-SysTick_Handler PROC
-EXPORT  SysTick_Handler              [WEAK]
-B       .
-ENDP
-
-Default_Handler PROC
-
-EXPORT  WWDT_IRQHandler              [WEAK]
-EXPORT  PVD_IRQHandler               [WEAK]
-EXPORT  TAMPER_IRQHandler            [WEAK]
-EXPORT  RTC_IRQHandler               [WEAK]
-EXPORT  FLASH_IRQHandler             [WEAK]
-EXPORT  RCM_IRQHandler               [WEAK]
-EXPORT  EINT0_IRQHandler             [WEAK]
-EXPORT  EINT1_IRQHandler             [WEAK]
-EXPORT  EINT2_IRQHandler             [WEAK]
-EXPORT  EINT3_IRQHandler             [WEAK]
-EXPORT  EINT4_IRQHandler             [WEAK]
-EXPORT  DMA1_Channel1_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel2_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel3_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel4_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel5_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel6_IRQHandler     [WEAK]
-EXPORT  DMA1_Channel7_IRQHandler     [WEAK]
-EXPORT  ADC1_2_IRQHandler            [WEAK]
-EXPORT  USBD1_HP_CAN1_TX_IRQHandler  [WEAK]
-EXPORT  USBD1_LP_CAN1_RX0_IRQHandler [WEAK]
-EXPORT  CAN1_RX1_IRQHandler          [WEAK]
-EXPORT  CAN1_SCE_IRQHandler          [WEAK]
-EXPORT  EINT9_5_IRQHandler           [WEAK]
-EXPORT  TMR1_BRK_IRQHandler          [WEAK]
-EXPORT  TMR1_UP_IRQHandler           [WEAK]
-EXPORT  TMR1_TRG_COM_IRQHandler      [WEAK]
-EXPORT  TMR1_CC_IRQHandler           [WEAK]
-EXPORT  TMR2_IRQHandler              [WEAK]
-EXPORT  TMR3_IRQHandler              [WEAK]
-EXPORT  TMR4_IRQHandler              [WEAK]
-EXPORT  I2C1_EV_IRQHandler           [WEAK]
-EXPORT  I2C1_ER_IRQHandler           [WEAK]
-EXPORT  I2C2_EV_IRQHandler           [WEAK]
-EXPORT  I2C2_ER_IRQHandler           [WEAK]
-EXPORT  SPI1_IRQHandler              [WEAK]
-EXPORT  SPI2_IRQHandler              [WEAK]
-EXPORT  USART1_IRQHandler            [WEAK]
-EXPORT  USART2_IRQHandler            [WEAK]
-EXPORT  USART3_IRQHandler            [WEAK]
-EXPORT  EINT15_10_IRQHandler         [WEAK]
-EXPORT  RTCAlarm_IRQHandler          [WEAK]
-EXPORT  USBDWakeUp_IRQHandler        [WEAK]
-EXPORT  FPU_IRQHandler               [WEAK]
-EXPORT  QSPI_IRQHandler              [WEAK]
-EXPORT  USBD2_HP_IRQHandler          [WEAK]
-EXPORT  USBD2_LP_IRQHandler          [WEAK]
-
-WWDT_IRQHandler
-PVD_IRQHandler
-TAMPER_IRQHandler
-RTC_IRQHandler
-FLASH_IRQHandler
-RCM_IRQHandler
-EINT0_IRQHandler
-EINT1_IRQHandler
-EINT2_IRQHandler
-EINT3_IRQHandler
-EINT4_IRQHandler
-DMA1_Channel1_IRQHandler
-DMA1_Channel2_IRQHandler
-DMA1_Channel3_IRQHandler
-DMA1_Channel4_IRQHandler
-DMA1_Channel5_IRQHandler
-DMA1_Channel6_IRQHandler
-DMA1_Channel7_IRQHandler
-ADC1_2_IRQHandler
-USBD1_HP_CAN1_TX_IRQHandler
-USBD1_LP_CAN1_RX0_IRQHandler
-CAN1_RX1_IRQHandler
-CAN1_SCE_IRQHandler
-EINT9_5_IRQHandler
-TMR1_BRK_IRQHandler
-TMR1_UP_IRQHandler
-TMR1_TRG_COM_IRQHandler
-TMR1_CC_IRQHandler
-TMR2_IRQHandler
-TMR3_IRQHandler
-TMR4_IRQHandler
-I2C1_EV_IRQHandler
-I2C1_ER_IRQHandler
-I2C2_EV_IRQHandler
-I2C2_ER_IRQHandler
-SPI1_IRQHandler
-SPI2_IRQHandler
-USART1_IRQHandler
-USART2_IRQHandler
-USART3_IRQHandler
-EINT15_10_IRQHandler
-RTCAlarm_IRQHandler
-USBDWakeUp_IRQHandler
-FPU_IRQHandler
-QSPI_IRQHandler
-USBD2_HP_IRQHandler
-USBD2_LP_IRQHandler
-B       .
-
-ENDP
-
-ALIGN
-
-;
-*******************************************************************************
-;
-User Stack and Heap initialization
-;
-*******************************************************************************
-IF      :
-DEF:
-__MICROLIB
-
-EXPORT  __initial_sp
-EXPORT  __heap_base
-EXPORT  __heap_limit
-
-ELSE
-
-IMPORT  __use_two_region_memory
-EXPORT  __user_initial_stackheap
-
-__user_initial_stackheap
-
-LDR     R0, = Heap_Mem
-              LDR     R1, = (Stack_Mem + Stack_Size)
-                            LDR     R2, = (Heap_Mem  + Heap_Size)
-                                    LDR     R3, = Stack_Mem
-                                            BX      LR
-
-                                            ALIGN
-
-                                            ENDIF
-
-                                            END
-
-                                            ;
-*******************************END OF FILE ************************************

+ 368 - 0
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/arm/startup_apm32f10x_hd.s

@@ -0,0 +1,368 @@
+;/*!
+; * @file        startup_apm32f10x_hd.s
+; *
+; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device startup_apm32f10x_hd
+; *
+; * @version     V1.0.2
+; *
+; * @date        2022-01-05
+; *
+; * @attention
+; *
+; *  Copyright (C) 2020-2022 Geehy Semiconductor
+; *
+; *  You may not use this file except in compliance with the
+; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
+; *
+; *  The program is only for reference, which is distributed in the hope
+; *  that it will be usefull and instructional for customers to develop
+; *  their software. Unless required by applicable law or agreed to in
+; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
+; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
+; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
+; *  and limitations under the License.
+; */
+
+; <h> Stack Configuration
+;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Stack_Size      EQU     0x00000400
+
+                AREA    STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem       SPACE   Stack_Size
+__initial_sp
+
+
+; <h> Heap Configuration
+;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Heap_Size       EQU     0x00000200
+
+                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem        SPACE   Heap_Size
+__heap_limit
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp                 ; Top of Stack
+                DCD     Reset_Handler                ; Reset Handler
+                DCD     NMI_Handler                  ; NMI Handler
+                DCD     HardFault_Handler            ; Hard Fault Handler
+                DCD     MemManage_Handler            ; MPU Fault Handler
+                DCD     BusFault_Handler             ; Bus Fault Handler
+                DCD     UsageFault_Handler           ; Usage Fault Handler
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     SVC_Handler                  ; SVCall Handler
+                DCD     DebugMon_Handler             ; Debug Monitor Handler
+                DCD     0                            ; Reserved
+                DCD     PendSV_Handler               ; PendSV Handler
+                DCD     SysTick_Handler              ; SysTick Handler
+
+                ; External Interrupts
+                DCD     WWDT_IRQHandler              ; Window Watchdog
+                DCD     PVD_IRQHandler               ; PVD through EINT Line detect
+                DCD     TAMPER_IRQHandler            ; Tamper
+                DCD     RTC_IRQHandler               ; RTC
+                DCD     FLASH_IRQHandler             ; Flash
+                DCD     RCM_IRQHandler               ; RCM
+                DCD     EINT0_IRQHandler             ; EINT Line 0
+                DCD     EINT1_IRQHandler             ; EINT Line 1
+                DCD     EINT2_IRQHandler             ; EINT Line 2
+                DCD     EINT3_IRQHandler             ; EINT Line 3
+                DCD     EINT4_IRQHandler             ; EINT Line 4
+                DCD     DMA1_Channel1_IRQHandler     ; DMA1 Channel 1
+                DCD     DMA1_Channel2_IRQHandler     ; DMA1 Channel 2
+                DCD     DMA1_Channel3_IRQHandler     ; DMA1 Channel 3
+                DCD     DMA1_Channel4_IRQHandler     ; DMA1 Channel 4
+                DCD     DMA1_Channel5_IRQHandler     ; DMA1 Channel 5
+                DCD     DMA1_Channel6_IRQHandler     ; DMA1 Channel 6
+                DCD     DMA1_Channel7_IRQHandler     ; DMA1 Channel 7
+                DCD     ADC1_2_IRQHandler            ; ADC1 & ADC2
+                DCD     USBD1_HP_CAN1_TX_IRQHandler  ; USBD1 High Priority or CAN1 TX
+                DCD     USBD1_LP_CAN1_RX0_IRQHandler ; USBD1 Low  Priority or CAN1 RX0
+                DCD     CAN1_RX1_IRQHandler          ; CAN1 RX1
+                DCD     CAN1_SCE_IRQHandler          ; CAN1 SCE
+                DCD     EINT9_5_IRQHandler           ; EINT Line 9..5
+                DCD     TMR1_BRK_IRQHandler          ; TMR1 Break
+                DCD     TMR1_UP_IRQHandler           ; TMR1 Update
+                DCD     TMR1_TRG_COM_IRQHandler      ; TMR1 Trigger and Commutation
+                DCD     TMR1_CC_IRQHandler           ; TMR1 Capture Compare
+                DCD     TMR2_IRQHandler              ; TMR2
+                DCD     TMR3_IRQHandler              ; TMR3
+                DCD     TMR4_IRQHandler              ; TMR4
+                DCD     I2C1_EV_IRQHandler           ; I2C1 Event
+                DCD     I2C1_ER_IRQHandler           ; I2C1 Error
+                DCD     I2C2_EV_IRQHandler           ; I2C2 Event
+                DCD     I2C2_ER_IRQHandler           ; I2C2 Error
+                DCD     SPI1_IRQHandler              ; SPI1
+                DCD     SPI2_IRQHandler              ; SPI2
+                DCD     USART1_IRQHandler            ; USART1
+                DCD     USART2_IRQHandler            ; USART2
+                DCD     USART3_IRQHandler            ; USART3
+                DCD     EINT15_10_IRQHandler         ; EINT Line 15..10
+                DCD     RTCAlarm_IRQHandler          ; RTC Alarm through EINT Line
+                DCD     USBDWakeUp_IRQHandler        ; USBD Wakeup from suspend
+                DCD     TMR8_BRK_IRQHandler          ; TMR8 Break
+                DCD     TMR8_UP_IRQHandler           ; TMR8 Update
+                DCD     TMR8_TRG_COM_IRQHandler      ; TMR8 Trigger and Commutation
+                DCD     TMR8_CC_IRQHandler           ; TMR8 Capture Compare
+                DCD     ADC3_IRQHandler              ; ADC3
+                DCD     EMMC_IRQHandler              ; EMMC
+                DCD     SDIO_IRQHandler              ; SDIO
+                DCD     TMR5_IRQHandler              ; TMR5
+                DCD     SPI3_IRQHandler              ; SPI3
+                DCD     UART4_IRQHandler             ; UART4
+                DCD     UART5_IRQHandler             ; UART5
+                DCD     TMR6_IRQHandler              ; TMR6
+                DCD     TMR7_IRQHandler              ; TMR7
+                DCD     DMA2_Channel1_IRQHandler     ; DMA2 Channel1
+                DCD     DMA2_Channel2_IRQHandler     ; DMA2 Channel2
+                DCD     DMA2_Channel3_IRQHandler     ; DMA2 Channel3
+                DCD     DMA2_Channel4_5_IRQHandler   ; DMA2 Channel4 & Channel5
+                DCD     0                            ; Reserved
+                DCD     USBD2_HP_CAN2_TX_IRQHandler  ; USBD2 High Priority or CAN2 TX
+                DCD     USBD2_LP_CAN2_RX0_IRQHandler ; USBD2 Low  Priority or CAN2 RX0
+                DCD     CAN2_RX1_IRQHandler          ; CAN2 RX1
+                DCD     CAN2_SCE_IRQHandler          ; CAN2 SCE
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+; Reset handler
+Reset_Handler   PROC
+                EXPORT  Reset_Handler                [WEAK]
+                IMPORT  __main
+                IMPORT  SystemInit
+                LDR     R0, =SystemInit
+                BLX     R0
+                LDR     R0, =__main
+                BX      R0
+                ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler                  [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler            [WEAK]
+                B       .
+                ENDP
+MemManage_Handler\
+                PROC
+                EXPORT  MemManage_Handler            [WEAK]
+                B       .
+                ENDP
+BusFault_Handler\
+                PROC
+                EXPORT  BusFault_Handler             [WEAK]
+                B       .
+                ENDP
+UsageFault_Handler\
+                PROC
+                EXPORT  UsageFault_Handler           [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler                  [WEAK]
+                B       .
+                ENDP
+DebugMon_Handler\
+                PROC
+                EXPORT  DebugMon_Handler             [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler               [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler              [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+
+                EXPORT  WWDT_IRQHandler              [WEAK]
+                EXPORT  PVD_IRQHandler               [WEAK]
+                EXPORT  TAMPER_IRQHandler            [WEAK]
+                EXPORT  RTC_IRQHandler               [WEAK]
+                EXPORT  FLASH_IRQHandler             [WEAK]
+                EXPORT  RCM_IRQHandler               [WEAK]
+                EXPORT  EINT0_IRQHandler             [WEAK]
+                EXPORT  EINT1_IRQHandler             [WEAK]
+                EXPORT  EINT2_IRQHandler             [WEAK]
+                EXPORT  EINT3_IRQHandler             [WEAK]
+                EXPORT  EINT4_IRQHandler             [WEAK]
+                EXPORT  DMA1_Channel1_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel2_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel3_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel4_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel5_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel6_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel7_IRQHandler     [WEAK]
+                EXPORT  ADC1_2_IRQHandler            [WEAK]
+                EXPORT  USBD1_HP_CAN1_TX_IRQHandler  [WEAK]
+                EXPORT  USBD1_LP_CAN1_RX0_IRQHandler [WEAK]
+                EXPORT  CAN1_RX1_IRQHandler          [WEAK]
+                EXPORT  CAN1_SCE_IRQHandler          [WEAK]
+                EXPORT  EINT9_5_IRQHandler           [WEAK]
+                EXPORT  TMR1_BRK_IRQHandler          [WEAK]
+                EXPORT  TMR1_UP_IRQHandler           [WEAK]
+                EXPORT  TMR1_TRG_COM_IRQHandler      [WEAK]
+                EXPORT  TMR1_CC_IRQHandler           [WEAK]
+                EXPORT  TMR2_IRQHandler              [WEAK]
+                EXPORT  TMR3_IRQHandler              [WEAK]
+                EXPORT  TMR4_IRQHandler              [WEAK]
+                EXPORT  I2C1_EV_IRQHandler           [WEAK]
+                EXPORT  I2C1_ER_IRQHandler           [WEAK]
+                EXPORT  I2C2_EV_IRQHandler           [WEAK]
+                EXPORT  I2C2_ER_IRQHandler           [WEAK]
+                EXPORT  SPI1_IRQHandler              [WEAK]
+                EXPORT  SPI2_IRQHandler              [WEAK]
+                EXPORT  USART1_IRQHandler            [WEAK]
+                EXPORT  USART2_IRQHandler            [WEAK]
+                EXPORT  USART3_IRQHandler            [WEAK]
+                EXPORT  EINT15_10_IRQHandler         [WEAK]
+                EXPORT  RTCAlarm_IRQHandler          [WEAK]
+                EXPORT  USBDWakeUp_IRQHandler        [WEAK]
+                EXPORT  TMR8_BRK_IRQHandler          [WEAK]
+                EXPORT  TMR8_UP_IRQHandler           [WEAK]
+                EXPORT  TMR8_TRG_COM_IRQHandler      [WEAK]
+                EXPORT  TMR8_CC_IRQHandler           [WEAK]
+                EXPORT  ADC3_IRQHandler              [WEAK]
+                EXPORT  EMMC_IRQHandler              [WEAK]
+                EXPORT  SDIO_IRQHandler              [WEAK]
+                EXPORT  TMR5_IRQHandler              [WEAK]
+                EXPORT  SPI3_IRQHandler              [WEAK]
+                EXPORT  UART4_IRQHandler             [WEAK]
+                EXPORT  UART5_IRQHandler             [WEAK]
+                EXPORT  TMR6_IRQHandler              [WEAK]
+                EXPORT  TMR7_IRQHandler              [WEAK]
+                EXPORT  DMA2_Channel1_IRQHandler     [WEAK]
+                EXPORT  DMA2_Channel2_IRQHandler     [WEAK]
+                EXPORT  DMA2_Channel3_IRQHandler     [WEAK]
+                EXPORT  DMA2_Channel4_5_IRQHandler   [WEAK]
+                EXPORT  USBD2_HP_CAN2_TX_IRQHandler  [WEAK]
+                EXPORT  USBD2_LP_CAN2_RX0_IRQHandler [WEAK]
+                EXPORT  CAN2_RX1_IRQHandler          [WEAK]
+                EXPORT  CAN2_SCE_IRQHandler          [WEAK]
+
+WWDT_IRQHandler
+PVD_IRQHandler
+TAMPER_IRQHandler
+RTC_IRQHandler
+FLASH_IRQHandler
+RCM_IRQHandler
+EINT0_IRQHandler
+EINT1_IRQHandler
+EINT2_IRQHandler
+EINT3_IRQHandler
+EINT4_IRQHandler
+DMA1_Channel1_IRQHandler
+DMA1_Channel2_IRQHandler
+DMA1_Channel3_IRQHandler
+DMA1_Channel4_IRQHandler
+DMA1_Channel5_IRQHandler
+DMA1_Channel6_IRQHandler
+DMA1_Channel7_IRQHandler
+ADC1_2_IRQHandler
+USBD1_HP_CAN1_TX_IRQHandler
+USBD1_LP_CAN1_RX0_IRQHandler
+CAN1_RX1_IRQHandler
+CAN1_SCE_IRQHandler
+EINT9_5_IRQHandler
+TMR1_BRK_IRQHandler
+TMR1_UP_IRQHandler
+TMR1_TRG_COM_IRQHandler
+TMR1_CC_IRQHandler
+TMR2_IRQHandler
+TMR3_IRQHandler
+TMR4_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C2_EV_IRQHandler
+I2C2_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+USART2_IRQHandler
+USART3_IRQHandler
+EINT15_10_IRQHandler
+RTCAlarm_IRQHandler
+USBDWakeUp_IRQHandler
+TMR8_BRK_IRQHandler
+TMR8_UP_IRQHandler
+TMR8_TRG_COM_IRQHandler
+TMR8_CC_IRQHandler
+ADC3_IRQHandler
+EMMC_IRQHandler
+SDIO_IRQHandler
+TMR5_IRQHandler
+SPI3_IRQHandler
+UART4_IRQHandler
+UART5_IRQHandler
+TMR6_IRQHandler
+TMR7_IRQHandler
+DMA2_Channel1_IRQHandler
+DMA2_Channel2_IRQHandler
+DMA2_Channel3_IRQHandler
+DMA2_Channel4_5_IRQHandler
+USBD2_HP_CAN2_TX_IRQHandler
+USBD2_LP_CAN2_RX0_IRQHandler
+CAN2_RX1_IRQHandler
+CAN2_SCE_IRQHandler
+                B       .
+
+                ENDP
+
+                ALIGN
+
+;*******************************************************************************
+; User Stack and Heap initialization
+;*******************************************************************************
+                 IF      :DEF:__MICROLIB
+
+                 EXPORT  __initial_sp
+                 EXPORT  __heap_base
+                 EXPORT  __heap_limit
+
+                 ELSE
+
+                 IMPORT  __use_two_region_memory
+                 EXPORT  __user_initial_stackheap
+
+__user_initial_stackheap
+
+                 LDR     R0, = Heap_Mem
+                 LDR     R1, = (Stack_Mem + Stack_Size)
+                 LDR     R2, = (Heap_Mem  + Heap_Size)
+                 LDR     R3, = Stack_Mem
+                 BX      LR
+
+                 ALIGN
+
+                 ENDIF
+
+                 END
+
+;*******************************END OF FILE************************************
+

+ 315 - 0
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/arm/startup_apm32f10x_md.s

@@ -0,0 +1,315 @@
+;/*!
+; * @file        startup_apm32f10x_md.s
+; *
+; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device startup_apm32f10x_md
+; *
+; * @version     V1.0.2
+; *
+; * @date        2022-01-05
+; *
+; * @attention
+; *
+; *  Copyright (C) 2020-2022 Geehy Semiconductor
+; *
+; *  You may not use this file except in compliance with the
+; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
+; *
+; *  The program is only for reference, which is distributed in the hope
+; *  that it will be usefull and instructional for customers to develop
+; *  their software. Unless required by applicable law or agreed to in
+; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
+; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
+; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
+; *  and limitations under the License.
+; */
+
+; <h> Stack Configuration
+;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Stack_Size      EQU     0x00000400
+
+                AREA    STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem       SPACE   Stack_Size
+__initial_sp
+
+
+; <h> Heap Configuration
+;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+; </h>
+
+Heap_Size       EQU     0x00000200
+
+                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem        SPACE   Heap_Size
+__heap_limit
+
+                PRESERVE8
+                THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+                AREA    RESET, DATA, READONLY
+                EXPORT  __Vectors
+                EXPORT  __Vectors_End
+                EXPORT  __Vectors_Size
+
+__Vectors       DCD     __initial_sp                 ; Top of Stack
+                DCD     Reset_Handler                ; Reset Handler
+                DCD     NMI_Handler                  ; NMI Handler
+                DCD     HardFault_Handler            ; Hard Fault Handler
+                DCD     MemManage_Handler            ; MPU Fault Handler
+                DCD     BusFault_Handler             ; Bus Fault Handler
+                DCD     UsageFault_Handler           ; Usage Fault Handler
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     SVC_Handler                  ; SVCall Handler
+                DCD     DebugMon_Handler             ; Debug Monitor Handler
+                DCD     0                            ; Reserved
+                DCD     PendSV_Handler               ; PendSV Handler
+                DCD     SysTick_Handler              ; SysTick Handler
+
+                ; External Interrupts
+                DCD     WWDT_IRQHandler              ; Window Watchdog
+                DCD     PVD_IRQHandler               ; PVD through EINT Line detect
+                DCD     TAMPER_IRQHandler            ; Tamper
+                DCD     RTC_IRQHandler               ; RTC
+                DCD     FLASH_IRQHandler             ; Flash
+                DCD     RCM_IRQHandler               ; RCM
+                DCD     EINT0_IRQHandler             ; EINT Line 0
+                DCD     EINT1_IRQHandler             ; EINT Line 1
+                DCD     EINT2_IRQHandler             ; EINT Line 2
+                DCD     EINT3_IRQHandler             ; EINT Line 3
+                DCD     EINT4_IRQHandler             ; EINT Line 4
+                DCD     DMA1_Channel1_IRQHandler     ; DMA1 Channel 1
+                DCD     DMA1_Channel2_IRQHandler     ; DMA1 Channel 2
+                DCD     DMA1_Channel3_IRQHandler     ; DMA1 Channel 3
+                DCD     DMA1_Channel4_IRQHandler     ; DMA1 Channel 4
+                DCD     DMA1_Channel5_IRQHandler     ; DMA1 Channel 5
+                DCD     DMA1_Channel6_IRQHandler     ; DMA1 Channel 6
+                DCD     DMA1_Channel7_IRQHandler     ; DMA1 Channel 7
+                DCD     ADC1_2_IRQHandler            ; ADC1_2
+                DCD     USBD1_HP_CAN1_TX_IRQHandler  ; USBD1 High Priority or CAN1 TX
+                DCD     USBD1_LP_CAN1_RX0_IRQHandler ; USBD1 Low  Priority or CAN1 RX0
+                DCD     CAN1_RX1_IRQHandler          ; CAN1 RX1
+                DCD     CAN1_SCE_IRQHandler          ; CAN1 SCE
+                DCD     EINT9_5_IRQHandler           ; EINT Line 9..5
+                DCD     TMR1_BRK_IRQHandler          ; TMR1 Break
+                DCD     TMR1_UP_IRQHandler           ; TMR1 Update
+                DCD     TMR1_TRG_COM_IRQHandler      ; TMR1 Trigger and Commutation
+                DCD     TMR1_CC_IRQHandler           ; TMR1 Capture Compare
+                DCD     TMR2_IRQHandler              ; TMR2
+                DCD     TMR3_IRQHandler              ; TMR3
+                DCD     TMR4_IRQHandler              ; TMR4
+                DCD     I2C1_EV_IRQHandler           ; I2C1 Event
+                DCD     I2C1_ER_IRQHandler           ; I2C1 Error
+                DCD     I2C2_EV_IRQHandler           ; I2C2 Event
+                DCD     I2C2_ER_IRQHandler           ; I2C2 Error
+                DCD     SPI1_IRQHandler              ; SPI1
+                DCD     SPI2_IRQHandler              ; SPI2
+                DCD     USART1_IRQHandler            ; USART1
+                DCD     USART2_IRQHandler            ; USART2
+                DCD     USART3_IRQHandler            ; USART3
+                DCD     EINT15_10_IRQHandler         ; EINT Line 15..10
+                DCD     RTCAlarm_IRQHandler          ; RTC Alarm through EINT Line
+                DCD     USBDWakeUp_IRQHandler        ; USBD Wakeup from suspend
+                DCD     FPU_IRQHandler               ; FPU
+                DCD     QSPI_IRQHandler              ; QSPI
+                DCD     USBD2_HP_IRQHandler          ; USBD2 High Priority
+                DCD     USBD2_LP_IRQHandler          ; USBD2 Low Priority
+__Vectors_End
+
+__Vectors_Size  EQU  __Vectors_End - __Vectors
+
+                AREA    |.text|, CODE, READONLY
+
+; Reset handler
+Reset_Handler    PROC
+                 EXPORT  Reset_Handler               [WEAK]
+     IMPORT  __main
+     IMPORT  SystemInit
+                 LDR     R0, =SystemInit
+                 BLX     R0
+                 LDR     R0, =__main
+                 BX      R0
+                 ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler     PROC
+                EXPORT  NMI_Handler                  [WEAK]
+                B       .
+                ENDP
+HardFault_Handler\
+                PROC
+                EXPORT  HardFault_Handler            [WEAK]
+                B       .
+                ENDP
+MemManage_Handler\
+                PROC
+                EXPORT  MemManage_Handler            [WEAK]
+                B       .
+                ENDP
+BusFault_Handler\
+                PROC
+                EXPORT  BusFault_Handler             [WEAK]
+                B       .
+                ENDP
+UsageFault_Handler\
+                PROC
+                EXPORT  UsageFault_Handler           [WEAK]
+                B       .
+                ENDP
+SVC_Handler     PROC
+                EXPORT  SVC_Handler                  [WEAK]
+                B       .
+                ENDP
+DebugMon_Handler\
+                PROC
+                EXPORT  DebugMon_Handler             [WEAK]
+                B       .
+                ENDP
+PendSV_Handler  PROC
+                EXPORT  PendSV_Handler               [WEAK]
+                B       .
+                ENDP
+SysTick_Handler PROC
+                EXPORT  SysTick_Handler              [WEAK]
+                B       .
+                ENDP
+
+Default_Handler PROC
+
+                EXPORT  WWDT_IRQHandler              [WEAK]
+                EXPORT  PVD_IRQHandler               [WEAK]
+                EXPORT  TAMPER_IRQHandler            [WEAK]
+                EXPORT  RTC_IRQHandler               [WEAK]
+                EXPORT  FLASH_IRQHandler             [WEAK]
+                EXPORT  RCM_IRQHandler               [WEAK]
+                EXPORT  EINT0_IRQHandler             [WEAK]
+                EXPORT  EINT1_IRQHandler             [WEAK]
+                EXPORT  EINT2_IRQHandler             [WEAK]
+                EXPORT  EINT3_IRQHandler             [WEAK]
+                EXPORT  EINT4_IRQHandler             [WEAK]
+                EXPORT  DMA1_Channel1_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel2_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel3_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel4_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel5_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel6_IRQHandler     [WEAK]
+                EXPORT  DMA1_Channel7_IRQHandler     [WEAK]
+                EXPORT  ADC1_2_IRQHandler            [WEAK]
+                EXPORT  USBD1_HP_CAN1_TX_IRQHandler  [WEAK]
+                EXPORT  USBD1_LP_CAN1_RX0_IRQHandler [WEAK]
+                EXPORT  CAN1_RX1_IRQHandler          [WEAK]
+                EXPORT  CAN1_SCE_IRQHandler          [WEAK]
+                EXPORT  EINT9_5_IRQHandler           [WEAK]
+                EXPORT  TMR1_BRK_IRQHandler          [WEAK]
+                EXPORT  TMR1_UP_IRQHandler           [WEAK]
+                EXPORT  TMR1_TRG_COM_IRQHandler      [WEAK]
+                EXPORT  TMR1_CC_IRQHandler           [WEAK]
+                EXPORT  TMR2_IRQHandler              [WEAK]
+                EXPORT  TMR3_IRQHandler              [WEAK]
+                EXPORT  TMR4_IRQHandler              [WEAK]
+                EXPORT  I2C1_EV_IRQHandler           [WEAK]
+                EXPORT  I2C1_ER_IRQHandler           [WEAK]
+                EXPORT  I2C2_EV_IRQHandler           [WEAK]
+                EXPORT  I2C2_ER_IRQHandler           [WEAK]
+                EXPORT  SPI1_IRQHandler              [WEAK]
+                EXPORT  SPI2_IRQHandler              [WEAK]
+                EXPORT  USART1_IRQHandler            [WEAK]
+                EXPORT  USART2_IRQHandler            [WEAK]
+                EXPORT  USART3_IRQHandler            [WEAK]
+                EXPORT  EINT15_10_IRQHandler         [WEAK]
+                EXPORT  RTCAlarm_IRQHandler          [WEAK]
+                EXPORT  USBDWakeUp_IRQHandler        [WEAK]
+                EXPORT  FPU_IRQHandler               [WEAK]
+                EXPORT  QSPI_IRQHandler              [WEAK]
+                EXPORT  USBD2_HP_IRQHandler          [WEAK]
+                EXPORT  USBD2_LP_IRQHandler          [WEAK]
+
+WWDT_IRQHandler
+PVD_IRQHandler
+TAMPER_IRQHandler
+RTC_IRQHandler
+FLASH_IRQHandler
+RCM_IRQHandler
+EINT0_IRQHandler
+EINT1_IRQHandler
+EINT2_IRQHandler
+EINT3_IRQHandler
+EINT4_IRQHandler
+DMA1_Channel1_IRQHandler
+DMA1_Channel2_IRQHandler
+DMA1_Channel3_IRQHandler
+DMA1_Channel4_IRQHandler
+DMA1_Channel5_IRQHandler
+DMA1_Channel6_IRQHandler
+DMA1_Channel7_IRQHandler
+ADC1_2_IRQHandler
+USBD1_HP_CAN1_TX_IRQHandler
+USBD1_LP_CAN1_RX0_IRQHandler
+CAN1_RX1_IRQHandler
+CAN1_SCE_IRQHandler
+EINT9_5_IRQHandler
+TMR1_BRK_IRQHandler
+TMR1_UP_IRQHandler
+TMR1_TRG_COM_IRQHandler
+TMR1_CC_IRQHandler
+TMR2_IRQHandler
+TMR3_IRQHandler
+TMR4_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C2_EV_IRQHandler
+I2C2_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+USART2_IRQHandler
+USART3_IRQHandler
+EINT15_10_IRQHandler
+RTCAlarm_IRQHandler
+USBDWakeUp_IRQHandler
+FPU_IRQHandler
+QSPI_IRQHandler
+USBD2_HP_IRQHandler
+USBD2_LP_IRQHandler
+                B       .
+
+                ENDP
+
+                ALIGN
+
+;*******************************************************************************
+; User Stack and Heap initialization
+;*******************************************************************************
+                 IF      :DEF:__MICROLIB
+
+                 EXPORT  __initial_sp
+                 EXPORT  __heap_base
+                 EXPORT  __heap_limit
+
+                 ELSE
+
+                 IMPORT  __use_two_region_memory
+                 EXPORT  __user_initial_stackheap
+
+__user_initial_stackheap
+
+                 LDR     R0, = Heap_Mem
+                 LDR     R1, = (Stack_Mem + Stack_Size)
+                 LDR     R2, = (Heap_Mem  + Heap_Size)
+                 LDR     R3, = Stack_Mem
+                 BX      LR
+
+                 ALIGN
+
+                 ENDIF
+
+                 END
+
+;*******************************END OF FILE************************************

+ 466 - 775
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/iar/startup_apm32f10x_hd.s

@@ -23,791 +23,482 @@
 ; *  and limitations under the License.
 ; *  and limitations under the License.
 ; */
 ; */
 
 
-MODULE  ? cstartup
+    MODULE  ?cstartup
 
 
-;;
-Forward declaration of sections.
-SECTION CSTACK:
-DATA:
-NOROOT(3)
+        ;; Forward declaration of sections.
+        SECTION CSTACK:DATA:NOROOT(3)
 
 
-SECTION .intvec:
-CODE:
-NOROOT(2)
+        SECTION .intvec:CODE:NOROOT(2)
 
 
 
 
-EXTERN  __iar_program_start
-EXTERN  SystemInit
-PUBLIC  __vector_table
+        EXTERN  __iar_program_start
+        EXTERN  SystemInit
+        PUBLIC  __vector_table
 
 
-DATA
+        DATA
 
 
 __vector_table
 __vector_table
-DCD     sfe(CSTACK)
-DCD     Reset_Handler                ;
-Reset Handler
-DCD     NMI_Handler                  ;
-NMI Handler
-DCD     HardFault_Handler            ;
-Hard Fault Handler
-DCD     MemManage_Handler            ;
-MPU Fault Handler
-DCD     BusFault_Handler             ;
-Bus Fault Handler
-DCD     UsageFault_Handler           ;
-Usage Fault Handler
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     SVC_Handler                  ;
-SVCall Handler
-DCD     DebugMon_Handler             ;
-Debug Monitor Handler
-DCD     0                            ;
-Reserved
-DCD     PendSV_Handler               ;
-PendSV Handler
-DCD     SysTick_Handler              ;
-SysTick Handler
-
-;
-External Interrupts
-DCD     WWDT_IRQHandler              ;
-Window Watchdog
-DCD     PVD_IRQHandler               ;
-PVD through EINT Line detect
-DCD     TAMPER_IRQHandler            ;
-Tamper
-DCD     RTC_IRQHandler               ;
-RTC
-DCD     FLASH_IRQHandler             ;
-Flash
-DCD     RCM_IRQHandler               ;
-RCM
-DCD     EINT0_IRQHandler             ;
-EINT Line 0
-DCD     EINT1_IRQHandler             ;
-EINT Line 1
-DCD     EINT2_IRQHandler             ;
-EINT Line 2
-DCD     EINT3_IRQHandler             ;
-EINT Line 3
-DCD     EINT4_IRQHandler             ;
-EINT Line 4
-DCD     DMA1_Channel1_IRQHandler     ;
-DMA1 Channel 1
-DCD     DMA1_Channel2_IRQHandler     ;
-DMA1 Channel 2
-DCD     DMA1_Channel3_IRQHandler     ;
-DMA1 Channel 3
-DCD     DMA1_Channel4_IRQHandler     ;
-DMA1 Channel 4
-DCD     DMA1_Channel5_IRQHandler     ;
-DMA1 Channel 5
-DCD     DMA1_Channel6_IRQHandler     ;
-DMA1 Channel 6
-DCD     DMA1_Channel7_IRQHandler     ;
-DMA1 Channel 7
-DCD     ADC1_2_IRQHandler            ;
-ADC1 &ADC2
-DCD     USBD1_HP_CAN1_TX_IRQHandler  ;
-USBD1 High Priority or CAN1 TX
-DCD     USBD1_LP_CAN1_RX0_IRQHandler ;
-USBD1 Low  Priority or CAN1 RX0
-DCD     CAN1_RX1_IRQHandler          ;
-CAN1 RX1
-DCD     CAN1_SCE_IRQHandler          ;
-CAN1 SCE
-DCD     EINT9_5_IRQHandler           ;
-EINT Line 9..5
-DCD     TMR1_BRK_IRQHandler          ;
-TMR1 Break
-DCD     TMR1_UP_IRQHandler           ;
-TMR1 Update
-DCD     TMR1_TRG_COM_IRQHandler      ;
-TMR1 Trigger and Commutation
-DCD     TMR1_CC_IRQHandler           ;
-TMR1 Capture Compare
-DCD     TMR2_IRQHandler              ;
-TMR2
-DCD     TMR3_IRQHandler              ;
-TMR3
-DCD     TMR4_IRQHandler              ;
-TMR4
-DCD     I2C1_EV_IRQHandler           ;
-I2C1 Event
-DCD     I2C1_ER_IRQHandler           ;
-I2C1 Error
-DCD     I2C2_EV_IRQHandler           ;
-I2C2 Event
-DCD     I2C2_ER_IRQHandler           ;
-I2C2 Error
-DCD     SPI1_IRQHandler              ;
-SPI1
-DCD     SPI2_IRQHandler              ;
-SPI2
-DCD     USART1_IRQHandler            ;
-USART1
-DCD     USART2_IRQHandler            ;
-USART2
-DCD     USART3_IRQHandler            ;
-USART3
-DCD     EINT15_10_IRQHandler         ;
-EINT Line 15..10
-DCD     RTCAlarm_IRQHandler          ;
-RTC Alarm through EINT Line
-DCD     USBDWakeUp_IRQHandler        ;
-USBD Wakeup from suspend
-DCD     TMR8_BRK_IRQHandler          ;
-TMR8 Break
-DCD     TMR8_UP_IRQHandler           ;
-TMR8 Update
-DCD     TMR8_TRG_COM_IRQHandler      ;
-TMR8 Trigger and Commutation
-DCD     TMR8_CC_IRQHandler           ;
-TMR8 Capture Compare
-DCD     ADC3_IRQHandler              ;
-ADC3
-DCD     EMMC_IRQHandler              ;
-EMMC
-DCD     SDIO_IRQHandler              ;
-SDIO
-DCD     TMR5_IRQHandler              ;
-TMR5
-DCD     SPI3_IRQHandler              ;
-SPI3
-DCD     UART4_IRQHandler             ;
-UART4
-DCD     UART5_IRQHandler             ;
-UART5
-DCD     TMR6_IRQHandler              ;
-TMR6
-DCD     TMR7_IRQHandler              ;
-TMR7
-DCD     DMA2_Channel1_IRQHandler     ;
-DMA2 Channel1
-DCD     DMA2_Channel2_IRQHandler     ;
-DMA2 Channel2
-DCD     DMA2_Channel3_IRQHandler     ;
-DMA2 Channel3
-DCD     DMA2_Channel4_5_IRQHandler   ;
-DMA2 Channel4 &Channel5
-DCD     0                            ;
-Reserved
-DCD     USBD2_HP_CAN2_TX_IRQHandler  ;
-USBD2 High Priority or CAN2 TX
-DCD     USBD2_LP_CAN2_RX0_IRQHandler ;
-USBD2 Low  Priority or CAN2 RX0
-DCD     CAN2_RX1_IRQHandler          ;
-CAN2 RX1
-DCD     CAN2_SCE_IRQHandler          ;
-CAN2 SCE
+        DCD     sfe(CSTACK)
+                DCD     Reset_Handler                ; Reset Handler
+                DCD     NMI_Handler                  ; NMI Handler
+                DCD     HardFault_Handler            ; Hard Fault Handler
+                DCD     MemManage_Handler            ; MPU Fault Handler
+                DCD     BusFault_Handler             ; Bus Fault Handler
+                DCD     UsageFault_Handler           ; Usage Fault Handler
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     SVC_Handler                  ; SVCall Handler
+                DCD     DebugMon_Handler             ; Debug Monitor Handler
+                DCD     0                            ; Reserved
+                DCD     PendSV_Handler               ; PendSV Handler
+                DCD     SysTick_Handler              ; SysTick Handler
+
+                ; External Interrupts
+                DCD     WWDT_IRQHandler              ; Window Watchdog
+                DCD     PVD_IRQHandler               ; PVD through EINT Line detect
+                DCD     TAMPER_IRQHandler            ; Tamper
+                DCD     RTC_IRQHandler               ; RTC
+                DCD     FLASH_IRQHandler             ; Flash
+                DCD     RCM_IRQHandler               ; RCM
+                DCD     EINT0_IRQHandler             ; EINT Line 0
+                DCD     EINT1_IRQHandler             ; EINT Line 1
+                DCD     EINT2_IRQHandler             ; EINT Line 2
+                DCD     EINT3_IRQHandler             ; EINT Line 3
+                DCD     EINT4_IRQHandler             ; EINT Line 4
+                DCD     DMA1_Channel1_IRQHandler     ; DMA1 Channel 1
+                DCD     DMA1_Channel2_IRQHandler     ; DMA1 Channel 2
+                DCD     DMA1_Channel3_IRQHandler     ; DMA1 Channel 3
+                DCD     DMA1_Channel4_IRQHandler     ; DMA1 Channel 4
+                DCD     DMA1_Channel5_IRQHandler     ; DMA1 Channel 5
+                DCD     DMA1_Channel6_IRQHandler     ; DMA1 Channel 6
+                DCD     DMA1_Channel7_IRQHandler     ; DMA1 Channel 7
+                DCD     ADC1_2_IRQHandler            ; ADC1 & ADC2
+                DCD     USBD1_HP_CAN1_TX_IRQHandler  ; USBD1 High Priority or CAN1 TX
+                DCD     USBD1_LP_CAN1_RX0_IRQHandler ; USBD1 Low  Priority or CAN1 RX0
+                DCD     CAN1_RX1_IRQHandler          ; CAN1 RX1
+                DCD     CAN1_SCE_IRQHandler          ; CAN1 SCE
+                DCD     EINT9_5_IRQHandler           ; EINT Line 9..5
+                DCD     TMR1_BRK_IRQHandler          ; TMR1 Break
+                DCD     TMR1_UP_IRQHandler           ; TMR1 Update
+                DCD     TMR1_TRG_COM_IRQHandler      ; TMR1 Trigger and Commutation
+                DCD     TMR1_CC_IRQHandler           ; TMR1 Capture Compare
+                DCD     TMR2_IRQHandler              ; TMR2
+                DCD     TMR3_IRQHandler              ; TMR3
+                DCD     TMR4_IRQHandler              ; TMR4
+                DCD     I2C1_EV_IRQHandler           ; I2C1 Event
+                DCD     I2C1_ER_IRQHandler           ; I2C1 Error
+                DCD     I2C2_EV_IRQHandler           ; I2C2 Event
+                DCD     I2C2_ER_IRQHandler           ; I2C2 Error
+                DCD     SPI1_IRQHandler              ; SPI1
+                DCD     SPI2_IRQHandler              ; SPI2
+                DCD     USART1_IRQHandler            ; USART1
+                DCD     USART2_IRQHandler            ; USART2
+                DCD     USART3_IRQHandler            ; USART3
+                DCD     EINT15_10_IRQHandler         ; EINT Line 15..10
+                DCD     RTCAlarm_IRQHandler          ; RTC Alarm through EINT Line
+                DCD     USBDWakeUp_IRQHandler        ; USBD Wakeup from suspend
+                DCD     TMR8_BRK_IRQHandler          ; TMR8 Break
+                DCD     TMR8_UP_IRQHandler           ; TMR8 Update
+                DCD     TMR8_TRG_COM_IRQHandler      ; TMR8 Trigger and Commutation
+                DCD     TMR8_CC_IRQHandler           ; TMR8 Capture Compare
+                DCD     ADC3_IRQHandler              ; ADC3
+                DCD     EMMC_IRQHandler              ; EMMC
+                DCD     SDIO_IRQHandler              ; SDIO
+                DCD     TMR5_IRQHandler              ; TMR5
+                DCD     SPI3_IRQHandler              ; SPI3
+                DCD     UART4_IRQHandler             ; UART4
+                DCD     UART5_IRQHandler             ; UART5
+                DCD     TMR6_IRQHandler              ; TMR6
+                DCD     TMR7_IRQHandler              ; TMR7
+                DCD     DMA2_Channel1_IRQHandler     ; DMA2 Channel1
+                DCD     DMA2_Channel2_IRQHandler     ; DMA2 Channel2
+                DCD     DMA2_Channel3_IRQHandler     ; DMA2 Channel3
+                DCD     DMA2_Channel4_5_IRQHandler   ; DMA2 Channel4 & Channel5
+                DCD     0                            ; Reserved
+                DCD     USBD2_HP_CAN2_TX_IRQHandler  ; USBD2 High Priority or CAN2 TX
+                DCD     USBD2_LP_CAN2_RX0_IRQHandler ; USBD2 Low  Priority or CAN2 RX0
+                DCD     CAN2_RX1_IRQHandler          ; CAN2 RX1
+                DCD     CAN2_SCE_IRQHandler          ; CAN2 SCE
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;;
+;; Default interrupt handlers.
 ;;
 ;;
-Default interrupt handlers.
-;;
-THUMB
+        THUMB
 
 
-PUBWEAK Reset_Handler
-SECTION .text:
-CODE:
-REORDER:
-NOROOT(2)
+        PUBWEAK Reset_Handler
+        SECTION .text:CODE:REORDER:NOROOT(2)
 Reset_Handler
 Reset_Handler
-LDR     R0, = SystemInit
-              BLX     R0
-              LDR     R0, = __iar_program_start
-                            BX      R0
-
-                            PUBWEAK NMI_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            NMI_Handler
-                            B NMI_Handler
-
-                            PUBWEAK HardFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            HardFault_Handler
-                            B HardFault_Handler
-
-                            PUBWEAK MemManage_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            MemManage_Handler
-                            B MemManage_Handler
-
-                            PUBWEAK BusFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            BusFault_Handler
-                            B BusFault_Handler
-
-                            PUBWEAK UsageFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            UsageFault_Handler
-                            B UsageFault_Handler
-
-                            PUBWEAK SVC_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SVC_Handler
-                            B SVC_Handler
-
-                            PUBWEAK DebugMon_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DebugMon_Handler
-                            B DebugMon_Handler
-
-                            PUBWEAK PendSV_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            PendSV_Handler
-                            B PendSV_Handler
-
-                            PUBWEAK SysTick_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SysTick_Handler
-                            B SysTick_Handler
-
-                            PUBWEAK WWDT_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            WWDT_IRQHandler
-                            B WWDT_IRQHandler
-
-                            PUBWEAK PVD_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            PVD_IRQHandler
-                            B PVD_IRQHandler
-
-                            PUBWEAK TAMPER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TAMPER_IRQHandler
-                            B TAMPER_IRQHandler
-
-                            PUBWEAK RTC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RTC_IRQHandler
-                            B RTC_IRQHandler
-
-                            PUBWEAK FLASH_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            FLASH_IRQHandler
-                            B FLASH_IRQHandler
-
-                            PUBWEAK RCM_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RCM_IRQHandler
-                            B RCM_IRQHandler
-
-                            PUBWEAK EINT0_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT0_IRQHandler
-                            B EINT0_IRQHandler
-
-                            PUBWEAK EINT1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT1_IRQHandler
-                            B EINT1_IRQHandler
-
-                            PUBWEAK EINT2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT2_IRQHandler
-                            B EINT2_IRQHandler
-
-                            PUBWEAK EINT3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT3_IRQHandler
-                            B EINT3_IRQHandler
-
-                            PUBWEAK EINT4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT4_IRQHandler
-                            B EINT4_IRQHandler
-
-                            PUBWEAK DMA1_Channel1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel1_IRQHandler
-                            B DMA1_Channel1_IRQHandler
-
-                            PUBWEAK DMA1_Channel2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel2_IRQHandler
-                            B DMA1_Channel2_IRQHandler
-
-                            PUBWEAK DMA1_Channel3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel3_IRQHandler
-                            B DMA1_Channel3_IRQHandler
-
-                            PUBWEAK DMA1_Channel4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel4_IRQHandler
-                            B DMA1_Channel4_IRQHandler
-
-                            PUBWEAK DMA1_Channel5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel5_IRQHandler
-                            B DMA1_Channel5_IRQHandler
-
-                            PUBWEAK DMA1_Channel6_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel6_IRQHandler
-                            B DMA1_Channel6_IRQHandler
-
-                            PUBWEAK DMA1_Channel7_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel7_IRQHandler
-                            B DMA1_Channel7_IRQHandler
-
-                            PUBWEAK ADC1_2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            ADC1_2_IRQHandler
-                            B ADC1_2_IRQHandler
-
-                            PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD1_HP_CAN1_TX_IRQHandler
-                            B USBD1_HP_CAN1_TX_IRQHandler
-
-                            PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD1_LP_CAN1_RX0_IRQHandler
-                            B USBD1_LP_CAN1_RX0_IRQHandler
-
-                            PUBWEAK CAN1_RX1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN1_RX1_IRQHandler
-                            B CAN1_RX1_IRQHandler
-
-                            PUBWEAK CAN1_SCE_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN1_SCE_IRQHandler
-                            B CAN1_SCE_IRQHandler
-
-                            PUBWEAK EINT9_5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT9_5_IRQHandler
-                            B EINT9_5_IRQHandler
-
-                            PUBWEAK TMR1_BRK_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_BRK_IRQHandler
-                            B TMR1_BRK_IRQHandler
-
-                            PUBWEAK TMR1_UP_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_UP_IRQHandler
-                            B TMR1_UP_IRQHandler
-
-                            PUBWEAK TMR1_TRG_COM_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_TRG_COM_IRQHandler
-                            B TMR1_TRG_COM_IRQHandler
-
-                            PUBWEAK TMR1_CC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_CC_IRQHandler
-                            B TMR1_CC_IRQHandler
-
-                            PUBWEAK TMR2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR2_IRQHandler
-                            B TMR2_IRQHandler
-
-                            PUBWEAK TMR3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR3_IRQHandler
-                            B TMR3_IRQHandler
-
-                            PUBWEAK TMR4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR4_IRQHandler
-                            B TMR4_IRQHandler
-
-                            PUBWEAK I2C1_EV_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C1_EV_IRQHandler
-                            B I2C1_EV_IRQHandler
-
-                            PUBWEAK I2C1_ER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C1_ER_IRQHandler
-                            B I2C1_ER_IRQHandler
-
-                            PUBWEAK I2C2_EV_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C2_EV_IRQHandler
-                            B I2C2_EV_IRQHandler
-
-                            PUBWEAK I2C2_ER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C2_ER_IRQHandler
-                            B I2C2_ER_IRQHandler
-
-                            PUBWEAK SPI1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SPI1_IRQHandler
-                            B SPI1_IRQHandler
-
-                            PUBWEAK SPI2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SPI2_IRQHandler
-                            B SPI2_IRQHandler
-
-                            PUBWEAK USART1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART1_IRQHandler
-                            B USART1_IRQHandler
-
-                            PUBWEAK USART2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART2_IRQHandler
-                            B USART2_IRQHandler
-
-                            PUBWEAK USART3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART3_IRQHandler
-                            B USART3_IRQHandler
-
-                            PUBWEAK EINT15_10_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT15_10_IRQHandler
-                            B EINT15_10_IRQHandler
-
-                            PUBWEAK RTCAlarm_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RTCAlarm_IRQHandler
-                            B RTCAlarm_IRQHandler
-
-                            PUBWEAK USBDWakeUp_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBDWakeUp_IRQHandler
-                            B USBDWakeUp_IRQHandler
-
-                            PUBWEAK TMR8_BRK_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR8_BRK_IRQHandler
-                            B TMR8_BRK_IRQHandler
-
-                            PUBWEAK TMR8_UP_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR8_UP_IRQHandler
-                            B TMR8_UP_IRQHandler
-
-                            PUBWEAK TMR8_TRG_COM_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR8_TRG_COM_IRQHandler
-                            B TMR8_TRG_COM_IRQHandler
-
-                            PUBWEAK TMR8_CC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR8_CC_IRQHandler
-                            B TMR8_CC_IRQHandler
-
-                            PUBWEAK ADC3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            ADC3_IRQHandler
-                            B ADC3_IRQHandler
-
-                            PUBWEAK EMMC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EMMC_IRQHandler
-                            B EMMC_IRQHandler
-
-                            PUBWEAK SDIO_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SDIO_IRQHandler
-                            B SDIO_IRQHandler
-
-                            PUBWEAK TMR5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR5_IRQHandler
-                            B TMR5_IRQHandler
-
-                            PUBWEAK SPI3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SPI3_IRQHandler
-                            B SPI3_IRQHandler
-
-                            PUBWEAK UART4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            UART4_IRQHandler
-                            B UART4_IRQHandler
-
-                            PUBWEAK UART5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            UART5_IRQHandler
-                            B UART5_IRQHandler
-
-                            PUBWEAK TMR6_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR6_IRQHandler
-                            B TMR6_IRQHandler
-
-                            PUBWEAK TMR7_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR7_IRQHandler
-                            B TMR7_IRQHandler
-
-                            PUBWEAK DMA2_Channel1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA2_Channel1_IRQHandler
-                            B DMA2_Channel1_IRQHandler
-
-                            PUBWEAK DMA2_Channel2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA2_Channel2_IRQHandler
-                            B DMA2_Channel2_IRQHandler
-
-                            PUBWEAK DMA2_Channel3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA2_Channel3_IRQHandler
-                            B DMA2_Channel3_IRQHandler
-
-                            PUBWEAK DMA2_Channel4_5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA2_Channel4_5_IRQHandler
-                            B DMA2_Channel4_5_IRQHandler
-
-                            PUBWEAK USBD2_HP_CAN2_TX_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD2_HP_CAN2_TX_IRQHandler
-                            B USBD2_HP_CAN2_TX_IRQHandler
-
-                            PUBWEAK USBD2_LP_CAN2_RX0_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD2_LP_CAN2_RX0_IRQHandler
-                            B USBD2_LP_CAN2_RX0_IRQHandler
-
-                            PUBWEAK CAN2_RX1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN2_RX1_IRQHandler
-                            B CAN2_RX1_IRQHandler
-
-                            PUBWEAK CAN2_SCE_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN2_SCE_IRQHandler
-                            B CAN2_SCE_IRQHandler
-
-                            END
+        LDR     R0, =SystemInit
+        BLX     R0
+        LDR     R0, =__iar_program_start
+        BX      R0
+
+        PUBWEAK NMI_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+NMI_Handler
+        B NMI_Handler
+
+        PUBWEAK HardFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+HardFault_Handler
+        B HardFault_Handler
+
+        PUBWEAK MemManage_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+MemManage_Handler
+        B MemManage_Handler
+
+        PUBWEAK BusFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+BusFault_Handler
+        B BusFault_Handler
+
+        PUBWEAK UsageFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+UsageFault_Handler
+        B UsageFault_Handler
+
+        PUBWEAK SVC_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SVC_Handler
+        B SVC_Handler
+
+        PUBWEAK DebugMon_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DebugMon_Handler
+        B DebugMon_Handler
+
+        PUBWEAK PendSV_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+PendSV_Handler
+        B PendSV_Handler
+
+        PUBWEAK SysTick_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SysTick_Handler
+        B SysTick_Handler
+
+        PUBWEAK WWDT_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+WWDT_IRQHandler
+        B WWDT_IRQHandler
+
+        PUBWEAK PVD_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+PVD_IRQHandler
+        B PVD_IRQHandler
+
+        PUBWEAK TAMPER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TAMPER_IRQHandler
+        B TAMPER_IRQHandler
+
+        PUBWEAK RTC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RTC_IRQHandler
+        B RTC_IRQHandler
+
+        PUBWEAK FLASH_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+FLASH_IRQHandler
+        B FLASH_IRQHandler
+
+        PUBWEAK RCM_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RCM_IRQHandler
+        B RCM_IRQHandler
+
+        PUBWEAK EINT0_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT0_IRQHandler
+        B EINT0_IRQHandler
+
+        PUBWEAK EINT1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT1_IRQHandler
+        B EINT1_IRQHandler
+
+        PUBWEAK EINT2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT2_IRQHandler
+        B EINT2_IRQHandler
+
+        PUBWEAK EINT3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT3_IRQHandler
+        B EINT3_IRQHandler
+
+        PUBWEAK EINT4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT4_IRQHandler
+        B EINT4_IRQHandler
+
+        PUBWEAK DMA1_Channel1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel1_IRQHandler
+        B DMA1_Channel1_IRQHandler
+
+        PUBWEAK DMA1_Channel2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel2_IRQHandler
+        B DMA1_Channel2_IRQHandler
+
+        PUBWEAK DMA1_Channel3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel3_IRQHandler
+        B DMA1_Channel3_IRQHandler
+
+        PUBWEAK DMA1_Channel4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel4_IRQHandler
+        B DMA1_Channel4_IRQHandler
+
+        PUBWEAK DMA1_Channel5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel5_IRQHandler
+        B DMA1_Channel5_IRQHandler
+
+        PUBWEAK DMA1_Channel6_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel6_IRQHandler
+        B DMA1_Channel6_IRQHandler
+
+        PUBWEAK DMA1_Channel7_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel7_IRQHandler
+        B DMA1_Channel7_IRQHandler
+
+        PUBWEAK ADC1_2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+ADC1_2_IRQHandler
+        B ADC1_2_IRQHandler
+
+        PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD1_HP_CAN1_TX_IRQHandler
+        B USBD1_HP_CAN1_TX_IRQHandler
+
+        PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD1_LP_CAN1_RX0_IRQHandler
+        B USBD1_LP_CAN1_RX0_IRQHandler
+
+        PUBWEAK CAN1_RX1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN1_RX1_IRQHandler
+        B CAN1_RX1_IRQHandler
+
+        PUBWEAK CAN1_SCE_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN1_SCE_IRQHandler
+        B CAN1_SCE_IRQHandler
+
+        PUBWEAK EINT9_5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT9_5_IRQHandler
+        B EINT9_5_IRQHandler
+
+        PUBWEAK TMR1_BRK_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_BRK_IRQHandler
+        B TMR1_BRK_IRQHandler
+
+        PUBWEAK TMR1_UP_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_UP_IRQHandler
+        B TMR1_UP_IRQHandler
+
+        PUBWEAK TMR1_TRG_COM_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_TRG_COM_IRQHandler
+        B TMR1_TRG_COM_IRQHandler
+
+        PUBWEAK TMR1_CC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_CC_IRQHandler
+        B TMR1_CC_IRQHandler
+
+        PUBWEAK TMR2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR2_IRQHandler
+        B TMR2_IRQHandler
+
+        PUBWEAK TMR3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR3_IRQHandler
+        B TMR3_IRQHandler
+
+        PUBWEAK TMR4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR4_IRQHandler
+        B TMR4_IRQHandler
+
+        PUBWEAK I2C1_EV_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C1_EV_IRQHandler
+        B I2C1_EV_IRQHandler
+
+        PUBWEAK I2C1_ER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C1_ER_IRQHandler
+        B I2C1_ER_IRQHandler
+
+        PUBWEAK I2C2_EV_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C2_EV_IRQHandler
+        B I2C2_EV_IRQHandler
+
+        PUBWEAK I2C2_ER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C2_ER_IRQHandler
+        B I2C2_ER_IRQHandler
+
+        PUBWEAK SPI1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SPI1_IRQHandler
+        B SPI1_IRQHandler
+
+        PUBWEAK SPI2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SPI2_IRQHandler
+        B SPI2_IRQHandler
+
+        PUBWEAK USART1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART1_IRQHandler
+        B USART1_IRQHandler
+
+        PUBWEAK USART2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART2_IRQHandler
+        B USART2_IRQHandler
+
+        PUBWEAK USART3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART3_IRQHandler
+        B USART3_IRQHandler
+
+        PUBWEAK EINT15_10_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT15_10_IRQHandler
+        B EINT15_10_IRQHandler
+
+        PUBWEAK RTCAlarm_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RTCAlarm_IRQHandler
+        B RTCAlarm_IRQHandler
+
+        PUBWEAK USBDWakeUp_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBDWakeUp_IRQHandler
+        B USBDWakeUp_IRQHandler
+
+        PUBWEAK TMR8_BRK_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR8_BRK_IRQHandler
+        B TMR8_BRK_IRQHandler
+
+        PUBWEAK TMR8_UP_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR8_UP_IRQHandler
+        B TMR8_UP_IRQHandler
+
+        PUBWEAK TMR8_TRG_COM_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR8_TRG_COM_IRQHandler
+        B TMR8_TRG_COM_IRQHandler
+
+        PUBWEAK TMR8_CC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR8_CC_IRQHandler
+        B TMR8_CC_IRQHandler
+
+        PUBWEAK ADC3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+ADC3_IRQHandler
+        B ADC3_IRQHandler
+
+        PUBWEAK EMMC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EMMC_IRQHandler
+        B EMMC_IRQHandler
+
+        PUBWEAK SDIO_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SDIO_IRQHandler
+        B SDIO_IRQHandler
+
+        PUBWEAK TMR5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR5_IRQHandler
+        B TMR5_IRQHandler
+
+        PUBWEAK SPI3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SPI3_IRQHandler
+        B SPI3_IRQHandler
+
+        PUBWEAK UART4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+UART4_IRQHandler
+        B UART4_IRQHandler
+
+        PUBWEAK UART5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+UART5_IRQHandler
+        B UART5_IRQHandler
+
+        PUBWEAK TMR6_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR6_IRQHandler
+        B TMR6_IRQHandler
+
+        PUBWEAK TMR7_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR7_IRQHandler
+        B TMR7_IRQHandler
+
+        PUBWEAK DMA2_Channel1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA2_Channel1_IRQHandler
+        B DMA2_Channel1_IRQHandler
+
+        PUBWEAK DMA2_Channel2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA2_Channel2_IRQHandler
+        B DMA2_Channel2_IRQHandler
+
+        PUBWEAK DMA2_Channel3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA2_Channel3_IRQHandler
+        B DMA2_Channel3_IRQHandler
+
+        PUBWEAK DMA2_Channel4_5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA2_Channel4_5_IRQHandler
+        B DMA2_Channel4_5_IRQHandler
+
+        PUBWEAK USBD2_HP_CAN2_TX_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD2_HP_CAN2_TX_IRQHandler
+        B USBD2_HP_CAN2_TX_IRQHandler
+
+        PUBWEAK USBD2_LP_CAN2_RX0_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD2_LP_CAN2_RX0_IRQHandler
+        B USBD2_LP_CAN2_RX0_IRQHandler
+
+        PUBWEAK CAN2_RX1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN2_RX1_IRQHandler
+        B CAN2_RX1_IRQHandler
+
+        PUBWEAK CAN2_SCE_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN2_SCE_IRQHandler
+        B CAN2_SCE_IRQHandler
+
+        END
 
 

+ 364 - 604
bsp/apm32/libraries/APM32F10x_Library/Device/Geehy/APM32F10x/Source/iar/startup_apm32f10x_md.s

@@ -23,622 +23,382 @@
 ; *  and limitations under the License.
 ; *  and limitations under the License.
 ; */
 ; */
 
 
-MODULE  ? cstartup
+    MODULE  ?cstartup
 
 
-;;
-Forward declaration of sections.
-SECTION CSTACK:
-DATA:
-NOROOT(3)
+        ;; Forward declaration of sections.
+        SECTION CSTACK:DATA:NOROOT(3)
 
 
-SECTION .intvec:
-CODE:
-NOROOT(2)
+        SECTION .intvec:CODE:NOROOT(2)
 
 
 
 
-EXTERN  __iar_program_start
-EXTERN  SystemInit
-PUBLIC  __vector_table
+        EXTERN  __iar_program_start
+        EXTERN  SystemInit
+        PUBLIC  __vector_table
 
 
-DATA
+        DATA
 
 
 __vector_table
 __vector_table
-DCD     sfe(CSTACK)
-DCD     Reset_Handler                ;
-Reset Handler
-DCD     NMI_Handler                  ;
-NMI Handler
-DCD     HardFault_Handler            ;
-Hard Fault Handler
-DCD     MemManage_Handler            ;
-MPU Fault Handler
-DCD     BusFault_Handler             ;
-Bus Fault Handler
-DCD     UsageFault_Handler           ;
-Usage Fault Handler
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     0                            ;
-Reserved
-DCD     SVC_Handler                  ;
-SVCall Handler
-DCD     DebugMon_Handler             ;
-Debug Monitor Handler
-DCD     0                            ;
-Reserved
-DCD     PendSV_Handler               ;
-PendSV Handler
-DCD     SysTick_Handler              ;
-SysTick Handler
-
-;
-External Interrupts
-DCD     WWDT_IRQHandler              ;
-Window Watchdog
-DCD     PVD_IRQHandler               ;
-PVD through EINT Line detect
-DCD     TAMPER_IRQHandler            ;
-Tamper
-DCD     RTC_IRQHandler               ;
-RTC
-DCD     FLASH_IRQHandler             ;
-Flash
-DCD     RCM_IRQHandler               ;
-RCM
-DCD     EINT0_IRQHandler             ;
-EINT Line 0
-DCD     EINT1_IRQHandler             ;
-EINT Line 1
-DCD     EINT2_IRQHandler             ;
-EINT Line 2
-DCD     EINT3_IRQHandler             ;
-EINT Line 3
-DCD     EINT4_IRQHandler             ;
-EINT Line 4
-DCD     DMA1_Channel1_IRQHandler     ;
-DMA1 Channel 1
-DCD     DMA1_Channel2_IRQHandler     ;
-DMA1 Channel 2
-DCD     DMA1_Channel3_IRQHandler     ;
-DMA1 Channel 3
-DCD     DMA1_Channel4_IRQHandler     ;
-DMA1 Channel 4
-DCD     DMA1_Channel5_IRQHandler     ;
-DMA1 Channel 5
-DCD     DMA1_Channel6_IRQHandler     ;
-DMA1 Channel 6
-DCD     DMA1_Channel7_IRQHandler     ;
-DMA1 Channel 7
-DCD     ADC1_2_IRQHandler            ;
-ADC1 &ADC2
-DCD     USBD1_HP_CAN1_TX_IRQHandler  ;
-USBD1 High Priority or CAN1 TX
-DCD     USBD1_LP_CAN1_RX0_IRQHandler ;
-USBD1 Low  Priority or CAN1 RX0
-DCD     CAN1_RX1_IRQHandler          ;
-CAN1 RX1
-DCD     CAN1_SCE_IRQHandler          ;
-CAN1 SCE
-DCD     EINT9_5_IRQHandler           ;
-EINT Line 9..5
-DCD     TMR1_BRK_IRQHandler          ;
-TMR1 Break
-DCD     TMR1_UP_IRQHandler           ;
-TMR1 Update
-DCD     TMR1_TRG_COM_IRQHandler      ;
-TMR1 Trigger and Commutation
-DCD     TMR1_CC_IRQHandler           ;
-TMR1 Capture Compare
-DCD     TMR2_IRQHandler              ;
-TMR2
-DCD     TMR3_IRQHandler              ;
-TMR3
-DCD     TMR4_IRQHandler              ;
-TMR4
-DCD     I2C1_EV_IRQHandler           ;
-I2C1 Event
-DCD     I2C1_ER_IRQHandler           ;
-I2C1 Error
-DCD     I2C2_EV_IRQHandler           ;
-I2C2 Event
-DCD     I2C2_ER_IRQHandler           ;
-I2C2 Error
-DCD     SPI1_IRQHandler              ;
-SPI1
-DCD     SPI2_IRQHandler              ;
-SPI2
-DCD     USART1_IRQHandler            ;
-USART1
-DCD     USART2_IRQHandler            ;
-USART2
-DCD     USART3_IRQHandler            ;
-USART3
-DCD     EINT15_10_IRQHandler         ;
-EINT Line 15..10
-DCD     RTCAlarm_IRQHandler          ;
-RTC Alarm through EINT Line
-DCD     USBDWakeUp_IRQHandler        ;
-USBD Wakeup from suspend
-DCD     FPU_IRQHandler               ;
-FPU
-DCD     QSPI_IRQHandler              ;
-QSPI
-DCD     USBD2_HP_IRQHandler          ;
-USBD2 High Priority
-DCD     USBD2_LP_IRQHandler          ;
-USBD2 Low Priority
+        DCD     sfe(CSTACK)
+                DCD     Reset_Handler                ; Reset Handler
+                DCD     NMI_Handler                  ; NMI Handler
+                DCD     HardFault_Handler            ; Hard Fault Handler
+                DCD     MemManage_Handler            ; MPU Fault Handler
+                DCD     BusFault_Handler             ; Bus Fault Handler
+                DCD     UsageFault_Handler           ; Usage Fault Handler
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     0                            ; Reserved
+                DCD     SVC_Handler                  ; SVCall Handler
+                DCD     DebugMon_Handler             ; Debug Monitor Handler
+                DCD     0                            ; Reserved
+                DCD     PendSV_Handler               ; PendSV Handler
+                DCD     SysTick_Handler              ; SysTick Handler
+
+                ; External Interrupts
+                DCD     WWDT_IRQHandler              ; Window Watchdog
+                DCD     PVD_IRQHandler               ; PVD through EINT Line detect
+                DCD     TAMPER_IRQHandler            ; Tamper
+                DCD     RTC_IRQHandler               ; RTC
+                DCD     FLASH_IRQHandler             ; Flash
+                DCD     RCM_IRQHandler               ; RCM
+                DCD     EINT0_IRQHandler             ; EINT Line 0
+                DCD     EINT1_IRQHandler             ; EINT Line 1
+                DCD     EINT2_IRQHandler             ; EINT Line 2
+                DCD     EINT3_IRQHandler             ; EINT Line 3
+                DCD     EINT4_IRQHandler             ; EINT Line 4
+                DCD     DMA1_Channel1_IRQHandler     ; DMA1 Channel 1
+                DCD     DMA1_Channel2_IRQHandler     ; DMA1 Channel 2
+                DCD     DMA1_Channel3_IRQHandler     ; DMA1 Channel 3
+                DCD     DMA1_Channel4_IRQHandler     ; DMA1 Channel 4
+                DCD     DMA1_Channel5_IRQHandler     ; DMA1 Channel 5
+                DCD     DMA1_Channel6_IRQHandler     ; DMA1 Channel 6
+                DCD     DMA1_Channel7_IRQHandler     ; DMA1 Channel 7
+                DCD     ADC1_2_IRQHandler            ; ADC1 & ADC2
+                DCD     USBD1_HP_CAN1_TX_IRQHandler  ; USBD1 High Priority or CAN1 TX
+                DCD     USBD1_LP_CAN1_RX0_IRQHandler ; USBD1 Low  Priority or CAN1 RX0
+                DCD     CAN1_RX1_IRQHandler          ; CAN1 RX1
+                DCD     CAN1_SCE_IRQHandler          ; CAN1 SCE
+                DCD     EINT9_5_IRQHandler           ; EINT Line 9..5
+                DCD     TMR1_BRK_IRQHandler          ; TMR1 Break
+                DCD     TMR1_UP_IRQHandler           ; TMR1 Update
+                DCD     TMR1_TRG_COM_IRQHandler      ; TMR1 Trigger and Commutation
+                DCD     TMR1_CC_IRQHandler           ; TMR1 Capture Compare
+                DCD     TMR2_IRQHandler              ; TMR2
+                DCD     TMR3_IRQHandler              ; TMR3
+                DCD     TMR4_IRQHandler              ; TMR4
+                DCD     I2C1_EV_IRQHandler           ; I2C1 Event
+                DCD     I2C1_ER_IRQHandler           ; I2C1 Error
+                DCD     I2C2_EV_IRQHandler           ; I2C2 Event
+                DCD     I2C2_ER_IRQHandler           ; I2C2 Error
+                DCD     SPI1_IRQHandler              ; SPI1
+                DCD     SPI2_IRQHandler              ; SPI2
+                DCD     USART1_IRQHandler            ; USART1
+                DCD     USART2_IRQHandler            ; USART2
+                DCD     USART3_IRQHandler            ; USART3
+                DCD     EINT15_10_IRQHandler         ; EINT Line 15..10
+                DCD     RTCAlarm_IRQHandler          ; RTC Alarm through EINT Line
+                DCD     USBDWakeUp_IRQHandler        ; USBD Wakeup from suspend
+                DCD     FPU_IRQHandler               ; FPU
+                DCD     QSPI_IRQHandler              ; QSPI
+                DCD     USBD2_HP_IRQHandler          ; USBD2 High Priority
+                DCD     USBD2_LP_IRQHandler          ; USBD2 Low Priority
 __Vectors_End
 __Vectors_End
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;;
+;; Default interrupt handlers.
 ;;
 ;;
-Default interrupt handlers.
-;;
-THUMB
+        THUMB
 
 
-PUBWEAK Reset_Handler
-SECTION .text:
-CODE:
-REORDER:
-NOROOT(2)
+        PUBWEAK Reset_Handler
+        SECTION .text:CODE:REORDER:NOROOT(2)
 Reset_Handler
 Reset_Handler
-LDR     R0, = SystemInit
-              BLX     R0
-              LDR     R0, = __iar_program_start
-                            BX      R0
-
-                            PUBWEAK NMI_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            NMI_Handler
-                            B NMI_Handler
-
-                            PUBWEAK HardFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            HardFault_Handler
-                            B HardFault_Handler
-
-                            PUBWEAK MemManage_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            MemManage_Handler
-                            B MemManage_Handler
-
-                            PUBWEAK BusFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            BusFault_Handler
-                            B BusFault_Handler
-
-                            PUBWEAK UsageFault_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            UsageFault_Handler
-                            B UsageFault_Handler
-
-                            PUBWEAK SVC_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SVC_Handler
-                            B SVC_Handler
-
-                            PUBWEAK DebugMon_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DebugMon_Handler
-                            B DebugMon_Handler
-
-                            PUBWEAK PendSV_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            PendSV_Handler
-                            B PendSV_Handler
-
-                            PUBWEAK SysTick_Handler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SysTick_Handler
-                            B SysTick_Handler
-
-                            PUBWEAK WWDT_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            WWDT_IRQHandler
-                            B WWDT_IRQHandler
-
-                            PUBWEAK PVD_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            PVD_IRQHandler
-                            B PVD_IRQHandler
-
-                            PUBWEAK TAMPER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TAMPER_IRQHandler
-                            B TAMPER_IRQHandler
-
-                            PUBWEAK RTC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RTC_IRQHandler
-                            B RTC_IRQHandler
-
-                            PUBWEAK FLASH_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            FLASH_IRQHandler
-                            B FLASH_IRQHandler
-
-                            PUBWEAK RCM_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RCM_IRQHandler
-                            B RCM_IRQHandler
-
-                            PUBWEAK EINT0_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT0_IRQHandler
-                            B EINT0_IRQHandler
-
-                            PUBWEAK EINT1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT1_IRQHandler
-                            B EINT1_IRQHandler
-
-                            PUBWEAK EINT2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT2_IRQHandler
-                            B EINT2_IRQHandler
-
-                            PUBWEAK EINT3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT3_IRQHandler
-                            B EINT3_IRQHandler
-
-                            PUBWEAK EINT4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT4_IRQHandler
-                            B EINT4_IRQHandler
-
-                            PUBWEAK DMA1_Channel1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel1_IRQHandler
-                            B DMA1_Channel1_IRQHandler
-
-                            PUBWEAK DMA1_Channel2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel2_IRQHandler
-                            B DMA1_Channel2_IRQHandler
-
-                            PUBWEAK DMA1_Channel3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel3_IRQHandler
-                            B DMA1_Channel3_IRQHandler
-
-                            PUBWEAK DMA1_Channel4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel4_IRQHandler
-                            B DMA1_Channel4_IRQHandler
-
-                            PUBWEAK DMA1_Channel5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel5_IRQHandler
-                            B DMA1_Channel5_IRQHandler
-
-                            PUBWEAK DMA1_Channel6_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel6_IRQHandler
-                            B DMA1_Channel6_IRQHandler
-
-                            PUBWEAK DMA1_Channel7_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            DMA1_Channel7_IRQHandler
-                            B DMA1_Channel7_IRQHandler
-
-                            PUBWEAK ADC1_2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            ADC1_2_IRQHandler
-                            B ADC1_2_IRQHandler
-
-                            PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD1_HP_CAN1_TX_IRQHandler
-                            B USBD1_HP_CAN1_TX_IRQHandler
-
-                            PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD1_LP_CAN1_RX0_IRQHandler
-                            B USBD1_LP_CAN1_RX0_IRQHandler
-
-                            PUBWEAK CAN1_RX1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN1_RX1_IRQHandler
-                            B CAN1_RX1_IRQHandler
-
-                            PUBWEAK CAN1_SCE_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            CAN1_SCE_IRQHandler
-                            B CAN1_SCE_IRQHandler
-
-                            PUBWEAK EINT9_5_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT9_5_IRQHandler
-                            B EINT9_5_IRQHandler
-
-                            PUBWEAK TMR1_BRK_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_BRK_IRQHandler
-                            B TMR1_BRK_IRQHandler
-
-                            PUBWEAK TMR1_UP_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_UP_IRQHandler
-                            B TMR1_UP_IRQHandler
-
-                            PUBWEAK TMR1_TRG_COM_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_TRG_COM_IRQHandler
-                            B TMR1_TRG_COM_IRQHandler
-
-                            PUBWEAK TMR1_CC_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR1_CC_IRQHandler
-                            B TMR1_CC_IRQHandler
-
-                            PUBWEAK TMR2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR2_IRQHandler
-                            B TMR2_IRQHandler
-
-                            PUBWEAK TMR3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR3_IRQHandler
-                            B TMR3_IRQHandler
-
-                            PUBWEAK TMR4_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            TMR4_IRQHandler
-                            B TMR4_IRQHandler
-
-                            PUBWEAK I2C1_EV_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C1_EV_IRQHandler
-                            B I2C1_EV_IRQHandler
-
-                            PUBWEAK I2C1_ER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C1_ER_IRQHandler
-                            B I2C1_ER_IRQHandler
-
-                            PUBWEAK I2C2_EV_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C2_EV_IRQHandler
-                            B I2C2_EV_IRQHandler
-
-                            PUBWEAK I2C2_ER_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            I2C2_ER_IRQHandler
-                            B I2C2_ER_IRQHandler
-
-                            PUBWEAK SPI1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SPI1_IRQHandler
-                            B SPI1_IRQHandler
-
-                            PUBWEAK SPI2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            SPI2_IRQHandler
-                            B SPI2_IRQHandler
-
-                            PUBWEAK USART1_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART1_IRQHandler
-                            B USART1_IRQHandler
-
-                            PUBWEAK USART2_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART2_IRQHandler
-                            B USART2_IRQHandler
-
-                            PUBWEAK USART3_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USART3_IRQHandler
-                            B USART3_IRQHandler
-
-                            PUBWEAK EINT15_10_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            EINT15_10_IRQHandler
-                            B EINT15_10_IRQHandler
-
-                            PUBWEAK RTCAlarm_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            RTCAlarm_IRQHandler
-                            B RTCAlarm_IRQHandler
-
-                            PUBWEAK USBDWakeUp_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBDWakeUp_IRQHandler
-                            B USBDWakeUp_IRQHandler
-
-                            PUBWEAK FPU_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            FPU_IRQHandler
-                            B FPU_IRQHandler
-
-                            PUBWEAK QSPI_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            QSPI_IRQHandler
-                            B QSPI_IRQHandler
-
-                            PUBWEAK USBD2_HP_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD2_HP_IRQHandler
-                            B USBD2_HP_IRQHandler
-
-                            PUBWEAK USBD2_LP_IRQHandler
-                            SECTION .text:
-                            CODE:
-                            REORDER:
-                            NOROOT(1)
-                            USBD2_LP_IRQHandler
-                            B USBD2_LP_IRQHandler
-
-
-                            END
+        LDR     R0, =SystemInit
+        BLX     R0
+        LDR     R0, =__iar_program_start
+        BX      R0
+
+        PUBWEAK NMI_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+NMI_Handler
+        B NMI_Handler
+
+        PUBWEAK HardFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+HardFault_Handler
+        B HardFault_Handler
+
+        PUBWEAK MemManage_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+MemManage_Handler
+        B MemManage_Handler
+
+        PUBWEAK BusFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+BusFault_Handler
+        B BusFault_Handler
+
+        PUBWEAK UsageFault_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+UsageFault_Handler
+        B UsageFault_Handler
+
+        PUBWEAK SVC_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SVC_Handler
+        B SVC_Handler
+
+        PUBWEAK DebugMon_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DebugMon_Handler
+        B DebugMon_Handler
+
+        PUBWEAK PendSV_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+PendSV_Handler
+        B PendSV_Handler
+
+        PUBWEAK SysTick_Handler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SysTick_Handler
+        B SysTick_Handler
+
+        PUBWEAK WWDT_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+WWDT_IRQHandler
+        B WWDT_IRQHandler
+
+        PUBWEAK PVD_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+PVD_IRQHandler
+        B PVD_IRQHandler
+
+        PUBWEAK TAMPER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TAMPER_IRQHandler
+        B TAMPER_IRQHandler
+
+        PUBWEAK RTC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RTC_IRQHandler
+        B RTC_IRQHandler
+
+        PUBWEAK FLASH_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+FLASH_IRQHandler
+        B FLASH_IRQHandler
+
+        PUBWEAK RCM_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RCM_IRQHandler
+        B RCM_IRQHandler
+
+        PUBWEAK EINT0_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT0_IRQHandler
+        B EINT0_IRQHandler
+
+        PUBWEAK EINT1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT1_IRQHandler
+        B EINT1_IRQHandler
+
+        PUBWEAK EINT2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT2_IRQHandler
+        B EINT2_IRQHandler
+
+        PUBWEAK EINT3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT3_IRQHandler
+        B EINT3_IRQHandler
+
+        PUBWEAK EINT4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT4_IRQHandler
+        B EINT4_IRQHandler
+
+        PUBWEAK DMA1_Channel1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel1_IRQHandler
+        B DMA1_Channel1_IRQHandler
+
+        PUBWEAK DMA1_Channel2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel2_IRQHandler
+        B DMA1_Channel2_IRQHandler
+
+        PUBWEAK DMA1_Channel3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel3_IRQHandler
+        B DMA1_Channel3_IRQHandler
+
+        PUBWEAK DMA1_Channel4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel4_IRQHandler
+        B DMA1_Channel4_IRQHandler
+
+        PUBWEAK DMA1_Channel5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel5_IRQHandler
+        B DMA1_Channel5_IRQHandler
+
+        PUBWEAK DMA1_Channel6_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel6_IRQHandler
+        B DMA1_Channel6_IRQHandler
+
+        PUBWEAK DMA1_Channel7_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+DMA1_Channel7_IRQHandler
+        B DMA1_Channel7_IRQHandler
+
+        PUBWEAK ADC1_2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+ADC1_2_IRQHandler
+        B ADC1_2_IRQHandler
+
+        PUBWEAK USBD1_HP_CAN1_TX_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD1_HP_CAN1_TX_IRQHandler
+        B USBD1_HP_CAN1_TX_IRQHandler
+
+        PUBWEAK USBD1_LP_CAN1_RX0_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD1_LP_CAN1_RX0_IRQHandler
+        B USBD1_LP_CAN1_RX0_IRQHandler
+
+        PUBWEAK CAN1_RX1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN1_RX1_IRQHandler
+        B CAN1_RX1_IRQHandler
+
+        PUBWEAK CAN1_SCE_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+CAN1_SCE_IRQHandler
+        B CAN1_SCE_IRQHandler
+
+        PUBWEAK EINT9_5_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT9_5_IRQHandler
+        B EINT9_5_IRQHandler
+
+        PUBWEAK TMR1_BRK_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_BRK_IRQHandler
+        B TMR1_BRK_IRQHandler
+
+        PUBWEAK TMR1_UP_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_UP_IRQHandler
+        B TMR1_UP_IRQHandler
+
+        PUBWEAK TMR1_TRG_COM_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_TRG_COM_IRQHandler
+        B TMR1_TRG_COM_IRQHandler
+
+        PUBWEAK TMR1_CC_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR1_CC_IRQHandler
+        B TMR1_CC_IRQHandler
+
+        PUBWEAK TMR2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR2_IRQHandler
+        B TMR2_IRQHandler
+
+        PUBWEAK TMR3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR3_IRQHandler
+        B TMR3_IRQHandler
+
+        PUBWEAK TMR4_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+TMR4_IRQHandler
+        B TMR4_IRQHandler
+
+        PUBWEAK I2C1_EV_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C1_EV_IRQHandler
+        B I2C1_EV_IRQHandler
+
+        PUBWEAK I2C1_ER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C1_ER_IRQHandler
+        B I2C1_ER_IRQHandler
+
+        PUBWEAK I2C2_EV_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C2_EV_IRQHandler
+        B I2C2_EV_IRQHandler
+
+        PUBWEAK I2C2_ER_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+I2C2_ER_IRQHandler
+        B I2C2_ER_IRQHandler
+
+        PUBWEAK SPI1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SPI1_IRQHandler
+        B SPI1_IRQHandler
+
+        PUBWEAK SPI2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+SPI2_IRQHandler
+        B SPI2_IRQHandler
+
+        PUBWEAK USART1_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART1_IRQHandler
+        B USART1_IRQHandler
+
+        PUBWEAK USART2_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART2_IRQHandler
+        B USART2_IRQHandler
+
+        PUBWEAK USART3_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USART3_IRQHandler
+        B USART3_IRQHandler
+
+        PUBWEAK EINT15_10_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+EINT15_10_IRQHandler
+        B EINT15_10_IRQHandler
+
+        PUBWEAK RTCAlarm_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+RTCAlarm_IRQHandler
+        B RTCAlarm_IRQHandler
+
+        PUBWEAK USBDWakeUp_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBDWakeUp_IRQHandler
+        B USBDWakeUp_IRQHandler
+
+        PUBWEAK FPU_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+FPU_IRQHandler
+        B FPU_IRQHandler
+
+        PUBWEAK QSPI_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+QSPI_IRQHandler
+        B QSPI_IRQHandler
+
+        PUBWEAK USBD2_HP_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD2_HP_IRQHandler
+        B USBD2_HP_IRQHandler
+
+        PUBWEAK USBD2_LP_IRQHandler
+        SECTION .text:CODE:REORDER:NOROOT(1)
+USBD2_LP_IRQHandler
+        B USBD2_LP_IRQHandler
+
+
+        END
 
 

+ 1 - 1
bsp/apm32/libraries/Drivers/drv_common.c

@@ -91,7 +91,7 @@ void rt_hw_us_delay(rt_uint32_t us)
 }
 }
 
 
 /**
 /**
- * This function will initial STM32 board.
+ * This function will config the board for initialization.
  */
  */
 RT_WEAK void rt_hw_board_init()
 RT_WEAK void rt_hw_board_init()
 {
 {

+ 22 - 0
bsp/apm32/tools/sdk_dist.py

@@ -0,0 +1,22 @@
+import os
+import sys
+import shutil
+
+cwd_path = os.getcwd()
+sys.path.append(os.path.join(os.path.dirname(cwd_path), 'rt-thread', 'tools'))
+
+# BSP dist function
+def dist_do_building(BSP_ROOT, dist_dir):
+    from mkdist import bsp_copy_files
+    import rtconfig
+
+    print("=> copy apm32 bsp library")
+    library_dir = os.path.join(dist_dir, 'libraries')
+    library_path = os.path.join(os.path.dirname(BSP_ROOT), 'libraries')
+    bsp_copy_files(os.path.join(library_path, rtconfig.BSP_LIBRARY_TYPE),
+                   os.path.join(library_dir, rtconfig.BSP_LIBRARY_TYPE))
+
+    print("=> copy bsp drivers")
+    bsp_copy_files(os.path.join(library_path, 'Drivers'), os.path.join(library_dir, 'Drivers'))
+    shutil.copyfile(os.path.join(library_path, 'Kconfig'), os.path.join(library_dir, 'Kconfig'))
+