diff --git a/FLASHDOWN/APT32F102_FLASHDOWN.elf b/FLASHDOWN/APT32F102_FLASHDOWN.elf
new file mode 100644
index 0000000..1472d1d
Binary files /dev/null and b/FLASHDOWN/APT32F102_FLASHDOWN.elf differ
diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000..eebd0b3
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1,19 @@
+# 版本记录:
+
+## 2026-04-02 叶阳文
+
+```
+ 发布固件:RLY_10V485_V02_20260402.ihex 校验码:0x8FBC2043
+ 软件版本:V02
+ 硬件版本:BLV_10V485_V02
+
+ 0V-10V温控继电器功能描述:
+ 1、设备地址设置为硬件拨码开关地址加上20,如拨码开关为1,实际设备地址为21.
+ 2、部分文档中记录数据包校验为和校验,实际主机固件中数据包为和校验取反
+ 3、继电器1,2是实体继电器,这两个继电器有状态指示灯。
+ 4、继电器3,继电器4,继电器5是低、中、高风速继电器,继电器开时输出电压。
+ 注意:当控制多个风速继电器开时,高风速会覆盖低风速,所以如果控制多个风速继电器时,输出电压为高位继电器的电压。
+ 5、默认低风速3000mV、中风速6000mV、高风速10000mV、风速停0mV。
+ 6、协议使用A9继电器协议,对应前五位继电器。
+```
+
diff --git a/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx b/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx
new file mode 100644
index 0000000..d21a981
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/ansidef.h.8DC9EC4A871FC34A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx b/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx
new file mode 100644
index 0000000..b8803b2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/ansidef.h.D5F5095A2EB20E08.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx
new file mode 100644
index 0000000..18d707b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.02522E277F380AFB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx
new file mode 100644
index 0000000..4cacd72
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.141C6876FB1A8607.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx
new file mode 100644
index 0000000..538f8bf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.2C88295F5F1EBED9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx
new file mode 100644
index 0000000..860df78
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.363E17A671CEBD3B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx
new file mode 100644
index 0000000..c6f79d6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.364950EFF166084C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx
new file mode 100644
index 0000000..1e471d9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.39CAAA7FF11E322E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx
new file mode 100644
index 0000000..bedbe95
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.3DC2944021A7CBB9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx
new file mode 100644
index 0000000..a90c92f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.53E2914F821C9787.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx
new file mode 100644
index 0000000..3b14ab8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.6145295376594E7F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx
new file mode 100644
index 0000000..0142f23
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.77236AB57FCB7936.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx
new file mode 100644
index 0000000..d07afd4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.9EF5AEF031F2CC25.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx
new file mode 100644
index 0000000..f661e5e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.B1CCB9CE8B1345FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx
new file mode 100644
index 0000000..aeb5a42
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.B9C70D6BC8811885.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx
new file mode 100644
index 0000000..5d78d23
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.BCC40ECDC7D74F14.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx
new file mode 100644
index 0000000..5515b1a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.D9FA3633D1215193.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx
new file mode 100644
index 0000000..3976554
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.DAB3AB75784CA323.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.DD880F35BCB3F4B1.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.DD880F35BCB3F4B1.idx
new file mode 100644
index 0000000..789126f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.DD880F35BCB3F4B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx
new file mode 100644
index 0000000..55e7938
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.E02D959C82FBED9A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx
new file mode 100644
index 0000000..11ab95d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.E853D14F8795DDE4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx b/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx
new file mode 100644
index 0000000..a06302d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.c.FFE6F404B4C73A92.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx
new file mode 100644
index 0000000..14d9cf9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.20524F8939872155.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx
new file mode 100644
index 0000000..0543500
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.3F52736820431C0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx
new file mode 100644
index 0000000..a0a6396
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.4ADC3237DFD6C74D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx
new file mode 100644
index 0000000..2581087
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.70CE0A670504510F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx
new file mode 100644
index 0000000..8d6b5a1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.8052344191CE4552.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx
new file mode 100644
index 0000000..f5b61cd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.887BCC5E6E050F8E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx
new file mode 100644
index 0000000..4918988
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.8CD2ED9380F30884.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx
new file mode 100644
index 0000000..801804a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.8E26CC35881DF381.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx
new file mode 100644
index 0000000..97b051f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.8E27064ED69AAFAC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.8F45FC8B1A576CCF.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.8F45FC8B1A576CCF.idx
new file mode 100644
index 0000000..6a75feb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.8F45FC8B1A576CCF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx
new file mode 100644
index 0000000..d013f39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.AEDE220B4730B77A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx
new file mode 100644
index 0000000..6417c84
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.AF2493F46E0AD06D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx
new file mode 100644
index 0000000..d99a49e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.B306A82E2598D81A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx
new file mode 100644
index 0000000..a8d55f5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.B6E010E3E4F0D7BE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx
new file mode 100644
index 0000000..40dfddb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.CD6CA282F792E1E6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx
new file mode 100644
index 0000000..e71b6ea
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.D4DDCBA6893D8EB4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx
new file mode 100644
index 0000000..50e6305
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.D707749694BD9489.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx
new file mode 100644
index 0000000..1601f81
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.DD304D1C11045389.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx
new file mode 100644
index 0000000..06e6115
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.EEE50B467E7DD9B6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx b/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx
new file mode 100644
index 0000000..bc07ace
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102.h.FBEE528CE480009F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx
new file mode 100644
index 0000000..e13b35f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.015DC6D4090359F1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx
new file mode 100644
index 0000000..9d4839c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.0703B7BF81E30440.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx
new file mode 100644
index 0000000..56aa053
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1A3858AAD2B97D8E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx
new file mode 100644
index 0000000..e8bf898
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.1E52910AC92A3C65.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx
new file mode 100644
index 0000000..57ce122
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.2590DFFD7A57523C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx
new file mode 100644
index 0000000..3b6b311
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3AA462419D7B6519.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx
new file mode 100644
index 0000000..6d16399
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.3BE97CCD5F29DF28.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E56990152F25D21.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E56990152F25D21.idx
new file mode 100644
index 0000000..5614e36
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E56990152F25D21.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx
new file mode 100644
index 0000000..dfb52f2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.4E595C9BB070A3A9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx
new file mode 100644
index 0000000..944576a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.55BB6B2D2E4B4C51.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx
new file mode 100644
index 0000000..8421b26
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.89BBAA6BC0CE3A0A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx
new file mode 100644
index 0000000..12b00aa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.8E451B0A867A214F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx
new file mode 100644
index 0000000..5a70280
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9C098B04329E1448.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx
new file mode 100644
index 0000000..dc1762b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9DA72276F536A37B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx
new file mode 100644
index 0000000..3e958bc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.9F0FFA5430FC707E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx
new file mode 100644
index 0000000..b06831a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A808DCDB6790BF2B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx
new file mode 100644
index 0000000..f79bf3a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.A94B08826E9B5F1B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx
new file mode 100644
index 0000000..b5f1ef8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.E4CB82C377D696AC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx
new file mode 100644
index 0000000..dba7a55
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FB1D987270725F9F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx
new file mode 100644
index 0000000..05677a0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.c.FD5343DB8836162F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx
new file mode 100644
index 0000000..e716e89
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.11D0357632BA031C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx
new file mode 100644
index 0000000..d62841c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.129F22AE0C81514F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx
new file mode 100644
index 0000000..961b262
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.135566D743962D78.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx
new file mode 100644
index 0000000..449989b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.164D4C31C206DAE3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx
new file mode 100644
index 0000000..f235c3c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.1BBF3B6A687CBC3F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx
new file mode 100644
index 0000000..59d5f6b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.23D2C614287807E3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx
new file mode 100644
index 0000000..e0fecb7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.44E96125E44D993E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx
new file mode 100644
index 0000000..cfd6b64
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.68B120DBA913E6B5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7485BE162074AD6B.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7485BE162074AD6B.idx
new file mode 100644
index 0000000..988e936
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7485BE162074AD6B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx
new file mode 100644
index 0000000..72cb140
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.7926EBF474BC8282.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx
new file mode 100644
index 0000000..f5aa6a3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.8CF1683D80DE7787.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx
new file mode 100644
index 0000000..de1231d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.9183CEAD1C25DB68.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx
new file mode 100644
index 0000000..c7dd9f8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.958B85338F284859.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx
new file mode 100644
index 0000000..cd5faa4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.A6D25A644366E956.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx
new file mode 100644
index 0000000..723ac73
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.AFD3C0FC58183898.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx
new file mode 100644
index 0000000..1a6eb57
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.BFE399A6CBAEE559.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx
new file mode 100644
index 0000000..4f4e946
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.D077EA52A0ACBD8A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx
new file mode 100644
index 0000000..41bef16
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.E89CA72CC758BF53.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx
new file mode 100644
index 0000000..a05110d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F10DEDA69F92F9EA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx
new file mode 100644
index 0000000..fd494ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_adc.h.F1873E050DA32F8D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx
new file mode 100644
index 0000000..55a12a6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.06679E4FF73C6355.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx
new file mode 100644
index 0000000..737b6b9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.0901FE42D5AED6E3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx
new file mode 100644
index 0000000..c6c207e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.1452AE331EC5DD20.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx
new file mode 100644
index 0000000..35e1f53
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.30797FB8ECF919A0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx
new file mode 100644
index 0000000..e76b654
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.327D76D84A2EF599.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx
new file mode 100644
index 0000000..3e04c82
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.3DC884B003BAC7CA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx
new file mode 100644
index 0000000..ab320d1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.478F4FDE44CFE04F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx
new file mode 100644
index 0000000..9386d71
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.4C381B85C57B7FD9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx
new file mode 100644
index 0000000..17ffaf0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.59AB92BA32789653.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx
new file mode 100644
index 0000000..040bddf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.5E81847C3CF224D1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx
new file mode 100644
index 0000000..60d6612
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.644DC866AFA67655.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx
new file mode 100644
index 0000000..c690fef
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.64EFBCE8493C9E9B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx
new file mode 100644
index 0000000..972e80e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7401F50412088661.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx
new file mode 100644
index 0000000..1437776
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.7B57E126C0AD3A77.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx
new file mode 100644
index 0000000..2adde33
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.8F09A9B4CAEBFA41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.B091EA8314872DE3.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.B091EA8314872DE3.idx
new file mode 100644
index 0000000..33d2e1e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.B091EA8314872DE3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx
new file mode 100644
index 0000000..d0ae2aa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.D011BD85F7B9B322.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx
new file mode 100644
index 0000000..544a773
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DB58F8B9427BF742.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx
new file mode 100644
index 0000000..73ce58f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.DD5AA4CAB6BDA594.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx
new file mode 100644
index 0000000..0d84a8f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.c.E0C492B71F39D4BF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx
new file mode 100644
index 0000000..9921d76
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.157B5DB322C978E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx
new file mode 100644
index 0000000..9555697
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1869416CA17E9693.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx
new file mode 100644
index 0000000..dfd5708
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.1F0684BCBED24DEF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.20CFFD76A537A32F.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.20CFFD76A537A32F.idx
new file mode 100644
index 0000000..19c9afa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.20CFFD76A537A32F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx
new file mode 100644
index 0000000..90cd49d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.257C61A70DF14B97.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx
new file mode 100644
index 0000000..0bd371e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.3000F2B0FA9D2484.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx
new file mode 100644
index 0000000..f9f33e4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.309729D4373BFFA0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx
new file mode 100644
index 0000000..45e3735
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.31B5B070EED73734.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx
new file mode 100644
index 0000000..8a3e4ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.48BCB94EEBFF0A38.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx
new file mode 100644
index 0000000..b6540c9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.539B83DA3C3E63E2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx
new file mode 100644
index 0000000..bb895e6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.53B411AD780FAF26.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx
new file mode 100644
index 0000000..5f1b208
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.5CCEB621385F09B7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx
new file mode 100644
index 0000000..627d67e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.66B614A9CF2411A2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx
new file mode 100644
index 0000000..88a866b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.70F1C3CCDC8E5D1D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx
new file mode 100644
index 0000000..2c45e6c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.944D12604913981D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx
new file mode 100644
index 0000000..1444312
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.A720CBBD84B1791E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx
new file mode 100644
index 0000000..979bab1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.C60E4D18498BBBFE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx
new file mode 100644
index 0000000..648399d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.E52D65CB21B3A5F1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx
new file mode 100644
index 0000000..261581f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.EE5B63DB23CE77A4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx
new file mode 100644
index 0000000..39de147
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_bt.h.F563E3A9E930217E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx
new file mode 100644
index 0000000..0546d86
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0A468CF303C4C28F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx
new file mode 100644
index 0000000..5953019
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.0BE606F18B9D2A23.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx
new file mode 100644
index 0000000..ae3c4fd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.121796336FFE0DAF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx
new file mode 100644
index 0000000..a3b2f90
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.1A1B5903E86C6FA2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx
new file mode 100644
index 0000000..1abfe7c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2A3D9C69CCFDDA2B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx
new file mode 100644
index 0000000..958b63a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.2DE73E185889A19D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx
new file mode 100644
index 0000000..96a3489
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3876D99CA25F6CD9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx
new file mode 100644
index 0000000..4bafc8c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.3A2D1BF6373887EC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx
new file mode 100644
index 0000000..deac731
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.49CCB08F223A12C6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx
new file mode 100644
index 0000000..881e038
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.4B51C3FADCDCC3F8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx
new file mode 100644
index 0000000..2255dc0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.5235167BA5D3A71E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx
new file mode 100644
index 0000000..b81fcdb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.64390EB13EF992C9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.71BF0260E2F3EA5C.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.71BF0260E2F3EA5C.idx
new file mode 100644
index 0000000..2813770
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.71BF0260E2F3EA5C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx
new file mode 100644
index 0000000..54e91a3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.7A18783F744636F0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx
new file mode 100644
index 0000000..36c5cd7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.8382889ED4E78E9E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx
new file mode 100644
index 0000000..5b243b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.885C4F6A06EFB7B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx
new file mode 100644
index 0000000..3ba6579
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.9821A39A09AE3641.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx
new file mode 100644
index 0000000..309e680
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.A586BEE1B1828D75.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx
new file mode 100644
index 0000000..b1bf3b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.E330A9E66224E740.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx
new file mode 100644
index 0000000..0cdac0d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.c.ED1A0BFA6F20830D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx
new file mode 100644
index 0000000..d1ff6c9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.075EFAE8BE70EAA0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx
new file mode 100644
index 0000000..daa5afb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.09083F557A7E0BCF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx
new file mode 100644
index 0000000..ebbfe67
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.288B9D9109466E93.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx
new file mode 100644
index 0000000..89f8232
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.2E5171E99463225C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx
new file mode 100644
index 0000000..83c5d3e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.39F8934C0D870BA5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx
new file mode 100644
index 0000000..c0c0ce0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.3D878BD26E9BB4AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx
new file mode 100644
index 0000000..c2b75e0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.477A715249719026.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx
new file mode 100644
index 0000000..f72fda6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F41D7E81EB72C5D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx
new file mode 100644
index 0000000..2e3598e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.5F88B02EF09F80B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.68BC1A70AFDEDD17.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.68BC1A70AFDEDD17.idx
new file mode 100644
index 0000000..a414ddb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.68BC1A70AFDEDD17.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx
new file mode 100644
index 0000000..b240428
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.79CF6B36F67AD25B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx
new file mode 100644
index 0000000..3c8325a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7A759F834AA1456F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx
new file mode 100644
index 0000000..e85595e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.7EE0C6AC6DC32DF7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx
new file mode 100644
index 0000000..ee9cc22
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.85407A351142E419.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx
new file mode 100644
index 0000000..49aca92
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.8F00D141DBFF385A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx
new file mode 100644
index 0000000..7064283
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.A915D5EB0A4F91DA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx
new file mode 100644
index 0000000..fb68d51
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B2DA97779AE51FA8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx
new file mode 100644
index 0000000..4808a74
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.B54E75432E047C4A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx
new file mode 100644
index 0000000..ceeec2d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F19C1CE50D3E724E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx
new file mode 100644
index 0000000..0cefbb8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ck801.h.F7EB1E439D06FB72.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx
new file mode 100644
index 0000000..fb637d9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.05357A1D1FBA1216.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx
new file mode 100644
index 0000000..cda368b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.15BD96A613BBE8B6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx
new file mode 100644
index 0000000..5143231
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.1951DD62466D21CA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx
new file mode 100644
index 0000000..ad998de
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.202523AE5EF337E8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx
new file mode 100644
index 0000000..136ea6f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48ACDE107E50F242.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48B655C3B5CA1FF2.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48B655C3B5CA1FF2.idx
new file mode 100644
index 0000000..14c3d3c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.48B655C3B5CA1FF2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx
new file mode 100644
index 0000000..cc06022
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.735559B362E80F63.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx
new file mode 100644
index 0000000..ef57cba
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.76324D017A35F790.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx
new file mode 100644
index 0000000..a87b036
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.7B0873138BC64408.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx
new file mode 100644
index 0000000..70c9d53
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.8BCA3AFB30950EB2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx
new file mode 100644
index 0000000..a6cdc85
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.92C2699610CF0FAF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx
new file mode 100644
index 0000000..4487334
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.B8ED0E000F2A0543.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx
new file mode 100644
index 0000000..4636940
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.BC2E9DE3EBAB2183.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx
new file mode 100644
index 0000000..74f4b6f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.C2E489E0ABA70004.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx
new file mode 100644
index 0000000..3179b17
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D63A1E61E10AD198.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx
new file mode 100644
index 0000000..0265698
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.D8908B5DAC2EC2D3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx
new file mode 100644
index 0000000..2d0d0d1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.DEAD82286D7D0711.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx
new file mode 100644
index 0000000..217ed0d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F5C8E7D6E4436647.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx
new file mode 100644
index 0000000..154b6f3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.F7868B19B044C0BA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx
new file mode 100644
index 0000000..0cfd464
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_clkcalib.h.FD908235D9A6BFE2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx
new file mode 100644
index 0000000..d085425
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.108B635342FF332D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx
new file mode 100644
index 0000000..50d5e43
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.141953B2E073A232.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx
new file mode 100644
index 0000000..b90fc22
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.1EA2551F384E4ED2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx
new file mode 100644
index 0000000..b0cfa1d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.23BAF8E67B70FE52.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx
new file mode 100644
index 0000000..6019d5a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.25CFF427E4A937D7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx
new file mode 100644
index 0000000..d6687f3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.2C4BD1DE571C1125.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx
new file mode 100644
index 0000000..5f5c8fb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.440397EC2075F5E2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx
new file mode 100644
index 0000000..87bede0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.525B8C5F50121CBE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx
new file mode 100644
index 0000000..c420016
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.5FEF048B5CE5E649.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx
new file mode 100644
index 0000000..23ad6d6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7038ED1F7B2925D6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx
new file mode 100644
index 0000000..1014b39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.7D35484337088092.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx
new file mode 100644
index 0000000..26706d5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.83B56C1C497273F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx
new file mode 100644
index 0000000..49a9ed7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.9821E2A449F0D744.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx
new file mode 100644
index 0000000..99dd8a1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.99E54A494C686A67.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx
new file mode 100644
index 0000000..03b5172
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.B5ADADAF0DFF7EB1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx
new file mode 100644
index 0000000..e7996d5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.C049EECAE02405B3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx
new file mode 100644
index 0000000..43c628b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.DA7940D1FB59E629.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx
new file mode 100644
index 0000000..cf8c6a3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E3A7471A44CB5B4C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx
new file mode 100644
index 0000000..0e75299
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.E52337E87CE6FCF3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.c.EECAF8F7EF0B7F3F.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.EECAF8F7EF0B7F3F.idx
new file mode 100644
index 0000000..313f388
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.c.EECAF8F7EF0B7F3F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx
new file mode 100644
index 0000000..978758d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.0855A0E6B59C56ED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx
new file mode 100644
index 0000000..7472467
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.18D169C0B86648BD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx
new file mode 100644
index 0000000..678db6d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2C0453EC75FE87F9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx
new file mode 100644
index 0000000..63b5b40
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.2E5060B2F7C52C54.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx
new file mode 100644
index 0000000..ec6853f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.38E4518F2EB07789.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx
new file mode 100644
index 0000000..0076793
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.3FB6DC2FC45F4947.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx
new file mode 100644
index 0000000..b607a3b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.4010449A369F2FEA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx
new file mode 100644
index 0000000..dc4adeb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.53B085C00461B42F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx
new file mode 100644
index 0000000..c7f76d5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.5D8CCDDEC839B5FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.762DD1C78DE4CD7D.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.762DD1C78DE4CD7D.idx
new file mode 100644
index 0000000..3696bad
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.762DD1C78DE4CD7D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx
new file mode 100644
index 0000000..116c6db
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.773EDB7A4C48159B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx
new file mode 100644
index 0000000..9f70fd4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.A9F14D025564BC97.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx
new file mode 100644
index 0000000..a6bbec9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.AB22950836E2790B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx
new file mode 100644
index 0000000..2010a5c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.B272D1E8D4B37D36.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx
new file mode 100644
index 0000000..06cdaa2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C1A863BB932E1346.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx
new file mode 100644
index 0000000..f43928d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C2A0BE6EE4485967.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx
new file mode 100644
index 0000000..7b8e588
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.C989F4E5B7D491B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx
new file mode 100644
index 0000000..77ff346
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.D2D4471ABED04AF6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx
new file mode 100644
index 0000000..360792b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.F6B5FB010F645ED3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx
new file mode 100644
index 0000000..665557f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_coret.h.FB69D8EF671C1E19.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx
new file mode 100644
index 0000000..cc2b3df
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.1445D8C9353F0B8A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx
new file mode 100644
index 0000000..9f0ab0d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.19112AB589EC28F2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.20C3AEBA184F8020.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.20C3AEBA184F8020.idx
new file mode 100644
index 0000000..5846c52
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.20C3AEBA184F8020.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx
new file mode 100644
index 0000000..39b53fe
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.279A86DFAA193604.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx
new file mode 100644
index 0000000..ca98eb9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.4BF235BC578EF5A6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx
new file mode 100644
index 0000000..2655c1b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.50275BDBC47470AA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx
new file mode 100644
index 0000000..ac5eb67
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.51EC3F5EC6BDF96F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx
new file mode 100644
index 0000000..f3d88ff
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.5461301B918EACC0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx
new file mode 100644
index 0000000..230984d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.71BA44025B91DC4B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx
new file mode 100644
index 0000000..f4aeeeb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.8FFD050126C0FA78.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx
new file mode 100644
index 0000000..f67b686
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.914B68114853D86E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx
new file mode 100644
index 0000000..62fcd7c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.A975098A0EBDFC0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx
new file mode 100644
index 0000000..cdd8be8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.AC248CDC38A0E1D8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx
new file mode 100644
index 0000000..a4996be
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B71A42C094F0FA0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx
new file mode 100644
index 0000000..3cd5360
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.B758D6F5F2BD1CE4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx
new file mode 100644
index 0000000..4ac8a16
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D00FA82FCE666C98.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx
new file mode 100644
index 0000000..f272c9d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D10A68B76418423C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx
new file mode 100644
index 0000000..91bb6fb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.D8A8A4F4295DECFB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx
new file mode 100644
index 0000000..7326dbf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.E3F0BFE9B4CE3F08.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx
new file mode 100644
index 0000000..ab7a030
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.c.FAB049D061E45A4B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx
new file mode 100644
index 0000000..e60ddcf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.182751928BAC7C4B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx
new file mode 100644
index 0000000..b157f39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.228CC12222AA0779.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx
new file mode 100644
index 0000000..d9feeab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.27C826BBB0FF167C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx
new file mode 100644
index 0000000..7adf802
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.2F76920F98947761.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx
new file mode 100644
index 0000000..a9faa71
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.331504198E03E8C3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx
new file mode 100644
index 0000000..dd1c279
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.40CD98C38DEC16DB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx
new file mode 100644
index 0000000..7ff4295
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.61F5CE4F2B5DB1C4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx
new file mode 100644
index 0000000..245b39c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.742700234F0CBF23.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx
new file mode 100644
index 0000000..3bc9e1b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BBE0892770F484D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx
new file mode 100644
index 0000000..207a308
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.7BD83212A432B2F5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx
new file mode 100644
index 0000000..95fe090
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.968145BB37D20849.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.A49281771FAB1B2A.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.A49281771FAB1B2A.idx
new file mode 100644
index 0000000..5de4cd9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.A49281771FAB1B2A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx
new file mode 100644
index 0000000..65ee2f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.AC0EB58EB7416E4F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx
new file mode 100644
index 0000000..3809e19
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.BE4B95F48C1A1D06.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx
new file mode 100644
index 0000000..9c562b8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D0E46C8CA1E16823.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx
new file mode 100644
index 0000000..1bd7894
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D79CD7B329A8F544.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx
new file mode 100644
index 0000000..8b25bd6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.D8E8C0217740DE82.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx
new file mode 100644
index 0000000..bbc59ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.E398367EE4D05DEB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx
new file mode 100644
index 0000000..0221e97
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EA5BB4E46FFD0DDC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx
new file mode 100644
index 0000000..afb5f60
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_countera.h.EF51EB34766AD56E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx
new file mode 100644
index 0000000..967c193
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.005B73DDD6CCDE02.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx
new file mode 100644
index 0000000..61a9f3f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.1410C02D292C7427.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx
new file mode 100644
index 0000000..87663ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.146B9F663E2DB7E4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx
new file mode 100644
index 0000000..b0dc45f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.2F8F7DACA0C2A029.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx
new file mode 100644
index 0000000..07e0abd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5A2ADDFFDA0BD3F3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx
new file mode 100644
index 0000000..cd2a057
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.5AE85034E87CDCA1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx
new file mode 100644
index 0000000..da0d22d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8AF09A65C5E538D6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx
new file mode 100644
index 0000000..26f0266
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8C10E380315F38C9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8D560ADB0D9461F6.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8D560ADB0D9461F6.idx
new file mode 100644
index 0000000..0bb9a93
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.8D560ADB0D9461F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx
new file mode 100644
index 0000000..20fb7db
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.AC3E0C93CF5A8227.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx
new file mode 100644
index 0000000..c96860f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.C423E9E907AA8AF7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx
new file mode 100644
index 0000000..52df7ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D4A967912A31FE4C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx
new file mode 100644
index 0000000..f9ec284
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.D9B9787A59589ACC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx
new file mode 100644
index 0000000..d5e6d2c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DCBC35E2FBF277B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx
new file mode 100644
index 0000000..51ec21e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.DFA1B16BD0CD2113.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx
new file mode 100644
index 0000000..0a3b62c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.E11C72E2A5FF83B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx
new file mode 100644
index 0000000..2091ab4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.EF2D84EF696559B7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx
new file mode 100644
index 0000000..1caf68a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F4DDF1970A02CEA4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx
new file mode 100644
index 0000000..4dc3e2f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.F7A158F51C0D34CD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx
new file mode 100644
index 0000000..83d8e21
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.c.FDCB6653BE0AA04A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx
new file mode 100644
index 0000000..a83c60a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.13FA1F2765CAE749.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx
new file mode 100644
index 0000000..b65c21a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.1B3333C2A8CA2C3E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx
new file mode 100644
index 0000000..6aeb589
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.24B0C05B5745F24B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx
new file mode 100644
index 0000000..aff2417
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.3FF02616EEDCAC12.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx
new file mode 100644
index 0000000..f3ecf18
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.71283FC1B6D65E87.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx
new file mode 100644
index 0000000..d72a067
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8E896A9CA85CB3F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx
new file mode 100644
index 0000000..9f0b708
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.8ED22D0A79697F98.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx
new file mode 100644
index 0000000..bfe6e97
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.96A6D74EBA008E08.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx
new file mode 100644
index 0000000..bc38cf2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A186291CADAE9A06.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx
new file mode 100644
index 0000000..4d1de75
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.A26968C5C11172AA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx
new file mode 100644
index 0000000..e1970ec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.AD2C895C6166024D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx
new file mode 100644
index 0000000..53c38c1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.B578BE29520FB79F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.D333A848DF95C9BB.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.D333A848DF95C9BB.idx
new file mode 100644
index 0000000..e1aff81
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.D333A848DF95C9BB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx
new file mode 100644
index 0000000..ff43131
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E74E65156BCB371B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx
new file mode 100644
index 0000000..768ce7f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E846284883DEFC23.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx
new file mode 100644
index 0000000..055627d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.E9B270D108DC5467.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx
new file mode 100644
index 0000000..10343ff
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.EECC8009782A107C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx
new file mode 100644
index 0000000..c056ddf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F629B4245A43F707.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx
new file mode 100644
index 0000000..3943981
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.F9C3B5ECF1A02E34.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx
new file mode 100644
index 0000000..f0e8f2a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_crc.h.FDB0F4CF2313A565.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx
new file mode 100644
index 0000000..7c28df6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.0684ADB3B37ADB13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx
new file mode 100644
index 0000000..ad444c0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.10667119A28D870F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx
new file mode 100644
index 0000000..d6ebd01
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.11940D923E9CCC0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx
new file mode 100644
index 0000000..ca4ee5b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.25086ADA1066F56E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx
new file mode 100644
index 0000000..d027b0e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.39449B5B499DDF62.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx
new file mode 100644
index 0000000..d2d122f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.40F6608F951BC2EA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx
new file mode 100644
index 0000000..9f57b21
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.43F126EE4DF9818B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx
new file mode 100644
index 0000000..0307624
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.46F3B5E748435B0F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx
new file mode 100644
index 0000000..9323a90
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.644A996EB36C1511.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx
new file mode 100644
index 0000000..029dff7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7653ADEAC6133731.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7B8E68495CD3A8F6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7B8E68495CD3A8F6.idx
new file mode 100644
index 0000000..476b2ed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7B8E68495CD3A8F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx
new file mode 100644
index 0000000..282e2ca
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.7BCCB4F5D6881B84.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx
new file mode 100644
index 0000000..66e303a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.90339E02663265B8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx
new file mode 100644
index 0000000..77f4d11
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9939D6FF0D394162.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx
new file mode 100644
index 0000000..154abea
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9D084DA3827229BB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx
new file mode 100644
index 0000000..0c5263d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.9EBDB379FE9763D7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx
new file mode 100644
index 0000000..d3cb237
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.BF72E4DE7DA9284E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx
new file mode 100644
index 0000000..dcfc95d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.D34CEA7A5E0D51EE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx
new file mode 100644
index 0000000..51c0c44
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.EBB23353DA88DABB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx
new file mode 100644
index 0000000..14991db
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.c.F7DAFB3A4DA740AD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.018F7B0EE3A29D19.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.018F7B0EE3A29D19.idx
new file mode 100644
index 0000000..ba700d2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.018F7B0EE3A29D19.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx
new file mode 100644
index 0000000..c55057c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.03864487B8746668.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx
new file mode 100644
index 0000000..3eaf75f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.08DBCCDD100582A1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx
new file mode 100644
index 0000000..934fd0f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.1DDE662B4790FD4D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx
new file mode 100644
index 0000000..e3d955b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.23656D67AFF7D230.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx
new file mode 100644
index 0000000..de867e7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.25E3032CF28025D9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx
new file mode 100644
index 0000000..9c04476
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.3AC002BC13EA15F9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx
new file mode 100644
index 0000000..bba8aa2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.4E953121B2DEBA7B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx
new file mode 100644
index 0000000..3ee30af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.501A7B0B16418C6D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx
new file mode 100644
index 0000000..95f4ce1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.56BEDDEB85E738C3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx
new file mode 100644
index 0000000..95181f2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.5BE46603E6306629.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx
new file mode 100644
index 0000000..2ddc07a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.704F33E3E66AFE2C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx
new file mode 100644
index 0000000..bbd6e56
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.89A2EB458EBD1A73.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx
new file mode 100644
index 0000000..7a7f2af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.9DCBA97C30457382.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx
new file mode 100644
index 0000000..d358893
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.A8AACACC54EBB8C5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx
new file mode 100644
index 0000000..b106096
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C2DDDEDA6390A16B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx
new file mode 100644
index 0000000..d3d8808
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C5F3386D9C947191.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx
new file mode 100644
index 0000000..adef2bd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.C8D29D4F4839811E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx
new file mode 100644
index 0000000..b6796df
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E0A52E46C1AB968F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx
new file mode 100644
index 0000000..7f71e41
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ept.h.E929123D949D78C6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx
new file mode 100644
index 0000000..f88235a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.11523BF96BFCA5E0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx
new file mode 100644
index 0000000..716d6d2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.23018013D38C2A23.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx
new file mode 100644
index 0000000..ec371eb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.2831934A6C6350CE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx
new file mode 100644
index 0000000..ed12ca1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.2E33D45137A954A9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx
new file mode 100644
index 0000000..d631ebc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.3355DD4C7115885A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx
new file mode 100644
index 0000000..503d3e1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.363BE3721DB312F7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx
new file mode 100644
index 0000000..702cfd1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.388C54A7A3319C87.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx
new file mode 100644
index 0000000..4225b39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.564061339DD8C21D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx
new file mode 100644
index 0000000..0aecdf3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.65A128CA60C7F097.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx
new file mode 100644
index 0000000..37b1feb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.68C25CFE481FA8ED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx
new file mode 100644
index 0000000..d837e8f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.6DF99B04FE614F0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx
new file mode 100644
index 0000000..d890182
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.88C474B934BBD66E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx
new file mode 100644
index 0000000..8f8ea52
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.8C96938301790912.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx
new file mode 100644
index 0000000..288136b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.91E194B8CE6472C8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx
new file mode 100644
index 0000000..b3ba5d2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.9E9531A04D0405AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.B4DC64524F7120A3.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.B4DC64524F7120A3.idx
new file mode 100644
index 0000000..626c32c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.B4DC64524F7120A3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx
new file mode 100644
index 0000000..bc799e0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.BC4F31D2991EA7B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx
new file mode 100644
index 0000000..0af3d70
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.C991435B10A92D13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx
new file mode 100644
index 0000000..67e8bb7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.D249661E612BE15D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx
new file mode 100644
index 0000000..6cdcff2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.c.DF4C961B246FCA92.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx
new file mode 100644
index 0000000..5356ebe
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.000796581FCA2488.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx
new file mode 100644
index 0000000..27637ed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.0A5C1D9F9605A441.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx
new file mode 100644
index 0000000..99176f6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.0DD53FA1297F749E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx
new file mode 100644
index 0000000..6afd722
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.134D8F80FE8F45DE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx
new file mode 100644
index 0000000..1f07d34
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.18116B621C04B9DF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx
new file mode 100644
index 0000000..63dc965
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.26BCDE7FBBB294EF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx
new file mode 100644
index 0000000..b4cfc5a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.288D6D024326F041.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx
new file mode 100644
index 0000000..cd9d5d8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.40098C2BD86F9518.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx
new file mode 100644
index 0000000..44a97b9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.43C3F0D308790FC0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx
new file mode 100644
index 0000000..2a77ea1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.47ABB6D2BD52B625.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx
new file mode 100644
index 0000000..450f00a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.89D5B67C978EB7AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.BD198A68AB9812E8.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.BD198A68AB9812E8.idx
new file mode 100644
index 0000000..cffad97
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.BD198A68AB9812E8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx
new file mode 100644
index 0000000..d8109f4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C36FD2B626AB009B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx
new file mode 100644
index 0000000..0f9ba26
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C4C2887696C7B0C7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx
new file mode 100644
index 0000000..a32d4c7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C566A5D0B6CB8D06.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx
new file mode 100644
index 0000000..8ca3534
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.C9F5233A0E9DE712.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx
new file mode 100644
index 0000000..3cc5587
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.DDB9B97635B97EB7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx
new file mode 100644
index 0000000..d3ab191
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.F082FAA261B0A7D0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx
new file mode 100644
index 0000000..537dde9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.F126F15F6215FB6E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx b/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx
new file mode 100644
index 0000000..f9f7f16
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_et.h.FC2C3E32059CF31D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx
new file mode 100644
index 0000000..cd0c461
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.01838824E4E59072.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx
new file mode 100644
index 0000000..49e66a7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.06714BDA9666EDD3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx
new file mode 100644
index 0000000..b220516
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.0F3B8C644A79BBC4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx
new file mode 100644
index 0000000..9836ced
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.201BCA703FCB6736.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx
new file mode 100644
index 0000000..4a56595
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.207D1FD8A1A7292D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx
new file mode 100644
index 0000000..72f5a43
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.292E036E8B19BEDD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx
new file mode 100644
index 0000000..3710f3b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.54EFB5C6442A589B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx
new file mode 100644
index 0000000..a62aa16
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.5C03140A9BBB25D7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx
new file mode 100644
index 0000000..6363401
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.62AFF9DCE977E183.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx
new file mode 100644
index 0000000..c1de1f8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.802774FAE61B8FF7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx
new file mode 100644
index 0000000..6fa1b7c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.82073595F68340DE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx
new file mode 100644
index 0000000..e437c97
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.88CA64BC156E499A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx
new file mode 100644
index 0000000..c209e6f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.A57252E4CB283E34.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx
new file mode 100644
index 0000000..4b025b3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B0755B75EBE7F28D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx
new file mode 100644
index 0000000..4ed1883
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.B72E4E2803063CC9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BAD60795CA33162E.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BAD60795CA33162E.idx
new file mode 100644
index 0000000..3cc6ca6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BAD60795CA33162E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx
new file mode 100644
index 0000000..235cc50
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.BD6F2D0B0679CE33.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx
new file mode 100644
index 0000000..e7dc071
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E06CD08322AD8781.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx
new file mode 100644
index 0000000..d0c0ad4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.E4ED1356EB4D6B89.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx
new file mode 100644
index 0000000..16bfac3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.c.EC4E0D9974A69BE5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx
new file mode 100644
index 0000000..1ecda30
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.0594261E5E8F4CCB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx
new file mode 100644
index 0000000..70b4017
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.062F321B42EB07F2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx
new file mode 100644
index 0000000..d23896b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.2974E6F28158D55E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx
new file mode 100644
index 0000000..06d156a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.3333C6E7B2A4A629.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx
new file mode 100644
index 0000000..2d8dbcc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.4E7A0FE1A0B8A364.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx
new file mode 100644
index 0000000..8f68d87
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.578DBF0D012FD302.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.58E2C48B2C933C97.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.58E2C48B2C933C97.idx
new file mode 100644
index 0000000..d8852e8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.58E2C48B2C933C97.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx
new file mode 100644
index 0000000..5fef7c0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.5F3DE400FA281F54.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx
new file mode 100644
index 0000000..ce197aa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.6E7FA0DAA036A9E0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx
new file mode 100644
index 0000000..524d791
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.72C1691EAFD5B2CD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx
new file mode 100644
index 0000000..ac25528
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.756B5FE8C26BC5DB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx
new file mode 100644
index 0000000..7fd2896
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8357EC76984A1536.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx
new file mode 100644
index 0000000..986f1fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.8B9DC2606316BE6A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx
new file mode 100644
index 0000000..1174882
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.912727FEE267767C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx
new file mode 100644
index 0000000..58f17ca
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.97423204CA7D33D0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx
new file mode 100644
index 0000000..fbe6d07
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.A151D6557F7E93BB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx
new file mode 100644
index 0000000..7218967
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.B3D8121FCFFCF894.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx
new file mode 100644
index 0000000..a8589f4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.D82A35FD86BEFDAA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx
new file mode 100644
index 0000000..a0f7d52
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.F610752B4AEAAE5C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx
new file mode 100644
index 0000000..25a91cb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpio.h.FFD6EE6925D1150D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx
new file mode 100644
index 0000000..3f74362
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.1EC67A2028CFB76D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx
new file mode 100644
index 0000000..ec2f45c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2B33E1777C53B5AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx
new file mode 100644
index 0000000..95cfcef
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.2F852D0352810AE8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx
new file mode 100644
index 0000000..97a8c57
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.3CAC661DC59BA376.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx
new file mode 100644
index 0000000..ef83b9d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.613203D0EDFE5AC2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6EF798CFA2123D56.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6EF798CFA2123D56.idx
new file mode 100644
index 0000000..7006c7d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6EF798CFA2123D56.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx
new file mode 100644
index 0000000..c184f00
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.6FBED41F09437CF1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx
new file mode 100644
index 0000000..d1ffd63
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9291580DBB25F669.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx
new file mode 100644
index 0000000..083d89c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.95855139AFE0DA57.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx
new file mode 100644
index 0000000..9465c32
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.978BD573E157019E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx
new file mode 100644
index 0000000..3dd9014
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9BF55937B340A105.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx
new file mode 100644
index 0000000..1d10b4e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9D311FEE09EAC561.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx
new file mode 100644
index 0000000..7324ac1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.9DB16E47F96F11B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx
new file mode 100644
index 0000000..e4c8dab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.A18FBACF675F5EEB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx
new file mode 100644
index 0000000..bdff561
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.B3367128A6EE1E30.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx
new file mode 100644
index 0000000..3ebcaa0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C0FE68C9F0A37C2E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx
new file mode 100644
index 0000000..1878ede
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.C5B757D8891714DC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx
new file mode 100644
index 0000000..2fb5dcd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.CA2606BF698CAAB2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx
new file mode 100644
index 0000000..575366c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.EADD639D9621F2FF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx
new file mode 100644
index 0000000..51657a4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.c.F5747EDF3CC7349A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx
new file mode 100644
index 0000000..eb07942
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.04421F342F2B29C1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx
new file mode 100644
index 0000000..1662280
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.08119BFC3BD24B47.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx
new file mode 100644
index 0000000..2de4f04
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.10B6D0297B1C3C6E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx
new file mode 100644
index 0000000..0d1b06f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.17FC61367B5BDF35.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx
new file mode 100644
index 0000000..5a631d6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.3C814766532174C3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx
new file mode 100644
index 0000000..1b1f139
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.43D6FEE600F98EB9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx
new file mode 100644
index 0000000..2a37c8f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4CDCDF1F976BB156.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx
new file mode 100644
index 0000000..1dadd84
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.4F23AE39150773FF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx
new file mode 100644
index 0000000..2fbd493
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.66CB3FBA4B694B1F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx
new file mode 100644
index 0000000..ea41c5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.6E5CCF069C2E488D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx
new file mode 100644
index 0000000..4d990fb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.84B7CCE471B4CB96.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx
new file mode 100644
index 0000000..9684203
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.8B5CD77086B91964.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx
new file mode 100644
index 0000000..10c46af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A0F2B805EFA0805D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx
new file mode 100644
index 0000000..2af3827
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.A18A9F3A11ED5B1F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx
new file mode 100644
index 0000000..120837f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.B4402C910063E584.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BADF65980F618A04.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BADF65980F618A04.idx
new file mode 100644
index 0000000..e35cb1c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BADF65980F618A04.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx
new file mode 100644
index 0000000..5180298
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.BDB96DE6C72C0152.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx
new file mode 100644
index 0000000..c1544bd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.C5F4AEEEA98524A1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx
new file mode 100644
index 0000000..6d07405
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.D949F082E0F2B9C2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx
new file mode 100644
index 0000000..5bc74b0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_gpt.h.E947BFD5F08A6F42.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.09457B11DECF557B.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.09457B11DECF557B.idx
new file mode 100644
index 0000000..2005f6b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.09457B11DECF557B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx
new file mode 100644
index 0000000..48ed253
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.0FF02BBBE836B29F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx
new file mode 100644
index 0000000..54d6244
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.12F2D5AE6998D6AA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx
new file mode 100644
index 0000000..00029be
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.15D14E728B2CC3EA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx
new file mode 100644
index 0000000..35d907e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.1B8E6F00409CF75E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx
new file mode 100644
index 0000000..e8ec784
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.352614BE5EAC45C3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx
new file mode 100644
index 0000000..aad6867
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.46EC33B29B4DDBD1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx
new file mode 100644
index 0000000..c63d35c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.4C55B824C2E8A7A6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx
new file mode 100644
index 0000000..da69055
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.6D1F076CCDAE9BFA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx
new file mode 100644
index 0000000..db2ad92
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.73745189C90C159B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx
new file mode 100644
index 0000000..7780de6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.7EDB4F725DBA8D38.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx
new file mode 100644
index 0000000..9988cd9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.80C3CD81F9345A13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx
new file mode 100644
index 0000000..1c0936d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.8F85A274799926A5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx
new file mode 100644
index 0000000..d380fd2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9729079E477750D0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx
new file mode 100644
index 0000000..32a5767
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.9931D9E0DD116E66.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx
new file mode 100644
index 0000000..5e5c1a1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.B5B058D4AF3D54D3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx
new file mode 100644
index 0000000..a90562f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.C0CAA2324306247E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx
new file mode 100644
index 0000000..8145ee8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.D5F19C41CC25F579.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx
new file mode 100644
index 0000000..840ec7e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.DB6D2BD9F77AC242.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx
new file mode 100644
index 0000000..5e4525b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.c.E9AA6260A711730C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx
new file mode 100644
index 0000000..43e80ff
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0295B408ACFB310D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx
new file mode 100644
index 0000000..4f5528d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CAFC440D2752ED4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CD18B695E67FDB8.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CD18B695E67FDB8.idx
new file mode 100644
index 0000000..e1f5a5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.0CD18B695E67FDB8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx
new file mode 100644
index 0000000..91a895c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.16FE8A713DC8341E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx
new file mode 100644
index 0000000..275c7b8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.17BE39D5C502AC74.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx
new file mode 100644
index 0000000..608e74d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.1DAA7F636DEA1ECC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx
new file mode 100644
index 0000000..bfba507
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.24FCB1CA4898DD85.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx
new file mode 100644
index 0000000..a650314
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.447EF70A39008634.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx
new file mode 100644
index 0000000..d8fe58f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.4E4BA094C3B5958C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx
new file mode 100644
index 0000000..8802469
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.50A325F7EFFCCA13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx
new file mode 100644
index 0000000..2e83e9a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.62D36596A2B97151.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx
new file mode 100644
index 0000000..42fd763
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6CB9566D81EEE046.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx
new file mode 100644
index 0000000..06a1fc1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.6D08218FAF6FB0B9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx
new file mode 100644
index 0000000..d851c2d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.8FA8BCE339C0EF92.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx
new file mode 100644
index 0000000..7c9babd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.936A4E412A3C5C81.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx
new file mode 100644
index 0000000..da3c745
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.A848C17439F5EC22.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx
new file mode 100644
index 0000000..4c9deee
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.B8DBC1428E83F0BC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx
new file mode 100644
index 0000000..15eb79e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.C5570B20D17AEA63.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx
new file mode 100644
index 0000000..b0f355f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.DED7889B2C7F1DEB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx
new file mode 100644
index 0000000..0c17e82
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_i2c.h.EAF06B11FF85053C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx
new file mode 100644
index 0000000..cf87002
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.0293D21037AFBEFB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx
new file mode 100644
index 0000000..eeb9142
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.12C2BE085D212D97.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx
new file mode 100644
index 0000000..c1c4c90
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.422FBF2C4193F7CA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx
new file mode 100644
index 0000000..f6ded44
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.48F2BB3EF222C37B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx
new file mode 100644
index 0000000..4fd0ea6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.4B3B2D86C2119BA6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx
new file mode 100644
index 0000000..e4d323e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.5B7012A934E8225C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx
new file mode 100644
index 0000000..4a34195
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.68DAD09911B6114D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx
new file mode 100644
index 0000000..537fe1b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.84267E0D689F3508.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.919EDB5243025AD0.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.919EDB5243025AD0.idx
new file mode 100644
index 0000000..416d098
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.919EDB5243025AD0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx
new file mode 100644
index 0000000..49c02ac
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.9BEBB085CAA2F562.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx
new file mode 100644
index 0000000..3ccb08e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A52F92294FF3B06A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx
new file mode 100644
index 0000000..2780d4e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.A68CBBBC088F9C9B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx
new file mode 100644
index 0000000..f49ea6a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.BB6546F7F1AFEA1D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx
new file mode 100644
index 0000000..d61f49f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C579BC94896D6329.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx
new file mode 100644
index 0000000..9618ec7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.C753836620400F12.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx
new file mode 100644
index 0000000..620ca82
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.D279A52743E044E7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx
new file mode 100644
index 0000000..cd82482
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.DA57D864DD266B49.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx
new file mode 100644
index 0000000..e643955
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E211115AAC8F2E57.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx
new file mode 100644
index 0000000..2da816c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.E27F28C4992AD2A2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx
new file mode 100644
index 0000000..a2a0c92
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.c.F3843DC992879CC1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx
new file mode 100644
index 0000000..2db6ae9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.02B10859066D3A28.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx
new file mode 100644
index 0000000..2c81dfc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.081C8FB30E94A43E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx
new file mode 100644
index 0000000..8e518f4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.0CE99A6792544C70.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx
new file mode 100644
index 0000000..846d9d8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.14269FCB38695F1A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx
new file mode 100644
index 0000000..2b907dd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.4F7DC9CFD32867B6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx
new file mode 100644
index 0000000..73f313e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.698AF6C91968F1EB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx
new file mode 100644
index 0000000..b49bc4f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7374B481C84A476E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx
new file mode 100644
index 0000000..b93d945
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7AB54FD6D6362294.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx
new file mode 100644
index 0000000..05cc3e5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.7C362E36BD0DF779.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx
new file mode 100644
index 0000000..e2b27bf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AED2AB7A56B1C9E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx
new file mode 100644
index 0000000..c92767a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.9AF041E2E735AE69.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx
new file mode 100644
index 0000000..8a97e36
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.A393B0BBA3B19B07.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx
new file mode 100644
index 0000000..dbf7783
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.AF7698750E0C7564.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BC7A3338113B6798.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BC7A3338113B6798.idx
new file mode 100644
index 0000000..0562001
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.BC7A3338113B6798.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx
new file mode 100644
index 0000000..0f6d2e5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CB2C11239A744D21.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx
new file mode 100644
index 0000000..6642dad
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBA299038A16F556.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx
new file mode 100644
index 0000000..c3321c9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CBD6D274BDE7297F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx
new file mode 100644
index 0000000..18bfedb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.CD00C2F62737F4D6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx
new file mode 100644
index 0000000..f1b2c8a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.EE85993CC71AF0D5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx
new file mode 100644
index 0000000..6e300d7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_ifc.h.F239CFDAD3B7FD5E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx
new file mode 100644
index 0000000..d52e956
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.13B57F39386AB840.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx
new file mode 100644
index 0000000..9523019
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1B34FE6E3A4F3997.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx
new file mode 100644
index 0000000..d5a5660
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.1CB930F4FDC9CD54.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx
new file mode 100644
index 0000000..24ef33e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.5ABE463AF0B1970C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx
new file mode 100644
index 0000000..0fda5e6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7BCEFBB9F3927DCA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx
new file mode 100644
index 0000000..1938841
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.7DE85784BE228279.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx
new file mode 100644
index 0000000..b7ee93d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.887B4AD1170D229C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx
new file mode 100644
index 0000000..bf677e8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.8ACE344AE065084A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx
new file mode 100644
index 0000000..6ef4c32
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.91838F52A6EE62BE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx
new file mode 100644
index 0000000..d737ba5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.A6C70D14CE510577.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx
new file mode 100644
index 0000000..47736eb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.AE6A6680D73D4007.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx
new file mode 100644
index 0000000..f1f9b46
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B132F6E968B92537.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx
new file mode 100644
index 0000000..0bdf8a5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.B983F0A608830234.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx
new file mode 100644
index 0000000..0a64503
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.C3CC9C35878A0DC6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx
new file mode 100644
index 0000000..80eb7c9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.D4A2D5D81C663135.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx
new file mode 100644
index 0000000..e30120b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA2C001009763615.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA76E60F332E7488.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA76E60F332E7488.idx
new file mode 100644
index 0000000..194096a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.DA76E60F332E7488.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx
new file mode 100644
index 0000000..39a2b07
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.E75ED6B6F6DD2760.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx
new file mode 100644
index 0000000..914392f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.EEF9D542F8AE3729.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx
new file mode 100644
index 0000000..064ff6e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_iostring.c.FCEBAF7B082264A5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx
new file mode 100644
index 0000000..8a1f181
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.02B5DCFF51B6C224.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx
new file mode 100644
index 0000000..a6b8908
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.12AC1F286B8B924B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx
new file mode 100644
index 0000000..21fea98
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.17EDD925359E25B6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.1CD843381D9B6CDE.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.1CD843381D9B6CDE.idx
new file mode 100644
index 0000000..a3974e7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.1CD843381D9B6CDE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx
new file mode 100644
index 0000000..813684b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.2D921DA4CDA1B06C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx
new file mode 100644
index 0000000..305e96b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.31D240BE174A22B9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx
new file mode 100644
index 0000000..9f251b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.4E5F137000C4CE71.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx
new file mode 100644
index 0000000..eabc3c0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.83C6EFDD85C3811F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx
new file mode 100644
index 0000000..627c9f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.8AFC89142C367F6C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx
new file mode 100644
index 0000000..02331e4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.97E07D9671A7A31E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx
new file mode 100644
index 0000000..325e0c5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.989E7CA7977BA98A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx
new file mode 100644
index 0000000..f5bfd59
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.9D667A9682013643.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx
new file mode 100644
index 0000000..cd1b743
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.A8806E293180400D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx
new file mode 100644
index 0000000..81e6263
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BAAB531BD1DE502B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx
new file mode 100644
index 0000000..e6bcccd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.BC1ECCF91BCA93CE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx
new file mode 100644
index 0000000..cad3fc7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.C87C649C9DFE5F42.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx
new file mode 100644
index 0000000..65f9e27
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.CD1EE03BBC71AF83.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx
new file mode 100644
index 0000000..b570b4f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.D91C1CC6905C4FCF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx
new file mode 100644
index 0000000..05a0114
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.EA42B688780196EC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx
new file mode 100644
index 0000000..1b5e00d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.c.FA1946E33FD03BFE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx
new file mode 100644
index 0000000..c3dfcaa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.0F3B3ECFDF043B04.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx
new file mode 100644
index 0000000..4f34c0f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.2E069F2080E4AF4A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx
new file mode 100644
index 0000000..7acd1ac
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.3C4D15A6B01D7FB7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx
new file mode 100644
index 0000000..b5ffe80
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.523E385F9ECB9D9A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx
new file mode 100644
index 0000000..af752f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.5913AA42BBE10AF7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx
new file mode 100644
index 0000000..934a9a8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61075F2613DAA5A7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx
new file mode 100644
index 0000000..f9ac2b5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.61570EBC9415C99D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx
new file mode 100644
index 0000000..a48f4df
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6743404ECE45185F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx
new file mode 100644
index 0000000..24827cc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.679E53222A423379.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx
new file mode 100644
index 0000000..4f3f398
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6A6381494FD03A37.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx
new file mode 100644
index 0000000..10168bb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.6BDC64EFE7091878.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx
new file mode 100644
index 0000000..c311891
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7965E6BEA1DA2B19.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx
new file mode 100644
index 0000000..b68b897
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.796726E45AA1246B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx
new file mode 100644
index 0000000..785e688
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.7B2022D17BA29FE3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.801FF2F67A711E32.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.801FF2F67A711E32.idx
new file mode 100644
index 0000000..1a43a08
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.801FF2F67A711E32.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx
new file mode 100644
index 0000000..d6275a9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.9017A76F07A54881.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx
new file mode 100644
index 0000000..67418c2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.CE8B364723DA39D5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx
new file mode 100644
index 0000000..85148d0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.D1F0AEB108085C00.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx
new file mode 100644
index 0000000..2a03d96
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.ED7B4FB68AB95633.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx
new file mode 100644
index 0000000..c1dd4e6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_lpt.h.EEC598B7960485F1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx
new file mode 100644
index 0000000..46f74fe
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.0FE1CA65E4550310.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx
new file mode 100644
index 0000000..75719a8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.15981245BD70DDD7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx
new file mode 100644
index 0000000..75ad4a2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1A8B2F869FF84FDD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx
new file mode 100644
index 0000000..67bc919
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1B4B3890C79ADE2C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx
new file mode 100644
index 0000000..2023fb3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.1D2ECE70B94F5FD9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx
new file mode 100644
index 0000000..3aadc5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.252B7547065D6AC5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx
new file mode 100644
index 0000000..2d7a9b4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.3F965096F3A23BD0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx
new file mode 100644
index 0000000..6e1b8b6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.51D9E587F0A11894.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx
new file mode 100644
index 0000000..5b9025e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.559CE5F6F8474800.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx
new file mode 100644
index 0000000..df4ec98
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.6E2EBA30C4900AC8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx
new file mode 100644
index 0000000..28056ec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.76A4300C12056F56.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.7D41CDD109A11C52.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.7D41CDD109A11C52.idx
new file mode 100644
index 0000000..cce4586
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.7D41CDD109A11C52.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx
new file mode 100644
index 0000000..dbd2702
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.87FDEEAF086EF218.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx
new file mode 100644
index 0000000..4a60e3c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.8E2BA2697CDA42E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx
new file mode 100644
index 0000000..95976e0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.93B917E5A9267ED3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx
new file mode 100644
index 0000000..eb87c62
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.A2BC6F0A09F63B7E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx
new file mode 100644
index 0000000..483da2c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.CE2956329B568F71.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx
new file mode 100644
index 0000000..f9ff344
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F36C93C7CDC73185.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx
new file mode 100644
index 0000000..7cd9221
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.F577D3ECA8BD97A1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx
new file mode 100644
index 0000000..89a4a37
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.c.FBA169789AB5BF53.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx
new file mode 100644
index 0000000..7868cc8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0A3B73D9D5ACEF6E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx
new file mode 100644
index 0000000..dbddecb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0BD2B29111B1A92C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx
new file mode 100644
index 0000000..b609698
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.0D18E5EFE864EBB1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx
new file mode 100644
index 0000000..3f482b7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.1A096CBD220DDA21.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2B5AABF20CB965E0.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2B5AABF20CB965E0.idx
new file mode 100644
index 0000000..5945c2f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2B5AABF20CB965E0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx
new file mode 100644
index 0000000..7d95878
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.2FC9A1ADF12508AC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx
new file mode 100644
index 0000000..e5cc6e4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.356112AC3ACD6EDE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx
new file mode 100644
index 0000000..11f064d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5606249C69446478.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx
new file mode 100644
index 0000000..c9583ec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.57A7217C7ACF4FBD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx
new file mode 100644
index 0000000..b825da8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.5AF12B87C45A6532.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx
new file mode 100644
index 0000000..b9e6fe8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.6C5E776C15503ADD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx
new file mode 100644
index 0000000..3213ea2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.71E64F4C2D585807.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx
new file mode 100644
index 0000000..57efecd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.7298A68C5C4B067C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx
new file mode 100644
index 0000000..280e102
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.8EFD43A0C9A9C7A2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx
new file mode 100644
index 0000000..587054c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C408DF73D11E35E6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx
new file mode 100644
index 0000000..c10999f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.C91E01B65D9FEB93.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx
new file mode 100644
index 0000000..2a843d6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.CB3E1B5C9A013919.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx
new file mode 100644
index 0000000..f4b82fc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.D5465679B973F25E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx
new file mode 100644
index 0000000..6070c39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E61E07E1FF12D56F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx
new file mode 100644
index 0000000..b61f7cb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_rtc.h.E94477D469C9ECED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx
new file mode 100644
index 0000000..270d9ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.004BB878E4871745.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx
new file mode 100644
index 0000000..d54ded3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.1202E59F24CCCB7C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx
new file mode 100644
index 0000000..618787f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.12B33C8031D3A854.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx
new file mode 100644
index 0000000..039c37d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.145E7A4992BBA308.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx
new file mode 100644
index 0000000..0e2f2a8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.15919291810148F3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.174CE7CB7FBA04E7.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.174CE7CB7FBA04E7.idx
new file mode 100644
index 0000000..aa7249a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.174CE7CB7FBA04E7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx
new file mode 100644
index 0000000..a13dc88
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3C17EE90950A0EE1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx
new file mode 100644
index 0000000..78f8320
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.3D9D951F643C7474.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx
new file mode 100644
index 0000000..2b16bc4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.458520997E093A12.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx
new file mode 100644
index 0000000..c4f47ba
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.4D151F5AD32916AF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx
new file mode 100644
index 0000000..1e0343d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.53645AEB15141F42.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx
new file mode 100644
index 0000000..44c2183
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.69B27BE471610F7E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx
new file mode 100644
index 0000000..8c06b3e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.70A6DC20D8BF9E2E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx
new file mode 100644
index 0000000..8717bd0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7AA6D00EE29961F3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx
new file mode 100644
index 0000000..1b2e8e7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.7D6A6A94A459088C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx
new file mode 100644
index 0000000..6fa48ef
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.9847D84EA60015F0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx
new file mode 100644
index 0000000..85c1069
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.A6C11030876BE869.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx
new file mode 100644
index 0000000..5912625
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.C01F122E81476210.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx
new file mode 100644
index 0000000..7c0ae5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.F0B33DB0C7F16BE4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx
new file mode 100644
index 0000000..d9d5f5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.c.FD74CF9B5023CF98.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx
new file mode 100644
index 0000000..259cb9b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.176D35C403CFA0C5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx
new file mode 100644
index 0000000..fa95576
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.1F2F86B74925BE69.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx
new file mode 100644
index 0000000..3e3456b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.29616DBE909303FC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.2A17D0F58700BCD4.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.2A17D0F58700BCD4.idx
new file mode 100644
index 0000000..ecd2d52
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.2A17D0F58700BCD4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx
new file mode 100644
index 0000000..e8790a4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.46EC6317A2CBC7B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx
new file mode 100644
index 0000000..035a421
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.65E471A7D918A784.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx
new file mode 100644
index 0000000..be7d918
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.669A7DDFA5E6A9BC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx
new file mode 100644
index 0000000..9a8ad0d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.6B12CEBBD765EEB1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx
new file mode 100644
index 0000000..ca56a88
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.8709B560D53C4B30.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx
new file mode 100644
index 0000000..d7cb93e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.9C1D0967F2B1555A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx
new file mode 100644
index 0000000..ed77391
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A30605AD7C64872B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx
new file mode 100644
index 0000000..07ed206
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.A40E67096CCD55E7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx
new file mode 100644
index 0000000..b685021
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B19A01F524A389C9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx
new file mode 100644
index 0000000..7a15eac
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.B875571F06C81146.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx
new file mode 100644
index 0000000..a99b996
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.D549EDE7B9336122.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx
new file mode 100644
index 0000000..2fb8b24
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E738A41999C4E7EA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx
new file mode 100644
index 0000000..e2d6321
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.E81D2653F6584463.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx
new file mode 100644
index 0000000..b91a67a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.EBF81434F3790B22.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx
new file mode 100644
index 0000000..a744ca3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.F6D678C5A638A85F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx
new file mode 100644
index 0000000..4b342eb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_sio.h.FDB742185CB088D4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.056A410619467D92.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.056A410619467D92.idx
new file mode 100644
index 0000000..5b6b113
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.056A410619467D92.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx
new file mode 100644
index 0000000..01a3455
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.0C705FE77537344D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx
new file mode 100644
index 0000000..03d3a09
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.27EB1C3E1DBBD8E8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx
new file mode 100644
index 0000000..c9ef767
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.35EFB6A8F53F24C2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx
new file mode 100644
index 0000000..686db71
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.4F39844DDDE385EC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx
new file mode 100644
index 0000000..91a5a6e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5040D42B3FE5F7A7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx
new file mode 100644
index 0000000..e63ba4b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5C264C3DC937C4EF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx
new file mode 100644
index 0000000..e610330
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.5D6A21A1097D90EF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx
new file mode 100644
index 0000000..20c6763
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.8E4E6E2828D4E561.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx
new file mode 100644
index 0000000..03797a2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9308039605357D3E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx
new file mode 100644
index 0000000..2697da7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.9B94CE6250EEEB02.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx
new file mode 100644
index 0000000..eeae077
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A639FB7ADBD58F9E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx
new file mode 100644
index 0000000..920a387
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.A8E6CB64EE9DF3F1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx
new file mode 100644
index 0000000..4150d9e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.C1730931D65A1B55.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx
new file mode 100644
index 0000000..e75ccf5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.D3526A9932F8258C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx
new file mode 100644
index 0000000..bca04d7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E0DFDEE0C944631E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx
new file mode 100644
index 0000000..e82869f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E287E7837B48CB97.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx
new file mode 100644
index 0000000..b26c5df
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.E9A96A6C4EE5BDD5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx
new file mode 100644
index 0000000..d41506d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.EF250D821B10F0B2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx
new file mode 100644
index 0000000..7bec328
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.c.FB675D8996D1BF21.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx
new file mode 100644
index 0000000..97b6c3f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.02D5C81E16C31BF0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx
new file mode 100644
index 0000000..4cfd07e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.1B224749773DC9FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx
new file mode 100644
index 0000000..fdfa9ae
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.20E41E19746A7053.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx
new file mode 100644
index 0000000..17a01eb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.2A0A55718E869716.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx
new file mode 100644
index 0000000..6bcf1fd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.384BFE9332C666C9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx
new file mode 100644
index 0000000..b8bb2f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.3C0E158985E14937.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx
new file mode 100644
index 0000000..09f1bd3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.549E8B5F058A176D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx
new file mode 100644
index 0000000..a805ea0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.6B1D2760311C3F40.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx
new file mode 100644
index 0000000..8a8f2f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.7F461CC17F1025BD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx
new file mode 100644
index 0000000..8938cd9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.A3691F450B933B74.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx
new file mode 100644
index 0000000..54e7580
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.AA37503FA181690D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx
new file mode 100644
index 0000000..690351a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B123CEC8A9A37CB0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx
new file mode 100644
index 0000000..b2e4be3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.B76C8E5549649E41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx
new file mode 100644
index 0000000..7c4f376
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C3B0FE00CB48009F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx
new file mode 100644
index 0000000..8a3c4ca
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C4C14D0F7DC9E6C2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C8EACC84451FC6ED.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C8EACC84451FC6ED.idx
new file mode 100644
index 0000000..bf4f738
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.C8EACC84451FC6ED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx
new file mode 100644
index 0000000..3e81c32
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.CC00DA49FF7EC81A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx
new file mode 100644
index 0000000..65b069c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DD384915276155F4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx
new file mode 100644
index 0000000..7662d25
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.DDDDA281A0B47A03.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx
new file mode 100644
index 0000000..060fbf2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_spi.h.FB06D2D4E8BB5351.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx
new file mode 100644
index 0000000..6d14d5d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.0AC78832897AFA50.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx
new file mode 100644
index 0000000..cbb0329
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58B628B9637F7C3A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx
new file mode 100644
index 0000000..14b2c25
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.58E5CBE0CB3FE8FC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx
new file mode 100644
index 0000000..60b6da9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7142F74520A31372.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx
new file mode 100644
index 0000000..cb6a3fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7170931667728880.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx
new file mode 100644
index 0000000..992cbd6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.718DAC5A74B412FB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx
new file mode 100644
index 0000000..137809b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.73534F337F2FF384.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx
new file mode 100644
index 0000000..df33dd4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.77D33EEFCD32D5DC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx
new file mode 100644
index 0000000..e41ac76
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78786F5BAFC9E101.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx
new file mode 100644
index 0000000..ccf89a6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.78A39C72368C554B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx
new file mode 100644
index 0000000..9271782
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7A0C577D1DE38EEE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx
new file mode 100644
index 0000000..d4efd3c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.7DB368C2460BC431.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.824ED6D38ACC3107.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.824ED6D38ACC3107.idx
new file mode 100644
index 0000000..bf86413
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.824ED6D38ACC3107.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx
new file mode 100644
index 0000000..4544d7e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.A0702424D29F875B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx
new file mode 100644
index 0000000..18f2d4a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.AF30A403FCC4F587.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx
new file mode 100644
index 0000000..b804e06
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B90E9E3E15BF5D8A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx
new file mode 100644
index 0000000..7ce27f7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.B98C8728D6C2E884.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx
new file mode 100644
index 0000000..741beb8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.D39EE9C96C782EA0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx
new file mode 100644
index 0000000..ffd0e7d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.DFF99E64F0397033.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx
new file mode 100644
index 0000000..bb452ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.c.F3C082E30EE854A7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx
new file mode 100644
index 0000000..56971e3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.159A95F33C7C3C0E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx
new file mode 100644
index 0000000..b5ae535
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.20367E5B4C2E59A5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx
new file mode 100644
index 0000000..fc77424
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.29636515DA92B601.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx
new file mode 100644
index 0000000..c703e3f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2C92E04B672E5E62.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx
new file mode 100644
index 0000000..a384403
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.2FC52C20ADEF822E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx
new file mode 100644
index 0000000..f282a6f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.31900674A347DC86.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3837AAB375469D41.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3837AAB375469D41.idx
new file mode 100644
index 0000000..0f7d076
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3837AAB375469D41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx
new file mode 100644
index 0000000..13672b8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.3B1F550120F74C76.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx
new file mode 100644
index 0000000..43328bb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.472E8232D9C1EA9C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx
new file mode 100644
index 0000000..f38972c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.5CB293F12C3ED0D2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx
new file mode 100644
index 0000000..71d2657
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6760B4C90CD2309B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx
new file mode 100644
index 0000000..84f8f2f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6B2F6D58DF3B4BB4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx
new file mode 100644
index 0000000..a6a5bec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6D05C2C4F129A2DA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx
new file mode 100644
index 0000000..464a477
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.6EE69A186624A4EC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx
new file mode 100644
index 0000000..c792dbc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7359BFE95235C858.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx
new file mode 100644
index 0000000..309866e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.7865ABDA2BB5FDEF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx
new file mode 100644
index 0000000..cc47825
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.8451A2BA3422F7E0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx
new file mode 100644
index 0000000..846b811
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.D7C4DC1BE193C133.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx
new file mode 100644
index 0000000..1c46ef5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.DAA3C716D1AC0B7D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx
new file mode 100644
index 0000000..9319ae3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_syscon.h.EF2D1BDB23FC93CF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx
new file mode 100644
index 0000000..7171a7f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.086E773D18C15E17.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx
new file mode 100644
index 0000000..b96e611
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.0EFF20D4C22318C5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx
new file mode 100644
index 0000000..56ec080
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.15ECBF05EE97F8FF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx
new file mode 100644
index 0000000..50415d0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.2CA96F1DBCFCD7F2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx
new file mode 100644
index 0000000..b864c6c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.42C1E008716751BC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx
new file mode 100644
index 0000000..598994d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.551EE64C353129BC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx
new file mode 100644
index 0000000..cf863f9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.5776361E06241EC7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx
new file mode 100644
index 0000000..b593f90
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.577E3A43DE881CC7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx
new file mode 100644
index 0000000..a4ba6bd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.69BE840C37E34806.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.73D662146E5C986B.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.73D662146E5C986B.idx
new file mode 100644
index 0000000..a73aa44
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.73D662146E5C986B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx
new file mode 100644
index 0000000..b54c059
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.9C6EEB6F5DDF37DA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx
new file mode 100644
index 0000000..3a8b9ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.A8D9CCBDA3034A47.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx
new file mode 100644
index 0000000..1868705
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.AC33A34B8CDF46FA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx
new file mode 100644
index 0000000..9c8aea0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.B8FD1C9557B1CE0A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx
new file mode 100644
index 0000000..2a65e56
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.BEBF5ABB5E1DBC9C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx
new file mode 100644
index 0000000..5b54048
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CB453416D4CD252A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx
new file mode 100644
index 0000000..ef65975
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.CC015267E756B719.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx
new file mode 100644
index 0000000..bae7195
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.D1B41E47CA39324E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx
new file mode 100644
index 0000000..13fd34d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E1E1205B21795344.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx
new file mode 100644
index 0000000..59b9542
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey.h.E3C7CEA1F1AFBF83.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx
new file mode 100644
index 0000000..7dea6f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.026A9577E54E1500.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx
new file mode 100644
index 0000000..2eae52c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1842D63F81A39EEB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx
new file mode 100644
index 0000000..deb2d17
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1F839B099BB355F0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx
new file mode 100644
index 0000000..2f74b1f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.1FC2C185B99DC86F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx
new file mode 100644
index 0000000..5244362
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.2EA237C83D79CBE2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.306274FDDEE137E2.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.306274FDDEE137E2.idx
new file mode 100644
index 0000000..f4ba443
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.306274FDDEE137E2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx
new file mode 100644
index 0000000..9bb8666
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.38E49A6E385194CE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx
new file mode 100644
index 0000000..bb483f1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.4F030249BCEB17B7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx
new file mode 100644
index 0000000..3b381b8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.50E8D3022EFE65B5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx
new file mode 100644
index 0000000..b037019
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.56591A6A68531918.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx
new file mode 100644
index 0000000..44b0f82
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.5702AA32D9769BD7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx
new file mode 100644
index 0000000..dfad264
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.610FC107A36F244A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx
new file mode 100644
index 0000000..ad71f3e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.62F54B3A3A277C93.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx
new file mode 100644
index 0000000..736df8c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.7587C18808B17592.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx
new file mode 100644
index 0000000..5046bd8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.814864B21238D991.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx
new file mode 100644
index 0000000..22ec9b9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.8199858FA5C0459E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx
new file mode 100644
index 0000000..59fc269
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.A00D8026FB08F09F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx
new file mode 100644
index 0000000..439e526
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.B64446F2580A11BF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx
new file mode 100644
index 0000000..d6540ae
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.DDCEF798435E4882.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx
new file mode 100644
index 0000000..49bf75a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_tkey_parameter.c.EF79C4AC2C329868.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx
new file mode 100644
index 0000000..eccb7e7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.0336C3C214DB8C68.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx
new file mode 100644
index 0000000..85dde7d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.112C9E10A9911927.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx
new file mode 100644
index 0000000..f37b1b0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.1778EF537D39CC31.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx
new file mode 100644
index 0000000..270c864
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.23D78DEA8360969E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx
new file mode 100644
index 0000000..0507e2a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.2C105D23E11E206A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx
new file mode 100644
index 0000000..987019e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.3830C4CD5A14DE2F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx
new file mode 100644
index 0000000..b7031ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.6470DD63664605A1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx
new file mode 100644
index 0000000..93fd8cb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.7BF73E9491377639.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx
new file mode 100644
index 0000000..de70c48
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.819A00414FCD51AE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx
new file mode 100644
index 0000000..6e5101b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.8215CEE3A3C44DCC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx
new file mode 100644
index 0000000..62fea5d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.83BECC50CB83D47C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx
new file mode 100644
index 0000000..f93b7a9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.846751DB22122745.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx
new file mode 100644
index 0000000..27514e2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.A5310B6733C0F791.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx
new file mode 100644
index 0000000..ee0aaed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B2BCC8C1751513EA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx
new file mode 100644
index 0000000..b119a86
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B5E41505AD1A3A40.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B8A3D693E10CFDD6.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B8A3D693E10CFDD6.idx
new file mode 100644
index 0000000..d97f904
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.B8A3D693E10CFDD6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx
new file mode 100644
index 0000000..5f98908
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.C83B333A9474B42D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx
new file mode 100644
index 0000000..3e8ae40
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.CBDCC3A06C7FE58C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx
new file mode 100644
index 0000000..8c63de1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DD68AE9C86338B4B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx
new file mode 100644
index 0000000..c3b6c4a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_types_local.h.DE574F010E0647E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx
new file mode 100644
index 0000000..2e4ecc3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.03396AF59F1F3318.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx
new file mode 100644
index 0000000..e2820fb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.035397EAA4FF5068.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx
new file mode 100644
index 0000000..3da6056
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.075A4112B6A57C6A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx
new file mode 100644
index 0000000..99f6d7c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.23649715A25CBB01.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.28C148303B84172F.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.28C148303B84172F.idx
new file mode 100644
index 0000000..70a7f1c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.28C148303B84172F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx
new file mode 100644
index 0000000..7810084
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.4160DFF1F8874FB5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx
new file mode 100644
index 0000000..00fd4a9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.558902A53E1894C4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx
new file mode 100644
index 0000000..d46ef12
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.5C85ED06BCC6CABE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx
new file mode 100644
index 0000000..cac3649
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7CF6562ACE441F9B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx
new file mode 100644
index 0000000..c7bd32a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.7E9D857371231945.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx
new file mode 100644
index 0000000..fe4e066
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.968CA5B4100AF908.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx
new file mode 100644
index 0000000..05db26e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.AC2C9D7FF8EA5E44.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx
new file mode 100644
index 0000000..a186d98
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.B79D1BA529966C37.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx
new file mode 100644
index 0000000..1747126
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C5516300BD872977.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx
new file mode 100644
index 0000000..4d44fa0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C7E0C1929ECDEC90.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx
new file mode 100644
index 0000000..f8788dd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.C9C8A5476EC72981.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx
new file mode 100644
index 0000000..5f8bf8a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.CB90C80BF164C502.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx
new file mode 100644
index 0000000..3dee8ea
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.DB9859C523176838.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx
new file mode 100644
index 0000000..37a9217
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.F137D2A35F398EA6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx
new file mode 100644
index 0000000..81467ad
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.c.FFE925AA33143249.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx
new file mode 100644
index 0000000..02fbb67
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.099D37914ADEF08C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx
new file mode 100644
index 0000000..cb7c16f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.2205657800759E2E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx
new file mode 100644
index 0000000..8b32136
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.30CC5CEEC0F09253.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx
new file mode 100644
index 0000000..507a92b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.3CEB2143C24E11B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4EF74062CCC01341.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4EF74062CCC01341.idx
new file mode 100644
index 0000000..3786239
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.4EF74062CCC01341.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx
new file mode 100644
index 0000000..386c5c5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.53E24D130BBC4B9F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx
new file mode 100644
index 0000000..bf9457a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.66D4853A56C0A08F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx
new file mode 100644
index 0000000..261cba1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.6B0B270A53DF6D4E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx
new file mode 100644
index 0000000..91454f6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.7FC36655D43980CA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx
new file mode 100644
index 0000000..5ffd8a7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.98711B8D869E53E7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx
new file mode 100644
index 0000000..03f26f6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.9FFFD589F8DE8A3D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx
new file mode 100644
index 0000000..06a27b7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.B131A102D9A184B6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx
new file mode 100644
index 0000000..08ff2e1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C1C1B09A6B83F2CF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx
new file mode 100644
index 0000000..6cc572b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C3ED2FBE9027DCD6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx
new file mode 100644
index 0000000..01c5561
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.C4BD364C351623C0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx
new file mode 100644
index 0000000..ce56234
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.DAFAC32BD05E3938.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx
new file mode 100644
index 0000000..45c7517
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.E71B8CC4CD66DBFF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx
new file mode 100644
index 0000000..15e5450
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.F7EF4DBF7160D3D4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx
new file mode 100644
index 0000000..9f9e500
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FA7DE4EC31C52B17.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx
new file mode 100644
index 0000000..019e1c8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_uart.h.FF3CE67872FB3537.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx
new file mode 100644
index 0000000..7e93f51
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.25FD117C52C1BCE1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx
new file mode 100644
index 0000000..208e389
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.2D6EAEEFCA5969BB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx
new file mode 100644
index 0000000..92c1abc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.34807CC0F63DE798.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx
new file mode 100644
index 0000000..0c81c81
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.46A7ED532EF3787C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx
new file mode 100644
index 0000000..c8310be
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.48EFE547DE0C6523.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx
new file mode 100644
index 0000000..78339ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4D705DE978964441.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx
new file mode 100644
index 0000000..4e35c02
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.4F70AB1A55A3DE02.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx
new file mode 100644
index 0000000..a62b478
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.68F904081A147007.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx
new file mode 100644
index 0000000..a95b6d0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.6CEB9AA783C6A44A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx
new file mode 100644
index 0000000..eb1055b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.7EE4CBAECD6A69F1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx
new file mode 100644
index 0000000..4e53b85
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.8E2481DE095CEC2A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx
new file mode 100644
index 0000000..b1c4e76
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9C1F14142D4EC7D3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx
new file mode 100644
index 0000000..e65ecdf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9D56E2E14AEDC339.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx
new file mode 100644
index 0000000..9b04f53
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.9FEFFA62C1C55620.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx
new file mode 100644
index 0000000..db93f90
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.A9101AF09EED8714.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx
new file mode 100644
index 0000000..0c2111a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.AC75FA96F386D80A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx
new file mode 100644
index 0000000..cb2737a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.C341A0625F1C8075.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx
new file mode 100644
index 0000000..e062a95
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.CAC42485D8EC3F41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx
new file mode 100644
index 0000000..187e055
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.DD6A930031648980.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.FF56AC42DF85EFE5.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.FF56AC42DF85EFE5.idx
new file mode 100644
index 0000000..6285d3b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.c.FF56AC42DF85EFE5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx
new file mode 100644
index 0000000..d71d7d7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0B936C0D798A6DE8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx
new file mode 100644
index 0000000..766dad8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0BDC5393B36417DA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx
new file mode 100644
index 0000000..587e273
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.0FFEA2DFE5C0C724.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx
new file mode 100644
index 0000000..8c5b335
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.26999E14D6762A14.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx
new file mode 100644
index 0000000..dbdb655
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.44537710CAC108EB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx
new file mode 100644
index 0000000..d5d5d5a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5A91465C95D85D12.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx
new file mode 100644
index 0000000..77f028d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5AB806803691B94D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx
new file mode 100644
index 0000000..c9eef01
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.5B612FC3CEA605AC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx
new file mode 100644
index 0000000..e7c8b64
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.6EB08B3F6763F05F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx
new file mode 100644
index 0000000..0cfd8b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.81806E7866F8477F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx
new file mode 100644
index 0000000..0a5eddd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.8DC9FBD9EC6732D3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx
new file mode 100644
index 0000000..5a3c046
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.9078DEB23F78887A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx
new file mode 100644
index 0000000..6629183
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.A8988517DE3BA22B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx
new file mode 100644
index 0000000..1a9f024
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B2CD3D650F096C0C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx
new file mode 100644
index 0000000..d5047f3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.B7D20621466B544A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx
new file mode 100644
index 0000000..fba1e93
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.BE30A9CF7A25CE12.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CF214DB7B4DC89A5.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CF214DB7B4DC89A5.idx
new file mode 100644
index 0000000..1ecaccc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CF214DB7B4DC89A5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx
new file mode 100644
index 0000000..34251e6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.CFDD64CD23D26664.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx
new file mode 100644
index 0000000..27aef8b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F5A6B66C56FFC60A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx
new file mode 100644
index 0000000..be64ea8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/apt32f102_wwdt.h.F9D98658AFE65F30.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx b/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx
new file mode 100644
index 0000000..80286ef
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.0AA1BAB7F8FEF62E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx b/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx
new file mode 100644
index 0000000..01fb853
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.23F7D81504217673.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx b/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx
new file mode 100644
index 0000000..7925ee7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.27E26F6094DDA8D2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx b/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx
new file mode 100644
index 0000000..050a67c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.2F3B4E5533155694.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx b/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx
new file mode 100644
index 0000000..93f0e25
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.33527DCA34680AF0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx b/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx
new file mode 100644
index 0000000..97fc96c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.3C18B4F82F34E31F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx b/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx
new file mode 100644
index 0000000..bf606a7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.47CD1367E790EBEA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx b/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx
new file mode 100644
index 0000000..ae79399
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.651AA1474E6FD8FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx b/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx
new file mode 100644
index 0000000..fee3f12
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.7012E33E34BCC183.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx b/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx
new file mode 100644
index 0000000..e970ac1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.7846EC240E6B628E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx b/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx
new file mode 100644
index 0000000..6e1fab4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.81754CFC1C34DB71.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx b/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx
new file mode 100644
index 0000000..452380a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.840711E37CA3B55C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx b/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx
new file mode 100644
index 0000000..c76f1a4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.8DDBEE95F46345B9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx b/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx
new file mode 100644
index 0000000..88ba0bb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.A5A9E63069E25187.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx b/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx
new file mode 100644
index 0000000..efcb4b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.AD99F1CF808502B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx b/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx
new file mode 100644
index 0000000..6fec070
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.C446EE3EEADDDA41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx b/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx
new file mode 100644
index 0000000..c030c27
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.D25B22D4ED594976.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx b/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx
new file mode 100644
index 0000000..e7b03fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.DCC8AE62930B112A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx b/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx
new file mode 100644
index 0000000..90d3951
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.c.E60D952184ACED45.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx b/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx
new file mode 100644
index 0000000..2c5d25d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.06AE2429B07EEA0D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx b/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx
new file mode 100644
index 0000000..a7624d3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.1A839B8B6E9DB9EB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx b/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx
new file mode 100644
index 0000000..8434504
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.2523E9D79B7736C4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx b/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx
new file mode 100644
index 0000000..4ed8e51
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.369A06C4B4CF5A49.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx b/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx
new file mode 100644
index 0000000..6f3ecc4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.3E1A2B7CBEF9FDC6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx b/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx
new file mode 100644
index 0000000..e778f1a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.4C131E19AF48E32B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx b/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx
new file mode 100644
index 0000000..bd683af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.684EFCDC6A00DBEA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx b/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx
new file mode 100644
index 0000000..acfcd2a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.6A8475F853EFEDF9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx b/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx
new file mode 100644
index 0000000..237d0d8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.7784387F6D40681A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx b/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx
new file mode 100644
index 0000000..addfde1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.7BFCC7DFC6C4BB5F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx b/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx
new file mode 100644
index 0000000..da4bfa3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.7F2764FD3D775A37.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx b/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx
new file mode 100644
index 0000000..ab18502
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.90A17C6795B49AFE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx b/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx
new file mode 100644
index 0000000..26abad0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.935009227618A658.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx b/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx
new file mode 100644
index 0000000..6060a33
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.AA8062A470C9FD38.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx b/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx
new file mode 100644
index 0000000..a83a089
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.AECDD25A6499AA2C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx b/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx
new file mode 100644
index 0000000..c9edd8e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.C04A39A3B3081522.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx b/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx
new file mode 100644
index 0000000..490d164
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.C8DBCA16DCAD1E9C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx b/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx
new file mode 100644
index 0000000..5abedde
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.D8D5177B945B6A00.idx differ
diff --git a/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx b/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx
new file mode 100644
index 0000000..2e9003e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/button.h.DC0FA19630293650.idx differ
diff --git a/Source/.cache/.cache/clangd/index/control_rly.c.973EF384F28EF313.idx b/Source/.cache/.cache/clangd/index/control_rly.c.973EF384F28EF313.idx
new file mode 100644
index 0000000..1a5f391
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/control_rly.c.973EF384F28EF313.idx differ
diff --git a/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx b/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx
new file mode 100644
index 0000000..bde282d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/control_rly.h.8B4B52E882D3A80E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/control_rly.h.9BC84CE502FD709F.idx b/Source/.cache/.cache/clangd/index/control_rly.h.9BC84CE502FD709F.idx
new file mode 100644
index 0000000..38df8d7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/control_rly.h.9BC84CE502FD709F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx b/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx
new file mode 100644
index 0000000..89ea4c0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.003D6C590E169399.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx b/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx
new file mode 100644
index 0000000..89ea479
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.0F90FC27597C1482.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx b/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx
new file mode 100644
index 0000000..c47f3c2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.181ABB6D153D3A08.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx b/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx
new file mode 100644
index 0000000..22b692f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.2D1A0D4EDEE44BAF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx b/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx
new file mode 100644
index 0000000..ee960a2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.32D6657ACA9049F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx b/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx
new file mode 100644
index 0000000..67b7504
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.3CA9FA7DF6B44253.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx b/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx
new file mode 100644
index 0000000..02f1485
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.3E1A82C8087F016A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx b/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx
new file mode 100644
index 0000000..f3aac54
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.3F128C30F477DA28.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx b/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx
new file mode 100644
index 0000000..e3e7649
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.3F63A65E8CE503FB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx b/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx
new file mode 100644
index 0000000..73afb8a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.4619C5030AFFCF8C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx b/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx
new file mode 100644
index 0000000..939cf2b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.4E1160F6D7C0D732.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.64C53BD5BA994477.idx b/Source/.cache/.cache/clangd/index/crt0.S.64C53BD5BA994477.idx
new file mode 100644
index 0000000..d4e8f7c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.64C53BD5BA994477.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx b/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx
new file mode 100644
index 0000000..0256444
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.87284442D92573FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx b/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx
new file mode 100644
index 0000000..7840ace
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.9F19AFD3B1ABE953.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx b/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx
new file mode 100644
index 0000000..f687a4e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.C41AD3D47F589DDA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx b/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx
new file mode 100644
index 0000000..e3c0f05
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.C71A9113B7337AF9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx b/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx
new file mode 100644
index 0000000..35e1f06
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.CB224E360AE2A087.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx b/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx
new file mode 100644
index 0000000..93ab0d1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.D52651181F313929.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx b/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx
new file mode 100644
index 0000000..08ec901
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.F5E560AF5B2CA720.idx differ
diff --git a/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx b/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx
new file mode 100644
index 0000000..1216edd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/crt0.S.F97AC6D1B2F9A39A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/dip_switch.c.D85FDC43F10D1C86.idx b/Source/.cache/.cache/clangd/index/dip_switch.c.D85FDC43F10D1C86.idx
new file mode 100644
index 0000000..3d26d2d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/dip_switch.c.D85FDC43F10D1C86.idx differ
diff --git a/Source/.cache/.cache/clangd/index/dip_switch.h.0D52CBFFDCB78357.idx b/Source/.cache/.cache/clangd/index/dip_switch.h.0D52CBFFDCB78357.idx
new file mode 100644
index 0000000..8b55702
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/dip_switch.h.0D52CBFFDCB78357.idx differ
diff --git a/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx b/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx
new file mode 100644
index 0000000..53721bf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/dip_switch.h.0DE433855512F32B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/eeprom.c.1D03FBAD6CC4503D.idx b/Source/.cache/.cache/clangd/index/eeprom.c.1D03FBAD6CC4503D.idx
new file mode 100644
index 0000000..34fbade
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/eeprom.c.1D03FBAD6CC4503D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx b/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx
new file mode 100644
index 0000000..b304680
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/eeprom.h.4FB38A037764958F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/eeprom.h.68FEFB77019F5DB5.idx b/Source/.cache/.cache/clangd/index/eeprom.h.68FEFB77019F5DB5.idx
new file mode 100644
index 0000000..35531bb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/eeprom.h.68FEFB77019F5DB5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx b/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx
new file mode 100644
index 0000000..97450e2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/errno.h.B1F75E7780176EBE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx b/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx
new file mode 100644
index 0000000..b8b78df
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/errno.h.E917EBE5EC8E3AA8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx b/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx
new file mode 100644
index 0000000..b9352fc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/features.h.C056A5B2EFBD7F3C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx b/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx
new file mode 100644
index 0000000..9a16aed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/features.h.D2DB2CA88E1B9A14.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx b/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx
new file mode 100644
index 0000000..6919d7d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.051BDA5544A6ECC0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx b/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx
new file mode 100644
index 0000000..c45f486
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.063DAEB7E7527CCA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx b/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx
new file mode 100644
index 0000000..b679282
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.1443364CB9CED5B2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx b/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx
new file mode 100644
index 0000000..820df3a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.1A84F14E7FC133D6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx b/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx
new file mode 100644
index 0000000..5b35689
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.22178D5DD09B8200.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx b/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx
new file mode 100644
index 0000000..f75fb49
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.35A6CBCE210EDB0F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx b/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx
new file mode 100644
index 0000000..9e7e434
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.4E0DC4A32570C7DC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx b/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx
new file mode 100644
index 0000000..f05931c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.5E9DB012B7403259.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx b/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx
new file mode 100644
index 0000000..33f5774
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.69B347FD9BD95B8C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx b/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx
new file mode 100644
index 0000000..89d3a20
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.834A5AC52B86F409.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx b/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx
new file mode 100644
index 0000000..d8ce975
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.AFB2C4DE8AD77DB9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx b/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx
new file mode 100644
index 0000000..8f714ed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.B4472209897B2A4B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx b/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx
new file mode 100644
index 0000000..ed57639
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.BA2309346E455D4D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx b/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx
new file mode 100644
index 0000000..3ca01b4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.BA70F78CC3CD7050.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx b/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx
new file mode 100644
index 0000000..498f770
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.BB4C96D8995FA3C7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx b/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx
new file mode 100644
index 0000000..0d18244
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.C05FA6A94D677483.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx b/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx
new file mode 100644
index 0000000..ec69dc6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.DBC937F24F183EFE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx b/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx
new file mode 100644
index 0000000..b04583f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.E20465E81F203D1F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx b/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx
new file mode 100644
index 0000000..0ffaf2a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.EEF8F506EF4307FF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/includes.h.F6FA7A42FCCEEEB6.idx b/Source/.cache/.cache/clangd/index/includes.h.F6FA7A42FCCEEEB6.idx
new file mode 100644
index 0000000..fca8402
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/includes.h.F6FA7A42FCCEEEB6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx b/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx
new file mode 100644
index 0000000..7ba36e3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/linux_errno.h.3454E07CF4A508A4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx b/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx
new file mode 100644
index 0000000..9c903fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/linux_errno.h.72829160CCCAA0D0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx
new file mode 100644
index 0000000..9d24aa6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.023BDDC07570A89C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx
new file mode 100644
index 0000000..3e9fce0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.0654423D2F935DB0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx
new file mode 100644
index 0000000..88d28c3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.06BB5748DEC09A05.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx
new file mode 100644
index 0000000..a8b9922
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.11F39B5088DAF83B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx
new file mode 100644
index 0000000..4b099ce
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.1716B6E241A65039.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx
new file mode 100644
index 0000000..a29ca27
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.1860F86AECDD92E5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx
new file mode 100644
index 0000000..e4d00de
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.23466E5DB4FBF66A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx
new file mode 100644
index 0000000..adc7ca4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.2B69AA579439D479.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx
new file mode 100644
index 0000000..ea4667c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.2EEB0829E05FF996.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx
new file mode 100644
index 0000000..dc2c311
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.3961AA4E23DD6D13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx
new file mode 100644
index 0000000..8b5bd62
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.4ABD461D43902A89.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx
new file mode 100644
index 0000000..f675e5e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.5162D438F0FF6C90.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx
new file mode 100644
index 0000000..606dafc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.65263F13680F01C8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx
new file mode 100644
index 0000000..1db6ed8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.984296D15D1B622D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx
new file mode 100644
index 0000000..2770607
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.B607754CF334FA78.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx
new file mode 100644
index 0000000..d3452ab
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.B88824D17D38547B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx
new file mode 100644
index 0000000..3822afc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.BD2EE4B3E20606C4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx
new file mode 100644
index 0000000..b5a39e2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.E4E99FCD812AC809.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx
new file mode 100644
index 0000000..9f2baf6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.c.EDA051FB5CBEAAA1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx
new file mode 100644
index 0000000..cb2b0f9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.087BF9BA3B918D26.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx
new file mode 100644
index 0000000..a20dd40
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.21387157C5ACFEDA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx
new file mode 100644
index 0000000..1477e97
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.23028EBFAAC71FCE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx
new file mode 100644
index 0000000..76fadbd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.44C27F557CE748F3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx
new file mode 100644
index 0000000..ef7a74e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.4792E8C23D7F2D6B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx
new file mode 100644
index 0000000..9088510
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.4BC10DC13760BC1E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx
new file mode 100644
index 0000000..c9bf27d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.60AFED4CF936FD94.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx
new file mode 100644
index 0000000..f22c5a9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.6697271A315EBE9F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx
new file mode 100644
index 0000000..27b9476
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.8168288B29F6C156.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx
new file mode 100644
index 0000000..b6661a9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.85668F0E42D09196.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx
new file mode 100644
index 0000000..8456078
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.86B1CB9E61D247A4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx
new file mode 100644
index 0000000..8583ca9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.88B085F3AE59CD82.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx
new file mode 100644
index 0000000..c3b785b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.8F32D0E0B316D1D9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx
new file mode 100644
index 0000000..79d79cf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.A29F1EA97330FD25.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx
new file mode 100644
index 0000000..76fe16b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.BB02D3C22988460C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx
new file mode 100644
index 0000000..fea73b2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.CE261400DB631E63.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx
new file mode 100644
index 0000000..1dced09
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.CFD2FF0E4A7B8D4C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx
new file mode 100644
index 0000000..eaef55a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.E198FB89C5273208.idx differ
diff --git a/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx b/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx
new file mode 100644
index 0000000..7835f83
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/logic_ctrl.h.E9B7022C1CF2ECE2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx b/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx
new file mode 100644
index 0000000..1e64e03
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.004E5857DD56D833.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx b/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx
new file mode 100644
index 0000000..2637e5d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.304961BB2513AD63.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.31350E8DF1E363AB.idx b/Source/.cache/.cache/clangd/index/macro.h.31350E8DF1E363AB.idx
new file mode 100644
index 0000000..6571e4d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.31350E8DF1E363AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx b/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx
new file mode 100644
index 0000000..41570af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.31E2C35D8B385D14.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx b/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx
new file mode 100644
index 0000000..6386a92
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.4044664962E8DBB4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx b/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx
new file mode 100644
index 0000000..27e1416
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.449569339D1E31E4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx b/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx
new file mode 100644
index 0000000..33c7230
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.65425DB2196D5D53.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx b/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx
new file mode 100644
index 0000000..65c0cd9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.6B4240CAF4C062AB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx b/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx
new file mode 100644
index 0000000..308c867
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.6C8C9FE9F7C6418E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx b/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx
new file mode 100644
index 0000000..eb9750a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.6F3B59014F29F05A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx b/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx
new file mode 100644
index 0000000..4c4ff72
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.87E8BEAD0E967A86.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx b/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx
new file mode 100644
index 0000000..2edada7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.9056C77331ACB402.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx b/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx
new file mode 100644
index 0000000..29db462
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.92D106D476029E46.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx b/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx
new file mode 100644
index 0000000..c1d1d93
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.9BFB4954FC633BE8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx b/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx
new file mode 100644
index 0000000..4270262
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.A72807B7E51E7981.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx b/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx
new file mode 100644
index 0000000..1737b43
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.A80E80BF7A571CDD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx b/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx
new file mode 100644
index 0000000..b352712
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.C2636C6182FCB0CC.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx b/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx
new file mode 100644
index 0000000..e045187
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.CAD527B510F4E9E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx b/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx
new file mode 100644
index 0000000..40e6c4d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.F06AB8EEA16F1BE8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx b/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx
new file mode 100644
index 0000000..141a849
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/macro.h.F204C258301C0E5E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx b/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx
new file mode 100644
index 0000000..7f620aa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.07273B4E45B9BABD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx b/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx
new file mode 100644
index 0000000..5a2114f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.1111B6AFB282C0AF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.1E9F33B375F0CA60.idx b/Source/.cache/.cache/clangd/index/main.c.1E9F33B375F0CA60.idx
new file mode 100644
index 0000000..616c53b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.1E9F33B375F0CA60.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx b/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx
new file mode 100644
index 0000000..a3a6734
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.325417170E0582CD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx b/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx
new file mode 100644
index 0000000..2dbe7cb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.3B45C3D495F12CEF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx b/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx
new file mode 100644
index 0000000..00b890f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.41DE9E0D2389A8F4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx b/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx
new file mode 100644
index 0000000..b046e7b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.481808B27F16F481.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx b/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx
new file mode 100644
index 0000000..ee73111
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.61D71160A4B82BE2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx b/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx
new file mode 100644
index 0000000..c4a5c21
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.660E8E5D1FBBB7CE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx b/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx
new file mode 100644
index 0000000..3771bec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.7030979A17FA45F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx b/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx
new file mode 100644
index 0000000..43e803a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.81EF166862839FE6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx b/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx
new file mode 100644
index 0000000..16f13e6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.8AC3D5662245BFEE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx b/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx
new file mode 100644
index 0000000..42e53c7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.A01FB229C3E05DE2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx b/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx
new file mode 100644
index 0000000..b446d93
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.ADFE8D64A1CC0623.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx b/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx
new file mode 100644
index 0000000..3e5d80f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.B3C4777A0FD610E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx b/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx
new file mode 100644
index 0000000..d9318c2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.C113BBBA14E28738.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx b/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx
new file mode 100644
index 0000000..bdc2b86
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.DB283774F0EE8FBD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx b/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx
new file mode 100644
index 0000000..6ee4e86
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.DEA561F88823A03F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx b/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx
new file mode 100644
index 0000000..11857b2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.E47F366C61575876.idx differ
diff --git a/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx b/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx
new file mode 100644
index 0000000..44b7204
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/main.c.E885BFE25BCC51F5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx
new file mode 100644
index 0000000..24f892b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.01F81AB9E4F70F7B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx
new file mode 100644
index 0000000..e071fa7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.03A3E53D0E1AF175.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.057E11727497810C.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.057E11727497810C.idx
new file mode 100644
index 0000000..1ab8890
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.057E11727497810C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx
new file mode 100644
index 0000000..9c6ecfb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.05E0787F8922D159.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx
new file mode 100644
index 0000000..8cdd281
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.1DF1A4A21D05EF47.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx
new file mode 100644
index 0000000..bf938fe
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.271053046F23AC8F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx
new file mode 100644
index 0000000..cb8f6cd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.3091B3E25B8251E5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx
new file mode 100644
index 0000000..8f7ebe2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.3B0CDC4E2CAD60CD.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx
new file mode 100644
index 0000000..f235f62
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.462131716461077D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx
new file mode 100644
index 0000000..c7be4c2
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.6229C2858DDE8E2B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx
new file mode 100644
index 0000000..ed3c3b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.6A43BF8E659DF200.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx
new file mode 100644
index 0000000..18c6e39
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.9462D790D89F8BF7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx
new file mode 100644
index 0000000..a770f61
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.957A6EF47AA221B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx
new file mode 100644
index 0000000..4af4e09
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.AE3A3B8269D3294E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx
new file mode 100644
index 0000000..d6ad1bc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.B8F58434CB5F9AD8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx
new file mode 100644
index 0000000..6e85d6a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.B9BC5A84C4785642.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx
new file mode 100644
index 0000000..d6d5a68
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.BFEED26C654F0A4E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx
new file mode 100644
index 0000000..35092d5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.F94EA0E168C7AAAA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx
new file mode 100644
index 0000000..2ded21a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.F9ECAE7DCE707C46.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx b/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx
new file mode 100644
index 0000000..008f236
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_initial.c.FE41D8C30E1294ED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx
new file mode 100644
index 0000000..5dfe76c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.00FB2FCA0BB5CE79.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx
new file mode 100644
index 0000000..9c66c50
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.02FA989B3DF64EF2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx
new file mode 100644
index 0000000..419c682
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.29D47EDCB97DB705.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx
new file mode 100644
index 0000000..2a40d3c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.3B705D7DA1B2FA90.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx
new file mode 100644
index 0000000..b110424
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.44F97E48D63E6329.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx
new file mode 100644
index 0000000..57742d4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.46F5EE7174E44002.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx
new file mode 100644
index 0000000..98cd577
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.490E9EAAA96BE146.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx
new file mode 100644
index 0000000..41519d4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.50222A8ADF44C753.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx
new file mode 100644
index 0000000..799408f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.5F42833FC47DD66F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx
new file mode 100644
index 0000000..e7f39a5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.77310BB7D89D854D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.876F2525013D5D2A.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.876F2525013D5D2A.idx
new file mode 100644
index 0000000..a61ec66
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.876F2525013D5D2A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx
new file mode 100644
index 0000000..d89d0c1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.90CAEFCB143A8F00.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx
new file mode 100644
index 0000000..796c2e1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.9D7125C052061C58.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx
new file mode 100644
index 0000000..474b0c8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.A8158DD4739FAA9D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx
new file mode 100644
index 0000000..4995d80
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B17DAB009B1A7475.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx
new file mode 100644
index 0000000..b829400
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.B67C5C0423E1983C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx
new file mode 100644
index 0000000..ea4b5c5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CCC0F97094479B1A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx
new file mode 100644
index 0000000..9864b5f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.CD7868A455C55890.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx
new file mode 100644
index 0000000..ceb128c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8350BD2C16E04B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx
new file mode 100644
index 0000000..95f0087
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mcu_interrupt.c.D8402B9C52596AD2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx b/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx
new file mode 100644
index 0000000..a4d3a88
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.02283420A19CD215.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx b/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx
new file mode 100644
index 0000000..102923a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.098CA4B15309341E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx b/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx
new file mode 100644
index 0000000..0db8bca
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.439D107A49D46A44.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx b/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx
new file mode 100644
index 0000000..71d0f2e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.49414D3CD5369705.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx b/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx
new file mode 100644
index 0000000..c208bf6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.4C584DCC3D3D3527.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx b/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx
new file mode 100644
index 0000000..de46480
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.4CEE21836D6F59BB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx b/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx
new file mode 100644
index 0000000..94ea2f5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.69F040FC8F251042.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx b/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx
new file mode 100644
index 0000000..6386bbd
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.84D8640DA56F74E7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx b/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx
new file mode 100644
index 0000000..39c80ec
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.8A924AA0F2E6F8C3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx b/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx
new file mode 100644
index 0000000..0bbd448
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.8E9BD8003CFF6981.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx b/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx
new file mode 100644
index 0000000..5e9b63c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.94C8FD22DD8E77E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx b/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx
new file mode 100644
index 0000000..6f34848
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.9F5063E52C924F7E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx b/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx
new file mode 100644
index 0000000..3b797e4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.A42CF3B37E65A88B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx b/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx
new file mode 100644
index 0000000..2996476
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.B0CAAF3730ED9B82.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx b/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx
new file mode 100644
index 0000000..d6a22c3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.C1B2130AF14ED4AF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.CCB18B79C16189F4.idx b/Source/.cache/.cache/clangd/index/mem_init.c.CCB18B79C16189F4.idx
new file mode 100644
index 0000000..5afe838
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.CCB18B79C16189F4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx b/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx
new file mode 100644
index 0000000..40e4fbb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.DDDF73223E65FEED.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx b/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx
new file mode 100644
index 0000000..e4baa0d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.EEB0F19293BD3CD0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx b/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx
new file mode 100644
index 0000000..6c42632
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.F3916BE6003B54B4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx b/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx
new file mode 100644
index 0000000..72e83c6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/mem_init.c.FD74EE0A619FCBA9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx b/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx
new file mode 100644
index 0000000..023906b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.026785A8D2035E2E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx b/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx
new file mode 100644
index 0000000..c2bc68a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.05457C3C942AAB89.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx b/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx
new file mode 100644
index 0000000..98f1227
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.05B57F7C8153A5C1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx b/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx
new file mode 100644
index 0000000..96bbb58
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.2B6E8233DD622BC8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx b/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx
new file mode 100644
index 0000000..1f51e2e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.2BEFD8AC8A6B4367.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx b/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx
new file mode 100644
index 0000000..67801cf
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.2DC7F0AFE797F378.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx b/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx
new file mode 100644
index 0000000..32eafa8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.565C4C7F4EB86681.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx b/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx
new file mode 100644
index 0000000..446ff5a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.63A271163001C25C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx b/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx
new file mode 100644
index 0000000..e0e1ba5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.74CB6B1AA0FF9948.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx b/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx
new file mode 100644
index 0000000..44d849e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.833243B70D2426FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx b/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx
new file mode 100644
index 0000000..7695239
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.8D1098B9B78BBD90.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx b/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx
new file mode 100644
index 0000000..087840b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.973ACB9D3728FFA0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx b/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx
new file mode 100644
index 0000000..d98cf59
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.C39AEC07FF483C8B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx b/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx
new file mode 100644
index 0000000..84d509b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.CA0F0A7E13F673B1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx b/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx
new file mode 100644
index 0000000..d5b701b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.E407AD24825FEFEE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx b/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx
new file mode 100644
index 0000000..1ced24e
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.E581890D4698E220.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx b/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx
new file mode 100644
index 0000000..3a57f0f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.E9A9B1A67FFABC33.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx b/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx
new file mode 100644
index 0000000..af8754b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.F6EF7BA369285CEB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx b/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx
new file mode 100644
index 0000000..f0917ff
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.c.F7EFB7BB1125CC51.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx b/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx
new file mode 100644
index 0000000..9589f99
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.183333D2B126037B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx b/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx
new file mode 100644
index 0000000..c9a98b4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.2F40CBBD0C642E5F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx b/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx
new file mode 100644
index 0000000..a57d4b1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.303C7A3F73F37F41.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx b/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx
new file mode 100644
index 0000000..0cdaec6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.3376AED3014840DB.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx b/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx
new file mode 100644
index 0000000..d261a34
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.3FE99C0FB5E07642.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx b/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx
new file mode 100644
index 0000000..9c330ed
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.409F74E75AD235B8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx b/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx
new file mode 100644
index 0000000..ae1cc8f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.44019FD7DAF62C64.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx b/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx
new file mode 100644
index 0000000..3a121a7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.4F913A760DB685E2.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx b/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx
new file mode 100644
index 0000000..3411a86
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.566A6E1C459D9C3F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx b/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx
new file mode 100644
index 0000000..e04a152
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.5B62497A1604AA69.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx b/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx
new file mode 100644
index 0000000..f2a5249
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.7512BE00DA07F840.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx b/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx
new file mode 100644
index 0000000..caa3e61
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.788ABC91A102E55F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx b/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx
new file mode 100644
index 0000000..7b344fc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.8A62775C011BFFF5.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx b/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx
new file mode 100644
index 0000000..63e8508
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.A1617ACE8794E5B7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx b/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx
new file mode 100644
index 0000000..61bce69
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.A666FEF7E36A825B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx b/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx
new file mode 100644
index 0000000..516ed79
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.D21737EA37763409.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx b/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx
new file mode 100644
index 0000000..5ad477d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.D4A55C5EA3F6578E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx b/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx
new file mode 100644
index 0000000..bcb7eb1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.DD1F92969F707A46.idx differ
diff --git a/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx b/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx
new file mode 100644
index 0000000..1467455
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/rc522.h.F8F7210DB9C2BB0D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx b/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx
new file mode 100644
index 0000000..7246716
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stdarg.h.3C5CA7E8DDFB3002.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx b/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx
new file mode 100644
index 0000000..fe1a570
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stdarg.h.C3C728AC8175E9B8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx b/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx
new file mode 100644
index 0000000..06c4408
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.017B5135BEFC0052.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx b/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx
new file mode 100644
index 0000000..ce86ad5
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.3CECDFBE12B994D6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx b/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx
new file mode 100644
index 0000000..0c8f0af
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.6F6001003806DD68.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx b/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx
new file mode 100644
index 0000000..28f0331
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.70D26B4A16BFEB22.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx b/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx
new file mode 100644
index 0000000..d662806
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.BDC4C8A012FAF406.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx b/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx
new file mode 100644
index 0000000..e82138a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stddef.h.C93A39EBE6BF755F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx b/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx
new file mode 100644
index 0000000..28d5bcc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stdio.h.C495D5AAA9E50A2A.idx differ
diff --git a/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx b/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx
new file mode 100644
index 0000000..bef02f7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/stdio.h.D860C5E71BED5143.idx differ
diff --git a/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx b/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx
new file mode 100644
index 0000000..99b902d
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/string.h.553257B40768A772.idx differ
diff --git a/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx b/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx
new file mode 100644
index 0000000..f5ea380
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/string.h.9818DBD7E499286F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx b/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx
new file mode 100644
index 0000000..df76cc1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.01AC60CE4B7F18EF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx b/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx
new file mode 100644
index 0000000..8ddb1f6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.048A6E06EBB65C65.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx b/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx
new file mode 100644
index 0000000..0377322
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.0B3117737820566B.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx b/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx
new file mode 100644
index 0000000..c444c16
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.1442EDD0F97D94C1.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx b/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx
new file mode 100644
index 0000000..e5b4cfb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.1C467F1B856CAA2C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.3F2BDF72D93368F6.idx b/Source/.cache/.cache/clangd/index/uart.c.3F2BDF72D93368F6.idx
new file mode 100644
index 0000000..a1910fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.3F2BDF72D93368F6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx b/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx
new file mode 100644
index 0000000..1b0d0dc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.3FED1C48F9B53156.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx b/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx
new file mode 100644
index 0000000..2ecf333
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.46F621C41BDED688.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx b/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx
new file mode 100644
index 0000000..060e8e1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.5144C269CE2D69B0.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx b/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx
new file mode 100644
index 0000000..7d357c1
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.52193DFB84FB59C7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx b/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx
new file mode 100644
index 0000000..a2f859c
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.57D46C0621EBEF5D.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx b/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx
new file mode 100644
index 0000000..425b792
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.7DF2F429AC8AC73C.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx b/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx
new file mode 100644
index 0000000..b7320c0
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.8D22CA835A6391F8.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx b/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx
new file mode 100644
index 0000000..47dd116
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.A63ABDECFF70CB43.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx b/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx
new file mode 100644
index 0000000..ef06b0b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.B48F050D92371993.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx b/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx
new file mode 100644
index 0000000..a3fc712
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.BD55C2FFABF8B966.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx b/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx
new file mode 100644
index 0000000..e332ec6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.E223333820EA9846.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx b/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx
new file mode 100644
index 0000000..556187f
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.ED465F2121CE3586.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx b/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx
new file mode 100644
index 0000000..ff0d758
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.F640383CC7B8AAC7.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx b/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx
new file mode 100644
index 0000000..f573d13
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.c.F87029FEB925590E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx b/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx
new file mode 100644
index 0000000..9ca8bfb
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.0EC63CE6823C9942.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx b/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx
new file mode 100644
index 0000000..ae59ca8
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.1F3CAD6B118420CA.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx b/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx
new file mode 100644
index 0000000..5a071fa
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.213247103D34BEA3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx b/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx
new file mode 100644
index 0000000..e1d1480
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.26AE9F321541DB13.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx b/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx
new file mode 100644
index 0000000..6c2db66
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.406DC35DB8B57F50.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx b/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx
new file mode 100644
index 0000000..1ed23e7
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.4339471157F0BD8E.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx b/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx
new file mode 100644
index 0000000..87bf880
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.486448BCCD0AE6FE.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx b/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx
new file mode 100644
index 0000000..d1c524b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.4B2B3E2B13D96A33.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx b/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx
new file mode 100644
index 0000000..599eb60
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.51A81A8F150A8BF4.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx b/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx
new file mode 100644
index 0000000..9fc2213
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.56112560B2F55BB3.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx b/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx
new file mode 100644
index 0000000..ac8d2b9
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.648AAA945E178646.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx b/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx
new file mode 100644
index 0000000..abd62a6
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.8853B0AF2387FE05.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx b/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx
new file mode 100644
index 0000000..fb7eea3
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.8E62B44DCB4BA298.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx b/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx
new file mode 100644
index 0000000..ac6dc6a
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.958772DFFE5F1386.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx b/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx
new file mode 100644
index 0000000..1e2e213
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.9CCDBF79DD64A4E9.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx b/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx
new file mode 100644
index 0000000..2fd80fc
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.9E4BC5689D4B07BF.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx b/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx
new file mode 100644
index 0000000..4093bff
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.9F1E5143FF835A63.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx b/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx
new file mode 100644
index 0000000..ddaa519
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.A562689E84E0BFC6.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx b/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx
new file mode 100644
index 0000000..6530a3b
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.F323996E07B1BF9F.idx differ
diff --git a/Source/.cache/.cache/clangd/index/uart.h.FC7BE86FEF74740C.idx b/Source/.cache/.cache/clangd/index/uart.h.FC7BE86FEF74740C.idx
new file mode 100644
index 0000000..e6c9dc4
Binary files /dev/null and b/Source/.cache/.cache/clangd/index/uart.h.FC7BE86FEF74740C.idx differ
diff --git a/Source/.cache/compile_commands.json b/Source/.cache/compile_commands.json
new file mode 100644
index 0000000..f5d4ef7
--- /dev/null
+++ b/Source/.cache/compile_commands.json
@@ -0,0 +1,125 @@
+[{
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\crt0.S",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM", "-ISYSTEM/inc", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CKCPU_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\crt0.S", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\crt0.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\mem_init.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\mem_init.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\mem_init.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\apt32f102_iostring.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\apt32f102_iostring.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\arch\\apt32f102_iostring.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_syscon.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_syscon.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_syscon.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpio.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpio.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpio.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_lpt.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_lpt.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_lpt.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_crc.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_crc.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_crc.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_wwdt.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_wwdt.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_wwdt.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_countera.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_countera.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_countera.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_et.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_et.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_et.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_bt.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_bt.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_bt.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpt.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpt.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_gpt.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_sio.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_sio.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_sio.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_spi.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_spi.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_spi.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_uart.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_uart.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_uart.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_i2c.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_i2c.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_i2c.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ept.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ept.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ept.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_rtc.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_rtc.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_rtc.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_adc.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_adc.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_adc.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ifc.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ifc.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_ifc.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_tkey_parameter.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_tkey_parameter.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_tkey_parameter.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_coret.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_coret.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\FWlib\\apt32f102_coret.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\main.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\main.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\main.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_initial.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_initial.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_initial.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_interrupt.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_interrupt.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\mcu_interrupt.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102_ck801.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102_ck801.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\drivers\\apt32f102_ck801.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\uart.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\uart.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\uart.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\dip_switch.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\dip_switch.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\dip_switch.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\control_rly.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\control_rly.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\control_rly.o"]
+ }, {
+ "file": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\eeprom.c",
+ "directory": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source",
+ "arguments": ["csky-elfabiv2-gcc", "-nostdlibinc", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "-isystem", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include", "-ID:/app/CDK/CSKY/csi/csi_core/csi_cdk/", "-ID:/app/CDK/CSKY/csi/csi_core/include/", "-ID:/app/CDK/CSKY/csi/csi_driver/include/", "-I.", "-ISYSTEM/inc", "-Iinclude", "-include", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache\\macro.h", "-DCONFIG_CSKY_MMU=0", "-U__CSKY_ABIV2__", "-c", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\eeprom.c", "-o", "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\SYSTEM\\eeprom.o"]
+ }]
\ No newline at end of file
diff --git a/Source/.cache/macro.h b/Source/.cache/macro.h
new file mode 100644
index 0000000..1c2239e
--- /dev/null
+++ b/Source/.cache/macro.h
@@ -0,0 +1,200 @@
+#define __HQ_FBIT__ 15
+#define __SFRACT_IBIT__ 0
+#define __FLT_MIN__ 1.1754943508222875e-38F
+#define __GCC_IEC_559_COMPLEX 0
+#define __UFRACT_MAX__ 0XFFFFP-16UR
+#define __DQ_FBIT__ 63
+#define __ULFRACT_FBIT__ 32
+#define __SACCUM_EPSILON__ 0x1P-7HK
+#define __CK801__ 1
+#define __USQ_IBIT__ 0
+#define __ACCUM_FBIT__ 15
+#define __WINT_MAX__ 0xffffffffU
+#define __USFRACT_FBIT__ 8
+#define __WCHAR_MAX__ 0x7fffffffL
+#define __LACCUM_IBIT__ 32
+#define __DBL_DENORM_MIN__ ((double)4.9406564584124654e-324L)
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 1
+#define __GCC_IEC_559 0
+#define __csky_soft_float__ 1
+#define __FLT_EVAL_METHOD__ 0
+#define __LLACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LLK
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
+#define __FRACT_FBIT__ 15
+#define __UACCUM_FBIT__ 16
+#define __LFRACT_IBIT__ 0
+#define __LFRACT_MAX__ 0X7FFFFFFFP-31LR
+#define __UINT_FAST8_MAX__ 0xffffffffU
+#define __cskyabi__ 2
+#define __SA_FBIT__ 15
+#define __LDBL_MAX__ 1.7976931348623157e+308L
+#define __FRACT_MAX__ 0X7FFFP-15R
+#define __cskyLE__ 1
+#define __UFRACT_FBIT__ 16
+#define __UFRACT_MIN__ 0.0UR
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 1
+#define __LLFRACT_EPSILON__ 0x1P-63LLR
+#define __CHAR_UNSIGNED__ 1
+#define __UINT32_MAX__ 0xffffffffUL
+#define __ULFRACT_MAX__ 0XFFFFFFFFP-32ULR
+#define __TA_IBIT__ 64
+#define __LDBL_MAX_EXP__ 1024
+#define __WINT_MIN__ 0U
+#define __CSKY_REQUIRED_SCANF__ 1
+#define __ULLFRACT_MIN__ 0.0ULLR
+#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 1
+#define __LLACCUM_MIN__ (-0X1P31LLK-0X1P31LLK)
+#define __USACCUM_IBIT__ 8
+#define __LFRACT_MIN__ (-0.5LR-0.5LR)
+#define __HA_IBIT__ 8
+#define __TQ_IBIT__ 0
+#define __FLT_EPSILON__ 1.1920928955078125e-7F
+#define __USFRACT_IBIT__ 0
+#define __LDBL_MIN__ 2.2250738585072014e-308L
+#define __FRACT_MIN__ (-0.5R-0.5R)
+#define __DA_IBIT__ 32
+#define __INT32_MAX__ 0x7fffffffL
+#define __UQQ_FBIT__ 8
+#define __UACCUM_MAX__ 0XFFFFFFFFP-16UK
+#define __DECIMAL_DIG__ 17
+#define __LFRACT_EPSILON__ 0x1P-31LR
+#define __ULFRACT_MIN__ 0.0ULR
+#define __ULACCUM_IBIT__ 32
+#define __UACCUM_EPSILON__ 0x1P-16UK
+#define __GNUC__ 6
+#define __ULLACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULLK
+#define __HQ_IBIT__ 0
+#define __SIZEOF_LONG_DOUBLE__ 8
+#define __BIGGEST_ALIGNMENT__ 4
+#define __DQ_IBIT__ 0
+#define __DBL_MAX__ ((double)1.7976931348623157e+308L)
+#define __ULFRACT_IBIT__ 0
+#define __cskyle__ 1
+#define __ACCUM_IBIT__ 16
+#define __LACCUM_MAX__ 0X7FFFFFFFFFFFFFFFP-31LK
+#define __INT_FAST16_TYPE__ int
+#define __INT_LEAST32_MAX__ 0x7fffffffL
+#define __USING_SJLJ_EXCEPTIONS__ 1
+#define __ACCUM_MAX__ 0X7FFFFFFFP-15K
+#define __USACCUM_EPSILON__ 0x1P-8UHK
+#define __SFRACT_MAX__ 0X7FP-7HR
+#define __FRACT_IBIT__ 0
+#define __UACCUM_MIN__ 0.0UK
+#define __CSKY_SOFT_FLOAT__ 1
+#define __UACCUM_IBIT__ 16
+#define __ULACCUM_MAX__ 0XFFFFFFFFFFFFFFFFP-32ULK
+#define __SIZEOF_WINT_T__ 4
+#define __SA_IBIT__ 16
+#define __ULLACCUM_MIN__ 0.0ULLK
+#define __GXX_ABI_VERSION 1010
+#define __UTA_FBIT__ 64
+#define __USFRACT_MAX__ 0XFFP-8UHR
+#define __UFRACT_IBIT__ 0
+#define __DBL_MIN__ ((double)2.2250738585072014e-308L)
+#define __LACCUM_MIN__ (-0X1P31LK-0X1P31LK)
+#define __ULLACCUM_FBIT__ 32
+#define __ULLFRACT_EPSILON__ 0x1P-64ULLR
+#define __ACCUM_MIN__ (-0X1P15K-0X1P15K)
+#define __SQ_IBIT__ 0
+#define __UHA_FBIT__ 8
+#define __SFRACT_MIN__ (-0.5HR-0.5HR)
+#define __UTQ_FBIT__ 128
+#define __VERSION__ "6.3.0"
+#define __ULLFRACT_FBIT__ 64
+#define __CSKYABIV2__ 1
+#define __ckcore__ 2
+#define __FRACT_EPSILON__ 0x1P-15R
+#define __ULACCUM_MIN__ 0.0ULK
+#define __UDA_FBIT__ 32
+#define __LLACCUM_EPSILON__ 0x1P-31LLK
+#define __GCC_ATOMIC_INT_LOCK_FREE 1
+#define __CSKYABI__ 2
+#define __CSKY_REQUIRED_PRINTF__ 1
+#define __USFRACT_MIN__ 0.0UHR
+#define __UQQ_IBIT__ 0
+#define __CSKYLE__ 1
+#define __INT32_C(c) c ## L
+#define __UHQ_FBIT__ 16
+#define __LLACCUM_FBIT__ 31
+#define __UDQ_FBIT__ 64
+#define __ELF__ 1
+#define __ULFRACT_EPSILON__ 0x1P-32ULR
+#define __LLFRACT_FBIT__ 63
+#define __LDBL_EPSILON__ 2.2204460492503131e-16L
+#define __SACCUM_MAX__ 0X7FFFP-7HK
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
+#define __LACCUM_EPSILON__ 0x1P-31LK
+#define __INT_FAST16_MAX__ 0x7fffffff
+#define __USACCUM_MAX__ 0XFFFFP-8UHK
+#define __SFRACT_EPSILON__ 0x1P-7HR
+#define __USA_FBIT__ 16
+#define __UINT_FAST16_TYPE__ unsigned int
+#define __csky_required_scanf__ 1
+#define __SACCUM_FBIT__ 7
+#define __GCC_ATOMIC_LONG_LOCK_FREE 1
+#define __SQ_FBIT__ 31
+#define __INT_FAST8_MAX__ 0x7fffffff
+#define __QQ_FBIT__ 7
+#define __UTA_IBIT__ 64
+#define __LDBL_MANT_DIG__ 53
+#define __SFRACT_FBIT__ 7
+#define __SACCUM_MIN__ (-0X1P7HK-0X1P7HK)
+#define __CKCORE__ 2
+#define __WCHAR_TYPE__ long int
+#define __USQ_FBIT__ 32
+#define __ULLACCUM_IBIT__ 32
+#define __LACCUM_FBIT__ 31
+#define __USACCUM_MIN__ 0.0UHK
+#define __UHA_IBIT__ 8
+#define __UTQ_IBIT__ 0
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
+#define __WINT_TYPE__ unsigned int
+#define __ULLFRACT_IBIT__ 0
+#define __LDBL_MIN_EXP__ (-1021)
+#define __UDA_IBIT__ 32
+#define __ck801__ 1
+#define __LFRACT_FBIT__ 31
+#define __LDBL_MAX_10_EXP__ 308
+#define __DBL_EPSILON__ ((double)2.2204460492503131e-16L)
+#define __INT_LEAST32_TYPE__ long int
+#define __SIZEOF_WCHAR_T__ 4
+#define __LLFRACT_MAX__ 0X7FFFFFFFFFFFFFFFP-63LLR
+#define __TQ_FBIT__ 127
+#define __INT_FAST8_TYPE__ int
+#define __ULLACCUM_EPSILON__ 0x1P-32ULLK
+#define __UHQ_IBIT__ 0
+#define __LLACCUM_IBIT__ 32
+#define __TA_FBIT__ 63
+#define __UDQ_IBIT__ 0
+#define __ckcoreLE__ 1
+#define __ACCUM_EPSILON__ 0x1P-15K
+#define __FLT_DENORM_MIN__ 1.4012984643248171e-45F
+#define __LLFRACT_IBIT__ 0
+#define __FLT_MAX__ 3.4028234663852886e+38F
+#define __USACCUM_FBIT__ 8
+#define __INT32_TYPE__ long int
+#define __UFRACT_EPSILON__ 0x1P-16UR
+#define __GNUC_MINOR__ 3
+#define __HA_FBIT__ 7
+#define __LDBL_DENORM_MIN__ 4.9406564584124654e-324L
+#define __csky__ 2
+#define __LLFRACT_MIN__ (-0.5LLR-0.5LLR)
+#define __DA_FBIT__ 31
+#define __UINT32_TYPE__ long unsigned int
+#define __USA_IBIT__ 16
+#define __LDBL_MIN_10_EXP__ (-307)
+#define __csky_required_printf__ 1
+#define __cskyabiv2__ 1
+#define __ULACCUM_EPSILON__ 0x1P-32ULK
+#define __SACCUM_IBIT__ 8
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 1
+#define __LDBL_DIG__ 15
+#define __UINT_FAST16_MAX__ 0xffffffffU
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 1
+#define __ULLFRACT_MAX__ 0XFFFFFFFFFFFFFFFFP-64ULLR
+#define __UINT_FAST8_TYPE__ unsigned int
+#define __USFRACT_EPSILON__ 0x1P-8UHR
+#define __ULACCUM_FBIT__ 32
+#define __QQ_IBIT__ 0
+#define __CSKY__ 2
diff --git a/Source/.cache/project.conf b/Source/.cache/project.conf
new file mode 100644
index 0000000..676d9fc
--- /dev/null
+++ b/Source/.cache/project.conf
@@ -0,0 +1,6 @@
+{
+ "device": " -mcpu=ck801 ",
+ "toolchain": "D:\\app\\CDKRepo\\Toolchain/CKV2ElfMinilib/V3.10.29/R/",
+ "toolchain_includes": ["d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\csky-elfabiv2", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include\\c++\\6.3.0\\backward", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\lib\\gcc\\csky-elfabiv2\\6.3.0\\include-fixed", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\sys-include", "d:\\app\\CDKRepo\\toolchain\\ckv2elfminilib\\v3.10.29\\R\\csky-elfabiv2\\include"],
+ "application": "G:\\WorkSpace_YYW2\\10V485_TC_RLY\\TC_RLY_10V485\\TC_RLY_10V485_V02\\Source\\.cache/"
+}
\ No newline at end of file
diff --git a/Source/.cdk/Project.cdkws.jane b/Source/.cdk/Project.cdkws.jane
new file mode 100644
index 0000000..26bca8d
--- /dev/null
+++ b/Source/.cdk/Project.cdkws.jane
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Source/.cdk/Project.session b/Source/.cdk/Project.session
new file mode 100644
index 0000000..3d467df
--- /dev/null
+++ b/Source/.cdk/Project.session
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/.cdk/compilation.db b/Source/.cdk/compilation.db
new file mode 100644
index 0000000..ffe8a39
Binary files /dev/null and b/Source/.cdk/compilation.db differ
diff --git a/Source/.cdk/refactoring.db b/Source/.cdk/refactoring.db
new file mode 100644
index 0000000..9da8d1e
Binary files /dev/null and b/Source/.cdk/refactoring.db differ
diff --git a/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf b/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf
new file mode 100644
index 0000000..1472d1d
Binary files /dev/null and b/Source/FLASHDOWN/APT32F102_FLASHDOWN.elf differ
diff --git a/Source/FWlib/apt32f102_adc.c b/Source/FWlib/apt32f102_adc.c
new file mode 100644
index 0000000..d59e771
--- /dev/null
+++ b/Source/FWlib/apt32f102_adc.c
@@ -0,0 +1,500 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_adc.c
+ * @author APT AE Team
+ * @version V1.13
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_adc.h"
+
+/* defines -------------------------------------------------------------------*/
+/* externs--------------------------------------------------------------------*/
+/*************************************************************/
+//ADC12 RESET VALUE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC12_RESET_VALUE(void)
+{
+ ADC0->ECR = ADC_ECR_RST; /**< ECR reset value */
+ ADC0->DCR = ADC_DCR_RST; /**< DCR reset value */
+ ADC0->PMSR = ADC_PMSR_RST; /**< PMSR reset value */
+ //ADC0->CR = ADC_CR_RST; /**< CR reset value */
+ ADC0->MR = ADC_MR_RST; /**< MR reset value */
+ ADC0->CSR = ADC_CSR_RST; /**< CSR reset value */
+ ADC0->SR = ADC_SR_RST; /**< SR reset value */
+ ADC0->IER = ADC_IER_RST; /**< IER reset value */
+ ADC0->IDR = ADC_IDR_RST; /**< IDR reset value */
+ ADC0->IMR = ADC_IMR_RST; /**< IMR reset value */
+ ADC0->SEQ[0]= ADC_SEQx_RST; /**< SEQ0 reset value */
+ ADC0->SEQ[1]= ADC_SEQx_RST; /**< SEQ1 reset value */
+ ADC0->SEQ[2]= ADC_SEQx_RST; /**< SEQ2 reset value */
+ ADC0->SEQ[3]= ADC_SEQx_RST; /**< SEQ3 reset value */
+ ADC0->SEQ[4]= ADC_SEQx_RST; /**< SEQ4 reset value */
+ ADC0->SEQ[5]= ADC_SEQx_RST; /**< SEQ5 reset value */
+ ADC0->SEQ[6]= ADC_SEQx_RST; /**< SEQ6 reset value */
+ ADC0->SEQ[7]= ADC_SEQx_RST; /**< SEQ7 reset value */
+ ADC0->SEQ[8]= ADC_SEQx_RST; /**< SEQ8 reset value */
+ ADC0->SEQ[9]= ADC_SEQx_RST; /**< SEQ9 reset value */
+ ADC0->SEQ[10]= ADC_SEQx_RST; /**< SEQ10 reset value */
+ ADC0->SEQ[11]= ADC_SEQx_RST; /**< SEQ11 reset value */
+ ADC0->SEQ[12]= ADC_SEQx_RST; /**< SEQ12 reset value */
+ ADC0->SEQ[13]= ADC_SEQx_RST; /**< SEQ13 reset value */
+ ADC0->SEQ[14]= ADC_SEQx_RST; /**< SEQ14 reset value */
+ ADC0->SEQ[15]= ADC_SEQx_RST; /**< SEQ15 reset value */
+ ADC0->DR[0] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[1] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[2] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[3] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[4] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[5] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[6] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[7] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[8] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[9] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[10] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[11] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[12] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[13] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[14] = ADC_DR_RST; /**< DR reset value */
+ ADC0->DR[15] = ADC_DR_RST; /**< DR reset value */
+ ADC0->CMP0 = ADC_CMP0_RST; /**< CMP1 reset value */
+ ADC0->CMP1 = ADC_CMP1_RST; /**< CMP2 reset value */
+}
+/*************************************************************/
+//ADC12 Control
+//EntryParameter:ADC12_Control_x
+//ADC12_Control_x:ADC12_SWRST , ADC12_ADCEN , ADC12_ADCDIS, ADC12_START, ADC12_STOP,ADC12_SWTRG
+//ReturnValue:NONE
+/*************************************************************/
+ //control:ADC enable/disable ,start/stop,swrst
+void ADC12_Control(ADC12_Control_TypeDef ADC12_Control_x )
+{
+ ADC0->CR |= ADC12_Control_x; //
+}
+/*************************************************************/
+//ADC12 Interrupt ENABLE AND DISABLE
+//EntryParameter:ADC_IMR_X,NewState
+//ADC_IMR_X:ADC12_EOC,ADC12_READY,ADC12_OVR,ADC12_CMP0H,ADC12_CMP0L,ADC12_CMP1H,ADC12_CMP1L,ADC12_SEQ_END0~15
+//NewState:ENABLE , DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+ //ADC12_EOC:End of conversion interrupt
+ //ADC12_READY:ADC ready for conversion interrupt
+ //ADC12_OVR:Overrun interrupt
+ //ADC12_CMP0H:Higher than ADC_CMP1 interrupt
+ //ADC12_CMP0L:Lower than ADC_CMP1 interrupt
+ //ADC12_CMP1H:Higher than ADC_CMP2 interrupt
+ //ADC12_CMP1L:Lower than ADC_CMP2 interrupt
+ //ADC12_SEQ_END0~15:SEQx convert end interrupt
+void ADC12_ConfigInterrupt_CMD( ADC12_IMR_TypeDef ADC_IMR_X , FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ ADC0->IER |= ADC_IMR_X; //SET
+ }
+ else
+ {
+ ADC0->IDR |= ADC_IMR_X; //CLR
+ }
+}
+/*************************************************************/
+//Read ADC12 Interrupt ENABLE status
+//EntryParameter:EnStatus_bit
+//EnStatus_bit:ADC12_EOC,ADC12_READY,ADC12_OVR,ADC12_CMP1H,ADC12_CMP1L,ADC12_CMP2H,ADC12_CMP2L,ADC12_SEQ_END0~15
+//ReturnValue:1=enabled/0=disabled
+/*************************************************************/
+uint8_t ADC12_Read_IntEnStatus(ADC12_IMR_TypeDef EnStatus_bit)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat= ADC0->IMR&EnStatus_bit;
+ if (dat == EnStatus_bit)
+ {
+ value = 1;
+ }
+ return value;
+}
+/*************************************************************/
+//ADC12 CLK ENABLE AND DISABLE
+//EntryParameter:ADC_CLK_CMD,NewState
+//ADC_CLK_CMD:ADC_CLK_CR,ADC_DEBUG_MODE
+//NewState:ENABLE , DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC12_CLK_CMD(ADC12_CLK_TypeDef ADC_CLK_CMD , FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ ADC0->ECR |= ADC_CLK_CMD; //ENABLE
+ while(!(ADC0->PMSR&ADC_CLK_CMD));
+ }
+ else
+ {
+ ADC0->DCR |= ADC_CLK_CMD; //DISABLE
+ while(ADC0->PMSR&ADC_CLK_CMD);
+ }
+}
+/*************************************************************/
+//ADC12 software reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC12_Software_Reset(void)
+{
+ ADC12_Control(ADC12_SWRST);
+}
+/*************************************************************/
+//ADC12 ENABLE
+//EntryParameter:NewState
+//NewState:ENABLE , DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC12_CMD(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ ADC12_Control(ADC12_ADCEN); //ADC12 ENABLE
+ while(!(ADC0->SR &ADC12_ADCENS));
+ }
+ else
+ {
+ ADC12_Control(ADC12_ADCDIS); //ADC12 DISABLE
+ while(ADC0->SR&ADC12_ADCENS);
+ }
+}
+/*************************************************************/
+//ADC12 READY wait
+//EntryParameter:NONE
+//ReturnValue:ADC12 READ FLAG
+/*************************************************************/
+void ADC12_ready_wait(void)
+{
+ while(!(ADC0->SR&ADC12_READY)); // Waiting for ADC0 Ready
+}
+/*************************************************************/
+//ADC12 End of conversion wait
+//EntryParameter:NONE
+//ReturnValue:ADC12 EOC
+/*************************************************************/
+void ADC12_EOC_wait(void)
+{
+ while(!(ADC0->SR & ADC12_EOC)); // EOC wait
+}
+/*************************************************************/
+//ADC12 End of conversion wait
+//EntryParameter:NONE
+//ReturnValue:ADC12 EOC
+/*************************************************************/
+void ADC12_SEQEND_wait(U8_T val)
+{
+ while(!(ADC0->SR & (0x01ul << (16+val)))); // EOC wait
+}
+/*************************************************************/
+//ADC12 Data Register output
+//EntryParameter:NONE
+//ReturnValue:ADC12 DR
+/*************************************************************/
+U16_T ADC12_DATA_OUPUT(U16_T Data_index )
+{
+ return(ADC0->DR[Data_index]);
+}
+/*************************************************************/
+//ADC12 Configure
+//EntryParameter:ADC12_BIT_SELECTED,ADC12_ConverMode,ADC12_DIV,NumConver
+//ADC12_BIT_SELECTED:ADC12_12BIT,ADC12_10BIT
+//ADC12_ConverMode:One_shot_mode,Continuous_mode
+//ADC12_PRI:0~15
+//adc12_SHR:0~255
+//ADC12_DIV:0~31
+//NumConver:Number of Conversions value=(1~12);
+//ReturnValue:NONE
+/*************************************************************/
+ //10BIT or 12BIT adc ;
+ //ADC12_BIT_SELECTED:ADC12_12BIT/ADC12_10BIT;
+ //ADC12_ConverMode:One_shot_mode/Continuous_mode;
+ //adc date output=last number of Conversions;
+void ADC12_Configure_Mode(ADC12_10bitor12bit_TypeDef ADC12_BIT_SELECTED , ADC12_ConverMode_TypeDef ADC12_ConverMode , U8_T ADC12_PRI, U8_T adc12_SHR , U8_T ADC12_DIV , U8_T NumConver )
+{
+ ADC0->MR=ADC12_DIV|((NumConver-1)<<10);
+ if(ADC12_ConverMode==One_shot_mode)
+ {
+ ADC0->MR&=~CONTCV; //one short mode
+ while(ADC0->SR&ADC12_CTCVS);
+ }
+ else if(ADC12_ConverMode==Continuous_mode)
+ {
+ ADC0->MR|=CONTCV; //Continuous mode
+ while(!(ADC0->SR&ADC12_CTCVS));
+ }
+ ADC12_CMD(ENABLE); //ADC0 enable
+ if(ADC12_BIT_SELECTED)
+ {
+ ADC0->CR|=ADC12_10BITor12BIT;
+ }
+ else
+ {
+ ADC0->CR&=~ADC12_10BITor12BIT;
+ }
+ //ADC0->CR|=ADC12_VREF_VDD | ADC12_FVR_DIS;
+ ADC0->PRI=ADC12_PRI;
+ ADC0->SHR=adc12_SHR; //adc Sampling & Holding cycles
+}
+/*************************************************************/
+//ADC12 VREF slection=VDD
+//EntryParameter:NONE
+//ReturnValue:None
+/*************************************************************/
+void ADC12_Configure_VREF_Selecte(ADC12_VREFP_VREFN_Selected_TypeDef ADC12_VREFP_X_VREFN_X )
+{
+ if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_VSS)
+ {
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x00<<6);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_VSS)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x01<<6);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_VSS)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x02<<6)|(0X01<<24)|(0X00<<25);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_VSS)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x03<<6)|(0X01<<24)|(0X01<<25);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_VSS)
+ {
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x04<<6)|(0X00<<16)|(0X02<<17);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_VDD_VREFN_EXIT)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000;
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x08<<6);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_EXIT_VREFN_EXIT)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000;
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x09<<6);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR2048_VREFN_EXIT)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000;
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0A<<6)|(0X01<<24)|(0X00<<25);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_FVR4096_VREFN_EXIT)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000;
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0x00000800;
+ ADC0->CR=(ADC0->CR&0xfcfefc3f)|(0x0B<<6)|(0X01<<24)|(0X01<<25);
+ }
+ else if(ADC12_VREFP_X_VREFN_X==ADC12_VREFP_INTVREF1000_VREFN_EXIT)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x0000B000;
+ ADC0->CR=(ADC0->CR&0xfffefc3f)|(0x0C<<6)|(0X00<<16)|(0X02<<17);
+ }
+}
+/*************************************************************/
+//ADC12 Compare function set
+//EntryParameter:ConverNum_CM0,ConverNum_CM1,CMP0_data,CMP1_data
+//ConverNum_CM0:VALUE=(0~15)
+//ConverNum_CM1:VALUE=(0~15)
+//CMP0_data:VALUE=(1~(0X3FF/0XFFF))
+//CMP1_data:VALUE=(1~(0X3FF/0XFFF))
+//ReturnValue:NONE
+/*************************************************************/
+ //ConverNum_CM0:Number of Conversions for Compare Function
+ //ConverNum_CM1:Number of Conversions for Compare Function
+ //ADC will generate a CMPxH/CMPxL interrupt when result of this number of conversion is higher/lower than data set in ADC_CMPx register.
+ //ConverNum_CM1Number of Conversions for Compare Function
+ //ADC will generate a CMP1H/CMP1L interrupt when result of this number of conversion is greater/less than data set in ADC_CMP1 register.
+
+void ADC12_CompareFunction_set(U8_T ConverNum_CM0 , U8_T ConverNum_CM1 , U16_T CMP0_data , U16_T CMP1_data )
+{
+ ADC0->MR|=((ConverNum_CM0-0)<<16)|((ConverNum_CM1-0)<<22);
+ ADC0->CMP0=CMP0_data;
+ ADC0->CMP1=CMP1_data;
+}
+/*************************************************************/
+//ADC12 Conversion chanle seting
+//EntryParameter:ADC12_3/4/6/8CYCLES,SEQx,ADC12_ADCINX,ADC12_CV_RepeatNum1/2/4/8/16/32/64/128
+//SEQx:VALUE=(1~18)
+//ADC12_ADCINX:ADC12_ADCIN0~ADC12_ADCIN17,ADC12_INTVREF,ADC12_DIV4_VDD,ADC12_VSS
+//ReturnValue:NONE
+/*************************************************************/
+void ADC12_ConversionChannel_Config(ADC12_InputSet_TypeDef ADC12_ADCINX ,
+ ADC12_CV_RepeatNum_TypeDef CV_RepeatTime, ADC12_Control_TypeDef AVG_Set, U8_T SEQx)
+{
+ U8_T i;
+ for(i=0;i<15;i++)
+ {
+ ADC0->SEQ[i] &=~(0x01<<7);
+ }
+ switch(ADC12_ADCINX)
+ {
+ case 0:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC0 PB0.1
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0x00000010;
+ break;
+ case 1:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000001; //ADC1 PA0.0
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 2:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000010; //ADC2 PA0.1
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 3:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00001000; //ADC3 PA0.3
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 4:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00100000; //ADC4 PA0.5
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 5:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x01000000; //ADC5 PA0.6
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 6:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x10000000; //ADC6 PA0.7
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 7:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC7 PB0.2
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000100;
+ break;
+ case 8:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC8 PB0.3
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0x00001000;
+ break;
+ case 9:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC9 PA0.8
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000001;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 10:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC10 PA0.9
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0x00000010;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 11:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC11 PA0.10
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0x00000100;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 12:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC12 PA0.11
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0x00001000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 13:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC13 PA0.12
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00010000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 14:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC14 PA0.13
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00100000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFFF) | 0x00000000;
+ break;
+ case 15:
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFFF) | 0x00000000; //ADC15 PB0.0
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFFF) | 0x00000000;
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000001;
+ break;
+ //case 18: break;
+ //case 19: break;
+ //case 20: break;
+ //case 21: break;
+ //case 22: break;
+ //case 23: break;
+ //case 24: break;
+ //case 25: break;
+ //case 26: break;
+ //case 27: break;
+ case 0x1Cul: break;
+ case 0x1Dul: break;
+ case 0x1Eul: break;
+ }
+ ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] & 0;
+ ADC0->SEQ[SEQx] = ADC0->SEQ[SEQx] | ADC12_ADCINX | CV_RepeatTime | AVG_Set;
+}
+/*************************************************************/
+//ADC12 Compare statue output
+//EntryParameter:NBRCMPx_TypeDef,NBRCMPX_L_TypeDef
+//NBRCMPx_TypeDef:NBRCMP0_TypeDef,NBRCMP1_TypeDef
+//NBRCMPX_L_TypeDef:NBRCMPX_L_TypeDef,NBRCMPX_H_TypeDef
+//ReturnValue:ADC12 Compare result flag
+/*************************************************************/
+ //output statue:ADC-SR(ADC12_CMP0H/ADC12_CMP0L/ADC12_CMP1H/ADC12_CMP1L)
+U8_T ADC12_Compare_statue(ADC12_NBRCMPx_TypeDef ADC12_NBRCMPx, ADC12_NBRCMPx_HorL_TypeDef ADC12_NBRCMPx_HorL)
+{
+ if(ADC12_NBRCMPx==NBRCMP0_TypeDef)
+ {
+ if(ADC12_NBRCMPx_HorL==NBRCMPX_L_TypeDef)
+ {
+ return((ADC0->SR)&ADC12_CMP0L);
+ }
+ else
+ {
+ return((ADC0->SR)&ADC12_CMP0H);
+ }
+
+ }
+ else
+ {
+ if(ADC12_NBRCMPx_HorL==NBRCMPX_L_TypeDef)
+ {
+ return((ADC0->SR)&ADC12_CMP1L);
+ }
+ else
+ {
+ return((ADC0->SR)&ADC12_CMP1H);
+ }
+ }
+}
+/*************************************************************/
+//ADC Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC_Int_Enable(void)
+{
+ ADC0->CSR=0xFFFFFFFF;
+ INTC_ISER_WRITE(ADC_INT);
+}
+/*************************************************************/
+//ADC Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ADC_Int_Disable(void)
+{
+ INTC_ICER_WRITE(ADC_INT);
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_bt.c b/Source/FWlib/apt32f102_bt.c
new file mode 100644
index 0000000..d560b42
--- /dev/null
+++ b/Source/FWlib/apt32f102_bt.c
@@ -0,0 +1,287 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_bt.c
+ * @author APT AE Team
+ * @version V1.10
+ * @date 2021/08/25
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_bt.h"
+
+/* defines -------------------------------------------------------------------*/
+/* externs--------------------------------------------------------------------*/
+
+
+/*************************************************************/
+//Deinitializes the registers to their default reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_DeInit(CSP_BT_T *BTx)
+{
+ BTx->RSSR=BT_RESET_VALUE;
+ BTx->CR=BT_RESET_VALUE;
+ BTx->PSCR=BT_RESET_VALUE;
+ BTx->PRDR=BT_RESET_VALUE;
+ BTx->CMP=BT_RESET_VALUE;
+ BTx->CNT=BT_RESET_VALUE;
+ BTx->EVTRG=BT_RESET_VALUE;
+ BTx->EVSWF=BT_RESET_VALUE;
+ BTx->RISR=BT_RESET_VALUE;
+ BTx->IMCR=BT_RESET_VALUE;
+ BTx->MISR=BT_RESET_VALUE;
+ BTx->ICR=BT_RESET_VALUE;
+}
+/*************************************************************/
+//BT IO Init
+//EntryParameter:LPT_OUT_PA09,LPT_OUT_PB01,LPT_IN_PA10,
+//ReturnValue:NONE
+/*************************************************************/
+void BT_IO_Init(BT_Pin_TypeDef BT_IONAME)
+{
+ if(BT_IONAME==BT0_PA00)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFFFF0)|0x00000006; //BT0 PA0.0
+ }
+ if(BT_IONAME==BT0_PA02)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000600; //BT0 PA0.2
+ }
+ if(BT_IONAME==BT0_PA05)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFF0FFFFF)|0x00500000; //BT0 PA0.5
+ }
+ if(BT_IONAME==BT0_PB02)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFF0FF)|0x00000500; //BT0 PB0.2
+ }
+ if(BT_IONAME==BT0_PB05)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFF0FFFFF)|0x00700000; //BT0 PB0.5
+ }
+ if(BT_IONAME==BT0_PA11)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00008000; //BT0 PA0.11
+ }
+ if(BT_IONAME==BT0_PA13)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFF0FFFFF)|0x00800000; //BT0 PA0.13
+ }
+ if(BT_IONAME==BT0_PA15)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0X0FFFFFFF)|0x50000000; //BT0 PA0.15
+ }
+ if(BT_IONAME==BT1_PA01)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFFF0F)|0x00000060; //BT1 PA0.1
+ }
+ if(BT_IONAME==BT1_PA06)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XF0FFFFFF)|0x04000000; //BT1 PA0.6
+ }
+ if(BT_IONAME==BT1_PA08)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFFF0)|0x00000006; //BT1 PA0.8
+ }
+ if(BT_IONAME==BT1_PA12)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00060000; //BT1 PA0.12
+ }
+ if(BT_IONAME==BT1_PA14)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XF0FFFFFF)|0x05000000; //BT1 PA0.14
+ }
+ if(BT_IONAME==BT1_PB00)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000008; //BT1 PB0.0
+ }
+ if(BT_IONAME==BT1_PB04)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFF0FFFF)|0x00070000; //BT1 PB0.4
+ }
+}
+/*************************************************************/
+// BT start
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Start(CSP_BT_T *BTx)
+{
+ BTx->RSSR |=0X01;
+}
+/*************************************************************/
+// BT stop
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Stop(CSP_BT_T *BTx)
+{
+ BTx->RSSR &=0X0;
+}
+/*************************************************************/
+// BT stop High
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Stop_High(CSP_BT_T *BTx)
+{
+ BTx->CR |=(0x01<<6);
+ BTx->RSSR &=0X0;
+}
+/*************************************************************/
+// BT stop Low
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Stop_Low(CSP_BT_T *BTx)
+{
+ BTx->CR =BTx->CR & ~(0x01<<6);
+ BTx->RSSR &=0X0;
+}
+/*************************************************************/
+// BT soft reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Soft_Reset(CSP_BT_T *BTx)
+{
+ BTx->RSSR |= (0X5<<12);
+}
+/*************************************************************/
+//BT Configure
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Configure(CSP_BT_T *BTx,BT_CLK_TypeDef BTCLK,U16_T PSCR_DATA,BT_SHDWSTP_TypeDef BTSHDWSTP,BT_OPM_TypeDef BTOPM,BT_EXTCKM_TypeDef BTEXTCKM)
+{
+ BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM;
+ BTx->PSCR = PSCR_DATA;
+}
+/*************************************************************/
+//BT ControlSet
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_ControlSet_Configure(CSP_BT_T *BTx,BT_STARTST_TypeDef BTSTART,BT_IDLEST_TypeDef BTIDLE,BT_SYNCEN_TypeDef BTSYNC,BT_SYNCMD_TypeDef BTSYNCMD,
+ BT_OSTMDX_TypeDef BTOSTMD,BT_AREARM_TypeDef BTAREARM,BT_CNTRLD_TypeDef BTCNTRLD)
+{
+ BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD;
+}
+/*************************************************************/
+//BT Period / Compare set
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Period_CMP_Write(CSP_BT_T *BTx,U16_T BTPRDR_DATA,U16_T BTCMP_DATA)
+{
+ //BTx->CR|=0X01<<2;
+ BTx->PRDR =BTPRDR_DATA;
+ BTx->CMP =BTCMP_DATA;
+}
+/*************************************************************/
+//BT COUNTER set
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_CNT_Write(CSP_BT_T *BTx,U16_T BTCNT_DATA)
+{
+ BTx->CNT =BTCNT_DATA;
+}
+/*************************************************************/
+//BT read counters
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+U16_T BT_PRDR_Read(CSP_BT_T *BTx)
+{
+ return BTx->PRDR;
+}
+U16_T BT_CMP_Read(CSP_BT_T *BTx)
+{
+ return BTx->CMP;
+}
+U16_T BT_CNT_Read(CSP_BT_T *BTx)
+{
+ return BTx->CNT;
+}
+/*************************************************************/
+//BT Trigger Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Trigger_Configure(CSP_BT_T *BTx,BT_TRGSRC_TypeDef BTTRG,BT_TRGOE_TypeDef BTTRGOE)
+{
+ BTx->EVTRG|=BTTRG| BTTRGOE;
+}
+/*************************************************************/
+//BT SOFT Trigger
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Soft_Tigger(CSP_BT_T *BTx)
+{
+ BTx->EVSWF=0x01;
+}
+/*************************************************************/
+//BT inturrpt Configure
+//EntryParameter:BT_IMSCR_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ {
+ BTx->IMCR |= BT_IMSCR_X;
+ }
+ else
+ {
+ BTx->IMCR &= ~BT_IMSCR_X;
+ }
+}
+/*************************************************************/
+//BT0 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT0_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(BT0_INT);
+}
+/*************************************************************/
+//BT0 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT0_INT_DISABLE(void)
+{
+ INTC_ICER_WRITE(BT0_INT);
+}
+/*************************************************************/
+//BT0 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT1_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(BT1_INT);
+}
+/*************************************************************/
+//BT0 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT1_INT_DISABLE(void)
+{
+ INTC_ICER_WRITE(BT1_INT);
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_coret.c b/Source/FWlib/apt32f102_coret.c
new file mode 100644
index 0000000..255e73c
--- /dev/null
+++ b/Source/FWlib/apt32f102_coret.c
@@ -0,0 +1,147 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_CORET.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_coret.h"
+#include "apt32f102_syscon.h"
+
+
+/* defines -------------------------------------------------------------------*/
+/* externs--------------------------------------------------------------------*/
+
+
+/*************************************************************/
+//Deinitializes the syscon registers to their default reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_DeInit(void)
+{
+ CK801->CORET_CSR=CORET_CSR_RST;
+ CK801->CORET_RVR=CORET_RVR_RST;
+ CK801->CORET_CVR=CORET_CVR_RST;
+ CK801->CORET_CALIB=CORET_CALIB_RST;
+}
+
+/*************************************************************/
+//CORET Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_Int_Enable(void)
+{
+ CK801->CORET_CVR = 0x0; // Clear counter and flag
+ INTC_ISER_WRITE(CORET_INT);
+}
+
+/*************************************************************/
+//CORET Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_Int_Disable(void)
+{
+ INTC_ICER_WRITE(CORET_INT);
+}
+
+/*************************************************************/
+// CORET Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(CORET_INT);
+}
+
+/*************************************************************/
+// CORET Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(CORET_INT);
+}
+
+/*************************************************************/
+// CORET START
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_start(void)
+{
+ CK801->CORET_CSR|=0x01;
+}
+/*************************************************************/
+// CORET stop
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_stop(void)
+{
+ CK801->CORET_CSR&=0Xfffffffe;
+}
+/*************************************************************/
+// CORET CLKSOURC EX
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_CLKSOURCE_EX(void)
+{
+ CK801->CORET_CSR&=0Xfffffffb;
+}
+/*************************************************************/
+// CORET CLKSOURC IN
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_CLKSOURCE_IN(void)
+{
+ CK801->CORET_CSR|=0x04;
+}
+/*************************************************************/
+//CORET TICKINT enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_TICKINT_Enable(void)
+{
+ CK801->CORET_CSR|=0x02;
+}
+
+/*************************************************************/
+//CORET TICKINT enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_TICKINT_Disable(void)
+{
+ CK801->CORET_CSR&=0Xfffffffd;
+}
+
+/*************************************************************/
+// CORET reload
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CORET_reload(void)
+{
+ CK801->CORET_CVR = 0x0; // Clear counter and flag
+}
+
+/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_countera.c b/Source/FWlib/apt32f102_countera.c
new file mode 100644
index 0000000..60dea0b
--- /dev/null
+++ b/Source/FWlib/apt32f102_countera.c
@@ -0,0 +1,153 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_countera.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_countera.h"
+/* defines -------------------------------------------------------------------*/
+
+/* externs--------------------------------------------------------------------*/
+
+
+/*************************************************************/
+//Count A RESET,CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNT_DeInit(void)
+{
+ CA0->CADATAH = CA_RESET_VALUE;
+ CA0->CADATAL = CA_RESET_VALUE;
+ CA0->CACON = CA_RESET_VALUE;
+ CA0->INTMASK = CA_RESET_VALUE;
+}
+
+/*************************************************************/
+//CountA Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Int_Enable(void)
+{
+ INTC_ISER_WRITE(CA_INT);
+}
+/*************************************************************/
+//CountA Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Int_Disable(void)
+{
+ INTC_ICER_WRITE(CA_INT);
+}
+/*************************************************************/
+//CountA Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Wakeup_Enable(void)
+{
+ INTC_IWER_WRITE(CA_INT);
+}
+/*************************************************************/
+//CountA Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Wakeup_Disable(void)
+{
+ INTC_IWDR_WRITE(CA_INT);
+}
+/*************************************************************/
+//CountA Init
+//EntryParameter:Data_H,Data_L,INT_Mode,DIVx,Mode,Carrier,OSP_Mode
+//Data_H,Data_L:0x0000~0xFFFF
+//INT_MODE:Period_NA/Period_H/Period_L/Period_H_L
+//DIVx:DIV1/DIV2/DIV4/DIV8
+//Mode:ONESHOT_MODE / REPEAT_MODE
+//Carrier:CARRIER_OFF / CARRIER_ON
+//OSP_Mode:OSP_LOW /OSP_HIGH
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Init(uint32_t Data_H,uint32_t Data_L,CA_INT_TypeDef INT_Mode,
+ CA_CLKDIV_TypeDef DIVx,CA_Mode_TypeDef Mode,CA_CARRIER_TypeDef Carrier,
+ CA_OSP_TypeDef OSP_Mode)
+{
+ COUNT_DeInit();
+ CA0->CADATAH = Data_H;//0x0000~0xFFFF time(us)/(1/F Mhz) eg:10us/(1/4)=10us/0.25us=40,Data_H=40
+ CA0->CADATAL = Data_L;//0x0000~0xFFFF
+ CA0->CACON = DIVx | Mode | Carrier | OSP_Mode ;
+ CA0->INTMASK = INT_Mode ;
+}
+/*************************************************************/
+//CountA config
+//EntryParameter:STROBE,Pend_val,Match_val,Stat_val,ENVELOPE
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Config(CA_STROBE_TypeDef STROBE,CA_PENDREM_TypeDef Pend_CON,
+ CA_MATCHREM_TypeDef Match_CON,CA_REMSTAT_TypeDef Stat_CON,CA_ENVELOPE_TypeDef ENVELOPE )
+{
+ CA0->CACON = CA0->CACON | STROBE | Pend_CON | Match_CON | Stat_CON | ENVELOPE;
+}
+/*************************************************************/
+//CountA Start
+//EntryParameter:none
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Start(void)
+{
+ CA0->CACON=(CA0->CACON&0xFFFFFFF3)|0X04; //bit 2,This bit be cleared automatically
+}
+/*************************************************************/
+//CountA Stop
+//EntryParameter:none
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Stop(void)
+{
+ CA0->CACON=(CA0->CACON&0xFFFFFFF7)|0X08; //bit 4
+}
+/*************************************************************/
+//CountA data update
+//EntryParameter:none
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_Data_Update(uint32_t Data_H,uint32_t Data_L)
+{
+ CA0->CADATAH = Data_H;//0x0000~0xFFFF time(us)/(1/F Mhz) eg:10us/(1/4)=10us/0.25us=40,Data_H=40
+ CA0->CADATAL = Data_L;//0x0000~0xFFFF
+ CA0->CACON = CA0->CACON | (1ul<<16);
+}
+/*************************************************************/
+//CountA Stop
+//EntryParameter:COUNTA_IO_G0
+//COUNTA_IO_G:0 PB0.01 1 PA0.05 2 PA0.11
+//ReturnValue:NONE
+/*************************************************************/
+void COUNTA_IO_Init(CA_COUNTAIO_TypeDef COUNTA_IO_G)
+{
+ if(COUNTA_IO_G==0)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000040; //BUZZ (PB0.01->AF1)
+ }
+ else if(COUNTA_IO_G==1)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFF0FFFFF)|0x00600000; //BUZZ (PA0.05->AF4)
+ }
+ else if(COUNTA_IO_G==2)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00007000; //BUZZ (PA0.11->AF3)
+ }
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_crc.c b/Source/FWlib/apt32f102_crc.c
new file mode 100644
index 0000000..b5d6ec3
--- /dev/null
+++ b/Source/FWlib/apt32f102_crc.c
@@ -0,0 +1,150 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_crc.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+
+ /* Includes ------------------------------------------------------------------*/
+#include "apt32f102_crc.h"
+
+/*************************************************************/
+// CRC enable/disable
+//EntryParameter:ENABLE/DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void CRC_CMD(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ CRC->CEDR =0X01; //SET
+ }
+ else
+ {
+ CRC->CEDR =0X00; //CLR
+ }
+}
+
+/*************************************************************/
+//CRC RESET
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CRC_Soft_Reset(void)
+{
+ CRC->SRR = 0X01;
+}
+
+/*************************************************************/
+//CRC CONTROL
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CRC_Configure(CRC_COMPIN_TypeDef COMPINX,CRC_COMPOUT_TypeDef COMPOUTX,CRC_ENDIANIN_TypeDef ENDIANINX,
+ CRC_ENDIANOUT_TypeDef ENDIANOUT,CRC_POLY_TypeDef POLYX)
+{
+ CRC->CR = 0;
+ CRC->CR |= COMPINX |COMPOUTX |ENDIANINX |ENDIANOUT| POLYX;
+}
+
+/*************************************************************/
+//CRC seed write
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CRC_Seed_Write(U32_T seed_data)
+{
+ CRC->SEED = seed_data;
+}
+
+/*************************************************************/
+//CRC seed read
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T CRC_Seed_Read(void)
+{
+ return CRC->SEED;
+}
+
+/*************************************************************/
+//CRC datain
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void CRC_Datain(U32_T data_in)
+{
+ CRC->DATAIN=data_in;
+}
+
+/*************************************************************/
+//CRC Result read
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T CRC_Result_Read(void)
+{
+ return CRC->DATAOUT;
+}
+/*************************************************************/
+//CRC calc 32bit input
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T Chip_CRC_CRC32(U32_T *data, U32_T words)
+{
+ while (words > 0) {
+ CRC_Datain(*data);
+ data++;
+ words--;
+ }
+ return CRC_Result_Read();
+}
+/*************************************************************/
+//CRC calc 16bit input
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T Chip_CRC_CRC16(U16_T *data, U32_T size)
+{
+ U32_T i,j;
+ U8_T data_temp;
+ for (i=0; i>8;
+ if(j==1)data_temp=*data&0xff;
+ *(U8_T *)(AHB_CRCBase + 0x14 + (i%4)) = data_temp;
+ }
+ data++;
+ }
+ return CRC_Result_Read();
+}
+/*************************************************************/
+//CRC calc 8bit input
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T Chip_CRC_CRC8(U8_T *data, U32_T size)
+{
+ U32_T i;
+ for (i=0; iCEDR|=0X01;
+ EPT0->RSSR=(EPT0->RSSR&0XFFFF0FFF)|(0X05<<12);
+}
+/*************************************************************/
+//Deinitializes the EPT start prg
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Start(void)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->RSSR|=0X01;
+ while(!(EPT0->RSSR&0x01));
+}
+/*************************************************************/
+//Deinitializes the EPT stop prg
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Stop(void)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->RSSR&=0Xfe;
+ while(EPT0->RSSR&0x01);
+}
+/*************************************************************/
+//Deinitializes the EPT IO Config,IO_Num_X
+//EntryParameter:EPT_IO_Mode_Type
+//EPT_IO_X:EPT_IO_CHAX,EPT_IO_CHAY,EPT_IO_CHBX,EPT_IO_CHBY,EPT_IO_CHCX,EPT_IO_CHCX,EPT_IO_CHD,EPT_IO_EPI
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_IO_SET(EPT_IO_Mode_Type EPT_IO_X , EPT_IO_NUM_Type IO_Num_X)
+{
+ if(EPT_IO_X==EPT_IO_CHAX)
+ {
+ if(IO_Num_X==IO_NUM_PA07)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X60000000; //PA0.7
+ }
+ else if(IO_Num_X==IO_NUM_PA10)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF)|0X00000500; //PA0.10
+ }
+ else if(IO_Num_X==IO_NUM_PA15)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF)|0X40000000; //PA0.15
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHAY)
+ {
+ if(IO_Num_X==IO_NUM_PB03)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00005000; //PB0.3
+ }
+ else if(IO_Num_X==IO_NUM_PB05)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00500000; //PB0.5
+ }
+ else if(IO_Num_X==IO_NUM_PA12)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF)|0X00050000; //PA0.12
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHBX)
+ {
+ if(IO_Num_X==IO_NUM_PB02)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000600; //PB0.2
+ }
+ else if(IO_Num_X==IO_NUM_PA11)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF)|0X00005000; //PA0.11
+ }
+ else if(IO_Num_X==IO_NUM_PA14)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF)|0X04000000; //PA0.14
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHBY)
+ {
+ if(IO_Num_X==IO_NUM_PB04)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00050000; //PB0.4
+ }
+ else if(IO_Num_X==IO_NUM_PA05)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF)|0X00800000; //PA0.5
+ }
+ else if(IO_Num_X==IO_NUM_PA08)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000005; //PA0.8
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHCX)
+ {
+ if(IO_Num_X==IO_NUM_PB05)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF)|0X00400000; //PB0.5
+ }
+ else if(IO_Num_X==IO_NUM_PA03)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF)|0X00005000; //PA0.3
+ }
+ else if(IO_Num_X==IO_NUM_PB03)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00004000; //PB0.3
+ }
+ else if(IO_Num_X==IO_NUM_PB00)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0)|0X00000005; //PB0.0
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHCY)
+ {
+ if(IO_Num_X==IO_NUM_PB04)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF)|0X00040000; //PB0.4
+ }
+ else if(IO_Num_X==IO_NUM_PA04)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF)|0X00050000; //PA0.4
+ }
+ else if(IO_Num_X==IO_NUM_PA09)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F)|0X00000070; //PA0.9
+ }
+ else if(IO_Num_X==IO_NUM_PA013)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00500000; //PA0.13
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_CHD)
+ {
+ if(IO_Num_X==IO_NUM_PB03)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00006000; //PB0.3
+ }
+ else if(IO_Num_X==IO_NUM_PA08)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0)|0X00000004; //PA0.8
+ }
+ }
+ else if(EPT_IO_X==EPT_IO_EPI)
+ {
+ if(IO_Num_X==IO_NUM_PA07)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF)|0X50000000; //PA0.7 EPI0
+ }
+ else if(IO_Num_X==IO_NUM_PA013)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF)|0X00400000; //PA0.13 EPI1
+ }
+ else if(IO_Num_X==IO_NUM_PB03)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF)|0X00007000; //PB0.3 EPI2
+ }
+ else if(IO_Num_X==IO_NUM_PB02)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF)|0X00000700; //PB0.2 EPI3
+ }
+ }
+}
+/*************************************************************/
+//Deinitializes the EPT PWM Config
+//EntryParameter:EPT_TCLK_Selecte_X,EPT_CNTMD_SELECTE_X,EPT_OPM_SELECTE_X,EPT_PSCR
+//EPT_TCLK_Selecte_X:EPT_Selecte_PCLK,EPT_Selecte_SYNCUSR3
+//EPT_CNTMD_SELECTE_X:EPT_CNTMD_increase,EPT_CNTMD_decrease,EPT_CNTMD_increaseTOdecrease
+//EPT_OPM_SELECTE_X:EPT_OPM_Once,EPT_OPM_Continue
+//EPT_PSCR:0~0XFFFF
+//ReturnValue:NONE
+/*************************************************************/
+//Fclk=Fpclk/(PSC+1)
+void EPT_PWM_Config(EPT_TCLK_Selecte_Type EPT_TCLK_Selecte_X , EPT_CNTMD_SELECTE_Type EPT_CNTMD_SELECTE_X , EPT_OPM_SELECTE_Type EPT_OPM_SELECTE_X
+ , U16_T EPT_PSCR)
+{
+ EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6));
+ if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK)
+ {
+ EPT0->PSCR=EPT_PSCR;
+ }
+ EPT0->CR=(EPT0->CR&0xfff8ffc0)|EPT_CNTMD_SELECTE_X|(0x1<<2)|(0x0<<3)|(0x0<<4)|EPT_OPM_SELECTE_X|(0X0<<16)|(0x1<<18);
+}
+/*************************************************************/
+//Deinitializes the EPT PWM Config
+//EntryParameter:EPT_CGSRC_TIN_Selecte_X,EPT_CGFLT_DIV,EPT_CGFLT_CNT,EPT_BURST_CMD
+//EPT_CGSRC_TIN_Selecte_X:EPT_CGSRC_TIN_BT0OUT,EPT_CGSRC_TIN_BT1OUT,EPT_CGSRC_CHAX,EPT_CGSRC_CHBX,EPT_CGSRC_DIS
+//EPT_CGFLT_DIV:0~255
+//EPT_CGFLT_CNT:0~7
+//EPT_BURST_CMD:EPT_BURST_ENABLE,EPT_BURST_DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_CG_gate_Config(EPT_CGSRC_TIN_Selecte_Type EPT_CGSRC_TIN_Selecte_X , U8_T EPT_CGFLT_DIV , U8_T EPT_CGFLT_CNT , EPT_BURST_CMD_Type EPT_BURST_CMD)
+{
+ EPT0->CR=(EPT0->CR&0xffff01ff)|EPT_BURST_CMD|EPT_CGFLT_CNT<<13|0x01<<10;
+ EPT0->CEDR=(EPT0->CEDR&0XFFFF00CF)|(EPT_CGFLT_DIV<<8);
+ if(EPT_CGSRC_TIN_Selecte_X==EPT_CGSRC_DIS)
+ {
+ EPT0->CEDR|=0X00<<4;
+ EPT0->CR|=0X03<<11;
+ }
+ else if(EPT_CGSRC_TIN_Selecte_X==EPT_CGSRC_TIN_BT0OUT)
+ {
+ EPT0->CEDR|=0X01<<4;
+ EPT0->CR|=0X02<<11;
+ }
+ else if(EPT_CGSRC_TIN_Selecte_X==EPT_CGSRC_TIN_BT1OUT)
+ {
+ EPT0->CEDR|=0X02<<4;
+ EPT0->CR|=0X02<<11;
+ }
+ else if(EPT_CGSRC_TIN_Selecte_X==EPT_CGSRC_CHAX)
+ {
+ EPT0->CEDR|=0X00<<4;
+ EPT0->CR|=0X00<<11;
+ }
+ else if(EPT_CGSRC_TIN_Selecte_X==EPT_CGSRC_CHBX)
+ {
+ EPT0->CEDR|=0X00<<4;
+ EPT0->CR|=0X01<<11;
+ }
+}
+/*************************************************************/
+//Deinitializes the EPT Caputer Config
+//EntryParameter:EPT_TCLK_Selecte_X,EPT_CNTMD_SELECTE_X,EPT_CAPMD_SELECTE_X,EPT_LOAD_CMPA_RST_CMD~EPT_LOAD_CMPD_RST_CMD,EPT_STOP_WRAP,EPT_PSCR
+//EPT_TCLK_Selecte_X:EPT_Selecte_PCLK,EPT_Selecte_SYNCUSR3
+//EPT_CNTMD_SELECTE_X:EPT_CNTMD_increase,EPT_CNTMD_decrease,EPT_CNTMD_increaseTOdecrease
+//EPT_CAPMD_SELECTE_X:EPT_CAPMD_Once,EPT_CAPMD_Continue
+//EPT_LOAD_CMPA_RST_CMD:EPT_LDARST_EN,EPT_LDARST_DIS
+//EPT_LOAD_CMPB_RST_CMD:EPT_LDBRST_EN,EPT_LDBRST_DIS
+//EPT_LOAD_CMPC_RST_CMD:EPT_LDCRST_EN,EPT_LDCRST_DIS
+//EPT_LOAD_CMPD_RST_CMD:EPT_LDDRST_EN,EPT_LDDRST_DIS
+//EPT_STOP_WRAP:0~3
+//EPT_PSCR:0~0XFFFF
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Capture_Config(EPT_TCLK_Selecte_Type EPT_TCLK_Selecte_X , EPT_CNTMD_SELECTE_Type EPT_CNTMD_SELECTE_X , EPT_CAPMD_SELECTE_Type EPT_CAPMD_SELECTE_X , EPT_CAPLDEN_CMD_Type CAP_CMD
+ , EPT_LOAD_CMPA_RST_CMD_Type EPT_LOAD_CMPA_RST_CMD , EPT_LOAD_CMPB_RST_CMD_Type EPT_LOAD_CMPB_RST_CMD , EPT_LOAD_CMPC_RST_CMD_Type EPT_LOAD_CMPC_RST_CMD
+ , EPT_LOAD_CMPD_RST_CMD_Type EPT_LOAD_CMPD_RST_CMD , U8_T EPT_STOP_WRAP , U16_T EPT_PSCR)
+{
+ EPT0->CEDR=(EPT0->CEDR&0XFFFFFF00)|(0X01|EPT_TCLK_Selecte_X|(0X01<<1)|(0X00<<6));
+ if(EPT_TCLK_Selecte_X==EPT_Selecte_PCLK)
+ {
+ EPT0->PSCR=EPT_PSCR;
+ }
+ EPT0->CR=(EPT0->CR&0xf800fec0)|EPT_CNTMD_SELECTE_X|(0x0<<2)|(0x0<<3)|(0x0<<4)|CAP_CMD|EPT_CAPMD_SELECTE_X|(0X0<<16)|(0x0<<18)|(EPT_STOP_WRAP<<21)|
+ EPT_LOAD_CMPA_RST_CMD|EPT_LOAD_CMPB_RST_CMD|EPT_LOAD_CMPC_RST_CMD|EPT_LOAD_CMPD_RST_CMD;
+}
+
+/*************************************************************/
+//Deinitializes the EPT SYNCR Config
+//EntryParameter:EPT_Triggle_X,EPT_SYNCR_EN,EPT_SYNCUSR0_REARMTrig_Selecte,EPT_TRGSRC0_ExtSync_Selected,EPT_TRGSRC1_ExtSync_Selected
+//EPT_Triggle_X:EPT_Triggle_Continue,EPT_Triggle_Once
+//EPT_SYNCUSR0_REARMTrig_Selecte:EPT_SYNCUSR0_REARMTrig_DIS,EPT_SYNCUSR0_REARMTrig_T1,EPT_SYNCUSR0_REARMTrig_T2
+//EPT_SYNCUSR0_REARMTrig_T1T2
+//EPT_TRGSRC0_ExtSync_Selected:EPT_TRGSRC0_ExtSync_SYNCUSR0~EPT_TRGSRC0_ExtSync_SYNCUSR5
+//EPT_TRGSRC1_ExtSync_Selected:EPT_TRGSRC1_ExtSync_SYNCUSR0~EPT_TRGSRC1_ExtSync_SYNCUSR5
+//EPT_SYNCR_EN:0~0X3F
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_SYNCR_Config(EPT_Triggle_Mode_Type EPT_Triggle_X , EPT_SYNCUSR0_REARMTrig_Selecte_Type EPT_SYNCUSR0_REARMTrig_Selecte , EPT_TRGSRC0_ExtSync_Selected_Type EPT_TRGSRC0_ExtSync_Selected ,
+ EPT_TRGSRC1_ExtSync_Selected_Type EPT_TRGSRC1_ExtSync_Selected , U8_T EPT_SYNCR_EN)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->SYNCR = (EPT0->SYNCR&0XC03F0000) |EPT_SYNCR_EN|EPT_Triggle_X|EPT_SYNCUSR0_REARMTrig_Selecte|EPT_TRGSRC0_ExtSync_Selected|EPT_TRGSRC1_ExtSync_Selected;
+}
+/*************************************************************/
+//Deinitializes the EPT CPCR Config
+//EntryParameter:EPT_CPCR_CMD,EPT_CPCR_Source_X,EPT_CDUTY_X,EPT_CPCR_OSPWTH,EPT_CPCR_CDIV
+//EPT_CPCR_CMD:EPT_CPCR_ENALBE,EPT_CPCR_Disable
+//EPT_CPCR_Source_X:EPT_CPCR_Source_TCLK,EPT_CPCR_Source_TIN_BT0OUT,EPT_CPCR_Source_TIN_BT1OUT
+//EPT_CDUTY_X:EPT_CDUTY_7_8~EPT_CDUTY_DIS
+//EPT_CPCR_OSPWTH:0~0X1F
+//EPT_CPCR_CDIV:0~0xf
+//ReturnValue:NONE
+/*************************************************************/
+//Fchop=PCLK/((CDIV+1)/8) //Carrier frequency setting (CDIV>=1)
+//Twidth=Tchop*OSPWTH //First pulse width setting
+void EPT_CPCR_Config(EPT_CPCR_CMD_Type EPT_CPCR_CMD , EPT_CPCR_Source_Selecte_Type EPT_CPCR_Source_X , EPT_CDUTY_Type EPT_CDUTY_X , U8_T EPT_CPCR_OSPWTH , U8_T EPT_CPCR_CDIV)
+{
+ if(EPT_CPCR_Source_X==EPT_CPCR_Source_TCLK)
+ {
+ EPT0->CPCR=(EPT_CPCR_CMD<<16)|(EPT_CPCR_CDIV<<7)|(EPT_CPCR_OSPWTH<<2)|EPT_CDUTY_X|(0x00<<14);
+ }
+ else
+ {
+ EPT0->CPCR=(EPT_CPCR_CMD<<16)|(EPT_CPCR_CDIV<<7)|(EPT_CPCR_OSPWTH<<2)|EPT_CDUTY_X|(0x01<<14);
+ if(EPT_CPCR_Source_X==EPT_CPCR_Source_TIN_BT0OUT)
+ {
+ EPT0->CEDR=(EPT0->CEDR&0xffffffcf)|(0x01<<4);
+ }
+ if(EPT_CPCR_Source_X==EPT_CPCR_Source_TIN_BT1OUT)
+ {
+ EPT0->CEDR=(EPT0->CEDR&0xffffffcf)|(0x02<<4);
+ }
+ }
+}
+/*************************************************************/
+//Deinitializes the EPT DBCR Config
+//EntryParameter:EPT_CHX_Selecte,EPT_INSEL_X,EPT_OUTSEL_X,EPT_OUT_POLARITY_X,EPT_OUT_SWAP_X
+//EPT_CHX_Selecte:EPT_CHA_Selecte,EPT_CHB_Selecte,EPT_CHC_Selecte
+//EPT_INSEL_X:EPT_PWMA_RISE_FALL,EPT_PWMB_RISE_PWMA_FALL,EPT_PWMA_RISE_PWMB_FALL,EPT_PWMB_RISE_FALL
+//EPT_OUTSEL_X:EPT_OUTSEL_PWMA_PWMB_Bypass,EPT_OUTSEL_DisRise_EnFall,EPT_OUTSEL_EnRise_DisFall,EPT_OUTSEL_EnRise_EnFall
+//EPT_OUT_POLARITY_X:EPT_PA_PB_OUT_Direct,EPT_PA_OUT_Reverse,EPT_PB_OUT_Reverse,EPT_PA_PB_OUT_Reverse
+//EPT_OUT_SWAP_X:EPT_PAtoCHX_PBtoCHY,EPT_PBtoCHX_PBtoCHY,EPT_PAtoCHX_PAtoCHY,EPT_PBtoCHX_PAtoCHY
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_DBCR_Config(EPT_CHX_Selecte_Type EPT_CHX_Selecte , EPT_INSEL_Type EPT_INSEL_X , EPT_OUTSEL_Type EPT_OUTSEL_X , EPT_OUT_POLARITY_Type EPT_OUT_POLARITY_X , EPT_OUT_SWAP_Type EPT_OUT_SWAP_X)
+{
+ if(EPT_CHX_Selecte==EPT_CHA_Selecte)
+ {
+ EPT0->DBCR=(EPT0->DBCR&0XFFFFFF00)|EPT_INSEL_X|EPT_OUTSEL_X|(EPT_OUT_POLARITY_X<<2)|(EPT_OUT_SWAP_X<<6);
+ }
+ else if(EPT_CHX_Selecte==EPT_CHB_Selecte)
+ {
+ EPT0->DBCR=(EPT0->DBCR&0XFFFF00FF)|EPT_INSEL_X|EPT_OUTSEL_X|(EPT_OUT_POLARITY_X<<10)|(EPT_OUT_SWAP_X<<14);
+ }
+ else if(EPT_CHX_Selecte==EPT_CHC_Selecte)
+ {
+ EPT0->DBCR=(EPT0->DBCR&0XFF00FFFF)|EPT_INSEL_X|EPT_OUTSEL_X|(EPT_OUT_POLARITY_X<<18)|(EPT_OUT_SWAP_X<<22);
+ }
+ EPT0->DBCR|=0x01<<24;
+}
+/*************************************************************/
+//Deinitializes the EPT DB CLK Config
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+//Fdbclk=Fhclk/(DPSC+1)
+void EPT_DB_CLK_Config(U16_T DPSC , U16_T DTR , U16_T DTF)
+{
+ EPT0->DPSCR=DPSC;
+ EPT0->DBDTR=DTR;
+ EPT0->DBDTF=DTF;
+}
+/*************************************************************/
+//Deinitializes the EPT PWMA~PWMD Control
+//EntryParameter:EPT_PWMX_Selecte,EPT_CA_Selecte_X,EPT_CB_Selecte_X,
+//EPT_PWMX_Selecte:EPT_PWMA,EPT_PWMB,EPT_PWMC,EPT_PWMD
+//EPT_CA_Selecte_X:EPT_CA_Selecte_CMPA,EPT_CA_Selecte_CMPB,EPT_CA_Selecte_CMPC,EPT_CA_Selecte_CMPD
+//EPT_CB_Selecte_X:EPT_CB_Selecte_CMPA,EPT_CB_Selecte_CMPB,EPT_CB_Selecte_CMPC,EPT_CB_Selecte_CMPD
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_PWMX_Output_Control(
+ EPT_PWMX_Selecte_Type EPT_PWMX_Selecte ,EPT_CA_Selecte_Type EPT_CA_Selecte_X , EPT_CB_Selecte_Type EPT_CB_Selecte_X ,
+ EPT_PWM_ZRO_Output_Type EPT_PWM_ZRO_Event_Output , EPT_PWM_PRD_Output_Type EPT_PWM_PRD_Event_Output ,
+ EPT_PWM_CAU_Output_Type EPT_PWM_CAU_Event_Output , EPT_PWM_CAD_Output_Type EPT_PWM_CAD_Event_Output ,
+ EPT_PWM_CBU_Output_Type EPT_PWM_CBU_Event_Output , EPT_PWM_CBD_Output_Type EPT_PWM_CBD_Event_Output ,
+ EPT_PWM_T1U_Output_Type EPT_PWM_T1U_Event_Output , EPT_PWM_T1D_Output_Type EPT_PWM_T1D_Event_Output ,
+ EPT_PWM_T2U_Output_Type EPT_PWM_T2U_Event_Output , EPT_PWM_T2D_Output_Type EPT_PWM_T2D_Event_Output
+ )
+{
+ if(EPT_PWMX_Selecte==EPT_PWMA)
+ {
+ EPT0->AQCRA=EPT_CA_Selecte_X|EPT_CB_Selecte_X|EPT_PWM_ZRO_Event_Output|EPT_PWM_PRD_Event_Output|EPT_PWM_CAU_Event_Output|EPT_PWM_CAD_Event_Output|
+ EPT_PWM_CBU_Event_Output|EPT_PWM_CBD_Event_Output|EPT_PWM_T1U_Event_Output|EPT_PWM_T1D_Event_Output|EPT_PWM_T2U_Event_Output|EPT_PWM_T2D_Event_Output;
+ }
+ else if(EPT_PWMX_Selecte==EPT_PWMB)
+ {
+ EPT0->AQCRB=EPT_CA_Selecte_X|EPT_CB_Selecte_X|EPT_PWM_ZRO_Event_Output|EPT_PWM_PRD_Event_Output|EPT_PWM_CAU_Event_Output|EPT_PWM_CAD_Event_Output|
+ EPT_PWM_CBU_Event_Output|EPT_PWM_CBD_Event_Output|EPT_PWM_T1U_Event_Output|EPT_PWM_T1D_Event_Output|EPT_PWM_T2U_Event_Output|EPT_PWM_T2D_Event_Output;
+ }
+ else if(EPT_PWMX_Selecte==EPT_PWMC)
+ {
+ EPT0->AQCRC=EPT_CA_Selecte_X|EPT_CB_Selecte_X|EPT_PWM_ZRO_Event_Output|EPT_PWM_PRD_Event_Output|EPT_PWM_CAU_Event_Output|EPT_PWM_CAD_Event_Output|
+ EPT_PWM_CBU_Event_Output|EPT_PWM_CBD_Event_Output|EPT_PWM_T1U_Event_Output|EPT_PWM_T1D_Event_Output|EPT_PWM_T2U_Event_Output|EPT_PWM_T2D_Event_Output;
+ }
+ else if(EPT_PWMX_Selecte==EPT_PWMD)
+ {
+ EPT0->AQCRD=EPT_CA_Selecte_X|EPT_CB_Selecte_X|EPT_PWM_ZRO_Event_Output|EPT_PWM_PRD_Event_Output|EPT_PWM_CAU_Event_Output|EPT_PWM_CAD_Event_Output|
+ EPT_PWM_CBU_Event_Output|EPT_PWM_CBD_Event_Output|EPT_PWM_T1U_Event_Output|EPT_PWM_T1D_Event_Output|EPT_PWM_T2U_Event_Output|EPT_PWM_T2D_Event_Output;
+ }
+
+}
+/*************************************************************/
+//Deinitializes the EPT Tevent selecte
+//EntryParameter:EPT_T1_Selecte,EPT_T2_Selecte
+//EPT_T1_Selecte:0->SYNCUSR4,1->EP0,2->EP1,3->EP2,4->EP3,5->EP4,6->EP5,7->EP6
+//EPT_T2_Selecte:0->SYNCUSR5,1->EP0,2->EP1,3->EP2,4->EP3,5->EP4,6->EP5,7->EP6
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Tevent_Selecte( U8_T EPT_T1_Selecte, U8_T EPT_T2_Selecte)
+{
+ EPT0->AQTSCR=EPT_T1_Selecte|(EPT_T2_Selecte<<4);
+}
+/*************************************************************/
+//Deinitializes the EPT PHSEN Config
+//EntryParameter:EPT_PHSEN_CMD,EPT_PHSDIR,PHSR
+//EPT_PHSEN_CMD:EPT_PHSEN_EN,EPT_PHSEN_DIS
+//EPT_PHSDIR:EPT_PHSDIR_increase,EPT_PHSEN_decrease
+//PHSR:0~0xffff
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_PHSEN_Config(EPT_PHSEN_CMD_Type EPT_PHSEN_CMD , EPT_PHSDIR_Type EPT_PHSDIR , U16_T PHSR)
+{
+ EPT0->CR=(EPT0->CR&0xffffff7f)|EPT_PHSEN_CMD;
+ EPT0->PHSR=PHSR|EPT_PHSDIR;
+}
+/*************************************************************/
+//Deinitializes the EPT PRDR CMPA CMPB CMPC CMPD_Config
+//EntryParameter:EPT_PRDR_Value,EPT_CMPA_Value,EPT_CMPB_Value,EPT_CMPC_Value,EPT_CMPD_Value
+//EPT_PRDR_Value:0~0xff
+//EPT_CMPA_Value:0~0xff
+//EPT_CMPB_Value:0~0xff
+//EPT_CMPC_Value:0~0xff
+//EPT_CMPD_Value:0~0xff
+/*************************************************************/
+void EPT_PRDR_CMPA_CMPB_CMPC_CMPD_Config(U16_T EPT_PRDR_Value , U16_T EPT_CMPA_Value , U16_T EPT_CMPB_Value , U16_T EPT_CMPC_Value , U16_T EPT_CMPD_Value)
+{
+ EPT0->PRDR=EPT_PRDR_Value;
+ EPT0->CMPA=EPT_CMPA_Value;
+ EPT0->CMPB=EPT_CMPB_Value;
+ EPT0->CMPC=EPT_CMPC_Value;
+ EPT0->CMPD=EPT_CMPD_Value;
+}
+/*************************************************************/
+//Deinitializes the EPT SYNCR Rearm
+//EntryParameter:EPT_REARMX,EPT_REARM_MODE
+//EPT_REARMX:EPT_REARM_SYNCEN0,EPT_REARM_SYNCEN1,EPT_REARM_SYNCEN2,EPT_REARM_SYNCEN3,EPT_REARM_SYNCEN4,EPT_REARM_SYNCEN5
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_SYNCR_RearmClr(EPT_REARMX_Type EPT_REARMX )
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->SYNCR = (EPT0->SYNCR&0X3FC0FFFF)|EPT_REARMX;
+}
+/*************************************************************/
+//Deinitializes the EPT Caputer Rearm
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+//EPT Caputer Rearm:clear counter, enable CAPLDEN automatic
+void EPT_Caputure_Rearm(void)
+{
+ EPT0->CR=(EPT0->CR&0xfffdffff)|(0x01<<19);
+}
+/*************************************************************/
+//Deinitializes the EPT Globle Event Load
+//EntryParameter:EPT_GLDMD_Selecte_X,GLDCFG_EN,EPT_GLD_OneShot_CMD,GLDPRD_CNT
+//EPT_GLD_OneShot_CMD:EPT_GLD_OneShot_DIS,EPT_GLD_OneShot_EN
+//EPT_GLDMD_Selecte_X:EPT_GLDMD_Selecte_ZRO,EPT_GLDMD_Selecte_PRD,EPT_GLDMD_Selecte_ZRO_PRD,EPT_GLDMD_Selecte_ZRO_ExiLoad_SYNC
+//EPT_GLDMD_Selecte_PRD_ExiLoad_SYNC,EPT_GLDMD_Selecte_ZRO_PRD_ExiLoad_SYNC,
+//GLDPRD_CNT:0~7(0->Trigger immediately,1->trigger when the event happens the 2nd time,7->trigger when the event happens the 7th time)
+//GLDCFG_EN:0~0x3fff
+//ReturnValue:NONE
+/*************************************************************/
+//PRDR/CMPA/CMPB/CMPC/CMPD/DBDTR/DBCR/AQCRA/AQCRB/AQCRD/AQCSF/EMPSR load config
+void EPT_Globle_Eventload_Config(EPT_GLD_OneShot_CMD_Type EPT_GLD_OneShot_CMD , EPT_GLDMD_Selecte_Type EPT_GLDMD_Selecte_X , U8_T GLDPRD_CNT , U16_T GLDCFG_EN)
+{
+ EPT0->GLDCR=0X01|EPT_GLD_OneShot_CMD|EPT_GLDMD_Selecte_X|(GLDPRD_CNT<<7);
+ EPT0->GLDCFG=GLDCFG_EN;
+ /*if(EPT_GLDMD_Selecte_X==EPT_GLDMD_Selecte_SW)
+ {
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->GLDCR2=0X02;
+ }*/
+}
+/*************************************************************/
+//Deinitializes the EPT Globle SW Load
+//EntryParameter:GLDCFG_EN
+//GLDCFG_EN:0X0~0X3FFF
+//EPT_GLDMD_Selecte_X:
+/*************************************************************/
+//PRDR/CMPA/CMPB/CMPC/CMPD/DBDTR/DBCR/AQCRA/AQCRB/AQCRD/AQCSF/EMPSR load config
+void EPT_Globle_SwLoad_CMD(void)
+{
+ //EPT0->GLDCR=0X01|EPT_GLDMD_Selecte_SW;
+ //EPT0->GLDCFG=GLDCFG_EN;
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->GLDCR2=0X03;
+}
+/*************************************************************/
+//Deinitializes the EPT PRDR Load
+//EntryParameter:EPT_PRDR_EventLoad_x
+//EPT_PRDR_EventLoad_x:EPT_PRDR_EventLoad_PEND,EPT_PRDR_EventLoad_ExiLoad_SYNC,EPT_PRDR_EventLoad_Zro_ExiLoad_SYNC,
+//EPT_PRDR_EventLoad_Immediate
+/*************************************************************/
+void EPT_PRDR_EventLoad_Config(EPT_PRDR_EventLoad_Type EPT_PRDR_EventLoad_x)
+{
+ EPT0->GLDCR&=0XFFFFFFFE; //Use independent configurations
+ EPT0->CR=(EPT0->CR&0xffffffcf)|EPT_PRDR_EventLoad_x;
+}
+/*************************************************************/
+//Deinitializes the EPT CMPX Load Config
+//EntryParameter:EPT_CMPX_EventLoad_x
+//EPT_CMPX_EventLoad_x:EPT_CMPX_EventLoad_DIS,EPT_CMPX_EventLoad_Immediate,EPT_CMPX_EventLoad_ZRO,
+//EPT_CMPX_EventLoad_PRD,EPT_CMPX_EventLoad_ExiLoad_SYNC
+/*************************************************************/
+//Unified load register:CMPA,CMPB,CMPC,CMPD
+void EPT_CMP_EventLoad_Config(EPT_CMPX_EventLoad_Type EPT_CMPX_EventLoad_x)
+{
+ EPT0->GLDCR&=0XFFFFFFFE; //Use independent configurations
+ if(EPT_CMPX_EventLoad_x==EPT_CMPX_EventLoad_DIS)
+ {
+ EPT0->CMPLDR=0;
+ }
+ else if(EPT_CMPX_EventLoad_x==EPT_CMPX_EventLoad_Immediate)
+ {
+ EPT0->CMPLDR=0xf;
+ }
+ else if(EPT_CMPX_EventLoad_x==EPT_CMPX_EventLoad_ZRO)
+ {
+ EPT0->CMPLDR=0x2410;
+ }
+ else if(EPT_CMPX_EventLoad_x==EPT_CMPX_EventLoad_PRD)
+ {
+ EPT0->CMPLDR=0x4920;
+ }
+ else if(EPT_CMPX_EventLoad_x==EPT_CMPX_EventLoad_ExiLoad_SYNC)
+ {
+ EPT0->CMPLDR=0x8240;
+ }
+}
+/*************************************************************/
+//Deinitializes the EPT AQCRX Load Config
+//EntryParameter:EPT_AQCRX_EventLoad_X
+//EPT_AQCRX_EventLoad_X:EPT_AQCRX_EventLoad_DIS,EPT_AQCRX_EventLoad_Immediate,EPT_AQCRX_EventLoad_ZRO,
+//EPT_AQCRX_EventLoad_PRD,EPT_AQCRX_EventLoad_ExiLoad_SYNC
+/*************************************************************/
+//Unified load register:AQCRA,AQCRB,AQCRC,AQCRD
+void EPT_AQCR_Eventload_Config(EPT_AQCRX_EventLoad_Type EPT_AQCRX_EventLoad_X)
+{
+ EPT0->GLDCR&=0XFFFFFFFE; //Use independent configurations
+ if(EPT_AQCRX_EventLoad_X==EPT_AQCRX_EventLoad_DIS)
+ {
+ EPT0->AQLDR=0;
+ }
+ else if(EPT_AQCRX_EventLoad_X==EPT_AQCRX_EventLoad_Immediate)
+ {
+ EPT0->AQLDR=0x303;
+ }
+ else if(EPT_AQCRX_EventLoad_X==EPT_AQCRX_EventLoad_ZRO)
+ {
+ EPT0->AQLDR=0x2424;
+ }
+ else if(EPT_AQCRX_EventLoad_X==EPT_AQCRX_EventLoad_PRD)
+ {
+ EPT0->AQLDR=0x4848;
+ }
+ else if(EPT_AQCRX_EventLoad_X==EPT_AQCRX_EventLoad_ExiLoad_SYNC)
+ {
+ EPT0->AQLDR=0x9090;
+ }
+}
+/*************************************************************/
+//Deinitializes the EPT DB Load Config
+//EntryParameter:EPT_DB_EventLoad_X
+//EPT_DB_EventLoad_X:EPT_DB_EventLoad_DIS,EPT_DB_EventLoad_Immediate,EPT_DB_EventLoad_ZRO,
+//EPT_DB_EventLoad_PRD,EPT_DB_EventLoad_ZRO_PRD
+/*************************************************************/
+//Unified load register:DBCR,DBDTR,DBDTF,DPSCR
+void EPT_DB_Eventload_Config(EPT_DB_EventLoad_Type EPT_DB_EventLoad_X)
+{
+ EPT0->GLDCR&=0XFFFFFFFE; //Use independent configurations
+ if(EPT_DB_EventLoad_X==EPT_DB_EventLoad_DIS)
+ {
+ EPT0->DBLDR=0X249;
+ }
+ else if(EPT_DB_EventLoad_X==EPT_DB_EventLoad_Immediate)
+ {
+ EPT0->DBLDR=0;
+ }
+ else if(EPT_DB_EventLoad_X==EPT_DB_EventLoad_ZRO)
+ {
+ EPT0->DBLDR=0X249|(0X01<<1)|(0X01<<4)|(0X01<<7)|(0X01<<10);
+ }
+ else if(EPT_DB_EventLoad_X==EPT_DB_EventLoad_PRD)
+ {
+ EPT0->DBLDR=0X249|(0X02<<1)|(0X02<<4)|(0X02<<7)|(0X02<<10);
+ }
+ else if(EPT_DB_EventLoad_X==EPT_DB_EventLoad_ZRO_PRD)
+ {
+ EPT0->DBLDR=0X249|(0X03<<1)|(0X03<<4)|(0X03<<7)|(0X03<<10);
+ }
+}
+/*************************************************************/
+//EPT EVTRG Config
+//EntryParameter:EPT_TRGSRCX_Select,EPT_EVTRG_TRGSRCX_X,EPT_TRGSRCX_CMD,TRGEVXPRD
+//EPT_TRGSRCX_Select:EPT_TRGSRC0,EPT_TRGSRC1,EPT_TRGSRC2,EPT_TRGSRC3
+//EPT_EVTRG_TRGSRCX_X:
+//EPT_TRGSRCX_CMD:
+//TRGEVXPRD:0~0xf
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_TRGSRCX_Config(EPT_TRGSRCX_Select_Type EPT_TRGSRCX_Select , EPT_EVTRG_TRGSRCX_TypeDef EPT_EVTRG_TRGSRCX_X , EPT_TRGSRCX_CMD_TypeDef EPT_TRGSRCX_CMD , U8_T TRGEVXPRD)
+{
+ if(EPT_TRGSRCX_Select==EPT_TRGSRC0)
+ {
+ EPT0->EVTRG=(EPT0->EVTRG&0xffeffff0)|(EPT_EVTRG_TRGSRCX_X<<0)|(EPT_TRGSRCX_CMD<<20);
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC1)
+ {
+ EPT0->EVTRG=(EPT0->EVTRG&0xffdfff0f)|(EPT_EVTRG_TRGSRCX_X<<4)|(EPT_TRGSRCX_CMD<<21);
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC2)
+ {
+ EPT0->EVTRG=(EPT0->EVTRG&0xffbff0ff)|(EPT_EVTRG_TRGSRCX_X<<8)|(EPT_TRGSRCX_CMD<<22);
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC3)
+ {
+ EPT0->EVTRG=(EPT0->EVTRG&0xff7f0fff)|(EPT_EVTRG_TRGSRCX_X<<12)|(EPT_TRGSRCX_CMD<<23);
+ }
+ EPT0->EVTRG|=0x0f0f0000;
+}
+/*************************************************************/
+//EPT EVTRG SWFTRG
+//EntryParameter:EPT_TRGSRCX_Select
+//EPT_TRGSRCX_Select:EPT_TRGSRC0,EPT_TRGSRC1,EPT_TRGSRC2,EPT_TRGSRC3
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_TRGSRCX_SWFTRG(EPT_TRGSRCX_Select_Type EPT_TRGSRCX_Select)
+{
+ if(EPT_TRGSRCX_Select==EPT_TRGSRC0)
+ {
+ EPT0->EVSWF|=0X01;
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC1)
+ {
+ EPT0->EVSWF|=0X02;
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC2)
+ {
+ EPT0->EVSWF|=0X04;
+ }
+ else if(EPT_TRGSRCX_Select==EPT_TRGSRC3)
+ {
+ EPT0->EVSWF|=0X08;
+ }
+}
+/*************************************************************/
+//EPT INT ENABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_Int_Enable(EPT_INT_TypeDef EPT_X_INT)
+{
+ EPT0->ICR = EPT_X_INT; //clear LVD INT status
+ EPT0->IMCR |= EPT_X_INT;
+}
+/*************************************************************/
+//EPT INT DISABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_Int_Disable(EPT_INT_TypeDef EPT_X_INT)
+{
+ EPT0->IMCR &= ~EPT_X_INT;
+}
+/*************************************************************/
+//EPT EMINT ENABLE.
+//EntryParameter:EPT_X_EMINT
+//EPT_X_EMINT:EPT_EP0_EMINT~EPT_EP7_EMINT,EPT_CPU_FAULT_EMINT,EPT_MEM_FAULT_EMINT,EPT_EOM_FAULT_EMINT
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_EMInt_Enable(EPT_EMINT_TypeDef EPT_X_EMINT)
+{
+ EPT0->EMICR = EPT_X_EMINT; //clear LVD INT status
+ EPT0->EMIMCR |= EPT_X_EMINT;
+}
+/*************************************************************/
+//EPT EMINT DISABLE.
+//EntryParameter:EPT_X_EMINT
+//EPT_X_EMINT:EPT_EP0_EMINT~EPT_EP7_EMINT,EPT_CPU_FAULT_EMINT,EPT_MEM_FAULT_EMINT,EPT_EOM_FAULT_EMINT
+//ReturnValue: NONE
+/*************************************************************/
+void EPT_EMInt_Disable(EPT_EMINT_TypeDef EPT_X_EMINT)
+{
+ EPT0->EMIMCR &= ~EPT_X_EMINT;
+}
+/*************************************************************/
+//EPT INT VECTOR enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Vector_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EPT0_INT);
+}
+/*************************************************************/
+//EPT INT VECTOR disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_Vector_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EPT0_INT);
+}
+/*************************************************************/
+//Deinitializes the EPT EP0~EP7 Config
+//EntryParameter:EPT_EPX,EPT_Input_selecte_x,EPT_FLT_PACE0_x,EPT_FLT_PACE1_x,EPT_EPIX_POL
+//EPT_EPX:EPT_EP0,EPT_EP1,EPT_EP2,EPT_EP3,EPT_EP4,EPT_EP5,EPT_EP6,EPT_EP7
+//EPT_Input_selecte_x:EPT_Input_selecte_EPI0~EPT_Input_selecte_EPI5,EPT_Input_selecte_ORL0,EPT_Input_selecte_ORL1
+//EPT_FLT_PACE0_x:EPT_FLT_PACE0_DIS~EPT_FLT_PACE0_4CLK(EP0~EP3)
+//EPT_FLT_PACE1_x:EPT_FLT_PACE1_DIS~EPT_FLT_PACE1_4CLK(EP4~EP7)
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_EPX_Config(EPT_EPX_Type EPT_EPX , EPT_Input_selecte_Type EPT_Input_selecte_x , EPT_FLT_PACE0_Type EPT_FLT_PACE0_x , EPT_FLT_PACE1_Type EPT_FLT_PACE1_x , U8_T ORL0_EPIx , U8_T ORL1_EPIx)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ if(EPT_EPX==EPT_EP0)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFFFFFFF0)|(EPT_Input_selecte_x<<0);
+ }
+ else if(EPT_EPX==EPT_EP1)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFFFFFF0F)|(EPT_Input_selecte_x<<4);
+ }
+ else if(EPT_EPX==EPT_EP2)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFFFFF0FF)|(EPT_Input_selecte_x<<8);
+ }
+ else if(EPT_EPX==EPT_EP3)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFFFF0FFF)|(EPT_Input_selecte_x<<12);
+ }
+ else if(EPT_EPX==EPT_EP4)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFFF0FFFF)|(EPT_Input_selecte_x<<16);
+ }
+ else if(EPT_EPX==EPT_EP5)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XFF0FFFFF)|(EPT_Input_selecte_x<<20);
+ }
+ else if(EPT_EPX==EPT_EP6)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0XF0FFFFFF)|(EPT_Input_selecte_x<<24);
+ }
+ else if(EPT_EPX==EPT_EP7)
+ {
+ EPT0->EMSRC=(EPT0->EMSRC&0X0FFFFFFF)|(EPT_Input_selecte_x<<28);
+ }
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->EMSRC2=ORL0_EPIx|(ORL1_EPIx<<16)|EPT_FLT_PACE0_x|EPT_FLT_PACE1_x;
+}
+/*************************************************************/
+//Deinitializes EPT_EPIX POL Config
+//EntryParameter:EPT_EPIX_POL
+//EPT_EPIX_POL:BIT0->EPI0(0:Active high 1:Active low),BIT1->EPI1(0:Active high 1:Active low),
+//BIT2->EPI2(0:Active high 1:Active low),BIT3->EPI3(0:Active high 1:Active low),BIT4->EPI4(0:Active high 1:Active low)
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_EPIX_POL_Config(U8_T EPT_EPIX_POL)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->EMPOL=EPT_EPIX_POL;
+}
+/*************************************************************/
+//EPT EM Config
+//EntryParameter:EPT_LKCR_TRG_X,EPT_LKCR_Mode_X
+//EPT_LKCR_TRG_X:EPT_LKCR_TRG_EP0~EPT_LKCR_TRG_EP7,EPT_LKCR_TRG_CPU_FAULT,EPT_LKCR_TRG_MEM_FAULT,EPT_LKCR_TRG_EOM_FAULT
+//EPT_LKCR_Mode_X:EPT_LKCR_Mode_LOCK_DIS,EPT_LKCR_Mode_SLOCK_EN,EPT_LKCR_Mode_HLOCK_EN,EPT_LKCR_TRG_X_FAULT_HLOCK_EN,EPT_LKCR_TRG_X_FAULT_HLOCK_DIS
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_LKCR_TRG_Config(EPT_LKCR_TRG_Source_Type EPT_LKCR_TRG_X , EPT_LKCR_Mode_Type EPT_LKCR_Mode_X)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->EMECR|=(0X01<<21)|(0X01<<22)|(0X02<<24); //EMOSR CNT=ZRO load,Automatically clear soft lock when CNT=ZRO&PRD
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ if(EPT_LKCR_TRG_X==EPT_LKCR_TRG_CPU_FAULT)
+ {
+ if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_EN)
+ {
+ EPT0->EMECR|=(0x01<<28);
+ }
+ else if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_DIS)
+ {
+ EPT0->EMECR&=~(0x01<<28);
+ }
+ }
+ else if(EPT_LKCR_TRG_X==EPT_LKCR_TRG_MEM_FAULT)
+ {
+ if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_EN)
+ {
+ EPT0->EMECR|=(0x01<<29);
+ }
+ else if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_DIS)
+ {
+ EPT0->EMECR&=~(0x01<<29);
+ }
+ }
+ else if(EPT_LKCR_TRG_X==EPT_LKCR_TRG_EOM_FAULT)
+ {
+ if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_EN)
+ {
+ EPT0->EMECR|=(0x01<<30);
+ }
+ else if(EPT_LKCR_Mode_X==EPT_LKCR_TRG_X_FAULT_HLOCK_DIS)
+ {
+ EPT0->EMECR&=~(0x01<<30);
+ }
+ }
+ else
+ {
+ EPT0->EMECR|=(EPT_LKCR_Mode_X<<(EPT_LKCR_TRG_X))|(0X01<<26);
+ }
+}
+/*************************************************************/
+//EPT EM Config
+//EntryParameter:EPT_OUTPUT_Channel_X,EPT_SHLOCK_OUTPUT_X
+//EPT_OUTPUT_Channel_X:EPT_OUTPUT_Channel_CHAX,EPT_OUTPUT_Channel_CHAY,EPT_OUTPUT_Channel_CHBX,EPT_OUTPUT_Channel_CHBY
+//EPT_OUTPUT_Channel_CHCX,EPT_OUTPUT_Channel_CHCY,EPT_OUTPUT_Channel_CHD
+//EPT_SHLOCK_OUTPUT_X:EPT_SHLOCK_OUTPUT_HImpedance,EPT_SHLOCK_OUTPUT_High,EPT_SHLOCK_OUTPUT_Low,EPT_SHLOCK_OUTPUT_Nochange
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_SHLOCK_OUTPUT_Config(EPT_OUTPUT_Channel_Type EPT_OUTPUT_Channel_X , EPT_SHLOCK_OUTPUT_Statue_Type EPT_SHLOCK_OUTPUT_X)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->EMOSR|=EPT_SHLOCK_OUTPUT_X<EMSLCLR|=EPT_X_EMINT;
+}
+/*************************************************************/
+//EPT H lock clr
+//EntryParameter:EPT_X_EMINT
+//EPT_X_EMINT:EPT_EP0_EMINT~EPT_EP7_EMINT,EPT_CPU_FAULT_EMINT,EPT_MEM_FAULT_EMINT,EPT_EOM_FAULT_EMINT
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_HLock_CLR(EPT_EMINT_TypeDef EPT_X_EMINT)
+{
+ EPT0->EMHLCLR|=EPT_X_EMINT;
+}
+/*************************************************************/
+//EPT software lock SET
+//EntryParameter:EPT_X_EMINT
+//EPT_X_EMINT:EPT_EP0_EMINT~EPT_EP7_EMINT,EPT_CPU_FAULT_EMINT,EPT_MEM_FAULT_EMINT,EPT_EOM_FAULT_EMINT
+//ReturnValue:NONE
+/*************************************************************/
+void EPT_SW_Set_lock(EPT_EMINT_TypeDef EPT_X_EMINT)
+{
+ EPT0->REGPROT = (0xA55A<<16) | 0xC73A;
+ EPT0->EMFRCR|=EPT_X_EMINT;
+}
+/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_et.c b/Source/FWlib/apt32f102_et.c
new file mode 100644
index 0000000..f633abc
--- /dev/null
+++ b/Source/FWlib/apt32f102_et.c
@@ -0,0 +1,274 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_et.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+
+ /* Includes ------------------------------------------------------------------*/
+#include "apt32f102_et.h"
+
+
+/*************************************************************/
+//ET RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_DeInit(void)
+{
+ ETCB->EN = ET_RESET_VALUE;
+ ETCB->SWTRG = ET_RESET_VALUE;
+ ETCB->CH0CON0 = ET_RESET_VALUE;
+ ETCB->CH0CON1 = ET_RESET_VALUE;
+ ETCB->CH1CON0 = ET_RESET_VALUE;
+ ETCB->CH1CON1 = ET_RESET_VALUE;
+ ETCB->CH2CON0 = ET_RESET_VALUE;
+ ETCB->CH2CON1 = ET_RESET_VALUE;
+ ETCB->CH3CON = ET_RESET_VALUE;
+ ETCB->CH4CON = ET_RESET_VALUE;
+ ETCB->CH5CON = ET_RESET_VALUE;
+ ETCB->CH6CON = ET_RESET_VALUE;
+ ETCB->CH7CON = ET_RESET_VALUE;
+}
+/*************************************************************/
+//ET ENABLE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_ENABLE(void)
+{
+ ETCB->EN = 0x01;
+}
+/*************************************************************/
+//ET DISABLE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_DISABLE(void)
+{
+ ETCB->EN = 0x00;
+}
+/*************************************************************/
+//ET SWTRG Configure
+//EntryParameter:ETSWTRG_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_SWTRG_CMD(CRC_ETSWTRG_TypeDef ETSWTRG_X,FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ ETCB->SWTRG |= ETSWTRG_X;
+ }
+ else
+ {
+ ETCB->SWTRG &= ~ETSWTRG_X;
+ }
+}
+/*************************************************************/
+//ET CH0 source selection Configure
+//EntryParameter:ETSWTRG_X,NewState,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH0_SRCSEL(CRC_ESRCSEL_TypeDef ESRCSEL_X,FunctionalStatus NewState,U8_T SRCSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ if(ESRCSEL_X==0)
+ {
+ ETCB->CH0CON0 |= 0X01| (SRCSEL_X<<1);
+ }
+ if(ESRCSEL_X==1)
+ {
+ ETCB->CH0CON0 |= (0X01<<10)| (SRCSEL_X<<11);
+ }
+ if(ESRCSEL_X==2)
+ {
+ ETCB->CH0CON0 |= (0X01<<20)| (SRCSEL_X<<21);
+ }
+ }
+ else
+ {
+ if(ESRCSEL_X==0)
+ {
+ ETCB->CH0CON0 &= 0X01| (SRCSEL_X<<1);
+ }
+ if(ESRCSEL_X==1)
+ {
+ ETCB->CH0CON0 &= (0X00<<10)| (SRCSEL_X<<11);
+ }
+ if(ESRCSEL_X==2)
+ {
+ ETCB->CH0CON0 &= (0X00<<20)| (SRCSEL_X<<21);
+ }
+ }
+}
+/*************************************************************/
+//ET CHO CONTROL Configure
+//EntryParameter:NewState,TRIGMODEX,DSTSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH0_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ ETCB->CH0CON1 |= 0x01| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+ else
+ {
+ ETCB->CH0CON1 &= 0x00| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+
+}
+/*************************************************************/
+//ET CHI1 source selection Configure
+//EntryParameter:ETSWTRG_X,NewState,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH1_SRCSEL(CRC_DSTSEL_TypeDef DST_X,FunctionalStatus NewState,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ if(DST_X==0)
+ {
+ ETCB->CH1CON0 |= 0X01| (DSTSEL_X<<1);
+ }
+ if(DST_X==1)
+ {
+ ETCB->CH1CON0 |= (0X01<<10)| (DSTSEL_X<<11);
+ }
+ if(DST_X==2)
+ {
+ ETCB->CH1CON0 |= (0X01<<20)| (DSTSEL_X<<21);
+ }
+ }
+ else
+ {
+ if(DST_X==0)
+ {
+ ETCB->CH1CON0 &= 0X01| (DSTSEL_X<<1);
+ }
+ if(DST_X==1)
+ {
+ ETCB->CH1CON0 &= (0X00<<10)| (DSTSEL_X<<11);
+ }
+ if(DST_X==2)
+ {
+ ETCB->CH1CON0 &= (0X00<<20)| (DSTSEL_X<<21);
+ }
+ }
+}
+/*************************************************************/
+//ET CH1 CONTROL Configure
+//EntryParameter:NewState,TRIGMODEX,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH1_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ ETCB->CH1CON1 |= 0x01| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+ else
+ {
+ ETCB->CH1CON1 &= 0x00| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+
+}
+/*************************************************************/
+//ET CHI2 source selection Configure
+//EntryParameter:ETSWTRG_X,NewState,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH2_SRCSEL(CRC_DSTSEL_TypeDef DST_X,FunctionalStatus NewState,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ if(DST_X==0)
+ {
+ ETCB->CH2CON0 |= 0X01| (DSTSEL_X<<1);
+ }
+ if(DST_X==1)
+ {
+ ETCB->CH2CON0 |= (0X01<<10)| (DSTSEL_X<<11);
+ }
+ if(DST_X==2)
+ {
+ ETCB->CH2CON0 |= (0X01<<20)| (DSTSEL_X<<21);
+ }
+ }
+ else
+ {
+ if(DST_X==0)
+ {
+ ETCB->CH2CON0 &= 0X01| (DSTSEL_X<<1);
+ }
+ if(DST_X==1)
+ {
+ ETCB->CH2CON0 &= (0X00<<10)| (DSTSEL_X<<11);
+ }
+ if(DST_X==2)
+ {
+ ETCB->CH2CON0 &= (0X00<<20)| (DSTSEL_X<<21);
+ }
+ }
+}
+/*************************************************************/
+//ET CH2 CONTROL Configure
+//EntryParameter:NewState,TRIGMODEX,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CH2_CONTROL(FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ ETCB->CH2CON1 |= 0x01| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+ else
+ {
+ ETCB->CH2CON1 &= 0x00| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+
+}
+/*************************************************************/
+//ET CH3~7 source selection/CONTROL Configure
+//EntryParameter:NewState,TRIGMODEX,SRCSEL_X
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void ET_CHx_CONTROL(CRC_ETCHX_TypeDef ETCHX,FunctionalStatus NewState,CRC_TRIGMODE_TypeDef TRIGMODEX,U8_T SRCSEL_X,U8_T DSTSEL_X)
+{
+ if (NewState != DISABLE)
+ {
+ if(ETCHX==0)ETCB->CH3CON |= 0x01|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==1)ETCB->CH4CON |= 0x01|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==2)ETCB->CH5CON |= 0x01|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==3)ETCB->CH6CON |= 0x01|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==4)ETCB->CH7CON |= 0x01|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+ else
+ {
+ if(ETCHX==0)ETCB->CH3CON &= 0x00|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==1)ETCB->CH4CON &= 0x00|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==2)ETCB->CH5CON &= 0x00|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==3)ETCB->CH6CON &= 0x00|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ if(ETCHX==4)ETCB->CH7CON &= 0x00|(SRCSEL_X<<12)| (DSTSEL_X<<26)| TRIGMODEX;
+ }
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_gpio.c b/Source/FWlib/apt32f102_gpio.c
new file mode 100644
index 0000000..15c6744
--- /dev/null
+++ b/Source/FWlib/apt32f102_gpio.c
@@ -0,0 +1,508 @@
+/*
+ ******************************************************************************
+ * @file main.c
+ * @author APT AE Team
+ * @version V1.10
+ * @date 2021/08/25
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_gpio.h"
+
+/* define --------------------------------------------------------------------*/
+
+/* externs--------------------------------------------------------------------*/
+/*************************************************************/
+//IO RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_DeInit(void)
+{
+ GPIOA0->CONLR &= 0xFF000000;
+ GPIOA0->CONHR = GPIO_RESET_VALUE;
+ GPIOB0->CONLR = GPIO_RESET_VALUE;
+ GPIOB0->CONHR = GPIO_RESET_VALUE;
+ GPIOA0->WODR = GPIO_RESET_VALUE;
+ GPIOB0->WODR = GPIO_RESET_VALUE;
+ GPIOA0->SODR = GPIO_RESET_VALUE;
+ GPIOB0->SODR = GPIO_RESET_VALUE;
+ GPIOA0->CODR = GPIO_RESET_VALUE;
+ GPIOB0->CODR = GPIO_RESET_VALUE;
+ GPIOA0->ODSR = GPIO_RESET_VALUE;
+ GPIOB0->ODSR = GPIO_RESET_VALUE;
+ GPIOA0->PSDR = GPIO_RESET_VALUE;
+ GPIOB0->PSDR = GPIO_RESET_VALUE;
+ GPIOA0->FLTEN = 0xffff;
+ GPIOB0->FLTEN = 0x3f;
+ GPIOA0->PUDR = GPIO_RESET_VALUE;
+ GPIOB0->PUDR = GPIO_RESET_VALUE;
+ GPIOA0->DSCR = GPIO_RESET_VALUE;
+ GPIOB0->DSCR = GPIO_RESET_VALUE;
+ GPIOA0->OMCR = GPIO_RESET_VALUE;
+ GPIOB0->OMCR = GPIO_RESET_VALUE;
+ GPIOA0->IECR = GPIO_RESET_VALUE;
+ GPIOB0->IECR = GPIO_RESET_VALUE;
+ GPIOGRP->IGRPL = GPIO_RESET_VALUE;
+ GPIOGRP->IGRPH = GPIO_RESET_VALUE;
+ GPIOGRP->IGREX = GPIO_RESET_VALUE;
+ GPIOGRP->IO_CLKEN = 0xf;
+}
+/*************************************************************/
+//IO OUTPUT INPUT SET 2
+//EntryParameter:GPIOx,byte,val
+//GPIOx:GPIOA0,GPIOB0
+//byte:Lowbyte(PIN_0~7),Highbyte(PIN_8~15)
+//val:0x0000000~0xFFFFFFFF
+//val=0x11111111 all IO as input
+//val=0x22222222 all IO as output
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_Init2(CSP_GPIO_T *GPIOx,GPIO_byte_TypeDef byte,uint32_t val)
+{
+ if (byte==0)
+ {
+ (GPIOx)->CONLR=val;
+ }
+ else if(byte==1)
+ {
+ (GPIOx)->CONHR=val;
+ }
+}
+/*************************************************************/
+//IO OUTPUT INPUT SET 1
+//EntryParameter:GPIOx,GPIO_Pin(0~15),byte,Dir
+//GPIOx:GPIOA0,GPIOB0
+//GPIO_Pin:PIN_0~15
+//byte:Lowbyte(PIN_0~7),Highbyte(PIN_8~15)
+//Dir:0:output 1:input
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_Init(CSP_GPIO_T *GPIOx,uint8_t PinNum,GPIO_Dir_TypeDef Dir)
+{
+ uint32_t data_temp;
+ uint8_t GPIO_Pin;
+ if(PinNum<8)
+ {
+ switch (PinNum)
+ {
+ case 0:data_temp=0xfffffff0;GPIO_Pin=0;break;
+ case 1:data_temp=0xffffff0f;GPIO_Pin=4;break;
+ case 2:data_temp=0xfffff0ff;GPIO_Pin=8;break;
+ case 3:data_temp=0xffff0fff;GPIO_Pin=12;break;
+ case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break;
+ case 5:data_temp=0xff0fffff;GPIO_Pin=20;break;
+ case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ case 7:data_temp=0x0fffffff;GPIO_Pin=28;break;
+ }
+ if (Dir)
+ {
+ (GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<CONLR = ((GPIOx)->CONLR & data_temp) | 2<CONHR = ((GPIOx)->CONHR & data_temp) | 1<CONHR = ((GPIOx)->CONHR & data_temp) | 2<CONLR = (GPIOx)->CONLR & data_temp;
+ }
+ else if (PinNum<16)
+ {
+ switch (PinNum)
+ {
+ case 8:data_temp=0xfffffff0;break;
+ case 9:data_temp=0xffffff0f;break;
+ case 10:data_temp=0xfffff0ff;break;
+ case 11:data_temp=0xffff0fff;break;
+ case 12:data_temp=0xfff0ffff;break;
+ case 13:data_temp=0xff0fffff;break;
+ case 14:data_temp=0xf0ffffff;break;
+ case 15:data_temp=0x0fffffff;break;
+ }
+ (GPIOx)->CONHR = (GPIOx)->CONHR & data_temp;
+ }
+}
+/*************************************************************/
+//IO OUTPUT INPUT SET
+//EntryParameter:IO_MODE,GPIOx,val
+//GPIOx:GPIOA0,GPIOB0
+//IO_MODE:PUDR(IO PULL HIGH/LOW)
+//IO_MODE:DSCR(IO DRIVE STRENGHT)
+//IO_MODE:OMCR(OUTPUT MODE SET)
+//IO_MODE:IECR(IO INT ENABLE)
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_MODE_Init(CSP_GPIO_T *GPIOx,GPIO_Mode_TypeDef IO_MODE,uint32_t val)
+{
+ switch (IO_MODE)
+ {
+ case PUDR:(GPIOx)->PUDR = val;break;
+ case DSCR:(GPIOx)->DSCR = val;break;
+ case OMCR:(GPIOx)->OMCR = val;break;
+ case IECR:(GPIOx)->IECR = val;break;
+ }
+}
+/*************************************************************/
+//Write GPIO pull high/low
+//EntryParameter:GPIOx,uint8_t bit
+//GPIOx:GPIOA0,GPIOB0
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_PullHigh_Init(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->PUDR = (((GPIOx)->PUDR) & ~(0x03<<(bit*2))) | (0x01<<(bit*2));
+}
+void GPIO_PullLow_Init(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->PUDR = (((GPIOx)->PUDR) & ~(0x03<<(bit*2))) | (0x02<<(bit*2));
+}
+void GPIO_PullHighLow_DIS(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->PUDR = ((GPIOx)->PUDR) & ~(0x03<<(bit*2));
+}
+/*************************************************************/
+//Write GPIO open drain init
+//EntryParameter:GPIOx,uint8_t bit
+//GPIOx:GPIOA0,GPIOB0
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_OpenDrain_EN(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->OMCR = ((GPIOx)->OMCR) | (0x01<OMCR = ((GPIOx)->OMCR) & ~(0x01<DSCR = ((GPIOx)->DSCR) & ~(0x01<<(bit*2+1));
+ }
+ else
+ {
+ (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2+1));
+ if(INPUT_MODE_SETECTED_X==INPUT_MODE_SETECTED_TTL1)
+ {
+ (GPIOx)->OMCR = ((GPIOx)->OMCR) | (0x01<<(bit+16));
+ }
+ else if(INPUT_MODE_SETECTED_X==INPUT_MODE_SETECTED_TTL2)
+ {
+ (GPIOx)->OMCR = ((GPIOx)->OMCR) & ~(0x01<<(bit+16));
+ }
+ }
+}
+/*************************************************************/
+//Write GPIO Drive Strength init
+//EntryParameter:GPIOx,uint8_t bit
+//GPIOx:GPIOA0,GPIOB0
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2));
+}
+void GPIO_DriveStrength_DIS(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->DSCR = ((GPIOx)->DSCR) & ~(0x01<<(bit*2));
+}
+/*************************************************************/
+//IO OUTPUT INPUT SET
+//EntryParameter:
+//IO_MODE:IGRP(IO INT GROUP)
+//PinNumï¼0~15
+//SYSCON_EXIPIN_TypeDef:EXI_PIN0~EXI_PIN19
+//EXI0~EXI15:GPIOA0,GPIOB0
+//EXI16~EXI17:GPIOA0.0~GPIOA0.7
+//EXI18~EXI19:GPIOB0.0~GPIOB0.3
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_IntGroup_Set(GPIO_Group_TypeDef IO_MODE , uint8_t PinNum , GPIO_EXIPIN_TypeDef Selete_EXI_x)
+{
+ volatile unsigned int R_data_temp;
+ volatile unsigned char R_GPIO_Pin;
+ if(Selete_EXI_x<16)
+ {
+ if((Selete_EXI_x==0)||(Selete_EXI_x==8))
+ {
+ R_data_temp=0xfffffff0;
+ R_GPIO_Pin=0;
+ }
+ else if((Selete_EXI_x==1)||(Selete_EXI_x==9))
+ {
+ R_data_temp=0xffffff0f;
+ R_GPIO_Pin=4;
+ }
+ else if((Selete_EXI_x==2)||(Selete_EXI_x==10))
+ {
+ R_data_temp=0xfffff0ff;
+ R_GPIO_Pin=8;
+ }
+ else if((Selete_EXI_x==3)||(Selete_EXI_x==11))
+ {
+ R_data_temp=0xffff0fff;
+ R_GPIO_Pin=12;
+ }
+ else if((Selete_EXI_x==4)||(Selete_EXI_x==12))
+ {
+ R_data_temp=0xfff0ffff;
+ R_GPIO_Pin=16;
+ }
+ else if((Selete_EXI_x==5)||(Selete_EXI_x==13))
+ {
+ R_data_temp=0xff0fffff;
+ R_GPIO_Pin=20;
+ }
+ else if((Selete_EXI_x==6)||(Selete_EXI_x==14))
+ {
+ R_data_temp=0xf0ffffff;
+ R_GPIO_Pin=24;
+ }
+ else if((Selete_EXI_x==7)||(Selete_EXI_x==15))
+ {
+ R_data_temp=0x0fffffff;
+ R_GPIO_Pin=28;
+ }
+ if(Selete_EXI_x<8)
+ {
+ GPIOGRP->IGRPL =(GPIOGRP->IGRPL & R_data_temp) | (IO_MODE<=8))
+ {
+ GPIOGRP->IGRPH =(GPIOGRP->IGRPH & R_data_temp) | (IO_MODE<IGREX =(GPIOGRP->IGREX)|PinNum;
+ }
+ else if(Selete_EXI_x==17)
+ {
+ GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<4);
+ }
+ }
+ else if((IO_MODE==2)&&((Selete_EXI_x==18)||(Selete_EXI_x==19))) //PB0.0~PB0.3
+ {
+ if(Selete_EXI_x==18)
+ {
+ GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<8);
+ }
+ else if(Selete_EXI_x==19)
+ {
+ GPIOGRP->IGREX=(GPIOGRP->IGREX)|(PinNum<<12);
+ }
+ }
+ }
+}
+/*************************************************************/
+//IO EXI SET
+//EntryParameter:EXI_IO(EXI0~EXI13)
+//ReturnValue:NONE
+/*************************************************************/
+void GPIOA0_EXI_Init(GPIO_EXI_TypeDef EXI_IO)
+{
+ switch (EXI_IO)
+ {
+ case 0:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0X00000001;break;
+ case 1:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0X00000010;break;
+ case 2:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000100;break;
+ case 3:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0X00001000;break;
+ case 4:GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0X00010000;break;
+ case 5:GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0X00100000;break;
+ case 6:GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0X01000000;break;
+ case 7:GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0X10000000;break;
+ case 8:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000001;break;
+ case 9:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFF0F) | 0X00000010;break;
+ case 10:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFF0FF) | 0X00000100;break;
+ case 11:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF0FFF) | 0X00001000;break;
+ case 12:GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0X00010000;break;
+ case 13:GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0X00100000;break;
+ case 14:GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0X01000000;break;
+ case 15:GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0X10000000;break;
+ }
+}
+void GPIOB0_EXI_Init(GPIO_EXI_TypeDef EXI_IO)
+{
+ switch (EXI_IO)
+ {
+ case 0:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0X00000001;break;
+ case 1:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFF0F) | 0X00000010;break;
+ case 2:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0X00000100;break;
+ case 3:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF0FFF) | 0X00001000;break;
+ case 4:GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0X00010000;break;
+ case 5:GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0X00100000;break;
+ default:break;
+ }
+}
+void GPIO_EXI_EN(CSP_GPIO_T *GPIOx,GPIO_EXI_TypeDef EXI_IO)
+{
+ (GPIOx)->IECR |= 1<SODR = (1ul<CODR = (1ul<SODR = (1ul<CODR = (1ul<ODSR>>bit)&1ul;
+ {
+ if (dat==1)
+ {
+ (GPIOx)->CODR = (1ul<SODR = (1ul<PSDR)&(1<ODSR)&(1<CEDR = 0xBE980000;
+ GPT0->RSSR = GPT_RESET_VALUE;
+ GPT0->PSCR = GPT_RESET_VALUE;
+ GPT0->CR = 0X00010010;
+ GPT0->SYNCR = GPT_RESET_VALUE;
+ GPT0->GLDCR = GPT_RESET_VALUE;
+ GPT0->GLDCFG = GPT_RESET_VALUE;
+ GPT0->GLDCR2 = GPT_RESET_VALUE;
+ GPT0->PRDR = GPT_RESET_VALUE;
+ GPT0->CMPA = GPT_RESET_VALUE;
+ GPT0->CMPB = GPT_RESET_VALUE;
+ GPT0->CMPLDR = 0X00002490;
+ GPT0->CNT = GPT_RESET_VALUE;
+ GPT0->AQLDR = 0X00000024;
+ GPT0->AQCRA = GPT_RESET_VALUE;
+ GPT0->AQCRB = GPT_RESET_VALUE;
+ GPT0->AQOSF = 0X00000100;
+ GPT0->AQCSF = GPT_RESET_VALUE;
+ GPT0->TRGFTCR = GPT_RESET_VALUE;
+ GPT0->TRGFTWR = GPT_RESET_VALUE;
+ GPT0->EVTRG = GPT_RESET_VALUE;
+ GPT0->EVPS = GPT_RESET_VALUE;
+ GPT0->EVCNTINIT = GPT_RESET_VALUE;
+ GPT0->EVSWF = GPT_RESET_VALUE;
+ GPT0->RISR = GPT_RESET_VALUE;
+ GPT0->MISR = GPT_RESET_VALUE;
+ GPT0->IMCR = GPT_RESET_VALUE;
+ GPT0->ICR = GPT_RESET_VALUE;
+ GPT0->REGLINK = GPT_RESET_VALUE;
+}
+/*************************************************************/
+//GPT IO Init
+//EntryParameter:GPT_CHA_PB01,GPT_CHA_PA09,GPT_CHA_PA010,GPT_CHB_PA010,GPT_CHB_PA011,GPT_CHB_PB00,GPT_CHB_PB01
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_IO_Init(GPT_IOSET_TypeDef IONAME)
+{
+ if(IONAME==GPT_CHA_PB01)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050;
+ }
+ if(IONAME==GPT_CHA_PA09)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050;
+ }
+ if(IONAME==GPT_CHA_PA010)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600;
+ }
+ if(IONAME==GPT_CHB_PA010)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700;
+ }
+ if(IONAME==GPT_CHB_PA011)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000;
+ }
+ if(IONAME==GPT_CHB_PB00)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004;
+ }
+ if(IONAME==GPT_CHB_PB01)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060;
+ }
+}
+
+/*************************************************************/
+//GPT Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX)
+{
+ GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX;
+ GPT0->PSCR=GPSCX;
+}
+/*************************************************************/
+//GPT Wave control Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+//GPT0->CR = (0X0<<0)|(0x00<<2)|(0x01<<3)|(0x00<<4)|(0X00<<6)|(0x01<<18)|(0x00<<9)|(0X00<<10)|(0x00<<11)|(0x00<<13) ;
+//GPT0->CMPLDR=(0X00<<0)|(0X00<<1)|(0X03<<4)|(0X03<<7);
+void GPT_WaveCtrl_Configure(GPT_CNTMD_TypeDef GCNTMDX,GPT_SWSYN_TypeDef GSWSYNX,GPT_IDLEST_TypeDef GIDLEX,GPT_PRDLD0_TypeDef GPRDLD0,GPT_OPM_TypeDef GOPMX,
+ GPT_BURST_TypeDef GBURSTX,GPT_CKS_TypeDef GCKS,GPT_CGSRC_TypeDef CGSRCX,GPT_CGFLT_TypeDef CGFLT,GPT_PSCLD_TypeDef PSCLDX)
+{
+ GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE;
+}
+
+/*************************************************************/
+//GPT Wave control Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_WaveLoad_Configure(GPT_SHDWAQA_TypeDef SHDWAQAX,GPT_SHDWAQB_TypeDef SHDWAQBX,GPT_AQLDA_TypeDef AQLDAX, GPT_AQLDB_TypeDef AQLDBX)
+{
+ GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX;
+}
+/*************************************************************/
+//GPT Wave A OUT Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_WaveOut_Configure(GPT_GPTCHX_TypeDef GPTCHX,GPT_CASEL_TypeDef CASELX,GPT_CBSEL_TypeDef CBSELX,U8_T ZROX,U8_T PRDX,U8_T CAUX,
+ U8_T CADX,U8_T CBUX,U8_T CBDX,U8_T T1UX,U8_T T1DX,U8_T T2UX,U8_T T2DX)
+{
+ if(GPTCHX==GPT_CHA)
+ {
+ GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
+ }
+ if(GPTCHX==GPT_CHB)
+ {
+ GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
+ }
+}
+/*************************************************************/
+//Deinitializes the GPT Caputer Config
+//EntryParameter:GPT_CNTMD_SELECTE_X,GPT_CAPMD_SELECTE_X,GPT_LOAD_CMPA_RST_CMD~GPT_LOAD_CMPB_RST_CMD,GPT_STOP_WRAP,GPT_PSCR
+//GPT_CNTMD_SELECTE_X:GPT_CNTMD_increase,GPT_CNTMD_decrease,GPT_CNTMD_increaseTOdecrease
+//GPT_CAPMD_SELECTE_X:GPT_CAPMD_Once,GPT_CAPMD_Continue
+//GPT_LOAD_CMPA_RST_CMD:GPT_LDARST_EN,GPT_LDARST_DIS
+//GPT_LOAD_CMPB_RST_CMD:GPT_LDBRST_EN,GPT_LDBRST_DIS
+//GPT_STOP_WRAP:0~3
+//GPT_PSCR:0~0XFFFF
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Capture_Config(GPT_CNTMD_SELECTE_Type GPT_CNTMD_SELECTE_X , GPT_CAPMD_SELECTE_Type GPT_CAPMD_SELECTE_X , GPT_CAPLDEN_TypeDef CAP_CMD
+ , GPT_LDARST_TypeDef GPT_LOAD_CMPA_RST_CMD , GPT_LDBRST_TypeDef GPT_LOAD_CMPB_RST_CMD ,
+ GPT_LOAD_CMPC_RST_CMD_Type GPT_LOAD_CMPC_RST_CMD , GPT_LOAD_CMPD_RST_CMD_Type GPT_LOAD_CMPD_RST_CMD, U8_T GPT_STOP_WRAP )
+{
+ GPT0->CR=(GPT0->CR&0xf800fec0)|GPT_CNTMD_SELECTE_X|(0x0<<2)|(0x0<<3)|(0x0<<4)|CAP_CMD|GPT_CAPMD_SELECTE_X|(0X0<<16)|(0x0<<18)|(GPT_STOP_WRAP<<21)|
+ GPT_LOAD_CMPA_RST_CMD|GPT_LOAD_CMPB_RST_CMD|GPT_LOAD_CMPC_RST_CMD|GPT_LOAD_CMPD_RST_CMD;
+}
+/*************************************************************/
+//GPT SYNC Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_SyncSet_Configure(GPT_SYNCENX_TypeDef SYNCENx,GPT_OSTMDX_TypeDef OSTMDx,GPT_TXREARM0_TypeDef TXREARM0x,GPT_TRGO0SEL_TypeDef TRGO0SELx,
+ GPT_TRGO1SEL_TypeDef TRGO1SELx,GPT_AREARM_TypeDef AREARMx)
+{
+ GPT0->SYNCR |= SYNCENx| OSTMDx| TXREARM0x |TRGO0SELx|TRGO1SELx|AREARMx;
+}
+/*************************************************************/
+//GPT Trigger Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Trigger_Configure(GPT_SRCSEL_TypeDef SRCSELx,GPT_BLKINV_TypeDef BLKINVx,GPT_ALIGNMD_TypeDef ALIGNMDx,GPT_CROSSMD_TypeDef CROSSMDx,
+ U16_T G_OFFSET_DATA,U16_T G_WINDOW_DATA)
+{
+ GPT0->TRGFTCR |= SRCSELx| BLKINVx|ALIGNMDx| CROSSMDx;
+ GPT0->TRGFTWR |= G_OFFSET_DATA |(G_WINDOW_DATA<<16);
+
+}
+/*************************************************************/
+//GPT Trigger Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_EVTRG_Configure(GPT_TRGSRC0_TypeDef TRGSRC0x,GPT_TRGSRC1_TypeDef TRGSRC1x,GPT_ESYN0OE_TypeDef ESYN0OEx,GPT_ESYN1OE_TypeDef ESYN1OEx,
+ GPT_CNT0INIT_TypeDef CNT0INITx,GPT_CNT1INIT_TypeDef CNT1INITx,U8_T TRGEV0prd,U8_T TRGEV1prd,U8_T TRGEV0cnt,U8_T TRGEV1cnt)
+{
+ GPT0->EVTRG |= TRGSRC0x |TRGSRC1x|ESYN0OEx|ESYN1OEx|CNT0INITx|CNT1INITx;
+ GPT0->EVPS |= TRGEV0prd|(TRGEV1prd<<4)|(TRGEV0cnt<<16)|(TRGEV1cnt<<20);
+}
+/*************************************************************/
+//GPT OneceForce Out
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_OneceForce_Out(GPT_CHAFORCE_TypeDef CHAFORCEX,U8_T AFORCE_STATUS,GPT_CHBFORCE_TypeDef CHBFORCEX,U8_T BFORCE_STATUS,GPT_FORCELD_TypeDef FORCELDX)
+{
+ GPT0->AQOSF =CHAFORCEX|CHBFORCEX|FORCELDX|(AFORCE_STATUS<<1)|(BFORCE_STATUS<<5);
+}
+/*************************************************************/
+//GPT Continue Force Out
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Force_Out(GPT_FORCEA_TypeDef FORCEAX,GPT_FORCEB_TypeDef FORCEBX)
+{
+ GPT0->AQCSF =FORCEAX|FORCEBX;
+}
+/*************************************************************/
+//GPT Wave Compare Load Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_CmpLoad_Configure(GPT_SHDWCMPA_TypeDef SHDWCMPAX,GPT_SHDWCMPB_TypeDef SHDWCMPBX,GPT_LDAMD_TypeDef LDAMDX,GPT_LDBMD_TypeDef LDBMDX)
+{
+ GPT0->CMPLDR=SHDWCMPAX|SHDWCMPBX|LDAMDX|LDBMDX;
+}
+/*************************************************************/
+//GPT DEBUG MODE
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Debug_Mode(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ GPT0->CEDR |= GPT_DEBUG_MODE;
+ }
+ else
+ {
+ GPT0->CEDR &= ~GPT_DEBUG_MODE;
+ }
+}
+/*************************************************************/
+// GPT start
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Start(void)
+{
+ GPT0->RSSR |= 0X01;
+}
+/*************************************************************/
+// GPT stop
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Stop(void)
+{
+ GPT0->RSSR &= 0XFFFFFFFE;
+}
+/*************************************************************/
+// GPT soft reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Soft_Reset(void)
+{
+ GPT0->RSSR |= (0X5<<12);
+}
+/*************************************************************/
+// GPT Capture rearm
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Cap_Rearm(void)
+{
+ GPT0->CR |= (0X01<<19);
+}
+/*************************************************************/
+// GPT MODE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Mode_CMD(GPT_WAVE_TypeDef WAVEX)
+{
+ GPT0->CR |= WAVEX;
+}
+/*************************************************************/
+// GPT soft reset at once sync mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_REARM_Write(void)
+{
+ GPT0->SYNCR |= (0X1<<16);
+}
+/*************************************************************/
+// GPT soft read at once sync mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U8_T GPT_REARM_Read(void)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat=(GPT0->SYNCR)&(1<<16);
+ if (dat)
+ {
+ value = 1;
+ }
+ return value;
+}
+/*************************************************************/
+//GPT Period / Compare set
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA)
+{
+ GPT0->PRDR =PRDR_DATA;
+ GPT0->CMPA =CMPA_DATA;
+ GPT0->CMPB =CMPB_DATA;
+}
+/*************************************************************/
+//GPT read counters
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+U16_T GPT_PRDR_Read(void)
+{
+ return GPT0->PRDR;
+}
+U16_T GPT_CMPA_Read(void)
+{
+ return GPT0->CMPA;
+}
+U16_T GPT_CMPB_Read(void)
+{
+ return GPT0->CMPB;
+}
+U16_T GPT_CNT_Read(void)
+{
+ return GPT0->CNT;
+}
+/*************************************************************/
+//GPT inturrpt Configure
+//EntryParameter:LPT_IMSCR_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ {
+ GPT0->IMCR |= GPT_IMSCR_X;
+ }
+ else
+ {
+ GPT0->IMCR &= ~GPT_IMSCR_X;
+ }
+}
+
+/*************************************************************/
+//GPT Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(GPT0_INT);
+}
+/*************************************************************/
+//LPT Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_INT_DISABLE(void)
+{
+ INTC_ICER_WRITE(GPT0_INT);
+}
+
+
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_hwdiv.c b/Source/FWlib/apt32f102_hwdiv.c
new file mode 100644
index 0000000..a9a7c91
--- /dev/null
+++ b/Source/FWlib/apt32f102_hwdiv.c
@@ -0,0 +1,89 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_gpio.c
+ * @author APT AE Team
+ * @version V1.24
+ * @date 2018/10/15
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_hwdiv.h"
+
+/* define --------------------------------------------------------------------*/
+/* externs--------------------------------------------------------------------*/
+/*************************************************************/
+//HWDIV RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void HWDIV_DeInit(void)
+{
+ HWD->DIVIDENT = HWDIV_RESET_VALUE;
+ HWD->DIVISOR = HWDIV_RESET_VALUE;
+ HWD->QUOTIENT = HWDIV_RESET_VALUE;
+ HWD->REMAIN = HWDIV_RESET_VALUE;
+ HWD->CR = HWDIV_RESET_VALUE;
+}
+/*************************************************************/
+//HWDIV UNSIGN Configure
+//EntryParameter:NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void HWDIV_UNSIGN_CMD(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ HWD->CR |= HWDIV_UNSIGN_BIT;
+ }
+ else
+ {
+ HWD->CR &= ~HWDIV_UNSIGN_BIT;
+ }
+}
+/*************************************************************/
+//HWDIV Calculate
+//EntryParameter:NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void HWDIV_Calc_UNSIGN(U32_T DIVIDENDx,U32_T DIVISOR_x)
+{
+ HWD->DIVIDENT=DIVIDENDx;
+ HWD->DIVISOR=DIVISOR_x;
+}
+/*************************************************************/
+//HWDIV Calculate result
+//EntryParameter:NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T HWDIV_Calc_Quotient(void)
+{
+ return HWD->QUOTIENT;
+}
+/*************************************************************/
+//HWDIV Calculate result
+//EntryParameter:NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+U32_T HWDIV_Calc_Remain(void)
+{
+ return HWD->REMAIN;
+}
+/*************************************************************/
+void HWDIV_Calc_SIGN(long DIVIDENDx,long DIVISOR_x)
+{
+ HWD->DIVIDENT=DIVIDENDx;
+ HWD->DIVISOR=DIVISOR_x;
+}
diff --git a/Source/FWlib/apt32f102_i2c.c b/Source/FWlib/apt32f102_i2c.c
new file mode 100644
index 0000000..998f0e9
--- /dev/null
+++ b/Source/FWlib/apt32f102_i2c.c
@@ -0,0 +1,569 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_i2c.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+#include "apt32f102_i2c.h"
+volatile uint8_t I2CWrBuffer[BUFSIZE];
+volatile uint8_t I2CRdBuffer[BUFSIZE];
+volatile uint8_t RdIndex = 0;
+volatile uint8_t WrIndex = 0;
+volatile uint8_t I2C_Data_Adress;
+volatile uint8_t I2C_St_Adress;
+volatile U8_T f_ERROR=0;
+volatile U32_T R_IIC_ERROR_CONT;
+extern void delay_nms(unsigned int t);
+/*************************************************************/
+//I2C RESET,CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_DeInit(void)
+{
+ I2C0->ENABLE = 0;
+ I2C0->IMSCR = 0;
+ I2C0->ICR = 0X7FFF;
+}
+/*************************************************************/
+//I2C MASTER Initial
+//EntryParameter:SPEEDMODE,MASTERBITS,
+//SPEEDMODE:FAST_MODE(>100K),STANDARD_MODE(<100K)
+//MASTERBITS:I2C_MASTRER_7BIT/I2C_MASTRER_10BIT
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Master_CONFIG(I2C_SDA_TypeDef I2C_SDA_IO,I2C_SCL_TypeDef I2C_SCL_IO,I2C_SPEEDMODE_TypeDef SPEEDMODE,
+ I2C_MASTRERBITS_TypeDef MASTERBITS,U16_T I2C_MASTER_ADDS,U16_T SS_SCLHX,U16_T SS_SCLLX)
+{
+ //SDA IO Initial
+ if(I2C_SDA_IO==I2C_SDA_PA00)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000005; //PA0.0->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA03)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00006000; //PA0.3->SDA
+ }
+ else if (I2C_SDA_IO==I2C_SDA_PA07)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x40000000; //PA0.7->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA013)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00600000; //PA0.13->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA014)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0x06000000; //PA0.14->SDA
+ }
+ //SCL IO Initial
+ if (I2C_SCL_IO==I2C_SCL_PB00)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000006; //PB0.0->SCL
+ }
+ else if (I2C_SCL_IO==I2C_SCL_PB02)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000400; //PB0.2->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA01)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000050; //PA0.1->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA04)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0x00060000; //PA0.4->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA06)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x06000000; //PA0.6->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA015)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0x60000000; //PA0.15->SCL
+ }
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFFE)|I2C_DISABLE;
+ I2C0->CR =(I2C0->CR&0XFFFFF000)|I2C_MASTER_EN |I2C_SLAVE_DIS| SPEEDMODE | MASTERBITS | I2C_RESTART_EN; //Repeat start bit enable
+ I2C0->TADDR =I2C_MASTER_ADDS;
+ if(SPEEDMODE==FAST_MODE)
+ {
+ I2C0->FS_SCLH = SS_SCLHX; //SCL high time
+ I2C0->FS_SCLL = SS_SCLLX; //SCL low time
+ }
+ else if(SPEEDMODE==STANDARD_MODE)
+ {
+ I2C0->SS_SCLH = SS_SCLHX; //SCL high time
+ I2C0->SS_SCLL = SS_SCLLX; //SCL low time
+ }
+
+}
+/*************************************************************/
+//I2C SLAVE Initial
+//EntryParameter:SPEEDMODE,SLAVEBITS,I2C_SALVE_ADD
+//SPEEDMODE:FAST_MODE(>100K),STANDARD_MODE(<100K)
+//SLAVEBITS:I2C_SLAVE_7BIT/I2C_SLAVE_10BIT
+//I2C_SALVE_ADD:I2C SLAVE ADDRESS
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Slave_CONFIG(I2C_SDA_TypeDef I2C_SDA_IO,I2C_SCL_TypeDef I2C_SCL_IO,I2C_SPEEDMODE_TypeDef SPEEDMODE,
+ I2C_SLAVEBITS_TypeDef SLAVEBITS,U16_T I2C_SALVE_ADDS,U16_T SS_SCLHX,U16_T SS_SCLLX)
+{
+ //SDA IO Initial
+ if(I2C_SDA_IO==I2C_SDA_PA00)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFFF0) | 0x00000005; //PA0.0->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA03)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFF0FFF) | 0x00006000; //PA0.3->SDA ///
+ }
+ else if (I2C_SDA_IO==I2C_SDA_PA07)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X0FFFFFFF) | 0x40000000; //PA0.7->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA013)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00600000; //PA0.13->SDA
+ }
+ else if(I2C_SDA_IO==I2C_SDA_PA014)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XF0FFFFFF) | 0x06000000; //PA0.14->SDA
+ }
+ //SCL IO Initial
+ if (I2C_SCL_IO==I2C_SCL_PB00)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000006; //PB0.0->SCL
+ }
+ else if (I2C_SCL_IO==I2C_SCL_PB02)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFF0FF) | 0x00000400; //PB0.2->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA01)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF0F) | 0x00000050; //PA0.1->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA04)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF0FFFF) | 0x00060000; //PA0.4->SCL //
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA06)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x06000000; //PA0.6->SCL
+ }
+ else if(I2C_SCL_IO==I2C_SCL_PA015)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X0FFFFFFF) | 0x60000000; //PA0.15->SCL
+ }
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFFE)|I2C_DISABLE;
+ I2C0->CR =(I2C0->CR&0XFFFFF000)| I2C_MASTER_DIS |I2C_SLAVE_EN | SPEEDMODE | SLAVEBITS;
+ I2C0->SADDR = I2C_SALVE_ADDS;
+ if(SPEEDMODE==FAST_MODE)
+ {
+ I2C0->FS_SCLH = SS_SCLHX; //SCL high time
+ I2C0->FS_SCLL = SS_SCLLX; //SCL low time
+ }
+ else if(SPEEDMODE==STANDARD_MODE)
+ {
+ I2C0->SS_SCLH = SS_SCLHX; //SCL high time
+ I2C0->SS_SCLL = SS_SCLLX; //SCL low time
+ }
+ INTC_IPR4_WRITE(0X40400040); //setting highest INT Priority when using i2c as salve
+}
+/*************************************************************/
+//I2C SDA TSETUP THOLD CONFIG
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_SDA_TSETUP_THOLD_CONFIG(U8_T SDA_TSETUP , U8_T SDA_RX_THOLD , U16_T SDA_TX_THOLD)
+{
+ I2C0->SDA_TSETUP=SDA_TSETUP;
+ I2C0->SDA_THOLD=(SDA_RX_THOLD<<16)|SDA_TX_THOLD;
+}
+/*************************************************************/
+//I2C INT CONFIG
+//EntryParameter:I2C_RX_UNDER,I2C_RX_OVER,I2C_RX_FULL,I2C_TX_OVER
+// I2C_TX_EMPTY,I2C_RD_REQ,I2C_TX_ABRT,I2C_RX_DONE
+// I2C_INT_BUSY,I2C_STOP_DET,I2C_START_DET,I2C_GEN_CALL
+// I2C_RESTART_DET,I2C_MST_ON_HOLD,I2C_SCL_SLOW
+//NewState:ENABLE/DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T INT_TYPE)
+{
+ if(NewState != DISABLE)
+ {
+ I2C0->IMSCR |= INT_TYPE;
+ }
+ else
+ {
+ I2C0->IMSCR &= (~INT_TYPE);
+ }
+}
+/*************************************************************/
+//I2C FIFO trigger data
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_FIFO_TriggerData(U16_T RX_FLSEL,U16_T TX_FLSEL)
+{
+ I2C0->RX_FLSEL = RX_FLSEL;
+ I2C0->TX_FLSEL = TX_FLSEL;
+}
+/*************************************************************/
+//I2C Stop
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Stop(void)
+{
+ I2C0->DATA_CMD = (I2C0->DATA_CMD&0XFFFFFDFF)|I2C_CMD_STOP; //Enable I2C
+}
+/*************************************************************/
+//I2C enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Enable(void)
+{
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFFE)|I2C_ENABLE; //Enable I2C
+ while((I2C0->STATUS&0x1000)!=0x1000);
+}
+/*************************************************************/
+//I2C disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Disable(void)
+{
+ I2C0->ENABLE =(I2C0->ENABLE&0XFFFFFFFE)|I2C_DISABLE; //Disable I2C
+ while((I2C0->STATUS&0x1000)==0x1000);
+}
+/*************************************************************/
+//I2C Abort enable in master mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Abort_EN(void)
+{
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFFD)|I2C_ABORT; //Enable Abort
+}
+/*************************************************************/
+//I2C Abort status
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U8_T I2C_Abort_Status(void)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat=(I2C0->ENABLE)&0x02;
+ if (dat == 0x02)
+ {
+ value = 1; //aborting
+ }
+ return value; //no abort or abort over
+}
+/*************************************************************/
+//I2C RECOVER enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_SDA_Recover_EN(void)
+{
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFF7)|I2C_SDA_REC_EN; //Enable Recover Enable
+}
+/*************************************************************/
+//I2C RECOVER enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_SDA_Recover_DIS(void)
+{
+ I2C0->ENABLE = (I2C0->ENABLE&0XFFFFFFF7)|I2C_SDA_REC_DIS; //Enable Recover Disable
+}
+/*************************************************************/
+//I2C Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Int_Enable(void)
+{
+ INTC_ISER_WRITE(I2C_INT); //Enable I2C interrupt
+}
+/*************************************************************/
+//I2C Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Int_Disable(void)
+{
+ INTC_ICER_WRITE(I2C_INT); //Disable I2C interrupt
+}
+/*************************************************************/
+//I2C WRITE OneByte
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_WRITE_Byte(U8_T write_adds,U8_T i2c_data)
+{
+ U16_T R_EEROR_CONT=0;
+
+ I2C0->DATA_CMD = I2C_CMD_WRITE|write_adds ;
+ I2C0->DATA_CMD = i2c_data |I2C_CMD_STOP;
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ I2C_Disable();
+ I2C_Enable();
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_BUSY) != I2C_BUSY ); //Wait for FSM working
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ I2C_Disable();
+ I2C_Enable();
+ break;
+ }
+ }
+ while(((I2C0->STATUS) & I2C_TFE) != I2C_TFE);
+}
+/*************************************************************/
+//I2C WRITE nByte
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_WRITE_nByte(U8_T write_adds,volatile U8_T *i2c_data,U8_T NumByteToWrite)
+{
+ U16_T R_EEROR_CONT=0;
+ U8_T i;
+ I2C0->DATA_CMD = I2C_CMD_WRITE|write_adds ;
+ for(i=0;i=NumByteToWrite-1)
+ {
+ I2C0->DATA_CMD = *(i2c_data+i) |I2C_CMD_STOP;
+ }
+ else
+ {
+ I2C0->DATA_CMD = *(i2c_data+i);
+ }
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ I2C_Disable();
+ I2C_Enable();
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_BUSY) != I2C_BUSY ); //Wait for FSM working
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ I2C_Disable();
+ I2C_Enable();
+ break;
+ }
+ }
+ while(((I2C0->STATUS) & I2C_TFNF) != I2C_TFNF);
+ }
+}
+/*************************************************************/
+//I2C READ OneByte
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U8_T I2C_READ_Byte(U8_T read_adds)
+{
+ U8_T value;
+ U16_T R_EEROR_CONT=0;
+ I2C0->DATA_CMD = I2C_CMD_WRITE|read_adds|I2C_CMD_RESTART1;
+ I2C0->DATA_CMD = I2C_CMD_READ |I2C_CMD_STOP;
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_BUSY) != I2C_BUSY ); //Wait for FSM working
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_RFNE) != I2C_RFNE ); //Wait for RX done
+ value=I2C0->DATA_CMD &0XFF;
+ return value;
+}
+/*************************************************************/
+//I2C READ nByte
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_READ_nByte(U8_T read_adds,volatile U8_T *i2c_data,U8_T NumByteToWrite)
+{
+ U16_T R_EEROR_CONT=0;
+ U8_T i;
+ I2C0->DATA_CMD = I2C_CMD_WRITE|read_adds|I2C_CMD_RESTART1;
+ for(i=0;i=NumByteToWrite-1)
+ {
+ I2C0->DATA_CMD = I2C_CMD_READ |I2C_CMD_STOP;
+ }
+ else
+ {
+ I2C0->DATA_CMD = I2C_CMD_READ;
+ }
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_BUSY) != I2C_BUSY ); //Wait for FSM working
+ do
+ {
+ if(R_EEROR_CONT++>=10000)
+ {
+ R_EEROR_CONT=0;
+ f_ERROR=1;
+ break;
+ }
+ }
+ while( (I2C0->STATUS & I2C_RFNE) != I2C_RFNE ); //Wait for RX done
+ *(i2c_data+i)=I2C0->DATA_CMD &0XFF;
+ }
+}
+U16_T R_READ_BUF=0;
+/*************************************************************/
+//I2C slave Receive
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void I2C_Slave_Receive(void)
+{
+
+ if(!(((I2C0->MISR&I2C_SCL_SLOW)==I2C_SCL_SLOW)
+ ||((I2C0->MISR&I2C_TX_ABRT)==I2C_TX_ABRT))) //IIC is aborted when sclk locked))
+ {
+ if((I2C0->MISR&I2C_RX_FULL)==I2C_RX_FULL) //Data received?
+ {
+ if(RdIndex==0)
+ {
+ RdIndex=1;
+ I2C_Data_Adress=I2C0->DATA_CMD&0XFF;
+ I2C_St_Adress=I2C_Data_Adress;
+ }
+ else
+ {
+ if(I2C_Data_AdressDATA_CMD&0XFF;
+ }
+ I2C_Data_Adress++;
+ }
+ I2C0->ICR = I2C_RX_FULL;
+ R_IIC_ERROR_CONT=0;
+ }
+
+ if((I2C0->MISR&I2C_RD_REQ)==I2C_RD_REQ) //Read request generated
+ {
+ if(RdIndex==1)
+ {
+ RdIndex=2;
+ WrIndex = I2C_St_Adress;
+ //I2C_ConfigInterrupt_CMD(ENABLE,I2C_TX_EMPTY);
+ if(WrIndexDATA_CMD= (I2C0->DATA_CMD&0XFFFFFF00) |I2CWrBuffer[WrIndex];
+ }
+ }
+ I2C0->ICR = I2C_RD_REQ;
+ R_IIC_ERROR_CONT=0;
+ }
+
+ if((I2C0->MISR&I2C_TX_EMPTY)==I2C_TX_EMPTY) //IIC send empty
+ {
+ if(RdIndex==2)
+ {
+ if(WrIndex+1DATA_CMD= (I2C0->DATA_CMD&0XFFFFFF00) |I2CWrBuffer[WrIndex+1];
+ }
+ WrIndex++;
+ }
+ else
+ {
+ if(R_IIC_ERROR_CONT>10000)
+ {
+ I2C_Disable();
+ I2C0->DATA_CMD= (I2C0->DATA_CMD&0XFFFFFF00);
+ I2C_SLAVE_CONFIG();
+ R_IIC_ERROR_CONT=0;
+ }
+ else
+ {
+ R_IIC_ERROR_CONT++;
+ }
+ }
+ I2C0->CR = I2C_TX_EMPTY;
+ }
+
+ else if((I2C0->MISR&I2C_STOP_DET)==I2C_STOP_DET)
+ {
+ I2C0->ICR =I2C_STOP_DET;
+ if(RdIndex!=0)
+ {
+ RdIndex=0;
+ //I2C_ConfigInterrupt_CMD(DISABLE,I2C_TX_EMPTY);
+ }
+ R_READ_BUF=I2C0->DATA_CMD&0XFF;
+ R_IIC_ERROR_CONT=0;
+ }
+}
+else
+{
+ I2C_Disable();
+ I2C0->DATA_CMD= (I2C0->DATA_CMD&0XFFFFFF00);
+ I2C_SLAVE_CONFIG();
+ RdIndex=0;
+ //I2C_ConfigInterrupt_CMD(ENABLE,I2C_TX_EMPTY);
+ I2C0->ICR = I2C_SCL_SLOW|I2C_TX_ABRT;
+ R_IIC_ERROR_CONT=0;
+
+}
+}
+/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_ifc.c b/Source/FWlib/apt32f102_ifc.c
new file mode 100644
index 0000000..bd23380
--- /dev/null
+++ b/Source/FWlib/apt32f102_ifc.c
@@ -0,0 +1,264 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_ifc.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_ifc.h"
+volatile unsigned int R_INT_FlashAdd;
+volatile unsigned char f_Drom_writing=0;
+/* define --------------------------------------------------------------------*/
+extern void delay_nms(unsigned int t);
+/* externs--------------------------------------------------------------------*/
+/*************************************************************
+//ChipErase fuction
+//EntryParameter:NONE
+//ReturnValue:NONE
+*************************************************************/
+void ChipErase(void)
+{
+ SetUserKey;
+ EnChipErase;
+ StartErase;
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+}
+/*************************************************************
+//PageErase fuction
+//EntryParameter:XROM_PageAdd
+//XROM_PageAdd:PROM_PageAdd0~PROM_PageAdd255
+//DROM_PageAdd0~DROM_PageAdd31
+//ReturnValue:NONE
+*************************************************************/
+void PageErase(IFC_ROMSELETED_TypeDef XROM_PageAdd)
+{
+ SetUserKey;
+ EnPageErase;
+ IFC->FM_ADDR=XROM_PageAdd;
+ StartErase;
+ while(IFC->CR!=0x0);
+}
+/*************************************************************
+//Enable or Disable IFC Interrupt when Operate FlashData
+//EntryParameter:FlashAdd、DataSize、*BufArry
+//ReturnValue:NONE
+*************************************************************/
+//PROM:Write at most 256 bytes once time
+//DROM:Write at most 64 bytes at once time
+//Interrupt mode requires multiple loop queries to complete
+void Page_ProgramData_int(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry)
+{
+ int i,DataBuffer;
+ if(!f_Drom_writing)
+ {
+ f_Drom_writing=1;
+ R_INT_FlashAdd=FlashAdd;
+ ifc_step=0;
+ //Page cache wipe 1
+ SetUserKey;
+ IFC->CMR=0x07; //Page cache wipe
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Write data to the cache 2
+ for(i=0;i<((DataSize+3)/4);i++) //sizeof structure
+ {
+ DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24);
+ *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer;
+ BufArry +=4;
+ }
+ //Pre-programmed operation settings 3
+ SetUserKey;
+ IFC->CMR=0x06;
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Perform pre-programming 4
+ SetUserKey;
+ IFC->CMR=0x01;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ }
+}
+//Normal mode, when the call is completed once, it will delay 4.2ms in the program
+void Page_ProgramData(unsigned int FlashAdd,unsigned int DataSize,volatile unsigned char *BufArry)
+{
+ int i,DataBuffer;
+
+ //Page cache wipe 1
+ SetUserKey;
+ IFC->CMR=0x07;
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Write data to the cache 2
+ for(i=0;i<((DataSize+3)/4);i++) //sizeof structure
+ {
+ DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24);
+ *(volatile unsigned int *)(FlashAdd+4*i)=DataBuffer;
+ BufArry +=4;
+ }
+ //Pre-programmed operation settings 3
+ SetUserKey;
+ IFC->CMR=0x06;
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Perform pre-programming 4
+ SetUserKey;
+ IFC->CMR=0x01;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete
+ //Page erase 5
+ SetUserKey;
+ IFC->CMR=0x02;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete
+ //Write page cache data to flash memory 6
+ SetUserKey;
+ IFC->CMR=0x01;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete
+}
+void Page_ProgramData_U32(unsigned int FlashAdd,unsigned int DataSize,volatile U32_T *BufArry)
+{
+ int i,DataBuffer;
+
+ //Page cache wipe 1
+ SetUserKey;
+ IFC->CMR=0x07;
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Write data to the cache 2
+ for(i=0;iCMR=0x06;
+ IFC->FM_ADDR=FlashAdd;
+ IFC->CR=0X01; //Start Program
+ while(IFC->CR!=0x0); //Wait for the operation to complete
+ //Perform pre-programming 4
+ SetUserKey;
+ IFC->CMR=0x01;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=PEP_END_INT); //Wait for the operation to complete
+ //Page erase 5
+ SetUserKey;
+ IFC->CMR=0x02;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=ERS_END_INT); //Wait for the operation to complete
+ //Write page cache data to flash memory 6
+ SetUserKey;
+ IFC->CMR=0x01;
+ IFC->FM_ADDR=FlashAdd; //
+ IFC->CR=0X01; //Start Program
+ while(IFC->RISR!=RGM_END_INT); //Wait for the operation to complete
+}
+/*************************************************************
+// ReadFlashData fuction return Data arry save in Flash
+// DataLength must be a multiple of 4, DataLength % 4 ==0.
+//EntryParameter:RdStartAdd、DataLength、*DataArryPoint
+//ReturnValue:NONE
+*************************************************************/
+void ReadDataArry(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint)
+{
+ unsigned int i,Buffer;
+ //delay_nms(1);
+ for(i=0;i<((DataLength+3)/4);i++)
+ {
+ Buffer=*(volatile unsigned int *)RdStartAdd;
+ *DataArryPoint=Buffer;
+ *(DataArryPoint+1)=Buffer>>8;
+ *(DataArryPoint+2)=Buffer>>16;
+ *(DataArryPoint+3)=Buffer>>24;
+ RdStartAdd +=4;
+ DataArryPoint +=4;
+ }
+}
+/*************************************************************
+//ReadFlashData fuction return Data arry save in Flash
+//EntryParameter:RdStartAdd、DataLength、*DataArryPoint
+//ReturnValue:NONE
+*************************************************************/
+void ReadDataArry_U8(unsigned int RdStartAdd,unsigned int DataLength,volatile unsigned char *DataArryPoint)
+{
+ unsigned int i;
+ for (i=0;iIMCR =IFC->IMCR|IFC_INT_x;
+ }
+ else
+ {
+ IFC->IMCR =IFC->IMCR & (~IFC_INT_x);
+ }
+}
+/*************************************************************/
+//IFC Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void IFC_Int_Enable(void)
+{
+ IFC->ICR=0Xf007; //CLAER IFC INT status
+ INTC_ISER_WRITE(IFC_INT);
+}
+
+/*************************************************************/
+//IFC Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void IFC_Int_Disable(void)
+{
+ INTC_ICER_WRITE(IFC_INT);
+}
+/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_iostring.c b/Source/FWlib/apt32f102_iostring.c
new file mode 100644
index 0000000..1a9420a
--- /dev/null
+++ b/Source/FWlib/apt32f102_iostring.c
@@ -0,0 +1,133 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_iostring.c
+ * @author APT AE Team
+ * @version V1.00
+ * @date 2020/05/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+/******************************************************************************
+* Include Files
+******************************************************************************/
+#include "apt32f102.h"
+#include "apt32f102_uart.h"
+#include "stdarg.h"
+#include "stddef.h"
+#include "stdio.h"
+/******************************************************************************
+* Main code
+******************************************************************************/
+void __putchar__ (char s)
+{
+// UARTTxByte(UART0,s);
+ UARTTxByte(UART1,s);
+}
+
+char *myitoa(int value, int* string, int radix)
+{
+
+ int tmp[33];
+ int* tp = tmp;
+ int i;
+ unsigned v;
+ int sign;
+ int* sp;
+
+ if (radix > 36 || radix <= 1)
+ {
+ return 0;
+ }
+
+ sign = (radix == 10 && value < 0);
+ if (sign)
+ v = -value;
+ else
+ v = (unsigned)value;
+ while (v || tp == tmp)
+ {
+ i = v % radix;
+ v = v / radix;
+ if (i < 10) {
+ *tp++ = i+'0';
+
+ } else {
+ *tp++ = i + 'a' - 10;
+
+ }
+
+ }
+
+ sp = string;
+
+ if (sign)
+ *sp++ = '-';
+ while (tp > tmp)
+ *sp++ = *--tp;
+ *sp = 0;
+ return string;
+}
+
+
+void my_printf(const char *fmt, ...)
+{
+
+// const char *s;
+ const int *s;
+ int d;
+ //char ch, *pbuf, buf[16];
+ char ch, *pbuf;
+ int buf[16];
+ va_list ap;
+ va_start(ap, fmt);
+ while (*fmt) {
+ if (*fmt != '%') {
+ __putchar__(*fmt++);
+ continue;
+ }
+ switch (*++fmt) {
+ case 's':
+ s = va_arg(ap, const char *);
+ for ( ; *s; s++) {
+ __putchar__(*s);
+ }
+ break;
+ case 'd':
+ d = va_arg(ap, int);
+ myitoa(d, buf, 10);
+ for (s = buf; *s; s++) {
+ __putchar__(*s);
+ }
+ break;
+
+ case 'x':
+ case 'X':
+ d = va_arg(ap, int);
+ myitoa(d, buf, 16);
+ for (s = buf; *s; s++) {
+ __putchar__(*s);
+ }
+ break;
+ // Add other specifiers here...
+ case 'c':
+ case 'C':
+ ch = (unsigned char)va_arg(ap, int);
+ pbuf = &ch;
+ __putchar__(*pbuf);
+ break;
+ default:
+ __putchar__(*fmt);
+ break;
+ }
+ fmt++;
+ }
+ va_end(ap);
+}
+
diff --git a/Source/FWlib/apt32f102_lpt.c b/Source/FWlib/apt32f102_lpt.c
new file mode 100644
index 0000000..1e5751c
--- /dev/null
+++ b/Source/FWlib/apt32f102_lpt.c
@@ -0,0 +1,260 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_lpt.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_lpt.h"
+
+/*************************************************************/
+//LPT RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_DeInit(void)
+{
+ LPT->CEDR = 0xBE980000;
+ LPT->RSSR = LPT_RESET_VALUE;
+ LPT->PSCR = LPT_RESET_VALUE;
+ LPT->CR = 0X00010010;
+ LPT->SYNCR = LPT_RESET_VALUE;
+ LPT->PRDR = LPT_RESET_VALUE;
+ LPT->CMP = LPT_RESET_VALUE;
+ LPT->CNT = LPT_RESET_VALUE;
+ LPT->TRGFTCR = LPT_RESET_VALUE;
+ LPT->TRGFTWR = LPT_RESET_VALUE;
+ LPT->EVTRG = LPT_RESET_VALUE;
+ LPT->EVPS = LPT_RESET_VALUE;
+ LPT->EVSWF = LPT_RESET_VALUE;
+ LPT->RISR = LPT_RESET_VALUE;
+ LPT->MISR = LPT_RESET_VALUE;
+ LPT->IMCR = LPT_RESET_VALUE;
+ LPT->ICR = LPT_RESET_VALUE;
+}
+/*************************************************************/
+//LPT IO Init
+//EntryParameter:LPT_OUT_PA09,LPT_OUT_PB01,LPT_IN_PA10,
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_IO_Init(LPT_IOSET_TypeDef IONAME)
+{
+ if(IONAME==LPT_OUT_PA09)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000080;
+ }
+ if(IONAME==LPT_OUT_PB01)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000080;
+ }
+ if(IONAME==LPT_IN_PA10)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000800;
+ }
+}
+/*************************************************************/
+//LPT Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Configure(LPT_CLK_TypeDef CLKX,LPT_CSS_TypeDef CSSX,LPT_SHDWSTP_TypeDef SHDWSTPX,LPT_PSCDIV_TypeDef PSCDIVX,U8_T FLTCKPRSX,LPT_OPM_TypeDef OPMX)
+{
+ LPT->CEDR |=CLKX| CSSX| SHDWSTPX| (FLTCKPRSX<<8);
+ LPT->PSCR = PSCDIVX;
+ LPT->CR |=OPMX;
+}
+/*************************************************************/
+//LPT DEBUG MODE
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Debug_Mode(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ LPT->CEDR |= LPT_DEBUG_MODE;
+ }
+ else
+ {
+ LPT->CEDR &= ~LPT_DEBUG_MODE;
+ }
+}
+/*************************************************************/
+//LPT Period / Compare set
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMP_DATA)
+{
+ LPT->PRDR =PRDR_DATA;
+ LPT->CMP =CMP_DATA;
+}
+/*************************************************************/
+//LPT COUNTER set
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_CNT_Write(U16_T CNT_DATA)
+{
+ LPT->CNT =CNT_DATA;
+}
+/*************************************************************/
+//LPT read counters
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+U16_T LPT_PRDR_Read(void)
+{
+ return LPT->PRDR;
+}
+U16_T LPT_CMP_Read(void)
+{
+ return LPT->CMP;
+}
+U16_T LPT_CNT_Read(void)
+{
+ return LPT->CNT;
+}
+/*************************************************************/
+//LPT ControlSet Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_ControlSet_Configure(LPT_SWSYN_TypeDef SWSYNX,LPT_IDLEST_TypeDef IDLESTX,LPT_PRDLD_TypeDef PRDLDX,LPT_POL_TypeDef POLX,
+ LPT_FLTDEB_TypeDef FLTDEBX,LPT_PSCLD_TypeDef PSCLDX,LPT_CMPLD_TypeDef CMPLDX)
+{
+ LPT->CR |= SWSYNX| IDLESTX| PRDLDX| POLX| FLTDEBX| FLTDEBX| CMPLDX;
+}
+/*************************************************************/
+//LPT SYNC Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_SyncSet_Configure(LPT_TRGENX_TypeDef TRGENX,LPT_OSTMDX_TypeDef OSTMDX,LPT_AREARM_TypeDef AREARMX)
+{
+ LPT->SYNCR |= TRGENX| OSTMDX| AREARMX;
+}
+/*************************************************************/
+//LPT Trigger Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Trigger_Configure(LPT_SRCSEL_TypeDef SRCSELX,LPT_BLKINV_TypeDef BLKINVX,LPT_CROSSMD_TypeDef CROSSMDX,LPT_TRGSRC0_TypeDef TRGSRC0X,
+ LPT_ESYN0OE_TypeDef ESYN0OEX,U16_T OFFSET_DATA,U16_T WINDOW_DATA,U8_T TRGEC0PRD_DATA)
+{
+ LPT->TRGFTCR |= SRCSELX| BLKINVX| CROSSMDX;
+ LPT->TRGFTWR |= OFFSET_DATA |(WINDOW_DATA<<16);
+ LPT->EVTRG |= TRGSRC0X |ESYN0OEX;
+ LPT->EVPS |=TRGEC0PRD_DATA;
+}
+void LPT_Trigger_EVPS(U8_T TRGEC0PRD_DATA,U8_T TRGEV0CNT_DATA)
+{
+ LPT->EVPS |= TRGEC0PRD_DATA |(TRGEV0CNT_DATA<<16);
+}
+void LPT_Trigger_Cnt(U8_T TRGEV0CNT_DATA)
+{
+ LPT->EVPS |= (TRGEV0CNT_DATA<<16);
+}
+void LPT_Soft_Trigger(void)
+{
+ LPT->EVSWF = 0X01;
+}
+/*************************************************************/
+// LPT start
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Start(void)
+{
+ LPT->RSSR |= 0X01;
+}
+/*************************************************************/
+// LPT stop
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Stop(void)
+{
+ LPT->RSSR &= 0XFFFFFFFE;
+}
+/*************************************************************/
+// LPT soft reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Soft_Reset(void)
+{
+ LPT->RSSR |= (0X5<<12);
+}
+/*************************************************************/
+// LPT soft reset at once sync mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_REARM_Write(void)
+{
+ LPT->SYNCR |= (0X1<<16);
+}
+/*************************************************************/
+// LPT soft read at once sync mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+U8_T LPT_REARM_Read(void)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat=(LPT->SYNCR)&(1<<16);
+ if (dat)
+ {
+ value = 1;
+ }
+ return value;
+}
+/*************************************************************/
+//LPT inturrpt Configure
+//EntryParameter:LPT_IMSCR_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_ConfigInterrupt_CMD(FunctionalStatus NewState,LPT_IMSCR_TypeDef LPT_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ {
+ LPT->IMCR |= LPT_IMSCR_X;
+ }
+ else
+ {
+ LPT->IMCR &= ~LPT_IMSCR_X;
+ }
+}
+
+/*************************************************************/
+//LPT Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(LPT_INT);
+}
+/*************************************************************/
+//LPT Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_INT_DISABLE(void)
+{
+ INTC_ICER_WRITE(LPT_INT);
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_rtc.c b/Source/FWlib/apt32f102_rtc.c
new file mode 100644
index 0000000..654813a
--- /dev/null
+++ b/Source/FWlib/apt32f102_rtc.c
@@ -0,0 +1,316 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_interrupt.c
+ * @author APT AE Team
+ * @version V1.11
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_rtc.h"
+/* define --------------------------------------------------------------------*/
+RTC_time_t RTC_TimeDate_buf;
+RTC_Alarmset_T RTC_AlarmA_buf;
+RTC_Alarmset_T RTC_AlarmB_buf;
+/* externs--------------------------------------------------------------------*/
+
+/*************************************************************/
+//Deinitializes the RTC registers to their default reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_RST_VALUE(void) //reset value
+{
+ RTC->TIMR=RTC_TIMR_RST;
+ RTC->DATR=RTC_DATR_RST;
+ RTC->CR=RTC_CR_RST;
+ RTC->CCR=RTC_CCR_RST;
+ RTC->ALRAR=RTC_ALRAR_RST;
+ RTC->ALRBR=RTC_ALRBR_RST;
+ RTC->SSR=RTC_SSR_RST;
+ RTC->CAL=RTC_CAL_RST;
+ RTC->IMCR=RTC_IMCR_RST;
+ RTC->EVTRG=RTC_EVTRG_RST;
+ RTC->EVPS=RTC_EVPS_RST;
+}
+/*************************************************************/
+//Deinitializes the RTC GPIO
+//EntryParameter:Rtc_Output_Mode_TypeDef
+//Rtc_Output_Mode_x:Alarm_A_pulse_output,Alarm_A_High,Alarm_A_Low,Alarm_B_pulse_output,Alarm_B_High,Alarm_B_Low
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_ALM_IO_SET(Rtc_Output_Mode_TypeDef Rtc_Output_Mode_x )
+{
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF)|0X00000500;
+ RTC->KEY=0XCA53;
+ RTC->CR=(RTC->CR&0XFFFFE3FF)|Rtc_Output_Mode_x;
+ while(RTC->CR&0x02);
+}
+/*************************************************************/
+//Deinitializes the RTC clk config
+//EntryParameter:CLKSRC_X,DIVS,DIVA
+//CLKSRC_X:CLKSRC_ISOSC,CLKSRC_IMOSC,CLKSRC_EMOSC
+//DIVS:0~0X7FFF
+//DIVA:0~0X7F
+//ReturnValue:NONE
+/*************************************************************/
+//RTC CLK=(EMCLK/4)/(DIVS+1)/(DIVA+1)/4
+// (ISCLK)/(DIVS+1)/(DIVA+1)/4
+// (IMCLK/4)/(DIVS+1)/(DIVA+1)/4
+void RTCCLK_CONFIG(U16_T DIVS , U16_T DIVA , RTC_CLKSRC_TypeDef CLKSRC_X)
+{
+ RTC->KEY=0XCA53;
+ RTC->CCR|=(0X01<<27);
+ while(!(RTC->CCR&0x04000000)); //Wait for RTC to stabilize
+ RTC->CCR=(RTC->CCR&0xfc000000)|DIVS|(DIVA<<16)|(0X01<<23)|CLKSRC_X;
+ while(!(RTC->CCR&0x04000000)); //Wait for RTC to stabilize
+}
+/*************************************************************/
+//Deinitializes the RTC function config
+//EntryParameter:RTC_FMT_MODE_TypeDef,RTC_CPRD_TypeDef,Rtc_ClockOutput_Mode_TypeDe
+//RTC_FMT_MODE:RTC_24H,RTC_12H
+//RTC_CPRD_x:CPRD_NONE,CPRD_05S,CPRD_1S,CPRD_1MIN,CPRD_1HOUR,CPRD_1DAY,CPRD_1MONTH
+//Rtc_ClockOutput_x:COSEL_Cali_512hz,COSEL_Cali_1hz,COSEL_NoCali_512hz,COSEL_NoCali_1hz
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Function_Config(RTC_FMT_MODE_TypeDef RTC_FMT_MODE , RTC_CPRD_TypeDef RTC_CPRD_x , Rtc_ClockOutput_Mode_TypeDef Rtc_ClockOutput_x)
+{
+ RTC->KEY=0XCA53;
+ RTC->CR=(RTC->CR&0xffff1cdf)|RTC_FMT_MODE|RTC_CPRD_x|Rtc_ClockOutput_x|0X01<<16;//enable read
+}
+/*************************************************************/
+//Deinitializes the RTC Start
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Start(void)
+{
+ RTC->KEY=0XCA53;
+ RTC->CR=RTC->CR&0xfffffffe;
+ while((RTC->CR&0x01)!=0||(RTC->CR&0x02)==2);
+}
+/*************************************************************/
+//Deinitializes the RTC Stop
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Stop(void)
+{
+ RTC->KEY=0XCA53;
+ RTC->CR=RTC->CR|0x01;
+ while((RTC->CR&0x01)!=1||(RTC->CR&0x02)==2);
+}
+/*************************************************************/
+//Deinitializes the RTC timer date set
+//EntryParameter:*RTC_TimeDate
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_TIMR_DATR_SET(RTC_time_t *RTC_TimeDate)
+{
+ RTC->KEY=0XCA53;
+ RTC->TIMR=(RTC_TimeDate->u8Hour<<16)|(RTC_TimeDate->u8Minute<<8)|(RTC_TimeDate->u8Second); //Hour bit6->0:am 1:pm
+ RTC->DATR=(RTC_TimeDate->u8DayOfWeek<<24)|(RTC_TimeDate->u8Year<<16)|(RTC_TimeDate->u8Month<<8)|(RTC_TimeDate->u8Day<<0);
+ while(RTC->CR&0x02);//busy wait TIMR DATR ALRAR ALRBR Data written
+}
+/*************************************************************/
+//Deinitializes the RTC timer date Read
+//EntryParameter:*RTC_TimeDate
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_TIMR_DATR_Read(RTC_time_t *RTC_TimeDate)
+{
+ RTC->KEY=0XCA53;
+ //RTC->CR|=0X01<<16; //enable read
+ //while(RTC->CR&0x02);//busy wait TIMR DATR ALRAR ALRBR Data written
+ RTC_TimeDate->u8Second=(RTC->TIMR)&0x7f;
+ RTC_TimeDate->u8Minute=(RTC->TIMR>>8)&0x7f;
+ RTC_TimeDate->u8Hour=(RTC->TIMR>>16)&0x7f;
+ RTC_TimeDate->u8Day=(RTC->DATR)&0x7f;
+ RTC_TimeDate->u8Month=(RTC->DATR>>8)&0x7f;
+ RTC_TimeDate->u8Year=(RTC->DATR>>16)&0x7f;
+ RTC_TimeDate->u8DayOfWeek=(RTC->DATR>>24)&0x7f;
+ //RTC->CR&=0XFFFEFFFF; //disable read
+}
+/*************************************************************/
+//Deinitializes the RTC AlarmA set
+//EntryParameter:*RTC_AlarmA,RTC_Alarm_Second_mask_TypeDef,RTC_Alarm_Minute_mask_TypeDef,
+// RTC_Alarm_Hour_mask_TypeDef,RTC_Alarm_DataOrWeek_mask_TypeDef,RTC_Alarm_WeekData_select_TypeDef,
+// RTC_Alarm_Register_select_TypeDef
+//RTC_Alarm_Second_x:Alarm_Second_EN,Alarm_Second_DIS
+//RTC_Alarm_Minute_x:Alarm_Minute_EN,Alarm_Minute_DIS
+//RTC_Alarm_Hour_x:Alarm_Hour_EN,Alarm_Hour_DIS
+//RTC_Alarm_DataOrWeek_x:Alarm_DataOrWeek_EN,Alarm_DataOrWeek_DIS
+//Alarm_x_selecte:Alarm_data_selecte,Alarm_week_selecte
+//Alarm_x:Alarm_A,Alarm_B
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Alarm_TIMR_DATR_SET(RTC_Alarm_Register_select_TypeDef Alarm_x , RTC_Alarmset_T *RTC_AlarmA , RTC_Alarm_Second_mask_TypeDef RTC_Alarm_Second_x ,
+ RTC_Alarm_Minute_mask_TypeDef RTC_Alarm_Minute_x , RTC_Alarm_Hour_mask_TypeDef RTC_Alarm_Hour_x,
+ RTC_Alarm_DataOrWeek_mask_TypeDef RTC_Alarm_DataOrWeek_x,
+ RTC_Alarm_WeekData_select_TypeDef Alarm_x_selecte)
+{
+ RTC->KEY=0XCA53;
+ if(Alarm_x==Alarm_A)
+ {
+ RTC->CR=RTC->CR&0xfffffff7;
+ RTC->ALRAR=(Alarm_x_selecte)|(RTC_Alarm_DataOrWeek_x)|(RTC_Alarm_Hour_x)|(RTC_Alarm_Minute_x)|(RTC_Alarm_Second_x)|
+ (RTC_AlarmA->u8WeekOrData<<24)|(RTC_AlarmA->u8Hour<<16)|(RTC_AlarmA->u8Minute<<8)|(RTC_AlarmA->u8Second);
+ while(RTC->CR&0x02);
+ RTC->CR|=Alarm_A_EN;
+ }
+ if(Alarm_x==Alarm_B)
+ {
+ RTC->CR=RTC->CR&0xffffffef;
+ RTC->ALRBR=(Alarm_x_selecte)|(RTC_Alarm_DataOrWeek_x)|(RTC_Alarm_Hour_x)|(RTC_Alarm_Minute_x)|(RTC_Alarm_Second_x)|
+ (RTC_AlarmA->u8WeekOrData<<24)|(RTC_AlarmA->u8Hour<<16)|(RTC_AlarmA->u8Minute<<8)|(RTC_AlarmA->u8Second);
+ while(RTC->CR&0x02);
+ RTC->CR|=Alarm_B_EN;
+ }
+ RTC->KEY = 0;
+ while(RTC->CR&0x02);//busy wait TIMR DATR ALRAR ALRBR Data written
+}
+/*************************************************************/
+//Deinitializes the RTC AlarmA read
+//EntryParameter:*RTC_AlarmA
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_AlarmA_TIMR_DATR_Read(RTC_Alarmset_T *RTC_AlarmA)
+{
+ RTC->KEY=0XCA53;
+ //RTC->CR|=0X01<<16; //enable read
+ //while(RTC->CR&0x02);//busy wait TIMR DATR ALRAR ALRBR Data written
+ RTC_AlarmA->u8Second=(RTC->ALRAR)&0x7f;
+ RTC_AlarmA->u8Minute=(RTC->ALRAR>>8)&0x7f;
+ RTC_AlarmA->u8Hour=(RTC->ALRAR>>16)&0x7f;
+ RTC_AlarmA->u8WeekOrData=(RTC->ALRAR>>24)&0x3f;
+ //RTC->CR&=0XFFFEFFFF; //disable read
+}
+/*************************************************************/
+//Deinitializes the RTC AlarmB read
+//EntryParameter:*RTC_AlarmB
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_AlarmB_TIMR_DATR_Read(RTC_Alarmset_T *RTC_AlarmB)
+{
+ RTC->KEY=0XCA53;
+ //RTC->CR|=0X01<<16; //enable read
+ //while(RTC->CR&0x02);//busy wait TIMR DATR ALRAR ALRBR Data written
+ RTC_AlarmB->u8Second=(RTC->ALRBR)&0x7f;
+ RTC_AlarmB->u8Minute=(RTC->ALRBR>>8)&0x7f;
+ RTC_AlarmB->u8Hour=(RTC->ALRBR>>16)&0x7f;
+ RTC_AlarmB->u8WeekOrData=(RTC->ALRBR>>24)&0x3f;
+ //RTC->CR&=0XFFFEFFFF; //disable read
+}
+/*************************************************************/
+//RTC EVTRG Config
+//EntryParameter:RTC_EVTRG_TRGSRC0_x,RTC_TRGSRCX_CMD,Trgev0Prd
+//RTC_EVTRG_TRGSRC0_x:RTC_EVTRG_TRGSRC0_DIS,RTC_EVTRG_TRGSRC0_AlarmA,
+//RTC_EVTRG_TRGSRC0_AlarmB,RTC_EVTRG_TRGSRC0_AlarmAB,RTC_EVTRG_TRGSRC0_CPRD
+//RTC_TRGSRCX_CMD:RTC_TRGSRC0_EN,RTC_TRGSRC0_DIS
+//Trgev0Prd:0~0x0f
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_TRGSRC0_Config(RTC_EVTRG_TRGSRC0_TypeDef RTC_EVTRG_TRGSRC0_x , RTC_TRGSRCX_CMD_TypeDef RTC_TRGSRCX_CMD , U8_T Trgev0Prd)
+{
+ RTC->EVTRG=(RTC->EVTRG&0XFFEFFFF0)|RTC_EVTRG_TRGSRC0_x|RTC_TRGSRCX_CMD;
+ RTC->EVPS=(RTC->EVPS&0XFFFFFFF0)|Trgev0Prd;
+}
+/*************************************************************/
+//RTC EVTRG SWFTRG
+//EntryParameter:RTC_EVTRG_TRGSRC1_x,RTC_TRGSRCX_CMD,Trgev1Prd
+//RTC_EVTRG_TRGSRC1_x:RTC_EVTRG_TRGSRC1_DIS,RTC_EVTRG_TRGSRC1_AlarmA,
+//RTC_EVTRG_TRGSRC1_AlarmB,RTC_EVTRG_TRGSRC1_AlarmAB,RTC_EVTRG_TRGSRC1_CPRD
+//RTC_TRGSRCX_CMD:RTC_TRGSRC1_EN,RTC_TRGSRC1_DIS
+//Trgev1Prd:0~0x0f
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_TRGSRC1_Config(RTC_EVTRG_TRGSRC1_TypeDef RTC_EVTRG_TRGSRC1_x , RTC_TRGSRCX_CMD_TypeDef RTC_TRGSRCX_CMD , U8_T Trgev1Prd)
+{
+ RTC->EVTRG=(RTC->EVTRG&0XFFDFFF0F)|RTC_EVTRG_TRGSRC1_x|RTC_TRGSRCX_CMD;
+ RTC->EVPS=(RTC->EVPS&0XFFFFFF0F)|Trgev1Prd<<4;
+}
+/*************************************************************/
+//RTC EVTRG SWFTRG
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_TRGSRC0_SWFTRG(void)
+{
+ RTC->EVSWF|=0X01;
+}
+/*************************************************************/
+//RTC EVTRG SWFTRG
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_TRGSRC1_SWFTRG(void)
+{
+ RTC->EVSWF|=0X02;
+}
+/*************************************************************/
+//RTC INT ENABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_Int_Enable(RTC_INT_TypeDef RTC_X_INT)
+{
+ RTC->ICR = RTC_X_INT; //clear LVD INT status
+ RTC->IMCR |= RTC_X_INT;
+}
+/*************************************************************/
+//RTC INT DISABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void RTC_Int_Disable(RTC_INT_TypeDef RTC_X_INT)
+{
+ RTC->IMCR &= ~RTC_X_INT;
+}
+/*************************************************************/
+//RTC Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Vector_Int_Enable(void)
+{
+ INTC_ISER_WRITE(RTC_INT);
+}
+/*************************************************************/
+//RTC Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_Vector_Int_Disable(void)
+{
+ INTC_ICER_WRITE(RTC_INT);
+}
+/*************************************************************/
+//RTC Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(RTC_INT);
+}
+
+/*************************************************************/
+//RTC Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void RTC_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(RTC_INT);
+}
+
+/******************* (C) COPYRIGHT 2020 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_sio.c b/Source/FWlib/apt32f102_sio.c
new file mode 100644
index 0000000..48259f0
--- /dev/null
+++ b/Source/FWlib/apt32f102_sio.c
@@ -0,0 +1,161 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_sio.c
+ * @author APT AE Team
+ * @version V1.11
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_sio.h"
+
+
+/*************************************************************/
+//SIO RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_DeInit(void)
+{
+ SIO0->CR = SIO_RESET_VALUE;
+ SIO0->TXCR0 = SIO_RESET_VALUE;
+ SIO0->TXCR1 = SIO_RESET_VALUE;
+ //SIO0->TXBUF = SIO_RESET_VALUE;
+ SIO0->RXCR0 = SIO_RESET_VALUE;
+ SIO0->RXCR1 = SIO_RESET_VALUE;
+ SIO0->RXCR1 = SIO_RESET_VALUE;
+ //SIO0->RXBUF = SIO_RESET_VALUE;
+ SIO0->RISR = SIO_RESET_VALUE;
+ SIO0->MISR = SIO_RESET_VALUE;
+ SIO0->IMCR = SIO_RESET_VALUE;
+ SIO0->ICR = SIO_RESET_VALUE;
+}
+/*************************************************************/
+//SIO IO Initial
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_IO_Init(SIO_IOG_TypeDef IOGx)
+{
+ if(IOGx==SIO_PA02)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFFF0FF)|0x00000400;
+ }
+ if(IOGx==SIO_PA03)
+ {
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFFF0FFF)|0x00008000;
+ }
+ if(IOGx==SIO_PA012)
+ {
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFF0FFFF)|0x00080000;
+ }
+ if(IOGx==SIO_PB01)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000070;
+ }
+}
+/*************************************************************/
+//SIO TX Initial
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_TX_Init(SIO_CLK_TypeDef CLKX,U8_T TCKPRSX)
+{
+ SIO0->CR =CLKX | (TCKPRSX<<16) |(0X00<<8);
+
+}
+/*************************************************************/
+//SIO TX Configure
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_TX_Configure(SIO_IDLEST_TypeDef IDLEX,SIO_TXDIR_TypeDef TXDIRX,U8_T TXBUFLENX,U8_T TXCNTX,U8_T D0DURX,U8_T D1DURX,SIO_LENOBH_TypeDef LENOBHX,
+ SIO_LENOBL_TypeDef LENOBLX,U8_T HSQX,U8_T LSQX)
+{
+ SIO0->TXCR0 =IDLEX | TXDIRX | (TXBUFLENX<<4) |(TXCNTX<<8);
+ SIO0->TXCR1=(D0DURX<<2)|(D1DURX<<5)|LENOBHX|LENOBLX|(HSQX<<16)|(LSQX<<24);
+}
+/*************************************************************/
+//SIO TX BUFFER SET
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_TXBUF_Set(U8_T D30,U8_T D28,U8_T D26,U8_T D24,U8_T D22,U8_T D20,U8_T D18,U8_T D16,
+ U8_T D14,U8_T D12,U8_T D10,U8_T D08,U8_T D06,U8_T D04,U8_T D02,U8_T D00)
+{
+ SIO0->TXBUF=(D30<<30)|(D28<<28)|(D26<<26)|(D24<<24)|(D22<<22)|(D20<<20)|(D18<<18)|(D16<<16)|
+ (D14<<14)|(D12<<12)|(D10<<10)|(D08<<8)|(D06<<6)|(D04<<4)|(D02<<2)|(D00<<0);
+}
+/*************************************************************/
+//SIO RX Initial
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_RX_Init(SIO_CLK_TypeDef CLKX,SIO_RXDEB_TypeDef RXDEBX,U8_T DEBCKSX)
+{
+ SIO0->CR =CLKX | RXDEBX |(0X01<<8) | (DEBCKSX<<4);
+}
+/*************************************************************/
+//SIO RX Basic Configure
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_RX_Configure0(SIO_BSTSEL_TypeDef BSTSELX,SIO_TRGMODE_TypeDef TRGMX,U8_T SPLCNTX,U8_T EXTRACTX,U8_T HITHRX,
+ SIO_ALIGNEN_TypeDef ALIGNX,SIO_RXDIR_TypeDef RXDIRX,SIO_RXMODE_TypeDef RXMODEX,U8_T RXLENX,U8_T RXBUFLENX,U8_T RXKPRSX)
+{
+ SIO0->RXCR0=BSTSELX|TRGMX|(SPLCNTX<<4)|(EXTRACTX<<10)|(HITHRX<<16)|(ALIGNX)|RXDIRX|RXMODEX;
+ SIO0->RXCR1=(RXLENX)|(RXBUFLENX<<8)|(RXKPRSX<<16);
+}
+/*************************************************************/
+//SIO RX Configure 1
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_RX_Configure1(SIO_BREAKEN_TypeDef BREAKX,SIO_BREAKLVL_TypeDef BREAKLVLX,U8_T BREKCNTX,SIO_TORSTEN_TypeDef TORSTX,U8_T TOCNTX)
+{
+ SIO0->RXCR2=BREAKX|BREAKLVLX|(BREKCNTX<<3)|TORSTX|(TOCNTX<<16);
+}
+/*************************************************************/
+//SIO inturrpt Configure
+//EntryParameter:LPT_IMSCR_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_ConfigInterrupt_CMD(FunctionalStatus NewState,SIO_IMSCR_TypeDef SIO_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ {
+ SIO0->IMCR |= SIO_IMSCR_X;
+ }
+ else
+ {
+ SIO0->IMCR &= ~SIO_IMSCR_X;
+ }
+}
+/*************************************************************/
+//SIO Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(SIO_INT);
+}
+/*************************************************************/
+//SIO Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SIO_INT_DISABLE(void)
+{
+ INTC_ICER_WRITE(SIO_INT);
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_spi.c b/Source/FWlib/apt32f102_spi.c
new file mode 100644
index 0000000..48e9d4d
--- /dev/null
+++ b/Source/FWlib/apt32f102_spi.c
@@ -0,0 +1,212 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_spi.c
+ * @author APT AE Team
+ * @version V1.10
+ * @date 2021/08/25
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#include "apt32f102_spi.h"
+/* defines -------------------------------------------------------------------*/
+
+/* -------- variables ---------------------------------------------------------*/
+
+/* externs--------------------------------------------------------------------*/
+extern void delay_nus(unsigned int t);
+/*************************************************************/
+//SPI RESET,CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_DeInit(void)
+{
+ SPI0->CR0 = SPI_CR0_RST;
+ SPI0->CR1 = SPI_CR1_RST;
+ //SPI0->DR = SPI_DR_RST;
+ SPI0->SR = SPI_SR_RST;
+ SPI0->CPSR = SPI_CPSR_RST;
+ SPI0->IMSCR = SPI_IMSCR_RST;
+ SPI0->RISR = SPI_RISR_RST;
+ SPI0->MISR = SPI_MISR_RST;
+ SPI0->ICR = SPI_ICR_RST;
+}
+/*************************************************************/
+//SPI NSS IO Initial
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_NSS_IO_Init(U8_T SPI_NSS_IO_GROUP)
+{
+ if(SPI_NSS_IO_GROUP==0)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XF0FFFFFF) | 0x05000000; //PA0.6
+ }
+ else if(SPI_NSS_IO_GROUP==1)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFF0FFFFF) | 0x00800000; //PB0.5
+ }
+}
+/*************************************************************/
+//SPI Master Init
+//EntryParameter:SPI_IO,SPI_DATA_SIZE_x,SPI_SPO_X,SPI_SPH_X,SPI_LBM_X,SPI_SCR,SPI_CPSDVSR
+//SPI_IO:SPI_G0,SPI_G1,SPI_G2
+//SPI_DATA_SIZE_x:SPI_DATA_SIZE_4BIT~SPI_DATA_SIZE_16BIT
+//SPI_SPO_X:SPI_SPO_0,SPI_SPO_1
+//SPI_SPH_X:SPI_SPH_0,SPI_SPH_1
+//SPI_LBM_X:SPI_LBM_0,SPI_LBM_1
+//SPI_RXIFLSEL_X:SPI_RXIFLSEL_1_8,SPI_RXIFLSEL_1_4,SPI_RXIFLSEL_1_2
+//SPI_SCR:0~255
+//SPI_CPSDVSR:2~254,Must be an even number between 2 and 254
+//ReturnValue:NONE
+/*************************************************************/
+//SPI Baud rate:FSSPCLK = FPCLK / (CPSDVR × (1 + SCR))
+//FPCLK (max) → 2 × FSSPCLKOUT (max) master Fastest speed
+void SPI_Master_Init(SPI_IO_TypeDef SPI_IO , SPI_DATA_SIZE_TypeDef SPI_DATA_SIZE_x , SPI_SPO_TypeDef SPI_SPO_X , SPI_SPH_TypeDef SPI_SPH_X , SPI_LBM_TypeDef SPI_LBM_X , SPI_RXIFLSEL_TypeDef SPI_RXIFLSEL_X , U8_T SPI_SCR , U8_T SPI_CPSDVSR )
+{
+ if (SPI_IO==SPI_G0)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF00FF) | 0x00008800;
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000008; //PB0.2->SPI_SCK,PB0.3->SPI_MOSI,PA0.8->SPI_MIS0
+ }
+ else if(SPI_IO==SPI_G1)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF000F) | 0x00004440; //PA0.9->SPI_SCK,PA0.10->SPI_MOSI,PA0.11->SPI_MIS0
+ }
+ else if(SPI_IO==SPI_G2)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0x00080000; //SPI_SCK->PB0.4
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0x88000000; //SPI_MOSI->PA0.14,SPI_MISO->PA0.15
+ }
+ SPI0->CPSR=SPI_CPSDVSR;
+
+ SPI0->CR0|=SPI_DATA_SIZE_x|(SPI_SPO_X<<6)|(SPI_SPH_X<<7)|(SPI_SCR<<8);
+ SPI0->CR1|=0X02|SPI_LBM_X|(SPI_RXIFLSEL_X<<4);
+}
+/*************************************************************/
+//SPI Slave Init
+//EntryParameter:SPI_IO,SPI_DATA_SIZE_x,SPI_RXIFLSEL_X,SPI_SCR,SPI_CPSDVSR
+//SPI_DATA_SIZE_x:SPI_DATA_SIZE_4BIT~SPI_DATA_SIZE_16BIT
+//SPI_RXIFLSEL_X:SPI_RXIFLSEL_1_8,SPI_RXIFLSEL_1_4,SPI_RXIFLSEL_1_2
+//SPI_SCR:0~255
+//SPI_CPSDVSR:2~254,Must be an even number between 2 and 254
+//ReturnValue:NONE
+/*************************************************************/
+//SPI波特率:FSSPCLK = FPCLK / (CPSDVR × (1 + SCR))
+//FPCLK (max) → 12 × FSSPCLKIN (max) slave Fastest speed
+void SPI_Slave_Init(SPI_IO_TypeDef SPI_IO , SPI_DATA_SIZE_TypeDef SPI_DATA_SIZE_x , SPI_SPH_TypeDef SPI_SPH_X , SPI_RXIFLSEL_TypeDef SPI_RXIFLSEL_X , U8_T SPI_SCR , U8_T SPI_CPSDVSR)
+{
+ if (SPI_IO==SPI_G0)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFF00FF) | 0x00008800;
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0x00000008; //PB0.2->SPI_SCK,PB0.3->SPI_MISO,PA0.8->SPI_MOSI
+ }
+ else if(SPI_IO==SPI_G1)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFF000F) | 0x00004440; //PA0.9->SPI_SCK,PA0.10->SPI_MISO,PA0.11->SPI_MOSI
+ }
+ else if(SPI_IO==SPI_G2)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFF0FFFF) | 0x00080000; //SPI_SCK->PB0.4
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0x88000000; //SPI_MOSI->PA0.14,SPI_MISO->PA0.15
+ }
+ SPI0->CR0|=SPI_DATA_SIZE_x|(SPI_SPH_X<<7)|(SPI_SCR<<8);
+ SPI0->CPSR=SPI_CPSDVSR;
+ SPI0->CR1|=0X06|(SPI_RXIFLSEL_X<<4);
+}
+/*************************************************************/
+//SPI WRITE BYTE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_WRITE_BYTE(U16_T wdata)
+{
+ while(((SPI0->SR) & SSP_TNF) != SSP_TNF);
+ SPI0->DR = wdata;
+ while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //wait for transmition finish
+}
+/*************************************************************/
+//SPI READ BYTE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_READ_BYTE(U16_T wdata , volatile U16_T *rdata , U8_T Longth)
+{
+ U8_T i;
+ while(((SPI0->SR) & SSP_TNF) != SSP_TNF); //Transmit FIFO is not full?
+ SPI0->DR = wdata;
+ while(((SPI0->SR) & SSP_BSY) == SSP_BSY); //Send or receive over?
+ delay_nus(1);
+ *rdata = SPI0->DR;
+ for(i=0;iSR) & SSP_TNF) != SSP_TNF);
+ SPI0->DR=0;
+ while(((SPI0->SR) & SSP_BSY) == SSP_BSY);
+ *(rdata+i) = SPI0->DR; //get data from FIFO
+ }
+}
+/*************************************************************/
+//SPI inturrpt Configure
+//EntryParameter:SPI_IMSCR_X,NewState
+//SPI_IMSCR_X:SPI_PORIM,SPI_RTIM,SPI_RXIM,SPI_TXIM
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_ConfigInterrupt_CMD(FunctionalStatus NewState,SPI_IMSCR_TypeDef SPI_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ {
+ SPI0->IMSCR |= SPI_IMSCR_X; //SET
+ }
+ else
+ {
+ SPI0->IMSCR &= ~SPI_IMSCR_X; //CLR
+ }
+}
+/*************************************************************/
+//SPI Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_Int_Enable(void)
+{
+ INTC_ISER_WRITE(SPI_INT);
+}
+/*************************************************************/
+//SPI Interrupt disalbe
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_Int_Disable(void)
+{
+ INTC_ICER_WRITE(SPI_INT);
+}
+/*************************************************************/
+//SPI Interrupt wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_Wakeup_Enable(void)
+{
+ INTC_IWER_WRITE(SPI_INT);
+}
+
+/*************************************************************/
+//SPI Interrupt wake up disalbe
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SPI_Wakeup_Disable(void)
+{
+ INTC_IWDR_WRITE(SPI_INT);
+}
+/******************* (C) COPYRIGHT 2018 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_syscon.c b/Source/FWlib/apt32f102_syscon.c
new file mode 100644
index 0000000..efe2770
--- /dev/null
+++ b/Source/FWlib/apt32f102_syscon.c
@@ -0,0 +1,817 @@
+/*
+ ******************************************************************************
+ * @file main.c
+ * @author APT AE Team
+ * @version V1.09
+ * @date 2021/07/30
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_syscon.h"
+/* define --------------------------------------------------------------------*/
+
+/* externs--------------------------------------------------------------------*/
+
+/*************************************************************/
+//Deinitializes the syscon registers to their default reset
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_RST_VALUE(void) //reset value
+{
+ //SYSCON->IDCCR=SYSCON_IDCCR_RST;
+ //SYSCON->GCER=SYSCON_GCER_RST;
+ //SYSCON->GCDR=SYSCON_GCDR_RST;
+ //SYSCON->GCSR=SYSCON_GCSR_RST;
+ //SYSCON->CKST=SYSCON_CKST_RST;
+ SYSCON->RAMCHK=SYSCON_RAMCHK_RST;
+ SYSCON->EFLCHK=SYSCON_EFLCHK_RST;
+ SYSCON->SCLKCR=SYSCON_SCLKCR_RST;
+ //SYSCON->PCLKCR=SYSCON_PCLKCR_RST;
+ //SYSCON->PCER0=SYSCON_PCER0_RST;
+ //SYSCON->PCDR0=SYSCON_PCDR0_RST;
+ //SYSCON->PCSR0=SYSCON_PCSR0_RST;
+ //SYSCON->PCER1=SYSCON_PCER1_RST;
+ //SYSCON->PCDR1=SYSCON_PCDR1_RST;
+ //SYSCON->PCSR1=SYSCON_PCSR1_RST;
+ SYSCON->OSTR=SYSCON_OSTR_RST;
+ SYSCON->LVDCR=SYSCON_LVDCR_RST;
+ //SYSCON->CLCR=SYSCON_CLCR_RST;
+ //SYSCON->PWRCR=SYSCON_PWRCR_RST;
+ //SYSCON->IMER=SYSCON_IMER_RST;
+ //SYSCON->IMDR=SYSCON_IMDR_RST;
+ //SYSCON->IMCR=SYSCON_IMCR_RST;
+ //SYSCON->IAR=SYSCON_IAR_RST;
+ //SYSCON->ICR=SYSCON_ICR_RST;
+ //SYSCON->RISR=SYSCON_RISR_RST;
+ //SYSCON->MISR=SYSCON_MISR_RST;
+ SYSCON->EXIRT=SYSCON_EXIRT_RST;
+ SYSCON->EXIFT=SYSCON_EXIFT_RST;
+ //SYSCON->EXIER=SYSCON_EXIER_RST;
+ //SYSCON->EXIDR=SYSCON_EXIDR_RST;
+ //SYSCON->EXIMR=SYSCON_EXIMR_RST;
+ //SYSCON->EXIAR=SYSCON_EXIAR_RST;
+ //SYSCON->EXICR=SYSCON_EXICR_RST;
+ //SYSCON->EXIRS=SYSCON_EXIRS_RST;
+ SYSCON->IWDCR=SYSCON_IWDCR_RST;
+ SYSCON->IWDCNT=SYSCON_IWDCNT_RST;
+ //SYSCON->PWROPT=SYSCON_PWROPT_RST;
+ SYSCON->EVTRG=SYSCON_EVTRG_RST;
+ SYSCON->EVPS=SYSCON_EVPS_RST;
+ SYSCON->EVSWF=SYSCON_EVSWF_RST;
+// SYSCON->UREG0=SYSCON_UREG0_RST;
+// SYSCON->UREG1=SYSCON_UREG1_RST;
+// SYSCON->UREG2=SYSCON_UREG2_RST;
+// SYSCON->UREG3=SYSCON_UREG3_RST;
+}
+/*************************************************************/
+//EMOSC OSTR Config
+//EM_CNT:0~0X3FF
+//EM_GM:0~0X1F
+//EM_FLEN;EM_FLEN_DIS,EM_FLEN_EN
+//EM_FLSEL:EM_FLSEL_5ns,EM_FLSEL_10ns,EM_FLSEL_15ns,EM_FLSEL_20ns
+/*************************************************************/
+void EMOSC_OSTR_Config(U16_T EM_CNT, U8_T EM_GM,EM_LFSEL_TypeDef EM_LFSEL_X, EM_Filter_CMD_TypeDef EM_FLEN_X, EM_Filter_TypeDef EM_FLSEL_X)
+{
+ SYSCON->OSTR=EM_CNT|(EM_GM<<11)|EM_LFSEL_X|EM_FLEN_X|EM_FLSEL_X;
+}
+/*************************************************************/
+//SYSCON General Control
+//EntryParameter:NewState:,ENDIS_X
+//NewState:ENABLE,DISABLE
+//ENDIS_X:ENDIS_ISOSC,ENDIS_IMOSC,ENDIS_EMOSC,ENDIS_HFOSC
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X )
+{
+ if (NewState != DISABLE)
+ {
+ if(ENDIS_X==ENDIS_EMOSC)
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN
+ SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control
+ while(!(SYSCON->GCSR&ENDIS_X)); //check Enable?
+ switch(ENDIS_X)
+ {
+ case ENDIS_IMOSC:
+ while (!(SYSCON->CKST & ENDIS_IMOSC));
+ break;
+ case ENDIS_EMOSC:
+ while (!(SYSCON->CKST & ENDIS_EMOSC));
+ break;
+ case ENDIS_ISOSC:
+ while (!(SYSCON->CKST & ENDIS_ISOSC));
+ break;
+ case ENDIS_HFOSC:
+ while (!(SYSCON->CKST & ENDIS_HFOSC));
+ break;
+ case ENDIS_IDLE_PCLK:
+ break;
+ case ENDIS_SYSTICK:
+ break;
+ }
+ }
+ else
+ {
+ SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control
+ while(SYSCON->GCSR&ENDIS_X); //check Disable?
+ SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit
+ }
+}
+
+/*************************************************************/
+//Seleted system clk and seleted clk div
+//EntryParameter:SYSCLK_X,HCLK_DIV_X,PCLK_DIV_X
+//SYSCLK_X:SYSCLK_IMOSC,SYSCLK_EMOSC,SYSCLK_ISOSC,SYSCLK_HFOSC
+//HCLK_DIV_X:HCLK_DIV_1/2/3/4/5/6/7/8/12/16/24/32/64/128/256
+//PCLK_DIV_X:PCLK_DIV_1,PCLK_DIV_2,PCLK_DIV_4,PCLK_DIV_8,PCLK_DIV_16
+//SystemClk_data_x:EMOSC_24M,EMOSC_16M,EMOSC_12M,EMOSC_8M,EMOSC_4M,EMOSC_36K,
+//ISOSC,IMOSC,HFOSC_48M,HFOSC_24M,HFOSC_12M,HFOSC_6M
+//ReturnValue:NONE
+/*************************************************************/
+void SystemCLK_HCLKDIV_PCLKDIV_Config(SystemCLK_TypeDef SYSCLK_X , SystemCLK_Div_TypeDef HCLK_DIV_X , PCLK_Div_TypeDef PCLK_DIV_X , SystemClk_data_TypeDef SystemClk_data_x )
+{
+ if(SystemClk_data_x==HFOSC_48M)
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X04|(0X00<<16); //High speed mode
+ }
+ if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M))
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X02|(0X00<<16); //Medium speed mode
+ }
+ if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M))
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X01|(0X00<<16); //Low speed mode
+ }
+ if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K)
+ ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M))
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X00|(0X00<<16); //Low speed mode
+ }
+ SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X;
+ while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable
+ SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16
+ while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV
+}
+/*************************************************************/
+//clear system clk register
+//ReturnValue:NONE
+/*************************************************************/
+void SystemCLK_Clear(void)
+{
+ SYSCON->SCLKCR=0xd22d0000;
+ while(SYSCON->SCLKCR!=0);
+}
+/*************************************************************/
+//SYSCON IMOSC SELECTE
+//EntryParameter:IMOSC_SELECTE_X
+//IMOSC_SELECTE_X:IMOSC_SELECTE_5556K,IMOSC_SELECTE_4194K;IMOSC_SELECTE_2097K;IMOSC_SELECTE_131K
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_IMOSC_SELECTE(IMOSC_SELECTE_TypeDef IMOSC_SELECTE_X)
+{
+ //SYSCON_General_CMD(DISABLE,ENDIS_IMOSC); //disalbe IMOSC
+ SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFFC)|IMOSC_SELECTE_X; //IMOSC CLK selected
+ //SYSCON_General_CMD(ENABLE,ENDIS_IMOSC); //enable IMOSC
+}
+/*************************************************************/
+//SYSCON HFOSC SELECTE
+//EntryParameter:HFOSC_SELECTE_X
+//HFOSC_SELECTE_X:HFOSC_SELECTE_48M,HFOSC_SELECTE_24M;HFOSC_SELECTE_12M;HFOSC_SELECTE_6M
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_TypeDef HFOSC_SELECTE_X)
+{
+ SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC
+ SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X;
+ SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC
+}
+/*************************************************************/
+//WDT enable and disable
+//EntryParameter:,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_WDT_CMD(FunctionalStatus NewState)
+{
+ if(NewState != DISABLE)
+ {
+ SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
+ while(!(SYSCON->IWDCR&Check_IWDT_BUSY));
+ }
+ else
+ {
+ SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
+ while(SYSCON->IWDCR&Check_IWDT_BUSY);
+ }
+}
+/*************************************************************/
+//reload WDT CN
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_IWDCNT_Reload(void)
+{
+ SYSCON->IWDCNT=CLR_IWDT;
+}
+/*************************************************************/
+//IWDCNT Config
+//EntryParameter:NewStateE_IWDT_SHORT,IWDT_TIME_X,IWDT_INTW_DIV_X
+//NewStateE_IWDT_SHORT:ENABLE_IWDT_SHORT,DISABLE_IWDT_SHORT
+//IWDT_TIME_X:IWDT_TIME_128MS,IWDT_TIME_256MS,IWDT_TIME_500MS,IWDT_TIME_1S,IWDT_TIME_2S,IWDT_TIME_3S,IWDT_TIME_4S,IWDT_TIME_8S
+//IWDT_INTW_DIV_X:IWDT_INTW_DIV_1/2/3/4/4/5/6
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_IWDCNT_Config(IWDT_TIME_TypeDef IWDT_TIME_X , IWDT_TIMEDIV_TypeDef IWDT_INTW_DIV_X )
+{
+ SYSCON->IWDCR=IWDT_KEY|IWDT_TIME_X|IWDT_INTW_DIV_X;
+}
+/*************************************************************/
+//LVD Config and set LVD INT
+//EntryParameter:X_LVDEN,INTDET_LVL_X,RSTDET_LVL_X,X_LVD_INT
+//X_LVDEN:ENABLE_LVDEN,DISABLE_LVDEN
+//INTDET_LVL_X:INTDET_LVL_1_8V,INTDET_LVL_2_1V,INTDET_LVL_2_5V,INTDET_LVL_2_9V,INTDET_LVL_3_3V,INTDET_LVL_3_7V,INTDET_LVL_4_1V,INTDET_LVL_4_5V
+//RSTDET_LVL_X:RSTDET_LVL_1_6V,RSTDET_LVL_2_0V,RSTDET_LVL_2_4V,RSTDET_LVL_2_8V,RSTDET_LVL_3_2V,RSTDET_LVL_3_6V,RSTDET_LVL_4_0V,RSTDET_LVL_4_4V
+//X_LVD_INT:ENABLE_LVD_INT,DISABLE_LVD_INT
+//INTDET_POL_X:INTDET_POL_fall,INTDET_POL_X_rise,INTDET_POL_X_riseORfall
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_LVD_Config(X_LVDEN_TypeDef X_LVDEN , INTDET_LVL_X_TypeDef INTDET_LVL_X , RSTDET_LVL_X_TypeDef RSTDET_LVL_X , X_LVD_INT_TypeDef X_LVD_INT , INTDET_POL_X_TypeDef INTDET_POL_X)
+{
+ //SYSCON->LVDCR=LVD_KEY;
+ SYSCON->LVDCR=LVD_KEY|X_LVDEN|INTDET_LVL_X|RSTDET_LVL_X|X_LVD_INT|INTDET_POL_X;
+}
+/*************************************************************/
+//LVD INT ENABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void LVD_Int_Enable(void)
+{
+ SYSCON->ICR = LVD_INT_ST; //clear LVD INT status
+ SYSCON->IMER |= LVD_INT_ST;
+}
+/*************************************************************/
+//LVD INT DISABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void LVD_Int_Disable(void)
+{
+ SYSCON->IMDR |= LVD_INT_ST;
+}
+/*************************************************************/
+//WDT INT ENABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void IWDT_Int_Enable(void)
+{
+ SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status
+ SYSCON->IMER |= IWDT_INT_ST;
+}
+/*************************************************************/
+//WDT INT DISABLE.
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void IWDT_Int_Disable(void)
+{
+ SYSCON->IMDR |= IWDT_INT_ST;
+}
+/*************************************************************/
+//Reset status.
+//EntryParameter:NONE
+//ReturnValue: rsr_dat
+//rsr_dat=0x01 power on reset
+//rsr_dat=0x02 low voltage reset
+//rsr_dat=0x04 ex-pin reset
+//rsr_dat=0x10 wdt reset
+//rsr_dat=0x40 ex clock invalid reset
+//rsr_dat=0x80 cpu request reset
+//rsr_dat=0x100 software reset
+/*************************************************************/
+U32_T Read_Reset_Status(void)
+{
+ return (SYSCON->RSR & 0x1ff);
+}
+/*************************************************************/
+//external trigger Mode Selection Functions
+//EntryParameter:NewState,EXIPIN,EXI_tringer_mode
+//NewState:ENABLE,DISABLE
+//EXIPIN:EXI_PIN0/1/2/3/4/5/6/7/8/9/10/11/12/13
+//EXI_tringer_mode:_EXIRT,_EXIFT
+//ReturnValue: LVD detection flag
+/*************************************************************/
+void EXTI_trigger_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN , EXI_tringer_mode_TypeDef EXI_tringer_mode)
+{
+ switch(EXI_tringer_mode)
+ {
+ case _EXIRT:
+ if(NewState != DISABLE)
+ {
+ SYSCON->EXIRT |=EXIPIN;
+ }
+ else
+ {
+ SYSCON->EXIRT &=~EXIPIN;
+ }
+ break;
+ case _EXIFT:
+ if(NewState != DISABLE)
+ {
+ SYSCON->EXIFT |=EXIPIN;
+ }
+ else
+ {
+ SYSCON->EXIFT &=~EXIPIN;
+ }
+ break;
+ }
+}
+/*************************************************************/
+//external interrupt enable and disable
+//EntryParameter:NewState,EXIPIN,* GPIOX
+//* GPIOX:GPIOA,GPIOB
+//EXIPIN:EXI_PIN0/1/2/3/4/5/6/7/8/9/10/11/12/13
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void EXTI_interrupt_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN)
+{
+ SYSCON->EXICR = 0X3FFF; //Claer EXI INT status
+ if(NewState != DISABLE)
+ {
+ SYSCON->EXIER|=EXIPIN; //EXI4 interrupt enable
+ while(!(SYSCON->EXIMR&EXIPIN)); //Check EXI is enabled or not
+ SYSCON->EXICR |=EXIPIN; // Clear EXI status bit
+ }
+ else
+ {
+ SYSCON->EXIDR|=EXIPIN;
+ }
+}
+/*************************************************************/
+//GPIO EXTI interrupt
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_EXTI_interrupt(CSP_GPIO_T * GPIOX,U32_T GPIO_IECR_VALUE)
+{
+ GPIOX->IECR=GPIO_IECR_VALUE;
+}
+/*************************************************************/
+//PLCK goto SLEEP mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void PCLK_goto_idle_mode(void)
+{
+ asm ("doze"); // Enter sleep mode
+}
+/*************************************************************/
+//PLCK goto SLEEP mode
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void PCLK_goto_deepsleep_mode(void)
+{
+ SYSCON->WKCR=0X3F<<8;
+ asm ("stop");
+}
+/*************************************************************/
+//EXI0 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI0_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EXI0_INT);
+}
+
+/*************************************************************/
+//EXI0 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI0_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EXI0_INT);
+}
+
+/*************************************************************/
+//EXI1 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI1_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EXI1_INT);
+}
+
+/*************************************************************/
+//EXI1 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI1_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EXI1_INT);
+}
+
+/*************************************************************/
+//EXI2 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI2_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EXI2_INT);
+}
+
+/*************************************************************/
+//EXI2 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI2_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EXI2_INT);
+}
+
+/*************************************************************/
+//EXI3 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI3_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EXI3_INT);
+}
+
+/*************************************************************/
+//EXI3 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI3_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EXI3_INT);
+}
+
+/*************************************************************/
+//EXI4 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI4_Int_Enable(void)
+{
+ INTC_ISER_WRITE(EXI4_INT);
+}
+
+/*************************************************************/
+//EXI4 Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI4_Int_Disable(void)
+{
+ INTC_ICER_WRITE(EXI4_INT);
+}
+/*************************************************************/
+//EXI0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI0_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(EXI0_INT);
+}
+
+/*************************************************************/
+//EXI0 Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI0_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(EXI0_INT);
+}
+
+/*************************************************************/
+//EXI1 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI1_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(EXI1_INT);
+}
+
+/*************************************************************/
+//EXI1 Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI1_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(EXI1_INT);
+}
+
+/*************************************************************/
+//EXI2 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI2_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(EXI2_INT);
+}
+
+/*************************************************************/
+//EXI2 Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI2_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(EXI2_INT);
+}
+
+/*************************************************************/
+//EXI3 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI3_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(EXI3_INT);
+}
+
+/*************************************************************/
+//EXI3 Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI3_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(EXI3_INT);
+}
+
+/*************************************************************/
+//EXI4 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI4_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(EXI4_INT);
+}
+
+/*************************************************************/
+//EXI4 Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void EXI4_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(EXI4_INT);
+}
+/*************************************************************/
+//SYSCON Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_Int_Enable(void)
+{
+ INTC_ISER_WRITE(SYSCON_INT);
+}
+
+/*************************************************************/
+//SYSCON Interrupt disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_Int_Disable(void)
+{
+ INTC_ICER_WRITE(SYSCON_INT);
+}
+/*************************************************************/
+//SYSCON Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(SYSCON_INT);
+}
+/*************************************************************/
+//set PA0.0/PA0.8 as CLO output
+//EntryParameter:CLO_PA02/CLO_PA08
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_CLO_CONFIG(CLO_IO_TypeDef clo_io)
+{
+ if (clo_io==CLO_PA02)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFF0FF) | 0X00000700;
+ }
+ if (clo_io==CLO_PA08)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFFFFFF0) | 0X00000007;
+ }
+
+}
+/*************************************************************/
+//set CLO clk and div
+//EntryParameter:clomxr/clodivr
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_CLO_SRC_SET(SystemClk_CLOMX_TypeDef clomxr,SystemClk_CLODIV_TypeDef clodivr)
+{
+ SYSCON->OPT1=(SYSCON->OPT1 & 0XFFFF00FF)|(clomxr<<8)|(clodivr<<12);
+}
+/*************************************************************/
+//SYSCON Wake up disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(SYSCON_INT);
+}
+/*************************************************************/
+//READ CIF0 data
+//EntryParameter:None
+//ReturnValue:VALUE
+/*************************************************************/
+U32_T SYSCON_Read_CINF0(void)
+{
+ U32_T value = 0;
+ value=SYSCON->CINF0;
+ return value;
+}
+/*************************************************************/
+//READ CIF1 data
+//EntryParameter:None
+//ReturnValue:VALUE
+/*************************************************************/
+U32_T SYSCON_Read_CINF1(void)
+{
+ U32_T value = 0;
+ value=SYSCON->CINF1;
+ return value;
+}
+/*************************************************************/
+//Software_Reset
+//EntryParameter:None
+//ReturnValue:MCU reset
+/*************************************************************/
+void SYSCON_Software_Reset(void)
+{
+ SYSCON->IDCCR=IDCCR_KEY|SWRST;
+}
+/*************************************************************/
+//Interrupt Priority initial
+//EntryParameter:00/40/80/C0
+//----------------------
+//CORET_INT IRQ0
+//SYSCON_INT IRQ1
+//IFC_INT IRQ2
+//ADC_INT IRQ3
+//----------------------
+//EPT0_INT IRQ4
+//****DUMMY IRQ5
+//WWDT_INT IRQ6
+//EXI0_INT IRQ7
+//----------------------
+//EXI1_INT IRQ8
+//GPT0_INT IRQ9
+//****DUMMY IRQ10
+//****DUMMY IRQ11
+//----------------------
+//RTC_INT IRQ12
+//UART0_INT IRQ13
+//UART1_INT IRQ14
+//UART2_INT IRQ15
+//----------------------
+//****DUMMY IRQ16
+//I2C_INT IRQ17
+//****DUMMY IRQ18
+//SPI_INT IRQ19
+//----------------------
+//SIO_INT IRQ20
+//EXI2_INT IRQ21
+//EXI3_INT IRQ22
+//EXI4_INT IRQ23
+//----------------------
+//CA_INT IRQ24
+//TKEY_INT IRQ25
+//LPT_INT IRQ26
+//****DUMMY IRQ27
+//----------------------
+//BT0_INT IRQ28
+//BT1_INT IRQ29
+//----------------------
+//ReturnValue:None
+//00:Priority 0 highest
+//40:Priority 1
+//80:Priority 2
+//C0:Priority 3 lowest
+/*************************************************************/
+void SYSCON_INT_Priority(void)
+{
+ INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit
+ INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7
+ INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11
+ INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15
+ INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19
+ INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23
+ INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27
+ INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31
+}
+/*************************************************************/
+//Set Interrupt Priority
+//EntryParameter:
+//int_name:CORET_IRQ~BT1_IRQ
+//int_level:0~3 0=highest 3=lowest
+//ReturnValue:None
+/*************************************************************/
+void Set_INT_Priority(U8_T int_name,U8_T int_level)
+{
+ U8_T i_temp,j_temp;
+ U32_T k_temp;
+ i_temp=(int_name%4)*8;
+ j_temp=int_name/4;
+ k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp));
+}
+/*************************************************************/
+//IO REMAP
+//EntryParameter:GPIOA0(0,1,2,3,4,5,6,7) GPIOB0(2,3),GPIOA0(8,9,10,11,12,13)
+//0x00=I2C_SCL 0X01=I2C_SDA 0X02=GPT_CHA 0X03=GPT_CHB
+//0X04=SPI_MOSI 0X05=SPI_MISO 0X06=SPI_SCK 0X07=SPI_NSS
+//0x00=UART0_RX 0X01=UART0_TX 0X02=EPT_CHAX 0X03=PT_CHBX
+//0X04=PT_CHCX 0X05=PT_CHAY 0X06=PT_CHBY 0X07=PT_CHCY
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_Remap(CSP_GPIO_T *GPIOx,uint8_t bit,IOMAP_DIR_TypeDef iomap_data)
+{
+ U8_T i;
+ if(iomap_data&0x10)
+ {
+ iomap_data=iomap_data&0X0F;
+ if(iomap_data==0)
+ {
+ for(i=0;i<28;i+=4)
+ {
+ if((SYSCON->IOMAP1&(0xf<IOMAP1=SYSCON->IOMAP1|(0xf<IOMAP1=(SYSCON->IOMAP1&0xfffffff0)|iomap_data;(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFFF0FF) | 0x00000A00;}
+ if(bit==3){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xffffff0f)|(iomap_data<<4);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFF0FFF) | 0x0000A000;}
+ if(bit==8){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xfffff0ff)|(iomap_data<<8);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFFFFFFF0) | 0x0000000A;}
+ if(bit==9){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xffff0fff)|(iomap_data<<12);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFFFFFF0F) | 0x000000A0;}
+ if(bit==10){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xfff0ffff)|(iomap_data<<16);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFFFFF0FF) | 0x00000A00;}
+ if(bit==11){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xff0fffff)|(iomap_data<<20);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFFFF0FFF) | 0x0000A000;}
+ if(bit==12){SYSCON->IOMAP1=(SYSCON->IOMAP1&0xf0ffffff)|(iomap_data<<24);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFFF0FFFF) | 0x000A0000;}
+ if(bit==13){SYSCON->IOMAP1=(SYSCON->IOMAP1&0x0fffffff)|(iomap_data<<28);(GPIOx)->CONHR =((GPIOx)->CONHR&0XFF0FFFFF) | 0x00A00000;}
+ }
+ else
+ {
+ if(iomap_data==0)
+ {
+ for(i=0;i<28;i+=4)
+ {
+ if((SYSCON->IOMAP0&(0xf<IOMAP0=SYSCON->IOMAP0|(0xf<IOMAP0=(SYSCON->IOMAP0&0xfffffff0)|iomap_data;(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFFFFF0) | 0x0000000A;}
+ if(bit==1){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xffffff0f)|(iomap_data<<4);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFFFF0F) | 0x000000A0;}
+ if(bit==2){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xfffff0ff)|(iomap_data<<8);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFFF0FF) | 0x00000A00;}
+ if(bit==3){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xffff0fff)|(iomap_data<<12);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFFF0FFF) | 0x0000A000;}
+ if(bit==4){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xfff0ffff)|(iomap_data<<16);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFFF0FFFF) | 0x000A0000;}
+ if(bit==5){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xff0fffff)|(iomap_data<<20);(GPIOx)->CONLR =((GPIOx)->CONLR&0XFF0FFFFF) | 0x00A00000;}
+ if(bit==6){SYSCON->IOMAP0=(SYSCON->IOMAP0&0xf0ffffff)|(iomap_data<<24);(GPIOx)->CONLR =((GPIOx)->CONLR&0XF0FFFFFF) | 0x0A000000;}
+ if(bit==7){SYSCON->IOMAP0=(SYSCON->IOMAP0&0x0fffffff)|(iomap_data<<28);(GPIOx)->CONLR =((GPIOx)->CONLR&0X0FFFFFFF) | 0x0A0000000;}
+ }
+}
+/******************* (C) COPYRIGHT 2018 APT Chip *****END OF FILE****/
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_tkey_parameter.c b/Source/FWlib/apt32f102_tkey_parameter.c
new file mode 100644
index 0000000..36c7295
--- /dev/null
+++ b/Source/FWlib/apt32f102_tkey_parameter.c
@@ -0,0 +1,99 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_tkey_parameter.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+#include "apt32f102_tkey.h"
+
+
+void tk_parameter_init(void)
+{
+/****************************************************
+//TK parameter define
+*****************************************************/
+ TK_IO_ENABLE=0x4F01; //TK IO ENABLE Bit16-->Bit0;0=DISABLE 1=ENABLE
+
+ TK_senprd[0]=180; //TCH0 scan period = TCH0 sens
+ TK_senprd[1]=70; //TCH1 scan period = TCH1 sens
+ TK_senprd[2]=70; //TCH2 scan period = TCH2 sens
+ TK_senprd[3]=70; //TCH3 scan period = TCH3 sens
+ TK_senprd[4]=70; //TCH4 scan period = TCH4 sens
+ TK_senprd[5]=70; //TCH5 scan period = TCH5 sens
+ TK_senprd[6]=70; //TCH6 scan period = TCH6 sens
+ TK_senprd[7]=70; //TCH7 scan period = TCH7 sens
+ TK_senprd[8]=180; //TCH8 scan period = TCH8 sens
+ TK_senprd[9]=180; //TCH9 scan period = TCH9 sens
+ TK_senprd[10]=70; //TCH10 scan period = TCH10 sens
+ TK_senprd[11]=70; //TCH11 scan period = TCH11 sens
+ TK_senprd[12]=180; //TCH12 scan period = TCH12 sens
+ TK_senprd[13]=180; //TCH13 scan period = TCH13 sens
+ TK_senprd[14]=180; //TCH14 scan period = TCH14 sens
+ TK_senprd[15]=70; //TCH15 scan period = TCH15 sens
+ TK_senprd[16]=70; //TCH16 scan period = TCH16 sens
+ TK_Triggerlevel[0]=100; //TCH0 TK_Trigger level
+ TK_Triggerlevel[1]=40; //TCH1 TK_Trigger level
+ TK_Triggerlevel[2]=40; //TCH2 TK_Trigger level
+ TK_Triggerlevel[3]=40; //TCH3 TK_Trigger level
+ TK_Triggerlevel[4]=40; //TCH4 TK_Trigger level
+ TK_Triggerlevel[5]=40; //TCH5 TK_Trigger level
+ TK_Triggerlevel[6]=40; //TCH6 TK_Trigger level
+ TK_Triggerlevel[7]=40; //TCH7 TK_Trigger level
+ TK_Triggerlevel[8]=100; //TCH8 TK_Trigger level
+ TK_Triggerlevel[9]=100; //TCH9 TK_Trigger level
+ TK_Triggerlevel[10]=40; //TCH10 TK_Trigger level
+ TK_Triggerlevel[11]=40; //TCH11 TK_Trigger level
+ TK_Triggerlevel[12]=100; //TCH12 TK_Trigger level
+ TK_Triggerlevel[13]=100; //TCH13 TK_Trigger level
+ TK_Triggerlevel[14]=100; //TCH14 TK_Trigger level
+ TK_Triggerlevel[15]=40; //TCH15 TK_Trigger level
+ TK_Triggerlevel[16]=40; //TCH16 TK_Trigger level
+ Press_debounce_data=6; //Press debounce 1~10
+ Release_debounce_data=5; //Release debounce 1~10
+ Key_mode=1; //Key mode 0=single key 1=multi key
+ MultiTimes_Filter=40; //MultiTimes Filter,>4 ENABLE <4 DISABLE
+ Valid_Key_Num=6; //Valid Key number when touched
+ Base_Speed=20; //baseline update speed
+ TK_longpress_time=8; //longpress rebuild time = _TK_longpress_time1*1s 0=disable
+ TK_BaseCnt=59999; //10ms TK_BaseCnt=10ms*48M/8-1,this register need to modify when mcu's Freq changed
+
+/****************************************************
+//TK low power function define
+*****************************************************/
+ TK_Lowpower_mode=DISABLE; //touch key can goto sleep when TK lowpower mode enable
+ TK_Lowpower_level=2; //0=20ms 1=50ms 2=100ms 3=150ms 4=200ms,Scan interval when sleep
+ TK_Wakeup_level=50; //touch key Trigger level in sleep
+/****************************************************
+//TK special parameter define
+*****************************************************/
+ TK_PSEL_MODE=TK_PSEL_FVR; //tk power sel:TK_PSEL_FVR/TK_PSEL_AVDD when select TK_PSEL_FVR PA0.2(TCH3) need a 104 cap
+ TK_FVR_LEVEL=TK_FVR_2048V; //FVR level:TK_FVR_2048V/TK_FVR_4096V
+ TK_EC_LEVEL=TK_EC_1V; //C0 voltage sel:TK_EC_1V/TK_EC_2V/TK_EC_3V/TK_EC_3_6V
+ TK_icon[0]=6; //TCH0 TK Scan icon range 0~7
+ TK_icon[1]=6; //TCH1 TK Scan icon range 0~7
+ TK_icon[2]=6; //TCH2 TK Scan icon range 0~7
+ TK_icon[3]=6; //TCH3 TK Scan icon range 0~7
+ TK_icon[4]=6; //TCH4 TK Scan icon range 0~7
+ TK_icon[5]=6; //TCH5 TK Scan icon range 0~7
+ TK_icon[6]=6; //TCH6 TK Scan icon range 0~7
+ TK_icon[7]=6; //TCH7 TK Scan icon range 0~7
+ TK_icon[8]=6; //TCH8 TK Scan icon range 0~7
+ TK_icon[9]=6; //TCH9 TK Scan icon range 0~7
+ TK_icon[10]=6; //TCH10 TK Scan icon range 0~7
+ TK_icon[11]=6; //TCH11 TK Scan icon range 0~7
+ TK_icon[12]=6; //TCH12 TK Scan icon range 0~7
+ TK_icon[13]=6; //TCH13 TK Scan icon range 0~7
+ TK_icon[14]=6; //TCH14 TK Scan icon range 0~7
+ TK_icon[15]=6; //TCH15 TK Scan icon range 0~7
+ TK_icon[16]=6; //TCH16 TK Scan icon range 0~7
+}
\ No newline at end of file
diff --git a/Source/FWlib/apt32f102_uart.c b/Source/FWlib/apt32f102_uart.c
new file mode 100644
index 0000000..bd81163
--- /dev/null
+++ b/Source/FWlib/apt32f102_uart.c
@@ -0,0 +1,397 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_uart.c
+ * @author APT AE Team
+ * @version V1.15
+ * @date 2022/09/05
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "apt32f102_uart.h"
+
+
+/* define --------------------------------------------------------------------*/
+volatile U8_T RxDataFlag=0;
+volatile U8_T TxDataFlag=0;
+volatile U8_T f_Uart_send_Complete;
+volatile U16_T Uart_send_Length_temp;
+volatile U8_T Uart_send_Length;
+volatile U8_T Uart_buffer[UART_BUFSIZE];
+/* externs--------------------------------------------------------------------*/
+
+
+/*************************************************************/
+//UART RESET,CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_DeInit(void)
+{
+ UART0->DATA = UART_RESET_VALUE;
+ UART0->SR = UART_RESET_VALUE;
+ UART0->CTRL = UART_RESET_VALUE;
+ UART0->ISR = UART_RESET_VALUE;
+ UART0->BRDIV =UART_RESET_VALUE;
+}
+void UART1_DeInit(void)
+{
+ UART1->DATA = UART_RESET_VALUE;
+ UART1->SR = UART_RESET_VALUE;
+ UART1->CTRL = UART_RESET_VALUE;
+ UART1->ISR = UART_RESET_VALUE;
+ UART1->BRDIV =UART_RESET_VALUE;
+}
+void UART2_DeInit(void)
+{
+ UART2->DATA = UART_RESET_VALUE;
+ UART2->SR = UART_RESET_VALUE;
+ UART2->CTRL = UART_RESET_VALUE;
+ UART2->ISR = UART_RESET_VALUE;
+ UART2->BRDIV =UART_RESET_VALUE;
+}
+/*************************************************************/
+//UART0 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_Int_Enable(void)
+{
+ UART0->ISR=0x0F; //clear UART0 INT status
+ INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART0 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_Int_Disable(void)
+{
+ INTC_ICER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART1 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART1_Int_Enable(void)
+{
+ UART1->ISR=0x0F; //clear UART1 INT status
+ INTC_ISER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART1 Interrupt Disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART1_Int_Disable(void)
+{
+ INTC_ICER_WRITE(UART1_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART1 Interrupt enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART2_Int_Enable(void)
+{
+ UART2->ISR=0x0F; //clear UART1 INT status
+ INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART1 Interrupt Disable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART2_Int_Disable(void)
+{
+ INTC_ICER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+}
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(UART0_INT);
+}
+
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(UART0_INT);
+}
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART1_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(UART1_INT);
+}
+
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART1_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(UART1_INT);
+}
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART2_WakeUp_Enable(void)
+{
+ INTC_IWER_WRITE(UART2_INT);
+}
+
+/*************************************************************/
+//UART0 Wake up enable
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART2_WakeUp_Disable(void)
+{
+ INTC_IWDR_WRITE(UART2_INT);
+}
+/*************************************************************/
+//UART IO Init
+//EntryParameter:IO_UARTX,UART_IO_G
+//IO_UARTX:IO_UART0,IO_UART1
+//UART_IO_G:0 1
+//ReturnValue:NONE
+/*************************************************************/
+void UART_IO_Init(UART_NUM_TypeDef IO_UART_NUM , U8_T UART_IO_G)
+{
+ if (IO_UART_NUM==IO_UART0)
+ {
+ if(UART_IO_G==0)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000044; //PA0.1->RXD0, PA0.0->TXD0
+ }
+ else if(UART_IO_G==1)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFF0FFFFF) | 0x00700000; //PA0.5->RXD0, PA0.12->TXD0
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFFF0FFFF) | 0x00070000;
+ }
+ }
+ if (IO_UART_NUM==IO_UART1)
+ {
+ if(UART_IO_G==0)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFFFFFFF0) | 0x00000007; //PA0.13->RXD1, PB0.0->TXD1
+ GPIOA0->CONHR = (GPIOA0->CONHR&0XFF0FFFFF) | 0x00700000;
+ }
+ else if(UART_IO_G==1)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFF00FFF) | 0X00077000; //PA0.4->RXD1, PA0.3->TXD1
+ }
+ else if(UART_IO_G==2)
+ {
+ GPIOA0->CONHR = (GPIOA0->CONHR&0X00FFFFFF) | 0X77000000; //PA0.15->RXD1, PA0.14->TXD1
+ }
+ }
+ if (IO_UART_NUM==IO_UART2)
+ {
+ if(UART_IO_G==0)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0XFFFFFF00) | 0x00000077; //PA0.0->RXD2, PA0.1->TXD2
+ }
+ else if(UART_IO_G==1)
+ {
+ GPIOA0->CONLR = (GPIOA0->CONLR&0X00FFFFFF) | 0X77000000; //PA0.7->RXD2, PA0.6->TXD2
+ }
+ else if(UART_IO_G==2)
+ {
+ GPIOB0->CONLR = (GPIOB0->CONLR&0XFF00FFFF) | 0X00660000; //PB0.5->RXD2, PB0.4->TXD2
+ }
+ }
+}
+/*************************************************************/
+//UART Init
+//EntryParameter:UART0,UART1,UART2 ,baudrate_u16
+//e.g:
+//sys_clk@24MHz, 24/4(div)=6MHz, 6000000/115200bps=52,baudrate_u16=52
+//sys_clk@24MHz, 24/2(div)=12MHz, 12000000/115200bps=104,baudrate_u16=104
+//ReturnValue:NONE
+/*************************************************************/
+void UARTInit(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT)
+{
+ // Set Transmitter Enable
+ CSP_UART_SET_CTRL(uart, UART_TX | UART_RX | PAR_DAT | UART_TX_DONE_INT);
+ // Set Baudrate
+ CSP_UART_SET_BRDIV(uart, baudrate_u16);
+}
+/*************************************************************/
+//UART init and enable RX,TX interrupt
+//EntryParameter:UART0,UART1,UART2 ,baudrate_u16
+//ReturnValue:NONE
+/*************************************************************/
+void UARTInitRxTxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT)
+{
+ // Set Transmitter Enable
+ CSP_UART_SET_CTRL(uart, UART_TX | UART_RX | UART_RX_INT | UART_TX_INT | PAR_DAT | UART_TX_DONE_INT);
+ // Set Baudrate
+ CSP_UART_SET_BRDIV(uart, baudrate_u16);
+}
+/*************************************************************/
+//UART init and enable RX interrupt
+//EntryParameter:UART0,UART1,UART2 ,baudrate_u16
+//ReturnValue:NONE
+/*************************************************************/
+void UARTInitRxIntEn(CSP_UART_T *uart,U16_T baudrate_u16,UART_PAR_TypeDef PAR_DAT)
+{
+ // Set Transmitter Enable
+ CSP_UART_SET_CTRL(uart, UART_TX | UART_RX | UART_RX_INT |PAR_DAT);
+ // Set Baudrate
+ CSP_UART_SET_BRDIV(uart, baudrate_u16);
+
+}
+/*************************************************************/
+//UART Close
+//EntryParameter:UART0,UART1,UART2
+//ReturnValue:NONE
+/*************************************************************/
+void UARTClose(CSP_UART_T *uart)
+{
+ // Set Transmitter Disable
+ CSP_UART_SET_CTRL(uart, 0x00);
+}
+/*************************************************************/
+//UART TX Byte loop send
+//EntryParameter:UART0,UART1,UART2,txdata_u8
+//ReturnValue:NONE
+/*************************************************************/
+void UARTTxByte(CSP_UART_T *uart,U8_T txdata_u8)
+{
+ unsigned int DataI;
+ // Write the transmit buffer
+ CSP_UART_SET_DATA(uart,txdata_u8);
+ do
+ {
+ DataI = CSP_UART_GET_SR(uart);
+ DataI = DataI & UART_TX_FULL;
+ }
+ while(DataI == UART_TX_FULL); //Loop when tx is full
+}
+/*************************************************************/
+//UART Transmit
+//EntryParameter:UART0,UART1,UART2,sourceAddress_u16,length_u16
+//ReturnValue:NONE
+/*************************************************************/
+void UARTTransmit(CSP_UART_T *uart,U8_T *sourceAddress_u16,U16_T length_u16)
+{
+ unsigned int DataI,DataJ;
+ for(DataJ = 0;DataJ < length_u16 ;DataJ ++)
+ {
+ CSP_UART_SET_DATA(uart,*sourceAddress_u16++);
+ do{
+ DataI = CSP_UART_GET_SR(uart);
+ DataI = DataI & UART_TX_FULL;
+ }while(DataI == UART_TX_FULL); //Loop when tx is full
+ }
+}
+/*************************************************************/
+//UART INT Transmit
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void UARTTTransmit_data_set(CSP_UART_T *uart )
+{
+ if(!f_Uart_send_Complete)
+ {
+ f_Uart_send_Complete=1;
+ Uart_send_Length_temp++;
+ CSP_UART_SET_DATA(uart,Uart_buffer[0]);
+ }
+}
+void UARTTransmit_INT_Send(CSP_UART_T *uart )
+{
+ if(f_Uart_send_Complete)
+ {
+ if(Uart_send_Length_temp>=Uart_send_Length)
+ {
+ f_Uart_send_Complete=0;
+ Uart_send_Length_temp=0;
+ }
+ else
+ {
+ CSP_UART_SET_DATA(uart,Uart_buffer[Uart_send_Length_temp++]);
+ }
+ }
+}
+/*************************************************************/
+//UART RX Byte
+//EntryParameter:UART0,UART1,UART2,Rxdata_u16
+//ReturnValue:NONE
+/*************************************************************/
+U16_T UARTRxByte(CSP_UART_T *uart,U8_T *Rxdata_u16)
+{
+ unsigned int DataI;
+
+ DataI = CSP_UART_GET_SR(uart);
+ DataI = DataI & UART_RX_FULL;
+ if(DataI != UART_RX_FULL) //Loop when rx is not full
+ return FALSE;
+ else
+ {
+ *Rxdata_u16 = CSP_UART_GET_DATA(uart);
+ return TRUE;
+ }
+}
+
+/*************************************************************/
+//UART RX Return Byte
+//EntryParameter:UART0,UART1,UART2
+//ReturnValue:(uart)->DATA
+/*************************************************************/
+U8_T UART_ReturnRxByte(CSP_UART_T *uart)
+{
+ RxDataFlag = FALSE;
+ while(RxDataFlag != TRUE);
+ return CSP_UART_GET_DATA(uart);
+}
+
+/*************************************************************/
+//UART Receive
+//EntryParameter:UART0,UART1,UART2,destAddress_u16,length_u16
+//ReturnValue:FALSE/TRUE
+/*************************************************************/
+U16_T UARTReceive(CSP_UART_T *uart,U8_T *destAddress_u16,U16_T length_u16)
+{
+ unsigned int DataI,DataJ,LoopTime;
+
+ DataJ = 0;
+ LoopTime = 0;
+ do{
+ DataI = CSP_UART_GET_SR(uart);
+ DataI = DataI & UART_RX_FULL;
+ if(DataI == UART_RX_FULL) //Loop when rx is full
+ {
+ *destAddress_u16++ = CSP_UART_GET_DATA(uart);
+ DataJ++;
+ LoopTime = 0;
+ }
+ if(LoopTime ++ >= 0xfff0)
+ return FALSE;
+ }while(DataJ < length_u16);
+ return TRUE;
+}
diff --git a/Source/FWlib/apt32f102_wwdt.c b/Source/FWlib/apt32f102_wwdt.c
new file mode 100644
index 0000000..35591a1
--- /dev/null
+++ b/Source/FWlib/apt32f102_wwdt.c
@@ -0,0 +1,90 @@
+/*
+ ******************************************************************************
+ * @file apt32f102_wwdt.c
+ * @author APT AE Team
+ * @version V1.08
+ * @date 2021/06/21
+ ******************************************************************************
+ *THIS SOFTWARE WHICH IS FOR ILLUSTRATIVE PURPOSES ONLY WHICH PROVIDES
+ *CUSTOMER WITH CODING INFORMATION REGARDING THEIR PRODUCTS.
+ *APT CHIP SHALL NOT BE HELD RESPONSIBILITY ADN LIABILITY FOR ANY DIRECT,
+ *INDIRECT DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF
+ *SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
+ *CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.AND APT CHIP RESERVES
+ *THE RIGHT TO MAKE CHANGES IN THE SOFTWARE WITHOUT NOTIFICATION
+ ******************************************************************************
+ */
+
+
+ /* Includes ------------------------------------------------------------------*/
+#include "apt32f102_wwdt.h"
+
+
+/*************************************************************/
+//WWDT RESET CLEAR ALL REGISTER
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void WWDT_DeInit(void)
+{
+ WWDT->CR = 0x000000FF;
+ WWDT->CFGR = 0x000000FF;
+ WWDT->RISR = WWDT_RESET_VALUE;
+ WWDT->MISR = WWDT_RESET_VALUE;
+ WWDT->IMCR = WWDT_RESET_VALUE;
+ WWDT->ICR = WWDT_RESET_VALUE;
+}
+/*************************************************************/
+//WWDT CONFIG
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void WWDT_CONFIG(WWDT_PSCDIV_TypeDef PSCDIVX,U8_T WND_DATA,WWDT_DBGEN_TypeDef DBGENX)
+{
+ WWDT->CFGR =WND_DATA;
+ WWDT->CFGR |= PSCDIVX |DBGENX;
+}
+/*************************************************************/
+//WWDT ENABLE/DISABLE
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void WWDT_CMD(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ WWDT->CR |= 0x01<<8;
+ }
+ else
+ {
+ WWDT->CR &= 0xfffffeff;
+ }
+}
+/*************************************************************/
+//WWDT load data
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void WWDT_CNT_Load(U8_T cnt_data)
+{
+ WWDT->CR |= cnt_data; //SET
+}
+/*************************************************************/
+//WWDT INT ENABLE/DISABLE
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void WWDT_Int_Config(FunctionalStatus NewState)
+{
+ if (NewState != DISABLE)
+ {
+ WWDT->ICR = WWDT_EVI;
+ WWDT->IMCR |= WWDT_EVI;
+ INTC_ISER_WRITE(WWDT_INT);
+ }
+ else
+ {
+ WWDT->IMCR &= ~WWDT_EVI; //CLR
+ INTC_ICER_WRITE(WWDT_INT);
+ }
+}
\ No newline at end of file
diff --git a/Source/Lst/NRF_T1F_CR_V01_20240415.asm b/Source/Lst/NRF_T1F_CR_V01_20240415.asm
new file mode 100644
index 0000000..b984ed2
--- /dev/null
+++ b/Source/Lst/NRF_T1F_CR_V01_20240415.asm
@@ -0,0 +1,10719 @@
+
+.//Obj/NRF_T1F_CR_V01_20240415.elf: file format elf32-csky-little
+
+
+Disassembly of section .text:
+
+00000000 :
+ 0: 0000010c .long 0x0000010c
+ 4: 00002ede .long 0x00002ede
+ 8: 00002ece .long 0x00002ece
+ c: 00000184 .long 0x00000184
+ 10: 00002ed6 .long 0x00002ed6
+ 14: 00002e94 .long 0x00002e94
+ 18: 00000184 .long 0x00000184
+ 1c: 00002ec6 .long 0x00002ec6
+ 20: 00002ebe .long 0x00002ebe
+ 24: 00000184 .long 0x00000184
+ 28: 00000184 .long 0x00000184
+ 2c: 00000184 .long 0x00000184
+ 30: 00000184 .long 0x00000184
+ 34: 00000184 .long 0x00000184
+ 38: 00000184 .long 0x00000184
+ 3c: 00000184 .long 0x00000184
+ 40: 00002eb6 .long 0x00002eb6
+ 44: 00002eae .long 0x00002eae
+ 48: 00002ea6 .long 0x00002ea6
+ 4c: 00002e9e .long 0x00002e9e
+ 50: 00000184 .long 0x00000184
+ 54: 00000184 .long 0x00000184
+ 58: 00000184 .long 0x00000184
+ 5c: 00000184 .long 0x00000184
+ 60: 00000184 .long 0x00000184
+ 64: 00000184 .long 0x00000184
+ 68: 00000184 .long 0x00000184
+ 6c: 00000184 .long 0x00000184
+ 70: 00000184 .long 0x00000184
+ 74: 00000184 .long 0x00000184
+ 78: 00000184 .long 0x00000184
+ 7c: 00002e96 .long 0x00002e96
+ 80: 00004124 .long 0x00004124
+ 84: 00002574 .long 0x00002574
+ 88: 00002664 .long 0x00002664
+ 8c: 000026cc .long 0x000026cc
+ 90: 00002734 .long 0x00002734
+ 94: 00000184 .long 0x00000184
+ 98: 000028e0 .long 0x000028e0
+ 9c: 00002c4c .long 0x00002c4c
+ a0: 00002c7c .long 0x00002c7c
+ a4: 00002914 .long 0x00002914
+ a8: 00000184 .long 0x00000184
+ ac: 00000184 .long 0x00000184
+ b0: 00002994 .long 0x00002994
+ b4: 00002a04 .long 0x00002a04
+ b8: 00002a40 .long 0x00002a40
+ bc: 00002a7c .long 0x00002a7c
+ c0: 00000184 .long 0x00000184
+ c4: 00002eee .long 0x00002eee
+ c8: 00000184 .long 0x00000184
+ cc: 00002b10 .long 0x00002b10
+ d0: 00002bf8 .long 0x00002bf8
+ d4: 00002cac .long 0x00002cac
+ d8: 00002cf4 .long 0x00002cf4
+ dc: 00002d50 .long 0x00002d50
+ e0: 00002ee6 .long 0x00002ee6
+ e4: 00003b94 .long 0x00003b94
+ e8: 00002db0 .long 0x00002db0
+ ec: 00000184 .long 0x00000184
+ f0: 00002de4 .long 0x00002de4
+ f4: 00002e30 .long 0x00002e30
+ f8: 00000184 .long 0x00000184
+ fc: 00000184 .long 0x00000184
+ 100: 55aa0005 .long 0x55aa0005
+ ...
+
+0000010c <__start>:
+// .long __start
+__start:
+
+
+ //initialize all registers
+ movi r0, 0
+ 10c: 3000 movi r0, 0
+ movi r1, 0
+ 10e: 3100 movi r1, 0
+ movi r2, 0
+ 110: 3200 movi r2, 0
+ movi r3, 0
+ 112: 3300 movi r3, 0
+ movi r4, 0
+ 114: 3400 movi r4, 0
+ movi r5, 0
+ 116: 3500 movi r5, 0
+ movi r6, 0
+ 118: 3600 movi r6, 0
+ movi r7, 0
+ 11a: 3700 movi r7, 0
+ //movi r13, 0
+ //movi r14, 0
+ //movi r15, 0
+
+//set VBR
+ lrw r2, vector_table
+ 11c: 105b lrw r2, 0x0 // 188
+ mtcr r2, cr<1,0>
+ 11e: c0026421 mtcr r2, cr<1, 0>
+
+//enable EE bit of psr
+ mfcr r2, cr<0,0>
+ 122: c0006022 mfcr r2, cr<0, 0>
+ bseti r2, r2, 8
+ 126: 3aa8 bseti r2, 8
+ mtcr r2, cr<0,0>
+ 128: c0026420 mtcr r2, cr<0, 0>
+// st.w r2, (r1,0x4)
+// movi r2, 0x1
+// st.w r2, (r1,0x0)
+
+//disable power peak
+ lrw r1, 0xe000ef90
+ 12c: 1038 lrw r1, 0xe000ef90 // 18c
+ movi r2, 0x0
+ 12e: 3200 movi r2, 0
+ st.w r2, (r1, 0x0)
+ 130: b140 st.w r2, (r1, 0x0)
+
+
+
+//initialize kernel stack
+ lrw r7, __kernel_stack
+ 132: 10f8 lrw r7, 0x20000ff8 // 190
+ mov r14,r7
+ 134: 6f9f mov r14, r7
+ subi r6,r7,0x4
+ 136: 5fcf subi r6, r7, 4
+
+ //lrw r3, 0x40
+ lrw r3, 0x04
+ 138: 3304 movi r3, 4
+
+ subu r4, r7, r3
+ 13a: 5f8d subu r4, r7, r3
+ lrw r5, 0x0
+ 13c: 3500 movi r5, 0
+
+0000013e :
+INIT_KERLE_STACK:
+ addi r4, 0x4
+ 13e: 2403 addi r4, 4
+ st.w r5, (r4)
+ 140: b4a0 st.w r5, (r4, 0x0)
+ //cmphs r7, r4
+ cmphs r6, r4
+ 142: 6518 cmphs r6, r4
+ bt INIT_KERLE_STACK
+ 144: 0bfd bt 0x13e // 13e
+
+00000146 <__to_main>:
+
+__to_main:
+ lrw r0,__main
+ 146: 1014 lrw r0, 0x1a50 // 194
+ jsr r0
+ 148: 7bc1 jsr r0
+ mov r0, r0
+ 14a: 6c03 mov r0, r0
+ mov r0, r0
+ 14c: 6c03 mov r0, r0
+
+
+
+ lrw r15, __exit
+ 14e: ea8f0013 lrw r15, 0x160 // 198
+ lrw r0,main
+ 152: 1013 lrw r0, 0x232c // 19c
+ jmp r0
+ 154: 7800 jmp r0
+ mov r0, r0
+ 156: 6c03 mov r0, r0
+ mov r0, r0
+ 158: 6c03 mov r0, r0
+ mov r0, r0
+ 15a: 6c03 mov r0, r0
+ mov r0, r0
+ 15c: 6c03 mov r0, r0
+ mov r0, r0
+ 15e: 6c03 mov r0, r0
+
+00000160 <__exit>:
+
+.export __exit
+__exit:
+
+ lrw r4, 0x20003000
+ 160: 1090 lrw r4, 0x20003000 // 1a0
+ //lrw r5, 0x0
+ mov r5, r0
+ 162: 6d43 mov r5, r0
+ st.w r5, (r4)
+ 164: b4a0 st.w r5, (r4, 0x0)
+
+ mfcr r1, cr<0,0>
+ 166: c0006021 mfcr r1, cr<0, 0>
+ lrw r1, 0xFFFF
+ 16a: 102f lrw r1, 0xffff // 1a4
+ mtcr r1, cr<11,0>
+ 16c: c001642b mtcr r1, cr<11, 0>
+ lrw r1, 0xFFF
+ 170: 102e lrw r1, 0xfff // 1a8
+ movi r0, 0x0
+ 172: 3000 movi r0, 0
+ st r1, (r0)
+ 174: b020 st.w r1, (r0, 0x0)
+
+00000176 <__fail>:
+
+.export __fail
+__fail:
+ lrw r1, 0xEEEE
+ 176: 102e lrw r1, 0xeeee // 1ac
+ mtcr r1, cr<11,0>
+ 178: c001642b mtcr r1, cr<11, 0>
+ lrw r1, 0xEEE
+ 17c: 102d lrw r1, 0xeee // 1b0
+ movi r0, 0x0
+ 17e: 3000 movi r0, 0
+ st r1, (r0)
+ 180: b020 st.w r1, (r0, 0x0)
+
+00000182 <__dummy>:
+
+__dummy:
+ br __fail
+ 182: 07fa br 0x176 // 176 <__fail>
+
+00000184 :
+
+.export DummyHandler
+DummyHandler:
+ br __fail
+ 184: 07f9 br 0x176 // 176 <__fail>
+ 186: 0000 .short 0x0000
+ 188: 00000000 .long 0x00000000
+ 18c: e000ef90 .long 0xe000ef90
+ 190: 20000ff8 .long 0x20000ff8
+ 194: 00001a50 .long 0x00001a50
+ 198: 00000160 .long 0x00000160
+ 19c: 0000232c .long 0x0000232c
+ 1a0: 20003000 .long 0x20003000
+ 1a4: 0000ffff .long 0x0000ffff
+ 1a8: 00000fff .long 0x00000fff
+ 1ac: 0000eeee .long 0x0000eeee
+ 1b0: 00000eee .long 0x00000eee
+
+000001b4 <__GI_pow>:
+ 1b4: 14d4 push r4-r7, r15
+ 1b6: 142d subi r14, r14, 52
+ 1b8: b860 st.w r3, (r14, 0x0)
+ 1ba: 4361 lsli r3, r3, 1
+ 1bc: 4b81 lsri r4, r3, 1
+ 1be: b842 st.w r2, (r14, 0x8)
+ 1c0: 6c90 or r2, r4
+ 1c2: 3a40 cmpnei r2, 0
+ 1c4: 6dc3 mov r7, r0
+ 1c6: 6d87 mov r6, r1
+ 1c8: 0803 bt 0x1ce // 1ce <__GI_pow+0x1a>
+ 1ca: e8000462 br 0xa8e // a8e <__GI_pow+0x8da>
+ 1ce: 41a1 lsli r5, r1, 1
+ 1d0: 4da1 lsri r5, r5, 1
+ 1d2: 0055 lrw r2, 0x7ff00000 // 578 <__GI_pow+0x3c4>
+ 1d4: 6549 cmplt r2, r5
+ 1d6: 080c bt 0x1ee // 1ee <__GI_pow+0x3a>
+ 1d8: 6496 cmpne r5, r2
+ 1da: 0803 bt 0x1e0 // 1e0 <__GI_pow+0x2c>
+ 1dc: 3840 cmpnei r0, 0
+ 1de: 0808 bt 0x1ee // 1ee <__GI_pow+0x3a>
+ 1e0: 6509 cmplt r2, r4
+ 1e2: 0806 bt 0x1ee // 1ee <__GI_pow+0x3a>
+ 1e4: 6492 cmpne r4, r2
+ 1e6: 080e bt 0x202 // 202 <__GI_pow+0x4e>
+ 1e8: 9802 ld.w r0, (r14, 0x8)
+ 1ea: 3840 cmpnei r0, 0
+ 1ec: 0c0b bf 0x202 // 202 <__GI_pow+0x4e>
+ 1ee: 9842 ld.w r2, (r14, 0x8)
+ 1f0: 9860 ld.w r3, (r14, 0x0)
+ 1f2: 6c1f mov r0, r7
+ 1f4: 6c5b mov r1, r6
+ 1f6: e0000713 bsr 0x101c // 101c <__adddf3>
+ 1fa: 6d03 mov r4, r0
+ 1fc: 6c13 mov r0, r4
+ 1fe: 140d addi r14, r14, 52
+ 200: 1494 pop r4-r7, r15
+ 202: 3edf btsti r6, 31
+ 204: 0c51 bf 0x2a6 // 2a6 <__GI_pow+0xf2>
+ 206: 0121 lrw r1, 0x43400000 // 57c <__GI_pow+0x3c8>
+ 208: 2900 subi r1, 1
+ 20a: 6505 cmplt r1, r4
+ 20c: 084b bt 0x2a2 // 2a2 <__GI_pow+0xee>
+ 20e: 0162 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 210: 2b00 subi r3, 1
+ 212: 650d cmplt r3, r4
+ 214: 0c49 bf 0x2a6 // 2a6 <__GI_pow+0xf2>
+ 216: 5454 asri r2, r4, 20
+ 218: 0104 lrw r0, 0xfffffc01 // 584 <__GI_pow+0x3d0>
+ 21a: 6080 addu r2, r0
+ 21c: 3a34 cmplti r2, 21
+ 21e: 0821 bt 0x260 // 260 <__GI_pow+0xac>
+ 220: 3334 movi r3, 52
+ 222: 60ca subu r3, r2
+ 224: 9842 ld.w r2, (r14, 0x8)
+ 226: 708d lsr r2, r3
+ 228: 6c4b mov r1, r2
+ 22a: 704c lsl r1, r3
+ 22c: 9802 ld.w r0, (r14, 0x8)
+ 22e: 6442 cmpne r0, r1
+ 230: 083b bt 0x2a6 // 2a6 <__GI_pow+0xf2>
+ 232: 3101 movi r1, 1
+ 234: 6884 and r2, r1
+ 236: 3302 movi r3, 2
+ 238: 5b49 subu r2, r3, r2
+ 23a: 9802 ld.w r0, (r14, 0x8)
+ 23c: 3840 cmpnei r0, 0
+ 23e: b841 st.w r2, (r14, 0x4)
+ 240: 0862 bt 0x304 // 304 <__GI_pow+0x150>
+ 242: 0151 lrw r2, 0x7ff00000 // 578 <__GI_pow+0x3c4>
+ 244: 6492 cmpne r4, r2
+ 246: 081f bt 0x284 // 284 <__GI_pow+0xd0>
+ 248: 012f lrw r1, 0xc0100000 // 588 <__GI_pow+0x3d4>
+ 24a: 6054 addu r1, r5
+ 24c: 6dc4 or r7, r1
+ 24e: 3f40 cmpnei r7, 0
+ 250: 082d bt 0x2aa // 2aa <__GI_pow+0xf6>
+ 252: 9860 ld.w r3, (r14, 0x0)
+ 254: 3200 movi r2, 0
+ 256: 6c4f mov r1, r3
+ 258: 3000 movi r0, 0
+ 25a: e00006f9 bsr 0x104c // 104c <__subdf3>
+ 25e: 07ce br 0x1fa // 1fa <__GI_pow+0x46>
+ 260: 9822 ld.w r1, (r14, 0x8)
+ 262: 3940 cmpnei r1, 0
+ 264: 084e bt 0x300 // 300 <__GI_pow+0x14c>
+ 266: 3114 movi r1, 20
+ 268: 604a subu r1, r2
+ 26a: 6c93 mov r2, r4
+ 26c: 7086 asr r2, r1
+ 26e: 6c0b mov r0, r2
+ 270: 7004 lsl r0, r1
+ 272: 6412 cmpne r4, r0
+ 274: 0c03 bf 0x27a // 27a <__GI_pow+0xc6>
+ 276: e8000471 br 0xb58 // b58 <__GI_pow+0x9a4>
+ 27a: 3101 movi r1, 1
+ 27c: 6884 and r2, r1
+ 27e: 3002 movi r0, 2
+ 280: 5869 subu r3, r0, r2
+ 282: b861 st.w r3, (r14, 0x4)
+ 284: 0220 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 286: 6452 cmpne r4, r1
+ 288: 0825 bt 0x2d2 // 2d2 <__GI_pow+0x11e>
+ 28a: 9880 ld.w r4, (r14, 0x0)
+ 28c: 3cdf btsti r4, 31
+ 28e: 0803 bt 0x294 // 294 <__GI_pow+0xe0>
+ 290: e8000407 br 0xa9e // a9e <__GI_pow+0x8ea>
+ 294: 6c9f mov r2, r7
+ 296: 6cdb mov r3, r6
+ 298: 3000 movi r0, 0
+ 29a: 0225 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 29c: e000080e bsr 0x12b8 // 12b8 <__divdf3>
+ 2a0: 07ad br 0x1fa // 1fa <__GI_pow+0x46>
+ 2a2: 3202 movi r2, 2
+ 2a4: 07cb br 0x23a // 23a <__GI_pow+0x86>
+ 2a6: 3200 movi r2, 0
+ 2a8: 07c9 br 0x23a // 23a <__GI_pow+0x86>
+ 2aa: 0269 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 2ac: 2b00 subi r3, 1
+ 2ae: 654d cmplt r3, r5
+ 2b0: 9800 ld.w r0, (r14, 0x0)
+ 2b2: 0c08 bf 0x2c2 // 2c2 <__GI_pow+0x10e>
+ 2b4: 38df btsti r0, 31
+ 2b6: 0803 bt 0x2bc // 2bc <__GI_pow+0x108>
+ 2b8: e80003ef br 0xa96 // a96 <__GI_pow+0x8e2>
+ 2bc: 3400 movi r4, 0
+ 2be: 3100 movi r1, 0
+ 2c0: 079e br 0x1fc // 1fc <__GI_pow+0x48>
+ 2c2: 38df btsti r0, 31
+ 2c4: 0ffc bf 0x2bc // 2bc <__GI_pow+0x108>
+ 2c6: 3400 movi r4, 0
+ 2c8: 6c43 mov r1, r0
+ 2ca: 3280 movi r2, 128
+ 2cc: 4278 lsli r3, r2, 24
+ 2ce: 604c addu r1, r3
+ 2d0: 0796 br 0x1fc // 1fc <__GI_pow+0x48>
+ 2d2: 3380 movi r3, 128
+ 2d4: 4317 lsli r0, r3, 23
+ 2d6: 9840 ld.w r2, (r14, 0x0)
+ 2d8: 640a cmpne r2, r0
+ 2da: 0808 bt 0x2ea // 2ea <__GI_pow+0x136>
+ 2dc: 6c9f mov r2, r7
+ 2de: 6cdb mov r3, r6
+ 2e0: 6c1f mov r0, r7
+ 2e2: 6c5b mov r1, r6
+ 2e4: e00006d0 bsr 0x1084 // 1084 <__muldf3>
+ 2e8: 0789 br 0x1fa // 1fa <__GI_pow+0x46>
+ 2ea: 0276 lrw r3, 0x3fe00000 // 58c <__GI_pow+0x3d8>
+ 2ec: 9820 ld.w r1, (r14, 0x0)
+ 2ee: 64c6 cmpne r1, r3
+ 2f0: 080a bt 0x304 // 304 <__GI_pow+0x150>
+ 2f2: 3edf btsti r6, 31
+ 2f4: 0808 bt 0x304 // 304 <__GI_pow+0x150>
+ 2f6: 6c1f mov r0, r7
+ 2f8: 6c5b mov r1, r6
+ 2fa: e0000445 bsr 0xb84 // b84 <__GI_sqrt>
+ 2fe: 077e br 0x1fa // 1fa <__GI_pow+0x46>
+ 300: 3300 movi r3, 0
+ 302: b861 st.w r3, (r14, 0x4)
+ 304: 6c1f mov r0, r7
+ 306: 6c5b mov r1, r6
+ 308: b883 st.w r4, (r14, 0xc)
+ 30a: e000042a bsr 0xb5e // b5e <__GI_fabs>
+ 30e: 3f40 cmpnei r7, 0
+ 310: 6d03 mov r4, r0
+ 312: 9863 ld.w r3, (r14, 0xc)
+ 314: 0826 bt 0x360 // 360 <__GI_pow+0x1ac>
+ 316: 3d40 cmpnei r5, 0
+ 318: 0c05 bf 0x322 // 322 <__GI_pow+0x16e>
+ 31a: 4642 lsli r2, r6, 2
+ 31c: 0302 lrw r0, 0xffc00000 // 590 <__GI_pow+0x3dc>
+ 31e: 640a cmpne r2, r0
+ 320: 0820 bt 0x360 // 360 <__GI_pow+0x1ac>
+ 322: 9840 ld.w r2, (r14, 0x0)
+ 324: 3adf btsti r2, 31
+ 326: 0c08 bf 0x336 // 336 <__GI_pow+0x182>
+ 328: 6c93 mov r2, r4
+ 32a: 6cc7 mov r3, r1
+ 32c: 3000 movi r0, 0
+ 32e: 032a lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 330: e00007c4 bsr 0x12b8 // 12b8 <__divdf3>
+ 334: 6d03 mov r4, r0
+ 336: 3edf btsti r6, 31
+ 338: 0f62 bf 0x1fc // 1fc <__GI_pow+0x48>
+ 33a: 036b lrw r3, 0xc0100000 // 588 <__GI_pow+0x3d4>
+ 33c: 614c addu r5, r3
+ 33e: 9801 ld.w r0, (r14, 0x4)
+ 340: 6d40 or r5, r0
+ 342: 3d40 cmpnei r5, 0
+ 344: 080a bt 0x358 // 358 <__GI_pow+0x1a4>
+ 346: 6c93 mov r2, r4
+ 348: 6cc7 mov r3, r1
+ 34a: 6c0b mov r0, r2
+ 34c: 6c4f mov r1, r3
+ 34e: e000067f bsr 0x104c // 104c <__subdf3>
+ 352: 6c83 mov r2, r0
+ 354: 6cc7 mov r3, r1
+ 356: 07a3 br 0x29c // 29c <__GI_pow+0xe8>
+ 358: 9841 ld.w r2, (r14, 0x4)
+ 35a: 3a41 cmpnei r2, 1
+ 35c: 0b50 bt 0x1fc // 1fc <__GI_pow+0x48>
+ 35e: 07b6 br 0x2ca // 2ca <__GI_pow+0x116>
+ 360: 4e5f lsri r2, r6, 31
+ 362: 2a00 subi r2, 1
+ 364: b847 st.w r2, (r14, 0x1c)
+ 366: 9807 ld.w r0, (r14, 0x1c)
+ 368: 9841 ld.w r2, (r14, 0x4)
+ 36a: 6c80 or r2, r0
+ 36c: 3a40 cmpnei r2, 0
+ 36e: 0804 bt 0x376 // 376 <__GI_pow+0x1c2>
+ 370: 6c9f mov r2, r7
+ 372: 6cdb mov r3, r6
+ 374: 07eb br 0x34a // 34a <__GI_pow+0x196>
+ 376: 0357 lrw r2, 0x41e00000 // 594 <__GI_pow+0x3e0>
+ 378: 64c9 cmplt r2, r3
+ 37a: 0cbf bf 0x4f8 // 4f8 <__GI_pow+0x344>
+ 37c: 0358 lrw r2, 0x43f00000 // 598 <__GI_pow+0x3e4>
+ 37e: 64c9 cmplt r2, r3
+ 380: 037f lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 382: 0c0c bf 0x39a // 39a <__GI_pow+0x1e6>
+ 384: 2b00 subi r3, 1
+ 386: 654d cmplt r3, r5
+ 388: 080f bt 0x3a6 // 3a6 <__GI_pow+0x1f2>
+ 38a: 9820 ld.w r1, (r14, 0x0)
+ 38c: 39df btsti r1, 31
+ 38e: 0f97 bf 0x2bc // 2bc <__GI_pow+0x108>
+ 390: 035c lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
+ 392: 037b lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
+ 394: 6c0b mov r0, r2
+ 396: 6c4f mov r1, r3
+ 398: 07a6 br 0x2e4 // 2e4 <__GI_pow+0x130>
+ 39a: 2b01 subi r3, 2
+ 39c: 654d cmplt r3, r5
+ 39e: 0ff6 bf 0x38a // 38a <__GI_pow+0x1d6>
+ 3a0: 1318 lrw r0, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 3a2: 6541 cmplt r0, r5
+ 3a4: 0c05 bf 0x3ae // 3ae <__GI_pow+0x1fa>
+ 3a6: 9800 ld.w r0, (r14, 0x0)
+ 3a8: 3820 cmplti r0, 1
+ 3aa: 0ff3 bf 0x390 // 390 <__GI_pow+0x1dc>
+ 3ac: 0788 br 0x2bc // 2bc <__GI_pow+0x108>
+ 3ae: 3200 movi r2, 0
+ 3b0: 1374 lrw r3, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 3b2: 6c1f mov r0, r7
+ 3b4: 6c5b mov r1, r6
+ 3b6: 36c0 movi r6, 192
+ 3b8: e000064a bsr 0x104c // 104c <__subdf3>
+ 3bc: 4657 lsli r2, r6, 23
+ 3be: 137a lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0>
+ 3c0: 6d43 mov r5, r0
+ 3c2: 6d07 mov r4, r1
+ 3c4: e0000660 bsr 0x1084 // 1084 <__muldf3>
+ 3c8: 6dc3 mov r7, r0
+ 3ca: 6d87 mov r6, r1
+ 3cc: 1357 lrw r2, 0xf85ddf44 // 5a8 <__GI_pow+0x3f4>
+ 3ce: 1378 lrw r3, 0x3e54ae0b // 5ac <__GI_pow+0x3f8>
+ 3d0: 6c17 mov r0, r5
+ 3d2: 6c53 mov r1, r4
+ 3d4: e0000658 bsr 0x1084 // 1084 <__muldf3>
+ 3d8: b803 st.w r0, (r14, 0xc)
+ 3da: b824 st.w r1, (r14, 0x10)
+ 3dc: 3200 movi r2, 0
+ 3de: 1375 lrw r3, 0x3fd00000 // 5b0 <__GI_pow+0x3fc>
+ 3e0: 6c17 mov r0, r5
+ 3e2: 6c53 mov r1, r4
+ 3e4: e0000650 bsr 0x1084 // 1084 <__muldf3>
+ 3e8: 6c83 mov r2, r0
+ 3ea: 6cc7 mov r3, r1
+ 3ec: 1312 lrw r0, 0x55555555 // 5b4 <__GI_pow+0x400>
+ 3ee: 1333 lrw r1, 0x3fd55555 // 5b8 <__GI_pow+0x404>
+ 3f0: e000062e bsr 0x104c // 104c <__subdf3>
+ 3f4: 6c97 mov r2, r5
+ 3f6: 6cd3 mov r3, r4
+ 3f8: e0000646 bsr 0x1084 // 1084 <__muldf3>
+ 3fc: 6c83 mov r2, r0
+ 3fe: 6cc7 mov r3, r1
+ 400: 3000 movi r0, 0
+ 402: 1323 lrw r1, 0x3fe00000 // 58c <__GI_pow+0x3d8>
+ 404: e0000624 bsr 0x104c // 104c <__subdf3>
+ 408: b805 st.w r0, (r14, 0x14)
+ 40a: 6c97 mov r2, r5
+ 40c: 6cd3 mov r3, r4
+ 40e: b826 st.w r1, (r14, 0x18)
+ 410: 6c17 mov r0, r5
+ 412: 6c53 mov r1, r4
+ 414: e0000638 bsr 0x1084 // 1084 <__muldf3>
+ 418: 6c83 mov r2, r0
+ 41a: 6cc7 mov r3, r1
+ 41c: 9805 ld.w r0, (r14, 0x14)
+ 41e: 9826 ld.w r1, (r14, 0x18)
+ 420: e0000632 bsr 0x1084 // 1084 <__muldf3>
+ 424: 1346 lrw r2, 0x652b82fe // 5bc <__GI_pow+0x408>
+ 426: 1360 lrw r3, 0x3ff71547 // 5a4 <__GI_pow+0x3f0>
+ 428: e000062e bsr 0x1084 // 1084 <__muldf3>
+ 42c: 6c83 mov r2, r0
+ 42e: 6cc7 mov r3, r1
+ 430: 9803 ld.w r0, (r14, 0xc)
+ 432: 9824 ld.w r1, (r14, 0x10)
+ 434: e000060c bsr 0x104c // 104c <__subdf3>
+ 438: 6c83 mov r2, r0
+ 43a: 6cc7 mov r3, r1
+ 43c: 6d43 mov r5, r0
+ 43e: 6d07 mov r4, r1
+ 440: 6c1f mov r0, r7
+ 442: 6c5b mov r1, r6
+ 444: e00005ec bsr 0x101c // 101c <__adddf3>
+ 448: 6c9f mov r2, r7
+ 44a: 6cdb mov r3, r6
+ 44c: 3000 movi r0, 0
+ 44e: b823 st.w r1, (r14, 0xc)
+ 450: e00005fe bsr 0x104c // 104c <__subdf3>
+ 454: 6c83 mov r2, r0
+ 456: 6cc7 mov r3, r1
+ 458: 6c17 mov r0, r5
+ 45a: 6c53 mov r1, r4
+ 45c: e00005f8 bsr 0x104c // 104c <__subdf3>
+ 460: 6d07 mov r4, r1
+ 462: 9821 ld.w r1, (r14, 0x4)
+ 464: 2900 subi r1, 1
+ 466: 9847 ld.w r2, (r14, 0x1c)
+ 468: 6c48 or r1, r2
+ 46a: 3940 cmpnei r1, 0
+ 46c: 6d43 mov r5, r0
+ 46e: 0c02 bf 0x472 // 472 <__GI_pow+0x2be>
+ 470: 05f0 br 0x850 // 850 <__GI_pow+0x69c>
+ 472: 1274 lrw r3, 0xbff00000 // 5c0 <__GI_pow+0x40c>
+ 474: b861 st.w r3, (r14, 0x4)
+ 476: 9860 ld.w r3, (r14, 0x0)
+ 478: 3200 movi r2, 0
+ 47a: 9802 ld.w r0, (r14, 0x8)
+ 47c: 6c4f mov r1, r3
+ 47e: e00005e7 bsr 0x104c // 104c <__subdf3>
+ 482: 9863 ld.w r3, (r14, 0xc)
+ 484: 3200 movi r2, 0
+ 486: e00005ff bsr 0x1084 // 1084 <__muldf3>
+ 48a: 6dc3 mov r7, r0
+ 48c: 6d87 mov r6, r1
+ 48e: 9842 ld.w r2, (r14, 0x8)
+ 490: 9860 ld.w r3, (r14, 0x0)
+ 492: 6c17 mov r0, r5
+ 494: 6c53 mov r1, r4
+ 496: e00005f7 bsr 0x1084 // 1084 <__muldf3>
+ 49a: 6c83 mov r2, r0
+ 49c: 6cc7 mov r3, r1
+ 49e: 6c1f mov r0, r7
+ 4a0: 6c5b mov r1, r6
+ 4a2: e00005bd bsr 0x101c // 101c <__adddf3>
+ 4a6: 6dc3 mov r7, r0
+ 4a8: 9860 ld.w r3, (r14, 0x0)
+ 4aa: 6d87 mov r6, r1
+ 4ac: 3200 movi r2, 0
+ 4ae: 9823 ld.w r1, (r14, 0xc)
+ 4b0: 3000 movi r0, 0
+ 4b2: e00005e9 bsr 0x1084 // 1084 <__muldf3>
+ 4b6: b802 st.w r0, (r14, 0x8)
+ 4b8: b803 st.w r0, (r14, 0xc)
+ 4ba: b824 st.w r1, (r14, 0x10)
+ 4bc: 6c83 mov r2, r0
+ 4be: 6cc7 mov r3, r1
+ 4c0: 6d47 mov r5, r1
+ 4c2: 6c1f mov r0, r7
+ 4c4: 6c5b mov r1, r6
+ 4c6: e00005ab bsr 0x101c // 101c <__adddf3>
+ 4ca: 6d07 mov r4, r1
+ 4cc: 113e lrw r1, 0x40900000 // 5c4 <__GI_pow+0x410>
+ 4ce: 2900 subi r1, 1
+ 4d0: 6505 cmplt r1, r4
+ 4d2: b800 st.w r0, (r14, 0x0)
+ 4d4: 0803 bt 0x4da // 4da <__GI_pow+0x326>
+ 4d6: e80002b3 br 0xa3c // a3c <__GI_pow+0x888>
+ 4da: 117c lrw r3, 0xbf700000 // 5c8 <__GI_pow+0x414>
+ 4dc: 60d0 addu r3, r4
+ 4de: 6cc0 or r3, r0
+ 4e0: 3b40 cmpnei r3, 0
+ 4e2: 0802 bt 0x4e6 // 4e6 <__GI_pow+0x332>
+ 4e4: 05b8 br 0x854 // 854 <__GI_pow+0x6a0>
+ 4e6: 114e lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
+ 4e8: 116e lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
+ 4ea: 3000 movi r0, 0
+ 4ec: 9821 ld.w r1, (r14, 0x4)
+ 4ee: e00005cb bsr 0x1084 // 1084 <__muldf3>
+ 4f2: 114b lrw r2, 0x8800759c // 59c <__GI_pow+0x3e8>
+ 4f4: 116b lrw r3, 0x7e37e43c // 5a0 <__GI_pow+0x3ec>
+ 4f6: 06f7 br 0x2e4 // 2e4 <__GI_pow+0x130>
+ 4f8: 11d5 lrw r6, 0xfffff // 5cc <__GI_pow+0x418>
+ 4fa: 6559 cmplt r6, r5
+ 4fc: 09a6 bt 0x848 // 848 <__GI_pow+0x694>
+ 4fe: 6c13 mov r0, r4
+ 500: 3200 movi r2, 0
+ 502: 107f lrw r3, 0x43400000 // 57c <__GI_pow+0x3c8>
+ 504: e00005c0 bsr 0x1084 // 1084 <__muldf3>
+ 508: 3700 movi r7, 0
+ 50a: 6d03 mov r4, r0
+ 50c: 6d47 mov r5, r1
+ 50e: 2f34 subi r7, 53
+ 510: 5514 asri r0, r5, 20
+ 512: 103d lrw r1, 0xfffffc01 // 584 <__GI_pow+0x3d0>
+ 514: 45ac lsli r5, r5, 12
+ 516: 4d4c lsri r2, r5, 12
+ 518: 6004 addu r0, r1
+ 51a: 116e lrw r3, 0x3988e // 5d0 <__GI_pow+0x41c>
+ 51c: 601c addu r0, r7
+ 51e: 648d cmplt r3, r2
+ 520: 10f8 lrw r7, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 522: b804 st.w r0, (r14, 0x10)
+ 524: 6dc8 or r7, r2
+ 526: 0c09 bf 0x538 // 538 <__GI_pow+0x384>
+ 528: 11cb lrw r6, 0xbb679 // 5d4 <__GI_pow+0x420>
+ 52a: 6499 cmplt r6, r2
+ 52c: 0d90 bf 0x84c // 84c <__GI_pow+0x698>
+ 52e: 6c83 mov r2, r0
+ 530: 2200 addi r2, 1
+ 532: 110a lrw r0, 0xfff00000 // 5d8 <__GI_pow+0x424>
+ 534: b844 st.w r2, (r14, 0x10)
+ 536: 61c0 addu r7, r0
+ 538: 3500 movi r5, 0
+ 53a: 45c3 lsli r6, r5, 3
+ 53c: 1168 lrw r3, 0x4420 // 5dc <__GI_pow+0x428>
+ 53e: 4523 lsli r1, r5, 3
+ 540: 60d8 addu r3, r6
+ 542: 9340 ld.w r2, (r3, 0x0)
+ 544: b828 st.w r1, (r14, 0x20)
+ 546: 9361 ld.w r3, (r3, 0x4)
+ 548: 6c13 mov r0, r4
+ 54a: 6c5f mov r1, r7
+ 54c: b845 st.w r2, (r14, 0x14)
+ 54e: b866 st.w r3, (r14, 0x18)
+ 550: e000057e bsr 0x104c // 104c <__subdf3>
+ 554: b809 st.w r0, (r14, 0x24)
+ 556: 9845 ld.w r2, (r14, 0x14)
+ 558: 9866 ld.w r3, (r14, 0x18)
+ 55a: b82a st.w r1, (r14, 0x28)
+ 55c: 6c13 mov r0, r4
+ 55e: 6c5f mov r1, r7
+ 560: e000055e bsr 0x101c // 101c <__adddf3>
+ 564: 6c83 mov r2, r0
+ 566: 6cc7 mov r3, r1
+ 568: 3000 movi r0, 0
+ 56a: 1026 lrw r1, 0x3ff00000 // 580 <__GI_pow+0x3cc>
+ 56c: e00006a6 bsr 0x12b8 // 12b8 <__divdf3>
+ 570: 6c83 mov r2, r0
+ 572: 6cc7 mov r3, r1
+ 574: 0436 br 0x5e0 // 5e0 <__GI_pow+0x42c>
+ 576: 0000 bkpt
+ 578: 7ff00000 .long 0x7ff00000
+ 57c: 43400000 .long 0x43400000
+ 580: 3ff00000 .long 0x3ff00000
+ 584: fffffc01 .long 0xfffffc01
+ 588: c0100000 .long 0xc0100000
+ 58c: 3fe00000 .long 0x3fe00000
+ 590: ffc00000 .long 0xffc00000
+ 594: 41e00000 .long 0x41e00000
+ 598: 43f00000 .long 0x43f00000
+ 59c: 8800759c .long 0x8800759c
+ 5a0: 7e37e43c .long 0x7e37e43c
+ 5a4: 3ff71547 .long 0x3ff71547
+ 5a8: f85ddf44 .long 0xf85ddf44
+ 5ac: 3e54ae0b .long 0x3e54ae0b
+ 5b0: 3fd00000 .long 0x3fd00000
+ 5b4: 55555555 .long 0x55555555
+ 5b8: 3fd55555 .long 0x3fd55555
+ 5bc: 652b82fe .long 0x652b82fe
+ 5c0: bff00000 .long 0xbff00000
+ 5c4: 40900000 .long 0x40900000
+ 5c8: bf700000 .long 0xbf700000
+ 5cc: 000fffff .long 0x000fffff
+ 5d0: 0003988e .long 0x0003988e
+ 5d4: 000bb679 .long 0x000bb679
+ 5d8: fff00000 .long 0xfff00000
+ 5dc: 00004420 .long 0x00004420
+ 5e0: b80b st.w r0, (r14, 0x2c)
+ 5e2: b82c st.w r1, (r14, 0x30)
+ 5e4: 9809 ld.w r0, (r14, 0x24)
+ 5e6: 982a ld.w r1, (r14, 0x28)
+ 5e8: e000054e bsr 0x1084 // 1084 <__muldf3>
+ 5ec: b803 st.w r0, (r14, 0xc)
+ 5ee: 3280 movi r2, 128
+ 5f0: 5701 asri r0, r7, 1
+ 5f2: 6d87 mov r6, r1
+ 5f4: 38bd bseti r0, 29
+ 5f6: 422c lsli r1, r2, 12
+ 5f8: 6004 addu r0, r1
+ 5fa: 45b2 lsli r5, r5, 18
+ 5fc: 6140 addu r5, r0
+ 5fe: 6cd7 mov r3, r5
+ 600: 3200 movi r2, 0
+ 602: 6c5b mov r1, r6
+ 604: 3000 movi r0, 0
+ 606: e000053f bsr 0x1084 // 1084 <__muldf3>
+ 60a: 6c83 mov r2, r0
+ 60c: 6cc7 mov r3, r1
+ 60e: 9809 ld.w r0, (r14, 0x24)
+ 610: 982a ld.w r1, (r14, 0x28)
+ 612: e000051d bsr 0x104c // 104c <__subdf3>
+ 616: b809 st.w r0, (r14, 0x24)
+ 618: 9845 ld.w r2, (r14, 0x14)
+ 61a: 9866 ld.w r3, (r14, 0x18)
+ 61c: b82a st.w r1, (r14, 0x28)
+ 61e: 3000 movi r0, 0
+ 620: 6c57 mov r1, r5
+ 622: e0000515 bsr 0x104c // 104c <__subdf3>
+ 626: 6c83 mov r2, r0
+ 628: 6cc7 mov r3, r1
+ 62a: 6c13 mov r0, r4
+ 62c: 6c5f mov r1, r7
+ 62e: e000050f bsr 0x104c // 104c <__subdf3>
+ 632: 6cdb mov r3, r6
+ 634: 3200 movi r2, 0
+ 636: e0000527 bsr 0x1084 // 1084 <__muldf3>
+ 63a: 6c83 mov r2, r0
+ 63c: 6cc7 mov r3, r1
+ 63e: 9809 ld.w r0, (r14, 0x24)
+ 640: 982a ld.w r1, (r14, 0x28)
+ 642: e0000505 bsr 0x104c // 104c <__subdf3>
+ 646: 984b ld.w r2, (r14, 0x2c)
+ 648: 986c ld.w r3, (r14, 0x30)
+ 64a: e000051d bsr 0x1084 // 1084 <__muldf3>
+ 64e: 9843 ld.w r2, (r14, 0xc)
+ 650: 6cdb mov r3, r6
+ 652: b805 st.w r0, (r14, 0x14)
+ 654: b826 st.w r1, (r14, 0x18)
+ 656: 6c0b mov r0, r2
+ 658: 6c5b mov r1, r6
+ 65a: e0000515 bsr 0x1084 // 1084 <__muldf3>
+ 65e: ea820113 lrw r2, 0x4a454eef // aa8 <__GI_pow+0x8f4>
+ 662: ea830113 lrw r3, 0x3fca7e28 // aac <__GI_pow+0x8f8>
+ 666: 6d43 mov r5, r0
+ 668: 6d07 mov r4, r1
+ 66a: e000050d bsr 0x1084 // 1084 <__muldf3>
+ 66e: ea820111 lrw r2, 0x93c9db65 // ab0 <__GI_pow+0x8fc>
+ 672: ea830111 lrw r3, 0x3fcd864a // ab4 <__GI_pow+0x900>
+ 676: e00004d3 bsr 0x101c // 101c <__adddf3>
+ 67a: 6c97 mov r2, r5
+ 67c: 6cd3 mov r3, r4
+ 67e: e0000503 bsr 0x1084 // 1084 <__muldf3>
+ 682: ea82010e lrw r2, 0xa91d4101 // ab8 <__GI_pow+0x904>
+ 686: ea83010e lrw r3, 0x3fd17460 // abc <__GI_pow+0x908>
+ 68a: e00004c9 bsr 0x101c // 101c <__adddf3>
+ 68e: 6c97 mov r2, r5
+ 690: 6cd3 mov r3, r4
+ 692: e00004f9 bsr 0x1084 // 1084 <__muldf3>
+ 696: ea82010b lrw r2, 0x518f264d // ac0 <__GI_pow+0x90c>
+ 69a: ea83010b lrw r3, 0x3fd55555 // ac4 <__GI_pow+0x910>
+ 69e: e00004bf bsr 0x101c // 101c <__adddf3>
+ 6a2: 6c97 mov r2, r5
+ 6a4: 6cd3 mov r3, r4
+ 6a6: e00004ef bsr 0x1084 // 1084 <__muldf3>
+ 6aa: ea820108 lrw r2, 0xdb6fabff // ac8 <__GI_pow+0x914>
+ 6ae: ea830108 lrw r3, 0x3fdb6db6 // acc <__GI_pow+0x918>
+ 6b2: e00004b5 bsr 0x101c // 101c <__adddf3>
+ 6b6: 6c97 mov r2, r5
+ 6b8: 6cd3 mov r3, r4
+ 6ba: e00004e5 bsr 0x1084 // 1084 <__muldf3>
+ 6be: ea820105 lrw r2, 0x33333303 // ad0 <__GI_pow+0x91c>
+ 6c2: ea830105 lrw r3, 0x3fe33333 // ad4 <__GI_pow+0x920>
+ 6c6: e00004ab bsr 0x101c // 101c <__adddf3>
+ 6ca: 6dc3 mov r7, r0
+ 6cc: 6c97 mov r2, r5
+ 6ce: 6cd3 mov r3, r4
+ 6d0: b829 st.w r1, (r14, 0x24)
+ 6d2: 6c17 mov r0, r5
+ 6d4: 6c53 mov r1, r4
+ 6d6: e00004d7 bsr 0x1084 // 1084 <__muldf3>
+ 6da: 6c83 mov r2, r0
+ 6dc: 6cc7 mov r3, r1
+ 6de: 6c1f mov r0, r7
+ 6e0: 9829 ld.w r1, (r14, 0x24)
+ 6e2: e00004d1 bsr 0x1084 // 1084 <__muldf3>
+ 6e6: 6d43 mov r5, r0
+ 6e8: 6d07 mov r4, r1
+ 6ea: 6cdb mov r3, r6
+ 6ec: 3200 movi r2, 0
+ 6ee: 9803 ld.w r0, (r14, 0xc)
+ 6f0: 6c5b mov r1, r6
+ 6f2: e0000495 bsr 0x101c // 101c <__adddf3>
+ 6f6: 9845 ld.w r2, (r14, 0x14)
+ 6f8: 9866 ld.w r3, (r14, 0x18)
+ 6fa: e00004c5 bsr 0x1084 // 1084 <__muldf3>
+ 6fe: 6c97 mov r2, r5
+ 700: 6cd3 mov r3, r4
+ 702: e000048d bsr 0x101c // 101c <__adddf3>
+ 706: 6d43 mov r5, r0
+ 708: 6cdb mov r3, r6
+ 70a: b829 st.w r1, (r14, 0x24)
+ 70c: 3200 movi r2, 0
+ 70e: 6c5b mov r1, r6
+ 710: 3000 movi r0, 0
+ 712: e00004b9 bsr 0x1084 // 1084 <__muldf3>
+ 716: 3200 movi r2, 0
+ 718: 006f lrw r3, 0x40080000 // ad8 <__GI_pow+0x924>
+ 71a: 6dc3 mov r7, r0
+ 71c: b82a st.w r1, (r14, 0x28)
+ 71e: e000047f bsr 0x101c // 101c <__adddf3>
+ 722: 6c97 mov r2, r5
+ 724: 9869 ld.w r3, (r14, 0x24)
+ 726: e000047b bsr 0x101c // 101c <__adddf3>
+ 72a: 6d07 mov r4, r1
+ 72c: 6cc7 mov r3, r1
+ 72e: 3200 movi r2, 0
+ 730: 6c5b mov r1, r6
+ 732: 3000 movi r0, 0
+ 734: e00004a8 bsr 0x1084 // 1084 <__muldf3>
+ 738: b80b st.w r0, (r14, 0x2c)
+ 73a: b82c st.w r1, (r14, 0x30)
+ 73c: 3200 movi r2, 0
+ 73e: 0078 lrw r3, 0x40080000 // ad8 <__GI_pow+0x924>
+ 740: 6c53 mov r1, r4
+ 742: 3000 movi r0, 0
+ 744: e0000484 bsr 0x104c // 104c <__subdf3>
+ 748: 6c9f mov r2, r7
+ 74a: 986a ld.w r3, (r14, 0x28)
+ 74c: e0000480 bsr 0x104c // 104c <__subdf3>
+ 750: 6c83 mov r2, r0
+ 752: 6cc7 mov r3, r1
+ 754: 6c17 mov r0, r5
+ 756: 9829 ld.w r1, (r14, 0x24)
+ 758: e000047a bsr 0x104c // 104c <__subdf3>
+ 75c: 9843 ld.w r2, (r14, 0xc)
+ 75e: 6cdb mov r3, r6
+ 760: e0000492 bsr 0x1084 // 1084 <__muldf3>
+ 764: 6d83 mov r6, r0
+ 766: 6d47 mov r5, r1
+ 768: 6cd3 mov r3, r4
+ 76a: 3200 movi r2, 0
+ 76c: 9805 ld.w r0, (r14, 0x14)
+ 76e: 9826 ld.w r1, (r14, 0x18)
+ 770: e000048a bsr 0x1084 // 1084 <__muldf3>
+ 774: 6c83 mov r2, r0
+ 776: 6cc7 mov r3, r1
+ 778: 6c1b mov r0, r6
+ 77a: 6c57 mov r1, r5
+ 77c: e0000450 bsr 0x101c // 101c <__adddf3>
+ 780: 6dc3 mov r7, r0
+ 782: 6d87 mov r6, r1
+ 784: 6c83 mov r2, r0
+ 786: 6cc7 mov r3, r1
+ 788: 980b ld.w r0, (r14, 0x2c)
+ 78a: 982c ld.w r1, (r14, 0x30)
+ 78c: e0000448 bsr 0x101c // 101c <__adddf3>
+ 790: 33e0 movi r3, 224
+ 792: 4358 lsli r2, r3, 24
+ 794: 3000 movi r0, 0
+ 796: 016d lrw r3, 0x3feec709 // adc <__GI_pow+0x928>
+ 798: 6d07 mov r4, r1
+ 79a: e0000475 bsr 0x1084 // 1084 <__muldf3>
+ 79e: b805 st.w r0, (r14, 0x14)
+ 7a0: b826 st.w r1, (r14, 0x18)
+ 7a2: 984b ld.w r2, (r14, 0x2c)
+ 7a4: 986c ld.w r3, (r14, 0x30)
+ 7a6: 6c53 mov r1, r4
+ 7a8: 3000 movi r0, 0
+ 7aa: e0000451 bsr 0x104c // 104c <__subdf3>
+ 7ae: 6c83 mov r2, r0
+ 7b0: 6cc7 mov r3, r1
+ 7b2: 6c1f mov r0, r7
+ 7b4: 6c5b mov r1, r6
+ 7b6: e000044b bsr 0x104c // 104c <__subdf3>
+ 7ba: 0155 lrw r2, 0xdc3a03fd // ae0 <__GI_pow+0x92c>
+ 7bc: 0177 lrw r3, 0x3feec709 // adc <__GI_pow+0x928>
+ 7be: e0000463 bsr 0x1084 // 1084 <__muldf3>
+ 7c2: 6dc3 mov r7, r0
+ 7c4: 6d47 mov r5, r1
+ 7c6: 0157 lrw r2, 0x145b01f5 // ae4 <__GI_pow+0x930>
+ 7c8: 0177 lrw r3, 0xbe3e2fe0 // ae8 <__GI_pow+0x934>
+ 7ca: 6c53 mov r1, r4
+ 7cc: 3000 movi r0, 0
+ 7ce: e000045b bsr 0x1084 // 1084 <__muldf3>
+ 7d2: 6c83 mov r2, r0
+ 7d4: 6cc7 mov r3, r1
+ 7d6: 6c1f mov r0, r7
+ 7d8: 6c57 mov r1, r5
+ 7da: e0000421 bsr 0x101c // 101c <__adddf3>
+ 7de: 01db lrw r6, 0x4420 // aec <__GI_pow+0x938>
+ 7e0: 9848 ld.w r2, (r14, 0x20)
+ 7e2: 6188 addu r6, r2
+ 7e4: 9644 ld.w r2, (r6, 0x10)
+ 7e6: 9665 ld.w r3, (r6, 0x14)
+ 7e8: e000041a bsr 0x101c // 101c <__adddf3>
+ 7ec: b809 st.w r0, (r14, 0x24)
+ 7ee: 9804 ld.w r0, (r14, 0x10)
+ 7f0: b82a st.w r1, (r14, 0x28)
+ 7f2: e0000667 bsr 0x14c0 // 14c0 <__floatsidf>
+ 7f6: 6d83 mov r6, r0
+ 7f8: 0202 lrw r0, 0x4420 // aec <__GI_pow+0x938>
+ 7fa: 6d47 mov r5, r1
+ 7fc: 201f addi r0, 32
+ 7fe: 9828 ld.w r1, (r14, 0x20)
+ 800: 6004 addu r0, r1
+ 802: 9080 ld.w r4, (r0, 0x0)
+ 804: 90e1 ld.w r7, (r0, 0x4)
+ 806: 9849 ld.w r2, (r14, 0x24)
+ 808: 986a ld.w r3, (r14, 0x28)
+ 80a: 9805 ld.w r0, (r14, 0x14)
+ 80c: 9826 ld.w r1, (r14, 0x18)
+ 80e: e0000407 bsr 0x101c // 101c <__adddf3>
+ 812: 6c93 mov r2, r4
+ 814: 6cdf mov r3, r7
+ 816: e0000403 bsr 0x101c // 101c <__adddf3>
+ 81a: 6c9b mov r2, r6
+ 81c: 6cd7 mov r3, r5
+ 81e: e00003ff bsr 0x101c // 101c <__adddf3>
+ 822: 6c9b mov r2, r6
+ 824: 6cd7 mov r3, r5
+ 826: 3000 movi r0, 0
+ 828: b823 st.w r1, (r14, 0xc)
+ 82a: e0000411 bsr 0x104c // 104c <__subdf3>
+ 82e: 6c93 mov r2, r4
+ 830: 6cdf mov r3, r7
+ 832: e000040d bsr 0x104c // 104c <__subdf3>
+ 836: 9845 ld.w r2, (r14, 0x14)
+ 838: 9866 ld.w r3, (r14, 0x18)
+ 83a: e0000409 bsr 0x104c // 104c <__subdf3>
+ 83e: 6c83 mov r2, r0
+ 840: 6cc7 mov r3, r1
+ 842: 9809 ld.w r0, (r14, 0x24)
+ 844: 982a ld.w r1, (r14, 0x28)
+ 846: 060b br 0x45c // 45c <__GI_pow+0x2a8>
+ 848: 3700 movi r7, 0
+ 84a: 0663 br 0x510 // 510 <__GI_pow+0x35c>
+ 84c: 3501 movi r5, 1
+ 84e: 0676 br 0x53a // 53a <__GI_pow+0x386>
+ 850: 0277 lrw r3, 0x3ff00000 // af0 <__GI_pow+0x93c>
+ 852: 0611 br 0x474 // 474 <__GI_pow+0x2c0>
+ 854: 0257 lrw r2, 0x652b82fe // af4 <__GI_pow+0x940>
+ 856: 0276 lrw r3, 0x3c971547 // af8 <__GI_pow+0x944>
+ 858: 6c1f mov r0, r7
+ 85a: 6c5b mov r1, r6
+ 85c: e00003e0 bsr 0x101c // 101c <__adddf3>
+ 860: b805 st.w r0, (r14, 0x14)
+ 862: b826 st.w r1, (r14, 0x18)
+ 864: 9842 ld.w r2, (r14, 0x8)
+ 866: 6cd7 mov r3, r5
+ 868: 9800 ld.w r0, (r14, 0x0)
+ 86a: 6c53 mov r1, r4
+ 86c: e00003f0 bsr 0x104c // 104c <__subdf3>
+ 870: 6c83 mov r2, r0
+ 872: 6cc7 mov r3, r1
+ 874: 9805 ld.w r0, (r14, 0x14)
+ 876: 9826 ld.w r1, (r14, 0x18)
+ 878: e00005ca bsr 0x140c // 140c <__gtdf2>
+ 87c: 3820 cmplti r0, 1
+ 87e: 0802 bt 0x882 // 882 <__GI_pow+0x6ce>
+ 880: 0633 br 0x4e6 // 4e6 <__GI_pow+0x332>
+ 882: 4421 lsli r1, r4, 1
+ 884: 4901 lsri r0, r1, 1
+ 886: 0361 lrw r3, 0x3fe00000 // afc <__GI_pow+0x948>
+ 888: 640d cmplt r3, r0
+ 88a: 0cfd bf 0xa84 // a84 <__GI_pow+0x8d0>
+ 88c: 5034 asri r1, r0, 20
+ 88e: 0342 lrw r2, 0xfffffc02 // b00 <__GI_pow+0x94c>
+ 890: 3080 movi r0, 128
+ 892: 6048 addu r1, r2
+ 894: 404d lsli r2, r0, 13
+ 896: 7086 asr r2, r1
+ 898: 6090 addu r2, r4
+ 89a: 4261 lsli r3, r2, 1
+ 89c: 4b35 lsri r1, r3, 21
+ 89e: 0305 lrw r0, 0xfffffc01 // b04 <__GI_pow+0x950>
+ 8a0: 6040 addu r1, r0
+ 8a2: 0365 lrw r3, 0xfffff // b08 <__GI_pow+0x954>
+ 8a4: 70c6 asr r3, r1
+ 8a6: 6c0b mov r0, r2
+ 8a8: 680d andn r0, r3
+ 8aa: 424c lsli r2, r2, 12
+ 8ac: 6cc3 mov r3, r0
+ 8ae: 4a4c lsri r2, r2, 12
+ 8b0: 3014 movi r0, 20
+ 8b2: 3ab4 bseti r2, 20
+ 8b4: 5825 subu r1, r0, r1
+ 8b6: 7086 asr r2, r1
+ 8b8: 3cdf btsti r4, 31
+ 8ba: b840 st.w r2, (r14, 0x0)
+ 8bc: 0c05 bf 0x8c6 // 8c6 <__GI_pow+0x712>
+ 8be: 9840 ld.w r2, (r14, 0x0)
+ 8c0: 3400 movi r4, 0
+ 8c2: 610a subu r4, r2
+ 8c4: b880 st.w r4, (r14, 0x0)
+ 8c6: 3200 movi r2, 0
+ 8c8: 9802 ld.w r0, (r14, 0x8)
+ 8ca: 6c57 mov r1, r5
+ 8cc: e00003c0 bsr 0x104c // 104c <__subdf3>
+ 8d0: b803 st.w r0, (r14, 0xc)
+ 8d2: b824 st.w r1, (r14, 0x10)
+ 8d4: 9803 ld.w r0, (r14, 0xc)
+ 8d6: 6c9f mov r2, r7
+ 8d8: 6cdb mov r3, r6
+ 8da: 9824 ld.w r1, (r14, 0x10)
+ 8dc: e00003a0 bsr 0x101c // 101c <__adddf3>
+ 8e0: 3200 movi r2, 0
+ 8e2: 0374 lrw r3, 0x3fe62e43 // b0c <__GI_pow+0x958>
+ 8e4: 3000 movi r0, 0
+ 8e6: 6d07 mov r4, r1
+ 8e8: e00003ce bsr 0x1084 // 1084 <__muldf3>
+ 8ec: 6d47 mov r5, r1
+ 8ee: 9843 ld.w r2, (r14, 0xc)
+ 8f0: 9864 ld.w r3, (r14, 0x10)
+ 8f2: b802 st.w r0, (r14, 0x8)
+ 8f4: 6c53 mov r1, r4
+ 8f6: 3000 movi r0, 0
+ 8f8: e00003aa bsr 0x104c // 104c <__subdf3>
+ 8fc: 6c83 mov r2, r0
+ 8fe: 6cc7 mov r3, r1
+ 900: 6c1f mov r0, r7
+ 902: 6c5b mov r1, r6
+ 904: e00003a4 bsr 0x104c // 104c <__subdf3>
+ 908: 035d lrw r2, 0xfefa39ef // b10 <__GI_pow+0x95c>
+ 90a: 037c lrw r3, 0x3fe62e42 // b14 <__GI_pow+0x960>
+ 90c: e00003bc bsr 0x1084 // 1084 <__muldf3>
+ 910: 6dc3 mov r7, r0
+ 912: 6d87 mov r6, r1
+ 914: 035e lrw r2, 0xca86c39 // b18 <__GI_pow+0x964>
+ 916: 037d lrw r3, 0xbe205c61 // b1c <__GI_pow+0x968>
+ 918: 6c53 mov r1, r4
+ 91a: 3000 movi r0, 0
+ 91c: e00003b4 bsr 0x1084 // 1084 <__muldf3>
+ 920: 6c83 mov r2, r0
+ 922: 6cc7 mov r3, r1
+ 924: 6c1f mov r0, r7
+ 926: 6c5b mov r1, r6
+ 928: e000037a bsr 0x101c // 101c <__adddf3>
+ 92c: 6d07 mov r4, r1
+ 92e: 6c83 mov r2, r0
+ 930: 6cc7 mov r3, r1
+ 932: b803 st.w r0, (r14, 0xc)
+ 934: 6c57 mov r1, r5
+ 936: 9802 ld.w r0, (r14, 0x8)
+ 938: e0000372 bsr 0x101c // 101c <__adddf3>
+ 93c: 9842 ld.w r2, (r14, 0x8)
+ 93e: 6cd7 mov r3, r5
+ 940: 6dc3 mov r7, r0
+ 942: 6d87 mov r6, r1
+ 944: e0000384 bsr 0x104c // 104c <__subdf3>
+ 948: 6c83 mov r2, r0
+ 94a: 6cc7 mov r3, r1
+ 94c: 9803 ld.w r0, (r14, 0xc)
+ 94e: 6c53 mov r1, r4
+ 950: e000037e bsr 0x104c // 104c <__subdf3>
+ 954: b802 st.w r0, (r14, 0x8)
+ 956: b823 st.w r1, (r14, 0xc)
+ 958: 6c9f mov r2, r7
+ 95a: 6cdb mov r3, r6
+ 95c: 6c1f mov r0, r7
+ 95e: 6c5b mov r1, r6
+ 960: e0000392 bsr 0x1084 // 1084 <__muldf3>
+ 964: 134f lrw r2, 0x72bea4d0 // b20 <__GI_pow+0x96c>
+ 966: 1370 lrw r3, 0x3e663769 // b24 <__GI_pow+0x970>
+ 968: 6d43 mov r5, r0
+ 96a: 6d07 mov r4, r1
+ 96c: e000038c bsr 0x1084 // 1084 <__muldf3>
+ 970: 134e lrw r2, 0xc5d26bf1 // b28 <__GI_pow+0x974>
+ 972: 136f lrw r3, 0x3ebbbd41 // b2c <__GI_pow+0x978>
+ 974: e000036c bsr 0x104c // 104c <__subdf3>
+ 978: 6c97 mov r2, r5
+ 97a: 6cd3 mov r3, r4
+ 97c: e0000384 bsr 0x1084 // 1084 <__muldf3>
+ 980: 134c lrw r2, 0xaf25de2c // b30 <__GI_pow+0x97c>
+ 982: 136d lrw r3, 0x3f11566a // b34 <__GI_pow+0x980>
+ 984: e000034c bsr 0x101c // 101c <__adddf3>
+ 988: 6c97 mov r2, r5
+ 98a: 6cd3 mov r3, r4
+ 98c: e000037c bsr 0x1084 // 1084 <__muldf3>
+ 990: 134a lrw r2, 0x16bebd93 // b38 <__GI_pow+0x984>
+ 992: 136b lrw r3, 0x3f66c16c // b3c <__GI_pow+0x988>
+ 994: e000035c bsr 0x104c // 104c <__subdf3>
+ 998: 6c97 mov r2, r5
+ 99a: 6cd3 mov r3, r4
+ 99c: e0000374 bsr 0x1084 // 1084 <__muldf3>
+ 9a0: 1348 lrw r2, 0x5555553e // b40 <__GI_pow+0x98c>
+ 9a2: 1369 lrw r3, 0x3fc55555 // b44 <__GI_pow+0x990>
+ 9a4: e000033c bsr 0x101c // 101c <__adddf3>
+ 9a8: 6c97 mov r2, r5
+ 9aa: 6cd3 mov r3, r4
+ 9ac: e000036c bsr 0x1084 // 1084 <__muldf3>
+ 9b0: 6c83 mov r2, r0
+ 9b2: 6cc7 mov r3, r1
+ 9b4: 6c1f mov r0, r7
+ 9b6: 6c5b mov r1, r6
+ 9b8: e000034a bsr 0x104c // 104c <__subdf3>
+ 9bc: 6d43 mov r5, r0
+ 9be: 6d07 mov r4, r1
+ 9c0: 6c83 mov r2, r0
+ 9c2: 6cc7 mov r3, r1
+ 9c4: 6c1f mov r0, r7
+ 9c6: 6c5b mov r1, r6
+ 9c8: e000035e bsr 0x1084 // 1084 <__muldf3>
+ 9cc: 3380 movi r3, 128
+ 9ce: b804 st.w r0, (r14, 0x10)
+ 9d0: b825 st.w r1, (r14, 0x14)
+ 9d2: 3200 movi r2, 0
+ 9d4: 4377 lsli r3, r3, 23
+ 9d6: 6c17 mov r0, r5
+ 9d8: 6c53 mov r1, r4
+ 9da: e0000339 bsr 0x104c // 104c <__subdf3>
+ 9de: 6c83 mov r2, r0
+ 9e0: 6cc7 mov r3, r1
+ 9e2: 9804 ld.w r0, (r14, 0x10)
+ 9e4: 9825 ld.w r1, (r14, 0x14)
+ 9e6: e0000469 bsr 0x12b8 // 12b8 <__divdf3>
+ 9ea: 6d07 mov r4, r1
+ 9ec: 6d43 mov r5, r0
+ 9ee: 9842 ld.w r2, (r14, 0x8)
+ 9f0: 9863 ld.w r3, (r14, 0xc)
+ 9f2: 6c1f mov r0, r7
+ 9f4: 6c5b mov r1, r6
+ 9f6: e0000347 bsr 0x1084 // 1084 <__muldf3>
+ 9fa: 9842 ld.w r2, (r14, 0x8)
+ 9fc: 9863 ld.w r3, (r14, 0xc)
+ 9fe: e000030f bsr 0x101c // 101c <__adddf3>
+ a02: 6c83 mov r2, r0
+ a04: 6cc7 mov r3, r1
+ a06: 6c17 mov r0, r5
+ a08: 6c53 mov r1, r4
+ a0a: e0000321 bsr 0x104c // 104c <__subdf3>
+ a0e: 6c9f mov r2, r7
+ a10: 6cdb mov r3, r6
+ a12: e000031d bsr 0x104c // 104c <__subdf3>
+ a16: 6c83 mov r2, r0
+ a18: 6cc7 mov r3, r1
+ a1a: 3000 movi r0, 0
+ a1c: 1135 lrw r1, 0x3ff00000 // af0 <__GI_pow+0x93c>
+ a1e: e0000317 bsr 0x104c // 104c <__subdf3>
+ a22: 9840 ld.w r2, (r14, 0x0)
+ a24: 4274 lsli r3, r2, 20
+ a26: 60c4 addu r3, r1
+ a28: 5394 asri r4, r3, 20
+ a2a: 3c20 cmplti r4, 1
+ a2c: 0c2f bf 0xa8a // a8a <__GI_pow+0x8d6>
+ a2e: 9840 ld.w r2, (r14, 0x0)
+ a30: e000009a bsr 0xb64 // b64 <__GI_scalbn>
+ a34: 3200 movi r2, 0
+ a36: 9861 ld.w r3, (r14, 0x4)
+ a38: e800fc56 br 0x2e4 // 2e4 <__GI_pow+0x130>
+ a3c: 4401 lsli r0, r4, 1
+ a3e: 4861 lsri r3, r0, 1
+ a40: 1242 lrw r2, 0x4090cbff // b48 <__GI_pow+0x994>
+ a42: 64c9 cmplt r2, r3
+ a44: 0f1f bf 0x882 // 882 <__GI_pow+0x6ce>
+ a46: 1222 lrw r1, 0x3f6f3400 // b4c <__GI_pow+0x998>
+ a48: 6050 addu r1, r4
+ a4a: 9800 ld.w r0, (r14, 0x0)
+ a4c: 6c40 or r1, r0
+ a4e: 3940 cmpnei r1, 0
+ a50: 0c0b bf 0xa66 // a66 <__GI_pow+0x8b2>
+ a52: 1240 lrw r2, 0xc2f8f359 // b50 <__GI_pow+0x99c>
+ a54: 1260 lrw r3, 0x1a56e1f // b54 <__GI_pow+0x9a0>
+ a56: 3000 movi r0, 0
+ a58: 9821 ld.w r1, (r14, 0x4)
+ a5a: e0000315 bsr 0x1084 // 1084 <__muldf3>
+ a5e: 115d lrw r2, 0xc2f8f359 // b50 <__GI_pow+0x99c>
+ a60: 117d lrw r3, 0x1a56e1f // b54 <__GI_pow+0x9a0>
+ a62: e800fc41 br 0x2e4 // 2e4 <__GI_pow+0x130>
+ a66: 9842 ld.w r2, (r14, 0x8)
+ a68: 6cd7 mov r3, r5
+ a6a: 9800 ld.w r0, (r14, 0x0)
+ a6c: 6c53 mov r1, r4
+ a6e: e00002ef bsr 0x104c // 104c <__subdf3>
+ a72: 6c83 mov r2, r0
+ a74: 6cc7 mov r3, r1
+ a76: 6c1f mov r0, r7
+ a78: 6c5b mov r1, r6
+ a7a: e0000505 bsr 0x1484 // 1484 <__ledf2>
+ a7e: 3820 cmplti r0, 1
+ a80: 0f01 bf 0x882 // 882 <__GI_pow+0x6ce>
+ a82: 07e8 br 0xa52 // a52 <__GI_pow+0x89e>
+ a84: 3500 movi r5, 0
+ a86: b8a0 st.w r5, (r14, 0x0)
+ a88: 0726 br 0x8d4 // 8d4 <__GI_pow+0x720>
+ a8a: 6c4f mov r1, r3
+ a8c: 07d4 br 0xa34 // a34 <__GI_pow+0x880>
+ a8e: 3400 movi r4, 0
+ a90: 1038 lrw r1, 0x3ff00000 // af0 <__GI_pow+0x93c>
+ a92: e800fbb5 br 0x1fc // 1fc <__GI_pow+0x48>
+ a96: 3400 movi r4, 0
+ a98: 9820 ld.w r1, (r14, 0x0)
+ a9a: e800fbb1 br 0x1fc // 1fc <__GI_pow+0x48>
+ a9e: 6d1f mov r4, r7
+ aa0: 6c5b mov r1, r6
+ aa2: e800fbad br 0x1fc // 1fc <__GI_pow+0x48>
+ aa6: 0000 bkpt
+ aa8: 4a454eef .long 0x4a454eef
+ aac: 3fca7e28 .long 0x3fca7e28
+ ab0: 93c9db65 .long 0x93c9db65
+ ab4: 3fcd864a .long 0x3fcd864a
+ ab8: a91d4101 .long 0xa91d4101
+ abc: 3fd17460 .long 0x3fd17460
+ ac0: 518f264d .long 0x518f264d
+ ac4: 3fd55555 .long 0x3fd55555
+ ac8: db6fabff .long 0xdb6fabff
+ acc: 3fdb6db6 .long 0x3fdb6db6
+ ad0: 33333303 .long 0x33333303
+ ad4: 3fe33333 .long 0x3fe33333
+ ad8: 40080000 .long 0x40080000
+ adc: 3feec709 .long 0x3feec709
+ ae0: dc3a03fd .long 0xdc3a03fd
+ ae4: 145b01f5 .long 0x145b01f5
+ ae8: be3e2fe0 .long 0xbe3e2fe0
+ aec: 00004420 .long 0x00004420
+ af0: 3ff00000 .long 0x3ff00000
+ af4: 652b82fe .long 0x652b82fe
+ af8: 3c971547 .long 0x3c971547
+ afc: 3fe00000 .long 0x3fe00000
+ b00: fffffc02 .long 0xfffffc02
+ b04: fffffc01 .long 0xfffffc01
+ b08: 000fffff .long 0x000fffff
+ b0c: 3fe62e43 .long 0x3fe62e43
+ b10: fefa39ef .long 0xfefa39ef
+ b14: 3fe62e42 .long 0x3fe62e42
+ b18: 0ca86c39 .long 0x0ca86c39
+ b1c: be205c61 .long 0xbe205c61
+ b20: 72bea4d0 .long 0x72bea4d0
+ b24: 3e663769 .long 0x3e663769
+ b28: c5d26bf1 .long 0xc5d26bf1
+ b2c: 3ebbbd41 .long 0x3ebbbd41
+ b30: af25de2c .long 0xaf25de2c
+ b34: 3f11566a .long 0x3f11566a
+ b38: 16bebd93 .long 0x16bebd93
+ b3c: 3f66c16c .long 0x3f66c16c
+ b40: 5555553e .long 0x5555553e
+ b44: 3fc55555 .long 0x3fc55555
+ b48: 4090cbff .long 0x4090cbff
+ b4c: 3f6f3400 .long 0x3f6f3400
+ b50: c2f8f359 .long 0xc2f8f359
+ b54: 01a56e1f .long 0x01a56e1f
+ b58: 3300 movi r3, 0
+ b5a: e800fb94 br 0x282 // 282 <__GI_pow+0xce>
+
+00000b5e <__GI_fabs>:
+ b5e: 4121 lsli r1, r1, 1
+ b60: 4921 lsri r1, r1, 1
+ b62: 783c jmp r15
+
+00000b64 <__GI_scalbn>:
+ b64: 14c1 push r4
+ b66: 6cc7 mov r3, r1
+ b68: 6cc0 or r3, r0
+ b6a: 3b40 cmpnei r3, 0
+ b6c: 0c08 bf 0xb7c // b7c <__GI_scalbn+0x18>
+ b6e: 1065 lrw r3, 0x7ff00000 // b80 <__GI_scalbn+0x1c>
+ b70: 6d07 mov r4, r1
+ b72: 690c and r4, r3
+ b74: 4254 lsli r2, r2, 20
+ b76: 6090 addu r2, r4
+ b78: 684d andn r1, r3
+ b7a: 6c48 or r1, r2
+ b7c: 1481 pop r4
+ b7e: 0000 bkpt
+ b80: 7ff00000 .long 0x7ff00000
+
+00000b84 <__GI_sqrt>:
+ b84: 14d4 push r4-r7, r15
+ b86: 1423 subi r14, r14, 12
+ b88: 127a lrw r3, 0x7ff00000 // cf0 <__GI_sqrt+0x16c>
+ b8a: 6d43 mov r5, r0
+ b8c: 6d07 mov r4, r1
+ b8e: 6c07 mov r0, r1
+ b90: 684c and r1, r3
+ b92: 64c6 cmpne r1, r3
+ b94: 6c97 mov r2, r5
+ b96: 0812 bt 0xbba // bba <__GI_sqrt+0x36>
+ b98: 6cd3 mov r3, r4
+ b9a: 6c17 mov r0, r5
+ b9c: 6c53 mov r1, r4
+ b9e: e0000273 bsr 0x1084 // 1084 <__muldf3>
+ ba2: 6c83 mov r2, r0
+ ba4: 6cc7 mov r3, r1
+ ba6: 6c17 mov r0, r5
+ ba8: 6c53 mov r1, r4
+ baa: e0000239 bsr 0x101c // 101c <__adddf3>
+ bae: 6d43 mov r5, r0
+ bb0: 6d07 mov r4, r1
+ bb2: 6c17 mov r0, r5
+ bb4: 6c53 mov r1, r4
+ bb6: 1403 addi r14, r14, 12
+ bb8: 1494 pop r4-r7, r15
+ bba: 3c20 cmplti r4, 1
+ bbc: 0c13 bf 0xbe2 // be2 <__GI_sqrt+0x5e>
+ bbe: 4461 lsli r3, r4, 1
+ bc0: 4b21 lsri r1, r3, 1
+ bc2: 6c54 or r1, r5
+ bc4: 3940 cmpnei r1, 0
+ bc6: 0ff6 bf 0xbb2 // bb2 <__GI_sqrt+0x2e>
+ bc8: 3c40 cmpnei r4, 0
+ bca: 0c0c bf 0xbe2 // be2 <__GI_sqrt+0x5e>
+ bcc: 6c97 mov r2, r5
+ bce: 6cd3 mov r3, r4
+ bd0: 6c17 mov r0, r5
+ bd2: 6c53 mov r1, r4
+ bd4: e000023c bsr 0x104c // 104c <__subdf3>
+ bd8: 6c83 mov r2, r0
+ bda: 6cc7 mov r3, r1
+ bdc: e000036e bsr 0x12b8 // 12b8 <__divdf3>
+ be0: 07e7 br 0xbae // bae <__GI_sqrt+0x2a>
+ be2: 5494 asri r4, r4, 20
+ be4: 3c40 cmpnei r4, 0
+ be6: 0812 bt 0xc0a // c0a <__GI_sqrt+0x86>
+ be8: 3840 cmpnei r0, 0
+ bea: 0c76 bf 0xcd6 // cd6 <__GI_sqrt+0x152>
+ bec: 3580 movi r5, 128
+ bee: 3300 movi r3, 0
+ bf0: 452d lsli r1, r5, 13
+ bf2: 6d83 mov r6, r0
+ bf4: 6984 and r6, r1
+ bf6: 3e40 cmpnei r6, 0
+ bf8: 0c73 bf 0xcde // cde <__GI_sqrt+0x15a>
+ bfa: 5b23 subi r1, r3, 1
+ bfc: 3620 movi r6, 32
+ bfe: 6106 subu r4, r1
+ c00: 618e subu r6, r3
+ c02: 6c4b mov r1, r2
+ c04: 7059 lsr r1, r6
+ c06: 6c04 or r0, r1
+ c08: 708c lsl r2, r3
+ c0a: 117b lrw r3, 0xfffffc01 // cf4 <__GI_sqrt+0x170>
+ c0c: 610c addu r4, r3
+ c0e: 3601 movi r6, 1
+ c10: 400c lsli r0, r0, 12
+ c12: 6990 and r6, r4
+ c14: 480c lsri r0, r0, 12
+ c16: 3e40 cmpnei r6, 0
+ c18: 38b4 bseti r0, 20
+ c1a: 0c05 bf 0xc24 // c24 <__GI_sqrt+0xa0>
+ c1c: 4a3f lsri r1, r2, 31
+ c1e: 40a1 lsli r5, r0, 1
+ c20: 5914 addu r0, r1, r5
+ c22: 4241 lsli r2, r2, 1
+ c24: 4a7f lsri r3, r2, 31
+ c26: 60c0 addu r3, r0
+ c28: 5481 asri r4, r4, 1
+ c2a: 3680 movi r6, 128
+ c2c: 3100 movi r1, 0
+ c2e: 60c0 addu r3, r0
+ c30: b882 st.w r4, (r14, 0x8)
+ c32: 4241 lsli r2, r2, 1
+ c34: 3516 movi r5, 22
+ c36: 460e lsli r0, r6, 14
+ c38: b820 st.w r1, (r14, 0x0)
+ c3a: 5980 addu r4, r1, r0
+ c3c: 650d cmplt r3, r4
+ c3e: 0806 bt 0xc4a // c4a <__GI_sqrt+0xc6>
+ c40: 98c0 ld.w r6, (r14, 0x0)
+ c42: 6180 addu r6, r0
+ c44: 5c20 addu r1, r4, r0
+ c46: 60d2 subu r3, r4
+ c48: b8c0 st.w r6, (r14, 0x0)
+ c4a: 2d00 subi r5, 1
+ c4c: 4a9f lsri r4, r2, 31
+ c4e: 4361 lsli r3, r3, 1
+ c50: 3d40 cmpnei r5, 0
+ c52: 60d0 addu r3, r4
+ c54: 4241 lsli r2, r2, 1
+ c56: 4801 lsri r0, r0, 1
+ c58: 0bf1 bt 0xc3a // c3a <__GI_sqrt+0xb6>
+ c5a: 3620 movi r6, 32
+ c5c: 3480 movi r4, 128
+ c5e: 3000 movi r0, 0
+ c60: b8c1 st.w r6, (r14, 0x4)
+ c62: 4498 lsli r4, r4, 24
+ c64: 64c5 cmplt r1, r3
+ c66: 5cd4 addu r6, r4, r5
+ c68: 0805 bt 0xc72 // c72 <__GI_sqrt+0xee>
+ c6a: 644e cmpne r3, r1
+ c6c: 0810 bt 0xc8c // c8c <__GI_sqrt+0x108>
+ c6e: 6588 cmphs r2, r6
+ c70: 0c0e bf 0xc8c // c8c <__GI_sqrt+0x108>
+ c72: 3edf btsti r6, 31
+ c74: 5eb0 addu r5, r6, r4
+ c76: 0c37 bf 0xce4 // ce4 <__GI_sqrt+0x160>
+ c78: 3ddf btsti r5, 31
+ c7a: 0835 bt 0xce4 // ce4 <__GI_sqrt+0x160>
+ c7c: 59e2 addi r7, r1, 1
+ c7e: 6588 cmphs r2, r6
+ c80: 60c6 subu r3, r1
+ c82: 0802 bt 0xc86 // c86 <__GI_sqrt+0x102>
+ c84: 2b00 subi r3, 1
+ c86: 609a subu r2, r6
+ c88: 6010 addu r0, r4
+ c8a: 6c5f mov r1, r7
+ c8c: 4adf lsri r6, r2, 31
+ c8e: 618c addu r6, r3
+ c90: 60d8 addu r3, r6
+ c92: 98c1 ld.w r6, (r14, 0x4)
+ c94: 2e00 subi r6, 1
+ c96: 3e40 cmpnei r6, 0
+ c98: 4241 lsli r2, r2, 1
+ c9a: 4c81 lsri r4, r4, 1
+ c9c: b8c1 st.w r6, (r14, 0x4)
+ c9e: 0be3 bt 0xc64 // c64 <__GI_sqrt+0xe0>
+ ca0: 6cc8 or r3, r2
+ ca2: 3b40 cmpnei r3, 0
+ ca4: 0c09 bf 0xcb6 // cb6 <__GI_sqrt+0x132>
+ ca6: 3300 movi r3, 0
+ ca8: 2b00 subi r3, 1
+ caa: 64c2 cmpne r0, r3
+ cac: 081e bt 0xce8 // ce8 <__GI_sqrt+0x164>
+ cae: 9800 ld.w r0, (r14, 0x0)
+ cb0: 2000 addi r0, 1
+ cb2: b800 st.w r0, (r14, 0x0)
+ cb4: 3000 movi r0, 0
+ cb6: 3401 movi r4, 1
+ cb8: 9860 ld.w r3, (r14, 0x0)
+ cba: 98a0 ld.w r5, (r14, 0x0)
+ cbc: 690c and r4, r3
+ cbe: 5541 asri r2, r5, 1
+ cc0: 102e lrw r1, 0x3fe00000 // cf8 <__GI_sqrt+0x174>
+ cc2: 3c40 cmpnei r4, 0
+ cc4: 6048 addu r1, r2
+ cc6: 4801 lsri r0, r0, 1
+ cc8: 0c02 bf 0xccc // ccc <__GI_sqrt+0x148>
+ cca: 38bf bseti r0, 31
+ ccc: 98a2 ld.w r5, (r14, 0x8)
+ cce: 4594 lsli r4, r5, 20
+ cd0: 6104 addu r4, r1
+ cd2: 6d43 mov r5, r0
+ cd4: 076f br 0xbb2 // bb2 <__GI_sqrt+0x2e>
+ cd6: 4a0b lsri r0, r2, 11
+ cd8: 2c14 subi r4, 21
+ cda: 4255 lsli r2, r2, 21
+ cdc: 0786 br 0xbe8 // be8 <__GI_sqrt+0x64>
+ cde: 4001 lsli r0, r0, 1
+ ce0: 2300 addi r3, 1
+ ce2: 0788 br 0xbf2 // bf2 <__GI_sqrt+0x6e>
+ ce4: 6dc7 mov r7, r1
+ ce6: 07cc br 0xc7e // c7e <__GI_sqrt+0xfa>
+ ce8: 2000 addi r0, 1
+ cea: 3880 bclri r0, 0
+ cec: 07e5 br 0xcb6 // cb6 <__GI_sqrt+0x132>
+ cee: 0000 bkpt
+ cf0: 7ff00000 .long 0x7ff00000
+ cf4: fffffc01 .long 0xfffffc01
+ cf8: 3fe00000 .long 0x3fe00000
+
+00000cfc <___gnu_csky_case_uqi>:
+ cfc: 1421 subi r14, r14, 4
+ cfe: b820 st.w r1, (r14, 0x0)
+ d00: 6c7f mov r1, r15
+ d02: 6040 addu r1, r0
+ d04: 8120 ld.b r1, (r1, 0x0)
+ d06: 4121 lsli r1, r1, 1
+ d08: 63c4 addu r15, r1
+ d0a: 9820 ld.w r1, (r14, 0x0)
+ d0c: 1401 addi r14, r14, 4
+ d0e: 783c jmp r15
+
+00000d10 <__fixunsdfsi>:
+ d10: 14d2 push r4-r5, r15
+ d12: 3200 movi r2, 0
+ d14: 106c lrw r3, 0x41e00000 // d44 <__fixunsdfsi+0x34>
+ d16: 6d43 mov r5, r0
+ d18: 6d07 mov r4, r1
+ d1a: e0000397 bsr 0x1448 // 1448 <__gedf2>
+ d1e: 38df btsti r0, 31
+ d20: 0c06 bf 0xd2c // d2c <__fixunsdfsi+0x1c>
+ d22: 6c17 mov r0, r5
+ d24: 6c53 mov r1, r4
+ d26: e0000405 bsr 0x1530 // 1530 <__fixdfsi>
+ d2a: 1492 pop r4-r5, r15
+ d2c: 3200 movi r2, 0
+ d2e: 1066 lrw r3, 0x41e00000 // d44 <__fixunsdfsi+0x34>
+ d30: 6c17 mov r0, r5
+ d32: 6c53 mov r1, r4
+ d34: e000018c bsr 0x104c // 104c <__subdf3>
+ d38: e00003fc bsr 0x1530 // 1530 <__fixdfsi>
+ d3c: 3380 movi r3, 128
+ d3e: 4378 lsli r3, r3, 24
+ d40: 600c addu r0, r3
+ d42: 1492 pop r4-r5, r15
+ d44: 41e00000 .long 0x41e00000
+
+00000d48 <_fpadd_parts>:
+ d48: 14c4 push r4-r7
+ d4a: 142a subi r14, r14, 40
+ d4c: 9060 ld.w r3, (r0, 0x0)
+ d4e: 3b01 cmphsi r3, 2
+ d50: 6dcb mov r7, r2
+ d52: 0c67 bf 0xe20 // e20 <_fpadd_parts+0xd8>
+ d54: 9140 ld.w r2, (r1, 0x0)
+ d56: 3a01 cmphsi r2, 2
+ d58: 0c66 bf 0xe24 // e24 <_fpadd_parts+0xdc>
+ d5a: 3b44 cmpnei r3, 4
+ d5c: 0cde bf 0xf18 // f18 <_fpadd_parts+0x1d0>
+ d5e: 3a44 cmpnei r2, 4
+ d60: 0c62 bf 0xe24 // e24 <_fpadd_parts+0xdc>
+ d62: 3a42 cmpnei r2, 2
+ d64: 0cb7 bf 0xed2 // ed2 <_fpadd_parts+0x18a>
+ d66: 3b42 cmpnei r3, 2
+ d68: 0c5e bf 0xe24 // e24 <_fpadd_parts+0xdc>
+ d6a: 9043 ld.w r2, (r0, 0xc)
+ d6c: 9064 ld.w r3, (r0, 0x10)
+ d6e: 9082 ld.w r4, (r0, 0x8)
+ d70: 91a2 ld.w r5, (r1, 0x8)
+ d72: b842 st.w r2, (r14, 0x8)
+ d74: b863 st.w r3, (r14, 0xc)
+ d76: 9143 ld.w r2, (r1, 0xc)
+ d78: 9164 ld.w r3, (r1, 0x10)
+ d7a: b840 st.w r2, (r14, 0x0)
+ d7c: b861 st.w r3, (r14, 0x4)
+ d7e: 5c75 subu r3, r4, r5
+ d80: 3bdf btsti r3, 31
+ d82: 6c8f mov r2, r3
+ d84: 08d2 bt 0xf28 // f28 <_fpadd_parts+0x1e0>
+ d86: 363f movi r6, 63
+ d88: 6499 cmplt r6, r2
+ d8a: 0c50 bf 0xe2a // e2a <_fpadd_parts+0xe2>
+ d8c: 6515 cmplt r5, r4
+ d8e: 0cbf bf 0xf0c // f0c <_fpadd_parts+0x1c4>
+ d90: 3200 movi r2, 0
+ d92: 3300 movi r3, 0
+ d94: b840 st.w r2, (r14, 0x0)
+ d96: b861 st.w r3, (r14, 0x4)
+ d98: 9061 ld.w r3, (r0, 0x4)
+ d9a: 9141 ld.w r2, (r1, 0x4)
+ d9c: 648e cmpne r3, r2
+ d9e: 0c78 bf 0xe8e // e8e <_fpadd_parts+0x146>
+ da0: 3b40 cmpnei r3, 0
+ da2: 0cad bf 0xefc // efc <_fpadd_parts+0x1b4>
+ da4: 9800 ld.w r0, (r14, 0x0)
+ da6: 9821 ld.w r1, (r14, 0x4)
+ da8: 9842 ld.w r2, (r14, 0x8)
+ daa: 9863 ld.w r3, (r14, 0xc)
+ dac: 6400 cmphs r0, r0
+ dae: 600b subc r0, r2
+ db0: 604f subc r1, r3
+ db2: 39df btsti r1, 31
+ db4: 08bd bt 0xf2e // f2e <_fpadd_parts+0x1e6>
+ db6: 3300 movi r3, 0
+ db8: b761 st.w r3, (r7, 0x4)
+ dba: b782 st.w r4, (r7, 0x8)
+ dbc: 6c83 mov r2, r0
+ dbe: 6cc7 mov r3, r1
+ dc0: b703 st.w r0, (r7, 0xc)
+ dc2: b724 st.w r1, (r7, 0x10)
+ dc4: 3000 movi r0, 0
+ dc6: 3100 movi r1, 0
+ dc8: 2800 subi r0, 1
+ dca: 2900 subi r1, 1
+ dcc: 6401 cmplt r0, r0
+ dce: 6009 addc r0, r2
+ dd0: 604d addc r1, r3
+ dd2: 038f lrw r4, 0xfffffff // 1010 <_fpadd_parts+0x2c8>
+ dd4: 6450 cmphs r4, r1
+ dd6: 0c67 bf 0xea4 // ea4 <_fpadd_parts+0x15c>
+ dd8: 6506 cmpne r1, r4
+ dda: 0cfd bf 0xfd4 // fd4 <_fpadd_parts+0x28c>
+ ddc: 3000 movi r0, 0
+ dde: 9722 ld.w r1, (r7, 0x8)
+ de0: 2801 subi r0, 2
+ de2: 2900 subi r1, 1
+ de4: 03d4 lrw r6, 0xfffffff // 1010 <_fpadd_parts+0x2c8>
+ de6: b802 st.w r0, (r14, 0x8)
+ de8: b8e0 st.w r7, (r14, 0x0)
+ dea: 0403 br 0xdf0 // df0 <_fpadd_parts+0xa8>
+ dec: 6596 cmpne r5, r6
+ dee: 0c83 bf 0xef4 // ef4 <_fpadd_parts+0x1ac>
+ df0: 4301 lsli r0, r3, 1
+ df2: 4a9f lsri r4, r2, 31
+ df4: 6d00 or r4, r0
+ df6: 42a1 lsli r5, r2, 1
+ df8: 6c97 mov r2, r5
+ dfa: 6cd3 mov r3, r4
+ dfc: 3500 movi r5, 0
+ dfe: 3400 movi r4, 0
+ e00: 2c00 subi r4, 1
+ e02: 2d00 subi r5, 1
+ e04: 6511 cmplt r4, r4
+ e06: 6109 addc r4, r2
+ e08: 614d addc r5, r3
+ e0a: 6558 cmphs r6, r5
+ e0c: 6c07 mov r0, r1
+ e0e: 2900 subi r1, 1
+ e10: 0bee bt 0xdec // dec <_fpadd_parts+0xa4>
+ e12: 98e0 ld.w r7, (r14, 0x0)
+ e14: b743 st.w r2, (r7, 0xc)
+ e16: b764 st.w r3, (r7, 0x10)
+ e18: 3303 movi r3, 3
+ e1a: b702 st.w r0, (r7, 0x8)
+ e1c: b760 st.w r3, (r7, 0x0)
+ e1e: 6c1f mov r0, r7
+ e20: 140a addi r14, r14, 40
+ e22: 1484 pop r4-r7
+ e24: 6c07 mov r0, r1
+ e26: 140a addi r14, r14, 40
+ e28: 1484 pop r4-r7
+ e2a: 3b20 cmplti r3, 1
+ e2c: 088c bt 0xf44 // f44 <_fpadd_parts+0x1fc>
+ e2e: 3300 movi r3, 0
+ e30: 2b1f subi r3, 32
+ e32: 60c8 addu r3, r2
+ e34: 3bdf btsti r3, 31
+ e36: b866 st.w r3, (r14, 0x18)
+ e38: 08bb bt 0xfae // fae <_fpadd_parts+0x266>
+ e3a: 98a1 ld.w r5, (r14, 0x4)
+ e3c: 714d lsr r5, r3
+ e3e: b8a4 st.w r5, (r14, 0x10)
+ e40: 3500 movi r5, 0
+ e42: b8a5 st.w r5, (r14, 0x14)
+ e44: 9866 ld.w r3, (r14, 0x18)
+ e46: 3bdf btsti r3, 31
+ e48: 3500 movi r5, 0
+ e4a: 3600 movi r6, 0
+ e4c: 08ad bt 0xfa6 // fa6 <_fpadd_parts+0x25e>
+ e4e: 3201 movi r2, 1
+ e50: 708c lsl r2, r3
+ e52: 6d8b mov r6, r2
+ e54: 3200 movi r2, 0
+ e56: 3300 movi r3, 0
+ e58: 2a00 subi r2, 1
+ e5a: 2b00 subi r3, 1
+ e5c: 6489 cmplt r2, r2
+ e5e: 6095 addc r2, r5
+ e60: 60d9 addc r3, r6
+ e62: 98a0 ld.w r5, (r14, 0x0)
+ e64: 98c1 ld.w r6, (r14, 0x4)
+ e66: 6948 and r5, r2
+ e68: 698c and r6, r3
+ e6a: 6c97 mov r2, r5
+ e6c: 6cdb mov r3, r6
+ e6e: 6c8c or r2, r3
+ e70: 3a40 cmpnei r2, 0
+ e72: 3500 movi r5, 0
+ e74: 6155 addc r5, r5
+ e76: 6c97 mov r2, r5
+ e78: 3300 movi r3, 0
+ e7a: 98a4 ld.w r5, (r14, 0x10)
+ e7c: 98c5 ld.w r6, (r14, 0x14)
+ e7e: 6d48 or r5, r2
+ e80: 6d8c or r6, r3
+ e82: 9061 ld.w r3, (r0, 0x4)
+ e84: 9141 ld.w r2, (r1, 0x4)
+ e86: 648e cmpne r3, r2
+ e88: b8a0 st.w r5, (r14, 0x0)
+ e8a: b8c1 st.w r6, (r14, 0x4)
+ e8c: 0b8a bt 0xda0 // da0 <_fpadd_parts+0x58>
+ e8e: b761 st.w r3, (r7, 0x4)
+ e90: 9800 ld.w r0, (r14, 0x0)
+ e92: 9821 ld.w r1, (r14, 0x4)
+ e94: 9842 ld.w r2, (r14, 0x8)
+ e96: 9863 ld.w r3, (r14, 0xc)
+ e98: 6489 cmplt r2, r2
+ e9a: 6081 addc r2, r0
+ e9c: 60c5 addc r3, r1
+ e9e: b782 st.w r4, (r7, 0x8)
+ ea0: b743 st.w r2, (r7, 0xc)
+ ea2: b764 st.w r3, (r7, 0x10)
+ ea4: 3103 movi r1, 3
+ ea6: b720 st.w r1, (r7, 0x0)
+ ea8: 123b lrw r1, 0x1fffffff // 1014 <_fpadd_parts+0x2cc>
+ eaa: 64c4 cmphs r1, r3
+ eac: 0810 bt 0xecc // ecc <_fpadd_parts+0x184>
+ eae: 439f lsli r4, r3, 31
+ eb0: 4a01 lsri r0, r2, 1
+ eb2: 6c10 or r0, r4
+ eb4: 3500 movi r5, 0
+ eb6: 3401 movi r4, 1
+ eb8: 4b21 lsri r1, r3, 1
+ eba: 6890 and r2, r4
+ ebc: 68d4 and r3, r5
+ ebe: 6c80 or r2, r0
+ ec0: 6cc4 or r3, r1
+ ec2: b743 st.w r2, (r7, 0xc)
+ ec4: b764 st.w r3, (r7, 0x10)
+ ec6: 9762 ld.w r3, (r7, 0x8)
+ ec8: 2300 addi r3, 1
+ eca: b762 st.w r3, (r7, 0x8)
+ ecc: 6c1f mov r0, r7
+ ece: 140a addi r14, r14, 40
+ ed0: 1484 pop r4-r7
+ ed2: 3b42 cmpnei r3, 2
+ ed4: 0ba6 bt 0xe20 // e20 <_fpadd_parts+0xd8>
+ ed6: b760 st.w r3, (r7, 0x0)
+ ed8: 9061 ld.w r3, (r0, 0x4)
+ eda: b761 st.w r3, (r7, 0x4)
+ edc: 9062 ld.w r3, (r0, 0x8)
+ ede: b762 st.w r3, (r7, 0x8)
+ ee0: 9063 ld.w r3, (r0, 0xc)
+ ee2: b763 st.w r3, (r7, 0xc)
+ ee4: 9064 ld.w r3, (r0, 0x10)
+ ee6: 9141 ld.w r2, (r1, 0x4)
+ ee8: b764 st.w r3, (r7, 0x10)
+ eea: 9061 ld.w r3, (r0, 0x4)
+ eec: 68c8 and r3, r2
+ eee: b761 st.w r3, (r7, 0x4)
+ ef0: 6c1f mov r0, r7
+ ef2: 0797 br 0xe20 // e20 <_fpadd_parts+0xd8>
+ ef4: 98e2 ld.w r7, (r14, 0x8)
+ ef6: 651c cmphs r7, r4
+ ef8: 0b7c bt 0xdf0 // df0 <_fpadd_parts+0xa8>
+ efa: 078c br 0xe12 // e12 <_fpadd_parts+0xca>
+ efc: 9802 ld.w r0, (r14, 0x8)
+ efe: 9823 ld.w r1, (r14, 0xc)
+ f00: 9840 ld.w r2, (r14, 0x0)
+ f02: 9861 ld.w r3, (r14, 0x4)
+ f04: 6400 cmphs r0, r0
+ f06: 600b subc r0, r2
+ f08: 604f subc r1, r3
+ f0a: 0754 br 0xdb2 // db2 <_fpadd_parts+0x6a>
+ f0c: 3200 movi r2, 0
+ f0e: 3300 movi r3, 0
+ f10: 6d17 mov r4, r5
+ f12: b842 st.w r2, (r14, 0x8)
+ f14: b863 st.w r3, (r14, 0xc)
+ f16: 0741 br 0xd98 // d98 <_fpadd_parts+0x50>
+ f18: 3a44 cmpnei r2, 4
+ f1a: 0b83 bt 0xe20 // e20 <_fpadd_parts+0xd8>
+ f1c: 9041 ld.w r2, (r0, 0x4)
+ f1e: 9161 ld.w r3, (r1, 0x4)
+ f20: 64ca cmpne r2, r3
+ f22: 0f7f bf 0xe20 // e20 <_fpadd_parts+0xd8>
+ f24: 111d lrw r0, 0x4450 // 1018 <_fpadd_parts+0x2d0>
+ f26: 077d br 0xe20 // e20 <_fpadd_parts+0xd8>
+ f28: 3200 movi r2, 0
+ f2a: 608e subu r2, r3
+ f2c: 072d br 0xd86 // d86 <_fpadd_parts+0x3e>
+ f2e: 3301 movi r3, 1
+ f30: b761 st.w r3, (r7, 0x4)
+ f32: 3200 movi r2, 0
+ f34: 3300 movi r3, 0
+ f36: 6488 cmphs r2, r2
+ f38: 6083 subc r2, r0
+ f3a: 60c7 subc r3, r1
+ f3c: b782 st.w r4, (r7, 0x8)
+ f3e: b743 st.w r2, (r7, 0xc)
+ f40: b764 st.w r3, (r7, 0x10)
+ f42: 0741 br 0xdc4 // dc4 <_fpadd_parts+0x7c>
+ f44: 3b40 cmpnei r3, 0
+ f46: 0f29 bf 0xd98 // d98 <_fpadd_parts+0x50>
+ f48: 3300 movi r3, 0
+ f4a: 2b1f subi r3, 32
+ f4c: 60c8 addu r3, r2
+ f4e: 3bdf btsti r3, 31
+ f50: 6108 addu r4, r2
+ f52: b866 st.w r3, (r14, 0x18)
+ f54: 0849 bt 0xfe6 // fe6 <_fpadd_parts+0x29e>
+ f56: 9863 ld.w r3, (r14, 0xc)
+ f58: 98a6 ld.w r5, (r14, 0x18)
+ f5a: 70d5 lsr r3, r5
+ f5c: b864 st.w r3, (r14, 0x10)
+ f5e: 3300 movi r3, 0
+ f60: b865 st.w r3, (r14, 0x14)
+ f62: 9866 ld.w r3, (r14, 0x18)
+ f64: 3bdf btsti r3, 31
+ f66: 3500 movi r5, 0
+ f68: 3600 movi r6, 0
+ f6a: 083a bt 0xfde // fde <_fpadd_parts+0x296>
+ f6c: 3201 movi r2, 1
+ f6e: 708c lsl r2, r3
+ f70: 6d8b mov r6, r2
+ f72: 3200 movi r2, 0
+ f74: 3300 movi r3, 0
+ f76: 2a00 subi r2, 1
+ f78: 2b00 subi r3, 1
+ f7a: 6489 cmplt r2, r2
+ f7c: 6095 addc r2, r5
+ f7e: 60d9 addc r3, r6
+ f80: 98a2 ld.w r5, (r14, 0x8)
+ f82: 98c3 ld.w r6, (r14, 0xc)
+ f84: 6948 and r5, r2
+ f86: 698c and r6, r3
+ f88: 6c97 mov r2, r5
+ f8a: 6cdb mov r3, r6
+ f8c: 6c8c or r2, r3
+ f8e: 3a40 cmpnei r2, 0
+ f90: 3500 movi r5, 0
+ f92: 6155 addc r5, r5
+ f94: 6c97 mov r2, r5
+ f96: 3300 movi r3, 0
+ f98: 98a4 ld.w r5, (r14, 0x10)
+ f9a: 98c5 ld.w r6, (r14, 0x14)
+ f9c: 6d48 or r5, r2
+ f9e: 6d8c or r6, r3
+ fa0: b8a2 st.w r5, (r14, 0x8)
+ fa2: b8c3 st.w r6, (r14, 0xc)
+ fa4: 06fa br 0xd98 // d98 <_fpadd_parts+0x50>
+ fa6: 3301 movi r3, 1
+ fa8: 70c8 lsl r3, r2
+ faa: 6d4f mov r5, r3
+ fac: 0754 br 0xe54 // e54 <_fpadd_parts+0x10c>
+ fae: 9861 ld.w r3, (r14, 0x4)
+ fb0: 361f movi r6, 31
+ fb2: 43a1 lsli r5, r3, 1
+ fb4: 618a subu r6, r2
+ fb6: 7158 lsl r5, r6
+ fb8: b8a9 st.w r5, (r14, 0x24)
+ fba: 98a0 ld.w r5, (r14, 0x0)
+ fbc: 98c1 ld.w r6, (r14, 0x4)
+ fbe: b8a7 st.w r5, (r14, 0x1c)
+ fc0: b8c8 st.w r6, (r14, 0x20)
+ fc2: 9867 ld.w r3, (r14, 0x1c)
+ fc4: 70c9 lsr r3, r2
+ fc6: 98a9 ld.w r5, (r14, 0x24)
+ fc8: 6cd4 or r3, r5
+ fca: b864 st.w r3, (r14, 0x10)
+ fcc: 9868 ld.w r3, (r14, 0x20)
+ fce: 70c9 lsr r3, r2
+ fd0: b865 st.w r3, (r14, 0x14)
+ fd2: 0739 br 0xe44 // e44 <_fpadd_parts+0xfc>
+ fd4: 3100 movi r1, 0
+ fd6: 2901 subi r1, 2
+ fd8: 6404 cmphs r1, r0
+ fda: 0b01 bt 0xddc // ddc <_fpadd_parts+0x94>
+ fdc: 0764 br 0xea4 // ea4 <_fpadd_parts+0x15c>
+ fde: 3301 movi r3, 1
+ fe0: 70c8 lsl r3, r2
+ fe2: 6d4f mov r5, r3
+ fe4: 07c7 br 0xf72 // f72 <_fpadd_parts+0x22a>
+ fe6: 9863 ld.w r3, (r14, 0xc)
+ fe8: 43c1 lsli r6, r3, 1
+ fea: 351f movi r5, 31
+ fec: 5d69 subu r3, r5, r2
+ fee: 6d5b mov r5, r6
+ ff0: 714c lsl r5, r3
+ ff2: b8a9 st.w r5, (r14, 0x24)
+ ff4: 98a2 ld.w r5, (r14, 0x8)
+ ff6: 98c3 ld.w r6, (r14, 0xc)
+ ff8: b8a7 st.w r5, (r14, 0x1c)
+ ffa: b8c8 st.w r6, (r14, 0x20)
+ ffc: 9867 ld.w r3, (r14, 0x1c)
+ ffe: 70c9 lsr r3, r2
+ 1000: 98a9 ld.w r5, (r14, 0x24)
+ 1002: 6cd4 or r3, r5
+ 1004: b864 st.w r3, (r14, 0x10)
+ 1006: 9868 ld.w r3, (r14, 0x20)
+ 1008: 70c9 lsr r3, r2
+ 100a: b865 st.w r3, (r14, 0x14)
+ 100c: 07ab br 0xf62 // f62 <_fpadd_parts+0x21a>
+ 100e: 0000 bkpt
+ 1010: 0fffffff .long 0x0fffffff
+ 1014: 1fffffff .long 0x1fffffff
+ 1018: 00004450 .long 0x00004450
+
+0000101c <__adddf3>:
+ 101c: 14d0 push r15
+ 101e: 1433 subi r14, r14, 76
+ 1020: b800 st.w r0, (r14, 0x0)
+ 1022: b821 st.w r1, (r14, 0x4)
+ 1024: 6c3b mov r0, r14
+ 1026: 1904 addi r1, r14, 16
+ 1028: b863 st.w r3, (r14, 0xc)
+ 102a: b842 st.w r2, (r14, 0x8)
+ 102c: e00003f4 bsr 0x1814 // 1814 <__unpack_d>
+ 1030: 1909 addi r1, r14, 36
+ 1032: 1802 addi r0, r14, 8
+ 1034: e00003f0 bsr 0x1814 // 1814 <__unpack_d>
+ 1038: 1a0e addi r2, r14, 56
+ 103a: 1909 addi r1, r14, 36
+ 103c: 1804 addi r0, r14, 16
+ 103e: e3fffe85 bsr 0xd48 // d48 <_fpadd_parts>
+ 1042: e000031b bsr 0x1678 // 1678 <__pack_d>
+ 1046: 1413 addi r14, r14, 76
+ 1048: 1490 pop r15
+ ...
+
+0000104c <__subdf3>:
+ 104c: 14d0 push r15
+ 104e: 1433 subi r14, r14, 76
+ 1050: b800 st.w r0, (r14, 0x0)
+ 1052: b821 st.w r1, (r14, 0x4)
+ 1054: 6c3b mov r0, r14
+ 1056: 1904 addi r1, r14, 16
+ 1058: b842 st.w r2, (r14, 0x8)
+ 105a: b863 st.w r3, (r14, 0xc)
+ 105c: e00003dc bsr 0x1814 // 1814 <__unpack_d>
+ 1060: 1909 addi r1, r14, 36
+ 1062: 1802 addi r0, r14, 8
+ 1064: e00003d8 bsr 0x1814 // 1814 <__unpack_d>
+ 1068: 986a ld.w r3, (r14, 0x28)
+ 106a: 3201 movi r2, 1
+ 106c: 6cc9 xor r3, r2
+ 106e: 1909 addi r1, r14, 36
+ 1070: 1a0e addi r2, r14, 56
+ 1072: 1804 addi r0, r14, 16
+ 1074: b86a st.w r3, (r14, 0x28)
+ 1076: e3fffe69 bsr 0xd48 // d48 <_fpadd_parts>
+ 107a: e00002ff bsr 0x1678 // 1678 <__pack_d>
+ 107e: 1413 addi r14, r14, 76
+ 1080: 1490 pop r15
+ ...
+
+00001084 <__muldf3>:
+ 1084: 14d4 push r4-r7, r15
+ 1086: 143b subi r14, r14, 108
+ 1088: b808 st.w r0, (r14, 0x20)
+ 108a: b829 st.w r1, (r14, 0x24)
+ 108c: 1808 addi r0, r14, 32
+ 108e: 190c addi r1, r14, 48
+ 1090: b86b st.w r3, (r14, 0x2c)
+ 1092: b84a st.w r2, (r14, 0x28)
+ 1094: e00003c0 bsr 0x1814 // 1814 <__unpack_d>
+ 1098: 1911 addi r1, r14, 68
+ 109a: 180a addi r0, r14, 40
+ 109c: e00003bc bsr 0x1814 // 1814 <__unpack_d>
+ 10a0: 986c ld.w r3, (r14, 0x30)
+ 10a2: 3b01 cmphsi r3, 2
+ 10a4: 0cac bf 0x11fc // 11fc <__muldf3+0x178>
+ 10a6: 9851 ld.w r2, (r14, 0x44)
+ 10a8: 3a01 cmphsi r2, 2
+ 10aa: 0c9c bf 0x11e2 // 11e2 <__muldf3+0x15e>
+ 10ac: 3b44 cmpnei r3, 4
+ 10ae: 0ca5 bf 0x11f8 // 11f8 <__muldf3+0x174>
+ 10b0: 3a44 cmpnei r2, 4
+ 10b2: 0c96 bf 0x11de // 11de <__muldf3+0x15a>
+ 10b4: 3b42 cmpnei r3, 2
+ 10b6: 0ca3 bf 0x11fc // 11fc <__muldf3+0x178>
+ 10b8: 3a42 cmpnei r2, 2
+ 10ba: 0c94 bf 0x11e2 // 11e2 <__muldf3+0x15e>
+ 10bc: 98ef ld.w r7, (r14, 0x3c)
+ 10be: 98b4 ld.w r5, (r14, 0x50)
+ 10c0: 9875 ld.w r3, (r14, 0x54)
+ 10c2: 6d8f mov r6, r3
+ 10c4: 6c9f mov r2, r7
+ 10c6: 3300 movi r3, 0
+ 10c8: 6c17 mov r0, r5
+ 10ca: 3100 movi r1, 0
+ 10cc: e0000294 bsr 0x15f4 // 15f4 <__muldi3>
+ 10d0: b804 st.w r0, (r14, 0x10)
+ 10d2: b825 st.w r1, (r14, 0x14)
+ 10d4: 6c9f mov r2, r7
+ 10d6: 3300 movi r3, 0
+ 10d8: 6c1b mov r0, r6
+ 10da: 3100 movi r1, 0
+ 10dc: 9890 ld.w r4, (r14, 0x40)
+ 10de: b8c2 st.w r6, (r14, 0x8)
+ 10e0: e000028a bsr 0x15f4 // 15f4 <__muldi3>
+ 10e4: 6d83 mov r6, r0
+ 10e6: 6dc7 mov r7, r1
+ 10e8: 9842 ld.w r2, (r14, 0x8)
+ 10ea: 3300 movi r3, 0
+ 10ec: 6c13 mov r0, r4
+ 10ee: 3100 movi r1, 0
+ 10f0: e0000282 bsr 0x15f4 // 15f4 <__muldi3>
+ 10f4: b806 st.w r0, (r14, 0x18)
+ 10f6: b827 st.w r1, (r14, 0x1c)
+ 10f8: 6c97 mov r2, r5
+ 10fa: 3300 movi r3, 0
+ 10fc: 6c13 mov r0, r4
+ 10fe: 3100 movi r1, 0
+ 1100: e000027a bsr 0x15f4 // 15f4 <__muldi3>
+ 1104: 6401 cmplt r0, r0
+ 1106: 6019 addc r0, r6
+ 1108: 605d addc r1, r7
+ 110a: 65c4 cmphs r1, r7
+ 110c: 0c91 bf 0x122e // 122e <__muldf3+0x1aa>
+ 110e: 645e cmpne r7, r1
+ 1110: 0c8d bf 0x122a // 122a <__muldf3+0x1a6>
+ 1112: 3300 movi r3, 0
+ 1114: 3400 movi r4, 0
+ 1116: b862 st.w r3, (r14, 0x8)
+ 1118: b883 st.w r4, (r14, 0xc)
+ 111a: 9884 ld.w r4, (r14, 0x10)
+ 111c: 98a5 ld.w r5, (r14, 0x14)
+ 111e: 3600 movi r6, 0
+ 1120: 6dc3 mov r7, r0
+ 1122: 6c93 mov r2, r4
+ 1124: 6cd7 mov r3, r5
+ 1126: 6489 cmplt r2, r2
+ 1128: 6099 addc r2, r6
+ 112a: 60dd addc r3, r7
+ 112c: 6d8b mov r6, r2
+ 112e: 6dcf mov r7, r3
+ 1130: 6c93 mov r2, r4
+ 1132: 6cd7 mov r3, r5
+ 1134: 64dc cmphs r7, r3
+ 1136: 0c70 bf 0x1216 // 1216 <__muldf3+0x192>
+ 1138: 65ce cmpne r3, r7
+ 113a: 0c6c bf 0x1212 // 1212 <__muldf3+0x18e>
+ 113c: 6c87 mov r2, r1
+ 113e: 3300 movi r3, 0
+ 1140: 9806 ld.w r0, (r14, 0x18)
+ 1142: 9827 ld.w r1, (r14, 0x1c)
+ 1144: 6401 cmplt r0, r0
+ 1146: 6009 addc r0, r2
+ 1148: 604d addc r1, r3
+ 114a: 6c83 mov r2, r0
+ 114c: 6cc7 mov r3, r1
+ 114e: 9802 ld.w r0, (r14, 0x8)
+ 1150: 9823 ld.w r1, (r14, 0xc)
+ 1152: 6401 cmplt r0, r0
+ 1154: 6009 addc r0, r2
+ 1156: 604d addc r1, r3
+ 1158: 6c83 mov r2, r0
+ 115a: 6cc7 mov r3, r1
+ 115c: 988e ld.w r4, (r14, 0x38)
+ 115e: 9833 ld.w r1, (r14, 0x4c)
+ 1160: 6104 addu r4, r1
+ 1162: 5c2e addi r1, r4, 4
+ 1164: b838 st.w r1, (r14, 0x60)
+ 1166: 980d ld.w r0, (r14, 0x34)
+ 1168: 9832 ld.w r1, (r14, 0x48)
+ 116a: 6442 cmpne r0, r1
+ 116c: 12b0 lrw r5, 0x1fffffff // 12ac <__muldf3+0x228>
+ 116e: 3100 movi r1, 0
+ 1170: 6045 addc r1, r1
+ 1172: 64d4 cmphs r5, r3
+ 1174: b837 st.w r1, (r14, 0x5c)
+ 1176: 0879 bt 0x1268 // 1268 <__muldf3+0x1e4>
+ 1178: 2404 addi r4, 5
+ 117a: b8a4 st.w r5, (r14, 0x10)
+ 117c: 3001 movi r0, 1
+ 117e: 3100 movi r1, 0
+ 1180: 6808 and r0, r2
+ 1182: 684c and r1, r3
+ 1184: 6c04 or r0, r1
+ 1186: 3840 cmpnei r0, 0
+ 1188: b882 st.w r4, (r14, 0x8)
+ 118a: 0c0e bf 0x11a6 // 11a6 <__muldf3+0x122>
+ 118c: 473f lsli r1, r7, 31
+ 118e: 4e01 lsri r0, r6, 1
+ 1190: 6c04 or r0, r1
+ 1192: 4f21 lsri r1, r7, 1
+ 1194: b800 st.w r0, (r14, 0x0)
+ 1196: b821 st.w r1, (r14, 0x4)
+ 1198: 3180 movi r1, 128
+ 119a: 98c0 ld.w r6, (r14, 0x0)
+ 119c: 98e1 ld.w r7, (r14, 0x4)
+ 119e: 3000 movi r0, 0
+ 11a0: 4138 lsli r1, r1, 24
+ 11a2: 6d80 or r6, r0
+ 11a4: 6dc4 or r7, r1
+ 11a6: 4b21 lsri r1, r3, 1
+ 11a8: 43bf lsli r5, r3, 31
+ 11aa: 4a01 lsri r0, r2, 1
+ 11ac: 6cc7 mov r3, r1
+ 11ae: 9824 ld.w r1, (r14, 0x10)
+ 11b0: 6d40 or r5, r0
+ 11b2: 64c4 cmphs r1, r3
+ 11b4: 6c97 mov r2, r5
+ 11b6: 2400 addi r4, 1
+ 11b8: 0fe2 bf 0x117c // 117c <__muldf3+0xf8>
+ 11ba: 9822 ld.w r1, (r14, 0x8)
+ 11bc: b838 st.w r1, (r14, 0x60)
+ 11be: 30ff movi r0, 255
+ 11c0: 3100 movi r1, 0
+ 11c2: 6808 and r0, r2
+ 11c4: 684c and r1, r3
+ 11c6: 3480 movi r4, 128
+ 11c8: 6502 cmpne r0, r4
+ 11ca: 0c37 bf 0x1238 // 1238 <__muldf3+0x1b4>
+ 11cc: b859 st.w r2, (r14, 0x64)
+ 11ce: b87a st.w r3, (r14, 0x68)
+ 11d0: 3303 movi r3, 3
+ 11d2: b876 st.w r3, (r14, 0x58)
+ 11d4: 1816 addi r0, r14, 88
+ 11d6: e0000251 bsr 0x1678 // 1678 <__pack_d>
+ 11da: 141b addi r14, r14, 108
+ 11dc: 1494 pop r4-r7, r15
+ 11de: 3b42 cmpnei r3, 2
+ 11e0: 0c42 bf 0x1264 // 1264 <__muldf3+0x1e0>
+ 11e2: 9872 ld.w r3, (r14, 0x48)
+ 11e4: 984d ld.w r2, (r14, 0x34)
+ 11e6: 64ca cmpne r2, r3
+ 11e8: 3300 movi r3, 0
+ 11ea: 60cd addc r3, r3
+ 11ec: 1811 addi r0, r14, 68
+ 11ee: b872 st.w r3, (r14, 0x48)
+ 11f0: e0000244 bsr 0x1678 // 1678 <__pack_d>
+ 11f4: 141b addi r14, r14, 108
+ 11f6: 1494 pop r4-r7, r15
+ 11f8: 3a42 cmpnei r2, 2
+ 11fa: 0c35 bf 0x1264 // 1264 <__muldf3+0x1e0>
+ 11fc: 984d ld.w r2, (r14, 0x34)
+ 11fe: 9872 ld.w r3, (r14, 0x48)
+ 1200: 64ca cmpne r2, r3
+ 1202: 3300 movi r3, 0
+ 1204: 60cd addc r3, r3
+ 1206: 180c addi r0, r14, 48
+ 1208: b86d st.w r3, (r14, 0x34)
+ 120a: e0000237 bsr 0x1678 // 1678 <__pack_d>
+ 120e: 141b addi r14, r14, 108
+ 1210: 1494 pop r4-r7, r15
+ 1212: 6498 cmphs r6, r2
+ 1214: 0b94 bt 0x113c // 113c <__muldf3+0xb8>
+ 1216: 9882 ld.w r4, (r14, 0x8)
+ 1218: 98a3 ld.w r5, (r14, 0xc)
+ 121a: 3201 movi r2, 1
+ 121c: 3300 movi r3, 0
+ 121e: 6511 cmplt r4, r4
+ 1220: 6109 addc r4, r2
+ 1222: 614d addc r5, r3
+ 1224: b882 st.w r4, (r14, 0x8)
+ 1226: b8a3 st.w r5, (r14, 0xc)
+ 1228: 078a br 0x113c // 113c <__muldf3+0xb8>
+ 122a: 6580 cmphs r0, r6
+ 122c: 0b73 bt 0x1112 // 1112 <__muldf3+0x8e>
+ 122e: 3300 movi r3, 0
+ 1230: 3401 movi r4, 1
+ 1232: b862 st.w r3, (r14, 0x8)
+ 1234: b883 st.w r4, (r14, 0xc)
+ 1236: 0772 br 0x111a // 111a <__muldf3+0x96>
+ 1238: 3940 cmpnei r1, 0
+ 123a: 0bc9 bt 0x11cc // 11cc <__muldf3+0x148>
+ 123c: 3180 movi r1, 128
+ 123e: 4121 lsli r1, r1, 1
+ 1240: 6848 and r1, r2
+ 1242: 3940 cmpnei r1, 0
+ 1244: 0bc4 bt 0x11cc // 11cc <__muldf3+0x148>
+ 1246: 6c5b mov r1, r6
+ 1248: 6c5c or r1, r7
+ 124a: 3940 cmpnei r1, 0
+ 124c: 0fc0 bf 0x11cc // 11cc <__muldf3+0x148>
+ 124e: 3080 movi r0, 128
+ 1250: 3100 movi r1, 0
+ 1252: 6401 cmplt r0, r0
+ 1254: 6009 addc r0, r2
+ 1256: 604d addc r1, r3
+ 1258: 34ff movi r4, 255
+ 125a: 6d43 mov r5, r0
+ 125c: 6951 andn r5, r4
+ 125e: 6c97 mov r2, r5
+ 1260: 6cc7 mov r3, r1
+ 1262: 07b5 br 0x11cc // 11cc <__muldf3+0x148>
+ 1264: 1013 lrw r0, 0x4450 // 12b0 <__muldf3+0x22c>
+ 1266: 07b8 br 0x11d6 // 11d6 <__muldf3+0x152>
+ 1268: 1033 lrw r1, 0xfffffff // 12b4 <__muldf3+0x230>
+ 126a: 64c4 cmphs r1, r3
+ 126c: 0fa9 bf 0x11be // 11be <__muldf3+0x13a>
+ 126e: 2402 addi r4, 3
+ 1270: b822 st.w r1, (r14, 0x8)
+ 1272: 4a1f lsri r0, r2, 31
+ 1274: 4321 lsli r1, r3, 1
+ 1276: 42a1 lsli r5, r2, 1
+ 1278: 6c04 or r0, r1
+ 127a: 3fdf btsti r7, 31
+ 127c: b880 st.w r4, (r14, 0x0)
+ 127e: 6c97 mov r2, r5
+ 1280: 6cc3 mov r3, r0
+ 1282: 0c07 bf 0x1290 // 1290 <__muldf3+0x20c>
+ 1284: 3001 movi r0, 1
+ 1286: 3100 movi r1, 0
+ 1288: 6c08 or r0, r2
+ 128a: 6c4c or r1, r3
+ 128c: 6c83 mov r2, r0
+ 128e: 6cc7 mov r3, r1
+ 1290: 4721 lsli r1, r7, 1
+ 1292: 4e1f lsri r0, r6, 31
+ 1294: 6c04 or r0, r1
+ 1296: 9822 ld.w r1, (r14, 0x8)
+ 1298: 46a1 lsli r5, r6, 1
+ 129a: 64c4 cmphs r1, r3
+ 129c: 6d97 mov r6, r5
+ 129e: 6dc3 mov r7, r0
+ 12a0: 2c00 subi r4, 1
+ 12a2: 0be8 bt 0x1272 // 1272 <__muldf3+0x1ee>
+ 12a4: 9820 ld.w r1, (r14, 0x0)
+ 12a6: b838 st.w r1, (r14, 0x60)
+ 12a8: 078b br 0x11be // 11be <__muldf3+0x13a>
+ 12aa: 0000 bkpt
+ 12ac: 1fffffff .long 0x1fffffff
+ 12b0: 00004450 .long 0x00004450
+ 12b4: 0fffffff .long 0x0fffffff
+
+000012b8 <__divdf3>:
+ 12b8: 14d4 push r4-r7, r15
+ 12ba: 1432 subi r14, r14, 72
+ 12bc: b804 st.w r0, (r14, 0x10)
+ 12be: b825 st.w r1, (r14, 0x14)
+ 12c0: 1804 addi r0, r14, 16
+ 12c2: 1908 addi r1, r14, 32
+ 12c4: b867 st.w r3, (r14, 0x1c)
+ 12c6: b846 st.w r2, (r14, 0x18)
+ 12c8: e00002a6 bsr 0x1814 // 1814 <__unpack_d>
+ 12cc: 190d addi r1, r14, 52
+ 12ce: 1806 addi r0, r14, 24
+ 12d0: e00002a2 bsr 0x1814 // 1814 <__unpack_d>
+ 12d4: 9868 ld.w r3, (r14, 0x20)
+ 12d6: 3b01 cmphsi r3, 2
+ 12d8: 0c66 bf 0x13a4 // 13a4 <__divdf3+0xec>
+ 12da: 982d ld.w r1, (r14, 0x34)
+ 12dc: 3901 cmphsi r1, 2
+ 12de: 0c92 bf 0x1402 // 1402 <__divdf3+0x14a>
+ 12e0: 9849 ld.w r2, (r14, 0x24)
+ 12e2: 980e ld.w r0, (r14, 0x38)
+ 12e4: 6c81 xor r2, r0
+ 12e6: 3b44 cmpnei r3, 4
+ 12e8: b849 st.w r2, (r14, 0x24)
+ 12ea: 0c62 bf 0x13ae // 13ae <__divdf3+0xf6>
+ 12ec: 3b42 cmpnei r3, 2
+ 12ee: 0c60 bf 0x13ae // 13ae <__divdf3+0xf6>
+ 12f0: 3944 cmpnei r1, 4
+ 12f2: 0c62 bf 0x13b6 // 13b6 <__divdf3+0xfe>
+ 12f4: 3942 cmpnei r1, 2
+ 12f6: 0c82 bf 0x13fa // 13fa <__divdf3+0x142>
+ 12f8: 982a ld.w r1, (r14, 0x28)
+ 12fa: 986f ld.w r3, (r14, 0x3c)
+ 12fc: 604e subu r1, r3
+ 12fe: 9890 ld.w r4, (r14, 0x40)
+ 1300: 98b1 ld.w r5, (r14, 0x44)
+ 1302: 984b ld.w r2, (r14, 0x2c)
+ 1304: 986c ld.w r3, (r14, 0x30)
+ 1306: 654c cmphs r3, r5
+ 1308: b82a st.w r1, (r14, 0x28)
+ 130a: 6d93 mov r6, r4
+ 130c: 6dd7 mov r7, r5
+ 130e: 0c05 bf 0x1318 // 1318 <__divdf3+0x60>
+ 1310: 64d6 cmpne r5, r3
+ 1312: 080b bt 0x1328 // 1328 <__divdf3+0x70>
+ 1314: 6508 cmphs r2, r4
+ 1316: 0809 bt 0x1328 // 1328 <__divdf3+0x70>
+ 1318: 4a9f lsri r4, r2, 31
+ 131a: 4301 lsli r0, r3, 1
+ 131c: 42a1 lsli r5, r2, 1
+ 131e: 6d00 or r4, r0
+ 1320: 2900 subi r1, 1
+ 1322: 6c97 mov r2, r5
+ 1324: 6cd3 mov r3, r4
+ 1326: b82a st.w r1, (r14, 0x28)
+ 1328: 3000 movi r0, 0
+ 132a: 3100 movi r1, 0
+ 132c: b802 st.w r0, (r14, 0x8)
+ 132e: b823 st.w r1, (r14, 0xc)
+ 1330: 3180 movi r1, 128
+ 1332: 343d movi r4, 61
+ 1334: 3000 movi r0, 0
+ 1336: 4135 lsli r1, r1, 21
+ 1338: b8c0 st.w r6, (r14, 0x0)
+ 133a: b8e1 st.w r7, (r14, 0x4)
+ 133c: 98a0 ld.w r5, (r14, 0x0)
+ 133e: 98c1 ld.w r6, (r14, 0x4)
+ 1340: 658c cmphs r3, r6
+ 1342: 0c10 bf 0x1362 // 1362 <__divdf3+0xaa>
+ 1344: 64da cmpne r6, r3
+ 1346: 0803 bt 0x134c // 134c <__divdf3+0x94>
+ 1348: 6548 cmphs r2, r5
+ 134a: 0c0c bf 0x1362 // 1362 <__divdf3+0xaa>
+ 134c: 98a2 ld.w r5, (r14, 0x8)
+ 134e: 98c3 ld.w r6, (r14, 0xc)
+ 1350: 6d40 or r5, r0
+ 1352: 6d84 or r6, r1
+ 1354: b8a2 st.w r5, (r14, 0x8)
+ 1356: b8c3 st.w r6, (r14, 0xc)
+ 1358: 98a0 ld.w r5, (r14, 0x0)
+ 135a: 98c1 ld.w r6, (r14, 0x4)
+ 135c: 6488 cmphs r2, r2
+ 135e: 6097 subc r2, r5
+ 1360: 60db subc r3, r6
+ 1362: 41bf lsli r5, r1, 31
+ 1364: 48e1 lsri r7, r0, 1
+ 1366: 6d97 mov r6, r5
+ 1368: 49a1 lsri r5, r1, 1
+ 136a: 6d9c or r6, r7
+ 136c: 6c57 mov r1, r5
+ 136e: 4abf lsri r5, r2, 31
+ 1370: 6c1b mov r0, r6
+ 1372: 2c00 subi r4, 1
+ 1374: 6d97 mov r6, r5
+ 1376: 43a1 lsli r5, r3, 1
+ 1378: 6d94 or r6, r5
+ 137a: 4261 lsli r3, r2, 1
+ 137c: 3c40 cmpnei r4, 0
+ 137e: 6dcf mov r7, r3
+ 1380: 6c8f mov r2, r3
+ 1382: 6cdb mov r3, r6
+ 1384: 0bdc bt 0x133c // 133c <__divdf3+0x84>
+ 1386: 30ff movi r0, 255
+ 1388: 3100 movi r1, 0
+ 138a: 9882 ld.w r4, (r14, 0x8)
+ 138c: 98a3 ld.w r5, (r14, 0xc)
+ 138e: 6900 and r4, r0
+ 1390: 6944 and r5, r1
+ 1392: 6c13 mov r0, r4
+ 1394: 6c57 mov r1, r5
+ 1396: 3480 movi r4, 128
+ 1398: 6502 cmpne r0, r4
+ 139a: 0c15 bf 0x13c4 // 13c4 <__divdf3+0x10c>
+ 139c: 9862 ld.w r3, (r14, 0x8)
+ 139e: 9883 ld.w r4, (r14, 0xc)
+ 13a0: b86b st.w r3, (r14, 0x2c)
+ 13a2: b88c st.w r4, (r14, 0x30)
+ 13a4: 1808 addi r0, r14, 32
+ 13a6: e0000169 bsr 0x1678 // 1678 <__pack_d>
+ 13aa: 1412 addi r14, r14, 72
+ 13ac: 1494 pop r4-r7, r15
+ 13ae: 644e cmpne r3, r1
+ 13b0: 0bfa bt 0x13a4 // 13a4 <__divdf3+0xec>
+ 13b2: 1016 lrw r0, 0x4450 // 1408 <__divdf3+0x150>
+ 13b4: 07f9 br 0x13a6 // 13a6 <__divdf3+0xee>
+ 13b6: 3300 movi r3, 0
+ 13b8: 3400 movi r4, 0
+ 13ba: b86b st.w r3, (r14, 0x2c)
+ 13bc: b88c st.w r4, (r14, 0x30)
+ 13be: b86a st.w r3, (r14, 0x28)
+ 13c0: 1808 addi r0, r14, 32
+ 13c2: 07f2 br 0x13a6 // 13a6 <__divdf3+0xee>
+ 13c4: 3940 cmpnei r1, 0
+ 13c6: 0beb bt 0x139c // 139c <__divdf3+0xe4>
+ 13c8: 3180 movi r1, 128
+ 13ca: 4121 lsli r1, r1, 1
+ 13cc: 9882 ld.w r4, (r14, 0x8)
+ 13ce: 98a3 ld.w r5, (r14, 0xc)
+ 13d0: 6850 and r1, r4
+ 13d2: 3940 cmpnei r1, 0
+ 13d4: 0be4 bt 0x139c // 139c <__divdf3+0xe4>
+ 13d6: 6c98 or r2, r6
+ 13d8: 3a40 cmpnei r2, 0
+ 13da: 0fe1 bf 0x139c // 139c <__divdf3+0xe4>
+ 13dc: 3280 movi r2, 128
+ 13de: 3300 movi r3, 0
+ 13e0: 6c13 mov r0, r4
+ 13e2: 6c57 mov r1, r5
+ 13e4: 6401 cmplt r0, r0
+ 13e6: 6009 addc r0, r2
+ 13e8: 604d addc r1, r3
+ 13ea: 6c83 mov r2, r0
+ 13ec: 6cc7 mov r3, r1
+ 13ee: 6c0b mov r0, r2
+ 13f0: 31ff movi r1, 255
+ 13f2: 6805 andn r0, r1
+ 13f4: b802 st.w r0, (r14, 0x8)
+ 13f6: b863 st.w r3, (r14, 0xc)
+ 13f8: 07d2 br 0x139c // 139c <__divdf3+0xe4>
+ 13fa: 3304 movi r3, 4
+ 13fc: b868 st.w r3, (r14, 0x20)
+ 13fe: 1808 addi r0, r14, 32
+ 1400: 07d3 br 0x13a6 // 13a6 <__divdf3+0xee>
+ 1402: 180d addi r0, r14, 52
+ 1404: 07d1 br 0x13a6 // 13a6 <__divdf3+0xee>
+ 1406: 0000 bkpt
+ 1408: 00004450 .long 0x00004450
+
+0000140c <__gtdf2>:
+ 140c: 14d0 push r15
+ 140e: 142e subi r14, r14, 56
+ 1410: b800 st.w r0, (r14, 0x0)
+ 1412: b821 st.w r1, (r14, 0x4)
+ 1414: 6c3b mov r0, r14
+ 1416: 1904 addi r1, r14, 16
+ 1418: b863 st.w r3, (r14, 0xc)
+ 141a: b842 st.w r2, (r14, 0x8)
+ 141c: e00001fc bsr 0x1814 // 1814 <__unpack_d>
+ 1420: 1909 addi r1, r14, 36
+ 1422: 1802 addi r0, r14, 8
+ 1424: e00001f8 bsr 0x1814 // 1814 <__unpack_d>
+ 1428: 9864 ld.w r3, (r14, 0x10)
+ 142a: 3b01 cmphsi r3, 2
+ 142c: 0c0a bf 0x1440 // 1440 <__gtdf2+0x34>
+ 142e: 9869 ld.w r3, (r14, 0x24)
+ 1430: 3b01 cmphsi r3, 2
+ 1432: 0c07 bf 0x1440 // 1440 <__gtdf2+0x34>
+ 1434: 1909 addi r1, r14, 36
+ 1436: 1804 addi r0, r14, 16
+ 1438: e0000250 bsr 0x18d8 // 18d8 <__fpcmp_parts_d>
+ 143c: 140e addi r14, r14, 56
+ 143e: 1490 pop r15
+ 1440: 3000 movi r0, 0
+ 1442: 2800 subi r0, 1
+ 1444: 140e addi r14, r14, 56
+ 1446: 1490 pop r15
+
+00001448 <__gedf2>:
+ 1448: 14d0 push r15
+ 144a: 142e subi r14, r14, 56
+ 144c: b800 st.w r0, (r14, 0x0)
+ 144e: b821 st.w r1, (r14, 0x4)
+ 1450: 6c3b mov r0, r14
+ 1452: 1904 addi r1, r14, 16
+ 1454: b863 st.w r3, (r14, 0xc)
+ 1456: b842 st.w r2, (r14, 0x8)
+ 1458: e00001de bsr 0x1814 // 1814 <__unpack_d>
+ 145c: 1909 addi r1, r14, 36
+ 145e: 1802 addi r0, r14, 8
+ 1460: e00001da bsr 0x1814 // 1814 <__unpack_d>
+ 1464: 9864 ld.w r3, (r14, 0x10)
+ 1466: 3b01 cmphsi r3, 2
+ 1468: 0c0a bf 0x147c // 147c <__gedf2+0x34>
+ 146a: 9869 ld.w r3, (r14, 0x24)
+ 146c: 3b01 cmphsi r3, 2
+ 146e: 0c07 bf 0x147c // 147c <__gedf2+0x34>
+ 1470: 1909 addi r1, r14, 36
+ 1472: 1804 addi r0, r14, 16
+ 1474: e0000232 bsr 0x18d8 // 18d8 <__fpcmp_parts_d>
+ 1478: 140e addi r14, r14, 56
+ 147a: 1490 pop r15
+ 147c: 3000 movi r0, 0
+ 147e: 2800 subi r0, 1
+ 1480: 140e addi r14, r14, 56
+ 1482: 1490 pop r15
+
+00001484 <__ledf2>:
+ 1484: 14d0 push r15
+ 1486: 142e subi r14, r14, 56
+ 1488: b800 st.w r0, (r14, 0x0)
+ 148a: b821 st.w r1, (r14, 0x4)
+ 148c: 6c3b mov r0, r14
+ 148e: 1904 addi r1, r14, 16
+ 1490: b863 st.w r3, (r14, 0xc)
+ 1492: b842 st.w r2, (r14, 0x8)
+ 1494: e00001c0 bsr 0x1814 // 1814 <__unpack_d>
+ 1498: 1909 addi r1, r14, 36
+ 149a: 1802 addi r0, r14, 8
+ 149c: e00001bc bsr 0x1814 // 1814 <__unpack_d>
+ 14a0: 9864 ld.w r3, (r14, 0x10)
+ 14a2: 3b01 cmphsi r3, 2
+ 14a4: 0c0a bf 0x14b8 // 14b8 <__ledf2+0x34>
+ 14a6: 9869 ld.w r3, (r14, 0x24)
+ 14a8: 3b01 cmphsi r3, 2
+ 14aa: 0c07 bf 0x14b8 // 14b8 <__ledf2+0x34>
+ 14ac: 1909 addi r1, r14, 36
+ 14ae: 1804 addi r0, r14, 16
+ 14b0: e0000214 bsr 0x18d8 // 18d8 <__fpcmp_parts_d>
+ 14b4: 140e addi r14, r14, 56
+ 14b6: 1490 pop r15
+ 14b8: 3001 movi r0, 1
+ 14ba: 140e addi r14, r14, 56
+ 14bc: 1490 pop r15
+ ...
+
+000014c0 <__floatsidf>:
+ 14c0: 14d1 push r4, r15
+ 14c2: 1425 subi r14, r14, 20
+ 14c4: 3303 movi r3, 3
+ 14c6: b860 st.w r3, (r14, 0x0)
+ 14c8: 3840 cmpnei r0, 0
+ 14ca: 487f lsri r3, r0, 31
+ 14cc: b861 st.w r3, (r14, 0x4)
+ 14ce: 0808 bt 0x14de // 14de <__floatsidf+0x1e>
+ 14d0: 3302 movi r3, 2
+ 14d2: b860 st.w r3, (r14, 0x0)
+ 14d4: 6c3b mov r0, r14
+ 14d6: e00000d1 bsr 0x1678 // 1678 <__pack_d>
+ 14da: 1405 addi r14, r14, 20
+ 14dc: 1491 pop r4, r15
+ 14de: 38df btsti r0, 31
+ 14e0: 0812 bt 0x1504 // 1504 <__floatsidf+0x44>
+ 14e2: 6d03 mov r4, r0
+ 14e4: 6c13 mov r0, r4
+ 14e6: e00000a9 bsr 0x1638 // 1638 <__clzsi2>
+ 14ea: 321d movi r2, 29
+ 14ec: 6080 addu r2, r0
+ 14ee: 2802 subi r0, 3
+ 14f0: 38df btsti r0, 31
+ 14f2: 0810 bt 0x1512 // 1512 <__floatsidf+0x52>
+ 14f4: 7100 lsl r4, r0
+ 14f6: 3300 movi r3, 0
+ 14f8: b884 st.w r4, (r14, 0x10)
+ 14fa: b863 st.w r3, (r14, 0xc)
+ 14fc: 333c movi r3, 60
+ 14fe: 60ca subu r3, r2
+ 1500: b862 st.w r3, (r14, 0x8)
+ 1502: 07e9 br 0x14d4 // 14d4 <__floatsidf+0x14>
+ 1504: 3380 movi r3, 128
+ 1506: 4378 lsli r3, r3, 24
+ 1508: 64c2 cmpne r0, r3
+ 150a: 0c0d bf 0x1524 // 1524 <__floatsidf+0x64>
+ 150c: 3400 movi r4, 0
+ 150e: 6102 subu r4, r0
+ 1510: 07ea br 0x14e4 // 14e4 <__floatsidf+0x24>
+ 1512: 311f movi r1, 31
+ 1514: 4c61 lsri r3, r4, 1
+ 1516: 604a subu r1, r2
+ 1518: 6c13 mov r0, r4
+ 151a: 70c5 lsr r3, r1
+ 151c: 7008 lsl r0, r2
+ 151e: b864 st.w r3, (r14, 0x10)
+ 1520: b803 st.w r0, (r14, 0xc)
+ 1522: 07ed br 0x14fc // 14fc <__floatsidf+0x3c>
+ 1524: 3000 movi r0, 0
+ 1526: 1022 lrw r1, 0xc1e00000 // 152c <__floatsidf+0x6c>
+ 1528: 07d9 br 0x14da // 14da <__floatsidf+0x1a>
+ 152a: 0000 bkpt
+ 152c: c1e00000 .long 0xc1e00000
+
+00001530 <__fixdfsi>:
+ 1530: 14d0 push r15
+ 1532: 1427 subi r14, r14, 28
+ 1534: b800 st.w r0, (r14, 0x0)
+ 1536: b821 st.w r1, (r14, 0x4)
+ 1538: 6c3b mov r0, r14
+ 153a: 1902 addi r1, r14, 8
+ 153c: e000016c bsr 0x1814 // 1814 <__unpack_d>
+ 1540: 9862 ld.w r3, (r14, 0x8)
+ 1542: 3b02 cmphsi r3, 3
+ 1544: 0c20 bf 0x1584 // 1584 <__fixdfsi+0x54>
+ 1546: 3b44 cmpnei r3, 4
+ 1548: 0c16 bf 0x1574 // 1574 <__fixdfsi+0x44>
+ 154a: 9864 ld.w r3, (r14, 0x10)
+ 154c: 3bdf btsti r3, 31
+ 154e: 081b bt 0x1584 // 1584 <__fixdfsi+0x54>
+ 1550: 3b3e cmplti r3, 31
+ 1552: 0c11 bf 0x1574 // 1574 <__fixdfsi+0x44>
+ 1554: 323c movi r2, 60
+ 1556: 5a6d subu r3, r2, r3
+ 1558: 3200 movi r2, 0
+ 155a: 2a1f subi r2, 32
+ 155c: 608c addu r2, r3
+ 155e: 3adf btsti r2, 31
+ 1560: 0815 bt 0x158a // 158a <__fixdfsi+0x5a>
+ 1562: 9806 ld.w r0, (r14, 0x18)
+ 1564: 7009 lsr r0, r2
+ 1566: 9863 ld.w r3, (r14, 0xc)
+ 1568: 3b40 cmpnei r3, 0
+ 156a: 0c0b bf 0x1580 // 1580 <__fixdfsi+0x50>
+ 156c: 3300 movi r3, 0
+ 156e: 5b01 subu r0, r3, r0
+ 1570: 1407 addi r14, r14, 28
+ 1572: 1490 pop r15
+ 1574: 9863 ld.w r3, (r14, 0xc)
+ 1576: 3b40 cmpnei r3, 0
+ 1578: 3000 movi r0, 0
+ 157a: 6001 addc r0, r0
+ 157c: 1068 lrw r3, 0x7fffffff // 159c <__fixdfsi+0x6c>
+ 157e: 600c addu r0, r3
+ 1580: 1407 addi r14, r14, 28
+ 1582: 1490 pop r15
+ 1584: 3000 movi r0, 0
+ 1586: 1407 addi r14, r14, 28
+ 1588: 1490 pop r15
+ 158a: 9846 ld.w r2, (r14, 0x18)
+ 158c: 311f movi r1, 31
+ 158e: 4241 lsli r2, r2, 1
+ 1590: 604e subu r1, r3
+ 1592: 9805 ld.w r0, (r14, 0x14)
+ 1594: 7084 lsl r2, r1
+ 1596: 700d lsr r0, r3
+ 1598: 6c08 or r0, r2
+ 159a: 07e6 br 0x1566 // 1566 <__fixdfsi+0x36>
+ 159c: 7fffffff .long 0x7fffffff
+
+000015a0 <__floatunsidf>:
+ 15a0: 14d2 push r4-r5, r15
+ 15a2: 1425 subi r14, r14, 20
+ 15a4: 3840 cmpnei r0, 0
+ 15a6: 3500 movi r5, 0
+ 15a8: 6d03 mov r4, r0
+ 15aa: b8a1 st.w r5, (r14, 0x4)
+ 15ac: 0c15 bf 0x15d6 // 15d6 <__floatunsidf+0x36>
+ 15ae: 3303 movi r3, 3
+ 15b0: b860 st.w r3, (r14, 0x0)
+ 15b2: e0000043 bsr 0x1638 // 1638 <__clzsi2>
+ 15b6: 321d movi r2, 29
+ 15b8: 6080 addu r2, r0
+ 15ba: 2802 subi r0, 3
+ 15bc: 38df btsti r0, 31
+ 15be: 0813 bt 0x15e4 // 15e4 <__floatunsidf+0x44>
+ 15c0: 7100 lsl r4, r0
+ 15c2: b884 st.w r4, (r14, 0x10)
+ 15c4: b8a3 st.w r5, (r14, 0xc)
+ 15c6: 333c movi r3, 60
+ 15c8: 60ca subu r3, r2
+ 15ca: 6c3b mov r0, r14
+ 15cc: b862 st.w r3, (r14, 0x8)
+ 15ce: e0000055 bsr 0x1678 // 1678 <__pack_d>
+ 15d2: 1405 addi r14, r14, 20
+ 15d4: 1492 pop r4-r5, r15
+ 15d6: 3302 movi r3, 2
+ 15d8: 6c3b mov r0, r14
+ 15da: b860 st.w r3, (r14, 0x0)
+ 15dc: e000004e bsr 0x1678 // 1678 <__pack_d>
+ 15e0: 1405 addi r14, r14, 20
+ 15e2: 1492 pop r4-r5, r15
+ 15e4: 311f movi r1, 31
+ 15e6: 4c61 lsri r3, r4, 1
+ 15e8: 604a subu r1, r2
+ 15ea: 70c5 lsr r3, r1
+ 15ec: 7108 lsl r4, r2
+ 15ee: b864 st.w r3, (r14, 0x10)
+ 15f0: b883 st.w r4, (r14, 0xc)
+ 15f2: 07ea br 0x15c6 // 15c6 <__floatunsidf+0x26>
+
+000015f4 <__muldi3>:
+ 15f4: 14c4 push r4-r7
+ 15f6: 1421 subi r14, r14, 4
+ 15f8: 7501 zexth r4, r0
+ 15fa: 48b0 lsri r5, r0, 16
+ 15fc: 75c9 zexth r7, r2
+ 15fe: 6d83 mov r6, r0
+ 1600: b820 st.w r1, (r14, 0x0)
+ 1602: 6c13 mov r0, r4
+ 1604: 4a30 lsri r1, r2, 16
+ 1606: 7c1c mult r0, r7
+ 1608: 7d04 mult r4, r1
+ 160a: 7dd4 mult r7, r5
+ 160c: 611c addu r4, r7
+ 160e: 7d44 mult r5, r1
+ 1610: 4830 lsri r1, r0, 16
+ 1612: 6104 addu r4, r1
+ 1614: 65d0 cmphs r4, r7
+ 1616: 0804 bt 0x161e // 161e <__muldi3+0x2a>
+ 1618: 3180 movi r1, 128
+ 161a: 4129 lsli r1, r1, 9
+ 161c: 6144 addu r5, r1
+ 161e: 4c30 lsri r1, r4, 16
+ 1620: 7cd8 mult r3, r6
+ 1622: 6144 addu r5, r1
+ 1624: 6c4f mov r1, r3
+ 1626: 9860 ld.w r3, (r14, 0x0)
+ 1628: 7cc8 mult r3, r2
+ 162a: 4490 lsli r4, r4, 16
+ 162c: 604c addu r1, r3
+ 162e: 7401 zexth r0, r0
+ 1630: 6010 addu r0, r4
+ 1632: 6054 addu r1, r5
+ 1634: 1401 addi r14, r14, 4
+ 1636: 1484 pop r4-r7
+
+00001638 <__clzsi2>:
+ 1638: 106d lrw r3, 0xffff // 166c <__clzsi2+0x34>
+ 163a: 640c cmphs r3, r0
+ 163c: 0c07 bf 0x164a // 164a <__clzsi2+0x12>
+ 163e: 33ff movi r3, 255
+ 1640: 640c cmphs r3, r0
+ 1642: 0c0f bf 0x1660 // 1660 <__clzsi2+0x28>
+ 1644: 3320 movi r3, 32
+ 1646: 3200 movi r2, 0
+ 1648: 0406 br 0x1654 // 1654 <__clzsi2+0x1c>
+ 164a: 106a lrw r3, 0xffffff // 1670 <__clzsi2+0x38>
+ 164c: 640c cmphs r3, r0
+ 164e: 080c bt 0x1666 // 1666 <__clzsi2+0x2e>
+ 1650: 3308 movi r3, 8
+ 1652: 3218 movi r2, 24
+ 1654: 7009 lsr r0, r2
+ 1656: 1048 lrw r2, 0x4464 // 1674 <__clzsi2+0x3c>
+ 1658: 6008 addu r0, r2
+ 165a: 8040 ld.b r2, (r0, 0x0)
+ 165c: 5b09 subu r0, r3, r2
+ 165e: 783c jmp r15
+ 1660: 3318 movi r3, 24
+ 1662: 3208 movi r2, 8
+ 1664: 07f8 br 0x1654 // 1654 <__clzsi2+0x1c>
+ 1666: 3310 movi r3, 16
+ 1668: 3210 movi r2, 16
+ 166a: 07f5 br 0x1654 // 1654 <__clzsi2+0x1c>
+ 166c: 0000ffff .long 0x0000ffff
+ 1670: 00ffffff .long 0x00ffffff
+ 1674: 00004464 .long 0x00004464
+
+00001678 <__pack_d>:
+ 1678: 14c4 push r4-r7
+ 167a: 1422 subi r14, r14, 8
+ 167c: 9060 ld.w r3, (r0, 0x0)
+ 167e: 3b01 cmphsi r3, 2
+ 1680: 90c3 ld.w r6, (r0, 0xc)
+ 1682: 90e4 ld.w r7, (r0, 0x10)
+ 1684: 9021 ld.w r1, (r0, 0x4)
+ 1686: 0c46 bf 0x1712 // 1712 <__pack_d+0x9a>
+ 1688: 3b44 cmpnei r3, 4
+ 168a: 0c40 bf 0x170a // 170a <__pack_d+0x92>
+ 168c: 3b42 cmpnei r3, 2
+ 168e: 0c27 bf 0x16dc // 16dc <__pack_d+0x64>
+ 1690: 6cdb mov r3, r6
+ 1692: 6cdc or r3, r7
+ 1694: 3b40 cmpnei r3, 0
+ 1696: 0c23 bf 0x16dc // 16dc <__pack_d+0x64>
+ 1698: 9062 ld.w r3, (r0, 0x8)
+ 169a: 125a lrw r2, 0xfffffc02 // 1800 <__pack_d+0x188>
+ 169c: 648d cmplt r3, r2
+ 169e: 0855 bt 0x1748 // 1748 <__pack_d+0xd0>
+ 16a0: 1259 lrw r2, 0x3ff // 1804 <__pack_d+0x18c>
+ 16a2: 64c9 cmplt r2, r3
+ 16a4: 0833 bt 0x170a // 170a <__pack_d+0x92>
+ 16a6: 34ff movi r4, 255
+ 16a8: 3500 movi r5, 0
+ 16aa: 6918 and r4, r6
+ 16ac: 695c and r5, r7
+ 16ae: 3280 movi r2, 128
+ 16b0: 6492 cmpne r4, r2
+ 16b2: 0c3f bf 0x1730 // 1730 <__pack_d+0xb8>
+ 16b4: 347f movi r4, 127
+ 16b6: 3500 movi r5, 0
+ 16b8: 6599 cmplt r6, r6
+ 16ba: 6191 addc r6, r4
+ 16bc: 61d5 addc r7, r5
+ 16be: 1253 lrw r2, 0x1fffffff // 1808 <__pack_d+0x190>
+ 16c0: 65c8 cmphs r2, r7
+ 16c2: 0c1a bf 0x16f6 // 16f6 <__pack_d+0x7e>
+ 16c4: 1290 lrw r4, 0x3ff // 1804 <__pack_d+0x18c>
+ 16c6: 610c addu r4, r3
+ 16c8: 4718 lsli r0, r7, 24
+ 16ca: 4f68 lsri r3, r7, 8
+ 16cc: 4e48 lsri r2, r6, 8
+ 16ce: 6c80 or r2, r0
+ 16d0: 430c lsli r0, r3, 12
+ 16d2: 486c lsri r3, r0, 12
+ 16d4: 120e lrw r0, 0x7ff // 180c <__pack_d+0x194>
+ 16d6: 6d4b mov r5, r2
+ 16d8: 6900 and r4, r0
+ 16da: 0404 br 0x16e2 // 16e2 <__pack_d+0x6a>
+ 16dc: 3400 movi r4, 0
+ 16de: 3200 movi r2, 0
+ 16e0: 3300 movi r3, 0
+ 16e2: 430c lsli r0, r3, 12
+ 16e4: 480c lsri r0, r0, 12
+ 16e6: 4474 lsli r3, r4, 20
+ 16e8: 419f lsli r4, r1, 31
+ 16ea: 6c43 mov r1, r0
+ 16ec: 6c4c or r1, r3
+ 16ee: 6c50 or r1, r4
+ 16f0: 6c0b mov r0, r2
+ 16f2: 1402 addi r14, r14, 8
+ 16f4: 1484 pop r4-r7
+ 16f6: 479f lsli r4, r7, 31
+ 16f8: 4e01 lsri r0, r6, 1
+ 16fa: 6d00 or r4, r0
+ 16fc: 6d93 mov r6, r4
+ 16fe: 3480 movi r4, 128
+ 1700: 4f41 lsri r2, r7, 1
+ 1702: 4483 lsli r4, r4, 3
+ 1704: 6dcb mov r7, r2
+ 1706: 610c addu r4, r3
+ 1708: 07e0 br 0x16c8 // 16c8 <__pack_d+0x50>
+ 170a: 1281 lrw r4, 0x7ff // 180c <__pack_d+0x194>
+ 170c: 3200 movi r2, 0
+ 170e: 3300 movi r3, 0
+ 1710: 07e9 br 0x16e2 // 16e2 <__pack_d+0x6a>
+ 1712: 4e08 lsri r0, r6, 8
+ 1714: 4798 lsli r4, r7, 24
+ 1716: 6d00 or r4, r0
+ 1718: 3580 movi r5, 128
+ 171a: 4705 lsli r0, r7, 5
+ 171c: 6c93 mov r2, r4
+ 171e: 486d lsri r3, r0, 13
+ 1720: 3400 movi r4, 0
+ 1722: 45ac lsli r5, r5, 12
+ 1724: 6c90 or r2, r4
+ 1726: 6cd4 or r3, r5
+ 1728: 430c lsli r0, r3, 12
+ 172a: 486c lsri r3, r0, 12
+ 172c: 1198 lrw r4, 0x7ff // 180c <__pack_d+0x194>
+ 172e: 07da br 0x16e2 // 16e2 <__pack_d+0x6a>
+ 1730: 3d40 cmpnei r5, 0
+ 1732: 0bc1 bt 0x16b4 // 16b4 <__pack_d+0x3c>
+ 1734: 4241 lsli r2, r2, 1
+ 1736: 6898 and r2, r6
+ 1738: 3a40 cmpnei r2, 0
+ 173a: 0fc2 bf 0x16be // 16be <__pack_d+0x46>
+ 173c: 3480 movi r4, 128
+ 173e: 3500 movi r5, 0
+ 1740: 6599 cmplt r6, r6
+ 1742: 6191 addc r6, r4
+ 1744: 61d5 addc r7, r5
+ 1746: 07bc br 0x16be // 16be <__pack_d+0x46>
+ 1748: 5a6d subu r3, r2, r3
+ 174a: 3238 movi r2, 56
+ 174c: 64c9 cmplt r2, r3
+ 174e: 0bc7 bt 0x16dc // 16dc <__pack_d+0x64>
+ 1750: 3200 movi r2, 0
+ 1752: 2a1f subi r2, 32
+ 1754: 608c addu r2, r3
+ 1756: 3adf btsti r2, 31
+ 1758: 0848 bt 0x17e8 // 17e8 <__pack_d+0x170>
+ 175a: 6c1f mov r0, r7
+ 175c: 7009 lsr r0, r2
+ 175e: b800 st.w r0, (r14, 0x0)
+ 1760: 3000 movi r0, 0
+ 1762: b801 st.w r0, (r14, 0x4)
+ 1764: 3adf btsti r2, 31
+ 1766: 083c bt 0x17de // 17de <__pack_d+0x166>
+ 1768: 3301 movi r3, 1
+ 176a: 70c8 lsl r3, r2
+ 176c: 6d4f mov r5, r3
+ 176e: 3300 movi r3, 0
+ 1770: 6d0f mov r4, r3
+ 1772: 3200 movi r2, 0
+ 1774: 3300 movi r3, 0
+ 1776: 2a00 subi r2, 1
+ 1778: 2b00 subi r3, 1
+ 177a: 6511 cmplt r4, r4
+ 177c: 6109 addc r4, r2
+ 177e: 614d addc r5, r3
+ 1780: 6990 and r6, r4
+ 1782: 69d4 and r7, r5
+ 1784: 6d9c or r6, r7
+ 1786: 3e40 cmpnei r6, 0
+ 1788: 3000 movi r0, 0
+ 178a: 6001 addc r0, r0
+ 178c: 6c83 mov r2, r0
+ 178e: 3300 movi r3, 0
+ 1790: 9880 ld.w r4, (r14, 0x0)
+ 1792: 98a1 ld.w r5, (r14, 0x4)
+ 1794: 6d08 or r4, r2
+ 1796: 6d4c or r5, r3
+ 1798: 32ff movi r2, 255
+ 179a: 3300 movi r3, 0
+ 179c: 6890 and r2, r4
+ 179e: 68d4 and r3, r5
+ 17a0: 3080 movi r0, 128
+ 17a2: 640a cmpne r2, r0
+ 17a4: 081b bt 0x17da // 17da <__pack_d+0x162>
+ 17a6: 3b40 cmpnei r3, 0
+ 17a8: 0819 bt 0x17da // 17da <__pack_d+0x162>
+ 17aa: 3380 movi r3, 128
+ 17ac: 4361 lsli r3, r3, 1
+ 17ae: 68d0 and r3, r4
+ 17b0: 3b40 cmpnei r3, 0
+ 17b2: 0c06 bf 0x17be // 17be <__pack_d+0x146>
+ 17b4: 3280 movi r2, 128
+ 17b6: 3300 movi r3, 0
+ 17b8: 6511 cmplt r4, r4
+ 17ba: 6109 addc r4, r2
+ 17bc: 614d addc r5, r3
+ 17be: 4518 lsli r0, r5, 24
+ 17c0: 4c48 lsri r2, r4, 8
+ 17c2: 4d68 lsri r3, r5, 8
+ 17c4: 1093 lrw r4, 0xfffffff // 1810 <__pack_d+0x198>
+ 17c6: 6c80 or r2, r0
+ 17c8: 6550 cmphs r4, r5
+ 17ca: 430c lsli r0, r3, 12
+ 17cc: 486c lsri r3, r0, 12
+ 17ce: 3001 movi r0, 1
+ 17d0: 0c02 bf 0x17d4 // 17d4 <__pack_d+0x15c>
+ 17d2: 3000 movi r0, 0
+ 17d4: 108e lrw r4, 0x7ff // 180c <__pack_d+0x194>
+ 17d6: 6900 and r4, r0
+ 17d8: 0785 br 0x16e2 // 16e2 <__pack_d+0x6a>
+ 17da: 327f movi r2, 127
+ 17dc: 07ed br 0x17b6 // 17b6 <__pack_d+0x13e>
+ 17de: 3201 movi r2, 1
+ 17e0: 708c lsl r2, r3
+ 17e2: 3500 movi r5, 0
+ 17e4: 6d0b mov r4, r2
+ 17e6: 07c6 br 0x1772 // 1772 <__pack_d+0xfa>
+ 17e8: 341f movi r4, 31
+ 17ea: 610e subu r4, r3
+ 17ec: 4701 lsli r0, r7, 1
+ 17ee: 7010 lsl r0, r4
+ 17f0: 6d1b mov r4, r6
+ 17f2: 710d lsr r4, r3
+ 17f4: 6d00 or r4, r0
+ 17f6: 6c1f mov r0, r7
+ 17f8: 700d lsr r0, r3
+ 17fa: b880 st.w r4, (r14, 0x0)
+ 17fc: b801 st.w r0, (r14, 0x4)
+ 17fe: 07b3 br 0x1764 // 1764 <__pack_d+0xec>
+ 1800: fffffc02 .long 0xfffffc02
+ 1804: 000003ff .long 0x000003ff
+ 1808: 1fffffff .long 0x1fffffff
+ 180c: 000007ff .long 0x000007ff
+ 1810: 0fffffff .long 0x0fffffff
+
+00001814 <__unpack_d>:
+ 1814: 1423 subi r14, r14, 12
+ 1816: b880 st.w r4, (r14, 0x0)
+ 1818: b8c1 st.w r6, (r14, 0x4)
+ 181a: b8e2 st.w r7, (r14, 0x8)
+ 181c: 8843 ld.h r2, (r0, 0x6)
+ 181e: 4251 lsli r2, r2, 17
+ 1820: 9061 ld.w r3, (r0, 0x4)
+ 1822: 9080 ld.w r4, (r0, 0x0)
+ 1824: 4a55 lsri r2, r2, 21
+ 1826: 8007 ld.b r0, (r0, 0x7)
+ 1828: 436c lsli r3, r3, 12
+ 182a: 4807 lsri r0, r0, 7
+ 182c: 3a40 cmpnei r2, 0
+ 182e: 4b6c lsri r3, r3, 12
+ 1830: b101 st.w r0, (r1, 0x4)
+ 1832: 0819 bt 0x1864 // 1864 <__unpack_d+0x50>
+ 1834: 6c93 mov r2, r4
+ 1836: 6c8c or r2, r3
+ 1838: 3a40 cmpnei r2, 0
+ 183a: 0c2d bf 0x1894 // 1894 <__unpack_d+0x80>
+ 183c: 4c58 lsri r2, r4, 24
+ 183e: 4368 lsli r3, r3, 8
+ 1840: 6cc8 or r3, r2
+ 1842: 3203 movi r2, 3
+ 1844: 4408 lsli r0, r4, 8
+ 1846: b140 st.w r2, (r1, 0x0)
+ 1848: 1181 lrw r4, 0xfffffc01 // 18cc <__unpack_d+0xb8>
+ 184a: 11c2 lrw r6, 0xfffffff // 18d0 <__unpack_d+0xbc>
+ 184c: 485f lsri r2, r0, 31
+ 184e: 4361 lsli r3, r3, 1
+ 1850: 6cc8 or r3, r2
+ 1852: 64d8 cmphs r6, r3
+ 1854: 6c93 mov r2, r4
+ 1856: 4001 lsli r0, r0, 1
+ 1858: 2c00 subi r4, 1
+ 185a: 0bf9 bt 0x184c // 184c <__unpack_d+0x38>
+ 185c: b142 st.w r2, (r1, 0x8)
+ 185e: b103 st.w r0, (r1, 0xc)
+ 1860: b164 st.w r3, (r1, 0x10)
+ 1862: 0414 br 0x188a // 188a <__unpack_d+0x76>
+ 1864: 101c lrw r0, 0x7ff // 18d4 <__unpack_d+0xc0>
+ 1866: 640a cmpne r2, r0
+ 1868: 0c19 bf 0x189a // 189a <__unpack_d+0x86>
+ 186a: 1019 lrw r0, 0xfffffc01 // 18cc <__unpack_d+0xb8>
+ 186c: 6080 addu r2, r0
+ 186e: b142 st.w r2, (r1, 0x8)
+ 1870: 3203 movi r2, 3
+ 1872: 43e8 lsli r7, r3, 8
+ 1874: b140 st.w r2, (r1, 0x0)
+ 1876: 3380 movi r3, 128
+ 1878: 4c58 lsri r2, r4, 24
+ 187a: 6dc8 or r7, r2
+ 187c: 44c8 lsli r6, r4, 8
+ 187e: 3200 movi r2, 0
+ 1880: 4375 lsli r3, r3, 21
+ 1882: 6d88 or r6, r2
+ 1884: 6dcc or r7, r3
+ 1886: b1c3 st.w r6, (r1, 0xc)
+ 1888: b1e4 st.w r7, (r1, 0x10)
+ 188a: 98e2 ld.w r7, (r14, 0x8)
+ 188c: 98c1 ld.w r6, (r14, 0x4)
+ 188e: 9880 ld.w r4, (r14, 0x0)
+ 1890: 1403 addi r14, r14, 12
+ 1892: 783c jmp r15
+ 1894: 3302 movi r3, 2
+ 1896: b160 st.w r3, (r1, 0x0)
+ 1898: 07f9 br 0x188a // 188a <__unpack_d+0x76>
+ 189a: 6c93 mov r2, r4
+ 189c: 6c8c or r2, r3
+ 189e: 3a40 cmpnei r2, 0
+ 18a0: 0c10 bf 0x18c0 // 18c0 <__unpack_d+0xac>
+ 18a2: 3280 movi r2, 128
+ 18a4: 424c lsli r2, r2, 12
+ 18a6: 688c and r2, r3
+ 18a8: 3a40 cmpnei r2, 0
+ 18aa: 0c0e bf 0x18c6 // 18c6 <__unpack_d+0xb2>
+ 18ac: 3201 movi r2, 1
+ 18ae: b140 st.w r2, (r1, 0x0)
+ 18b0: 4c58 lsri r2, r4, 24
+ 18b2: 4368 lsli r3, r3, 8
+ 18b4: 6cc8 or r3, r2
+ 18b6: 4408 lsli r0, r4, 8
+ 18b8: 3b9b bclri r3, 27
+ 18ba: b103 st.w r0, (r1, 0xc)
+ 18bc: b164 st.w r3, (r1, 0x10)
+ 18be: 07e6 br 0x188a // 188a <__unpack_d+0x76>
+ 18c0: 3304 movi r3, 4
+ 18c2: b160 st.w r3, (r1, 0x0)
+ 18c4: 07e3 br 0x188a // 188a <__unpack_d+0x76>
+ 18c6: b140 st.w r2, (r1, 0x0)
+ 18c8: 07f4 br 0x18b0 // 18b0 <__unpack_d+0x9c>
+ 18ca: 0000 bkpt
+ 18cc: fffffc01 .long 0xfffffc01
+ 18d0: 0fffffff .long 0x0fffffff
+ 18d4: 000007ff .long 0x000007ff
+
+000018d8 <__fpcmp_parts_d>:
+ 18d8: 14c1 push r4
+ 18da: 9060 ld.w r3, (r0, 0x0)
+ 18dc: 3b01 cmphsi r3, 2
+ 18de: 0c12 bf 0x1902 // 1902 <__fpcmp_parts_d+0x2a>
+ 18e0: 9140 ld.w r2, (r1, 0x0)
+ 18e2: 3a01 cmphsi r2, 2
+ 18e4: 0c0f bf 0x1902 // 1902 <__fpcmp_parts_d+0x2a>
+ 18e6: 3b44 cmpnei r3, 4
+ 18e8: 0c17 bf 0x1916 // 1916 <__fpcmp_parts_d+0x3e>
+ 18ea: 3a44 cmpnei r2, 4
+ 18ec: 0c0f bf 0x190a // 190a <__fpcmp_parts_d+0x32>
+ 18ee: 3b42 cmpnei r3, 2
+ 18f0: 0c0b bf 0x1906 // 1906 <__fpcmp_parts_d+0x2e>
+ 18f2: 3a42 cmpnei r2, 2
+ 18f4: 0c13 bf 0x191a // 191a <__fpcmp_parts_d+0x42>
+ 18f6: 9061 ld.w r3, (r0, 0x4)
+ 18f8: 9141 ld.w r2, (r1, 0x4)
+ 18fa: 648e cmpne r3, r2
+ 18fc: 0c14 bf 0x1924 // 1924 <__fpcmp_parts_d+0x4c>
+ 18fe: 3b40 cmpnei r3, 0
+ 1900: 0808 bt 0x1910 // 1910 <__fpcmp_parts_d+0x38>
+ 1902: 3001 movi r0, 1
+ 1904: 1481 pop r4
+ 1906: 3a42 cmpnei r2, 2
+ 1908: 0c28 bf 0x1958 // 1958 <__fpcmp_parts_d+0x80>
+ 190a: 9161 ld.w r3, (r1, 0x4)
+ 190c: 3b40 cmpnei r3, 0
+ 190e: 0bfa bt 0x1902 // 1902 <__fpcmp_parts_d+0x2a>
+ 1910: 3000 movi r0, 0
+ 1912: 2800 subi r0, 1
+ 1914: 1481 pop r4
+ 1916: 3a44 cmpnei r2, 4
+ 1918: 0c22 bf 0x195c // 195c <__fpcmp_parts_d+0x84>
+ 191a: 9061 ld.w r3, (r0, 0x4)
+ 191c: 3b40 cmpnei r3, 0
+ 191e: 0bf9 bt 0x1910 // 1910 <__fpcmp_parts_d+0x38>
+ 1920: 3001 movi r0, 1
+ 1922: 07f1 br 0x1904 // 1904 <__fpcmp_parts_d+0x2c>
+ 1924: 9082 ld.w r4, (r0, 0x8)
+ 1926: 9142 ld.w r2, (r1, 0x8)
+ 1928: 6509 cmplt r2, r4
+ 192a: 0bea bt 0x18fe // 18fe <__fpcmp_parts_d+0x26>
+ 192c: 6491 cmplt r4, r2
+ 192e: 080d bt 0x1948 // 1948 <__fpcmp_parts_d+0x70>
+ 1930: 9044 ld.w r2, (r0, 0x10)
+ 1932: 9083 ld.w r4, (r0, 0xc)
+ 1934: 9103 ld.w r0, (r1, 0xc)
+ 1936: 9124 ld.w r1, (r1, 0x10)
+ 1938: 6484 cmphs r1, r2
+ 193a: 0fe2 bf 0x18fe // 18fe <__fpcmp_parts_d+0x26>
+ 193c: 644a cmpne r2, r1
+ 193e: 0803 bt 0x1944 // 1944 <__fpcmp_parts_d+0x6c>
+ 1940: 6500 cmphs r0, r4
+ 1942: 0fde bf 0x18fe // 18fe <__fpcmp_parts_d+0x26>
+ 1944: 6448 cmphs r2, r1
+ 1946: 0805 bt 0x1950 // 1950 <__fpcmp_parts_d+0x78>
+ 1948: 3b40 cmpnei r3, 0
+ 194a: 0fe3 bf 0x1910 // 1910 <__fpcmp_parts_d+0x38>
+ 194c: 3001 movi r0, 1
+ 194e: 07db br 0x1904 // 1904 <__fpcmp_parts_d+0x2c>
+ 1950: 6486 cmpne r1, r2
+ 1952: 0803 bt 0x1958 // 1958 <__fpcmp_parts_d+0x80>
+ 1954: 6410 cmphs r4, r0
+ 1956: 0ff9 bf 0x1948 // 1948 <__fpcmp_parts_d+0x70>
+ 1958: 3000 movi r0, 0
+ 195a: 1481 pop r4
+ 195c: 9161 ld.w r3, (r1, 0x4)
+ 195e: 9041 ld.w r2, (r0, 0x4)
+ 1960: 5b09 subu r0, r3, r2
+ 1962: 1481 pop r4
+
+00001964 <__memset_fast>:
+ 1964: 14c3 push r4-r6
+ 1966: 7444 zextb r1, r1
+ 1968: 3a40 cmpnei r2, 0
+ 196a: 0c1f bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 196c: 6d43 mov r5, r0
+ 196e: 6d03 mov r4, r0
+ 1970: 3603 movi r6, 3
+ 1972: 6918 and r4, r6
+ 1974: 3c40 cmpnei r4, 0
+ 1976: 0c1a bf 0x19aa // 19aa <__memset_fast+0x46>
+ 1978: a520 st.b r1, (r5, 0x0)
+ 197a: 2a00 subi r2, 1
+ 197c: 3a40 cmpnei r2, 0
+ 197e: 0c15 bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 1980: 2500 addi r5, 1
+ 1982: 6d17 mov r4, r5
+ 1984: 3603 movi r6, 3
+ 1986: 6918 and r4, r6
+ 1988: 3c40 cmpnei r4, 0
+ 198a: 0c10 bf 0x19aa // 19aa <__memset_fast+0x46>
+ 198c: a520 st.b r1, (r5, 0x0)
+ 198e: 2a00 subi r2, 1
+ 1990: 3a40 cmpnei r2, 0
+ 1992: 0c0b bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 1994: 2500 addi r5, 1
+ 1996: 6d17 mov r4, r5
+ 1998: 3603 movi r6, 3
+ 199a: 6918 and r4, r6
+ 199c: 3c40 cmpnei r4, 0
+ 199e: 0c06 bf 0x19aa // 19aa <__memset_fast+0x46>
+ 19a0: a520 st.b r1, (r5, 0x0)
+ 19a2: 2a00 subi r2, 1
+ 19a4: 2500 addi r5, 1
+ 19a6: 0402 br 0x19aa // 19aa <__memset_fast+0x46>
+ 19a8: 1483 pop r4-r6
+ 19aa: 4168 lsli r3, r1, 8
+ 19ac: 6c4c or r1, r3
+ 19ae: 4170 lsli r3, r1, 16
+ 19b0: 6c4c or r1, r3
+ 19b2: 3a2f cmplti r2, 16
+ 19b4: 0809 bt 0x19c6 // 19c6 <__memset_fast+0x62>
+ 19b6: b520 st.w r1, (r5, 0x0)
+ 19b8: b521 st.w r1, (r5, 0x4)
+ 19ba: b522 st.w r1, (r5, 0x8)
+ 19bc: b523 st.w r1, (r5, 0xc)
+ 19be: 2a0f subi r2, 16
+ 19c0: 250f addi r5, 16
+ 19c2: 3a2f cmplti r2, 16
+ 19c4: 0ff9 bf 0x19b6 // 19b6 <__memset_fast+0x52>
+ 19c6: 3a23 cmplti r2, 4
+ 19c8: 0806 bt 0x19d4 // 19d4 <__memset_fast+0x70>
+ 19ca: 2a03 subi r2, 4
+ 19cc: b520 st.w r1, (r5, 0x0)
+ 19ce: 2503 addi r5, 4
+ 19d0: 3a23 cmplti r2, 4
+ 19d2: 0ffc bf 0x19ca // 19ca <__memset_fast+0x66>
+ 19d4: 3a40 cmpnei r2, 0
+ 19d6: 0fe9 bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 19d8: 2a00 subi r2, 1
+ 19da: a520 st.b r1, (r5, 0x0)
+ 19dc: 3a40 cmpnei r2, 0
+ 19de: 0fe5 bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 19e0: 2a00 subi r2, 1
+ 19e2: a521 st.b r1, (r5, 0x1)
+ 19e4: 3a40 cmpnei r2, 0
+ 19e6: 0fe1 bf 0x19a8 // 19a8 <__memset_fast+0x44>
+ 19e8: a522 st.b r1, (r5, 0x2)
+ 19ea: 1483 pop r4-r6
+
+000019ec <__memcpy_fast>:
+ 19ec: 14c3 push r4-r6
+ 19ee: 6d83 mov r6, r0
+ 19f0: 6d07 mov r4, r1
+ 19f2: 6d18 or r4, r6
+ 19f4: 3303 movi r3, 3
+ 19f6: 690c and r4, r3
+ 19f8: 3c40 cmpnei r4, 0
+ 19fa: 0c0b bf 0x1a10 // 1a10 <__memcpy_fast+0x24>
+ 19fc: 3a40 cmpnei r2, 0
+ 19fe: 0c08 bf 0x1a0e // 1a0e <__memcpy_fast+0x22>
+ 1a00: 8160 ld.b r3, (r1, 0x0)
+ 1a02: 2100 addi r1, 1
+ 1a04: 2a00 subi r2, 1
+ 1a06: a660 st.b r3, (r6, 0x0)
+ 1a08: 2600 addi r6, 1
+ 1a0a: 3a40 cmpnei r2, 0
+ 1a0c: 0bfa bt 0x1a00 // 1a00 <__memcpy_fast+0x14>
+ 1a0e: 1483 pop r4-r6
+ 1a10: 3a2f cmplti r2, 16
+ 1a12: 080e bt 0x1a2e // 1a2e <__memcpy_fast+0x42>
+ 1a14: 91a0 ld.w r5, (r1, 0x0)
+ 1a16: 9161 ld.w r3, (r1, 0x4)
+ 1a18: 9182 ld.w r4, (r1, 0x8)
+ 1a1a: b6a0 st.w r5, (r6, 0x0)
+ 1a1c: 91a3 ld.w r5, (r1, 0xc)
+ 1a1e: b661 st.w r3, (r6, 0x4)
+ 1a20: b682 st.w r4, (r6, 0x8)
+ 1a22: b6a3 st.w r5, (r6, 0xc)
+ 1a24: 2a0f subi r2, 16
+ 1a26: 210f addi r1, 16
+ 1a28: 260f addi r6, 16
+ 1a2a: 3a2f cmplti r2, 16
+ 1a2c: 0ff4 bf 0x1a14 // 1a14 <__memcpy_fast+0x28>
+ 1a2e: 3a23 cmplti r2, 4
+ 1a30: 0808 bt 0x1a40 // 1a40 <__memcpy_fast+0x54>
+ 1a32: 9160 ld.w r3, (r1, 0x0)
+ 1a34: 2a03 subi r2, 4
+ 1a36: 2103 addi r1, 4
+ 1a38: b660 st.w r3, (r6, 0x0)
+ 1a3a: 2603 addi r6, 4
+ 1a3c: 3a23 cmplti r2, 4
+ 1a3e: 0ffa bf 0x1a32 // 1a32 <__memcpy_fast+0x46>
+ 1a40: 3a40 cmpnei r2, 0
+ 1a42: 0fe6 bf 0x1a0e // 1a0e <__memcpy_fast+0x22>
+ 1a44: 8160 ld.b r3, (r1, 0x0)
+ 1a46: 2100 addi r1, 1
+ 1a48: 2a00 subi r2, 1
+ 1a4a: a660 st.b r3, (r6, 0x0)
+ 1a4c: 2600 addi r6, 1
+ 1a4e: 07f9 br 0x1a40 // 1a40 <__memcpy_fast+0x54>
+
+Disassembly of section .text.__main:
+
+00001a50 <__main>:
+extern char _bss_start[];
+extern char _ebss[];
+
+
+void __main( void )
+{
+ 1a50: 14d0 push r15
+
+ /* if the start of data (dst)
+ is not equal to end of text (src) then
+ copy it, else it's already in the right place
+ */
+ if( _start_data != _end_rodata ) {
+ 1a52: 1009 lrw r0, 0x20000000 // 1a74 <__main+0x24>
+ 1a54: 1029 lrw r1, 0x4644 // 1a78 <__main+0x28>
+ 1a56: 6442 cmpne r0, r1
+ 1a58: 0c05 bf 0x1a62 // 1a62 <__main+0x12>
+// __memcpy_fast( dst, src, (_end_data - _start_data));
+ memcpy( dst, src, (_end_data - _start_data));
+ 1a5a: 1049 lrw r2, 0x2000009c // 1a7c <__main+0x2c>
+ 1a5c: 6082 subu r2, r0
+ 1a5e: e3ffffc7 bsr 0x19ec // 19ec <__memcpy_fast>
+ }
+
+ /* zero the bss
+ */
+ if( _ebss - _bss_start ) {
+ 1a62: 1048 lrw r2, 0x20000520 // 1a80 <__main+0x30>
+ 1a64: 1008 lrw r0, 0x2000009c // 1a84 <__main+0x34>
+ 1a66: 640a cmpne r2, r0
+ 1a68: 0c05 bf 0x1a72 // 1a72 <__main+0x22>
+// __memset_fast( _bss_start, 0x00, ( _ebss - _bss_start ));
+ memset( _bss_start, 0x00, ( _ebss - _bss_start ));
+ 1a6a: 6082 subu r2, r0
+ 1a6c: 3100 movi r1, 0
+ 1a6e: e3ffff7b bsr 0x1964 // 1964 <__memset_fast>
+ }
+
+
+}
+ 1a72: 1490 pop r15
+ 1a74: 20000000 .long 0x20000000
+ 1a78: 00004644 .long 0x00004644
+ 1a7c: 2000009c .long 0x2000009c
+ 1a80: 20000520 .long 0x20000520
+ 1a84: 2000009c .long 0x2000009c
+
+Disassembly of section .text.SYSCON_General_CMD.part.0:
+
+00001a88 :
+/*************************************************************/
+void SYSCON_General_CMD(FunctionalStatus NewState, SYSCON_General_CMD_TypeDef ENDIS_X )
+{
+ if (NewState != DISABLE)
+ {
+ if(ENDIS_X==ENDIS_EMOSC)
+ 1a88: 3848 cmpnei r0, 8
+ 1a8a: 080a bt 0x1a9e // 1a9e
+ GPIOA0->CONLR=(GPIOA0->CONLR & 0XFFF00FFF)|0x00044000; //enable EMOSC PIN
+ 1a8c: 107a lrw r3, 0x2000004c // 1af4
+ 1a8e: 32ff movi r2, 255
+ 1a90: 9320 ld.w r1, (r3, 0x0)
+ 1a92: 9160 ld.w r3, (r1, 0x0)
+ 1a94: 424c lsli r2, r2, 12
+ 1a96: 68c9 andn r3, r2
+ 1a98: 3bae bseti r3, 14
+ 1a9a: 3bb2 bseti r3, 18
+ 1a9c: b160 st.w r3, (r1, 0x0)
+ SYSCON->GCER|=ENDIS_X; //enable SYSCON General Control
+ 1a9e: 1077 lrw r3, 0x2000005c // 1af8
+ 1aa0: 9360 ld.w r3, (r3, 0x0)
+ 1aa2: 9341 ld.w r2, (r3, 0x4)
+ 1aa4: 6c80 or r2, r0
+ 1aa6: b341 st.w r2, (r3, 0x4)
+ while(!(SYSCON->GCSR&ENDIS_X)); //check Enable?
+ 1aa8: 9343 ld.w r2, (r3, 0xc)
+ 1aaa: 6880 and r2, r0
+ 1aac: 3a40 cmpnei r2, 0
+ 1aae: 0ffd bf 0x1aa8 // 1aa8
+ switch(ENDIS_X)
+ 1ab0: 3842 cmpnei r0, 2
+ 1ab2: 0807 bt 0x1ac0 // 1ac0
+ {
+ case ENDIS_IMOSC:
+ while (!(SYSCON->CKST & ENDIS_IMOSC));
+ 1ab4: 3102 movi r1, 2
+ 1ab6: 9344 ld.w r2, (r3, 0x10)
+ 1ab8: 6884 and r2, r1
+ 1aba: 3a40 cmpnei r2, 0
+ 1abc: 0ffd bf 0x1ab6 // 1ab6
+ {
+ SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control
+ while(SYSCON->GCSR&ENDIS_X); //check Disable?
+ SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit
+ }
+}
+ 1abe: 783c jmp r15
+ switch(ENDIS_X)
+ 1ac0: 3802 cmphsi r0, 3
+ 1ac2: 0809 bt 0x1ad4 // 1ad4
+ 1ac4: 3841 cmpnei r0, 1
+ 1ac6: 0bfc bt 0x1abe // 1abe
+ while (!(SYSCON->CKST & ENDIS_ISOSC));
+ 1ac8: 3101 movi r1, 1
+ 1aca: 9344 ld.w r2, (r3, 0x10)
+ 1acc: 6884 and r2, r1
+ 1ace: 3a40 cmpnei r2, 0
+ 1ad0: 0ffd bf 0x1aca // 1aca
+ 1ad2: 07f6 br 0x1abe // 1abe
+ switch(ENDIS_X)
+ 1ad4: 3848 cmpnei r0, 8
+ 1ad6: 0807 bt 0x1ae4 // 1ae4
+ while (!(SYSCON->CKST & ENDIS_EMOSC));
+ 1ad8: 3108 movi r1, 8
+ 1ada: 9344 ld.w r2, (r3, 0x10)
+ 1adc: 6884 and r2, r1
+ 1ade: 3a40 cmpnei r2, 0
+ 1ae0: 0ffd bf 0x1ada // 1ada
+ 1ae2: 07ee br 0x1abe // 1abe
+ switch(ENDIS_X)
+ 1ae4: 3850 cmpnei r0, 16
+ 1ae6: 0bec bt 0x1abe // 1abe
+ while (!(SYSCON->CKST & ENDIS_HFOSC));
+ 1ae8: 3110 movi r1, 16
+ 1aea: 9344 ld.w r2, (r3, 0x10)
+ 1aec: 6884 and r2, r1
+ 1aee: 3a40 cmpnei r2, 0
+ 1af0: 0ffd bf 0x1aea // 1aea
+ 1af2: 07e6 br 0x1abe // 1abe
+ 1af4: 2000004c .long 0x2000004c
+ 1af8: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SYSCON_RST_VALUE:
+
+00001afc :
+ SYSCON->RAMCHK=SYSCON_RAMCHK_RST;
+ 1afc: 106c lrw r3, 0x2000005c // 1b2c
+ 1afe: 104d lrw r2, 0xffff // 1b30
+ 1b00: 9360 ld.w r3, (r3, 0x0)
+ 1b02: b345 st.w r2, (r3, 0x14)
+ SYSCON->EFLCHK=SYSCON_EFLCHK_RST;
+ 1b04: 104c lrw r2, 0xffffff // 1b34
+ 1b06: b346 st.w r2, (r3, 0x18)
+ SYSCON->SCLKCR=SYSCON_SCLKCR_RST;
+ 1b08: 104c lrw r2, 0xd22d0000 // 1b38
+ 1b0a: b347 st.w r2, (r3, 0x1c)
+ SYSCON->OSTR=SYSCON_OSTR_RST;
+ 1b0c: 104c lrw r2, 0x70ff3bff // 1b3c
+ 1b0e: b350 st.w r2, (r3, 0x40)
+ SYSCON->LVDCR=SYSCON_LVDCR_RST;
+ 1b10: 320a movi r2, 10
+ 1b12: b353 st.w r2, (r3, 0x4c)
+ SYSCON->IWDCR=SYSCON_IWDCR_RST;
+ 1b14: 102b lrw r1, 0x70c // 1b40
+ SYSCON->EXIRT=SYSCON_EXIRT_RST;
+ 1b16: 237f addi r3, 128
+ 1b18: 3200 movi r2, 0
+ 1b1a: b345 st.w r2, (r3, 0x14)
+ SYSCON->EXIFT=SYSCON_EXIFT_RST;
+ 1b1c: b346 st.w r2, (r3, 0x18)
+ SYSCON->IWDCR=SYSCON_IWDCR_RST;
+ 1b1e: b32d st.w r1, (r3, 0x34)
+ SYSCON->IWDCNT=SYSCON_IWDCNT_RST;
+ 1b20: 1029 lrw r1, 0x3fe // 1b44
+ 1b22: b32e st.w r1, (r3, 0x38)
+ SYSCON->EVTRG=SYSCON_EVTRG_RST;
+ 1b24: b35d st.w r2, (r3, 0x74)
+ SYSCON->EVPS=SYSCON_EVPS_RST;
+ 1b26: b35e st.w r2, (r3, 0x78)
+ SYSCON->EVSWF=SYSCON_EVSWF_RST;
+ 1b28: b35f st.w r2, (r3, 0x7c)
+}
+ 1b2a: 783c jmp r15
+ 1b2c: 2000005c .long 0x2000005c
+ 1b30: 0000ffff .long 0x0000ffff
+ 1b34: 00ffffff .long 0x00ffffff
+ 1b38: d22d0000 .long 0xd22d0000
+ 1b3c: 70ff3bff .long 0x70ff3bff
+ 1b40: 0000070c .long 0x0000070c
+ 1b44: 000003fe .long 0x000003fe
+
+Disassembly of section .text.SYSCON_General_CMD:
+
+00001b48 :
+{
+ 1b48: 14d0 push r15
+ if (NewState != DISABLE)
+ 1b4a: 3840 cmpnei r0, 0
+ 1b4c: 0c05 bf 0x1b56 // 1b56
+ 1b4e: 6c07 mov r0, r1
+ 1b50: e3ffff9c bsr 0x1a88 // 1a88
+}
+ 1b54: 1490 pop r15
+ SYSCON->GCDR|=ENDIS_X; //disable SYSCON General Control
+ 1b56: 1068 lrw r3, 0x2000005c // 1b74
+ 1b58: 9360 ld.w r3, (r3, 0x0)
+ 1b5a: 9342 ld.w r2, (r3, 0x8)
+ 1b5c: 6c84 or r2, r1
+ 1b5e: b342 st.w r2, (r3, 0x8)
+ while(SYSCON->GCSR&ENDIS_X); //check Disable?
+ 1b60: 9343 ld.w r2, (r3, 0xc)
+ 1b62: 6884 and r2, r1
+ 1b64: 3a40 cmpnei r2, 0
+ 1b66: 0bfd bt 0x1b60 // 1b60
+ SYSCON->ICR|=ENDIS_X; //Clear ENDIS_X stable bit
+ 1b68: 237f addi r3, 128
+ 1b6a: 9301 ld.w r0, (r3, 0x4)
+ 1b6c: 6c40 or r1, r0
+ 1b6e: b321 st.w r1, (r3, 0x4)
+}
+ 1b70: 07f2 br 0x1b54 // 1b54
+ 1b72: 0000 bkpt
+ 1b74: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SystemCLK_HCLKDIV_PCLKDIV_Config:
+
+00001b78 :
+//SystemClk_data_x:EMOSC_24M,EMOSC_16M,EMOSC_12M,EMOSC_8M,EMOSC_4M,EMOSC_36K,
+//ISOSC,IMOSC,HFOSC_48M,HFOSC_24M,HFOSC_12M,HFOSC_6M
+//ReturnValue:NONE
+/*************************************************************/
+void SystemCLK_HCLKDIV_PCLKDIV_Config(SystemCLK_TypeDef SYSCLK_X , SystemCLK_Div_TypeDef HCLK_DIV_X , PCLK_Div_TypeDef PCLK_DIV_X , SystemClk_data_TypeDef SystemClk_data_x )
+{
+ 1b78: 14c2 push r4-r5
+ if(SystemClk_data_x==HFOSC_48M)
+ 1b7a: 3b48 cmpnei r3, 8
+ 1b7c: 0828 bt 0x1bcc // 1bcc
+ {
+ IFC->CEDR=0X01; //CLKEN
+ 1b7e: 109d lrw r4, 0x20000060 // 1bf0
+ 1b80: 3501 movi r5, 1
+ 1b82: 9480 ld.w r4, (r4, 0x0)
+ 1b84: b4a1 st.w r5, (r4, 0x4)
+ IFC->MR=0X04|(0X00<<16); //High speed mode
+ 1b86: 3504 movi r5, 4
+ 1b88: b4a5 st.w r5, (r4, 0x14)
+ if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M))
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X02|(0X00<<16); //Medium speed mode
+ }
+ if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M))
+ 1b8a: 5b83 subi r4, r3, 1
+ 1b8c: 3c01 cmphsi r4, 2
+ 1b8e: 0c2b bf 0x1be4 // 1be4
+ {
+ IFC->CEDR=0X01; //CLKEN
+ IFC->MR=0X01|(0X00<<16); //Low speed mode
+ }
+ if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K)
+ ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M))
+ 1b90: 5b8b subi r4, r3, 3
+ if((SystemClk_data_x==EMOSC_8M)||(SystemClk_data_x==EMOSC_4M)||(SystemClk_data_x==EMOSC_36K)
+ 1b92: 3c04 cmphsi r4, 5
+ 1b94: 0c03 bf 0x1b9a // 1b9a
+ ||(SystemClk_data_x==IMOSC)||(SystemClk_data_x==ISOSC)||(SystemClk_data_x==HFOSC_6M))
+ 1b96: 3b4b cmpnei r3, 11
+ 1b98: 0807 bt 0x1ba6 // 1ba6
+ {
+ IFC->CEDR=0X01; //CLKEN
+ 1b9a: 1076 lrw r3, 0x20000060 // 1bf0
+ 1b9c: 3401 movi r4, 1
+ 1b9e: 9360 ld.w r3, (r3, 0x0)
+ 1ba0: b381 st.w r4, (r3, 0x4)
+ IFC->MR=0X00|(0X00<<16); //Low speed mode
+ 1ba2: 3400 movi r4, 0
+ 1ba4: b385 st.w r4, (r3, 0x14)
+ }
+ SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X;
+ 1ba6: 1094 lrw r4, 0xd22d0000 // 1bf4
+ 1ba8: 6c10 or r0, r4
+ 1baa: 1074 lrw r3, 0x2000005c // 1bf8
+ 1bac: 6c40 or r1, r0
+ 1bae: 9360 ld.w r3, (r3, 0x0)
+ while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable
+ 1bb0: 3080 movi r0, 128
+ SYSCON->SCLKCR=SYSCLK_KEY | HCLK_DIV_X| SYSCLK_X;
+ 1bb2: b327 st.w r1, (r3, 0x1c)
+ while (!(SYSCON->CKST & (1<<8))); // waiting for sysclk stable
+ 1bb4: 4001 lsli r0, r0, 1
+ 1bb6: 9324 ld.w r1, (r3, 0x10)
+ 1bb8: 6840 and r1, r0
+ 1bba: 3940 cmpnei r1, 0
+ 1bbc: 0ffd bf 0x1bb6 // 1bb6
+ SYSCON->PCLKCR=PCLK_KEY|PCLK_DIV_X; //PCLK DIV 1 2 4 6 8 16
+ 1bbe: 1030 lrw r1, 0xc33c0000 // 1bfc
+ 1bc0: 6c48 or r1, r2
+ 1bc2: b328 st.w r1, (r3, 0x20)
+ while(SYSCON->PCLKCR!=PCLK_DIV_X); //Wait PCLK DIV
+ 1bc4: 9328 ld.w r1, (r3, 0x20)
+ 1bc6: 644a cmpne r2, r1
+ 1bc8: 0bfe bt 0x1bc4 // 1bc4
+}
+ 1bca: 1482 pop r4-r5
+ if((SystemClk_data_x==EMOSC_24M)||(SystemClk_data_x==HFOSC_24M))
+ 1bcc: 3b40 cmpnei r3, 0
+ 1bce: 0c03 bf 0x1bd4 // 1bd4
+ 1bd0: 3b49 cmpnei r3, 9
+ 1bd2: 0807 bt 0x1be0 // 1be0
+ IFC->CEDR=0X01; //CLKEN
+ 1bd4: 1087 lrw r4, 0x20000060 // 1bf0
+ 1bd6: 3501 movi r5, 1
+ 1bd8: 9480 ld.w r4, (r4, 0x0)
+ 1bda: b4a1 st.w r5, (r4, 0x4)
+ IFC->MR=0X02|(0X00<<16); //Medium speed mode
+ 1bdc: 3502 movi r5, 2
+ 1bde: b4a5 st.w r5, (r4, 0x14)
+ if((SystemClk_data_x==EMOSC_12M)||(SystemClk_data_x==HFOSC_12M)||(SystemClk_data_x==EMOSC_16M))
+ 1be0: 3b4a cmpnei r3, 10
+ 1be2: 0bd4 bt 0x1b8a // 1b8a
+ IFC->CEDR=0X01; //CLKEN
+ 1be4: 1083 lrw r4, 0x20000060 // 1bf0
+ 1be6: 3501 movi r5, 1
+ 1be8: 9480 ld.w r4, (r4, 0x0)
+ 1bea: b4a1 st.w r5, (r4, 0x4)
+ IFC->MR=0X01|(0X00<<16); //Low speed mode
+ 1bec: b4a5 st.w r5, (r4, 0x14)
+ 1bee: 07d1 br 0x1b90 // 1b90
+ 1bf0: 20000060 .long 0x20000060
+ 1bf4: d22d0000 .long 0xd22d0000
+ 1bf8: 2000005c .long 0x2000005c
+ 1bfc: c33c0000 .long 0xc33c0000
+
+Disassembly of section .text.SYSCON_HFOSC_SELECTE:
+
+00001c00 :
+//EntryParameter:HFOSC_SELECTE_X
+//HFOSC_SELECTE_X:HFOSC_SELECTE_48M,HFOSC_SELECTE_24M;HFOSC_SELECTE_12M;HFOSC_SELECTE_6M
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_HFOSC_SELECTE(HFOSC_SELECTE_TypeDef HFOSC_SELECTE_X)
+{
+ 1c00: 14d1 push r4, r15
+ 1c02: 6d03 mov r4, r0
+ SYSCON_General_CMD(DISABLE,ENDIS_HFOSC); //disable HFOSC
+ 1c04: 3110 movi r1, 16
+ 1c06: 3000 movi r0, 0
+ 1c08: e3ffffa0 bsr 0x1b48 // 1b48
+ SYSCON->OPT1 = (SYSCON->OPT1 & 0XFFFFFFCF)|HFOSC_SELECTE_X;
+ 1c0c: 1066 lrw r3, 0x2000005c // 1c24
+ 1c0e: 9360 ld.w r3, (r3, 0x0)
+ 1c10: 9319 ld.w r0, (r3, 0x64)
+ 1c12: 3884 bclri r0, 4
+ 1c14: 3885 bclri r0, 5
+ 1c16: 6c10 or r0, r4
+ 1c18: b319 st.w r0, (r3, 0x64)
+ 1c1a: 3010 movi r0, 16
+ 1c1c: e3ffff36 bsr 0x1a88 // 1a88
+ SYSCON_General_CMD(ENABLE,ENDIS_HFOSC); //enable HFOSC
+}
+ 1c20: 1491 pop r4, r15
+ 1c22: 0000 bkpt
+ 1c24: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SYSCON_WDT_CMD:
+
+00001c28 :
+//EntryParameter:,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_WDT_CMD(FunctionalStatus NewState)
+{
+ 1c28: 106c lrw r3, 0x2000005c // 1c58
+ if(NewState != DISABLE)
+ 1c2a: 3840 cmpnei r0, 0
+ {
+ SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
+ 1c2c: 9360 ld.w r3, (r3, 0x0)
+ 1c2e: 237f addi r3, 128
+ if(NewState != DISABLE)
+ 1c30: 0c0a bf 0x1c44 // 1c44
+ SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
+ 1c32: 104b lrw r2, 0x78870000 // 1c5c
+ while(!(SYSCON->IWDCR&Check_IWDT_BUSY));
+ 1c34: 3180 movi r1, 128
+ SYSCON->IWDEDR=IWDTEDR_KEY|Enable_IWDT;
+ 1c36: b34f st.w r2, (r3, 0x3c)
+ while(!(SYSCON->IWDCR&Check_IWDT_BUSY));
+ 1c38: 4125 lsli r1, r1, 5
+ 1c3a: 934d ld.w r2, (r3, 0x34)
+ 1c3c: 6884 and r2, r1
+ 1c3e: 3a40 cmpnei r2, 0
+ 1c40: 0ffd bf 0x1c3a // 1c3a
+ else
+ {
+ SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
+ while(SYSCON->IWDCR&Check_IWDT_BUSY);
+ }
+}
+ 1c42: 783c jmp r15
+ SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
+ 1c44: 1047 lrw r2, 0x788755aa // 1c60
+ while(SYSCON->IWDCR&Check_IWDT_BUSY);
+ 1c46: 3180 movi r1, 128
+ SYSCON->IWDEDR=IWDTEDR_KEY|Disable_IWDT;
+ 1c48: b34f st.w r2, (r3, 0x3c)
+ while(SYSCON->IWDCR&Check_IWDT_BUSY);
+ 1c4a: 4125 lsli r1, r1, 5
+ 1c4c: 934d ld.w r2, (r3, 0x34)
+ 1c4e: 6884 and r2, r1
+ 1c50: 3a40 cmpnei r2, 0
+ 1c52: 0bfd bt 0x1c4c // 1c4c
+ 1c54: 07f7 br 0x1c42 // 1c42
+ 1c56: 0000 bkpt
+ 1c58: 2000005c .long 0x2000005c
+ 1c5c: 78870000 .long 0x78870000
+ 1c60: 788755aa .long 0x788755aa
+
+Disassembly of section .text.SYSCON_IWDCNT_Reload:
+
+00001c64 :
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_IWDCNT_Reload(void)
+{
+ SYSCON->IWDCNT=CLR_IWDT;
+ 1c64: 1064 lrw r3, 0x2000005c // 1c74
+ 1c66: 32b4 movi r2, 180
+ 1c68: 9360 ld.w r3, (r3, 0x0)
+ 1c6a: 237f addi r3, 128
+ 1c6c: 4257 lsli r2, r2, 23
+ 1c6e: b34e st.w r2, (r3, 0x38)
+}
+ 1c70: 783c jmp r15
+ 1c72: 0000 bkpt
+ 1c74: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SYSCON_IWDCNT_Config:
+
+00001c78 :
+//IWDT_INTW_DIV_X:IWDT_INTW_DIV_1/2/3/4/4/5/6
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_IWDCNT_Config(IWDT_TIME_TypeDef IWDT_TIME_X , IWDT_TIMEDIV_TypeDef IWDT_INTW_DIV_X )
+{
+ SYSCON->IWDCR=IWDT_KEY|IWDT_TIME_X|IWDT_INTW_DIV_X;
+ 1c78: 1044 lrw r2, 0x87780000 // 1c88
+ 1c7a: 1065 lrw r3, 0x2000005c // 1c8c
+ 1c7c: 6c48 or r1, r2
+ 1c7e: 9360 ld.w r3, (r3, 0x0)
+ 1c80: 6c04 or r0, r1
+ 1c82: 237f addi r3, 128
+ 1c84: b30d st.w r0, (r3, 0x34)
+}
+ 1c86: 783c jmp r15
+ 1c88: 87780000 .long 0x87780000
+ 1c8c: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SYSCON_LVD_Config:
+
+00001c90 :
+//X_LVD_INT:ENABLE_LVD_INT,DISABLE_LVD_INT
+//INTDET_POL_X:INTDET_POL_fall,INTDET_POL_X_rise,INTDET_POL_X_riseORfall
+//ReturnValue: NONE
+/*************************************************************/
+void SYSCON_LVD_Config(X_LVDEN_TypeDef X_LVDEN , INTDET_LVL_X_TypeDef INTDET_LVL_X , RSTDET_LVL_X_TypeDef RSTDET_LVL_X , X_LVD_INT_TypeDef X_LVD_INT , INTDET_POL_X_TypeDef INTDET_POL_X)
+{
+ 1c90: 14c3 push r4-r6
+ 1c92: 9883 ld.w r4, (r14, 0xc)
+ //SYSCON->LVDCR=LVD_KEY;
+ SYSCON->LVDCR=LVD_KEY|X_LVDEN|INTDET_LVL_X|RSTDET_LVL_X|X_LVD_INT|INTDET_POL_X;
+ 1c94: 10c5 lrw r6, 0xb44b0000 // 1ca8
+ 1c96: 6d18 or r4, r6
+ 1c98: 6cd0 or r3, r4
+ 1c9a: 6c8c or r2, r3
+ 1c9c: 6c48 or r1, r2
+ 1c9e: 10a4 lrw r5, 0x2000005c // 1cac
+ 1ca0: 6c04 or r0, r1
+ 1ca2: 95a0 ld.w r5, (r5, 0x0)
+ 1ca4: b513 st.w r0, (r5, 0x4c)
+}
+ 1ca6: 1483 pop r4-r6
+ 1ca8: b44b0000 .long 0xb44b0000
+ 1cac: 2000005c .long 0x2000005c
+
+Disassembly of section .text.LVD_Int_Enable:
+
+00001cb0 :
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void LVD_Int_Enable(void)
+{
+ SYSCON->ICR = LVD_INT_ST; //clear LVD INT status
+ 1cb0: 1066 lrw r3, 0x2000005c // 1cc8
+ 1cb2: 3180 movi r1, 128
+ 1cb4: 9360 ld.w r3, (r3, 0x0)
+ 1cb6: 3280 movi r2, 128
+ 1cb8: 604c addu r1, r3
+ 1cba: 4244 lsli r2, r2, 4
+ 1cbc: b141 st.w r2, (r1, 0x4)
+ SYSCON->IMER |= LVD_INT_ST;
+ 1cbe: 935d ld.w r2, (r3, 0x74)
+ 1cc0: 3aab bseti r2, 11
+ 1cc2: b35d st.w r2, (r3, 0x74)
+}
+ 1cc4: 783c jmp r15
+ 1cc6: 0000 bkpt
+ 1cc8: 2000005c .long 0x2000005c
+
+Disassembly of section .text.IWDT_Int_Enable:
+
+00001ccc :
+//EntryParameter:NONE
+//ReturnValue: NONE
+/*************************************************************/
+void IWDT_Int_Enable(void)
+{
+ SYSCON->ICR = IWDT_INT_ST; //clear LVD INT status
+ 1ccc: 1066 lrw r3, 0x2000005c // 1ce4
+ 1cce: 3180 movi r1, 128
+ 1cd0: 9360 ld.w r3, (r3, 0x0)
+ 1cd2: 3280 movi r2, 128
+ 1cd4: 604c addu r1, r3
+ 1cd6: 4241 lsli r2, r2, 1
+ 1cd8: b141 st.w r2, (r1, 0x4)
+ SYSCON->IMER |= IWDT_INT_ST;
+ 1cda: 935d ld.w r2, (r3, 0x74)
+ 1cdc: 3aa8 bseti r2, 8
+ 1cde: b35d st.w r2, (r3, 0x74)
+}
+ 1ce0: 783c jmp r15
+ 1ce2: 0000 bkpt
+ 1ce4: 2000005c .long 0x2000005c
+
+Disassembly of section .text.EXTI_trigger_CMD:
+
+00001ce8 :
+//EXI_tringer_mode:_EXIRT,_EXIFT
+//ReturnValue: LVD detection flag
+/*************************************************************/
+void EXTI_trigger_CMD(FunctionalStatus NewState , SYSCON_EXIPIN_TypeDef EXIPIN , EXI_tringer_mode_TypeDef EXI_tringer_mode)
+{
+ switch(EXI_tringer_mode)
+ 1ce8: 3a40 cmpnei r2, 0
+ 1cea: 0c04 bf 0x1cf2 // 1cf2
+ 1cec: 3a41 cmpnei r2, 1
+ 1cee: 0c0e bf 0x1d0a // 1d0a
+ {
+ SYSCON->EXIFT &=~EXIPIN;
+ }
+ break;
+ }
+}
+ 1cf0: 783c jmp r15
+ 1cf2: 106d lrw r3, 0x2000005c // 1d24
+ if(NewState != DISABLE)
+ 1cf4: 3840 cmpnei r0, 0
+ SYSCON->EXIRT |=EXIPIN;
+ 1cf6: 9360 ld.w r3, (r3, 0x0)
+ 1cf8: 237f addi r3, 128
+ 1cfa: 9345 ld.w r2, (r3, 0x14)
+ if(NewState != DISABLE)
+ 1cfc: 0c04 bf 0x1d04 // 1d04
+ SYSCON->EXIRT |=EXIPIN;
+ 1cfe: 6c48 or r1, r2
+ 1d00: b325 st.w r1, (r3, 0x14)
+ 1d02: 07f7 br 0x1cf0 // 1cf0
+ SYSCON->EXIRT &=~EXIPIN;
+ 1d04: 6885 andn r2, r1
+ 1d06: b345 st.w r2, (r3, 0x14)
+ 1d08: 07f4 br 0x1cf0 // 1cf0
+ 1d0a: 1067 lrw r3, 0x2000005c // 1d24
+ if(NewState != DISABLE)
+ 1d0c: 3840 cmpnei r0, 0
+ SYSCON->EXIFT |=EXIPIN;
+ 1d0e: 9360 ld.w r3, (r3, 0x0)
+ 1d10: 237f addi r3, 128
+ 1d12: 9346 ld.w r2, (r3, 0x18)
+ if(NewState != DISABLE)
+ 1d14: 0c04 bf 0x1d1c // 1d1c
+ SYSCON->EXIFT |=EXIPIN;
+ 1d16: 6c48 or r1, r2
+ 1d18: b326 st.w r1, (r3, 0x18)
+ 1d1a: 07eb br 0x1cf0 // 1cf0
+ SYSCON->EXIFT &=~EXIPIN;
+ 1d1c: 6885 andn r2, r1
+ 1d1e: b346 st.w r2, (r3, 0x18)
+}
+ 1d20: 07e8 br 0x1cf0 // 1cf0
+ 1d22: 0000 bkpt
+ 1d24: 2000005c .long 0x2000005c
+
+Disassembly of section .text.SYSCON_Int_Enable:
+
+00001d28 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void SYSCON_Int_Enable(void)
+{
+ INTC_ISER_WRITE(SYSCON_INT);
+ 1d28: 3202 movi r2, 2
+ 1d2a: 1062 lrw r3, 0xe000e100 // 1d30
+ 1d2c: b340 st.w r2, (r3, 0x0)
+}
+ 1d2e: 783c jmp r15
+ 1d30: e000e100 .long 0xe000e100
+
+Disassembly of section .text.SYSCON_INT_Priority:
+
+00001d34 :
+//80:Priority 2
+//C0:Priority 3 lowest
+/*************************************************************/
+void SYSCON_INT_Priority(void)
+{
+ INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit
+ 1d34: 1066 lrw r3, 0xe000e400 // 1d4c
+ 1d36: 1047 lrw r2, 0xc0c0c0c0 // 1d50
+ INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7
+ INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11
+ INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15
+ INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19
+ INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23
+ INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27
+ 1d38: 1027 lrw r1, 0xc0c000c0 // 1d54
+ INTC_IPR0_WRITE(0XC0C0C0C0); //IQR0-3 low bit-->high bit
+ 1d3a: b340 st.w r2, (r3, 0x0)
+ INTC_IPR1_WRITE(0XC0C0C0C0); //IQR4-7
+ 1d3c: b341 st.w r2, (r3, 0x4)
+ INTC_IPR2_WRITE(0XC0C0C0C0); //IQR8-11
+ 1d3e: b342 st.w r2, (r3, 0x8)
+ INTC_IPR3_WRITE(0XC0C0C0C0); //IQR12-15
+ 1d40: b343 st.w r2, (r3, 0xc)
+ INTC_IPR4_WRITE(0XC0C0C0C0); //IQR16-19
+ 1d42: b344 st.w r2, (r3, 0x10)
+ INTC_IPR5_WRITE(0XC0C0C0C0); //IQR20-23
+ 1d44: b345 st.w r2, (r3, 0x14)
+ INTC_IPR6_WRITE(0XC0C000C0); //IQR24-27
+ 1d46: b326 st.w r1, (r3, 0x18)
+ INTC_IPR7_WRITE(0XC0C0C0C0); //IQR28-31
+ 1d48: b347 st.w r2, (r3, 0x1c)
+}
+ 1d4a: 783c jmp r15
+ 1d4c: e000e400 .long 0xe000e400
+ 1d50: c0c0c0c0 .long 0xc0c0c0c0
+ 1d54: c0c000c0 .long 0xc0c000c0
+
+Disassembly of section .text.Set_INT_Priority:
+
+00001d58 :
+//int_name:CORET_IRQ~BT1_IRQ
+//int_level:0~3 0=highest 3=lowest
+//ReturnValue:None
+/*************************************************************/
+void Set_INT_Priority(U8_T int_name,U8_T int_level)
+{
+ 1d58: 14c1 push r4
+ 1d5a: 4862 lsri r3, r0, 2
+ 1d5c: 4342 lsli r2, r3, 2
+ 1d5e: 106a lrw r3, 0x20000064 // 1d84
+ U8_T i_temp,j_temp;
+ U32_T k_temp;
+ i_temp=(int_name%4)*8;
+ 1d60: 3403 movi r4, 3
+ 1d62: 9360 ld.w r3, (r3, 0x0)
+ 1d64: 60c8 addu r3, r2
+ j_temp=int_name/4;
+ k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp));
+ 1d76: 4126 lsli r1, r1, 6
+ k_temp=CK801 -> IPR[j_temp]&(~(0xff< IPR[j_temp]=k_temp|((int_level*0x40)<<(i_temp));
+ 1d7a: 7040 lsl r1, r0
+ 1d7c: 6c48 or r1, r2
+ 1d7e: b320 st.w r1, (r3, 0x0)
+}
+ 1d80: 1481 pop r4
+ 1d82: 0000 bkpt
+ 1d84: 20000064 .long 0x20000064
+
+Disassembly of section .text.GPIO_Init:
+
+00001d88 :
+//byte:Lowbyte(PIN_0~7),Highbyte(PIN_8~15)
+//Dir:0:output 1:input
+//ReturnValue:NONE
+/*************************************************************/
+void GPIO_Init(CSP_GPIO_T *GPIOx,uint8_t PinNum,GPIO_Dir_TypeDef Dir)
+{
+ 1d88: 14d1 push r4, r15
+ uint32_t data_temp;
+ uint8_t GPIO_Pin;
+ if(PinNum<8)
+ 1d8a: 3907 cmphsi r1, 8
+{
+ 1d8c: 6d03 mov r4, r0
+ if(PinNum<8)
+ 1d8e: 0830 bt 0x1dee // 1dee
+ {
+ switch (PinNum)
+ 1d90: 5903 subi r0, r1, 1
+ 1d92: 3806 cmphsi r0, 7
+ 1d94: 0827 bt 0x1de2 // 1de2
+ 1d96: e3fff7b3 bsr 0xcfc // cfc <___gnu_csky_case_uqi>
+ 1d9a: 1004 .short 0x1004
+ 1d9c: 1d1a1613 .long 0x1d1a1613
+ 1da0: 0021 .short 0x0021
+ {
+ case 0:data_temp=0xfffffff0;GPIO_Pin=0;break;
+ case 1:data_temp=0xffffff0f;GPIO_Pin=4;break;
+ 1da2: 3300 movi r3, 0
+ 1da4: 3104 movi r1, 4
+ 1da6: 2bf0 subi r3, 241
+ case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break;
+ case 5:data_temp=0xff0fffff;GPIO_Pin=20;break;
+ case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ case 7:data_temp=0x0fffffff;GPIO_Pin=28;break;
+ }
+ if (Dir)
+ 1da8: 3a40 cmpnei r2, 0
+ {
+ (GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<
+ (GPIOx)->CONLR =((GPIOx)->CONLR & data_temp) | 1<CONLR = ((GPIOx)->CONLR & data_temp) | 2<CONHR = ((GPIOx)->CONHR & data_temp) | 2<
+ 1dbe: 07f5 br 0x1da8 // 1da8
+ case 3:data_temp=0xffff0fff;GPIO_Pin=12;break;
+ 1dc0: 310c movi r1, 12
+ 1dc2: 1166 lrw r3, 0xffff0fff // 1e58
+ 1dc4: 07f2 br 0x1da8 // 1da8
+ case 4:data_temp=0xfff0ffff;GPIO_Pin=16;break;
+ 1dc6: 3110 movi r1, 16
+ 1dc8: 1165 lrw r3, 0xfff10000 // 1e5c
+ case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ 1dca: 2b00 subi r3, 1
+ 1dcc: 07ee br 0x1da8 // 1da8
+ case 5:data_temp=0xff0fffff;GPIO_Pin=20;break;
+ 1dce: 3114 movi r1, 20
+ 1dd0: 1164 lrw r3, 0xff100000 // 1e60
+ 1dd2: 07fc br 0x1dca // 1dca
+ case 6:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ 1dd4: 33f1 movi r3, 241
+ 1dd6: 3118 movi r1, 24
+ 1dd8: 4378 lsli r3, r3, 24
+ 1dda: 07f8 br 0x1dca // 1dca
+ case 7:data_temp=0x0fffffff;GPIO_Pin=28;break;
+ 1ddc: 311c movi r1, 28
+ 1dde: 1162 lrw r3, 0xfffffff // 1e64
+ 1de0: 07e4 br 0x1da8 // 1da8
+ case 0:data_temp=0xfffffff0;GPIO_Pin=0;break;
+ 1de2: 3300 movi r3, 0
+ 1de4: 3100 movi r1, 0
+ 1de6: 2b0f subi r3, 16
+ 1de8: 07e0 br 0x1da8 // 1da8
+ (GPIOx)->CONLR = ((GPIOx)->CONLR & data_temp) | 2<
+ else if (PinNum<16)
+ 1dee: 390f cmphsi r1, 16
+ 1df0: 0be4 bt 0x1db8 // 1db8
+ switch (PinNum)
+ 1df2: 2908 subi r1, 9
+ 1df4: 3906 cmphsi r1, 7
+ 1df6: 6c07 mov r0, r1
+ 1df8: 0827 bt 0x1e46 // 1e46
+ 1dfa: e3fff781 bsr 0xcfc // cfc <___gnu_csky_case_uqi>
+ 1dfe: 1004 .short 0x1004
+ 1e00: 1d1a1613 .long 0x1d1a1613
+ 1e04: 0021 .short 0x0021
+ case 9:data_temp=0xffffff0f;GPIO_Pin=4;break;
+ 1e06: 3300 movi r3, 0
+ 1e08: 3104 movi r1, 4
+ 1e0a: 2bf0 subi r3, 241
+ if (Dir)
+ 1e0c: 3a40 cmpnei r2, 0
+ (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 1<
+ (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 1<CONHR = ((GPIOx)->CONHR & data_temp) | 2<
+ case 10:data_temp=0xfffff0ff;GPIO_Pin=8;break;
+ 1e1e: 3108 movi r1, 8
+ 1e20: 106d lrw r3, 0xfffff0ff // 1e54
+ 1e22: 07f5 br 0x1e0c // 1e0c
+ case 11:data_temp=0xffff0fff;GPIO_Pin=12;break;
+ 1e24: 310c movi r1, 12
+ 1e26: 106d lrw r3, 0xffff0fff // 1e58
+ 1e28: 07f2 br 0x1e0c // 1e0c
+ case 12:data_temp=0xfff0ffff;GPIO_Pin=16;break;
+ 1e2a: 3110 movi r1, 16
+ 1e2c: 106c lrw r3, 0xfff10000 // 1e5c
+ case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ 1e2e: 2b00 subi r3, 1
+ 1e30: 07ee br 0x1e0c // 1e0c
+ case 13:data_temp=0xff0fffff;GPIO_Pin=20;break;
+ 1e32: 3114 movi r1, 20
+ 1e34: 106b lrw r3, 0xff100000 // 1e60
+ 1e36: 07fc br 0x1e2e // 1e2e
+ case 14:data_temp=0xf0ffffff;GPIO_Pin=24;break;
+ 1e38: 33f1 movi r3, 241
+ 1e3a: 3118 movi r1, 24
+ 1e3c: 4378 lsli r3, r3, 24
+ 1e3e: 07f8 br 0x1e2e // 1e2e
+ case 15:data_temp=0x0fffffff;GPIO_Pin=28;break;
+ 1e40: 311c movi r1, 28
+ 1e42: 1069 lrw r3, 0xfffffff // 1e64
+ 1e44: 07e4 br 0x1e0c // 1e0c
+ case 8:data_temp=0xfffffff0;GPIO_Pin=0;break;
+ 1e46: 3300 movi r3, 0
+ 1e48: 3100 movi r1, 0
+ 1e4a: 2b0f subi r3, 16
+ 1e4c: 07e0 br 0x1e0c // 1e0c
+ (GPIOx)->CONHR = ((GPIOx)->CONHR & data_temp) | 2<
+ 1e52: 0000 bkpt
+ 1e54: fffff0ff .long 0xfffff0ff
+ 1e58: ffff0fff .long 0xffff0fff
+ 1e5c: fff10000 .long 0xfff10000
+ 1e60: ff100000 .long 0xff100000
+ 1e64: 0fffffff .long 0x0fffffff
+
+Disassembly of section .text.GPIO_PullHigh_Init:
+
+00001e68 :
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_PullHigh_Init(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->PUDR = (((GPIOx)->PUDR) & ~(0x03<<(bit*2))) | (0x01<<(bit*2));
+ 1e68: 4121 lsli r1, r1, 1
+ 1e6a: 3203 movi r2, 3
+ 1e6c: 9068 ld.w r3, (r0, 0x20)
+ 1e6e: 7084 lsl r2, r1
+ 1e70: 68c9 andn r3, r2
+ 1e72: 3201 movi r2, 1
+ 1e74: 7084 lsl r2, r1
+ 1e76: 6cc8 or r3, r2
+ 1e78: b068 st.w r3, (r0, 0x20)
+}
+ 1e7a: 783c jmp r15
+
+Disassembly of section .text.GPIO_DriveStrength_EN:
+
+00001e7c :
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_DriveStrength_EN(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->DSCR = ((GPIOx)->DSCR) | (0x01<<(bit*2));
+ 1e7c: 4121 lsli r1, r1, 1
+ 1e7e: 3301 movi r3, 1
+ 1e80: 9049 ld.w r2, (r0, 0x24)
+ 1e82: 70c4 lsl r3, r1
+ 1e84: 6cc8 or r3, r2
+ 1e86: b069 st.w r3, (r0, 0x24)
+}
+ 1e88: 783c jmp r15
+
+Disassembly of section .text.GPIO_Write_High:
+
+00001e8a :
+//bit:0~15
+//ReturnValue:VALUE
+/*************************************************************/
+void GPIO_Write_High(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->SODR = (1ul<:
+void GPIO_Write_Low(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ (GPIOx)->CODR = (1ul<:
+/*************************************************************/
+uint8_t GPIO_Read_Status(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat=((GPIOx)->PSDR)&(1<:
+/*************************************************************/
+uint8_t GPIO_Read_Output(CSP_GPIO_T *GPIOx,uint8_t bit)
+{
+ uint8_t value = 0;
+ uint32_t dat = 0;
+ dat=((GPIOx)->ODSR)&(1<:
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void LPT_Soft_Reset(void)
+{
+ LPT->RSSR |= (0X5<<12);
+ 1ebc: 1064 lrw r3, 0x20000014 // 1ecc
+ 1ebe: 9340 ld.w r2, (r3, 0x0)
+ 1ec0: 9261 ld.w r3, (r2, 0x4)
+ 1ec2: 3bac bseti r3, 12
+ 1ec4: 3bae bseti r3, 14
+ 1ec6: b261 st.w r3, (r2, 0x4)
+}
+ 1ec8: 783c jmp r15
+ 1eca: 0000 bkpt
+ 1ecc: 20000014 .long 0x20000014
+
+Disassembly of section .text.WWDT_CNT_Load:
+
+00001ed0 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void WWDT_CNT_Load(U8_T cnt_data)
+{
+ WWDT->CR |= cnt_data; //SET
+ 1ed0: 1063 lrw r3, 0x20000010 // 1edc
+ 1ed2: 9360 ld.w r3, (r3, 0x0)
+ 1ed4: 9340 ld.w r2, (r3, 0x0)
+ 1ed6: 6c08 or r0, r2
+ 1ed8: b300 st.w r0, (r3, 0x0)
+}
+ 1eda: 783c jmp r15
+ 1edc: 20000010 .long 0x20000010
+
+Disassembly of section .text.BT_DeInit:
+
+00001ee0 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_DeInit(CSP_BT_T *BTx)
+{
+ BTx->RSSR=BT_RESET_VALUE;
+ 1ee0: 3300 movi r3, 0
+ 1ee2: b060 st.w r3, (r0, 0x0)
+ BTx->CR=BT_RESET_VALUE;
+ 1ee4: b061 st.w r3, (r0, 0x4)
+ BTx->PSCR=BT_RESET_VALUE;
+ 1ee6: b062 st.w r3, (r0, 0x8)
+ BTx->PRDR=BT_RESET_VALUE;
+ 1ee8: b063 st.w r3, (r0, 0xc)
+ BTx->CMP=BT_RESET_VALUE;
+ 1eea: b064 st.w r3, (r0, 0x10)
+ BTx->CNT=BT_RESET_VALUE;
+ 1eec: b065 st.w r3, (r0, 0x14)
+ BTx->EVTRG=BT_RESET_VALUE;
+ 1eee: b066 st.w r3, (r0, 0x18)
+ BTx->EVSWF=BT_RESET_VALUE;
+ 1ef0: b069 st.w r3, (r0, 0x24)
+ BTx->RISR=BT_RESET_VALUE;
+ 1ef2: b06a st.w r3, (r0, 0x28)
+ BTx->IMCR=BT_RESET_VALUE;
+ 1ef4: b06b st.w r3, (r0, 0x2c)
+ BTx->MISR=BT_RESET_VALUE;
+ 1ef6: b06c st.w r3, (r0, 0x30)
+ BTx->ICR=BT_RESET_VALUE;
+ 1ef8: b06d st.w r3, (r0, 0x34)
+}
+ 1efa: 783c jmp r15
+
+Disassembly of section .text.BT_Start:
+
+00001efc :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Start(CSP_BT_T *BTx)
+{
+ BTx->RSSR |=0X01;
+ 1efc: 9060 ld.w r3, (r0, 0x0)
+ 1efe: 3ba0 bseti r3, 0
+ 1f00: b060 st.w r3, (r0, 0x0)
+}
+ 1f02: 783c jmp r15
+
+Disassembly of section .text.BT_Soft_Reset:
+
+00001f04 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Soft_Reset(CSP_BT_T *BTx)
+{
+ BTx->RSSR |= (0X5<<12);
+ 1f04: 9060 ld.w r3, (r0, 0x0)
+ 1f06: 3bac bseti r3, 12
+ 1f08: 3bae bseti r3, 14
+ 1f0a: b060 st.w r3, (r0, 0x0)
+}
+ 1f0c: 783c jmp r15
+
+Disassembly of section .text.BT_Configure:
+
+00001f0e :
+//BT Configure
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Configure(CSP_BT_T *BTx,BT_CLK_TypeDef BTCLK,U16_T PSCR_DATA,BT_SHDWSTP_TypeDef BTSHDWSTP,BT_OPM_TypeDef BTOPM,BT_EXTCKM_TypeDef BTEXTCKM)
+{
+ 1f0e: 14c3 push r4-r6
+ 1f10: 98a4 ld.w r5, (r14, 0x10)
+ 1f12: 6d97 mov r6, r5
+ 1f14: 9883 ld.w r4, (r14, 0xc)
+ BTx->CR |=BTCLK| BTSHDWSTP| BTOPM| BTEXTCKM;
+ 1f16: 6d18 or r4, r6
+ 1f18: 6cd0 or r3, r4
+ 1f1a: 90a1 ld.w r5, (r0, 0x4)
+ 1f1c: 6c4c or r1, r3
+ 1f1e: 6c54 or r1, r5
+ 1f20: b021 st.w r1, (r0, 0x4)
+ BTx->PSCR = PSCR_DATA;
+ 1f22: b042 st.w r2, (r0, 0x8)
+}
+ 1f24: 1483 pop r4-r6
+
+Disassembly of section .text.BT_ControlSet_Configure:
+
+00001f26 :
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void BT_ControlSet_Configure(CSP_BT_T *BTx,BT_STARTST_TypeDef BTSTART,BT_IDLEST_TypeDef BTIDLE,BT_SYNCEN_TypeDef BTSYNC,BT_SYNCMD_TypeDef BTSYNCMD,
+ BT_OSTMDX_TypeDef BTOSTMD,BT_AREARM_TypeDef BTAREARM,BT_CNTRLD_TypeDef BTCNTRLD)
+{
+ 1f26: 14c4 push r4-r7
+ 1f28: 1421 subi r14, r14, 4
+ 1f2a: 9885 ld.w r4, (r14, 0x14)
+ 1f2c: 6dd3 mov r7, r4
+ 1f2e: 9886 ld.w r4, (r14, 0x18)
+ 1f30: b880 st.w r4, (r14, 0x0)
+ 1f32: 9887 ld.w r4, (r14, 0x1c)
+ 1f34: 6d93 mov r6, r4
+ 1f36: 98a8 ld.w r5, (r14, 0x20)
+ BTx->CR |=BTSTART| BTIDLE| BTSYNC| BTSYNCMD| BTOSTMD| BTAREARM| BTCNTRLD;
+ 1f38: 6d58 or r5, r6
+ 1f3a: 98c0 ld.w r6, (r14, 0x0)
+ 1f3c: 6d58 or r5, r6
+ 1f3e: 6d5c or r5, r7
+ 1f40: 6cd4 or r3, r5
+ 1f42: 6c8c or r2, r3
+ 1f44: 9081 ld.w r4, (r0, 0x4)
+ 1f46: 6c48 or r1, r2
+ 1f48: 6d04 or r4, r1
+ 1f4a: 6d9f mov r6, r7
+ 1f4c: b081 st.w r4, (r0, 0x4)
+}
+ 1f4e: 1401 addi r14, r14, 4
+ 1f50: 1484 pop r4-r7
+
+Disassembly of section .text.BT_Period_CMP_Write:
+
+00001f52 :
+//ReturnValue:NONE
+/*************************************************************/
+void BT_Period_CMP_Write(CSP_BT_T *BTx,U16_T BTPRDR_DATA,U16_T BTCMP_DATA)
+{
+ //BTx->CR|=0X01<<2;
+ BTx->PRDR =BTPRDR_DATA;
+ 1f52: b023 st.w r1, (r0, 0xc)
+ BTx->CMP =BTCMP_DATA;
+ 1f54: b044 st.w r2, (r0, 0x10)
+}
+ 1f56: 783c jmp r15
+
+Disassembly of section .text.BT_ConfigInterrupt_CMD:
+
+00001f58 :
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void BT_ConfigInterrupt_CMD(CSP_BT_T *BTx,FunctionalStatus NewState,BT_IMSCR_TypeDef BT_IMSCR_X)
+{
+ if (NewState != DISABLE)
+ 1f58: 3940 cmpnei r1, 0
+ {
+ BTx->IMCR |= BT_IMSCR_X;
+ 1f5a: 906b ld.w r3, (r0, 0x2c)
+ if (NewState != DISABLE)
+ 1f5c: 0c04 bf 0x1f64 // 1f64
+ BTx->IMCR |= BT_IMSCR_X;
+ 1f5e: 6c8c or r2, r3
+ 1f60: b04b st.w r2, (r0, 0x2c)
+ }
+ else
+ {
+ BTx->IMCR &= ~BT_IMSCR_X;
+ }
+}
+ 1f62: 783c jmp r15
+ BTx->IMCR &= ~BT_IMSCR_X;
+ 1f64: 68c9 andn r3, r2
+ 1f66: b06b st.w r3, (r0, 0x2c)
+}
+ 1f68: 07fd br 0x1f62 // 1f62
+
+Disassembly of section .text.BT1_INT_ENABLE:
+
+00001f6c :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void BT1_INT_ENABLE(void)
+{
+ INTC_ISER_WRITE(BT1_INT);
+ 1f6c: 3380 movi r3, 128
+ 1f6e: 4376 lsli r3, r3, 22
+ 1f70: 1042 lrw r2, 0xe000e100 // 1f78
+ 1f72: b260 st.w r3, (r2, 0x0)
+}
+ 1f74: 783c jmp r15
+ 1f76: 0000 bkpt
+ 1f78: e000e100 .long 0xe000e100
+
+Disassembly of section .text.GPT_IO_Init:
+
+00001f7c :
+//EntryParameter:GPT_CHA_PB01,GPT_CHA_PA09,GPT_CHA_PA010,GPT_CHB_PA010,GPT_CHB_PA011,GPT_CHB_PB00,GPT_CHB_PB01
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_IO_Init(GPT_IOSET_TypeDef IONAME)
+{
+ if(IONAME==GPT_CHA_PB01)
+ 1f7c: 3840 cmpnei r0, 0
+ 1f7e: 080a bt 0x1f92 // 1f92
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000050;
+ 1f80: 1165 lrw r3, 0x20000048 // 2014
+ 1f82: 31f0 movi r1, 240
+ 1f84: 9340 ld.w r2, (r3, 0x0)
+ 1f86: 9260 ld.w r3, (r2, 0x0)
+ 1f88: 68c5 andn r3, r1
+ 1f8a: 3ba4 bseti r3, 4
+ 1f8c: 3ba6 bseti r3, 6
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004;
+ }
+ if(IONAME==GPT_CHB_PB01)
+ {
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060;
+ 1f8e: b260 st.w r3, (r2, 0x0)
+ }
+}
+ 1f90: 040b br 0x1fa6 // 1fa6
+ if(IONAME==GPT_CHA_PA09)
+ 1f92: 3841 cmpnei r0, 1
+ 1f94: 080a bt 0x1fa8 // 1fa8
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFFF0F)|0x00000050;
+ 1f96: 1161 lrw r3, 0x2000004c // 2018
+ 1f98: 31f0 movi r1, 240
+ 1f9a: 9340 ld.w r2, (r3, 0x0)
+ 1f9c: 9261 ld.w r3, (r2, 0x4)
+ 1f9e: 68c5 andn r3, r1
+ 1fa0: 3ba4 bseti r3, 4
+ 1fa2: 3ba6 bseti r3, 6
+ 1fa4: b261 st.w r3, (r2, 0x4)
+}
+ 1fa6: 783c jmp r15
+ if(IONAME==GPT_CHA_PA010)
+ 1fa8: 3842 cmpnei r0, 2
+ 1faa: 080b bt 0x1fc0 // 1fc0
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000600;
+ 1fac: 107b lrw r3, 0x2000004c // 2018
+ 1fae: 32f0 movi r2, 240
+ 1fb0: 9320 ld.w r1, (r3, 0x0)
+ 1fb2: 9161 ld.w r3, (r1, 0x4)
+ 1fb4: 4244 lsli r2, r2, 4
+ 1fb6: 68c9 andn r3, r2
+ 1fb8: 3ba9 bseti r3, 9
+ 1fba: 3baa bseti r3, 10
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700;
+ 1fbc: b161 st.w r3, (r1, 0x4)
+ 1fbe: 07f4 br 0x1fa6 // 1fa6
+ if(IONAME==GPT_CHB_PA010)
+ 1fc0: 3843 cmpnei r0, 3
+ 1fc2: 080b bt 0x1fd8 // 1fd8
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFFF0FF)|0x00000700;
+ 1fc4: 1075 lrw r3, 0x2000004c // 2018
+ 1fc6: 32f0 movi r2, 240
+ 1fc8: 9320 ld.w r1, (r3, 0x0)
+ 1fca: 4244 lsli r2, r2, 4
+ 1fcc: 9161 ld.w r3, (r1, 0x4)
+ 1fce: 68c9 andn r3, r2
+ 1fd0: 32e0 movi r2, 224
+ 1fd2: 4243 lsli r2, r2, 3
+ 1fd4: 6cc8 or r3, r2
+ 1fd6: 07f3 br 0x1fbc // 1fbc
+ if(IONAME==GPT_CHB_PA011)
+ 1fd8: 3844 cmpnei r0, 4
+ 1fda: 080a bt 0x1fee // 1fee
+ GPIOA0->CONHR=(GPIOA0->CONHR & 0XFFFF0FFF)|0x00006000;
+ 1fdc: 106f lrw r3, 0x2000004c // 2018
+ 1fde: 32f0 movi r2, 240
+ 1fe0: 9320 ld.w r1, (r3, 0x0)
+ 1fe2: 9161 ld.w r3, (r1, 0x4)
+ 1fe4: 4248 lsli r2, r2, 8
+ 1fe6: 68c9 andn r3, r2
+ 1fe8: 3bad bseti r3, 13
+ 1fea: 3bae bseti r3, 14
+ 1fec: 07e8 br 0x1fbc // 1fbc
+ if(IONAME==GPT_CHB_PB00)
+ 1fee: 3845 cmpnei r0, 5
+ 1ff0: 0808 bt 0x2000 // 2000
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFFF0)|0x00000004;
+ 1ff2: 1069 lrw r3, 0x20000048 // 2014
+ 1ff4: 310f movi r1, 15
+ 1ff6: 9340 ld.w r2, (r3, 0x0)
+ 1ff8: 9260 ld.w r3, (r2, 0x0)
+ 1ffa: 68c5 andn r3, r1
+ 1ffc: 3ba2 bseti r3, 2
+ 1ffe: 07c8 br 0x1f8e // 1f8e
+ if(IONAME==GPT_CHB_PB01)
+ 2000: 3846 cmpnei r0, 6
+ 2002: 0bd2 bt 0x1fa6 // 1fa6
+ GPIOB0->CONLR=(GPIOB0->CONLR & 0XFFFFFF0F)|0x00000060;
+ 2004: 1064 lrw r3, 0x20000048 // 2014
+ 2006: 31f0 movi r1, 240
+ 2008: 9340 ld.w r2, (r3, 0x0)
+ 200a: 9260 ld.w r3, (r2, 0x0)
+ 200c: 68c5 andn r3, r1
+ 200e: 3ba5 bseti r3, 5
+ 2010: 3ba6 bseti r3, 6
+ 2012: 07be br 0x1f8e // 1f8e
+ 2014: 20000048 .long 0x20000048
+ 2018: 2000004c .long 0x2000004c
+
+Disassembly of section .text.GPT_Configure:
+
+0000201c :
+//GPT Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Configure(GPT_CLK_TypeDef GPTCLKX,GPT_CSS_TypeDef GCSSX,GPT_SHDWSTP_TypeDef GSHDWSTPX,U16_T GPSCX)
+{
+ 201c: 14c1 push r4
+ GPT0->CEDR = GPTCLKX| GCSSX|GSHDWSTPX;
+ 201e: 6c48 or r1, r2
+ 2020: 1083 lrw r4, 0x20000024 // 202c
+ 2022: 6c04 or r0, r1
+ 2024: 9480 ld.w r4, (r4, 0x0)
+ 2026: b400 st.w r0, (r4, 0x0)
+ GPT0->PSCR=GPSCX;
+ 2028: b462 st.w r3, (r4, 0x8)
+}
+ 202a: 1481 pop r4
+ 202c: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_WaveCtrl_Configure:
+
+00002030 :
+/*************************************************************/
+//GPT0->CR = (0X0<<0)|(0x00<<2)|(0x01<<3)|(0x00<<4)|(0X00<<6)|(0x01<<18)|(0x00<<9)|(0X00<<10)|(0x00<<11)|(0x00<<13) ;
+//GPT0->CMPLDR=(0X00<<0)|(0X00<<1)|(0X03<<4)|(0X03<<7);
+void GPT_WaveCtrl_Configure(GPT_CNTMD_TypeDef GCNTMDX,GPT_SWSYN_TypeDef GSWSYNX,GPT_IDLEST_TypeDef GIDLEX,GPT_PRDLD0_TypeDef GPRDLD0,GPT_OPM_TypeDef GOPMX,
+ GPT_BURST_TypeDef GBURSTX,GPT_CKS_TypeDef GCKS,GPT_CGSRC_TypeDef CGSRCX,GPT_CGFLT_TypeDef CGFLT,GPT_PSCLD_TypeDef PSCLDX)
+{
+ 2030: 14c4 push r4-r7
+ 2032: 1423 subi r14, r14, 12
+ 2034: 9887 ld.w r4, (r14, 0x1c)
+ 2036: 6dd3 mov r7, r4
+ 2038: 9888 ld.w r4, (r14, 0x20)
+ 203a: b880 st.w r4, (r14, 0x0)
+ 203c: 9889 ld.w r4, (r14, 0x24)
+ 203e: b881 st.w r4, (r14, 0x4)
+ 2040: 988a ld.w r4, (r14, 0x28)
+ 2042: b882 st.w r4, (r14, 0x8)
+ 2044: 988b ld.w r4, (r14, 0x2c)
+ 2046: 6d93 mov r6, r4
+ 2048: 988c ld.w r4, (r14, 0x30)
+ GPT0->CR =GCNTMDX|GSWSYNX|GIDLEX|GPRDLD0|GOPMX|GBURSTX|GCKS|CGSRCX|CGFLT|PSCLDX|GPT_WAVE_MODE;
+ 204a: 3cb2 bseti r4, 18
+ 204c: 6d18 or r4, r6
+ 204e: 98c2 ld.w r6, (r14, 0x8)
+ 2050: 6d18 or r4, r6
+ 2052: 98c1 ld.w r6, (r14, 0x4)
+ 2054: 6d18 or r4, r6
+ 2056: 98c0 ld.w r6, (r14, 0x0)
+ 2058: 6d18 or r4, r6
+ 205a: 6d1c or r4, r7
+ 205c: 6cd0 or r3, r4
+ 205e: 6c8c or r2, r3
+ 2060: 6c48 or r1, r2
+ 2062: 10a4 lrw r5, 0x20000024 // 2070
+ 2064: 6c04 or r0, r1
+ 2066: 95a0 ld.w r5, (r5, 0x0)
+ 2068: 6d9f mov r6, r7
+ 206a: b503 st.w r0, (r5, 0xc)
+}
+ 206c: 1403 addi r14, r14, 12
+ 206e: 1484 pop r4-r7
+ 2070: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_WaveLoad_Configure:
+
+00002074 :
+//GPT Wave control Init
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_WaveLoad_Configure(GPT_SHDWAQA_TypeDef SHDWAQAX,GPT_SHDWAQB_TypeDef SHDWAQBX,GPT_AQLDA_TypeDef AQLDAX, GPT_AQLDB_TypeDef AQLDBX)
+{
+ 2074: 14c1 push r4
+ GPT0->AQLDR=SHDWAQAX|SHDWAQBX|AQLDAX|AQLDBX;
+ 2076: 6c8c or r2, r3
+ 2078: 6c48 or r1, r2
+ 207a: 1083 lrw r4, 0x20000024 // 2084
+ 207c: 6c04 or r0, r1
+ 207e: 9480 ld.w r4, (r4, 0x0)
+ 2080: b411 st.w r0, (r4, 0x44)
+}
+ 2082: 1481 pop r4
+ 2084: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_WaveOut_Configure:
+
+00002088 :
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_WaveOut_Configure(GPT_GPTCHX_TypeDef GPTCHX,GPT_CASEL_TypeDef CASELX,GPT_CBSEL_TypeDef CBSELX,U8_T ZROX,U8_T PRDX,U8_T CAUX,
+ U8_T CADX,U8_T CBUX,U8_T CBDX,U8_T T1UX,U8_T T1DX,U8_T T2UX,U8_T T2DX)
+{
+ 2088: 14c4 push r4-r7
+ 208a: 1425 subi r14, r14, 20
+ 208c: 1c09 addi r4, r14, 36
+ 208e: 8480 ld.b r4, (r4, 0x0)
+ 2090: b880 st.w r4, (r14, 0x0)
+ 2092: 1c0a addi r4, r14, 40
+ 2094: 8480 ld.b r4, (r4, 0x0)
+ 2096: b881 st.w r4, (r14, 0x4)
+ 2098: 1c0b addi r4, r14, 44
+ 209a: 8480 ld.b r4, (r4, 0x0)
+ 209c: b882 st.w r4, (r14, 0x8)
+ 209e: 1c0c addi r4, r14, 48
+ 20a0: 8480 ld.b r4, (r4, 0x0)
+ 20a2: b883 st.w r4, (r14, 0xc)
+ 20a4: 1c0d addi r4, r14, 52
+ 20a6: 8480 ld.b r4, (r4, 0x0)
+ 20a8: 1e10 addi r6, r14, 64
+ 20aa: b884 st.w r4, (r14, 0x10)
+ 20ac: 1d0f addi r5, r14, 60
+ 20ae: 1c0e addi r4, r14, 56
+ 20b0: 86e0 ld.b r7, (r6, 0x0)
+ if(GPTCHX==GPT_CHA)
+ 20b2: 3840 cmpnei r0, 0
+{
+ 20b4: 1e11 addi r6, r14, 68
+ 20b6: 8480 ld.b r4, (r4, 0x0)
+ 20b8: 85a0 ld.b r5, (r5, 0x0)
+ 20ba: 86c0 ld.b r6, (r6, 0x0)
+ if(GPTCHX==GPT_CHA)
+ 20bc: 081f bt 0x20fa // 20fa
+ {
+ GPT0->AQCRA=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
+ 20be: 47f0 lsli r7, r7, 16
+ 20c0: 46d2 lsli r6, r6, 18
+ 20c2: 45ae lsli r5, r5, 14
+ 20c4: 6dd8 or r7, r6
+ 20c6: 6dd4 or r7, r5
+ 20c8: 448c lsli r4, r4, 12
+ 20ca: 6dd0 or r7, r4
+ 20cc: 9884 ld.w r4, (r14, 0x10)
+ 20ce: 448a lsli r4, r4, 10
+ 20d0: 6dd0 or r7, r4
+ 20d2: 9883 ld.w r4, (r14, 0xc)
+ 20d4: 4488 lsli r4, r4, 8
+ 20d6: 98a2 ld.w r5, (r14, 0x8)
+ 20d8: 6d1c or r4, r7
+ 20da: 45e6 lsli r7, r5, 6
+ 20dc: 6d1c or r4, r7
+ 20de: 6c90 or r2, r4
+ 20e0: 6cc8 or r3, r2
+ 20e2: 9841 ld.w r2, (r14, 0x4)
+ 20e4: 4244 lsli r2, r2, 4
+ 20e6: 6cc8 or r3, r2
+ 20e8: 6c4c or r1, r3
+ 20ea: 9860 ld.w r3, (r14, 0x0)
+ 20ec: 4362 lsli r3, r3, 2
+ 20ee: 1013 lrw r0, 0x20000024 // 2138
+ 20f0: 6c4c or r1, r3
+ 20f2: 9000 ld.w r0, (r0, 0x0)
+ 20f4: b032 st.w r1, (r0, 0x48)
+ }
+ if(GPTCHX==GPT_CHB)
+ {
+ GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
+ }
+}
+ 20f6: 1405 addi r14, r14, 20
+ 20f8: 1484 pop r4-r7
+ if(GPTCHX==GPT_CHB)
+ 20fa: 3841 cmpnei r0, 1
+ 20fc: 0bfd bt 0x20f6 // 20f6
+ GPT0->AQCRB=CASELX|CBSELX|(ZROX<<0)|(PRDX<<2)|(CAUX<<4)|(CADX<<6)|(CBUX<<8)|(CBDX<<10)|(T1UX<<12)|(T1DX<<14)|(T2UX<<16)|(T2DX<<18);
+ 20fe: 47f0 lsli r7, r7, 16
+ 2100: 46d2 lsli r6, r6, 18
+ 2102: 45ae lsli r5, r5, 14
+ 2104: 6dd8 or r7, r6
+ 2106: 6dd4 or r7, r5
+ 2108: 448c lsli r4, r4, 12
+ 210a: 6dd0 or r7, r4
+ 210c: 9884 ld.w r4, (r14, 0x10)
+ 210e: 448a lsli r4, r4, 10
+ 2110: 6dd0 or r7, r4
+ 2112: 9883 ld.w r4, (r14, 0xc)
+ 2114: 4488 lsli r4, r4, 8
+ 2116: 98a2 ld.w r5, (r14, 0x8)
+ 2118: 6d1c or r4, r7
+ 211a: 45e6 lsli r7, r5, 6
+ 211c: 6d1c or r4, r7
+ 211e: 6c90 or r2, r4
+ 2120: 6cc8 or r3, r2
+ 2122: 9841 ld.w r2, (r14, 0x4)
+ 2124: 4244 lsli r2, r2, 4
+ 2126: 6cc8 or r3, r2
+ 2128: 6c4c or r1, r3
+ 212a: 9860 ld.w r3, (r14, 0x0)
+ 212c: 4362 lsli r3, r3, 2
+ 212e: 1003 lrw r0, 0x20000024 // 2138
+ 2130: 6c4c or r1, r3
+ 2132: 9000 ld.w r0, (r0, 0x0)
+ 2134: b033 st.w r1, (r0, 0x4c)
+}
+ 2136: 07e0 br 0x20f6 // 20f6
+ 2138: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_Start:
+
+0000213c :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Start(void)
+{
+ GPT0->RSSR |= 0X01;
+ 213c: 1063 lrw r3, 0x20000024 // 2148
+ 213e: 9340 ld.w r2, (r3, 0x0)
+ 2140: 9261 ld.w r3, (r2, 0x4)
+ 2142: 3ba0 bseti r3, 0
+ 2144: b261 st.w r3, (r2, 0x4)
+}
+ 2146: 783c jmp r15
+ 2148: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_Period_CMP_Write:
+
+0000214c :
+//EntryParameter:
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_Period_CMP_Write(U16_T PRDR_DATA,U16_T CMPA_DATA,U16_T CMPB_DATA)
+{
+ GPT0->PRDR =PRDR_DATA;
+ 214c: 1063 lrw r3, 0x20000024 // 2158
+ 214e: 9360 ld.w r3, (r3, 0x0)
+ 2150: b309 st.w r0, (r3, 0x24)
+ GPT0->CMPA =CMPA_DATA;
+ 2152: b32b st.w r1, (r3, 0x2c)
+ GPT0->CMPB =CMPB_DATA;
+ 2154: b34c st.w r2, (r3, 0x30)
+}
+ 2156: 783c jmp r15
+ 2158: 20000024 .long 0x20000024
+
+Disassembly of section .text.GPT_ConfigInterrupt_CMD:
+
+0000215c :
+//EntryParameter:LPT_IMSCR_X,NewState
+//NewState:ENABLE,DISABLE
+//ReturnValue:NONE
+/*************************************************************/
+void GPT_ConfigInterrupt_CMD(FunctionalStatus NewState,U32_T GPT_IMSCR_X)
+{
+ 215c: 1066 lrw r3, 0x20000024 // 2174
+ if (NewState != DISABLE)
+ 215e: 3840 cmpnei r0, 0
+ {
+ GPT0->IMCR |= GPT_IMSCR_X;
+ 2160: 9360 ld.w r3, (r3, 0x0)
+ 2162: 237f addi r3, 128
+ 2164: 9356 ld.w r2, (r3, 0x58)
+ if (NewState != DISABLE)
+ 2166: 0c04 bf 0x216e // 216e
+ GPT0->IMCR |= GPT_IMSCR_X;
+ 2168: 6c48 or r1, r2
+ 216a: b336 st.w r1, (r3, 0x58)
+ }
+ else
+ {
+ GPT0->IMCR &= ~GPT_IMSCR_X;
+ }
+}
+ 216c: 783c jmp r15
+ GPT0->IMCR &= ~GPT_IMSCR_X;
+ 216e: 6885 andn r2, r1
+ 2170: b356 st.w r2, (r3, 0x58)
+}
+ 2172: 07fd br 0x216c // 216c
+ 2174: 20000024 .long 0x20000024
+
+Disassembly of section .text.UART0_DeInit:
+
+00002178 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_DeInit(void)
+{
+ UART0->DATA = UART_RESET_VALUE;
+ 2178: 1065 lrw r3, 0x20000040 // 218c
+ 217a: 3200 movi r2, 0
+ 217c: 9360 ld.w r3, (r3, 0x0)
+ 217e: b340 st.w r2, (r3, 0x0)
+ UART0->SR = UART_RESET_VALUE;
+ 2180: b341 st.w r2, (r3, 0x4)
+ UART0->CTRL = UART_RESET_VALUE;
+ 2182: b342 st.w r2, (r3, 0x8)
+ UART0->ISR = UART_RESET_VALUE;
+ 2184: b343 st.w r2, (r3, 0xc)
+ UART0->BRDIV =UART_RESET_VALUE;
+ 2186: b344 st.w r2, (r3, 0x10)
+}
+ 2188: 783c jmp r15
+ 218a: 0000 bkpt
+ 218c: 20000040 .long 0x20000040
+
+Disassembly of section .text.UART1_DeInit:
+
+00002190 :
+void UART1_DeInit(void)
+{
+ UART1->DATA = UART_RESET_VALUE;
+ 2190: 1065 lrw r3, 0x2000003c // 21a4
+ 2192: 3200 movi r2, 0
+ 2194: 9360 ld.w r3, (r3, 0x0)
+ 2196: b340 st.w r2, (r3, 0x0)
+ UART1->SR = UART_RESET_VALUE;
+ 2198: b341 st.w r2, (r3, 0x4)
+ UART1->CTRL = UART_RESET_VALUE;
+ 219a: b342 st.w r2, (r3, 0x8)
+ UART1->ISR = UART_RESET_VALUE;
+ 219c: b343 st.w r2, (r3, 0xc)
+ UART1->BRDIV =UART_RESET_VALUE;
+ 219e: b344 st.w r2, (r3, 0x10)
+}
+ 21a0: 783c jmp r15
+ 21a2: 0000 bkpt
+ 21a4: 2000003c .long 0x2000003c
+
+Disassembly of section .text.UART2_DeInit:
+
+000021a8 :
+void UART2_DeInit(void)
+{
+ UART2->DATA = UART_RESET_VALUE;
+ 21a8: 1065 lrw r3, 0x20000038 // 21bc
+ 21aa: 3200 movi r2, 0
+ 21ac: 9360 ld.w r3, (r3, 0x0)
+ 21ae: b340 st.w r2, (r3, 0x0)
+ UART2->SR = UART_RESET_VALUE;
+ 21b0: b341 st.w r2, (r3, 0x4)
+ UART2->CTRL = UART_RESET_VALUE;
+ 21b2: b342 st.w r2, (r3, 0x8)
+ UART2->ISR = UART_RESET_VALUE;
+ 21b4: b343 st.w r2, (r3, 0xc)
+ UART2->BRDIV =UART_RESET_VALUE;
+ 21b6: b344 st.w r2, (r3, 0x10)
+}
+ 21b8: 783c jmp r15
+ 21ba: 0000 bkpt
+ 21bc: 20000038 .long 0x20000038
+
+Disassembly of section .text.UART0_Int_Enable:
+
+000021c0 :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART0_Int_Enable(void)
+{
+ UART0->ISR=0x0F; //clear UART0 INT status
+ 21c0: 1065 lrw r3, 0x20000040 // 21d4
+ 21c2: 320f movi r2, 15
+ 21c4: 9360 ld.w r3, (r3, 0x0)
+ 21c6: b343 st.w r2, (r3, 0xc)
+ INTC_ISER_WRITE(UART0_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+ 21c8: 3380 movi r3, 128
+ 21ca: 4366 lsli r3, r3, 6
+ 21cc: 1043 lrw r2, 0xe000e100 // 21d8
+ 21ce: b260 st.w r3, (r2, 0x0)
+}
+ 21d0: 783c jmp r15
+ 21d2: 0000 bkpt
+ 21d4: 20000040 .long 0x20000040
+ 21d8: e000e100 .long 0xe000e100
+
+Disassembly of section .text.UART2_Int_Enable:
+
+000021dc :
+//EntryParameter:NONE
+//ReturnValue:NONE
+/*************************************************************/
+void UART2_Int_Enable(void)
+{
+ UART2->ISR=0x0F; //clear UART1 INT status
+ 21dc: 1065 lrw r3, 0x20000038 // 21f0
+ 21de: 320f movi r2, 15
+ 21e0: 9360 ld.w r3, (r3, 0x0)
+ 21e2: b343 st.w r2, (r3, 0xc)
+ INTC_ISER_WRITE(UART2_INT); //INT Vector Enable UART0/1 Interrupt in CK802
+ 21e4: 3380 movi r3, 128
+ 21e6: 4368 lsli r3, r3, 8
+ 21e8: 1043 lrw r2, 0xe000e100 // 21f4
+ 21ea: b260 st.w r3, (r2, 0x0)
+}
+ 21ec: 783c jmp r15
+ 21ee: 0000 bkpt
+ 21f0: 20000038 .long 0x20000038
+ 21f4: e000e100 .long 0xe000e100
+
+Disassembly of section .text.UART_IO_Init:
+
+000021f8